ComBobox的onSelect事件(30分)

  • 主题发起人 主题发起人 wuzhonglinquan
  • 开始时间 开始时间
W

wuzhonglinquan

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TFlowSerialForm.CB_FromDepartmentDropDown(Sender: TObject);
begin
CB_FromDepartment.Items.Clear;
with ADOQdo
begin
close;
sql.Clear;
sql.Add('select 部门名称 from 部门库房编号表 where 部门标识 in (01,02)');
open;
first;
while not eof do
begin
CB_FromDepartment.Items.Add(Fieldbyname('部门名称').AsString);
next;
end;
end;
end;

procedure TFlowSerialForm.CB_FromDepartmentSelect(Sender: TObject);
var
str:string;
begin
str:=CB_FromDepartment.Items[CB_FromDepartment.ItemIndex];
with ADOQdo
begin
close;
sql.Clear;
sql.Add('select 部门标识 from 部门库房编号表 where 部门名称='+Quotedstr(str));
open;
CB_FromDepartment.Text:='';
//CB_FromDepartment.Text希望赋值为02
CB_FromDepartment.Text:=Fieldbyname('部门标识').AsString;
end;
end;

就是相互转换,但是怎么也做不到,高手帮忙.
 
比如说表
部门标识 部门名称
02 '二分公司'
有一个ComboBox我写了dropdown事件,ComboBox下拉时我选择'二分公司',希望通过onselect事件把'二分公司'对应的'部门标识'02选出来,并此时赋予ComboBox.text,但是不行,希望帮忙.
 
试试OnChange事件
 
兄弟,哥们建议你使用DBComboBox,同样将数据添加到其Items中后(如[部门名称的'二分公司']),在其相关字段的GetText及SetText事件中写你相关的方法....这样显示出的还是二分公司,而实际在保存后,其结果为'02'
 
楼上的方法我明白也能做的到.
如果就是ComboBox能不能做的到呢?
 
如果只是用ComboBox没有太好的法,给推荐一个笨法试吧,需要建两个全局一维数组(或一个二维数据),按顺序保存名称(a1)和代码(a2),用 a2[combBox.itemindex]来获取相应部门的代码。
 
多人接受答案了。
 
后退
顶部