这也叫数据库难题吗? 或者在表二中增加一个部门中文名称字段,或者新建一个部门ID与中文名称的对应关系表。 如果不希望在数据库里保存中文名称,那么在程序里建对应关系数组好了,运行时去查找。 如 var relation : array[1..2,1..10] of string; begin relation[1][1] := '1'; relation[1][2] := '开发室' ... end; 编程重要的是思想,并不是一味代码,这样水平才有真正提高
对正如careerist() ( ) 所说的,表二至少要又两个字段,一个编号,另一个是部门名称。 在向下拉框导入时导入部门名称,在保存时保存编号。 向下拉框中导入部门名称: table2.open; table2.first; i:=table2.recordcount; if i>0 then beign for j:=0 to i-1 do begin s:=table2.fieldvalues['部门名称']; if pos(s,combobox1.items.text)<=0 then combobox1.items.add(s); table2.next; end; end; 向数据库中保存: table2.open; with table2 do locate('编部门名称,combobox1.text); s:=table2.fieldvalues['编号']; table1.open; table1.append; table1.fieldvalues['字段名']:=s; . . . table1.post;
DataSource和DateField是你要保存的表的数据源和对应字段;
ListSource是下拉的数据源
listField是下拉显示的字段,例如部门的中文名称的字段;
keyField是对应的部门id的字段保存的时候像其他数据库控件那样保存就行了
Table1.post;
或者在表二中增加一个部门中文名称字段,或者新建一个部门ID与中文名称的对应关系表。
如果不希望在数据库里保存中文名称,那么在程序里建对应关系数组好了,运行时去查找。
如
var
relation : array[1..2,1..10] of string;
begin
relation[1][1] := '1';
relation[1][2] := '开发室'
...
end;
编程重要的是思想,并不是一味代码,这样水平才有真正提高
在向下拉框导入时导入部门名称,在保存时保存编号。
向下拉框中导入部门名称:
table2.open;
table2.first;
i:=table2.recordcount;
if i>0 then
beign
for j:=0 to i-1 do
begin
s:=table2.fieldvalues['部门名称'];
if pos(s,combobox1.items.text)<=0 then
combobox1.items.add(s);
table2.next;
end;
end;
向数据库中保存:
table2.open;
with table2 do
locate('编部门名称,combobox1.text);
s:=table2.fieldvalues['编号'];
table1.open;
table1.append;
table1.fieldvalues['字段名']:=s;
.
.
.
table1.post;