📄 queryaccountfsejye.pas
字号:
unit QueryAccountFSEJYE;
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
TFrmQueryAccountFSEJYE = 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;
cbSubjectLevel: TsuiComboBox;
Label10: TLabel;
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 cbFilterZeroClick(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
private
{ Private declarations }
public
procedure FilterZero;
end;
var
FrmQueryAccountFSEJYE: TFrmQueryAccountFSEJYE;
implementation
uses DataModule;
{$R *.dfm}
procedure TFrmQueryAccountFSEJYE.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;
for i:=1 to DM.MaxSubjectLevel do cbSubjectLevel.Items.Add(IntToStr(i));
cbSubjectLevel.ItemIndex:=DM.MaxSubjectLevel-1;
btnGO.Click;
end;
procedure TFrmQueryAccountFSEJYE.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
q.Close;
end;
procedure TFrmQueryAccountFSEJYE.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='Balance') and (q.FieldByName('Balance').AsCurrency<0)) or
((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='Y_Money') and (q.FieldByName('Y_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 TFrmQueryAccountFSEJYE.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 TFrmQueryAccountFSEJYE.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 TFrmQueryAccountFSEJYE.btnGOClick(Sender: TObject);
begin
q.Close;
q.SQL.Clear;
q.SQL.Add('P_SubjectBetideBalanceAccount '+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 TFrmQueryAccountFSEJYE.cbFilterZeroClick(Sender: TObject);
begin
FilterZero;
end;
procedure TFrmQueryAccountFSEJYE.FilterZero;
begin
if not q.Active then Exit;
q.Filter:='(Subject_Level<='+cbSubjectLevel.Text+')';
if cbFilterZero.Checked then
begin
q.Filter:=q.Filter+' and (isNullRow=0)';
end;
q.Filtered:=true;
btnPrint.Enabled:=(q.RecordCount>0);
end;
procedure TFrmQueryAccountFSEJYE.btnPrintClick(Sender: TObject);
begin
if not DM.CheckSoftReg then Exit;
fr.LoadFromFile(FUN_GetCurrentPath^+'Report\BetideBalanceAccount.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 + -