0 delphi
您好我有StringList的......在我的StringList如果ITEM_TYPE <>"备注"和gL_dept <>""会检查记录..如果在gl_dept记录有例如同一个值400 400,400,401..the值出来的2倍所以一次只添加400,然后它会转到下一条记录..但我的问题是当我做比较时,如果lstDept.indexOf(sdept)<> -1没有去这个语句,但它会回到这个语句.. if(tblSODitemtype)..如何将值添加到我的stringlist中..
lstDept := TStringList.Create;
tblSOD.DisableControls;
try
tblSOD.First;
while (not tblSOD.Eof) do begin
sDept := tblSODGL_DEPT.AsString;
if (tblSODITEM_TYPE.AsString <> 'REMARK') and (tblSODGL_DEPT.AsString <> '' ) then begin
if lstDept.IndexOf(sDept) <> -1 then begin
lstDept.add(tblSODGL_DEPT.asstring);
tblSOD.Next;
end;
end;
end;
finally
tblSOD.EnableControls;
lstDept.Free;
end;
Run Code Online (Sandbox Code Playgroud)
我认为问题是tblSOD.Next函数调用的位置
尝试改变这一点
while (not tblSOD.Eof) do begin
sDept := tblSODGL_DEPT.AsString;
if (tblSODITEM_TYPE.AsString <> 'REMARK') and (tblSODGL_DEPT.AsString <> '' ) then begin
if lstDept.IndexOf(sDept) <> -1 then begin
lstDept.add(tblSODGL_DEPT.asstring);
tblSOD.Next; //Problem
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
对此
while (not tblSOD.Eof) do begin
sDept := tblSODGL_DEPT.AsString;
if (tblSODITEM_TYPE.AsString <> 'REMARK') and (sDept <> '' ) then begin
if lstDept.IndexOf(sDept) <> -1 then
lstDept.add(sDept);
end;
tblSOD.Next;
end;
Run Code Online (Sandbox Code Playgroud)