⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufrmtaskshow.pas

📁 a voice guide client ,it is the second part of voice guide center
💻 PAS
字号:
unit ufrmTaskShow;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxLookAndFeelPainters, cxMaskEdit, cxDropDownEdit, RzButton,
  RzRadChk, cxMemo, StdCtrls, cxButtons, VirtualTrees, cxLabel, cxControls,
  cxContainer, cxEdit, cxTextEdit, ExtCtrls, RzPanel, dxDockPanel,
  dxDockControl, DateUtils, uBaseODMDefs, uITaxiServiceModuleTaskManagerDefs,
  Mask, RzEdit;

type
  TfrmTaskShow = class(TForm)
    dxDockSite1: TdxDockSite;
    dxLayoutDockSite1: TdxLayoutDockSite;
    dxTabContainerDockSite1: TdxTabContainerDockSite;
    dxDockPanel1: TdxDockPanel;
    RzGroupBox5: TRzGroupBox;
    edtTaskNO: TcxTextEdit;
    cxLabel24: TcxLabel;
    edtSeatUserName: TcxTextEdit;
    cxLabel27: TcxLabel;
    edtStatus: TcxTextEdit;
    cxLabel28: TcxLabel;
    edtTaskResult: TcxTextEdit;
    cxLabel29: TcxLabel;
    vtRejectTaxiTree: TVirtualStringTree;
    cxLabel1: TcxLabel;
    dxDockPanel2: TdxDockPanel;
    RzGroupBox1: TRzGroupBox;
    edtCallerIBPhoneNO: TcxTextEdit;
    cxLabel2: TcxLabel;
    edtCallerIBPositionLon: TcxTextEdit;
    cxLabel3: TcxLabel;
    edtCallerIBMaxWaitTime: TcxTextEdit;
    cxLabel4: TcxLabel;
    edtCallerIBPositionLat: TcxTextEdit;
    cxLabel5: TcxLabel;
    dxDockPanel4: TdxDockPanel;
    RzGroupBox3: TRzGroupBox;
    edtTimeCall: TcxTextEdit;
    cxLabel14: TcxLabel;
    edtTimeSubmitInfoAdditional: TcxTextEdit;
    cxLabel15: TcxLabel;
    edtTimeSubmitInfoBase: TcxTextEdit;
    cxLabel16: TcxLabel;
    edtTimeDriverConfirm: TcxTextEdit;
    cxLabel17: TcxLabel;
    cxLabel18: TcxLabel;
    edtTimeBeginContact: TcxTextEdit;
    cxLabel20: TcxLabel;
    edtTimeEndContact: TcxTextEdit;
    edtSecondCount: TcxTextEdit;
    cxLabel22: TcxLabel;
    edtTimeTransfer: TcxTextEdit;
    cxLabel12: TcxLabel;
    labe: TcxLabel;
    edtTimeTaskFinish: TcxTextEdit;
    secondCountTimer: TTimer;
    RzGroupBox2: TRzGroupBox;
    edtCallerIAName: TcxTextEdit;
    cxLabel6: TcxLabel;
    edtCallerIAHigh: TcxTextEdit;
    cxLabel7: TcxLabel;
    cxLabel8: TcxLabel;
    cxLabel9: TcxLabel;
    cxLabel10: TcxLabel;
    mmCallerIAOtherInfo: TcxMemo;
    cxLabel11: TcxLabel;
    ckbCallerHasInfoAdditional: TRzCheckBox;
    cbxCallerIBIsBook: TRzCheckBox;
    cxLabel19: TcxLabel;
    cxLabel21: TcxLabel;
    RzGroupBox6: TRzGroupBox;
    edtCommNO: TcxTextEdit;
    cxLabel13: TcxLabel;
    edtTerminalTypeID: TcxTextEdit;
    cxLabel31: TcxLabel;
    edtAppearanceType: TcxTextEdit;
    cxLabel32: TcxLabel;
    cxLabel33: TcxLabel;
    edtVehicleMode: TcxTextEdit;
    cxLabel34: TcxLabel;
    cxLabel35: TcxLabel;
    edtAreaID: TcxTextEdit;
    edtDriverName: TcxTextEdit;
    cxLabel36: TcxLabel;
    edtDriverMobileNO: TcxTextEdit;
    edtRegistrationNO: TcxTextEdit;
    cxLabel26: TcxLabel;
    teCallerIBBookTime: TcxTextEdit;
    cbxCallerIAGuestCount: TcxTextEdit;
    cbxCallerIASex: TcxComboBox;
    cbxCallerIAAgeSegmentID: TcxComboBox;
    cbxCallerIAHasPackage: TcxComboBox;
    cbxCallerIAFeedbackTypeID: TcxComboBox;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure secondCountTimerTimer(Sender: TObject);
    procedure vtRejectTaxiTreeGetText(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: WideString);
  private

  public
    procedure TaskShow(_p_task: Ptask);

  end;

var
  frmTaskShow: TfrmTaskShow;

implementation

uses ufrmCaller;

{$R *.dfm}

procedure TfrmTaskShow.FormCreate(Sender: TObject);
begin
  secondCountTimer.Enabled := True;
  vtRejectTaxiTree.NodeDataSize := SizeOf(TRejectTaxi);
end;

procedure TfrmTaskShow.FormDestroy(Sender: TObject);
begin
  secondCountTimer.Enabled := False;
end;

procedure TfrmTaskShow.TaskShow(_p_task: Ptask);
var
  i         : Integer;
  p_target  : PTargetData;
  p_reject  : PRejectTaxi;
begin
  // 任务基本信息
  edtTaskNO.Text := IntToStr(_p_task^.TaskNO);
  edtSeatUserName.Text := _p_task^.SeatUserName;
  edtStatus.Text := frmCaller.getTaskStatusType(_p_task^.Status);
  edtTaskResult.Text := frmCaller.getTaskResultType(_p_task^.TaskResult);

  vtRejectTaxiTree.Clear;
  for i := 0 to _p_task^.RejectTaxiIDList.Count - 1 do
  begin
    p_reject := PRejectTaxi(_p_task^.RejectTaxiIDList.Objects[i]);
    if not Assigned(p_reject) then
      Continue;

    vtRejectTaxiTree.AddChild(nil, p_reject);
  end;

  // 召车人信息
  edtCallerIBPhoneNO.Text := _p_task^.CallerIBPhoneNO;
  edtCallerIBMaxWaitTime.Text := IntToStr(_p_task^.CallerIBMaxWaitTime);
  edtCallerIBPositionLon.Text := FloatToStr(_p_task^.CallerIBPositionLon);
  edtCallerIBPositionLat.Text := FloatToStr(_p_task^.CallerIBPositionLat);
  cbxCallerIBIsBook.Checked   := _p_task^.CallerIBIsBook;
  if cbxCallerIBIsBook.Checked then
    teCallerIBBookTime.Text := FormatDateTime('hh:mm:ss', _p_task^.CallerIBBookTime);

  // 召车人附加信息
  edtCallerIAName.Text := _p_task^.CallerIAName;
  if _p_task^.CallerIAHeight <> -1 then
    edtCallerIAHigh.Text := FloatToStr(_p_task^.CallerIAHeight)
  else edtCallerIAHigh.Text := '未设置';
  mmCallerIAOtherInfo.Text := _p_task^.CallerIAOtherInfo;
  cbxCallerIAAgeSegmentID.ItemIndex := _p_task^.CallerIAAgeSegmentID;
  cbxCallerIAFeedbackTypeID.ItemIndex := _p_task^.CallerIAFeedbackTypeID;
  if _p_task^.CallerIAGender then
    cbxCallerIASex.ItemIndex := 0
  else cbxCallerIASex.ItemIndex := 1;
  ckbCallerHasInfoAdditional.Checked := _p_task^.CallerHasInfoAdditional;
  if _p_task^.CallerIAGuestCount <> -1 then
    cbxCallerIAGuestCount.Text := IntToStr(_p_task^.CallerIAGuestCount)
  else cbxCallerIAGuestCount.Text := '未设置';
  cbxCallerIAHasPackage.ItemIndex := _p_task^.CallerIAHasPackage;

  // 车辆基本信息
  p_target := frmCaller.getPTargetByRegistrationNO(_p_task^.RegistrationNO);
  if Assigned(p_target) then
  begin
    edtCommNO.Text         := p_target^.CommNO;
    edtAppearanceType.Text := p_target^.AppearanceType;
    edtVehicleMode.Text    := p_target^.VehicleModel;
    edtDriverName.Text     := p_target^.DriverName;
    edtDriverMobileNO.Text := p_target^.DriverMobileNO;
    edtTerminalTypeID.Text := IntToStr(p_target^.TerminalTypeID);
    edtRegistrationNO.Text := _p_task^.RegistrationNO;
    edtAreaID.Text := IntToStr(p_target^.AreaID);
  end;
  
  // 时间区
  if _p_task^.TimeCall <> 0 then
    edtTimeCall.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeCall);
  if _p_task^.TimeSubmitInfoBase <> 0 then
    edtTimeSubmitInfoBase.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeSubmitInfoBase);
  if _p_task^.TimeSubmitInfoAdditional <> 0 then
    edtTimeSubmitInfoAdditional.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeSubmitInfoAdditional);
  if _p_task^.TimeDriverConfirm <> 0 then
    edtTimeDriverConfirm.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeDriverConfirm);
  if _p_task^.TimeBeginContact <> 0 then
    edtTimeBeginContact.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeBeginContact);
  if _p_task^.TimeEndContact <> 0 then
    edtTimeEndContact.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeEndContact);
  if _p_task^.TimeTransfer <> 0 then
    edtTimeTransfer.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeTransfer);
  if _p_task^.TimeTaskFinish <> 0 then
    edtTimeTaskFinish.Text := FormatDateTime('yyyy-mm-dd hh:mm:ss', _p_task^.TimeTaskFinish);
end;

procedure TfrmTaskShow.secondCountTimerTimer(Sender: TObject);
begin
  if edtTimeCall.Text <> '' then
    edtSecondCount.Text := IntToStr(SecondsBetween(Now, StrToDateTime(edtTimeCall.Text)));
end;

{: 填充拒绝车辆树内容。}
procedure TfrmTaskShow.vtRejectTaxiTreeGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  address_node_data     : Pointer;
  p_reject              : PRejectTaxi;
begin
  CellText  := '';

  address_node_data := vtRejectTaxiTree.GetNodeData(Node);
  if not Assigned(address_node_data) then
    Exit;

  p_reject := PRejectTaxi(address_node_data^);
  if not Assigned(p_reject) then
    Exit;

  if Column < 0  then
    Exit;

  case Column of
    0: CellText  := p_reject^.RegistrationNO;
    1: CellText  := FormatDateTime('yyyy-mm-dd hh:mm:ss', p_reject^.ContactTime);
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -