我在做一个下拉菜单使用combobox控件
里面内容我想从数据库里读取
做过的 指点指点
感谢呵呵
我在做一个下拉菜单使用combobox控件
里面内容我想从数据库里读取
做过的 指点指点
感谢呵呵
你为什么要用adoquery打开多个表。
不能一次取完吗?
而且你这个完全是一种数据显示,
对于做软件来说意义不大,
怎么不考虑用面向对象去封装一下数据集,。
感谢大家
下面是个3级下拉菜单 都是从数据库读取内容的
我已经有代码拉 不过别人帮忙做的
那位高手能帮忙注释下什么意思
我的表ywzl 字段有yjl ejl sjl
业务种类 一级类 2级类 3级类
我注释了一部分 还有的不知道
procedure Tts.LoadDataToCombox(Target:TComboBox;DataColumn:String;Condition:String='');
begin
if Target=nil then Exit;
if DataColumn<='' then Exit; //不知道什么意思
with ADOQuery1 do
begin
Close; //distinct 表示无重复显示字段内容
SQL.Text:='SELECT DISTINCT '+DataColumn+' FROM ywzl WHERE '+DataColumn+' IS NOT NULL '+IfThen((Condition<=''),'',' AND '+Condition); // 不知道什么意思
Open;
Target.Items.Clear;
while not Eof do
begin
Target.Items.Add(Fields.Fields[0].AsString);//不知道什么意思
Next;
end;
Close;
end;
Target.Visible:=(Target.Items.Count>0); //透明取决于combobox里面的内容大于0则返回true
end;
procedure Tts.FormCreate(Sender: TObject);
begin
LoadDataToCombox(ComboBox4,'yjl'); //combobox4中的内容显示 字段为yjl的内容 1级类
end;
procedure Tts.ComboBox4Change(Sender: TObject);
begin
LoadDataToCombox(ComboBox5,'ejl','yjl='''+ComboBox4.Text+''''); //combobox5中的内容显示 字段为ejl的内容 2级类 条件是 // 条件不知道是什么
ComboBox6.Visible:=False;
end;
procedure Tts.ComboBox5Change(Sender: TObject);
begin
LoadDataToCombox(ComboBox6,'sjl','yjl='''+ComboBox4.Text+''' AND ejl='''+ComboBox5.Text+'''');
end;