Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Пользовательские отчеты СуперМаг (Oracle Reports) : Супермаг Плюс (Супермаг 2000)

20.04.2024 2:44


31.10.2012 11:21
Александр-Tyumen
 
А как определить, что стоит галочка все?

Добавлено через 1 минуту 5 секунд
Или тогда P_GROUP_TREE пустая строка?
31.10.2012 13:07
Mtirt
 
Цитата:
Александр-Tyumen Или тогда P_GROUP_TREE пустая строка?
Не помню, наверное пустая...
31.10.2012 16:41
svtl
 
:P_GROUP_TREE = null - значит, выбраны все карточки
01.11.2012 11:14
Александр-Tyumen
 
Добрый день, при запуске отчета уже после формы с параметрами появляется вот такая ошибка
Цитата:
rep-1247 отчет содержит не компилированный PL/SQL
хотя он компилировался. В чем может быть загвоздка?
И не совсем понятен момент с ролями
Цитата:
Для отчета с номером 1702 роль будет назваться SUPERMAG_FN_USR_REP1702.
Для работы отчета в примере нужно предоставить роли права на чтение таблиц SmCard, SmSpec, SmDocuments:
Это нужно где то в самом Супермаге назначать? Или в отчете каким то образом сделать?
01.11.2012 11:24
Tema
 
Цитата:
Александр-Tyumen Добрый день, при запуске отчета уже после формы с параметрами появляется вот такая ошибка
хотя он компилировался. В чем может быть загвоздка?
делал подключение к базе? файл - соединить... (CTRL+J)
затем файл - администрирование - откомпилировать отчет (CTRL+T)
в объектном навигаторе сперва надо выбрать тот отчет который будет компилироваться, если вдруг несколько открывал.

Цитата:
Александр-Tyumen И не совсем понятен момент с ролями

Это нужно где то в самом Супермаге назначать? Или в отчете каким то образом сделать?
да, структура разделов - настройка отчетов, там надо новый создать в том разделе в который хочешь его запихать, супермаг укажет какая роль, раздаешь права на селект этой роли к тем таблицам которые участвуют в отчете и всё. Подробно всё это описано в инструкции к отчетам.
01.11.2012 11:28
Mtirt
 
Цитата:
Александр-Tyumen Добрый день, при запуске отчета уже после формы с параметрами появляется вот такая ошибка

хотя он компилировался. В чем может быть загвоздка?
Компилировался с соединением с базой данных?
Скорее всего где-то имя схемы пропущено...
Цитата:
Александр-Tyumen И не совсем понятен момент с ролями

Это нужно где то в самом Супермаге назначать? Или в отчете каким то образом сделать?
В Супермаге надо добавить отчет Разделы - Настройка - Настройка отчетов.
После создания отчета будет заполнена графа Роль.
Потом этой Роли надо дать права на доступ к объектам, используемым в отчете. Для выборки данных.
01.11.2012 11:54
Александр-Tyumen
 
Цитата:
Mtirt Компилировался с соединением с базой данных?
Скорее всего где-то имя схемы пропущено...
Компилировал с соединением с базой, иначе он не компилируется. На наименование схем уже проверил на несколько раз, везде стоит.

Цитата:
Mtirt В Супермаге надо добавить отчет Разделы - Настройка - Настройка отчетов.
После создания отчета будет заполнена графа Роль.
Потом этой Роли надо дать права на доступ к объектам, используемым в отчете. Для выборки данных.
А не установленные права могут повлиять на появление ошибки о компиляции?

На всякий случай приложу код процедуры AfterPForm может что то не увидел и пропустил.

Цитата:
function AfterPForm return boolean is
s_tree varchar2(255);
begin
:P_SQL := 'SELECT doc.namegroup, doc.NAME, doc.article, doc.abbrev, doc.quantity, doc.totalprice' ||
'FROM (SELECT (sacc.tree || ' || ' ' || ' || sacc.NAME) AS namegroup, smc.NAME,' ||
' smc.article, ' ||
' (CASE ' ||
' WHEN smau.rate IS NULL OR smau.rate = 0 ' ||
' THEN sam.abbrev ' ||
' ELSE smau.abbrev ' ||
' END ' ||
' ) AS abbrev, ' ||
' SUM (CASE ' ||
' WHEN smau.rate IS NULL OR smau.rate = 0 ' ||
' THEN sms.quantity ' ||
' ELSE sms.quantity * smau.rate ' ||
' END ' ||
' ) AS quantity, ' ||
' SUM (sms.totalprice) AS totalprice ' ||
' FROM ((supermag.smspec sms inner JOIN supermag.smdocuments smd ' ||
' ON (sms.docid = smd.ID AND sms.doctype = smd.doctype)) ' ||
' inner JOIN ' ||
' (((supermag.smcard smc inner JOIN supermag.sacardclass sacc ' ||
' ON smc.idclass = sacc.ID) ' ||
' LEFT JOIN ' ||
' supermag.sameasurement sam ON smc.idmeasurement = sam.ID) ' ||
' LEFT JOIN ' ||
' (SELECT smaltunits.article, smaltunits.rate, ' ||
' sameasurement.abbrev ' ||
' FROM (supermag.smaltunits smaltunits LEFT JOIN supermag.sameasurement sameasurement ' ||
' ON sameasurement.ID = smaltunits.altunit) ' ||
' RIGHT JOIN ' ||
' supermag.smcardproperties ' ||
' ON smcardproperties.article = smaltunits.article ' ||
' WHERE smcardproperties.propid = TO_CHAR (''0'') ' ||
' AND ( smcardproperties.propval <> 0 ' ||
' OR smcardproperties.propval IS NOT NULL ' ||
' )) smau ON smc.article = smau.article) ' ||
' ON sms.article = smc.article) ' ||
' WHERE sms.doctype = ''CS'' STORE_WHERE GROUP_WHERE ' ||
' GROUP BY sacc.tree, ' ||
' sacc.NAME, ' ||
' smc.NAME, ' ||
' smc.article, ' ||
' CASE ' ||
' WHEN smau.rate IS NULL OR smau.rate = 0 ' ||
' THEN sam.abbrev ' ||
' ELSE smau.abbrev ' ||
' END ' ||
' ORDER BY sacc.tree) doc ';

if (:P_Stored_All = 1) then
:P_SQL := replace(:P_SQL, 'STORE_WHERE', 'and smd.LOCATIONFROM in (' || :P_STORED_Name || ')');
elsif (:P_Stored_All = 2) then
select tree into s_tree
from supermag.SAStoreClass
where id=to_number(:P_Stored_Name);

:P_SQL := replace(:P_SQL, 'STORE_WHERE', 'and smd.LOCATIONFROM in (select * from supermag.SAStoreClass sasc Right join supermag.SMStoreLocations SMSL on sasc.id=SMSL.IDCLASS' ||
'Where sasc.tree like ''' || s_tree || '%)''');
else
:P_SQL := replace(:P_SQL, 'STORE_WHERE', ' ');
end if;
if (:P_Group_Tree IS NOT NULL) Then
supermag.RepTools.LoadClass(2, :P_BGroup, :P_Group_Tree);

if (:P_BGROUP = 0) then
:P_SQL := replace(:P_SQL, 'GROUP_WHERE', 'and smc.article in (Select article From supermag.SMCardAssort where IDASSORT in (SELECT ID FROM supermag.TTIDGROUP))');
elsif (:P_BGROUP = 1) then

:P_SQL := replace(:P_SQL, 'GROUP_WHERE', 'and smc.IDCLASS in (SELECT ID FROM supermag.TTIDGROUP)');
end if;
else
:P_SQL := replace(:P_SQL, 'GROUP_WHERE', ' ');
end if;

return (TRUE);
end;
01.11.2012 11:58
Mtirt
 
Мне стала интересна версия Супермага.
01.11.2012 12:15
Александр-Tyumen
 
1.029.1 sp4

Добавлено через 4 минуты 8 секунд
А версия Report Builder
Цитата:
Report Builder 6.0.8.18.0
ORACLE Server Release 8.0.6.0.0
Oracle Procedure Builder 6.0.8.17.0
Oracle ORACLE PL/SQL V8.0.6.3.0 - Production
Oracle CORE Version 4.0.6.0.0 - Production
Oracle Tools Integration Services 6.0.8.17.0
Oracle Tools Common Area 6.0.5.32.1
Èíñòðóìåíòàðèé Oracle 2 äëÿ 32-áèòíûõ ïëàòôîðì Windows 6.0.8.18.0
Resource Object Store 6.0.5.0.1
Oracle Help 6.0.8.18.0
Oracle Sqlmgr 6.0.8.18.0
Oracle Query Builder 6.0.7.1.0 - Production
PL/SQL Editor (c) WinMain Software, v1.0 (Production)
Oracle ZRC 6.0.8.17.0
Oracle Express 6.0.8.3.5
Oracle XML Parser 1.0.2.1.0 Production
Oracle Virtual Graphics System 6.0.5.38.0
Oracle Image 6.0.8.18.1
Oracle Multimedia Widget 6.0.8.18.1
Oracle Tools GUI Utilities 6.0.8.11.0
01.11.2012 12:43
Mtirt
 
Тогда странно.
Мне это напоминало неустановленный патч на oracle reports, но это не ваш случай.
Или вы компилируете на одном компьютере, а Супермаг на другом?

P.S. зачем так мучаться с oracle reports, если в вашей версии можно отлично делать отчеты в FastReports?
Часовой пояс GMT +3, время: 02:44.

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