数组操作问题!

angelior 2003-03-06 04:19:00

  有一报表的两个字段
  单位   数量
  --- ---
  KG    50
  PCS   100
  支    60
  KG    30
  组
.
.
....

要求将数量按单位来累加保存两个数组中!
最后用来打印出来成一个字符串!
...全文
25 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelior 2003-03-06
  • 打赏
  • 举报
回复
用一下午时间,问题自己解决了!
散分。。。。。
ihihonline 2003-03-06
  • 打赏
  • 举报
回复
这个破网,我贴了十多次,每次一点回复就出错;
害的我重写了两次。

FileName ;//给它给值的时候,就会执行打开文件操作;


K,气死了,刚刚写上去,一点回复,它什么也不见了。。。。。
var
Form1: TForm1;
DWArray : Array of String;
SLArray : Array of String;

implementation

{$R *.dfm}

procedure TForm1.FormDblClick(Sender: TObject);
var
Index : Integer;
begin
With DataSet do
begin
if Active then
Active := False;
SQL...
..
Open;
First;
if RecordCount > 0 then
begin
Index := 0 ;
SetLength(DWArray , RecordCount);
SetLength(SLArray ,RecordCount);
While Not Eof do
begin
DWArray[Index] := FieldByName('DWFieldName').AsString;
SLArray[Index] := FieldByName('SLFieldName').AsString;
Inc(Index);
Next;
end;
end;
end;
end;

Procedure...
var
Index : Integer;
StringValue : String;
begin
For Index := Low(DWArray) to High(DWArray) do
begin
StringValue := DWArray[Index] + SLArray[Index]....//进行操作;
end;
end;
wjlsmail 2003-03-06
  • 打赏
  • 举报
回复
sA : Array of String ;
i : Integer ;
s : String ;

i := 0 ;
with TADOQuery.Create(Nil) do
begin
ConnectionString := ... ; / Connection := ADOConnection1 ;
Sql.Text := 'select Sum(NumberFieldName) as Number from Table Group by DanweiField' ;
Open ;
First ;
SetLength(sA,RecordCount) ;
while Not Eof do
begin
sA[i] := FieldByName('Number').AsString ;
s := s + ' ' + sA[i] ;
Inc(i) ;
Next ;
end ;
Free ;
end ;
//使用这个数组,用完后释放 FreeMem(sA) ;
ShowMessage(s) ; // 最后用来打印出来成一个字符串!

//手写没有测试

MyCrooner 2003-03-06
  • 打赏
  • 举报
回复
依次比较A1中是否有相同的值, 如A1[1]和A1[3]相同,则删除A1[3],(不是直接删), 然后
A2[1] := A2[1] + A2[3], 删除A2[3] . 依次到A1没有相同的值.
依次加入 A1和A2中对应的值即可
ihihonline 2003-03-06
  • 打赏
  • 举报
回复
K,气死了,刚刚写上去,一点回复,它什么也不见了。。。。。
var
Form1: TForm1;
DWArray : Array of String;
SLArray : Array of String;

implementation

{$R *.dfm}

procedure TForm1.FormDblClick(Sender: TObject);
var
Index : Integer;
begin
With DataSet do
begin
if Active then
Active := False;
SQL...
..
Open;
First;
if RecordCount > 0 then
begin
Index := 0 ;
SetLength(DWArray , RecordCount);
SetLength(SLArray ,RecordCount);
While Not Eof do
begin
DWArray[Index] := FieldByName('DWFieldName').AsString;
SLArray[Index] := FieldByName('SLFieldName').AsString;
Inc(Index);
Next;
end;
end;
end;
end;

Procedure...
var
Index : Integer;
StringValue : String;
begin
For Index := Low(DWArray) to High(DWArray) do
begin
StringValue := DWArray[Index] + SLArray[Index]....//进行操作;
end;
end;
angelior 2003-03-06
  • 打赏
  • 举报
回复
是在报表中的打印操作!
angelior 2003-03-06
  • 打赏
  • 举报
回复
一个也行!只要能累加出来!不过不是用SQL语句!
wjlsmail 2003-03-06
  • 打赏
  • 举报
回复
select Sum(NumberFieldName) as Number from table group by DanweiField
myling 2003-03-06
  • 打赏
  • 举报
回复
要求将数量按单位来累加保存两个数组中!


没看明白,为什么要保存到两个数组中?

保存到一个数组中不就行了吗?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧