【发布时间】:2013-08-09 05:20:28
【问题描述】:
快速报告显示来自 ADOquery 的错误数据时遇到问题。我使用以下 sql.text
SELECT * FROM JOB_DATA
INNER JOIN CUSTOMER ON JOB_DATA.CUST_CODE = CUSTOMER.CUST_CODE
WHERE JOB_DATA.SHIP_DATE Between [Date1] And [Date2]
ORDER by SHIP_DATE
Fast Report 仅显示 SHIP_DATE = null 的数据。
如果我抛出一个 TDBgrid 并将其附加到附加到同一个 ADOquery 的数据源,那么 dbgrid 会显示完全正确的信息。
我没有想法,有什么建议吗?
回答有关日期来源的问题:
var
date1:string;
date2:string;
sql_str:string;
begin
date1:=inputbox('Date Range','Enter Beginning Date','');
Try
StrToDate(date1);
Except
On EConvertError Do
Begin
MessageDlg('Please enter a valid date. Format xx/xx/xx',
mtError, [mbOK], 0);
//ShowMessage('Please enter a valid date. Format `enter code here`xx/xx/xx');
Exit;
End;
End;
date2:=inputbox('Date Range','Enter Ending Date','');
Try
StrToDate(date2);
Except
On EConvertError Do
Begin
MessageDlg('Please enter a valid date. Format xx/xx/xx',
mtError, [mbOK], 0);
//ShowMessage('Please enter a valid date. Format `enter code here`xx/xx/xx');
Exit;
End;
End;
sql_str:= 'SELECT * FROM JOB_DATA INNER JOIN CUSTOMER ON ' +
'JOB_DATA.CUST_CODE = CUSTOMER.CUST_CODE ' +
'WHERE JOB_DATA.SHIP_DATE Between ';
sql_str:= sql_str+ ''' ';
sql_st:=sql_str + date1;
sql_str:= sql_str+ '''';
sql_str:= sql_str+ ' AND ';
sql_str:= sql_str+ ''' ';
sql_str:= sql_str+ date2;
sql_str:= sql_str+ ' ''';
with ADOQuery5 do
begin
Close;
SQL.Clear;
SQL.text:= sql_str;
Open;
end;
frxreport2.ShowReport();
end;
ADOquery 附加到 frxDBDataset2,frxDBDataset2 附加到 frxReport2。我没有做任何事情来改变查询中的结果。
不,我在报告中没有代码,它都是由向导生成的。
【问题讨论】:
-
您如何将报告与数据联系起来? FR 只显示您的查询包含的内容,除非您自己做一些改变。
Date1和Date2来自哪里?您的问题是 FR 做错了什么,但您根本没有提供有关 FR 的信息;您刚刚显示了一个查询并说“FR 显示不正确的数据”,没有我们可以用来尝试帮助您的详细信息。 -
ADOquery 附加到 frxreport2 附加的 frxDBDataset2 我从 date1:=inputbox('Date Range','Enter Starting Date','');
-
请edit您的问题在此处添加任何其他详细信息,因此我们不必从 cmets 中挑选它们并且可以正确格式化它们。这只是信息的一半。
date1如何从您显示的行中获取查询的一部分?它只是没有出现在那里,因为您从inputbox获得了一个值。你有任何代码是报告本身的一部分吗?如果您需要帮助,请提供详细信息,以便我们提供帮助。请不要让我们乞求每一条信息。 -
报告完全由向导生成。我在 FR 中没有写代码。无论我输入什么日期范围 FR 只显示 SHIP_DATE = null 的数据,但 dbgrid 正确显示日期范围。
-
我发布了一个可能有帮助的答案。如果没有,至少您可以更新代码以提高可读性。 :-) (当您在此处发布代码时,您应该正确格式化它以便我们可以阅读它。单击标有
?的橙色小按钮向您展示如何操作,您可以在输入代码的下方预览它这样你就会知道它看起来是正确的。如果我们看不懂它,那就更难提供帮助了。我是通过修复你发布的最后一个代码来帮助你的。)
标签: delphi fastreport