能不能将这些过程减缩成一个过程,它的功能,其实就是在ComBobox中显示出查找的内容而已。
procedure TCarderQueryForm.ShowCarderType;
begin
  with DM.QueCarderQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ztypename from zidlookup where ztypeid>103700 and ztypeid<103800 Order by ztypeid Asc');
      Open;
    end;  if Not IsEmpty then
    begin
      First;
      TempList:=TStrings.Create;
      TempList.Clear;
        while Not Eof do
          begin
            TempList.Add(Fields[0].AsString);
            Next;
          end;
        ComBobox1.Items:=TempList;
    end;
end;procedure TCarderQueryForm.ShowCarderNation;
begin
  with DM.QueCarderQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ztypename from zidlookup where ztypeid>100100 and ztypeid<100200 Order by ztypeid Asc');
      Open;
    end;  if Not IsEmpty then
    begin
      First;
      TempList:=TStrings.Create;
      TempList.Clear;
        while Not Eof do
          begin
            TempList.Add(Fields[0].AsString);
            Next;
          end;
        ComBobox2.Items:=TempList;
    end;
end;procedure TCarderQueryForm.ShowCarderProvince;
begin
  with DM.QueCarderQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ztypename from zidlookup where ztypeid>100200 and ztypeid<100300 Order by ztypeid Asc');
      Open;
    end;  if Not IsEmpty then
    begin
      First;
      TempList:=TStrings.Create;
      TempList.Clear;
        while Not Eof do
          begin
            TempList.Add(Fields[0].AsString);
            Next;
          end;
        ComBobox3.Items:=TempList;
    end;
end;procedure TCarderQueryForm.ShowCarderCounty;
begin
  with DM.QueCarderQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select ztypename from zidlookup where ztypeid<100400 and ztypeid>100300 Order by ztypeid Asc');
      Open;
    end;
  if Not IsEmpty then
    begin
      First;
      TempList:=TStrings.Create;
      TempList.Clear;
        while Not Eof do
          begin
            TempList.Add(Fields[0].AsString);
            Next;
          end;
        ComBobox4.Items:=TempList;
    end;
end;

解决方案 »

  1.   

    传两个int型的参数,把<和>那里换为参数就可以了
      

  2.   

    procedure TCarderQueryForm.ShowCarderType(SQLCondition:String;Combobox:TCombobox);
    begin
      with DM.QueCarderQuery do
        begin
          Close;
          SQL.Clear;
          SQL.Add('select ztypename from zidlookup '+SQLCondition);
          Open;
        end;  if Not IsEmpty then
        begin
          First;
          TempList:=TStrings.Create;
          TempList.Clear;
            while Not Eof do
              begin
                TempList.Add(Fields[0].AsString);
                Next;
              end;
            ComBobox.Items:=TempList;
            TempList.fRee;
        end;