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

Как добавить поле БД "Количество в резерве" в прайс-лист?

Автор sarmk, Вересень 29, 2017, 10:37:45

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

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

sarmk

Как добавить поле БД KOLVO_REZ в отчет Прайс лист ?


SELECT
  tz.kolvo, 
  t.*, 
  CASE 
    WHEN (t.cena_curr_id = par.param) THEN t.cena   
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 1) THEN t.cena/c.kurs/ct_in.kurs   
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 1) THEN t.cena*c.kurs/ct_in.kurs     
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 0) THEN t.cena/c.kurs*ct_in.kurs   
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 0) THEN t.cena*c.kurs*ct_in.kurs     
  END AS cena_national_valuta,   
  CASE   
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_r   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_r/c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_r*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_r/c.kurs*ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_r*c.kurs*ct_out.kurs   
  END AS cena_r_national_valuta,   
  CASE   
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_o   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_o/c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_o*c.kurs/ct_out.kurs     
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_o/c.kurs*ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_o*c.kurs*ct_out.kurs     
  END AS cena_o_national_valuta,   
  CASE   
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_1   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_1/c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_1*c.kurs/ct_out.kurs     
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_1/c.kurs*ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_1*c.kurs*ct_out.kurs     
  END AS cena_1_national_valuta,   
  CASE   
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_2   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_2/c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_2*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_2/c.kurs*ct_out.kurs   
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_2*c.kurs*ct_out.kurs   
  END AS cena_2_national_valuta, 
  CASE   
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_3 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_3/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_3*c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_3/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_3*c.kurs*ct_out.kurs 
  END AS cena_3_national_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena   
    WHEN (ct_in.how_to_calc = 1) THEN t.cena/ct_in.kurs   
    WHEN (ct_in.how_to_calc = 0) THEN t.cena*ct_in.kurs   
  END AS cena_main_valuta,   
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_r   
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_r/ct_out.kurs   
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_r*ct_out.kurs   
  END AS cena_r_main_valuta,   
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_o   
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_o/ct_out.kurs   
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_o*ct_out.kurs   
  END AS cena_o_main_valuta,   
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_1   
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_1/ct_out.kurs   
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_1*ct_out.kurs   
  END AS cena_1_main_valuta,   
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_2   
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_2/ct_out.kurs   
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_2*ct_out.kurs   
  END AS cena_2_main_valuta,   
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_3 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_3/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_3*ct_out.kurs 
  END AS cena_3_main_valuta, 
  gr.group_name,
  ti.tov_image,
  ti.tov_image_type,
  gi.tov_image AS group_image,
  gi.tov_image_type AS group_image_type
FROM     
  tovar_name t   
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num   
    LEFT JOIN currency ct_out ON t.cena_out_curr_id = ct_out.num
    LEFT JOIN tovar_images ti ON (ti.doc_type = 102 AND ti.num = (SELECT FIRST 1 ti2.num FROM tovar_images ti2 WHERE ti2.tovar_id = t.num ORDER BY ti2.isort ))
    LEFT JOIN tovar_images gi ON (gi.doc_type = 1020 AND gi.num = (SELECT FIRST 1 gi2.num FROM tovar_images gi2 WHERE gi2.tovar_id = t.tip ORDER BY gi2.isort )),
  print_view_sklad(#товар_группа_№#,#склад_№#) gr,   
  tovar_zal tz,     
  currency c,     
  params par     
WHERE     
  par.name = 'NationalValutaId' AND
  c.num = par.param AND     
  t.tip = gr.num AND     
  t.visible = 1 AND     
  t.is_price_invisible = 0 AND   
  t.num=tz.tovar_id AND     
  tz.sklad_id=#склад_№#   
ORDER BY     
  gr.group_name,   
  t.#товар_сорт#

admin

Цитата: sarmk від Вересень 29, 2017, 10:37:45
Как добавить поле БД KOLVO_REZ в отчет Прайс лист ?

Это перенаправленное письмо:
От: УкрСклад
Кому: sarmk
Дата: 5 жовтня 2017 р., 11:47:41
Тема: Доработка отчета Прайс-лист

===8<==============Оригинал текста письма===============
Приветствую Вас,

05.10.2017 в 9:26, Вы писали:

MA> Добавить поле БД KOLVO_REZ в отчет "Прайс лист"

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

в п.4 замените:

SELECT
  tz.kolvo,
  t.*,

на

SELECT
  tz.kolvo,
  tz_r.kolvo AS kolvo_rez,
  t.*,

и замените

FROM
  tovar_name t
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num

на

FROM
  tovar_name t
    LEFT JOIN tovar_zal tz_r ON (t.num = tz_r.tovar_id AND tz_r.sklad_id = -10)
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num

В дизайнере используйте переменную [DataRep."KOLVO_REZ"]

--
С уважением, Дмитрий Котельников
  Служба поддержки УкрСклад.
===8<===========Окончание оригинала теста письма========

sarmk