[ТЕМА ЗАКРЫТА]
Опции темы
24.08.2015 10:41  
akonev
Цитата:
Сообщение от xray84
вот так решил задачу:
в целом, это неверное и "опасное" условие.
Код:
where tree like ''%''||:P_GROUP_TREE||''%''
1) отчет будет работать, только если в него передали ОДНУ группу.
2) процентик перед параметром может сыграть злую шутку:
мы передали '63.'
отобралась группа '63.' со всеми подгруппами.
И!!!!!
отобрались все вложенные группы с кодом '63.' на любом уровне классификатора. например, '35.63.', '2.45.63.', '65.23.63.',...
 
"Спасибо" akonev от:
24.08.2015 12:53  
xray84
Да верно (( что же остается? весь запрос переписывать ? или может вместо :P_GROUP_TREE другое условие брать? Что то ум за разум уже заходит.....
 
24.08.2015 13:03  
akonev
Цитата:
Сообщение от xray84
Да верно (( что же остается? весь запрос переписывать ? или может вместо :P_GROUP_TREE другое условие брать? Что то ум за разум уже заходит.....
Вот это, объективно, самый правильный путь.

Цитата:
Сообщение от vdm
Насчет фильтра по карточкам - посмотри запрос исходного отчета по складским требованиям и вставь в свой запрос в соответствующие места supermag.RepTools.ClassString(). С учетом того, что в ф-ии supermag.RepTools.ClassString(3,'c') строка 'c' - это алиас таблицы smcard, у тебя будет 'crd'.
Либо писать свою процедуру, передавать ей все параметры, в ней разбирать строку со списком групп и формировать отдельные запросы по каждой группе из списка. Результат писать во временную таблицу, в отчете выбирать из неё.
 
"Спасибо" akonev от:
25.08.2015 05:53  
xray84
спс!!!!! вот рабочий вариант:
Цитата:
supermag.RepTools.LoadClass(:P_Group_All, :P_BGroup, :P_Group_Tree);
if :P_FLAG1 = '0' then
:P_SQL := 'select distinct c.article, c.name, sum (s.quantity)
from supermag.smspec s, supermag.smdocuments d, supermag.smcard c, supermag.sacardclass sp
where d.id = s.docid and d.docstate = 2 and (d.createdat between :P_FIRSTDATE and :P_LASTDATE) and s.doctype= d.doctype and s.doctype= ''SO'' and s.article = c.article ' ||
supermag.RepTools.ClassString(3,'c') ||
' group by c.article, c.name
order by 2;';
end if;
 
25.08.2015 06:09  
xray84
почему то правда только на моем компе запускается..на других такая ошибка:
ORA-00904: ''T_CLASS".ARTICLE": invalid identifier and s.article = c.article ==> =t_class.article....

как ее побороть? Появилась после добавления supermag.RepTools.ClassString(3,'c')
 
25.08.2015 15:09  
xray84
раздать гранты я так думаю нужно?....
 
25.08.2015 15:28  
vdm
Скорее у тебя разные параметры передаются в отчет на своей машине и на других.
Посмотри конечный запрос который формируется у тебя и не у тебя.
В AfterPForm
Код:
srw.message(999,  :P_SQL);
return (TRUE);
 
"Спасибо" vdm от:
25.08.2015 16:07  
xray84
на моем выдает:
Цитата:
in (select article from supermag.ttidgroup)
на всех остальных:
Цитата:
=t_class.article
 
25.08.2015 17:33  
xray84
а в чем причина передачи разных параметров? Звонил сегодня в С+, там посоветовали установить билдер..но это не помогло...запрос в техподдержку отправлял, там ответили что "В Супермаге нет API-функций. Мы не рекомендуем использовать встроенные функции Супермага"
 
26.08.2015 09:50  
vdm
Уверен, что в диалоге запуска отчета одинаковые товарные группы и параметры группировки?
t_class подставляет RepTools.ClassString при каких-то условиях товарных групп. Чего-то во from у тебя не хватает.
Техподдержка в принципе имеет право не отвечать по использованию встроенных функций - они недокументированы.
 
"Спасибо" vdm от:
 


Опции темы



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

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