• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Помощь в создании шаблона формы.

Автор slavadj, Липень 20, 2011, 13:27:53

Попередня тема - Наступна тема

0 Користувачі і 2 Гостей дивляться цю тему.

slavadj

Прошу помощи, в создании шаблона  печатной формы. Нужна форма расходной накладной, которая бы содержала, серийные номера позиции (т.е. груба говоря соединить шаблон расходной накладной и гар. талон , если такое возможно).  Пробовал создать самостоятельно шаблон, но без успешно, возможно отсутствие знании С++. Вид шаблона желаемого результата прилагаю.

geographic


slavadj


Alchic

#3
Добрый день, помогите в создании печатной формы для Счет-заказа

Alchic

В принципе практически  со всеми графами я разобралась, осталось только добавить правильную переменную сумма розничная - сумма приходная = доход, может кто - то подскажет как это реализовать?

maxsv

Помогите в создании кассового чека.
Мне нужно дополнить уже существующий чек следующей информацией:
1. ФИО владельца дисконта, номер (и адрес, в случае необходимости доставки)
2. Общий оборот по дисконту.
3. Сумма скидки по чеку.

ankos4

Всем здрасти.
Нужна помощь.
Ситуация следующая! Есть окно касира, делается выписка на розничного покупателя расход, на основе чеков формируются проводки (расходная, приходный касовый ордер). Нужно, чтобы в отчете "Касса" отоброжалось ФИО сотрудника который выписывал приходный кассовый ордер, чтобы можно было насчитать з.п.
Както так.

admin

Цитата: Alchic від Жовтень 24, 2011, 15:04:45
В принципе практически  со всеми графами я разобралась, осталось только добавить правильную переменную сумма розничная - сумма приходная = доход, может кто - то подскажет как это реализовать?

Какие переменные сейчас используете для цены розничной и приходной, если есть сразу суммы напишите какие переменные.

Alchic

[ToNacValuta(StrToFloat(<Товар.Цена.Приходная>), <Товар.Цена.Валюта.Приходная.Номер>)] цена приходная

[FormatFloat(<формат_cумма_л_табл>,StrToFloat(<Товар.Колво>)*StrToFloat(ToNacValuta(StrToFloat(<Товар.Цена.Приходная>), <Товар.Цена.Валюта.Приходная.Номер>))))] сумма приходная

[DataRep."CENA_R"] цена розничная

[ToNacValuta(StrToFloat(<Товар.Цена.Розничная>)*<Товар.Колво>, <Товар.Цена.Валюта.Расходная.Номер>)] сумма розничная


admin

у вас формула суммы по рознице не работает

Разница по товару:
[(StrToFloat(ToNacValuta(StrToFloat(<Товар.Цена.Розничная>)*<Товар.Колво>, <Товар.Цена.Валюта.Расходная.Номер>)))-(StrToFloat(<Товар.Колво>)*StrToFloat(ToNacValuta(StrToFloat(<Товар.Цена.Приходная>), <Товар.Цена.Валюта.Приходная.Номер>)))]

Разница по накладной:
[SUM((StrToFloat(ToNacValuta(StrToFloat(<Товар.Цена.Розничная>)*<Товар.Колво>, <Товар.Цена.Валюта.Расходная.Номер>)))-(StrToFloat(<Товар.Колво>)*StrToFloat(ToNacValuta(StrToFloat(<Товар.Цена.Приходная>), <Товар.Цена.Валюта.Приходная.Номер>))))]

Alchic

Спасибо огромное все работает)))))

ankos4

Помогите создать запрос для того, чтобы узнать ФИО пользователя, от имени которого создан Приходный а также расходный ордера!
Хочу вот такое сделать.

admin

Цитата: ankos4 від Жовтень 28, 2011, 18:02:00
Помогите создать запрос для того, чтобы узнать ФИО пользователя, от имени которого создан Приходный а также расходный ордера!
Хочу вот такое сделать.

С помощью обычной процедуры это сделать нельзя, надо подправить.

В меню Опции : SQL менеджер выполните след код (в версиях после 5.30 этого уже делать не надо т.к. будет включено в след. обновление):


ALTER PROCEDURE kassa_view (
  firma_id INTEGER,
  date_from DATE,
  date_to DATE)
RETURNS (
  num INTEGER,
  doc_id INTEGER,
  doc_type_id INTEGER,
  z_begin DOUBLE PRECISION,
  z_begin_tmp DOUBLE PRECISION,
  doc_date DATE,
  doc_nu VARCHAR(30),
  doc_suma DOUBLE PRECISION,
  doc_pids VARCHAR(300),
  client_name VARCHAR(300),
  doc_krah VARCHAR(30),
  doc_suma_in DOUBLE PRECISION,
  doc_suma_out DOUBLE PRECISION)
AS
BEGIN
  z_begin = 0;
  SELECT
    SUM(pk.nac_cena)
  FROM
    tovar_move tm,
    pkas pk
  WHERE   
    tm.doc_type_id = 3 AND
    tm.doc_id = pk.num AND
    tm.to_firma_id = :firma_id AND   
    tm.mdate < :date_from
  INTO
    :z_begin_tmp;
  z_begin = z_begin + z_begin_tmp;
  SELECT   
    SUM(vk.nac_cena)
  FROM
    tovar_move tm,
    vkas vk
  WHERE   
    tm.doc_type_id = 4 AND
    tm.doc_id = vk.num AND
    tm.from_firma_id = :firma_id AND
    tm.mdate < :date_from
  INTO
    :z_begin_tmp;
  z_begin = z_begin - z_begin_tmp;
  FOR   
    SELECT   
      tm.num,
      pk.num,
      tm.doc_type_id,   
      tm.mdate,   
      pk.nu,   
      pk.nac_cena AS suma,   
      pk.nac_cena AS suma_in,   
      cast(null as double precision) AS suma_out,   
      pk.client,   
      pk.sh1,   
      pk.pids   
    FROM   
      tovar_move tm   
        LEFT JOIN pkas pk ON (tm.doc_type_id = 3 AND tm.doc_id = pk.num)   
    WHERE   
      tm.doc_type_id = 3 AND   
      tm.to_firma_id = :firma_id AND   
      tm.mdate >= :date_from AND tm.mdate <= :date_to   
    UNION   
    SELECT   
      tm.num,
      vk.num,
      tm.doc_type_id,   
      tm.mdate,   
      vk.nu,   
      vk.nac_cena*(-1) AS suma,   
      cast(null as double precision) AS suma_in,   
      vk.nac_cena AS suma_out,   
      vk.client,   
      vk.sh1,   
      vk.pids   
    FROM   
      tovar_move tm   
        LEFT JOIN vkas vk ON (tm.doc_type_id = 4 AND tm.doc_id = vk.num)   
    WHERE   
      tm.doc_type_id = 4 AND   
      tm.from_firma_id = :firma_id AND   
      tm.mdate >= :date_from AND tm.mdate <= :date_to   
    INTO :num, :doc_id, :doc_type_id, :doc_date, :doc_nu, :doc_suma, :doc_suma_in, :doc_suma_out, :client_name, :doc_krah, :doc_pids
  DO   
  BEGIN   
    SUSPEND;   
  END   
END


Далее уже можно подправить текст отчета чтобы получить имя пользователя.

Как делать отчет на основе другого?
1. Заходим в меню "Отчеты" и открываем нужный нам отчет.
2. Потом нажимаем на кнопку "В режим редактирования", и раскрываем
окно на максимум (так будет удобней)
3. В открывшемся окне в полях "Название по-украински" и "Название
по-русски", меняем или дописываем название для будущего отчета.
4. Далее меняем или правим в окне SQL запрос текст SQL запроса к базе
данных.
5. Если надо включаем в "Выбор нужных параметров для отчета" галочки
что надо выбирать перед формированием отчета, а что нет.
6. Нажимаем кнопку "Сохранить как новый", и закрываем окно.
7. Далее заходим обратно в меню "Отчеты" и ищем имя отчета которое вы
задали в п.3 Открываем его и запускаем, если надо правим печатную форму.

в п.4 меняем текст на:

SELECT
  kw.*,
  CASE
    WHEN psu.num IS NULL THEN vsu.u_login
    ELSE psu.u_login
  END AS u_login,
  CASE
    WHEN psu.num IS NULL THEN vsu.u_surname
    ELSE psu.u_surname
  END AS u_surname,
  CASE
    WHEN psu.num IS NULL THEN vsu.u_name
    ELSE psu.u_name
  END AS u_name,
  CASE
    WHEN psu.num IS NULL THEN vsu.u_middlename
    ELSE psu.u_middlename
  END AS u_middlename
FROM
  kassa_view(#активная_фирма_№#,'#дата_с#','#дата_по#') kw
    LEFT JOIN pkas p ON (kw.doc_type_id = 3 AND kw.doc_id = p.num)
    LEFT JOIN vkas v ON (kw.doc_type_id = 4 AND kw.doc_id = v.num)
    LEFT JOIN s_users psu ON (p.doc_user_id = psu.num)
    LEFT JOIN s_users vsu ON (v.doc_user_id = vsu.num)
ORDER BY
  kw.doc_date,
  kw.num


Код не проверял, на быструю руку так сказать, если ошибка сообщите.

ankos4

#13
Спосибо! Все прошло нормально!
Хоть пока и не получилось то, что я хотел, но ФИО создавшего документ уже есть.
Надо сгрупировать по каждому пользователю Касу за день. Попробую побаловаться, если что отпишу.
С этого всего понял, что нужно учиться, учиться и еще раз учиться. В.И. Ленин

Ann

Здравствуйте, помогите создать шаблон отчета по минимальному остатку, чтобы в него входило списание товара.