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

Как в отчет вывести поле "Dopolnit" вместо "Name"

Автор Den, Вересень 27, 2013, 13:36:09

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

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

Den

Добрый день.
Появилась такая надобность из-за производителя который не хочет ставить свои артикулы, т.е. есть только наименование, но это пол беды, оказалось что по документом наименование одно, а на упаковке оно немного другое  :(
Придумал следующее: в Справочнике товара, каждому товару в поле "Дополнительно" дописал нужное название которое на упаковке (что бы люди на точке не паниковали).
спасибо огромное за помощь "TheOK" подсказал код  для копирования из поля "полное наименование" в поле "дополнительно" (так как у остальных товаров все ок) сам код:
Обязательно перед запуском сделайте архив базы (запрос затрет данные в поле дополнительно).
В SQL менеджере запустите следующий текст (между -------- и ----------):
------------------------------------

update tovar_name
set dopoln=name
------------------------------------
Дальше столкнулся с тем что нужно вывести вместо "Имя товара" поле "Дополнительно" в отчете на пример в "Остатки по всем складам"
Подскажите пожалуйста как это реализовать, возможно кому то еще пригодится.

Creat

Только  "TheOK" имеет терпение и желание каждый раз объяснять всем заново как создать отчёт на основании существующего. Он даже не поленился инструкцию написать.
http://www.softbalance.com.ua/forum/index.php/topic,2362.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"]

Den

#2
Спасибо.
Так я уже пробовал, выдает ошибку 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
----------------------------------------------
Вот пытаюсь дальше разобраться

Den

#3
или наверное вместо всех t. ...  поставить t.*, так тоже видимо правильно?
подставление работает и ввиде  t.dopoln, и t.*, (это показывает сразу все возможные)
А в моих уже тех которыя я правил не сработало, видимо что то я там накрути, просто заново их сформирую
Спасибо.

TheOK

Т.к. данный SQL запрос с группировкой данных (т.е. в запросе есть поле Group by)
в него, при добавлении поля нужно добавить № полей (или имена полей, но проще №), по которым  нужно проводить группировку.
т.е. в данном случае группировка данных должна определяться таким текстом:
GROUP BY 
  1,2,3,4,5,6,7,8


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


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


Запрос не тестировал, т.к. в данный момент на работе, но, думаю, если замените group by (вернее просто добавите ",8"), все должно заработать
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

Den

Спасибо. Все сработало,  а то я застрял именно на этом отчете, в остальных разобрался.
Если можно еще вопросик, на будущее,.
В этом случае использовали "t.dopoln," и цифру "8" с этим я розбрался что к чему.,
но как быть если понадобиться открыть все по максимуму с "t.*," как тогда изменится?
наверняка тоже значение до бесконечности ставится.

TheOK

#6
использовать * в таких запросах (где уже есть group by) нельзя, т.к. вы должны указать в запросе № или список полей для группировки, что в данном случае если и возможно (скорее всего можно указать 5,6,7,....,N, где N - кол-во полей, которое должен вернуть запрос), но при изменении списка полей в базе разработчиками вы получите неработающий отчет.

В принципе, добавить нужный список полей (и группировку к ним) не очень сложно (если нужно узнать список полей в таблице и не знаете как, пишите)
Работа в УкрСклад(особенности и советы): [url="//www.softbalance.com.ua/forum/index.php/topic,2362.0.html"]www.softbalance.com.ua/forum/index.php/topic,2362.0.html[/url]
Некоторые мои отчеты можно найти здесь: [url="http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html"]http://www.softbalance.com.ua/forum/index.php/topic,2307.0.html[/url]

Den

Спасибо большое за позновательный урок :)

victorpolo

Цитата: Den від Вересень 27, 2013, 13:36:09
------------------------------------
update tovar_name
set dopoln=name
------------------------------------
тоже такое нужно. Но мне нужно перед name вставить еще текст "подшипник" и поставить пробел. Подскажите, кто знает синтаксис sql ?

admin

Цитата: 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

victorpolo


Роман?:)

И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]

[/quote]

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

Роман?:)

Цитата: Роман79 від Серпень 15, 2022, 23:57:47
И уже при редактировании формы поменять
[DataRep."name"] на [DataRep."dopoln"]


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



admin

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


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



[/quote]

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