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

Ценник с маркетинговой ценой и сроками проведения акции : Супермаг Плюс (Супермаг 2000)

23.11.2024 15:55


09.01.2015 17:23
Цитата:
BotMan я с Fastreport не помогу 8(
Жаль.
Буду ждать свободных желающих помочь склепать запросы, самостоятельны попытки ограничены незнаниями программирования.
10.01.2015 00:11
Вырезал запрос из ценника в reports и порезал (в оригинале много лишнего).
- используется svpricecard, т.е. предварительно должна отработать стандартная процедура ценников loadpricecard
- выдать гранты на все таблицы запроса для SUPERMAG_FN_CARD_PRINTPRICER
- акции берутся только в розовой галке, с датой старта больше текущей
- акционная цена - за одну единицу, может понадобиться умножение на коэффициент, если ценник за несколько штук
- есть переменная :P_LOC, в fastreport ee нужно или запросу передавать параметром (не помню как) или вставить в текст запроса прямой склейкой +Report.GetParameterValue("P_LOC")+
Код:
SELECT	t_pr.article article,
			t_pr.name name,
			t_pr.cardcomment cardcomment,
			t_pr.country country,
			t_pr.price price,
			sp.itemprice price_ma,
			t_pr.qtyprint qtyprint,
			t_pr.unitname unitname,
			t_pr.isscale isscale,
			t_pr.plu plu,
			d.id ma_id,
			TRUNC (au.datebegin) ma_datebegin,
			TRUNC (au.dateend) ma_dateend
	 FROM supermag.svpricecard t_pr,
			supermag.smdocuments d,
			supermag.smspec sp,
			supermag.smauctions au
	WHERE t_pr.article = sp.article
			AND d.doctype = 'MA'
			AND d.id = sp.docid
			AND d.doctype = sp.doctype
			AND t_pr.article = sp.article
			AND d.id = au.id
			AND d.doctype = au.doctype
			AND d.docstate = 2
			AND au.datebegin >= TRUNC (SYSDATE)
			AND :P_LOC IN (SELECT locid
					  FROM supermag.smauctionatoms am
					 WHERE am.aucid = d.id AND am.doctype = d.doctype)
ORDER BY ma_id, article;
12.01.2015 11:23
Цитата:
vdm Вырезал запрос из ценника в reports и порезал (в оригинале много лишнего).
Прошу прощения, не могли б вы скинуть ваш отредактированный ценник, я вставляю в свой и получаю только ошибки...
12.01.2015 11:30
Куда вставляете? Какие ошибки?
12.01.2015 11:31
Я ж говорю, у меня oracle reports, у вас fastreport, потестить мне не на чем.
Покажи свой код, получаемые ошибки.
12.01.2015 11:56
Цитата:
vdm Я ж говорю, у меня oracle reports, у вас fastreport, потестить мне не на чем.
Покажи свой код, получаемые ошибки.
Добавил новый источник запроса:


получаю вот такую ошибку при попытке отобрать любые значения вашего запроса:

Код:
2015.01.12 (Monday) 10:56:29
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции.  См. описание исключения в 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 -----
сообщение: "TextFixedPrice: Error in expression: MA.PRICE"
исключение: 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.AddToOutputBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBand(BandBase band, Boolean getData)
   в FastReport.Engine.ReportEngine.ShowBand(BandBase band, BandBase outputBand, Single offsetX, Single offsetY)
   в FastReport.Engine.ReportEngine.RenderBandAcrossThenDown(DataBand dataBand, Int32 rowCount)
   в FastReport.Engine.ReportEngine.RenderMultiColumnBand(DataBand dataBand, Int32 rowCount)
   в FastReport.Engine.ReportEngine.ShowDataBand(DataBand dataBand, Int32 rowCount)
   в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand, Int32 rowCount, Boolean keepFirstRow, Boolean keepLastRow)
   в FastReport.Engine.ReportEngine.RunDataBand(DataBand dataBand)
   в FastReport.Engine.ReportEngine.RunBands(BandCollection bands)
   в 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)
Миниатюры
Нажмите на изображение для увеличения
Название: Image 1393.png
Просмотров: 991
Размер:	32.9 Кб
ID:	4273  
12.01.2015 12:23
Цитата:
vdm Я ж говорю, у меня oracle reports, у вас fastreport, потестить мне не на чем.
Если нужно - могу предоставить свой демо стенд на тестирование...если есть время конечно
12.01.2015 12:31
Надо не добавлять новый источник, а заменить запрос в существующем PriceCards.
И обращаться к нему.
12.01.2015 13:04
Цитата:
Mtirt Надо не добавлять новый источник, а заменить запрос в существующем PriceCards.
И обращаться к нему.
Взял стандартный price_card_example.frx, заменил в нем все, при выводе ценника выбивает:

Цитата:
2015.01.12 (Monday) 12:03:46
----- Прерывание работы программы -----
сообщение: "Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в 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-01008: не все переменные привязаны
"
исключение: System.Data.OracleClient.OracleException
источник: Sm.BusinessServer
данные: соединено с: База даных=DEMO91; Пользователь=supermag
текст команды: SELECT t_pr.article article,
t_pr.name name,
t_pr.cardcomment cardcomment,
t_pr.country country,
t_pr.price price,
sp.itemprice price_ma,
t_pr.qtyprint qtyprint,
t_pr.unitname unitname,
t_pr.isscale isscale,
t_pr.plu plu,
d.id ma_id,
TRUNC (au.datebegin) ma_datebegin,
TRUNC (au.dateend) ma_dateend
FROM supermag.svpricecard t_pr,
supermag.smdocuments d,
supermag.smspec sp,
supermag.smauctions au
WHERE t_pr.article = sp.article
AND d.doctype = 'MA'
AND d.id = sp.docid
AND d.doctype = sp.doctype
AND t_pr.article = sp.article
AND d.id = au.id
AND d.doctype = au.doctype
AND d.docstate = 2
AND au.datebegin >= TRUNC (SYSDATE)
AND :P_LOC IN (SELECT locid
FROM supermag.smauctionatoms am
WHERE am.aucid = d.id AND am.doctype = d.doctype)
ORDER BY ma_id, article
тип команды: 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.Data.DataConnectionBase.FillTable(TableDataSource source)
в FastReport.Data.TableDataSource.LoadData(ArrayList rows)
в FastReport.Data.DataSourceBase.Init(Relation relation, String filter, SortCollection sort, Boolean useAllParentRows)
12.01.2015 13:07
:P_LOC надо определить как переменную запроса и связать с переменной в отчете.
Мы недавно обсуждали здесь, как это сделать.
Часовой пояс GMT +3, время: 15:55.

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