📄 paydeclare.~pas
字号:
//
//模块名称:工资申报
//编写:陈剑
//日期:2001年12月4日
//参数说明:
//
unit paydeclare;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, basetreewin, Menus, ActnList, ImgList, ComCtrls, ExtCtrls,
ToolWin, Grids, DBGrids, StdCtrls, Mask, TFlatMaskEditUnit, TFlatEditUnit,
DB, DBTables, TreeViewCP, RXDBCtrl, RxMemDS, TFlatButtonUnit, XPMenu,
Buttons;
type
Tpaydeclare_form = class(Tbasetreewin_form)
Exit_but: TAction;
Query1: TQuery;
DataSource1: TDataSource;
ImageList3: TImageList;
TB_save: TToolButton;
ImageList4: TImageList;
TB_cancel: TToolButton;
TB_exit: TToolButton;
Table1: TTable;
Table1opseno: TIntegerField;
Table1manid: TIntegerField;
Table1psseno: TIntegerField;
Table1year: TIntegerField;
Table1ttwage: TFloatField;
Table1months: TIntegerField;
Table1rewage: TFloatField;
Table1opcode: TStringField;
Table1opdate: TDateTimeField;
Table1procflg: TStringField;
Table1iscode: TStringField;
Table1agcardno: TStringField;
Table1psname: TStringField;
Query1iscode: TStringField;
Query1psname: TStringField;
Query1agcardno: TStringField;
RMD: TRxMemoryData;
RMDiscode: TStringField;
RMDagcardno: TStringField;
RMDttwage: TFloatField;
RMDmonths: TIntegerField;
RMDrewage: TFloatField;
RMDorganid: TStringField;
RMDmanid: TIntegerField;
RMDpsname: TStringField;
RMDoldttwage: TFloatField;
RMDoldmonths: TIntegerField;
RMDoldrewage: TFloatField;
Save_but: TAction;
Cancel_but: TAction;
Export_but: TAction;
SaveDialog1: TSaveDialog;
Panel4: TPanel;
Panel5: TPanel;
DBGrid1: TDBGrid;
RMDpsseno: TIntegerField;
RMDcpseno: TIntegerField;
XPMenu1: TXPMenu;
ToolBar3: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
M_edit: TMenuItem;
M_system: TMenuItem;
M_save: TMenuItem;
M_cancel: TMenuItem;
M_exit: TMenuItem;
N2: TMenuItem;
M_help: TMenuItem;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
Label4: TLabel;
ToolButton5: TToolButton;
Label5: TLabel;
FE_maxrewage: TFlatEdit;
Label6: TLabel;
FE_minrewage: TFlatEdit;
RMDlockflg: TStringField;
help_but: TAction;
ToolBar5: TToolBar;
Label12: TLabel;
E_cond: TEdit;
Label13: TLabel;
BB_search: TBitBtn;
E_totrewage: TEdit;
Label9: TLabel;
E_totemployee: TEdit;
Label8: TLabel;
FE_year: TFlatMaskEdit;
RMDcurrewage: TFloatField;
procedure Exit_butExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Cancel_butExecute(Sender: TObject);
procedure RMDAfterEdit(DataSet: TDataSet);
procedure RMDmonthsChange(Sender: TField);
procedure RMDttwageChange(Sender: TField);
procedure RMDrewageChange(Sender: TField);
procedure DBGrid1ColExit(Sender: TObject);
procedure FB_okClick(Sender: TObject);
procedure Save_butExecute(Sender: TObject);
procedure Export_butExecute(Sender: TObject);
procedure FE_yearKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1ColEnter(Sender: TObject);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1Enter(Sender: TObject);
procedure TreeViewCP1Changing(Sender: TObject; Node: TTreeNode;
var AllowChange: Boolean);
procedure TreeViewCP1Change(Sender: TObject; Node: TTreeNode);
procedure FE_yearExit(Sender: TObject);
procedure FE_yearChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure help_butExecute(Sender: TObject);
procedure BB_searchClick(Sender: TObject);
procedure E_condKeyPress(Sender: TObject; var Key: Char);
procedure RMDttwageSetText(Sender: TField; const Text: String);
procedure RMDmonthsSetText(Sender: TField; const Text: String);
procedure RMDrewageSetText(Sender: TField; const Text: String);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
PriorColumn:TColumn;
IsAsc:boolean;
procedure Sort(column:TColumn;dbgrid:TDBGrid;var PriorColumn:TColumn;var IsAsc:boolean);
function save():boolean;
procedure RMDDisplay(sqlstr:string);
procedure checkdata(Sender: TField);
procedure InfoUpdate();
public
{ Public declarations }
end;
var
paydeclare_form: Tpaydeclare_form;
IsModified,check,IsYearModified:boolean;//IsModified:修改标志;
//check:检查标志,为True时,则当工资总额、月数、缴费基数变化时,会对输入的数据做校验
MinRewage,MaxRewage:double;
implementation
uses main, datashare, hh;
{$R *.dfm}
procedure Tpaydeclare_form.InfoUpdate();
var
//ls_sql,ls_cpseno:String;
lr_rewage:real;
bookmark:TBookmarkStr;
begin
//ls_cpseno:=inttostr(treeviewcp1.GetOrganCpseno(treeviewcp1,treeviewcp1.selected));
try
{with datashare_form.Query1 do
begin
close;
sql.Clear;
ls_sql:='select count(*) totemployee from psarch where cpseno='+ls_cpseno+' and status in ('+chr(39)+'1'+chr(39)+','+chr(39)+'2'+chr(39)+')';
sql.Add(ls_sql);
prepare;
open;
E_totemployee.Text:=fieldbyname('totemployee').AsString;
params.Clear;
close;
sql.Clear;
ls_sql:='select sum(rewage) totrewage from psarch where cpseno='+ls_cpseno+' and status ='+chr(39)+'1'+chr(39);
sql.Add(ls_sql);
prepare;
open;
E_totrewage.Text:=FormatFloat('0.00',fieldbyname('totrewage').AsFloat);
close;
end; }
bookmark:=RMD.Bookmark;
E_totemployee.Text:=inttostr(RMD.RecordCount);
lr_rewage:=0.00;
RMD.DisableControls;
RMD.First;
while not RMD.Eof do
begin
lr_rewage:=lr_rewage+RMDrewage.AsFloat;
RMD.Next;
end;
RMD.EnableControls;
RMD.Bookmark:=bookmark;
E_totrewage.Text:=formatfloat('0.00',lr_rewage);
except
on e:exception do
application.MessageBox(pchar(e.Message),'恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
end;
end;
procedure Tpaydeclare_form.Sort(column:TColumn;dbgrid:TDBGrid;var PriorColumn:TColumn;var IsAsc:boolean);
var
ls_sql,ls_oldsql,ls_ids:string;
li_findindex:integer;
begin
try
//if (dbgrid.DataSource.DataSet as TQuery).RecordCount=0 then
// exit;
{//ls_oldsql:=query1.SQL.Text;
ls_oldsql:=(dbgrid.DataSource.DataSet as TQuery).SQL.Text;
if ls_oldsql='' then
exit;
ls_sql:=ls_oldsql;
li_findindex:=pos('order by',lowercase(ls_sql));
if li_findindex>0 then
begin
ls_sql:=copy(ls_sql,1,li_findindex-1);
end; }
//ls_ids:=treeviewcp1.GenerateOrganIds(treeviewcp1.Selected,main_form.user.operid);
//ls_sql:='select a.cpseno cpseno,a.psseno psseno,a.manid manid,a.iscode iscode,a.psname psname,a.agcardno agcardno,a.organid organid,b.ttwage ttwage,b.months months,b.rewage rewage,b.lockflg lockflg ';
//ls_sql:=ls_sql+' from {oj psarch a left outer join pswgcase b on (a.manid=b.manid and b.year='+FE_year.Text+' and b. procflg='+chr(39)+'1'+chr(39)+')} where a.status='+chr(39)+'1'+chr(39)+' and a.organid in ('+ls_ids+')';
if PriorColumn=nil then
begin
//ls_sql:=ls_sql+' order by '+column.FieldName+' asc';
//RMDDisplay(ls_sql);
RMD.SortOnFields(column.FieldName,true,false);
//IsModified:=false;
column.Title.Caption:=column.Title.Caption+' △';
priorColumn:=column;
IsAsc:=true;
exit;
end;
if PriorColumn.FieldName=column.FieldName then
begin
if IsAsc then
begin
RMD.SortOnFields(column.FieldName,true,true);
//ls_sql:=ls_sql+' order by '+column.FieldName+' desc';
end else
RMD.SortOnFields(column.FieldName,true,false);
//ls_sql:=ls_sql+' order by '+column.FieldName+' asc';
//RMDDisplay(ls_sql);
//IsModified:=false;
column.Title.Caption:=copy(column.Title.Caption,1,length(column.Title.Caption)-3);
if IsAsc then
begin
column.Title.Caption:=column.Title.Caption+' ▽';
end else
column.Title.Caption:=column.Title.Caption+' △';
priorColumn:=column;
IsAsc:=not IsAsc;
exit;
end else
begin
//ls_sql:=ls_sql+' order by '+column.FieldName+' asc';
//RMDDisplay(ls_sql);
RMD.SortOnFields(column.FieldName,true,false);
//IsModified:=false;
PriorColumn.Title.Caption:=copy(PriorColumn.Title.Caption,1,length(PriorColumn.Title.Caption)-3);
column.Title.Caption:=column.Title.Caption+' △';
PriorColumn:=column;
IsAsc:=true;
exit;
end;
except
on e:exception do
begin
application.MessageBox('该字段无法排序!','恩普软件',MB_OK+MB_IconStop+MB_SystemModal);
PriorColumn.Title.Caption:=copy(PriorColumn.Title.Caption,1,length(PriorColumn.Title.Caption)-3);
PriorColumn:=nil;
//ls_sql:='select a.cpseno cpseno,a.psseno psseno,a.manid manid,a.iscode iscode,a.psname psname,a.agcardno agcardno,a.organid organid,b.ttwage ttwage,b.months months,b.rewage rewage,b.lockflg lockflg ';
//ls_sql:=ls_sql+' from {oj psarch a left outer join pswgcase b on (a.manid=b.manid and b.year='+FE_year.Text+' and b. procflg='+chr(39)+'1'+chr(39)+')} where a.status='+chr(39)+'1'+chr(39)+' and a.organid in ('+ls_ids+')';
//RMDDisplay(ls_sql);
//IsModified:=false;
exit
end;
end;
end;
procedure Tpaydeclare_form.Exit_butExecute(Sender: TObject);
begin
inherited;
//退出当前模块
if Application.MessageBox('您真的要退出当前模块操作吗?','退出确认',MB_OKCancel+MB_DEFBUTTON1+MB_IconQuestion+MB_SystemModal)=IdOk then
begin
close;
end;
end;
procedure Tpaydeclare_form.FormCreate(Sender: TObject);
var
ls_sql:string;
begin
inherited;
StatusBar1.Panels[0].Text:=main_form.StatusBar1.Panels[0].Text;
StatusBar1.Panels[1].Text:=main_form.StatusBar1.Panels[1].Text;
StatusBar1.Panels[2].Text:=main_form.StatusBar1.Panels[2].Text;
with datashare_form.Query1 do //取缴费基数上下限、当前年份
begin
close;
sql.Clear;
ls_sql:='select topvalue,butvalue,year(today()) year from SCOIPARASETUP';
sql.Add(ls_sql);
prepare;
open;
MinRewage:=fieldbyname('butvalue').AsFloat;
MaxRewage:=fieldbyname('topvalue').AsFloat;
FE_maxrewage.Text:=Formatfloat('0.00',fieldbyname('topvalue').AsFloat);
FE_minrewage.Text:=Formatfloat('0.00',fieldbyname('butvalue').AsFloat);
FE_year.Text:=fieldbyname('year').AsString;
params.Clear;
close;
end;
IsModified:=false;
IsYearModified:=false;
end;
procedure Tpaydeclare_form.FormActivate(Sender: TObject);
var
ls_sql:string;
p_organ:^TOrganization;
begin
inherited;
treeviewcp1.OPERID:=main_form.user.OPERID;
treeviewcp1.IsDispDept:=true;
treeviewcp1.Query:=datashare_form.Query1;
treeviewcp1.Display;
treeviewcp1.FullExpand;
FE_year.SetFocus;
//if treeviewcp1.Items.Count>0 then
//begin
// p_organ:=treeviewcp1.Items[0].Data;
// if p_organ^.canaccess then
// begin
// treeviewcp1.Items[0].Selected;
// //显示所有人员
// rmd.Close;
// ls_sql:='select a.cpseno cpseno,a.psseno psseno,a.manid manid,a.iscode iscode,a.psname psname,a.agcardno agcardno,a.organid organid,b.ttwage ttwage,b.months months,b.rewage rewage,b.lockflg lockflg from {oj psarch a left outer join pswgcase b on (a.manid=b.manid and b.year='+FE_year.Text+' and b. procflg='+chr(39)+'1'+chr(39)+')} where a.status='+chr(39)+'1'+chr(39)+' and a.organid in ('+treeviewcp1.GenerateOrganIds(treeviewcp1.Selected,main_form.user.operid)+')';
// rmd.Open;
// RMDDisplay(ls_sql);
// end;
// end;
end;
procedure Tpaydeclare_form.Cancel_butExecute(Sender: TObject);
var
bookmark:TBookmarkStr;
begin
inherited;
if not IsModified then
exit;
check:=false;
bookmark:=rmd.Bookmark;
rmd.DisableControls;
try
rmd.First;
while not rmd.Eof do
begin
rmd.Edit; //用修改前的值覆盖修改后的值
rmdttwage.Value:=rmdoldttwage.AsFloat;
rmdmonths.Value:=rmdoldmonths.AsInteger;
rmdrewage.Value:=rmdoldrewage.AsFloat;
rmd.Post;
rmd.Next;
end;
finally
rmd.Bookmark:=bookmark;
rmd.EnableControls;
end;
IsModified:=false;
check:=true;
infoupdate;
end;
procedure Tpaydeclare_form.RMDAfterEdit(DataSet: TDataSet);
begin
inherited;
if rmdlockflg.AsString='1' then
begin
application.MessageBox('此业务已经锁定,请在审核返回或解除申报锁定后再操作!','恩普软件',MB_OK+MB_ICONINFORMATION+MB_SystemModal);
//check:=false;
rmd.Cancel;
//check:=true;
exit;
end;
if not IsModified then
IsModified:=true;
end;
function Tpaydeclare_form.save():boolean;
var
ls_sql:string;
bookmark:TBookmarkStr;
rec,li_opid:integer;
begin
check:=false;
{try
rmd.Post;
except
on e:exception do
begin
end;
end; }
bookmark:=rmd.Bookmark;
rmd.DisableControls;
rmd.First;
while not rmd.Eof do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -