我有兩個表,一個存貨檔案表,一個單據明細表,單據明細表里只記錄了存貨編碼,想增加單據的時候能顯示【存貨名稱】,【規格】,【單位】等相關資訊,需要管理存貨檔案表,我現在使用adodataset連接資料庫,但是增加lookup列時總提示“.....field '商品名稱’cannot be a calculated or lookup field”,不只是哪里不正確,以下是主要代碼,請有經驗者幫忙。
......
......
splookupdataset:=Tadodataset.Create(nil);
splookupdataset.CommandText:='select bm,mc,gg from t_bm_sp' ;
splookupdataset.Connection:=dm1.dmADOCon1;
splookupdataset.Open ;
adodsdetail.CommandType :=cmdtext;
adodsdetail.CommandText :='select * from mx_acceptAffirm_c';
adodsdetail.Connection :=dm1.dmADOCon1;
AddCalField(adodsdetail,splookupdataset,'mc',fkLookup,'商品名稱') ;
......
......
function AddCalField(dataset,LookupDataSet:TADOdataset;CalFieldName:String;CalFieldKind:TFieldKind;CalFieldCaption:string):boolean;
var fldLookup:TField ;
begin
result :=false;
if Dataset.FindField(CalFieldName)<>nil then
exit;
if Dataset.Active then Dataset.Close;
fldLookup:=TField.Create(dataset);
fldLookup.ReadOnly:=true;
fldLookup.LookupCache:=true;
fldLookup.Lookup:=true;
fldLookup.FieldName:=CalFieldName;
fldLookup.DisplayLabel:=CalFieldCaption;
fldLookup.Name:=dataset.Name + fldLookup.FieldName;
fldLookup.DataSet:=Dataset;
fldLookup.FieldKind:=CalFieldKind;
fldLookup.LookupDataSet:=LookupDataSet;
fldLookup.LookupKeyFields:='bm';
fldLookup.KeyFields:='Bm_sp';
fldLookup.LookupResultField:=CalFieldName;
dataset.FieldDefs.Update; //到這里時提示上述錯誤
result:=true;
end;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140844.html
標籤:數據庫相關
下一篇:Mac安裝Docker配置網易源
