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

📄 paydeclare.~pas

📁 企业端数据申报系统:单位管理模块 单位查询. 业务申报模块 在线数据下载 在线数据上传 在线业务申核 申报业务查询 磁盘数据导出 磁盘数据导入 在线业务模块 在线业务
💻 ~PAS
📖 第 1 页 / 共 3 页
字号:
//
//模块名称:工资申报
//编写:陈剑
//日期: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 + -