当前位置:主页>仓库管理软件> 列表

简单问题,变量付值。 找免费库存软件

财务软件版1楼: var A,C,B:integer;

for A:=0 to cb2.Items.Count-1 do
begin
with query_add do
begin
close;
sql.Text:=''select prct_model,sum(st_num) as st_num,st_remark from ''+
''stock where prct_model=''
+quotedstr(cb2.Items[A])+'' group by prct_model,st_remark'';
open;
end;
for C:=A to query_add.RecordCount-1 do //C:=A这块A的值传不到C里面去??
begin
for B:=0 to query_add.FieldCount-1 do
begin
stringGrid1.Cells[B,C+1]:=query_add.Fields[B].AsString;
query_add.Next;
end;
end;
end;

2楼: 肯定能传到。 如免费库存软件

3楼: 没道理

4楼: 当A 大于 query_add.RecordCount-1 的时候
for C:=A to query_add.RecordCount-1 do 这个循环不会执行,所以 C 就得不到新的赋值。
上面那句是不是应该改为:for C := 0 to query_add.RecordCount-1 do

5楼: to liyinwei


A 不可能大于query_add.RecordCount-1 。至多是等于。

不能改为:for C := 0 to query_add.RecordCount-1 do
如果改为C:=0,那么StringGrid只能显示最后 一 条记录。

6楼: majie_zhb:
for C:=A to query_add.RecordCount-1 do //C:=A这块A的值传不到C里面去??
begin
ShowMessage(''A=''+InttoStr(A)+'' ''+''C=''+InttoStr(C));
加这个消息测试,在第一次循环的时候A一定是等于C,
除非query_add.RecordCount-1根本就小于A,那么根本不进入循环。

财务软件版7楼: 好了。搞定了。

谢谢各位。送分!

8楼: for C:=A to query_add.RecordCount-1 do //C:=A这块A的值传不到C里面去??
在此行搞个断点,看看到底传了值没有,不就行了嘛

9楼: 楼主是说StringGrid显示有问题吧?
应该是 query_add.Next; 放错地方了
应该放在 for B:=0 to query_add.FieldCount-1 do 这个循环的外面吧!