創建一個簡單的Help窗體

創建一個簡單的Help窗體_第1张图片

//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;

 

 

 

具體的做法可以參達成計價單中的車輛選擇做法.

你可能感兴趣的:(null,Integer,application)