Ошибка при запуске Preparereport

отредактировано 10:45 Раздел: FastReport 4.0
Всем день добрый подскажите в чем может быть проблема !

Имеется процедура написанная в среде разработки Rad Studio XE2 (delphi) + Fastreport 4.0
Отчет берется из BLOB поля таблицы (БД Firebird 2.5) и загружается в поток , затем выполняеться следующий код
FReport.DataSets.Clear;
      FReport.Variables.Clear;
      FReport.Variables[' ' + cn_RestParam] := Null;
      FReport.Variables.AddVariable(cn_RestParam, 'DateBegin', '''' + DateToStr(DateBegin) + '''');
      FReport.Variables.AddVariable(cn_RestParam, 'DateEnd', '''' + DateToStr(DateEnd) + '''');
      FCompanyName := OptionsSystem.DB.CheckLine1 + ' ' + OptionsSystem.DB.CheckLine2 + ' ' +
        OptionsSystem.DB.CheckLine3 + ' ' + OptionsSystem.DB.CheckLine4;
      FReport.Variables.AddVariable(cn_RestParam, 'CompanyName', '''' + FCompanyName + '''');
      if FReport.PrepareReport then
      begin
        InitReportParams(FReport, HardwareModel.PrinterData.Name);
        FReport.ShowPreparedReport;
      end;



Проблема состоит в том что при запуске PrepairReport вылетает ошибка следующего содержания :
написал:
First chance exception at $767BC41F. Exception class Exception with message 'DMPMemo2: Error in expression 'HEADER."DOCUMENTDATE"': Identifier expected'. Process RestFrontManager.exe (1940)

Насколько я понимаю параметры не передаются в отчет. Но почему и как решить эту проблему я не знаю ! Помогите пожалуйста!
Заранее благодарен!

Комментарии

  • gpigpi
    отредактировано 10:45
    Приложите шаблон отчёта
  • отредактировано April 2014
    gpi написал: »
    Приложите шаблон отчёта

    Поскольку шаблон лежит в BLOB поле
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <Tgs_fr4SingleReport Version="4.12" DotMatrixReport="False" IniFile="\Software\Fast Reports" PreviewOptions.Buttons="4095" PreviewOptions.Zoom="1" PrintOptions.Printer="По умолчанию" PrintOptions.PrintOnSheet="0" ReportOptions.CreateDate="40694,4084859606" ReportOptions.Description.Text="" ReportOptions.LastChange="40739,8784395486" ScriptLanguage="PascalScript" ScriptText.Text="procedure OnBeforeReportPrint(Sender: TfrxComponent);
    var
      Q, P, Np, Comp, Header: TgsDataSet;
      DateBegin, DateEnd: TDate;
      BaseQuery: QueryList;
      DocDate: TDate;
      NomPP, DocKey, I: Integer;										 
    begin
      DateBegin := StrToDate(<DateBegin>);						   
      DateEnd := StrToDate(<DateEnd>);
    
      BaseQuery := GetQueryList;
      BaseQuery.Clear;
    		
      Q := BaseQuery.Query[BaseQuery.Add('Q', False)];
      Q.SQL :=
    	'	select ' +
    	'	coalesce(o.usr$pay, 0) as usr$pay, count(o.documentkey) as  countchek, ' +
    	'	sum(o.usr$guestcount) as guestcount ' +
    	'	from ' +
    	'	usr$mn_order o ' +	 
    	'	where o.usr$logicdate >= :datebegin ' +
    	'	and o.usr$logicdate <= :dateend ' +
    	'	group by  1 ' +
    	'	order by 1 desc ';
      Q.ParamByName('datebegin').AsDateTime := DateBegin;
      Q.ParamByName('dateend').AsDateTime := DateEnd;
      Q.Open;
    
    	  
      P := BaseQuery.Query[BaseQuery.Add('P' , False)];
      P.SQL :=
    	'	select ' +
    	'	  coalesce(o.usr$pay, 0) as usr$pay, pt.usr$name as typepay, ' +
    	'	  kt.usr$name as kindpay, ' +
    	'	  sum(p.usr$sumncu) as sumpayncu ' +
    	'	  from ' +
    	'	  usr$mn_payment p ' +
    	'	  LEFT join usr$mn_order o on o.documentkey = p.usr$orderkey ' +
    	'	  LEFT join USR$MN_KINDTYPE kt on kt.id = p.usr$paykindkey ' +
    	'	  LEFT join USR$INV_PAYTYPE pt on pt.id = kt.usr$paytypekey ' +
    	'	  where o.usr$logicdate >= :datebegin ' +
    	'	  and o.usr$logicdate <= :dateend and o.usr$pay = 1 ' +
    	'	  group by 1, kt.usr$name, pt.usr$name ';
      P.ParamByName('datebegin').AsDateTime := DateBegin;
      P.ParamByName('dateend').AsDateTime := DateEnd;
      P.Open;
    
      
      Np := BaseQuery.Query[BaseQuery.add('Np' , False)];
      Np.SQL := ' select coalesce(o.usr$pay, 0) as usr$pay, sum(ol.usr$sumncuwithdiscount) as sumncu from usr$mn_order o ' +
    	' join usr$mn_orderline ol on ol.masterkey = o.documentkey ' +
    	'	  where o.usr$logicdate >= :datebegin ' +
    	'	  and o.usr$logicdate <= :dateend and o.usr$pay + 0 = 0' +
    	'	  and ol.usr$causedeletekey + 0 is null ' +
    	' group by 1 ';
      Np.ParamByName('datebegin').AsDateTime := DateBegin;
      Np.ParamByName('dateend').AsDateTime := DateEnd;
      Np.Open;
    	  
      Header := BaseQuery.Query[BaseQuery.Add('Header', True)];
      Header.AddField('PAY', 'ftInteger', 0, False);
      Header.AddField('c', 'ftFloat', 0, False);
      Header.AddField('g', 'ftFloat', 0, False);
      Header.AddField('t', 'ftString', 60, False);
      Header.AddField('K', 'ftString', 60, False);
      Header.AddField('p', 'ftFloat', 0, False);
      Header.AddField('np', 'ftFloat', 0, False);
      Header.AddField('PS', 'ftString', 20, False);
      Header.AddField('COMPANY', 'ftString', 60, False);
      Header.AddField('Db', 'ftDate', 0, False);
      Header.AddField('De', 'ftDate', 0, False);
      Header.AddField('Time', 'ftDateTime', 0, False);
      Header.Open;
    
      while not Q.eof do
      begin
    	Header.Append;
    	Header.FieldByNAme('COMPANY').AsString := <CompanyName>;	 
    	Header.FieldByNAme('Db').AsDateTime := DateBegin;
    	Header.FieldByNAme('De').AsDateTime := DateEnd;
    	Header.FieldByNAme('Time').AsVariant := Now;
    
    	I := 0;
    	while I <= Q.FieldCount - 1 do
    	begin
    	  Header.Fields(I).AsString := Q.Fields(I).AsString;
    	  I := I + 1;										
    	end;
    	if Q.FieldByName('usr$pay').AsCurrency <> 1 then
    	begin
    	  Header.Edit;
    	  Header.FieldByName('PS').AsString := 'РРµ оплачено';
    	end else
    	begin
    	  Header.Edit;
    	  Header.FieldByName('PS').AsString := 'Оплачено';
    	end;
    	while not P.eof do
    	begin
    	  Header.Append;
    	  Header.FieldByName('t').AsString := P.FieldByName('typepay').AsString;
    	  Header.FieldByName('k').AsString := P.FieldByName('kindpay').AsString;
    	  Header.FieldByName('p').AsCurrency := P.FieldByName('sumpayncu').AsCurrency;
    	  P.Next;
    	end;
    	if Q.FieldByName('usr$pay').AsCurrency <> 1 then
    	begin
    	  Header.Edit;
    	  Header.FieldByName('p').AsCurrency := Np.FieldByName('sumncu').AsCurrency;
    	end;
    
    	Header.Post;
    	Q.Next;
      end;	  
      
    end;
    
    
    begin
    
    end." ShowProgress="False" OnBeforeReportPrint="OnBeforeReportPrint" PropData="0844617461736574730100095661726961626C65730100055374796C650100">
      <TfrxDataPage Name="Data" Height="1000" Left="0" Top="0" Width="1000"/>
      <TfrxReportPage Name="Page1" PaperWidth="79" PaperHeight="1000" PaperSize="256" LeftMargin="5" RightMargin="5" TopMargin="5" BottomMargin="5" ColumnWidth="0" ColumnPositions.Text="" HGuides.Text="" VGuides.Text="" OnBeforePrint="OnBeforeReportPrint">
    	<TfrxMasterData Name="MasterData1" Height="15,11812" Left="0" Top="260,78757" Width="260,78757" ColumnWidth="0" ColumnGap="0" DataSetName="Header" PrintChildIfInvisible="True" RowCount="0" Stretched="True">
    	  <TfrxMemoView Name="Memo13" Left="18,89765" Top="0" Width="98,26778" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="[HEADER."K"]"/>
    	  <TfrxMemoView Name="Memo14" Left="117,16543" Top="0" Width="143,62214" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" DisplayFormat.FormatStr="%2.0n" DisplayFormat.Kind="fkNumeric" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" HAlign="haRight" HideZeros="True" ParentFont="False" Text="[HEADER."p"]"/>
    	</TfrxMasterData>
    	<TfrxFooter Name="Footer1" Height="22,67718" Left="0" Top="298,58287" Width="260,78757">
    	  <TfrxMemoView Name="Memo8" Left="0" Top="0" Width="117,16543" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="Ртого"/>
    	  <TfrxMemoView Name="Memo15" Left="117,16543" Top="0" Width="143,62214" Height="15,11812" ShowHint="False" DisplayFormat.FormatStr="%2.2n" DisplayFormat.Kind="fkNumeric" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" HAlign="haRight" ParentFont="False" Text="[SUM(<HEADER."p">,MasterData1,1)]"/>
    	</TfrxFooter>
    	<TfrxReportTitle Name="ReportTitle1" Height="105,82684" Left="0" Top="18,89765" Width="260,78757">
    	  <TfrxMemoView Name="Memo1" Left="0" Top="0" Width="260,78757" Height="18,89765" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="0" HAlign="haCenter" ParentFont="False" Text="Отчёт по выручке"/>
    	  <TfrxMemoView Name="Memo2" Left="0" Top="18,89765" Width="260,78757" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" HideZeros="True" ParentFont="False" Text="Р·Р° период С [HEADER."Db"] РїРѕ [HEADER."De"]"/>
    	  <TfrxMemoView Name="Memo3" Left="0" Top="34,01577" Width="260,78757" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" ParentFont="False" Text="СЂР°Спечатан [HEADER."Time"]"/>
    	  <TfrxMemoView Name="Memo4" Left="0" Top="49,13389" Width="260,78757" Height="18,89765" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-13" Font.Name="Arial" Font.Style="0" HAlign="haCenter" ParentFont="False" Text="[HEADER."COMPANY"]"/>
    	  <TfrxMemoView Name="Memo5" Left="113,3859" Top="75,5906" Width="37,7953" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" ParentFont="False" Text="Чеки"/>
    	  <TfrxMemoView Name="Memo6" Left="151,1812" Top="75,5906" Width="37,7953" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" ParentFont="False" Text="ГоСти"/>
    	  <TfrxMemoView Name="Memo7" Left="188,9765" Top="75,5906" Width="71,81107" Height="15,11812" ShowHint="False" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" ParentFont="False" Text="РЎСѓРјРјР°"/>
    	</TfrxReportTitle>
    	<TfrxGroupHeader Name="GroupHeader1" Height="15,11812" Left="0" Top="185,19697" Width="260,78757" Condition="Header."PS"">
    	  <TfrxMemoView Name="Memo9" Left="0" Top="0" Width="117,16543" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" ParentFont="False" Text="[HEADER."PS"]"/>
    	  <TfrxMemoView Name="Memo10" Left="117,16543" Top="0" Width="37,7953" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" HideZeros="True" ParentFont="False" Text="[HEADER."c"]"/>
    	  <TfrxMemoView Name="Memo11" Left="154,96073" Top="0" Width="37,7953" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" HideZeros="True" ParentFont="False" Text="[HEADER."g"]"/>
    	  <TfrxMemoView Name="Memo16" Left="192,75603" Top="0" Width="68,03154" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="0" Frame.Typ="8" HAlign="haCenter" HideZeros="True" ParentFont="False" Text=""/>
    	</TfrxGroupHeader>
    	<TfrxGroupHeader Name="GroupHeader2" Height="15,11812" Left="0" Top="222,99227" Width="260,78757" Condition="Header."t"">
    	  <TfrxMemoView Name="Memo12" Left="11,33859" Top="0" Width="181,41744" Height="15,11812" ShowHint="False" StretchMode="smMaxHeight" Font.Charset="1" Font.Color="0" Font.Height="-11" Font.Name="Arial" Font.Style="1" HideZeros="True" ParentFont="False" Text="[HEADER."t"]"/>
    	</TfrxGroupHeader>
      </TfrxReportPage>
    </Tgs_fr4SingleReport>
    

    вот его код
  • отредактировано 10:45
    Спасибо разобрался !
    Надо было в опциях проекта установить Conditional Defines-> CUSTOM_FASTREPORT

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.