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

📄 startbalance.pas

📁 晓风财务软件源码,具有财务软基本功能,仅供学习,勿商用,后果与本人无关 1、使用的第三方VCL: FastReport2.6中文版 EHLIB3 sncCurrency SUIPac
💻 PAS
字号:
unit StartBalance;

interface

uses
  Windows, Graphics, Controls, Forms, DB, ADODB, SysUtils,
  Dialogs, StdCtrls, ExtCtrls, SUIButton, SUIEdit,
  SUIDBCtrls, SUIURLLabel, jpeg, Classes, SUIForm, Grids, DBGridEh;

type
  TFrmStartBalance = class(TForm)
    suiForm1: TsuiForm;
    btnCancel: TsuiButton;
    btnOK: TsuiButton;
    g: TDBGridEh;
    DataSource1: TDataSource;
    Label1: TLabel;
    editState: TsuiEdit;
    q: TADOQuery;
    qc: TADOQuery;
    btnCheck: TsuiButton;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnOKClick(Sender: TObject);
    procedure gKeyPress(Sender: TObject; var Key: Char);
    procedure gDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
    procedure btnCheckClick(Sender: TObject);
    procedure qAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
  public
    procedure CheckBalance;
  end;

var
  FrmStartBalance: TFrmStartBalance;
implementation

uses DataModule;

{$R *.dfm}
procedure TFrmStartBalance.CheckBalance;
var
  J,D:Currency;
begin
  qc.Close;
  qc.SQL.Clear;
  qc.SQL.Add('select sum(Balance) as J from #TempBalance where J_D_Type=''借''');
  qc.Open;
  J:=qc.FieldByName('J').AsCurrency;
  qc.Close;
  qc.SQL.Clear;
  qc.SQL.Add('select sum(Balance) as D from #TempBalance where J_D_Type=''贷''');
  qc.Open;
  D:=qc.FieldByName('D').AsCurrency;
  qc.Close;
  if J<>D then
    editState.Text:='未平衡。'
  else
    editState.Text:='已平衡。';
end;

procedure TFrmStartBalance.FormShow(Sender: TObject);
begin
  q.Connection:=DM.adoc;
  qc.Connection:=DM.adoc;

  q.Close;
  q.SQL.Clear;
  q.SQL.Add('select V_Subject.*,a.Balance into #TempBalance from V_Subject LEFT OUTER JOIN (select * from Balance where [year]='+IntToStr(DM.AccountYear)+' and [Month]='+IntToStr(DM.AccountMonth)+') as a on V_Subject.id=a.Subject_id');
  q.ExecSQL;
  q.Close;
  q.SQL.Clear;
  q.SQL.Add('select * from #TempBalance order by Code');
  q.Open;
  CheckBalance;
end;

procedure TFrmStartBalance.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  q.Close;
  q.SQL.Clear;
  q.SQL.Add('drop table #TempBalance');
  q.ExecSQL;
  q.Close;
end;

procedure TFrmStartBalance.btnOKClick(Sender: TObject);
var
  t_q:TAdoQuery;
begin
  t_q:=TAdoQuery.Create(self);
  t_q.Connection:=q.Connection;
  t_q.Close;
  t_q.SQL.Clear;
  t_q.SQL.Add('delete from Balance where [Year]='+IntToStr(DM.AccountYear)+' and [Month]='+IntToStr(DM.AccountMonth));
  t_q.ExecSQL;
  t_q.Close;

  t_q.SQL.Clear;
  t_q.SQL.Add('insert into Balance select '+IntToStr(DM.AccountYear)+' as [Year],'+IntToStr(DM.AccountMonth)+' as [Month],id as Subject,Balance from #TempBalance where Balance<>0');
  t_q.ExecSQL;
  t_q.Close;
  t_q.Destroy;
end;

procedure TFrmStartBalance.gKeyPress(Sender: TObject; var Key: Char);
begin
  if q.FieldByName('IsHasSubSubject').AsBoolean then Key:=#0;
end;

procedure TFrmStartBalance.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('IsHasSubSubject').AsBoolean) then {设定变色的行的条件}
  begin
    g.Canvas.Brush.color:=$00E8E8E8;//RGB(233,154,240);
    g.Canvas.pen.mode:=pmmask;
  end;
  if (Column.FieldName='Balance') and (q.FieldByName('Balance').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 TFrmStartBalance.btnCheckClick(Sender: TObject);
begin
  CheckBalance;
end;

procedure TFrmStartBalance.qAfterScroll(DataSet: TDataSet);
begin
  CheckBalance;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -