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

Ошибка при добавлении пользовательского отчета : Супермаг Плюс (Супермаг 2000)

22.11.2024 4:48


20.07.2016 17:45
Добрый день!
Только не бейте сильно, добавляю отчет в подчиненные базы . В СО отчет работает, поэтому думал пройдет все как обычно, поставил прописал те же параметры, но стали появляться ошибки. Версия баз одинаковая:

************** Текст исключения **************
System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> System.Data.OracleClient.OracleException: ORA-06550: Строка 1, столбец 7:
PLS-00201: идентификатор 'SUPERMAG.FORM$TABLEFORREALIZATION' должен быть объявлен
ORA-06550: Строка 1, столбец 7:
PL/SQL: Statement ignored


ну и



2016.07.20 (Wednesday) 19:43:29 1.33.1.0 sp2 Sm.Main ( NREPOR )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в InnerException."
исключение: System.Reflection.TargetInvocationException
источник: System
метод: Void RaiseExceptionIfNecessary()
в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
в Sm.Core.RunWorkerCompletedEventArgs`1.get_Result()
в Sm.FastReports.Domain.FastReportDomainPanel.<>c__DisplayClass2.<RunSingleReport>b__0(Object sender, RunWorkerCompletedEventArgs`1 e)
----- Причина исключения, уровень вложения 1 -----
сообщение: "qTextAvgQtyRep: Error in expression: RepItogo.AVGQTY"
исключение: System.Exception
источник: FastReport.Engine
метод: System.String CalcAndFormatExpression(System.String, Int32)
в FastReport.TextObjectBase.CalcAndFormatExpression(String expression, Int32 expressionIndex)
в FastReport.TextObject.GetData()
в FastReport.BandBase.GetData()
в FastReport.Engine.ReportEngine.PrepareBand(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.ShowBandToPreparedPages(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
в FastReport.Engine.ReportEngine.EndLastPage()
в FastReport.Engine.ReportEngine.RunReportPage(ReportPage page)
в FastReport.Engine.ReportEngine.RunReportPages()
в FastReport.Engine.ReportEngine.RunReportPages(ReportPage page)
в FastReport.Engine.ReportEngine.Run(Boolean runDialogs, Boolean append, ReportPage page)
в FastReport.Report.Prepare(Boolean append)
в Sm.FastReports.Domain.FastReportDomainModel.ExecuteReport(Report report, String reportFile, List`1 commonParameters, List`1 objectParameters, Int32 moduleRole, Int32 functionRole)
в Sm.FastReports.Domain.FastReportDomainPanel.Report_DoWork(Object sender, TaskWorkEventArgs`3 e)
в Sm.Core.TaskWorker`3.OnDoWork(DoWorkEventArgs e)
в Sm.Core.TaskWorkerBase.InternalBackgroundWorker.OnDoWork(DoWorkEventArgs e)
в System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
20.07.2016 17:48
Ссылка на архив realization_pls_1.frx.7z собственно сам файл. Вопрос в какую сторону копать.
20.07.2016 19:07
Ссылки что-то нет. Скорее всего, вместе с отчетом был дан какой-то скрипт, который создавал дополнительные объекты или раздавал какие-то права. Вот его теперь и надо найти, да запустить на той БД, где планируешь запускать отчет.
21.07.2016 13:27
Пробовал добавлять отчет и руками и при помощи bat файла, результат был одинаковый. Но я перепроверю, попробую еще раз через батник сделать, может правда что то не то натыкал.
21.07.2016 13:35
И вот что интересно, так себя ведет не только этот отчет, вчера упала розничная база, восстановили. Но при попытке напечатать счет-фактуру из накладной, стандартная печатная форма nacl_inout_factura, появляется ошибка, и на этот раз ругается на «страну». А тут по идее отчет Супермаговский стандартный. Не могу понять в какую сторону смотреть.

2016.07.21 (Thursday) 19:32:17 1.33.1.0 sp2 Sm.Main ( NDOCWI )
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в InnerException."
исключение: System.Reflection.TargetInvocationException
источник: System
метод: Void RaiseExceptionIfNecessary()
в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
в Sm.Core.RunWorkerCompletedEventArgs`1.get_Result()
в Sm.FastReports.Domain.FastReportDomainPanel.<>c__DisplayClass2.<RunSingleReport>b__0(Object sender, RunWorkerCompletedEventArgs`1 e)
----- Причина исключения, уровень вложения 1 -----
сообщение: "ORA-00904: "S"."COUNTRY": недопустимый идентификатор"
исключение: System.Data.OracleClient.OracleException
источник: Sm.BusinessServer
данные: соединено с: База даных=ALDAN; Пользователь=Баль
текст команды: select distinct nvl(io.GTD,'-'), nvl(s.Country,'-'), nvl((select c.Code from supermag.SACountries c where upper(c.Title)=upper(s.Country)),'-') FROM supermag.SVSpecNaclRep s,supermag.SMSpecIO io where s.DocType='WI' and s.DocID='M1050000000113' and s.SpecItem=1 and io.DocType(+)=s.DocType and io.DocID(+)=s.DocID and io.SpecItem(+)=s.SpecItem and (io.GTD is not null or s.Country is not null)
тип команды: Text
метод: Boolean ReadBuffer(System.Collections.ObjectModel.ReadOnlyCollection`1[TRecord] ByRef)
в Sm.BusinessServer.BackgroundReaderBase`1.ReadBuffer(ReadOnlyCollection`1& result)
в Sm.FastReports.Server.FastReportBO.Sm.FastReports.Link.IFastReportBO.FillTableDataNext(BusinessOperation businessOperation, ReadOnlyCollection`1& dataTable)
в Sm.FastReports.SupermagFastReportConnection.<>c__DisplayClass8.<FillTableData>b__5(IFastReportBO bo)
в Sm.BusinessServer.LocalServer.LocalClient`1.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.TransactedBusinessObject.Do(Action`1 action)
в Sm.FastReports.SupermagFastReportConnection.FillTableData(DataTable table, String selectCommand, CommandParameterCollection parameters)
в FastReport.ReportScript.DataSpec_BeforePrint(Object sender, EventArgs e)
21.07.2016 13:36
Скрипт, который ты приложил, неполный. Отсутствует бОльшая часть. Там жестко прибиты пути, т.е. запускать его надо при обязательном наличии определенных каталогов, в том числе на диске D.
21.07.2016 14:05
Понял, спасибо, попробую востановить всю картину. А по nacl_inout_factura - для ее установки тоже нужен скрипт?
21.07.2016 22:48
Цитата:
АндрейСупермаг Понял, спасибо, попробую востановить всю картину. А по nacl_inout_factura - для ее установки тоже нужен скрипт?
Не нужен, это кто-то с генерацией базы при установке Супермага накосячил...
22.07.2016 17:09
еще момент
select distinct nvl(io.GTD,'-'), nvl(s.Country,'-'), nvl((select c.Code from supermag.SACountries c where upper(c.Title)=upper(s.Country)),'-') FROM supermag.SVSpecNaclRep s,supermag.SMSpecIO io where s.DocType='WI' and s.DocID='M1050000000113' and s.SpecItem=1 and io.DocType(+)=s.DocType and io.DocID(+)=s.DocID and io.SpecItem(+)=s.SpecItem and (io.GTD is not null or s.Country is not null) дает ошибку - "S"."COUNTRY": недопустимый идентификатор"

тут могут быть проблемы с версией. я недавно на эти грабли наступала. в 1.029.3 страна для строк накладной хранится в smspecIO. в 1.031.2 - в smspecnacl (раньше этой таблицы не было, появилась, соответственно, поле Country в SVSpecNaclRep
Т.е. вы запускаете печатную форму от более высокой версии СМ+ на более низкой версии.

Я вижу, что вроде как 1.033.1 sp2... Но чудес же не бывает...
Посмотрите View SVSpecNaclRep -
select * from supermag.SVSpecNaclRep - там поле Country есть или нет (на той БД, где счет-фактуру печатаете)
27.07.2016 08:58
По печатной форме счет-фактуры проблема действительно возникла на этапе генерации базы. Как точно узнаю чем был вызван сбой в печати обязательно здесь опишу его.

По добавлению пользовательского отчета, нашел не достающие скрипты (обновил архив), настроил, и получил ошибку (ошибка прописывается в out файл SCHOOL.txt).Удалял полностью отчет через СМ и проверял таблицы

Begin installation report '1'/1.frx/3 to SCHOOL
1. Create database objects
CREATE GLOBAL TEMPORARY TABLE SUPERMAG.TTREALIZATION1$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
CREATE UNIQUE INDEX SUPERMAG.TTCREALIZATION1$PLS_PK ON SUPERMAG.TTREALIZATION1$PLS *
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
PRIMARY KEY *
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
PRIMARY KEY*
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
CREATE GLOBAL TEMPORARY TABLE SUPERMAG.TTREALIZATION2$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
CREATE UNIQUE INDEX SUPERMAG.TTCREALIZATION2$PLS_PK ON SUPERMAG.TTREALIZATION2$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
PRIMARY KEY*
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
PRIMARY KEY*
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
CREATE GLOBAL TEMPORARY TABLE SUPERMAG.TTREALIZATION3$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
CREATE UNIQUE INDEX SUPERMAG.TTCREALIZATION3$PLS_PK ON SUPERMAG.TTREALIZATION3$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
CREATE UNIQUE INDEX SUPERMAG.TTCREALIZATION3$PLS_U ON SUPERMAG.TTREALIZATION3$PLS*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
PRIMARY KEY*
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
PRIMARY KEY*
ошибка в строке 3:
ORA-02260: в таблице может быть задан только один первичный ключ
Привилегии предоставлены.
Процедура создана.
Функция создана.
Пакет создан.
Тело пакета создано.
CREATE TABLE supermag.buffassortlocks (*
ошибка в строке 1:
ORA-00955: имя уже задействовано для существующего объекта
Комментарий создан.
Комментарий создан.
2. Registration report
- Report '1' in group 3 is already exists
3. Grants for report
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
Привилегии предоставлены.
grant execute on supermag.get_last_income to SUPERMAG_FN_USR_REP7228*
ошибка в строке 1:
ORA-04042: процедура, функция, пакет, или тело пакета не существует
Привилегии предоставлены.
4. Access to report
- Report granted to next offices: Not granted
Installation completed
Часовой пояс GMT +3, время: 04:48.

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