我有TQuery
计算字段N
如何在示例中增加数字(N
以5开头):
我尝试了这个,但没有:
procedure TForm1.Query1CalcFields(DataSet: TDataSet);
var i:integer;
begin
i := strtoint(edit2.Text);
Query1['N'] := inttostr(i+1);
end;
结果:
N
2
2
2
2
.
.
注意:Foxpro数据库,我使用BDE进行连接,它不一定是计算字段,我希望Incremented值在quickreport的打印中使用它,就像每个页面(不是pagenumber)的单个引用一样。 / p>
答案 0 :(得分:1)
我在 @kobik
的帮助下找到了这个解决方案在 TQRLabel 的印刷中,我添加此代码而不需要计算字段或其他可变:
procedure TForm1.QRLabel1Print(sender: TObject; var Value: string);
begin
value:=inttostr(Query1.RecNo+strtoint(edit2.Text)-1);
end;
答案 1 :(得分:0)
这是我测试它的一种简单方法:
1-声明用于保存自动编号的全局变量
2-将其设置为FormShow
至5
3-在OnCalcFields
中将全局变量分配给新字段
4-增量全局变量
注意:不要使用TEdit或任何东西来显示计算字段的结果,因为它只显示第一个结果。但所有结果都会正确保存在表格或查询中。
代码
全局变量:
var
Form1: TForm1;
i : Integer;
表格展示:
procedure TForm1.FormShow(Sender: TObject);
begin
i := 5;
end;
Calc Filed:
procedure TForm1.adoqry1CalcFields(DataSet: TDataSet);
begin
adoqry1['n'] := i;
//OR adoqry1N.AsInteger := i;
//OR adoqry1.FieldByName('n').AsInteger := i;
i := i + 1;
end;
最后,我使用ADOQuery
进行测试。