📄 ufrmtaskshow.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 + -