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

📄 cxmxunit.pas

📁 使用delphi语言
💻 PAS
字号:
unit cxmxunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ToolWin, ComCtrls, StdCtrls, ExtCtrls, Grids, DBGrids,
  ADODB;

type
  Tcxmxform = class(TForm)
    ToolBar1: TToolBar;
    sb_print: TSpeedButton;
    sb_close: TSpeedButton;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Bevel1: TBevel;
    DBGrid1: TDBGrid;
    Label9: TLabel;
    Label10: TLabel;
    c: TADOCommand;
    procedure FormCreate(Sender: TObject);
    procedure sb_closeClick(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sb_printClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  cxmxform: Tcxmxform;

implementation
uses dmunit,cx_mxunit,printunit;
{$R *.dfm}

procedure Tcxmxform.FormCreate(Sender: TObject);
var i:integer;
    ye:double;
begin
  try
  label5.Caption:=cx_mxform.DBLookupComboBox1.Text ;
  label6.Caption:=cx_mxform.Edit1.Text ;
  label10.Caption:=cx_mxform.account;    //为各个label赋值
  dm.qcye.Close;
  dm.qcye.CommandText:='select * from 期初余额 where 职工编号=:id';
  dm.qcye.Parameters.ParamByName('id').Value:=cx_mxform.Edit1.Text ;
  dm.qcye.Open ;
  c.CommandText:='delete 余额表';
  c.Execute ; //删除余额表中原来存在的数据
  c.CommandText:='insert 余额表(摘要,余额) values(''期初余额'',:m)';
  c.Parameters.ParamByName('m').Value:=dm.qcye.FieldValues['总期初余额'];
  c.Execute ;//首先向余额表中插入第一条数据,这个职工的期初余额
  c.CommandText:='insert 余额表(摘要,年,月,职工编号,账号,职工姓名,总系数,减少总系数)'+
                 'select 摘要,年,月,职工编号,账号,职工姓名,总系数,减少总系数 from 明细表 '+
                 'where 职工编号=:id order by 年,月 asc';
  c.Parameters.ParamByName('id').Value:=cx_mxform.Edit1.Text ;
  c.Execute ;   //向余额表中插入明细表的有关这个职工数据
  dm.ye.Close;
  dm.ye.CommandText:='select * from 余额表';
  dm.ye.Open ;
  dm.ye.First ;
  ye:=dm.ye.FieldValues['余额'];
  dm.ye.Next;
  for i:=1 to dm.ye.RecordCount-1 do
  begin
    dm.ye.Edit ;
    dm.ye.FieldValues['余额']:=ye+dm.ye.FieldValues['总系数']-dm.ye.FieldValues['减少总系数'];
    ye:=dm.ye.FieldValues['余额'];
    dm.ye.Next;
  end;
  except
    showmessage('数据查询错误,请查看您填写的职工编号是否正确!');
  end;
end;

procedure Tcxmxform.sb_closeClick(Sender: TObject);
begin
  dm.qcye.Active:=false;
  dm.ye.Active:=false;
  close;
end;

procedure Tcxmxform.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if dm.ye.RecordCount>0 then
  begin
    if trim(dm.ye.FieldValues['摘要'])='存入' then
      dbgrid1.Canvas.Font.Color:=clred;
    if trim(dm.ye.FieldValues['摘要'])='期初余额' then
      dbgrid1.Canvas.Font.Color:=clblue;
    if trim(dm.ye.FieldValues['摘要'])='利息结算' then
      dbgrid1.Canvas.Font.Color:=clfuchsia;
    if trim(dm.ye.FieldValues['摘要'])='提取住房公积金' then
      dbgrid1.Canvas.Font.Color:=clgreen;
    dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
  end;
end;

procedure Tcxmxform.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=119 then
    sb_close.Click ;
  if key=114 then
    sb_print.Click ;
end;

procedure Tcxmxform.sb_printClick(Sender: TObject);
begin
  Application.CreateForm(Tprintform, printform);
  printform.QuickRep1.BringToFront ;
  printform.QuickRep1.ReportTitle:='个人明细表预览';
  printform.QuickRep1.Preview ;
  printform.Free;
end;

end.

⌨️ 快捷键说明

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