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

📄 frmorderlist.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, ExtCtrls, LCDBOperatTool,
  DBSelectDlgEdit, ComCtrls, DBDateTimePicker, Mask, DBCtrls, DB, DBClient,
  MConnect, SConnect;

type
  TFormOrderList = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    BtnFind: TButton;
    BtnNew: TButton;
    LEdtId: TLabeledEdit;
    DBEdtGenDate: TDBEdit;
    DBSDEVendorId: TDBSelectDlgEdit;
    GroupBox1: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    LCDBOperatTool1: TLCDBOperatTool;
    DBEdtBarCode: TDBEdit;
    DBEdAmount: TDBEdit;
    DBGrid1: TDBGrid;
    BtnPost: TButton;
    DBCheckBox1: TDBCheckBox;
    SocketConOrderList: TSocketConnection;
    SocketConBaseInfo: TSocketConnection;
    cdsOrderListMaster: TClientDataSet;
    cdsOrderListSlave: TClientDataSet;
    cdsBaseInfo: TClientDataSet;
    DSOrderListMaster: TDataSource;
    DSOrderListSlave: TDataSource;
    DSBaseInfo: TDataSource;
    DBDateTimePicker1: TDBDateTimePicker;
    cdsOrderListMasterVendorId: TWideStringField;
    cdsOrderListMasterGenerateDate: TDateField;
    cdsOrderListSlaveBarCode: TWideStringField;
    cdsOrderListMasterIsProcessed: TBooleanField;
    cdsOrderListMasterId: TWideStringField;
    cdsOrderListSlaveMasterId: TWideStringField;
    cdsOrderListSlaveAmount: TLargeintField;
    cdsOrderListSlaveReceivableDate: TDateTimeField;
    SocketConQuery: TSocketConnection;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure BtnFindClick(Sender: TObject);
    procedure BtnNewClick(Sender: TObject);
    procedure BtnPostClick(Sender: TObject);
    procedure LCDBOperatTool1ModeChange(AMode: TBtnMode);
    procedure LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
      var Continued: Boolean);
  private
    { Private declarations }
    procedure ClearCDSRecord;
  public
    { Public declarations }
  end;

var
  FormOrderList: TFormOrderList;

implementation
uses untConfig, CommonFunc, DataBaseQueryData_TLB;
{$R *.dfm}

procedure TFormOrderList.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  Perform(WM_NEXTDLGCTL,0,0);
end;

procedure TFormOrderList.FormCreate(Sender: TObject);
begin
  SetSocketConnectionConnect(SocketConOrderList);
  SetSocketConnectionConnect(SocketConBaseInfo);
end;

procedure TFormOrderList.FormDestroy(Sender: TObject);
begin
  SocketConOrderList.Close;
  SocketConBaseInfo.Close;
end;

procedure TFormOrderList.BtnFindClick(Sender: TObject);
var
  v,vs: OleVariant;
begin
  ClearCDSRecord;//04.7.25增加
  if Trim(LEdtId.Text) = '' then
  begin
    LCShowMessage('请填写单号');
    Exit;
  end;
  if SocketConOrderList.AppServer.QueryPurchaseListMasterById(Trim(LEdtId.Text), v) then
  begin
    cdsOrderListMaster.Data := v;

    if SocketConOrderList.AppServer.QueryPurchaseListSlaveById(Trim(LEdtId.Text), vs) then
      cdsOrderListSlave.Data := vs;
  end
  else
    LCShowMessage('此单不存在!');
end;

procedure TFormOrderList.BtnNewClick(Sender: TObject);
var
  LId: string;
begin
  ClearCDSRecord;//04.7.25增加
  cdsOrderListMaster.Open;
  cdsOrderListMaster.Insert;
  LId := SocketConOrderList.AppServer.GeneratePurchaseListId;
  LEdtId.Text := LId;
  cdsOrderListMaster.FieldByName('Id').AsString := LId;
  cdsOrderListMaster.FieldByName('GenerateDate').AsDateTime := Now();
  cdsOrderListMaster.FieldByName('IsProcessed').AsBoolean := false;
  BtnPost.Enabled := true;
end;

procedure TFormOrderList.BtnPostClick(Sender: TObject);
var
  LQuerymts: ImtsQueryObjDisp;
  i, n: Integer;
  LBar: string;
begin
  SetSocketConnectionConnect(SocketConQuery);
  LQuerymts := ImtsQueryObjDisp(SocketConQuery.GetServer);
  n := cdsOrderListSlave.RecordCount - 1;
  for i := 0 to n do
  begin
    LBar := cdsOrderListSlave.FieldByName('BarCode').AsString;
    if not LQuerymts.IsBarCodeExists(LBar) then
    begin
      LCShowMessage(Format('条码%s不存在!',[LBar]));
      Exit;
    end;
  end;

  if cdsOrderListMaster.ChangeCount > 0 then
    SocketConOrderList.AppServer.UpdatePurchaseListMaster(cdsOrderListMaster.Delta);
  if cdsOrderListSlave.ChangeCount > 0 then
  SocketConOrderList.AppServer.UpdatePurchaseListSlave(cdsOrderListSlave.Delta);
  BtnPost.Enabled := false;
end;

procedure TFormOrderList.LCDBOperatTool1ModeChange(AMode: TBtnMode);
begin
  if AMode = bmAdd then
  begin
    cdsOrderListSlave.FieldByName('MasterId').AsString := Trim(LEdtId.Text);
    cdsOrderListSlave.FieldByName('ReceivableDate').AsDateTime := Now();
  end;
end;

procedure TFormOrderList.LCDBOperatTool1Click(Btn: LCDBOperatTool.TToolButton;
  var Continued: Boolean);
begin
  if Btn = tbAdd then
    if cdsOrderListSlave.RecordCount <=0 then
      cdsOrderListSlave.Open;
  BtnPost.Enabled := true;
end;

procedure TFormOrderList.ClearCDSRecord;
begin
  cdsOrderListMaster.EmptyDataSet;
  cdsOrderListSlave.EmptyDataSet;
end;

end.

⌨️ 快捷键说明

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