P
pjxy
Unregistered / Unconfirmed
GUEST, unregistred user!
一下我是想通过判断如果xm_id相同的成员则sfje相加,
//通过list.delete(k), 同时合并为一个新成员。
//(意思是假设list有三个成员,如果第2和第3条的xm_id 相同,则
//第2和第3条sfje相加,同时list变成两个成员)
用list.delete(k),提示出错.
procedure Tf_hj.BitBtn3Click(Sender: TObject);
var
i:integer;
j,k,id:integer;
s:currency;
begin
//如果处方列表没有处理就退出
if not cflb then
begin
exit;
end;
if not cflb then
begin
exit;
end;
for j:=0 to list.Count -1 do
begin
id:=cf(list.Items[j]^).xm_id;
s:=cf(list.Items[j]^).sfje;
for k:=j+1 to list.Count -1 do
if id=cf(list.Items[k]^).xm_id then
s:=s+cf(list.Items[k]^).sfje;
cf(list.Items[j]^).sfje:=s;
list.delete(k);
//一下我是想通过判断如果xm_id相同的成员则sfje相加,
//通过list.delete(k), 同时合并为一个新成员。
//(意思是假设有三个成员,如果第2和第3条的xm_id 相同,则
//第2和第3条sfje相加,同时变成两个成员)
end;
for j:=0 to list.Count -1 do
begin
with sp1 do
begin
ParamByName('@xm_id').AsInteger :=cf(list.Items[j]^).xm_id;
ParamByName('@sfje').AsCurrency :=cf(list.Items[j]^).sfje;
paramByname('@cfhm').AsString :='';
end;
sp1.ExecProc ;
cf(list.Items[j]^).cf_id:=sp1.parambyname('result').AsInteger;
cf(list.Items[j]^).cfhm :=sp1.parambyname('@cfhm').AsString;
end;
end;
//通过list.delete(k), 同时合并为一个新成员。
//(意思是假设list有三个成员,如果第2和第3条的xm_id 相同,则
//第2和第3条sfje相加,同时list变成两个成员)
用list.delete(k),提示出错.
procedure Tf_hj.BitBtn3Click(Sender: TObject);
var
i:integer;
j,k,id:integer;
s:currency;
begin
//如果处方列表没有处理就退出
if not cflb then
begin
exit;
end;
if not cflb then
begin
exit;
end;
for j:=0 to list.Count -1 do
begin
id:=cf(list.Items[j]^).xm_id;
s:=cf(list.Items[j]^).sfje;
for k:=j+1 to list.Count -1 do
if id=cf(list.Items[k]^).xm_id then
s:=s+cf(list.Items[k]^).sfje;
cf(list.Items[j]^).sfje:=s;
list.delete(k);
//一下我是想通过判断如果xm_id相同的成员则sfje相加,
//通过list.delete(k), 同时合并为一个新成员。
//(意思是假设有三个成员,如果第2和第3条的xm_id 相同,则
//第2和第3条sfje相加,同时变成两个成员)
end;
for j:=0 to list.Count -1 do
begin
with sp1 do
begin
ParamByName('@xm_id').AsInteger :=cf(list.Items[j]^).xm_id;
ParamByName('@sfje').AsCurrency :=cf(list.Items[j]^).sfje;
paramByname('@cfhm').AsString :='';
end;
sp1.ExecProc ;
cf(list.Items[j]^).cf_id:=sp1.parambyname('result').AsInteger;
cf(list.Items[j]^).cfhm :=sp1.parambyname('@cfhm').AsString;
end;
end;