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

Наши программы => УкрСклад => Тема розпочата: Den від Вересень 27, 2013, 13:36:09

Назва: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Den від Вересень 27, 2013, 13:36:09
Добрый день.
Появилась такая надобность из-за производителя который не хочет ставить свои артикулы, т.е. есть только наименование, но это пол беды, оказалось что по документом наименование одно, а на упаковке оно немного другое  :(
Придумал следующее: в Справочнике товара, каждому товару в поле "Дополнительно" дописал нужное название которое на упаковке (что бы люди на точке не паниковали).
спасибо огромное за помощь "TheOK" подсказал код  для копирования из поля "полное наименование" в поле "дополнительно" (так как у остальных товаров все ок) сам код:
Обязательно перед запуском сделайте архив базы (запрос затрет данные в поле дополнительно).
В SQL менеджере запустите следующий текст (между -------- и ----------):
------------------------------------

update tovar_name
set dopoln=name
------------------------------------
Дальше столкнулся с тем что нужно вывести вместо "Имя товара" поле "Дополнительно" в отчете на пример в "Остатки по всем складам"
Подскажите пожалуйста как это реализовать, возможно кому то еще пригодится.
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Creat від Вересень 27, 2013, 15:30:44
Только  "TheOK" имеет терпение и желание каждый раз объяснять всем заново как создать отчёт на основании существующего. Он даже не поленился инструкцию написать.
http://www.softbalance.com.ua/forum/index.php/topic,2362.0.html (http://www.softbalance.com.ua/forum/index.php/topic,2362.0.html)
а вот конкретно объяснял
http://www.softbalance.com.ua/forum/index.php/topic,2868.0.html (http://www.softbalance.com.ua/forum/index.php/topic,2868.0.html)

Вам надо создать на основании отчёта свой (см. выше)

В запрос добавить
SELECT
  s.num, 
  t.name,
  t.kod,
  t.dopoln,

И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Den від Вересень 27, 2013, 16:15:49
Спасибо.
Так я уже пробовал, выдает ошибку http://clip2net.com/s/5PTPH5 (http://clip2net.com/s/5PTPH5)
вот мой запрос
--------------------
SELECT 
  gr.group_name, 
  t.name,   
  s.num,   
  t.kod,
  t.dopoln, 
  CASE 
  WHEN (c.how_to_calc = 1) THEN t.#öåíà_òèï_ïîëå#/c.kurs 
  WHEN (c.how_to_calc = 0) THEN t.#öåíà_òèï_ïîëå#*c.kurs 
  END AS cena,   
  t.ed_izm,   
  gr.num, 
  SUM(s.z_kolvo) AS z_kolvo, 
  SUM(((t.#öåíà_òèï_ïîëå#*s.z_kolvo)/#âàëþòà_êóðñ#)) AS z_suma 
FROM 
  view_sklad_zal_all('#äàòà#') s,
  tovar_name t   
      LEFT JOIN currency c ON t.#öåíà_òèï_ïîëå_ïð#_curr_id = c.num, 
  print_view_sklad_all(#àêòèâíàÿ_ôèðìà_¹#) gr 
WHERE   
  s.num = t.num AND   
  t.tip = gr.num AND 
  s.sklad_id = gr.sklad_id AND
  s.sklad_id > 0 AND
  t.visible = 1
  AND  z_kolvo<>0 
GROUP BY 
  1,2,3,4,5,6,7 
ORDER BY   
  gr.group_name, 
  t.name
----------------------------------------------
Вот пытаюсь дальше разобраться
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Den від Вересень 27, 2013, 16:21:50
или наверное вместо всех t. ...  поставить t.*, так тоже видимо правильно?
подставление работает и ввиде  t.dopoln, и t.*, (это показывает сразу все возможные)
А в моих уже тех которыя я правил не сработало, видимо что то я там накрути, просто заново их сформирую
Спасибо.
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: TheOK від Вересень 27, 2013, 16:54:34
Т.к. данный SQL запрос с группировкой данных (т.е. в запросе есть поле Group by)
в него, при добавлении поля нужно добавить № полей (или имена полей, но проще №), по которым  нужно проводить группировку.
т.е. в данном случае группировка данных должна определяться таким текстом:
GROUP BY 
  1,2,3,4,5,6,7,8


Обратите внимание, добавилась цифра 8 (если считать по порядку это поле t.dopoln).
Если будете подобным образом добавлять поля, то проще, чтобы, вдруг, чего не нарушить, добавлять их в конец списка


Это хорошо, что вы самостоятельно осваиваете работу с отчетами, всегда рад помочь в таких случаях


Запрос не тестировал, т.к. в данный момент на работе, но, думаю, если замените group by (вернее просто добавите ",8"), все должно заработать
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Den від Вересень 27, 2013, 17:12:24
Спасибо. Все сработало,  а то я застрял именно на этом отчете, в остальных разобрался.
Если можно еще вопросик, на будущее,.
В этом случае использовали "t.dopoln," и цифру "8" с этим я розбрался что к чему.,
но как быть если понадобиться открыть все по максимуму с "t.*," как тогда изменится?
наверняка тоже значение до бесконечности ставится.
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: TheOK від Вересень 27, 2013, 17:17:04
использовать * в таких запросах (где уже есть group by) нельзя, т.к. вы должны указать в запросе № или список полей для группировки, что в данном случае если и возможно (скорее всего можно указать 5,6,7,....,N, где N - кол-во полей, которое должен вернуть запрос), но при изменении списка полей в базе разработчиками вы получите неработающий отчет.

В принципе, добавить нужный список полей (и группировку к ним) не очень сложно (если нужно узнать список полей в таблице и не знаете как, пишите)
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Den від Вересень 27, 2013, 17:28:28
Спасибо большое за позновательный урок :)
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: victorpolo від Березень 25, 2015, 09:28:00
Цитата: Den від Вересень 27, 2013, 13:36:09
------------------------------------
update tovar_name
set dopoln=name
------------------------------------
тоже такое нужно. Но мне нужно перед name вставить еще текст "подшипник" и поставить пробел. Подскажите, кто знает синтаксис sql ?
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: admin від Березень 25, 2015, 10:52:23
Цитата: victorpolo від Березень 25, 2015, 09:28:00
Цитата: Den від Вересень 27, 2013, 13:36:09
------------------------------------
update tovar_name
set dopoln=name
------------------------------------
тоже такое нужно. Но мне нужно перед name вставить еще текст "подшипник" и поставить пробел. Подскажите, кто знает синтаксис sql ?

UPDATE
  tovar_name
SET
  dopoln = 'подшипник ' || name
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: victorpolo від Березень 25, 2015, 15:55:01
спасибо, получилось.
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Роман?:) від Серпень 15, 2022, 23:57:47
И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]

[/quote]

Доброго вечора.
В мене міняє, але при друку чека видав помилку
Всі перемінні без помилки ( перевіряв) тільки DOPOLN з помилкою, де шукати підскажіть
Дякую за вчасно.
Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: Роман?:) від Вересень 16, 2022, 00:05:35
Цитата: Роман79 від Серпень 15, 2022, 23:57:47
И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]


Доброго вечора.
В мене міняє, але при друку чека видав помилку
Всі перемінні без помилки ( перевіряв) тільки DOPOLN з помилкою, де шукати підскажіть
Дякую за вчасно.
[/quote]


Назва: Re: Как в отчет вывести поле "Dopolnit" вместо "Name"
Відправлено: admin від Вересень 16, 2022, 09:18:47
Цитата: Роман79 від Вересень 16, 2022, 00:05:35
Цитата: Роман79 від Серпень 15, 2022, 23:57:47
И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]


Доброго вечора.
В мене міняє, але при друку чека видав помилку
Всі перемінні без помилки ( перевіряв) тільки DOPOLN з помилкою, де шукати підскажіть
Дякую за вчасно.



[/quote]

Так ви виводите [DataRep."dopoln6"], а не [DataRep."dopoln"], в програмі їх максимум 5. Покажіть ваш скрипт і напишіть що ви хочете вивести.