你的选择rx中的内存表建两个字段(ID INTEGER,NAME sTRING 20)
YOU CAN WRITE
IF RXDATAMEMORY1。ACTIVE THEN
BEGIN
RXDATAMEMORY1。INSERT
RXDATAMEMORY1。FIELDBYNAME(‘id’)。ASINTEGER;=0;
RXDATAMEMORY1。FIELDBYNAME(‘NAME’)。ASSTRING;=‘男’;
RXDATAMEMORY1。POST
。
END
而后在你的表的数据集中建立一个计算字段,在连接的时候选择关联RX的内存表。就可以了
如果还不明白请发信给我;MAIL IS 3BOY@OHU。COM
YOU CAN WRITE
IF RXDATAMEMORY1。ACTIVE THEN
BEGIN
RXDATAMEMORY1。INSERT
RXDATAMEMORY1。FIELDBYNAME(‘id’)。ASINTEGER;=0;
RXDATAMEMORY1。FIELDBYNAME(‘NAME’)。ASSTRING;=‘男’;
RXDATAMEMORY1。POST
。
END
而后在你的表的数据集中建立一个计算字段,在连接的时候选择关联RX的内存表。就可以了
如果还不明白请发信给我;MAIL IS 3BOY@OHU。COM
或者你在库中不存0、1直接存男女!
比如:产品编号跟产品名称等To:AdminBO()
我都看不懂,能否具体一点!
谢谢!
procedure TDataModule2.ClientDataSet1jbSetText(Sender: TField;
const Text: String);
begin
if Text='〇级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=0;
end else if Text='一级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=1;
end else if Text='二级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=2;
end else if Text='三级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=3;
end else if Text='四级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=4;
end else if Text='五级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=5;
end else if Text='六级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=6;
end else if Text='七级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=7;
end else if Text='八级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=8;
end else if Text='九级' then
begin
ClientDataSet1CDSDesigner5.AsInteger:=9;
end;
end;
然后将TComboBox的Field指向这个字段就可以了,如果要做的更好,还可以响应TDataSet的OnCulcaltedField事件,比如:
procedure TDataModule2.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
DataSet.FieldByName('jb').AsString:=NoToStr(DataSet.FieldByName('级别').AsInteger)+'级';
end;
首先DBCombox要动态建立,就是你Click相应的DBGrid时才出现。
DBCombox.items.add('女');
DBCombox.Items.Add('男');
建立时根据记录集对应记录更改DBCombox.text。
在DBCombox.OnChange事件中根据DBCombox.ItemIndex
{现在0是MM,1是GG}
Update原来的数据源。