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

📄 queryaccountzbcx.pas

📁 一套非常发好的财务管理软件,想从事此方面开发的可以借签
💻 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 + -