我做了DBGrid作为一个表的录入界面,录入收款纪录:
收款员ID、单号、金额另有一张表纪录收款员信息:收款员ID,姓名我想实现这样的效果,DBGrid中收款员一栏以收款员名字出现,比如说下拉列表,
录入收款单时录入人不必记忆收款人ID,直接能下拉列表选一下收款人姓名即可,即DBGrid为收款人(姓名) 单号 金额不知可否实现?
收款员ID、单号、金额另有一张表纪录收款员信息:收款员ID,姓名我想实现这样的效果,DBGrid中收款员一栏以收款员名字出现,比如说下拉列表,
录入收款单时录入人不必记忆收款人ID,直接能下拉列表选一下收款人姓名即可,即DBGrid为收款人(姓名) 单号 金额不知可否实现?
再在pinklist 中添加就ok了!
参考一下://动态创建
var
a:TStringList;
begin
a:=TStringList.Create;
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Text:='select * from Table1';
Open;
while not Eof do
begin
a.Add(FieldValues['姓名']);
Next;
end;
end;
dbgrid1.Columns[1].PickList:=a;
a.Free;
但在表里面想存入的是收款员ID,我如何让pinklist中姓名和ID自动对应上?
SQL.Text:='select '姓名' from Table1';
DisplayText: Boolean);
begin
case Sender.AsInteger of
0: Text := '男';
1: Text := '女';
2: Text := '两性人';
else
Text := Sender.AsString;
end;
end;
var
id1:string;
with ADOQuery do
begin
Close;
SQL.Clear;
SQL.Text:='select ID from table1 where 姓名='''+dbgrid1.Fields[1].AsString+'''' //把你从Picklist下拉列表选取的姓名对应的ID取出来
Open;
id1:=FieldByName('ID').Asstring; //用这一变量存入你提取的ID号
---------------------------------------
对象 属性 设定值
---------------------------------------
Table1 DataBase sy1
TableName zgk.dbf //职工信息库
DataSource1 DataSet Table1
DbGrid1 DataSource DataSource1
DBNavigator1 DataSource Datasource1
----------------------------------------------- 2、 双 击Table1, 在 弹 出 的Form1.Table1 窗 口 中, 用 右 键 弹 出 快 捷 菜 单, 单 击Add Fields 菜 单 项; 选 择 所 有 的 字 段 后, 按OK 按 钮。 ---- 3、 修 改 第2 步 新 增 字 段 的DisplayLabel 属 性。 以Table1ZGBH 字 段 为 例, 在Object Inspector 窗 口 中 选 择Table1ZGBH, 修 改 属 性DisplayLabel= 职 工 编 号, 其 余 字 段 类 似。 ---- 4、 双 击DBGrid1, 在 弹 出 的Editing DBGrid1.Columns 窗 口 中, 单 击Add all Fields 按 钮, 增 加Table1 的 所 有 字 段。 ---- 5、 在Editing DBGrid1.Columns 窗 口, 选 择jg 这 一 行, 切 换 到Object Inspector 窗 口, 修 改 它 的PickList.Strings 为“ 湖 北 枝 江 市
北 京 市
河 南 平 顶 山 市
浙 江 德 清 市” ---- 6、 在Form1.Oncreate 事 件 中 写 入 语 句:
---- Table1.Open; ---- 7、F9 运 行, 用 鼠 标 点 击 某 个 记 录 的 籍 贯 字 段, 右 边 即 出 现 一 个 按 钮, 点 击 这 个 按 钮, 可 出 现 一 个 下 拉 列 表, 包 含 第5 步 中 输 入 的 四 行 字 符 串, 可 用 鼠 标 进 行 选 择。 当 然 也 可 以 自 行 输 入 一 个 并 不 属 下 拉 列 表 中 的 字 符 串。