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

📄 matout.pas

📁 文件包含程序源原文件
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit MatOUT;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, tabFrm, ImgList, ExtCtrls, ComCtrls, StdCtrls, Buttons, Ex2nmedt,
  InvDef, EnhLV, GLLV, ComObj, Math, dpConst, Mask, xlsConst;

type
  TfrmMatOUT = class(TTabForm)
    pnlInput: TPanel;
    lblOutdate: TLabel;
    lblCode: TLabel;
    lblName: TLabel;
    lblRemarks: TLabel;
    lblpaper: TLabel;
    btnMatQry: TSpeedButton;
    lblOutType: TLabel;
    lblRecieve: TLabel;
    lblUType: TLabel;
    lblOutGuageID: TLabel;
    lblUnitPrice: TLabel;
    lblOutQuantity: TLabel;
    lblOutAmount: TLabel;
    lblTPrice: TLabel;
    lblMoldCode: TLabel;
    lblPartCode: TLabel;
    btnBom: TSpeedButton;
    lblStockID: TLabel;
    lblUseQuantity: TLabel;
    lblOrderSerial: TLabel;
    edtDate: TEdit;
    edtMatCode: TEdit;
    edtMatName: TEdit;
    edtNote: TEdit;
    edtPaperNo: TEdit;
    cbxMatOut: TComboBox;
    cbxRec: TComboBox;
    edtRecEmpName: TEdit;
    edtRecEmpID: TEdit;
    edtMatOutID: TEdit;
    edtOutIDName: TEdit;
    edtPrice: TEx2NumEdit;
    edtIssWeight: TEx2NumEdit;
    edtMoldID: TEdit;
    edtPartID: TEdit;
    Panel4: TPanel;
    btnNew: TBitBtn;
    Panel9: TPanel;
    cbxStk: TComboBox;
    edtStkID: TEdit;
    edtStkName: TEdit;
    edtUseQuantity: TEx2NumEdit;
    Panel5: TPanel;
    Panel1: TPanel;
    btnDelete: TBitBtn;
    lblUseTPrice: TLabel;
    edtOrderSerial: TEdit;
    cbxOutGuage: TComboBox;
    edtIssGuageID: TEx2NumEdit;
    edtIssGuageName: TEdit;
    Panel2: TPanel;
    btnSave: TBitBtn;
    lblUseAmount: TLabel;
    cbxInput: TComboBox;
    edtInputEmpID: TEdit;
    edtInputEmpName: TEdit;
    lblINMan: TLabel;
    btnBa1: TSpeedButton;
    cbxUseGuage: TComboBox;
    lblUseGuageID: TLabel;
    lblSuplier: TLabel;
    edtSuplierCode: TEx2NumEdit;
    lblMaker: TLabel;
    edtMakerCode: TEx2NumEdit;
    lblCurrQty: TLabel;
    edtIssPaperNO: TEdit;
    lblIsspaper: TLabel;
    lblSupplierNM: TEdit;
    cbxSuplier: TComboBox;
    lblMakerNM: TEdit;
    cbxMaker: TComboBox;
    tabsGroup: TTabControl;
    Panel11: TPanel;
    Panel7: TPanel;
    ListViewMatIN: TGradLineListView;
    rdoGroupBy: TRadioGroup;
    Panel6: TPanel;
    Panel8: TPanel;
    ckbNew: TCheckBox;
    btnRefresh: TBitBtn;
    edtSequalNo: TEdit;
    edtHatCode: TEdit;
    lblSequalNo: TLabel;
    lblOrderCode: TLabel;
    edtMakerPrice: TEx2NumEdit;
    lblProcessCost: TLabel;
    cbxOutUPID: TComboBox;
    edtUPID: TEx2NumEdit;
    edtUPIDName: TEdit;
    Label1: TLabel;
    btnPaper: TBitBtn;
    cbxReportID: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure TabControlChanging(Sender: TObject; var AllowChange: Boolean);
    procedure ControlChange(Sender: TObject);

    procedure ControlExit(Sender: TObject);
    procedure edtNoteKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure edtDateKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

    procedure btnNewClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure ckbNewClick(Sender: TObject);
    procedure btnExcelClick(Sender: TObject);
    procedure btnExitClick(Sender: TObject);

    procedure rdoGroupByClick(Sender: TObject);
    procedure tabsGroupChange(Sender: TObject);
    procedure cbxStkChange(Sender: TObject);
    procedure cbxOutGuageDropDown(Sender: TObject);
    procedure cbxOutGuageChange(Sender: TObject);
    procedure cbxUseGuageDropDown(Sender: TObject);
    procedure cbxUseGuageChange(Sender: TObject);
    procedure cbxMatOutDropDown(Sender: TObject);
    procedure cbxMatOutChange(Sender: TObject);
    procedure cbxRecDropDown(Sender: TObject);
    procedure cbxRecChange(Sender: TObject);
    procedure cbxInputDropDown(Sender: TObject);
    procedure cbxInputChange(Sender: TObject);
    procedure chkViewClick(Sender: TObject);
    procedure btnBa1Click(Sender: TObject);
    procedure btnMatQryClick(Sender: TObject);
    procedure btnPaperClick(Sender: TObject);
    procedure cbxSuplierDropDown(Sender: TObject);
    procedure cbxSuplierChange(Sender: TObject);
    procedure cbxMakerDropDown(Sender: TObject);
    procedure cbxMakerChange(Sender: TObject);
    procedure btnRefreshClick(Sender: TObject);
    procedure edtIssGuageNameExit(Sender: TObject);
    procedure btnBomClick(Sender: TObject);
    procedure cbxOutUPIDChange(Sender: TObject);
    procedure edtUPIDChange(Sender: TObject);



  private
    { Private declarations }

    function  ReturnValueToVariable(lcP: PINVENTORY; CtrlList: PCONTROL_LIST; Msg: Boolean): Boolean;
    procedure SetData(Item: Pointer);
    procedure SetNull;
    function  ErrorCheck(Item: PINVENTORY): Integer;
    function  UpdateProc(UpdateListList: TList): Boolean;
    procedure UpdateCheck;
    procedure SetCopy;

    //////////////////////////////////////////////////////
    //////////////////////////////////////////////////////
    //////////////////////////////////////////////////////
    procedure Read_IOChangedList;
    Function  Set_QueryedList(sList: TList): TList;
    procedure CreateTabs_ByGroup(rdoIndex: integer; sList: TList);
    procedure Set_QryList_FromTabs(iTab: integer; FGroupList: TList);
    Function  CheckViewData(lcPA: Pointer; rdoTitleIndex,TabIndex: integer): boolean;
    
    procedure SetListView;
    function  SetListColumn(sListView: TGradLineListView): Integer;
    procedure MakeItemCaption(Item: TListItem);

    procedure set_tmpdata(i: integer; lcp: PINVENTORY; agp: PAllReadyInOrder);

    procedure SetMultilingual;
    
  public
    { Public declarations }
    default_stkid:    string;
    default_isspaper: string;
    default_ioid:     string;
    default_outmanid: string;
    default_receivemanid: string;
    default_OutUnitPriceID: Integer;

    procedure SetNew(Index: Integer);
    function  RECExists(RecID: LongInt): Boolean;

    /////////////////////////////////////////////////////
    procedure SetBalanceList(RID: LongInt; List: TList; DT: TDateTime);
    function  SetInventoryCnt(rec_id,mat_rec_id,guage_id: LongInt; stk_id: string; DT: TDateTime; var Cnt: Double): Double;

    /////////////////////////////////////////////////////
    function  SetInventoryQty(rec_id,mat_rec_id,guage_id: LongInt; stk_id: string;
                              DT: TDateTime; var Cnt: Double; iMode: Integer): Double;
    procedure SetInvUnitPrice(RID: LongInt; List: TList; DT: TDateTime; iMode: Integer);

    Procedure Excel_StockOutList(sList: TList);


  protected
    { Protected }
    function  GetTabCaption(Item: Pointer): string; override;
    procedure SetKomoku(Item: Pointer); override;

  end;

var
  frmMatOUT: TfrmMatOUT;
  FExitSkip: boolean;
  InvCnt: Double;
  MatRID: LongInt;

  //////////////////////
  FMatIOList,
  FQueryList: TList;
  FListViewClear,
  FOnMakeItemCaption: Boolean;
  FSelectedItem: TListItem;
  FColCnt: Integer;
  FCreate: Boolean;

  /////////////////////
  FGroupValue: array[0..120000] of variant;  //-- TabControl tabs group value
  sFDate,sEDate: TDateTime;
  FList,FListInvUPrice: TList;

implementation

uses Main, InvDM, InvHistory, QryMaterial, QryDeliveryList, MatBalaIn;

{$R *.dfm}

procedure TfrmMatOUT.FormCreate(Sender: TObject);
var ix: integer;
    View: TINVENTORY;
begin
  inherited;
  Top    := frmMain.Height;
  Left   := 0;
  Width  := Screen.Width;
  Height := Screen.Height-(frmMain.Height+20);

  FCreate := true;

  /////////////////////////////
  FMatIOList := TList.Create;
  FMatIOList.Clear;

  FQueryList := TList.Create;
  FQueryList.Clear;

  IX := 0;
  InitCtrlList(edtRecEmpID,    IX, Longint(@View.RECIEVE_EMPID)-Longint(@View), nil,nil);
  Inc(IX);
  InitCtrlList(edtPaperNo,     IX, Longint(@View.PAPERNO)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtDate,        IX, Longint(@View.date)-Longint(@View),       nil,nil);
  Inc(IX);
  InitCtrlList(edtMoldID,      IX, Longint(@View.ODR_RID)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtPartID,      IX, Longint(@View.PAT_RID)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtSequalNo,    IX, Longint(@View.SEQUAL_NO)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtHatCode,     IX, Longint(@View.HAT_CODE)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtOrderSerial, IX, Longint(@View.HAT_RID)-Longint(@View),    nil,nil);
  Inc(IX);

  InitCtrlList(edtMatCode,     IX, Longint(@View.MAT_RID)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtMatName,     IX, Longint(@View.MAT_NM)-Longint(@View),     nil,nil);
  Inc(IX);
  InitCtrlList(edtIssGuageID,  IX, Longint(@View.GUAGE_ID)-Longint(@View),   nil,nil);
  Inc(IX);
  InitCtrlList(edtIssWeight,   IX, Longint(@View.QUANTITY)-Longint(@View),   nil,nil);
  Inc(IX);
  InitCtrlList(edtPrice,       IX, Longint(@View.UNT_PRICE)-Longint(@View),  nil,nil);
  Inc(IX);
  InitCtrlList(cbxUseGuage,    IX, Longint(@View.USE_GUAGE)-Longint(@View), nil,nil);
  Inc(IX);
  InitCtrlList(edtUseQuantity, IX, Longint(@View.USE_QUANTITY)-Longint(@View), nil,nil);
  Inc(IX);

  InitCtrlList(edtStkID,       IX, Longint(@View.stk_id)-Longint(@View),     nil,nil);
  Inc(IX);
  InitCtrlList(edtIssPaperNO,  IX, Longint(@View.ISS_PAPERNO)-Longint(@View),nil,nil);
  Inc(IX);
  InitCtrlList(edtMatOutID,    IX, Longint(@View.INOUT_ID)-Longint(@View),     nil,nil);
  Inc(IX);
  InitCtrlList(edtInputEmpID,  IX, Longint(@View.INPUT_EMPID)-Longint(@View),   nil,nil);
  Inc(IX);
  InitCtrlList(edtSuplierCode, IX, Longint(@View.SUP_CD)-Longint(@View),     nil,nil);
  Inc(IX);
  InitCtrlList(edtMakerCode,   IX, Longint(@View.MAK_CD)-Longint(@View),    nil,nil);
  Inc(IX);
  InitCtrlList(edtMakerPrice,  IX, Longint(@View.MAK_PRICE)-Longint(@View),    nil,nil);
  Inc(IX);
  
  InitCtrlList(edtNote,        99, Longint(@View.NOTE)-Longint(@View),    nil,nil);
  PostCtrlList;
  SetNull;
  SetMultilingual;

  FList := TList.Create;
  FList.Clear;
  FListInvUPrice := TList.Create;
  FListInvUPrice.Clear;
end;

procedure TfrmMatOUT.FormShow(Sender: TObject);
begin
  Top    := frmMain.Height;
  Left   := 0;
  Width  := Screen.Width;
  Height := Screen.Height-(frmMain.Height+20);
  
  cbxReportID.ItemIndex := 0;
  default_OutUnitPriceID := StrToIntDef(frmMain.IniData.OutPrice, -1);
  edtUPID.Value          := default_OutUnitPriceID;

  TabControl.Tabs.Clear;
  SetNew(-1);
  if TabControl.Tabs.Count > 0 then SelectTabIndex(0);

  //////////////////////////////////////////////////////
  FCreate := true;
  sFDate := Now;
  sEDate := Now+1;
  dm_Inventory.Read_IOHistory(FMatIOList,trim(edtStkID.Text),1,sFDate,sEDate);
  Set_QueryedList(FQueryList);
  CreateTabs_ByGroup(rdoGroupBy.ItemIndex,FQueryList);
  tabsGroupChange(Self);  
end;

procedure TfrmMatOUT.FormDestroy(Sender: TObject);
begin
//
end;

procedure TfrmMatOUT.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var UpdateListList, List: TList;
begin
  UpdateListList := GetUpdateListList;
  if (UpdateListList.Count>0)then begin
    List := UpdateListList[0];
    if (List.Count=0) then Exit;
    if ErrorCheck(Selected) <> 0 then begin
      CanClose := False;
      Exit;
    end;
    UpdateProc(UpdateListList);

⌨️ 快捷键说明

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