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

📄 invaccount.pas

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

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
  Buttons, ExtCtrls, ComCtrls, Dialogs, InvDef;

type
  TfrmInvAccount = class(TForm)
    pageAccDate: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    Panel6: TPanel;
    Label2: TLabel;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    Panel11: TPanel;
    Panel2: TPanel;
    Bevel3: TBevel;
    Label4: TLabel;
    Label5: TLabel;
    cbxCancelStk: TComboBox;
    edtCancelStkID: TEdit;
    edtCancelStkName: TEdit;
    cbxCancelYear: TComboBox;
    cbxCancelMonth: TComboBox;
    Panel8: TPanel;
    btnCancelExit: TBitBtn;
    btnCancelAcc: TBitBtn;
    StatusBar2: TStatusBar;
    StatusBar1: TStatusBar;
    ListViewClose: TListView;
    Panel4: TPanel;
    Panel3: TPanel;
    Bevel1: TBevel;
    Label3: TLabel;
    Label1: TLabel;
    cbxCloseStk: TComboBox;
    edtCloseStkID: TEdit;
    edtCloseStkName: TEdit;
    cbxCloseYear: TComboBox;
    cbxCloseMonth: TComboBox;
    Panel5: TPanel;
    btnConfirmExit: TBitBtn;
    btnConfirmAcc: TBitBtn;
    Panel10: TPanel;
    ListViewCancel: TListView;
    TabSheet3: TTabSheet;
    Panel1: TPanel;
    Bevel4: TBevel;
    Label8: TLabel;
    Label9: TLabel;
    cbxYStk: TComboBox;
    edtYStkID: TEdit;
    edtYStkName: TEdit;
    cbxYear: TComboBox;
    Panel7: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel9: TPanel;
    chkYearExp: TCheckBox;
    Panel12: TPanel;
    ListView1: TListView;
    StatusBar3: TStatusBar;
    chkCloseMonth: TCheckBox;
    chkCancelMonth: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure pageAccDateChange(Sender: TObject);
    procedure cbxCancelStkChange(Sender: TObject);
    procedure cbxCloseStkChange(Sender: TObject);
    procedure edtCancelStkIDChange(Sender: TObject);
    procedure edtCloseStkIDChange(Sender: TObject);
    procedure cbxCloseYearDropDown(Sender: TObject);
    procedure cbxCloseMonthDropDown(Sender: TObject);
    procedure cbxCancelYearDropDown(Sender: TObject);
    procedure cbxCancelMonthDropDown(Sender: TObject);
    procedure btnConfirmExitClick(Sender: TObject);
    procedure btnCancelExitClick(Sender: TObject);
    procedure btnConfirmAccClick(Sender: TObject);
    procedure btnCancelAccClick(Sender: TObject);
    procedure cbxYStkChange(Sender: TObject);
    procedure edtYStkIDChange(Sender: TObject);
    procedure cbxYearChange(Sender: TObject);
    procedure cbxYearDropDown(Sender: TObject);
  private
    { Private declarations }
    Procedure Read_sCondAccDateList(iKind: Byte);
    /////////////////////////////////////////////////
    Procedure SetListViewColumn(iAcc: Byte);
    Procedure SetListView(iAcc: Byte);
    procedure MakeItemCaption(Item: TListItem; iAcc: Byte);

    function  Set_QryCondition(lcP: PYMAccInfo; iKind: Byte): Boolean;


  public
    { Public declarations }
  end;

var
  frmInvAccount: TfrmInvAccount;
  FAccountDateList: TList;
  ListSortKey: integer;
  FColumnCnt: integer;
  FOnMakeItemCaption: Boolean;

implementation

uses Main, InvDM;

{$R *.dfm}

// TListSortCompare
function ListSortCompare(Item1, Item2: Pointer): Longint;
var DataType: Integer;
    Str1, Str2: string;
    Int1, Int2: Integer;
    Dbl1, Dbl2: Double;
begin
  Result := 0;
  Str1 := ''; Str2 := '';
  Int1 := 0;  Int2 := 0;
  Dbl1 := 0;  Dbl2 := 0;
  case Abs(ListSortKey) of
    1: begin //--
        Str1 := TYMAccInfo(Item1^).stk_id;
        Str2 := TYMAccInfo(Item2^).stk_id;
        DataType := 0;
       end;
    2: begin //--
        Str1 := TYMAccInfo(Item1^).account_year;
        Str2 := TYMAccInfo(Item2^).account_year;
        DataType := 0;
       end;
    3: begin //--
        Str1 := TYMAccInfo(Item1^).account_month;
        Str2 := TYMAccInfo(Item2^).account_month;
        DataType := 0;
       end;
    4: begin //--
        Dbl1 := TYMAccInfo(Item1^).account_empid;
        Dbl2 := TYMAccInfo(Item2^).account_empid;
        DataType := 2;
       end;
    else Exit;
  end;

  case DataType of
    0: if Str1 < Str2 then  Result := -1
       else if Str1 > Str2 then Result := 1
       else Result := 0;
    1: if Int1 < Int2 then  Result := -1
       else if Int1 > Int2 then Result := 1
       else Result := 0;
    2: if Dbl1 < Dbl2 then  Result := -1
       else if Dbl1 > Dbl2 then Result := 1
       else Result := 0;
  else Result := 0;
  end;
  if ListSortKey < 0 then Result := Result * -1;
end;


procedure TfrmInvAccount.FormCreate(Sender: TObject);
begin
  Top    := frmMain.Height;
  Left   := 0;
  Width  := Width;
  Height := Height;
  //////////////////////////
  FAccountDateList := TList.Create;
  FAccountDateList.Clear;

end;

procedure TfrmInvAccount.FormShow(Sender: TObject);
var syear,smonth: string;
begin
  pageAccDate.ActivePageIndex := 0;
  edtCloseStkID.Text   := '';
  edtCloseStkName.Text := '';
  cbxCloseStk.Text     := '';
  cbxCloseYear.Text    := '';
  cbxCloseMonth.Text   := '';
  chkCloseMonth.Checked := true;

  edtCancelStkID.Text   := '';
  edtCancelStkName.Text := '';
  cbxCancelStk.Text     := '';
  cbxCancelYear.Text    := '';
  cbxCancelMonth.Text   := '';
  chkCancelMonth.Checked := true;

  edtYStkID.Text        := '';
  edtYStkName.Text      := '';
  cbxYStk.Text          := '';
  cbxYear.Text          := '';
  chkYearExp.Checked    := true;

  ////////////////////////////
  dm_inventory.Get_DefaultYearandMonth(pageAccDate.ActivePageIndex,'',syear,smonth);
  case pageAccDate.ActivePageIndex of
    0: begin
         cbxCloseYear.Text  := syear;
         cbxCloseMonth.Text := smonth;
       end;
    1: begin
         cbxCancelYear.Text    := syear;
         cbxCancelMonth.Text   := smonth;
       end;
    2: begin
       end;
  end;
  Read_sCondAccDateList(pageAccDate.ActivePageIndex);
  SetListViewColumn(pageAccDate.ActivePageIndex);
  SetListView(pageAccDate.ActivePageIndex);
  edtCloseStkID.SetFocus;
end;

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

procedure TfrmInvAccount.Read_sCondAccDateList(iKind: Byte);
begin
  dm_Inventory.Read_AccountInfo(FAccountDateList);
end;


////////////////////////////////////////////////////////////////////
procedure TfrmInvAccount.SetListViewColumn(iAcc: Byte);
var
  Column: TListColumn;
begin
  case iAcc of
    0: begin
         ListViewClose.Columns.Clear;
         FColumnCnt := 0;
         //--
        Column           := ListViewClose.Columns.Add;
        Column.Width     := ListViewClose.Font.Size * 8;
        Column.Alignment := taCenter;
        Column.Caption   := '关帐仓库';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 8;
        Column.Caption := '关帐年度';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 6;
        Column.Caption := '月份';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 8;
        Column.Caption := '关帐人员';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 8;
        Column.Caption := '设定日期';
        Inc(FColumnCnt);
       end;
    1: begin
         ListViewCancel.Columns.Clear;
         FColumnCnt := 0;
         //--
        Column           := ListViewCancel.Columns.Add;
        Column.Width     := ListViewCancel.Font.Size * 8;
        Column.Alignment := taCenter;
        Column.Caption   := '取消仓库';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 8;
        Column.Caption := '取消年度';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 6;
        Column.Caption := '月份';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 8;
        Column.Caption := '取消人员';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 8;
        Column.Caption := '取消日期';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 8;
        Column.Caption := '月结人员';
        Inc(FColumnCnt);

        Column         := ListViewCancel.Columns.Add;
        Column.Width   := ListViewCancel.Font.Size * 8;
        Column.Caption := '月结日期';
        Inc(FColumnCnt);
       end;
    2: begin
         ListViewClose.Columns.Clear;
         FColumnCnt := 0;
         //--
        Column           := ListViewClose.Columns.Add;
        Column.Width     := ListViewClose.Font.Size * 10;
        Column.Alignment := taCenter;
        Column.Caption   := '已结转仓库';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 10;
        Column.Caption := '已结转年度';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 10;
        Column.Caption := '进出已转历史';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 8;
        Column.Caption := '结转人员';
        Inc(FColumnCnt);

        Column         := ListViewClose.Columns.Add;
        Column.Width   := ListViewClose.Font.Size * 8;
        Column.Caption := '结转日期';
        Inc(FColumnCnt);
       end;
  end;
end;

procedure TfrmInvAccount.MakeItemCaption(Item: TListItem; iAcc: Byte);
  //-- Init int value and '' to 0 value
  function IntToStrNull(INum: Integer): string;
  begin
    if INum = 0 then Result := ''
    else Result := IntToStr(INum);
  end;
var
  lcP: PYMAccInfo;
begin
  if Item = nil then Exit;
  if Item.Data = nil then Exit;
  lcP := Item.Data;

  Item.Caption      := strpas(lcp^.stk_id);
  Item.SubItems[00] := (lcp^.account_year)  + ' 年';
  Item.SubItems[01] := (lcp^.account_month) + ' 月';

  case iAcc of
    0: begin
         Item.SubItems[02] := dm_inventory.Get_EmpName(floattostr(lcp^.account_empid));
         Item.SubItems[03] := formatDatetime('yy/mm/dd',lcp^.input_date);
       end;
    1: begin
         Item.SubItems[02] := dm_inventory.Get_EmpName(floattostr(lcp^.cancel_empid));
         Item.SubItems[03] := formatDatetime('yy/mm/dd',lcp^.cancel_date);

⌨️ 快捷键说明

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