[ОТВЕТИТЬ]
Опции темы
01.04.2016 12:11  
xray84
Доброго дня!
Понадобился отчет по заказам, у которых нет подтверждения заказов.
Не могу понять как в отчет добавить фильтр по поставщикам.

supermag.RepTools.LoadClass(:P_SUPP, :P_SuppAll, :P_SuppId); - вот эту функцию бы в запрос засунуть. Но как и куда?

Вот часть запроса:
Цитата:
(select distinct d.id, d.createdat, cl.name, st.docstatename, loc.name, d.totalsum from supermag.smdocuments d, supermag.SMclientinfo cl, supermag.SMStoreLocations loc, supermag.SSdocstates st
where (d.createdat between :P_FIRSTDATE and :P_LASTDATE) and (d.docstate = '2' OR d.docstate = '3') and d.doctype = 'OR' and cl.id = d.clientindex and loc.id = d.location
and d.doctype = st.doctype and d.docstate = st.docstate)
 
01.04.2016 16:28  
svtl
эта не функция, а процедура. Заполняет временную таблицу TTSupplList (или TTClientList - В зависимости от входных параметров.
 
01.04.2016 16:35  
svtl
править не получается почему-то. по-моему, RepTools.LoadClass - это процедура для заполнения ttidgroup, входные параметры связаны с выбором групп/ассортиментов/номенклатур и группировкой по группам товаров.
для контрагентов используется RepTools.LoadCompanies
 
01.04.2016 16:36  
vdm
А откуда это вытащено: supermag.RepTools.LoadClass(:P_SUPP, :P_SuppAll, :P_SuppId). LoadClass это же для товаров.
Для контрагентов есть Supermag.RepTools.LoadSuppl(:P_SUPPALL, :P_SUPPID).
В WHERE запроса подставляется текст возвращаемый supermag.RepTools.SupplString(0,'d.ClientIndex').
 
"Спасибо" vdm от:
01.04.2016 16:39  
svtl
LoadSuppl - давно, тогда отдельно были поставщики, отдельно клиенты.
Сейчас можно брать LoadCompanies
 
"Спасибо" svtl от:
07.04.2016 07:36  
xray84
supermag.RepTools.LoadClass - вот это взял по аналогии с товарами да ранее делал отчет, конечно неправ я тут был..

LoadCompanies -- вот этот пытался в AFTER PARAMETR FORM подставлять, ругается оракл репортс на него, а Supermag.RepTools.LoadSuppl вот этот норм. идет!

Вот в чем загвоздка у меня: подставил в WHERE но у меня работает он только когда одного только поставщика выбрать, если несколько или все то просто пустой отчет.
Вот полный текст запроса:

SQL код:
:P_SQL := '(select distinct d.id, d.createdat, cl.name, st.docstatename, loc.name, 
d.totalsum from supermag.smdocuments d, supermag.SMclientinfo cl, supermag.SMStoreLocations loc, 
supermag.SSdocstates st where (d.createdat between  :P_FIRSTDATE and :P_LASTDATE) 
and (d.docstate = ''2'' OR d.docstate = ''3'') and d.doctype = ''OR'' and cl.id = d.clientindex and loc.id = d.location
 and (d.clientindex in :P_SUPPID) and d.doctype = st.doctype and d.docstate = st.docstate and d.ClientIndex = d.ClientIndex '
 
||  supermag.RepTools.SupplString(0,'d.ClientIndex') || 
 
') 
 MINUS (select distinct d.id, d.createdat, cl.name, st.docstatename, loc.name, 
 d.totalsum from supermag.smdocuments d, supermag.SMclientinfo cl, supermag.SMStoreLocations loc, 
 supermag.SSdocstates st, supermag.Smcommonbases comm where (d.createdat between  :P_FIRSTDATE and :P_LASTDATE) 
 and (d.docstate = ''2'' OR d.docstate = ''3'') and d.doctype = ''OR'' and cl.id = d.clientindex and loc.id = d.location 
 and (d.clientindex in :P_SUPPID) and d.doctype = st.doctype 
 and d.docstate = st.docstate and comm.doctype = ''OE'' and comm.baseid = d.id and d.ClientIndex = d.ClientIndex '
 
||  supermag.RepTools.SupplString(0,'d.ClientIndex') || 
 
');'
 
19.04.2016 05:28  
xray84
:)
 
19.04.2016 14:25  
vdm
Это зачем?
Код:
and (d.clientindex in :P_SUPPID)
 
"Спасибо" vdm от:
20.04.2016 03:29  
xray84
эмм лишнее похоже..
теперь когда выбираю 2 поставщика, выводится норм., но когда захожу для выбора поставщика, когда тоже самое оставляю (2 ранее выбранных), то в итоге получается что 1 выходит...второго нет.
 
20.04.2016 05:56  
xray84
все норм! ))
спасиб большущее!!!!!

вот рабочий вариант (с фильтром по классификатору):

Цитата:
:P_SQL := '(select distinct d.id, d.createdat, cl.name, st.docstatename, loc.name,
d.totalsum from supermag.smspec s, supermag.smdocuments d, supermag.SMclientinfo cl, supermag.SMStoreLocations loc,
supermag.SSdocstates st,'
||
supermag.RepTools.ClassString(2) ||
'supermag.smcard c

where (d.createdat between :P_FIRSTDATE and :P_LASTDATE)
and (d.docstate = ''2'' OR d.docstate = ''3'') and d.doctype = ''OR'' and cl.id = d.clientindex and loc.id = d.location
and d.doctype = st.doctype and d.docstate = st.docstate and d.id = s.docid and d.ClientIndex = d.ClientIndex '
|| supermag.RepTools.SupplString(0,'d.ClientIndex') ||
' and s.article = c.article ' ||
supermag.RepTools.ClassString(3,'c') ||
')
MINUS (select distinct d.id, d.createdat, cl.name, st.docstatename, loc.name,
d.totalsum from supermag.smspec s, supermag.smdocuments d, supermag.SMclientinfo cl, supermag.SMStoreLocations loc,
supermag.SSdocstates st, supermag.Smcommonbases comm,'
||
supermag.RepTools.ClassString(2) ||
'supermag.smcard c

where (d.createdat between :P_FIRSTDATE and :P_LASTDATE)
and (d.docstate = ''2'' OR d.docstate = ''3'') and d.doctype = ''OR'' and cl.id = d.clientindex and loc.id = d.location
and d.doctype = st.doctype
and d.docstate = st.docstate and comm.doctype = ''OE'' and d.id = s.docid and comm.baseid = d.id and d.ClientIndex = d.ClientIndex '
|| supermag.RepTools.SupplString(0,'d.ClientIndex') ||
' and s.article = c.article ' ||
supermag.RepTools.ClassString(3,'c') ||
');';
 
 
Опции темы



Часовой пояс GMT +3, время: 03:15.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.