📄 queryaccountkmhz.pas
字号:
unit QueryAccountKMHZ;
interface
uses
Windows, Graphics, Controls, Forms, SysUtils,
Dialogs, StdCtrls, ExtCtrls, SUIButton, SUIEdit, ExtFunc,
SUIDBCtrls, SUIURLLabel, jpeg, Classes, SUIForm, DB, ADODB, Grids,
DBGridEh, SUIComboBox, FR_DSet, FR_DBSet, FR_Class, printers;
type
TFrmQueryAccountKMHZ = class(TForm)
suiForm1: TsuiForm;
btnOK: TsuiButton;
btnPrint: TsuiButton;
q: TADOQuery;
Label2: TLabel;
g: TDBGridEh;
Label3: TLabel;
Label4: TLabel;
DataSource1: TDataSource;
GroupBox1: TGroupBox;
cbSY: TsuiComboBox;
cbSM: TsuiComboBox;
editSN: TsuiEdit;
cbEY: TsuiComboBox;
cbEM: TsuiComboBox;
editEN: TsuiEdit;
Label1: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
btnGO: TsuiButton;
cbFilterZero: TsuiCheckBox;
fr: TfrReport;
frDS: TfrDBDataSet;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure gDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure editSNKeyPress(Sender: TObject; var Key: Char);
procedure cbSYChange(Sender: TObject);
procedure btnGOClick(Sender: TObject);
procedure gDrawFooterCell(Sender: TObject; DataCol, Row: Integer;
Column: TColumnEh; Rect: TRect; State: TGridDrawState);
procedure cbFilterZeroClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
private
{ Private declarations }
public
procedure FilterZero;
end;
var
FrmQueryAccountKMHZ: TFrmQueryAccountKMHZ;
implementation
uses DataModule;
{$R *.dfm}
procedure TFrmQueryAccountKMHZ.FormShow(Sender: TObject);
var
i:integer;
tq:TAdoQuery;
begin
q.Connection:=DM.adoc;
Label4.Caption:='单位:'+DM.DeptName;
for i:=DM.AccountStartYear to DM.AccountYear do
begin
cbSY.Items.Add(IntToStr(i));
cbEY.Items.Add(IntToStr(i));
end;
cbSY.ItemIndex:=cbSY.Items.Count-1;
cbEY.ItemIndex:=cbEY.Items.Count-1;
if DM.AccountStartYear=DM.AccountYear then cbSM.ItemIndex:=DM.AccountStartMonth-1 else cbSM.ItemIndex:=0;
cbEM.ItemIndex:=DM.AccountMonth-1;
editSN.Text:='1';
tq:=TAdoQuery.Create(self);
tq.Connection:=DM.adoc;
tq.Close;
tq.SQL.Clear;
tq.SQL.Add('select max(Number) as MaxNum from Credence where [Year]='+IntToStr(DM.AccountYear)+' and [Month]='+IntToStr(DM.AccountMonth));
tq.Open;
editEN.Text:=IntToStr(tq.FieldByName('MaxNum').AsInteger);
tq.Close;
tq.Destroy;
btnGO.Click;
end;
procedure TFrmQueryAccountKMHZ.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
q.Close;
end;
procedure TFrmQueryAccountKMHZ.gDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
var
oldcolor:TColor;
oldpm:TPenMode;
oldFontColor:TColor;
begin
oldpm:= g.Canvas.pen.mode;
oldcolor:= g.Canvas.Brush.color;
oldFontColor:=g.Canvas.Font.Color;
if ((column.FieldName='J_Money') and (q.FieldByName('J_Money').AsCurrency<0)) or
((column.FieldName='D_Money') and (q.FieldByName('D_Money').AsCurrency<0)) or
((column.FieldName='Difference_Money') and (q.FieldByName('Difference_Money').AsCurrency<0)) then
g.Canvas.Font.Color:=RGB(255,0,0);
g.DefaultDrawColumnCell (Rect,DataCol, Column, State);
g.Canvas.Brush.color:=oldcolor;
g.Canvas.pen.mode:=oldpm;
g.Canvas.Font.Color:=oldFontColor;
end;
procedure TFrmQueryAccountKMHZ.editSNKeyPress(Sender: TObject;
var Key: Char);
begin
if not (Key in ['0','1','2','3','4','5','6','7','8','9',#8]) then Key:=#0;
end;
procedure TFrmQueryAccountKMHZ.cbSYChange(Sender: TObject);
begin
btnGO.Enabled:=((cbSY.Text<>'') and (cbSM.Text<>'') and (editSN.Text<>'') and (cbEY.Text<>'') and (cbEM.Text<>'') and (editEN.Text<>''));
end;
procedure TFrmQueryAccountKMHZ.btnGOClick(Sender: TObject);
begin
q.Close;
q.SQL.Clear;
q.SQL.Add('P_SubjectSumAccount '+cbSY.Text+','+cbSM.Text+','+editSN.Text+','+cbEY.Text+','+cbEM.Text+','+editEN.Text);
q.Open;
FilterZero;
Label3.Caption:='汇总凭证区间:'+cbSY.Text+'年'+cbSM.Text+'月 第'+editSN.Text+'号 - '+cbEY.Text+'年'+cbEM.Text+'月 第'+editEN.Text+'号';
end;
procedure TFrmQueryAccountKMHZ.gDrawFooterCell(Sender: TObject; DataCol,
Row: Integer; Column: TColumnEh; Rect: TRect; State: TGridDrawState);
var
oldcolor:TColor;
oldpm:TPenMode;
oldFontColor:TColor;
begin
oldpm:= g.Canvas.pen.mode;
oldcolor:= g.Canvas.Brush.color;
oldFontColor:=g.Canvas.Font.Color;
if ((column.FieldName='J_Money') and (q.FieldByName('J_Money').AsCurrency<0)) or
((column.FieldName='D_Money') and (q.FieldByName('D_Money').AsCurrency<0)) or
((column.FieldName='Difference_Money') and (q.FieldByName('Difference_Money').AsCurrency<0)) then
g.Canvas.Font.Color:=RGB(255,0,0);
g.DefaultDrawFooterCell(Rect,DataCol,Row,Column,State);
g.Canvas.Brush.color:=oldcolor;
g.Canvas.pen.mode:=oldpm;
g.Canvas.Font.Color:=oldFontColor;
end;
procedure TFrmQueryAccountKMHZ.cbFilterZeroClick(Sender: TObject);
begin
FilterZero;
end;
procedure TFrmQueryAccountKMHZ.FilterZero;
begin
if not q.Active then Exit;
if cbFilterZero.Checked then
begin
q.Filter:='isNullRow=0';
q.Filtered:=true;
end
else q.Filtered:=false;
btnPrint.Enabled:=(q.RecordCount>0);
end;
procedure TFrmQueryAccountKMHZ.btnPrintClick(Sender: TObject);
begin
if not DM.CheckSoftReg then Exit;
fr.LoadFromFile(FUN_GetCurrentPath^+'Report\SumAccountBook.frf');
fr.Pages[0].ChangePaper(256,DM.AccountPageWidth,DM.AccountPageHeight,-1,poLandscape);
frVariables['DeptName']:=DM.DeptName;
frVariables['CredenceRange']:=Label3.Caption;
frVariables['FinanceManager']:=DM.FinanceManager;
frVariables['UserName']:=DM.UserName;
frVariables['PrintDate']:=now;
fr.PrepareReport;
fr.ShowReport;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -