功能:查找匹配数据,条件在四个combobox组件中,要求实现组合查找
代码如下:
procedure TForm2.Button1Click(Sender: TObject);
var
s1,s2,s3,s4,ss:String;
s11,s22,s33,s44:String;
begin
  DataModule1.ADOTable1.Active:=false;
  DataModule1.ADOTable1.Filtered:=false;
  s1:='院系='''+trim(ComboBox1.Text)+'''';
  s2:='and 年级='''+trim(comboBox2.Text)+'''';
  s3:='and 专业='''+trim(comboBox3.Text)+'''';
  s4:='and 班级='''+trim(comboBox4.Text)+'''';  s11:='';
  s22:='';
  s33:='';
  s44:='';
  if ((combobox1.Text='') and (combobox2.Text<>'')) then
  s2:='年级='''+trim(comboBox2.Text)+'''';
  if ((combobox1.Text='') and (combobox2.Text='') and(combobox3.Text<>'')) then
  s3:='专业='''+trim(comboBox3.Text)+'''';
  if ((combobox1.Text='') and (combobox2.Text='') and(combobox3.Text='')and(combobox4.Text<>'')) then
  s4:='班级='''+trim(comboBox4.Text)+'''';  if combobox1.Text<>'' then
  begin
    s11:=s1;
    ss:=s11;
  end;
  if combobox2.Text<>'' then
  begin
    s22:=s2;
    ss:=ss+s2;
  end;
  if combobox3.Text<>'' then
  begin
    s33:=s3;
    ss:=ss+s3;
  end;
  if combobox4.Text<>'' then
  begin
    s44:=s4;
    ss:=ss+s4;
  end;
  DataModule1.ADOTable1.Filter:=ss;
  DataModule1.ADOTable1.Filtered:=true;
  DataModule1.ADOTable1.Active:=true;
end;我这样写功能是实现了,但总感觉方法很笨,应该还有其它方法吧?
高手指点!
俺现在的水平也就能写这样的了,能找到工作吗?不怎么自信啊~~

解决方案 »

  1.   

    大烦了,可以这样写啊,
    var 
    sql:string;
    begin
      sql:='select * from table1 where 1=1';
      if edit1.text<>'' then
      sql:=sql+' and 专业='''edit.text'''';
      if   then
      ......adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.text:=sql;
    adoquery1.open;
      

  2.   

    TForm2,ComboBox1,我说你能不能改成比较容易理解的Name
    要明白命名规则啊TfrmControl控制窗口,cbDepart院系...
      

  3.   

    命名+注释+语法
    http://dev.csdn.net/article/50/50806.shtm Delphi程序设计规范
      

  4.   

    我也这么用过呀,不过我现在想知道,是不是能用SQL语句的地方进量用呀,那样是不是会执行的快一点呢
      

  5.   

    delphi7下好像有更好的控件,直接可以实现。
    不管实现的方法如何,能够克尽职守实现之,为敬业,可用。
      

  6.   

    delphi7下好像有更好的控件,直接可以实现。哪个控件可以直接实现?
    请指教!
      

  7.   

    偶也想找个程序员的工作,现在开始改写成程序员的风格了
    变量的命名和程序书定的风格一定要注意呀!不然别人一看就知道程序不怎么地的!(个人意见!)
    还有就是终于知道了算法的重要性了.
    你的程序感觉用SQL语句或别的方法吧,感觉太多的IF了.
    祝你好运,偶也是刚毕业的学生,还在努力学习找工作中........
      

  8.   

    命名&注釋很重要,增加程序的可讀性,更方便自己以後閱讀,
    加油,會有機會的.祝你成功!
      

  9.   

    楼主要对自己有信心,我刚出来工作的时候连delphi都没用过