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

📄 inv600_03.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
unit Inv600_03;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas100_01, Menus, StdCtrls, Buttons, ExtCtrls, DB, ADODB,DateUtils;

type
  TInv600_03Form = class(TBas100_01Form)
    Bevel1: TBevel;
    bbtnOk: TBitBtn;
    bbtnExit: TBitBtn;
    lblWhsID: TLabel;
    lblLocID: TLabel;
    lblItemClass: TLabel;
    cbFlag: TCheckBox;
    edtFromWhsID: TEdit;
    edtToWhsID: TEdit;
    sbFromWhsID: TSpeedButton;
    sbToWhsID: TSpeedButton;
    edtFromLocID: TEdit;
    sbFromLocID: TSpeedButton;
    edtToLocID: TEdit;
    sbToLocID: TSpeedButton;
    edtFromItemClass: TEdit;
    sbFromItemClass: TSpeedButton;
    edtToItemClass: TEdit;
    sbToItemClass: TSpeedButton;
    lblItemID: TLabel;
    edtFromItemID: TEdit;
    sbFromItemID: TSpeedButton;
    edtToItemID: TEdit;
    sbToItemID: TSpeedButton;
    qryinv100From: TADOQuery;
    qryinv110from: TADOQuery;
    qryinv120from: TADOQuery;
    qryinv150from: TADOQuery;
    qryinv100FromI100_001: TAutoIncField;
    qryinv100FromI100_002: TWideStringField;
    qryinv100FromI100_003: TWideStringField;
    qryinv110fromI110_001: TAutoIncField;
    qryinv110fromI110_003: TWideStringField;
    qryinv110fromI110_004: TWideStringField;
    qryinv120fromI120_001: TAutoIncField;
    qryinv120fromI120_002: TWideStringField;
    qryinv120fromI120_003: TWideStringField;
    qryinv150fromI150_001: TAutoIncField;
    qryinv150fromI150_002: TWideStringField;
    qryinv150fromI150_003: TWideStringField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure bbtnOkClick(Sender: TObject);
    procedure bbtnExitClick(Sender: TObject);
    procedure cbFlagClick(Sender: TObject);
    procedure EditExit(Sender: TObject);
    procedure sbFromWhsIDClick(Sender: TObject);
    procedure sbToWhsIDClick(Sender: TObject);
    procedure sbFromLocIDClick(Sender: TObject);
    procedure sbToLocIDClick(Sender: TObject);
    procedure sbFromItemClassClick(Sender: TObject);
    procedure sbToItemClassClick(Sender: TObject);
    procedure sbFromItemIDClick(Sender: TObject);
    procedure sbToItemIDClick(Sender: TObject);
    procedure edtFromWhsIDExit(Sender: TObject);
    procedure edtToWhsIDExit(Sender: TObject);
    procedure edtFromLocIDExit(Sender: TObject);
    procedure edtToLocIDExit(Sender: TObject);
    procedure edtFromItemClassExit(Sender: TObject);
    procedure edtToItemClassExit(Sender: TObject);
    procedure edtToItemIDExit(Sender: TObject);
    procedure edtFromItemIDExit(Sender: TObject);
  private
    procedure SetInterface;
    procedure AutoProPlan(AFromWhsNo,AToWhsNo,AFromLocNo,AToLocNo,AFromClassNo,AToClassNo,AFromItemNo,AToItemNo:string;Flag:Boolean);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Inv600_03Form: TInv600_03Form;

implementation
  uses
    commFun,SYSDATA,HwSelData;

{$R *.dfm}

procedure TInv600_03Form.SetInterface;
begin
//
qryinv100From.open;
qryinv110from.open;
qryinv120from.open;
qryinv150from.open;
end;

procedure TInv600_03Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
end;

procedure TInv600_03Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//
end;

procedure TInv600_03Form.bbtnOkClick(Sender: TObject);
var
  AFromWhsNo, AToWhsNo, AFromLocNo,AToLocNo, AFromClassNo, AToClassNo, AFromItemNo, AToItemNo: string;
  Flag: Boolean;
begin
  inherited;
//确定(&O)
  AFromWhsNo:='';
  AToWhsNo:='';
  AFromLocNo:='';
  AToLocNo:='';
  AFromClassNo:='';
  AToClassNo:='';
  AFromItemNo:='';
  AToItemNo:='';

  AFromWhsNo:=edtFromWhsID.text;
  AToWhsNo:=edtToWhsID.text;

  AFromLocNo:=edtFromLocID.text;
  AToLocNo:=edtToLocID.text;

  AFromClassNo:=edtFromItemClass.text;
  AToClassNo:=edtToItemClass.text;

  AFromItemNo:=edtFromItemID.text;
  AToItemNo:=edtToItemID.text;

  if (AFromWhsNo<>'') and (AToWhsNo<AFromWhsNo) then
  begin
    ShowMsg('Error');
    edtFromWhsID.focused;
    Abort;
  end;
  if (AFromLocNo<>'') and (AToLocNo<AFromLocNo) then
  begin
    ShowMsg('Error');
    edtFromLocID.focused;
    Abort;
  end;
  if (AFromClassNo<>'') and (AToClassNo<AFromClassNo) then
  begin
    ShowMsg('Error');
    edtFromItemClass.focused;
    Abort;
  end;
  if (AFromItemNo<>'') and (AToItemNo<AFromItemNo) then
  begin
    ShowMsg('Error');
    edtFromItemID.focused;
    Abort;
  end;

  Flag:=cbFlag.checked;
  AutoProPlan(AFromWhsNo, AToWhsNo, AFromLocNo,AToLocNo, AFromClassNo, AToClassNo, AFromItemNo, AToItemNo, Flag);

end;

procedure TInv600_03Form.bbtnExitClick(Sender: TObject);
begin
  inherited;
//退出(&X)
  Close;
end;

procedure TInv600_03Form.AutoProPlan(AFromWhsNo, AToWhsNo, AFromLocNo,
  AToLocNo, AFromClassNo, AToClassNo, AFromItemNo, AToItemNo: string;
  Flag: Boolean);
var
  AQuery:TADOQuery;
  ADate:TDate;
  ACircle:integer;
  strSQL:string;

  procedure run(AQuery:TAdoQuery);
  var
    I:integer;
    AOldWhsNo,ANewWhsNo:integer;
    AQryinv600A,AQryinv600b:TAdoQuery;
  begin
    I:=0;
    AOldWhsNo:=0;
    if AQuery.IsEmpty then
    begin
      ShowMsg('没有符合条件的料品');
      Abort;
    end;
    AQryinv600A:=TAdoQuery.create(nil);
    AQryinv600A.Connection:=SYSDM.ADOC;
    AQryinv600B:=TAdoQuery.create(nil);
    AQryinv600B.Connection:=SYSDM.ADOC;
    AQryinv600A.SQL.Add('select * from inv600A');
    AQryinv600B.SQL.Add('select * from inv600B');
    AQryinv600A.open;
    AQryinv600B.open;
    //新增主表
    while not AQuery.Eof do
    begin
      ANewWhsNo:=AQuery.fieldByName('I501_001').AsInteger;
      if AOldWhsNo<>ANewWhsNo then
      begin
        AOldWhsNo:=ANewWhsNo;
        AQryinv600A.Append;
        AQryinv600A.FieldByName('I600A_001').Value:=GetAutoCode('INV600');	//盘点单号
        AQryinv600A.FieldByName('I600A_002').Value:='盘点计划';	                //盘点名称
        AQryinv600A.FieldByName('I600A_003').Value:=0;	                        //盘点状态
        AQryinv600A.FieldByName('I600A_004').Value:=ANewWhsNo;	                //仓库编号
        AQryinv600A.FieldByName('I600A_005').Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',GetServerDate);                      //预计开始
        AQryinv600A.FieldByName('I600A_006').Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',GetServerDate);	                //预计完成
        //AQryinv600A.FieldByName('I600A_007').Value:=;	                        //实际开始
        //AQryinv600A.FieldByName('I600A_008').Value:=;	                        //实际完成
        AQryinv600A.FieldByName('I600A_009').Value:=1;                  	//项目数量
        AQryinv600A.FieldByName('I600A_010').Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',GetServerDate);	//制单日期
        AQryinv600A.FieldByName('I600A_011').Value:=AUserName;                                          	//制单人员
        AQryinv600A.FieldByName('I600A_012').Value:=FormatDateTime('yyyy-mm-dd hh:mm:ss',GetServerDate);	//修改日期
        AQryinv600A.FieldByName('I600A_013').Value:=AUserName;                                          	//修改人员
        AQryinv600A.FieldByName('I600A_014').Value:='盘点计划';                                         	//备注说明
        AQryinv600A.Post;
        I:=1;
      end;
      //添加明细
      AQryinv600B.Append;
      AQryinv600B.FieldByName('I600B_001').Value:=AQryinv600A.FieldByName('I600A_001').AsString;		    //盘点单号
      AQryinv600B.FieldByName('I600B_002').Value:=I;                //盘点卡号
      I:=I+1;
      AQryinv600B.FieldByName('I600B_003').Value:=AQuery.FieldByName('I501_003').asInteger;                //料品编号
      AQryinv600B.FieldByName('I600B_004').Value:=AQuery.FieldByName('I501_002').asInteger;                //庫位編號
      AQryinv600B.FieldByName('I600B_005').Value:=AQuery.FieldByName('I501_005').asFloat;                //库存数量
      AQryinv600B.FieldByName('I600B_006').Value:=False;                //已打印否
      AQryinv600B.FieldByName('I600B_007').Value:=False;                //已完成否
      AQryinv600B.Post;
      AQryinv600A.Edit;
      AQryinv600A.FieldByName('I600A_009').Value:=I;
      AQryinv600A.Post;
      AQuery.Next;
    end;
    ShowMsg('盘点计划生成成功');                   //盘点计划生成成功
    AQryinv600A.Close;
    AQryinv600B.Close;
    AQryinv600A.Free;
    AQryinv600B.Free;
  end;
begin
//检索需要的数据集
  AQuery:=TAdoQuery.create(nil);
  AQuery.connection:=SYSDM.ADOC;
  if Flag then
  begin
    AQuery.LockType:=ltBatchOptimistic;

    AQuery.sql.Add('SELECT INV501.*, INV150.I150_036, INV150.I150_037, INV150.I150_038');
    AQuery.sql.Add('  FROM INV501 INNER JOIN INV150 ON INV501.I501_001 = INV150.I150_001');
    AQuery.sql.Add(' order by I501_001');
    AQuery.open;

⌨️ 快捷键说明

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