[ОТВЕТИТЬ]
26.07.2016 16:55
xray84
 
Добрый день всем! Прошу хелпа!
Какая функция возвращает данные по фильтру по месту хранения? Все или конкретно отобранные. Типа такой: "supermag.RepTools.ClassString(2)"
26.07.2016 17:41
vdm
 
Откройте любой отчет фастрепорт с выбором мест хранения, там все видно.

Например doccashz.frx
Код:
      // фильтр по местам хранения
      RepOracleRunner.ExecuteProcedure(host.Connection,"Supermag.RepTools.LoadLoc", 
        Report.GetParameterValue("P_STORED_ALL"),
        Report.GetParameterValue("P_STORED_NAME"),
        Report.GetParameterValue("P_PARTNER"),
        null); 
      // подзаголовок отчета: места хранения
      sLocName = RepOracleRunner.ExecuteScalar<string>(host.Connection, "select supermag.RepTools.LocString(10) from dual");
Код:
        " WHERE d.DocType in ('CS','CR')"+
        " and d.DocState>=3"+
        " and d.Createdat between "+RepSqlText.ToSqlDate(sFirstDate)+" and "+RepSqlText.ToSqlDate(sLastDate)+
        RepOracleRunner.ExecuteScalar<string>(host.Connection, "select supermag.RepTools.LocString(0,'nvl(d.locationfrom,d.locationto)') from dual")+
30.07.2016 09:21
xray84
 
создал отчет, выбрал расходные те у которых 0 цена в спецификации. Отбирает норм все. Но! почему то не берет в select те расходники у которых не пользовательские операции! Где из какой таблицы они берутся? операции типа "Возврат поставщику" или "Инвентаризация недостачи".
30.07.2016 22:57
DMaslov
 
Цитата:
xray84 из какой таблицы они берутся? операции типа "Возврат поставщику" или "Инвентаризация недостачи".
Смотрите документацию. Таблицы SAOperation и SMUserOp.
31.07.2016 14:48
xray84
 
Cмотрел уже. в этих таблицах нет ни возврата поставщику ни инветнаризация недостачи.
31.07.2016 22:30
svtl
 
SAOperation - 2 - возврат поставщику, инв. недостачи - 10 вроде
01.08.2016 03:19
xray84
 
подскажите тогда почему они не попадают у меня в select?

:P_SQL := 'select distinct doc.id, sop.name, doc.commentary, doc.createdat, op.title, stor.name, doc.totalsum, logg.username
from supermag.smdocuments doc, supermag.saoperation sop, supermag.smuserop op, supermag.smstorelocations stor, supermag.smspec spec,
supermag.smdoclog logg,'
||
supermag.RepTools.ClassString(2) ||
'supermag.smcard c

where doc.doctype = ''WO'' and (doc.createdat between :P_FIRSTDATE and :P_LASTDATE)
and op.id = doc.userop and doc.opcode = sop.id and doc.locationfrom = stor.id and spec.itemprice = ''0''
and logg.id = doc.id and doc.docstate = ''3'' and spec.doctype = ''WO''
and (logg.recid = (select min(recid) from supermag.smdoclog where id = doc.id)) and spec.docid = doc.id
and doc.locationfrom = doc.locationfrom '
|| supermag.RepTools.LocString(0,'doc.locationfrom') ||
' and spec.article = c.article ' ||
supermag.RepTools.ClassString(3,'c') ||
' order by 6,4;';

все гранты выдал, только польз-ские операции у меня в выборке..
01.08.2016 03:28
xray84
 
может их объединить (запросы) UNION-ом? сначала польз-кие операции выбрать, потом системные...
01.08.2016 03:49
xray84
 
убрал из запроса and op.id = doc.userop, и op.title (из поля выборки), норм теперь все захватывает, но в поле списание..теперь без польз-кой операции.. как добавить туда?
01.08.2016 06:48
xray84
 
решил вывести запросик в формулу отдельно,

function CF_usopFormula return Char is
usop char;
begin
select oper.title into USOP from supermag.smuserop oper, supermag.smdocuments d where d.id = :ID and d.doctype = 'WO' and oper.id = d.userop;
return usop;
end;

так теперь в отчете в самом супермаге ошибка почему то: ORA-06502 PL/SQL numeric or value error!
сверил везде стоит тип данных char или varchar2, 255 символов. по отдельности запросы к базе делал (в SQL-Plus), выводит то что нужно.
01.08.2016 10:38
vdm
 
Цитата:
xray84 убрал из запроса and op.id = doc.userop, и op.title (из поля выборки), норм теперь все захватывает, но в поле списание..теперь без польз-кой операции.. как добавить туда?
op.id(+) = doc.userop
01.08.2016 10:40
vdm
 
Цитата:
xray84 решил вывести запросик в формулу отдельно,

function CF_usopFormula return Char is
usop char;
begin
select oper.title into USOP from supermag.smuserop oper, supermag.smdocuments d where d.id = :ID and d.doctype = 'WO' and oper.id = d.userop;
return usop;
end;

так теперь в отчете в самом супермаге ошибка почему то: ORA-06502 PL/SQL numeric or value error!
сверил везде стоит тип данных char или varchar2, 255 символов. по отдельности запросы к базе делал (в SQL-Plus), выводит то что нужно.
usop varchar2(255);
01.08.2016 10:51
xray84
 
Цитата:
vdm usop varchar2(255);
компилится норм в билдере, в СМ пишет ORA-01403 no data found
01.08.2016 11:01
xray84
 
извиняюсь , op.id(+) = doc.userop добавил все норм!! )) спасиб большое!!!!!!!!!!!!!
а что значит (+) можно пояснить плиз )
01.08.2016 11:27
vdm
 
Оракловый синтаксис - аналог стандартному sql
SQL код:
FROM supermag.smdocuments doc
LEFT JOIN supermag
.smuserop op ON doc.userop=op.id 
Описание видов join в sql - найдете.
В старых версиях оракла предпочтительнее было использовать (+) .
Опции темы


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

 

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