Delphi 比较后将数据插入stringlist

Delphi 比较后将数据插入stringlist,delphi,Delphi,您好,我有stringlist…在我的stringlist中,如果项目类型为“备注”,总账部门将检查记录。。 如果总账部门中的记录具有相同的值,例如400400401..则400的值将显示两次 所以一次只加400,然后它会进入下一个记录。但我的问题是 当我进行比较时,如果lstDept.indexOf(sdept)-1不指向此语句,但它将返回到此语句。。如果(tblSODitemtype)。。 如何将该值添加到stringlist中 lstDept := TStringList.Create

您好,我有stringlist…在我的stringlist中,如果项目类型为“备注”,总账部门将检查记录。。 如果总账部门中的记录具有相同的值,例如400400401..则400的值将显示两次 所以一次只加400,然后它会进入下一个记录。但我的问题是 当我进行比较时,如果lstDept.indexOf(sdept)-1不指向此语句,但它将返回到此语句。。如果(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;  
lstDept:=TStringList.Create;
tblSOD。禁用控制;
尝试
首先;
而(不是tblSOD.Eof)确实开始
sDept:=tblSODGL_部门关联;
如果(tblSODITEM_TYPE.AsString'REMARK')和(tblSODGL_DEPT.AsString'),则开始
如果lstDept.IndexOf(sDept)-1,则开始
第一部门新增(待编制部门关联);
tblSOD。下一步;
结束;
结束;
结束;
最后
tblSOD.EnableControls;
免费学习;
结束;

我认为问题在于
tblSOD的位置。下一个
函数调用

试着改变这个

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; 
while(不是tblSOD.Eof)开始
sDept:=tblSODGL_部门关联;
如果(tblSODITEM_TYPE.AsString'REMARK')和(tblSODGL_DEPT.AsString'),则开始
如果lstDept.IndexOf(sDept)-1,则开始
第一部门新增(待编制部门关联);
tblSOD。下一步//问题
结束;
结束;
结束;
对此

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; 
while(不是tblSOD.Eof)开始
sDept:=tblSODGL_部门关联;
如果(tblSODITEM_TYPE.AsString'REMARK')和(sDept'),则开始
如果lstDept.IndexOf(sDept)-1,则
第一部门增加(sDept);
结束;
tblSOD。下一步;
结束;

此外,还有几个额外的呼叫tblSODGL_DEPT.AsString,可以用sDept代替。