📄 queryaccountzbcx.pas
字号:
unit QueryAccountZBCX;
interface
uses
Windows, Graphics, Controls, Forms, SysUtils,
Dialogs, StdCtrls, ExtCtrls, SUIButton, SUIEdit, ExtFunc,
SUIDBCtrls, SUIURLLabel, jpeg, Classes, SUIForm, DB, ADODB, Grids,
DBGridEh, FR_DSet, FR_DBSet, FR_Class, printers;
type
TFrmQueryAccountZBCX = class(TForm)
suiForm1: TsuiForm;
btnOK: TsuiButton;
editSubject: TsuiEdit;
Label1: TLabel;
btnPD: TsuiButton;
btnPrint: TsuiButton;
q: TADOQuery;
Label2: TLabel;
g: TDBGridEh;
Label3: TLabel;
Label4: TLabel;
DataSource1: TDataSource;
editYear: TsuiEdit;
fr: TfrReport;
frDS: TfrDBDataSet;
procedure editSubjectKeyPress(Sender: TObject; var Key: Char);
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 btnPDClick(Sender: TObject);
procedure editYearKeyPress(Sender: TObject; var Key: Char);
procedure editYearExit(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure qAfterScroll(DataSet: TDataSet);
private
{ Private declarations }
public
SelectID:integer;
MinYear:integer;
procedure Go;
end;
var
FrmQueryAccountZBCX: TFrmQueryAccountZBCX;
implementation
uses DataModule, Pd;
{$R *.dfm}
procedure TFrmQueryAccountZBCX.Go;
begin
q.Close;
q.SQL.Clear;
q.SQL.Add('P_SubjectAccount '+IntToStr(SelectID)+','+Trim(editYear.Text));
q.Open;
btnPrint.Enabled:=(q.RecordCount>0);
btnPD.Enabled:=false;
end;
procedure TFrmQueryAccountZBCX.editSubjectKeyPress(Sender: TObject;
var Key: Char);
var
id:integer;
d:pChar;
begin
if Key<>#32 then Exit;
GetMem(d,1000);
if Frm_CodeInput(DM.adoc,'V_Subject','ID','Code_PinYin','Code_WuBi','CodeLongSubjectName','Used',@id,d)=mrOK then
begin
SelectID:=id;
editSubject.Text:=d;
Label3.Caption:='(科目:'+d+')';
end;
FreeMem(d,1000);
if SelectID<>-1 then Go;
end;
procedure TFrmQueryAccountZBCX.FormShow(Sender: TObject);
begin
q.Connection:=DM.adoc;
SelectID:=-1;
Label4.Caption:='单位:'+DM.DeptName;
editYear.Text:=IntToStr(DM.AccountYear);
MinYear:=DM.AccountStartYear;
end;
procedure TFrmQueryAccountZBCX.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
q.Close;
end;
procedure TFrmQueryAccountZBCX.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 ((q.FieldByName('auditingOperator_id').AsInteger=0) and (q.FieldByName('Number').AsInteger>0)) then {设定变色的行的条件}
begin
g.Canvas.Brush.color:=$00E8E8E8;
g.Canvas.pen.mode:=pmmask;
end;
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='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 TFrmQueryAccountZBCX.btnPDClick(Sender: TObject);
var
fpd:TFrmPD;
begin
if q.FieldByName('Number').AsInteger<1 then Exit;
fpd:=TFrmPD.Create(self);
fpd.DefaultYear:=q.FieldByName('year').AsInteger;
fpd.DefaultMonth:=q.FieldByName('Month').AsInteger;
fpd.DefaultNum:=q.FieldByName('Number').AsInteger;
fpd.CanEdit:=false;
fpd.CanEditSubject:=false;
fpd.ShowModal;
fpd.Destroy;
end;
procedure TFrmQueryAccountZBCX.editYearKeyPress(Sender: TObject;
var Key: Char);
begin
if not (Key in ['1','2','3','4','5','6','7','8','9','0',#8]) then Key:=#0;
end;
procedure TFrmQueryAccountZBCX.editYearExit(Sender: TObject);
begin
if (StrToInt(editYear.Text)>DM.AccountYear) or (StrToInt(editYear.Text)<MinYear) then
begin
Frm_MsgBox('系统信息','输入的年份不在有效范围之内,其范围应该在 '+IntToStr(MinYear)+'-'+IntToStr(DM.AccountYear)+' 之间。',MsgBox_OK_ERROR);
editYear.Text:=IntToStr(DM.AccountYear);
editYear.SetFocus;
Exit;
end;
if SelectID<>-1 then Go;
end;
procedure TFrmQueryAccountZBCX.btnPrintClick(Sender: TObject);
begin
if not DM.CheckSoftReg then Exit;
fr.LoadFromFile(FUN_GetCurrentPath^+'Report\AccountBook.frf');
fr.Pages[0].ChangePaper(256,DM.AccountPageWidth,DM.AccountPageHeight,-1,poLandscape);
frVariables['AccountYear']:=editYear.Text+'年';
frVariables['DeptName']:=DM.DeptName;
frVariables['ReportSubject']:=Label3.Caption;
frVariables['FinanceManager']:=DM.FinanceManager;
frVariables['UserName']:=DM.UserName;
frVariables['PrintDate']:=now;
fr.PrepareReport;
fr.ShowReport;
end;
procedure TFrmQueryAccountZBCX.qAfterScroll(DataSet: TDataSet);
begin
btnPD.Enabled:=(q.FieldByName('Number').AsInteger<>0);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -