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

📄 urequestorderbiz.pas

📁 物流供应链管理系统
💻 PAS
字号:
unit uRequestOrderBiz;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient,
  MtsRdm, Mtx, RequestOrderBiz_TLB, DB, MConnect, Variants;

type
  TmtsRequestOrderBiz = class(TMtsDataModule, ImtsRequestOrderBiz)
    DCOMConRequestOrder: TDCOMConnection;
    cdsRequestOrderMaster: TClientDataSet;
    cdsRequestOrderSlave: TClientDataSet;
    procedure MtsDataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  protected
    class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
    procedure UpdateRequestOrder(var ADatas: OleVariant); safecall;
    function QueryRequestOrderMasterById(const AId: WideString;
      var ADatas: OleVariant): WordBool; safecall;
    function QueryRequestOrderSlaveById(const Id: WideString;
      var ADatas: OleVariant): WordBool; safecall;
    procedure SetProcessRequestOrderById(const AId: WideString); safecall;
    procedure SetCheckedRequestOrderById(const AId: WideString); safecall;
    function GenerateRequestOrderId: WideString; safecall;
  public
    { Public declarations }
  end;

var
  mtsRequestOrderBiz: TmtsRequestOrderBiz;

implementation
uses StrUtils, BizDBConfig;
{$R *.DFM}

class procedure TmtsRequestOrderBiz.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
  if Register then
  begin
    inherited UpdateRegistry(Register, ClassID, ProgID);
    EnableSocketTransport(ClassID);
    EnableWebTransport(ClassID);
  end else
  begin
    DisableSocketTransport(ClassID);
    DisableWebTransport(ClassID);
    inherited UpdateRegistry(Register, ClassID, ProgID);
  end;
end;

procedure TmtsRequestOrderBiz.UpdateRequestOrder(var ADatas: OleVariant);
var
  eCount: Integer;
  OwnerData: OleVariant;
begin
  try
    DCOMConRequestOrder.GetServer.AS_ApplyUpdates(cdsRequestOrderMaster.ProviderName, ADatas,
      0, eCount, OwnerData);
    SetComplete;
  except
    SetAbort;
    raise;
  end;
end;

function TmtsRequestOrderBiz.QueryRequestOrderMasterById(
  const AId: WideString; var ADatas: OleVariant): WordBool;
begin
  result := false;
  cdsRequestOrderMaster.Open;
  if cdsRequestOrderMaster.Locate('Id',varArrayof([AId]),[]) then
  begin
    ADatas := cdsRequestOrderMaster.Data;
    result := true;
  end;

  cdsRequestOrderMaster.Close;
end;

function TmtsRequestOrderBiz.QueryRequestOrderSlaveById(
  const Id: WideString; var ADatas: OleVariant): WordBool;
begin
  result := false;
  cdsRequestOrderSlave.Open;
  if cdsRequestOrderSlave.Locate('MasterId',varArrayof([Id]),[]) then
  begin
    ADatas := cdsRequestOrderSlave.Data;
    result := true;
  end;
  cdsRequestOrderSlave.Close;
end;

procedure TmtsRequestOrderBiz.SetProcessRequestOrderById(
  const AId: WideString);
begin
  cdsRequestOrderMaster.Open;
  if cdsRequestOrderMaster.Locate('Id',varArrayof([AId]),[]) then
  begin
    cdsRequestOrderMaster.Edit;
    cdsRequestOrderMaster.FieldByName('IsProcessed').AsBoolean := true;
  end;
  cdsRequestOrderMaster.Close;
end;

procedure TmtsRequestOrderBiz.SetCheckedRequestOrderById(
  const AId: WideString);
begin
  cdsRequestOrderMaster.Open;
  if cdsRequestOrderMaster.Locate('Id',varArrayof([AId]),[]) then
  begin
    cdsRequestOrderMaster.Edit;
    cdsRequestOrderMaster.FieldByName('IsChecked').AsBoolean := true;
  end;
  cdsRequestOrderMaster.Close;
end;

function TmtsRequestOrderBiz.GenerateRequestOrderId: WideString;
var
  Lold: Integer;
  LPrior: string;
  i: Integer;
begin
  Lold := cdsRequestOrderMaster.PacketRecords;
  cdsRequestOrderMaster.PacketRecords := 1;
  cdsRequestOrderMaster.Open;
  cdsRequestOrderMaster.First;
  LPrior := cdsRequestOrderMaster.FieldByName('Id').AsString;
  i := StrToIntDef(RightStr(LPrior,8),0);
  Inc(i);
  result := 'QG' + FormatFloat('00000000',i);
  cdsRequestOrderMaster.PacketRecords := Lold;
  cdsRequestOrderMaster.Close;

end;

procedure TmtsRequestOrderBiz.MtsDataModuleCreate(Sender: TObject);
begin
  DCOMConRequestOrder.ComputerName := GetComputerName;
end;

initialization
  TComponentFactory.Create(ComServer, TmtsRequestOrderBiz,
    Class_mtsRequestOrderBiz, ciMultiInstance, tmApartment);
end.

⌨️ 快捷键说明

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