功能:查找匹配数据,条件在四个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;我这样写功能是实现了,但总感觉方法很笨,应该还有其它方法吧?
高手指点!
俺现在的水平也就能写这样的了,能找到工作吗?不怎么自信啊~~
代码如下:
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;我这样写功能是实现了,但总感觉方法很笨,应该还有其它方法吧?
高手指点!
俺现在的水平也就能写这样的了,能找到工作吗?不怎么自信啊~~
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;
要明白命名规则啊TfrmControl控制窗口,cbDepart院系...
http://dev.csdn.net/article/50/50806.shtm Delphi程序设计规范
不管实现的方法如何,能够克尽职守实现之,为敬业,可用。
请指教!
变量的命名和程序书定的风格一定要注意呀!不然别人一看就知道程序不怎么地的!(个人意见!)
还有就是终于知道了算法的重要性了.
你的程序感觉用SQL语句或别的方法吧,感觉太多的IF了.
祝你好运,偶也是刚毕业的学生,还在努力学习找工作中........
加油,會有機會的.祝你成功!