//bteVechileName->Properties->OnButtonClick事件
procedure TfrmMTOBill.bteVechileNamePropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
var
frmHelp: TfrmVehiclePriceHelp;
s1: string;
begin
if not (BOBroker.Processor.State in [psInsert, psEdit]) then
Exit;
//
frmHelp := TfrmVehiclePriceHelp.Create(Application);
try
with frmHelp do
begin
PlaceName := Self.MasterDataSet.FieldByName('City').AsString; //傳入參數:運抵城市的名稱
CMB := Self.MasterDataSet.FieldByName('CMB' + s1).AsFloat; //傳入參數:要運送的體積數
// SourceProcessor := AProcessor;
// EditKind := AEditKind;
// LoadFormData;
// OpenFormData;
ShowModal;
if ModalResult = mrOk then
begin
//dsVehicle是在編輯的數據集
if not (dsVehicle.State in [dsInsert, dsEdit]) then
dsVehicle.Edit;
dsVehicle.FieldByName('VehicleID').AsVariant := VehicleID;
dsVehicle.FieldByName('aVehicleName').AsString := VehicleName;
dsVehicle.FieldByName('CalFlag').AsInteger := CalFlag;
dsVehicle.FieldByName('Price').AsFloat := Price;
dsVehicle.FieldByName('Qty').AsFloat := Qty; //多少車
dsVehicle.FieldByName('Amount').AsFloat := Amount;
end;
end;
finally
FreeAndNil(frmHelp);
end;
end;
//Help窗體的FormShow事件
procedure TfrmVehiclePriceHelp.FormShow(Sender: TObject);
var
vPlaceID: Variant;
begin
inherited;
//設定當前的Connection, 這個很關鍵
CN.Connection := AppManager.Connection.Connection;
//根據城市名稱找出ID
vPlaceID := TSqlProc.GetFieldValue('select top 1 ID from pub_Place where PlaceName=''' + PlaceName + '''');
if vPlaceID = '' then
vPlaceID := null;
//
dsHelp.Close;
dsHelp.Params.ParamByName('pPlaceID').AsString := GuidToStr(vPlaceID);
dsHelp.Params.ParamByName('pCMB').AsFloat := FCMB;
dsHelp.Open;
//
if gdHelp.CanFocus then
gdHelp.SetFocus
end;
//按下選中按鈕
procedure TfrmVehiclePriceHelp.aOkExecute(Sender: TObject);
begin
if dsHelp.IsEmpty then
begin
ShowMyMsg('系統提示', '無記錄可以選中!');
Abort;
end;
//
FVehicleID := dsHelp.FieldByName('VehicleID').AsVariant; //選中車型ID
FVehicle := dsHelp.FieldByName('VehicleName').AsString; //選中車型名稱
FCalFlag := dsHelp.FieldByName('CalFlag').AsInteger; //按車計或按立方計
FPrice := dsHelp.FieldByName('Price').AsFloat; //單價
FQty := dsHelp.FieldByName('Qty').AsFloat; //多少車
FAmount := dsHelp.FieldByName('Amount').AsFloat; //運費
Close;
Self.ModalResult := mrOk;
end;
具體的做法可以參達成計價單中的車輛選擇做法.