【发布时间】:2017-10-10 17:38:38
【问题描述】:
您好,我是 Delphi 的新手,我正在为新雇用的员工创建报告。我正在使用 Fast Report、Delphi XE2 和 Firebird 数据库。
我在为变量值编写条件时遇到问题。
如果 EDU_COLL_REMARK 字段值为空,我希望将变量的值处理为“HIGH SCHOOL GRADUATE”之类的值。和COLLEGE GRADUATE,如果它有一个价值......就像我一样。
if dmapp.sqtrans.parambyname('EDU_COLL_REMARK').IsNull then
dmapp.frxReport1.Variables['edu'] := QuotedStr('HIGH SCHOOL GRADUATE');
else
dmapp.frxReport1.Variables['edu'] := QuotedStr('COLLEGE GRADUATE');
但它不起作用。它返回一个
错误 SQTrans:找不到参数 EDU_COLL_REMARK。
怎么了?请帮帮我。
这是我的全部代码:
dmApp.sqTRANS.SQL.Clear;
dmApp.sqtrans.SQL.Add('Select s.SKILLS_NAME, c.CUST_NAME, e.FULL_NAME, e.REFER_1NAME, e.HIRE_DATE, e.AGE, e.HEIGHT_FEET, e.HEIGHT_INCH, e.EDU_COLL_REMARK, e.TEST_1TITLE, e.SEC_EXPERIENCE_YEARS, e.CELL_NO, e.ADDRESS_LINE FROM EMPLOYEE e INNER JOIN CUSTOMER c ' +
'on e.CUST_NO=c.CUST_NO ' +
'FULL JOIN SKILLSTABLE s on e.SKILLS_NO=s.SKILLS_NO ' +
'WHERE EXTRACT(MONTH FROM HIRE_DATE) = :M_HIRE_DATE ' +
'AND EXTRACT(YEAR FROM HIRE_DATE) = :Y_HIRE_DATE ' +
'order by HIRE_DATE DESC');
dmApp.sqTRANS.ParamByName('M_HIRE_DATE').AsString := FormatDateTime('MM', dpdate.Date);
dmApp.sqTRANS.ParamByName('Y_HIRE_DATE').AsString := FormatDateTime('yyyy', dpdate.Date);
if dmapp.sqtrans.parambyname('EDU_COLL_REMARK').IsNull then
dmapp.frxReport1.Variables['edu'] := QuotedStr('HIGH SCHOOL GRADUATE');
else
dmapp.frxReport1.Variables['edu'] := QuotedStr('COLLEGE GRADUATE');
dmApp.sqTRANS.ExecSQL();
dmApp.frxDBDataset1.DataSet := dmApp.sqTRANS;
dmApp.frxReport1.LoadFromFile('c:\vitech3\NewlyHired.fr3');
dmapp.frxReport1.variables['COMPANYNAME'] := QuotedStr(Globals.GetCompanyName);
dmapp.frxReport1.variables['COMPANYADD'] := QuotedStr(Globals.GetCompanyAddr + ' Cubao, Quezon City');
dmapp.frxReport1.variables['CAPTION'] := QuotedStr('Newly Hired Report for ' + FormatDateTime('MMMM', dpdate.date) + ' ' + FormatDateTime('yyyy', dpdate.date));
dmApp.frxReport1.ShowReport();
【问题讨论】:
标签: delphi delphi-xe2 fastreport