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

📄 frmstockinlist.pas

📁 非常地全面完整的物流供应链管理系统 包含全部的需求文档
💻 PAS
字号:
unit frmStockInList;

interface

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

type
  TFormStockInList = class(TForm)
    BtnFind: TButton;
    BtnNew: TButton;
    LEdtId: TLabeledEdit;
    DBEdtTransType: TDBEdit;
    DBEdtConsign: TDBEdit;
    DBDTPDeadTime: TDBDateTimePicker;
    DBDTPReceivableDate: TDBDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBEdtGenerateDate: TDBEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    GroupBox1: TGroupBox;
    LCDBOperatTool1: TLCDBOperatTool;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    DBEdtBarCode: TDBEdit;
    DBEdAmount: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBGrid1: TDBGrid;
    BtnPost: TButton;
    cdsStockInListMaster: TClientDataSet;
    cdsStockInListSlave: TClientDataSet;
    cdsBaseInfo: TClientDataSet;
    DSStockInListMaster: TDataSource;
    DSStockInListSlave: TDataSource;
    DSBaseInfo: TDataSource;
    cdsStockInListMasterId: TWideStringField;
    cdsStockInListMasterVendorId: TWideStringField;
    cdsStockInListMasterGenerateDate: TDateTimeField;
    cdsStockInListMasterTransType: TSmallintField;
    cdsStockInListMasterDeadTime: TDateTimeField;
    cdsStockInListMasterReceivableDate: TDateTimeField;
    cdsStockInListMasterConsign: TWideStringField;
    cdsStockInListSlaveMasterId: TWideStringField;
    cdsStockInListSlaveBarCode: TWideStringField;
    cdsStockInListSlavePrice: TIntegerField;
    cdsStockInListSlaveReceivableAmount: TIntegerField;
    cdsStockInListSlaveAcceptedScrap: TFloatField;
    DBSelectDlgEdit1: TDBSelectDlgEdit;
    SocketConStockInList: TSocketConnection;
    SocketConBaseInfo: TSocketConnection;
    SocketConQuery: TSocketConnection;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure BtnFindClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(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;//04.7.25增加
  public
    { Public declarations }
  end;

var
  FormStockInList: TFormStockInList;

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

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

procedure TFormStockInList.BtnFindClick(Sender: TObject);
var
  v,vs: OleVariant;
begin
  ClearCDSRecord;
  if Trim(LEdtId.Text) = '' then
  begin
    LCShowMessage('请填写单号!');
    Exit;
  end;
  if SocketConStockInList.AppServer.QueryStockInListMasterById(Trim(LEdtId.Text), v) then
  begin
    cdsStockInListMaster.Data := v;

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

procedure TFormStockInList.FormCreate(Sender: TObject);
begin
  SetSocketConnectionConnect(SocketConStockInList);
  SetSocketConnectionConnect(SocketConBaseInfo);
end;

procedure TFormStockInList.FormDestroy(Sender: TObject);
begin
  SocketConStockInList.Close;
  SocketConBaseInfo.Close;
end;

procedure TFormStockInList.BtnNewClick(Sender: TObject);
var
  LId: string;
begin
  ClearCDSRecord;
  cdsStockInListMaster.Open;
  cdsStockInListMaster.Insert;
  LId := SocketConStockInList.AppServer.GenerateStockInListId;
  LEdtId.Text := LId;
  cdsStockInListMaster.FieldByName('Id').AsString := LId;
  cdsStockInListMaster.FieldByName('GenerateDate').AsDateTime := Now();
  BtnPost.Enabled := true;
end;

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

  SocketConQuery.Close;

  if cdsStockInListMaster.RecordCount > 0 then
    SocketConStockInList.AppServer.UpdataStockInListMaster(cdsStockInListMaster.Delta);
  if cdsStockInListSlave.RecordCount > 0 then
  SocketConStockInList.AppServer.UpdataStockInListSlave(cdsStockInListSlave.Delta);
  (Sender as TButton).Enabled := false;
end;

procedure TFormStockInList.LCDBOperatTool1ModeChange(AMode: TBtnMode);
begin
  if AMode = bmAdd then
    cdsStockInListSlave.FieldByName('MasterId').AsString := Trim(LEdtId.Text);
end;

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

procedure TFormStockInList.ClearCDSRecord;
begin
  cdsStockInListMaster.EmptyDataSet;
  cdsStockInListSlave.EmptyDataSet;
end;


end.

⌨️ 快捷键说明

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