📄 cxmxunit.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 + -