📄 invaccount.~pas
字号:
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 := 0;
Left := frmMain.Width;
Height := Screen.Height-(Height - ClientHeight);
Width := Width;
//////////////////////////
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 + -