Access Violation при работе с переменными
Использую Delphi7 и FastReport 4.9. Столкнулся со странной проблемой при работе с переменными.
Добавил в отчете две преременные var1 и var2. В Delphi в событии frxReport OnGetValue пишу следующий код:
При запуске отчета frxReport.ShowReport(); вылетает ошибка:
Причем если сделать так:
Delphi:
Delphi:
Не понимаю, в чем дело. Помогите, пожалуйста.
Добавил в отчете две преременные var1 и var2. В Delphi в событии frxReport OnGetValue пишу следующий код:
procedure TForm1.frxReportGetValue(const VarName: String; var Value: Variant);
begin
// Имя
frxReport.Variables['var1'] := AnsiQuotedStr(Query1['name'], '''');
// Дата
frxReport.Variables['var2'] := Query1.ParamByName('date').AsDate;
end;
В скрипте отчета:
procedure ReportTitleOnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Text := UpperCase(<var1>) + ' от ' + DateToStr(<var2>);
end;
При запуске отчета frxReport.ShowReport(); вылетает ошибка:
Access violation at address 0064DE9D in module 'project1.exe'. Read of address 000002F8
Причем если сделать так:
Delphi:
procedure TForm1.frxReportGetValue(const VarName: String; var Value: Variant);
begin
// Имя
frxReport.Variables['var1'] := AnsiQuotedStr(Query1['name'], '''');
end;
FastReport:
procedure ReportTitleOnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Text := UpperCase(<var1>);
end;
или так:Delphi:
procedure TForm1.frxReportGetValue(const VarName: String; var Value: Variant);
begin
// Имя
frxReport.Variables['var1'] := AnsiQuotedStr(Query1['name'], '''');
// Дата
frxReport.Variables['var2'] := Query1.ParamByName('date').AsDate;
end;
FastReport:
procedure ReportTitleOnBeforePrint(Sender: TfrxComponent);
begin
Memo1.Text := ' от ' + DateToStr(<var2>);
end;
То все работает.Не понимаю, в чем дело. Помогите, пожалуйста.
Комментарии