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

📄 jm_jkfh.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                         营业员缴款复核                }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在地市集邮票管理,地市集邮品管理,地市市场购入票里面调用。

*)
unit JM_JKFH;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, ExtCtrls, ComCtrls, RXSpin, Mask, ToolEdit,
  RXCtrls, Db, DBTables, DBCtrls, JM_data, Buttons, EHGrids,
  DBGridEh;

type
  Pygxx = ^Tygxx;
  Tygxx = record
    ygdm: string;
    ygmc: string;
  end;

type
  Tfrm_qtjkfh = class(TForm)
    Panel2: TPanel;
    XttxTitle: TRxLabel;
    Label11: TLabel;
    Panel1: TPanel;
    CB_notcheck: TCheckBox;
    Qry_jkfh: TQuery;
    DataSource1: TDataSource;
    Qry_check: TQuery;
    CB_yyy: TCheckBox;
    CBox_yyy: TComboBox;
    CB_date: TCheckBox;
    Btn_sel: TBitBtn;
    Panel3: TPanel;
    BitBtn2: TBitBtn;
    btnSave: TButton;
    btnPrint: TButton;
    btnExit: TButton;
    Panel4: TPanel;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    DBGridEh1: TDBGridEh;
    DE_from: TDateEdit;
    DE_to: TDateEdit;
    Qry_jkd: TQuery;
    DS_jkd: TDataSource;
    Qry_jkdJKDH: TStringField;
    Qry_jkdYGMC: TStringField;
    Qry_jkdJKJE: TFloatField;
    Qry_jkdGHZT: TStringField;
    Qry_jkdJKRQ: TStringField;
    Qry_jkdGHRQ: TStringField;
    Qry_jkfhJKLX: TStringField;
    Qry_jkfhJKJE: TFloatField;
    Qry_jkdYGDM: TStringField;
    procedure btnSaveClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnPrintClick(Sender: TObject);
    procedure Btn_selClick(Sender: TObject);
    procedure Qry_jkdJKJEGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure BitBtn2Click(Sender: TObject);
    procedure DBGridEh1GetFooterParams(Sender: TObject; DataCol,
      Row: Integer; Column: TColumnEh; AFont: TFont;
      var Background: TColor; var Alignment: TAlignment;
      State: TGridDrawState; var Text: String);
    procedure DBGridEh1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
  private
    { Private declarations }
    procedure CheckYGDM;
    procedure DoCheckJKD(ALLCheck: Boolean);
  public

  end;

var
  frm_qtjkfh: Tfrm_qtjkfh;
function Show_MS_YYYJKFH: Boolean; //(后)营业员退缴复核

implementation

uses datas,pub;

{$R *.DFM}

{ Tfrm_qtrk }

function Show_MS_YYYJKFH: Boolean; //(后)营业员退缴复核
begin
  frm_qtjkfh := TFrm_qtjkfh.Create(Application);
  with frm_qtjkfh do
  try
    Caption := Application.Title;
    ShowModal;
  finally
    Destroy;
  end;
end;

procedure Tfrm_qtjkfh.CheckYGDM;
var
  xygxx: Pygxx;
begin
  with Qry_check do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Select YGDM,YGMC from TGS_RYB where YGDM in(select YGDM from TM_YYYYEB)');
    Open;
  end;

  while not Qry_check.Eof do
  begin
    new(xygxx);
    xygxx^.ygdm := Qry_check.fieldByName('ygdm').AsString;
    xygxx^.ygmc := Qry_check.FieldByName('ygmc').asString;
    CBox_yyy.Items.AddObject(Qry_check.FieldByName('YGMC').asString, TObject(xygxx));
    Qry_check.Next;
  end;
  if CBox_yyy.Items.Count > 0 then
    CBox_yyy.ItemIndex := 0;
end;

procedure Tfrm_qtjkfh.btnSaveClick(Sender: TObject);
begin
  if Qry_jkfh.IsEmpty then
  begin
    CHQMsgBox('没有缴款单可复核!');
    Exit;
  end;

  if not Qry_jkd.FieldByName('GHRQ').IsNull then
  begin
    CHQMsgBox('该缴款单已经复核!');
    Exit;
  end;
  DoCheckJKD(false);
end;

procedure Tfrm_qtjkfh.DoCheckJKD(ALLCheck: Boolean);
  procedure CheckOneJKD;
  var
    v_sql: string;
  begin
    AssignSQLStr(Qry_check, 'update TM_JKDB set GHRQ=sysdate, GHR=''' + VG_UserID + ''' where JKDH=''' + Qry_jkd.FieldByName('JKDH').AsString + '''');
    Qry_check.ExecSQL;
    AssignSQLStr(Qry_check, 'update TM_YYYYEB set YE=YE-' + Qry_jkd.FieldByName('JKJE').AsString + ' where YGDM = ''' + Qry_jkd.FieldByName('YGDM').AsString + '''');//(select sum(nvl(JKJE,0)) from TM_JKDB where JKDH=''' + Qry_jkd.FieldByName('JKDH').AsString + ''')
    Qry_check.ExecSQL;
  end;
begin
  data.dm.StartTransaction;
  try
    if ALLCheck then
    begin
      Qry_jkd.First;
      while not Qry_jkd.Eof do
      begin
        if Qry_jkd.FieldByName('GHRQ').IsNull then
          CheckOneJKD;
        Qry_jkd.Next;
      end;
    end
    else
      CheckOneJKD;
    data.dm.Commit;
    CHQMsgBox('复核成功');
    Btn_selClick(nil);
  except
    data.dm.Rollback;
  end;

end;

procedure Tfrm_qtjkfh.FormCreate(Sender: TObject);
begin
  DE_from.DateTime := getsysdate;
  DE_to.Text := DE_from.Text;
  Label11.Caption := '操作员 :' + VG_UserName;
  CheckYGDM;
  Btn_selClick(nil);
end;

procedure Tfrm_qtjkfh.btnPrintClick(Sender: TObject);
begin
  if CB_notcheck.Checked then
    PrintDBGrid(DBGrid1, '营业员缴款单(未处理)')
  else
    PrintDBGrid(DBGrid1, '营业员缴款单(已处理)');
{  qr_qtjk := Tqr_qtjk.Create(application);
  with qr_qtjk do
  try
    QRLabel15.Caption := '编号:' + Qry_jkd.FieldByName('jkdh').AsString;
    QRLabel10.Caption := '缴款人:' + VG_UserName;
    QRLabel14.Caption := '填报单位:' + VG_UnitName;
    if MessageBox(self.handle, '是否采用套打?', '询问', MB_YESNO + MB_ICONQUEsTION) = IDYES then
      taoda_flag := true
    else
      taoda_flag := false;
    Preview;
  finally
    Destroy;
  end;}

end;

procedure Tfrm_qtjkfh.Btn_selClick(Sender: TObject);
const
  CS_JKD = 'select * from(select a.jkdh, a.ygdm, b.ygmc, to_char(a.jkrq,''YYYY-MM-DD'') jkrq, sum(a.jkje) jkje, ' +
    'decode(a.ghrq, null, ''未勾核'', ''已勾核'') ghzt, to_char(a.ghrq,''YYYY-MM-DD'') ghrq from tm_jkdb a, tgs_ryb b ' +
    'where a.ygdm=b.ygdm %s group by a.jkdh, a.ygdm, b.ygmc, a.jkrq, a.ghrq) ' +
    'order by jkdh';
var
  v_s_tj: string;
begin
  if CB_notcheck.Checked then
    v_s_tj := 'and a.ghrq is null ';
  if CB_yyy.Checked then
    v_s_tj := v_s_tj + 'and a.ygdm=''' + Pygxx(CBox_yyy.Items.Objects[CBox_yyy.ItemIndex])^.ygdm + ''' ';
  if CB_date.Checked then
  begin
    if DE_from.Text <> '    -  -  ' then
      v_s_tj := v_s_tj + 'and to_char(a.jkrq, ''YYYYMMDD'') >= ''' + FormatDateTime('YYYYMMDD', DE_from.Date) + ''' ';
    if DE_to.Text <> '    -  -  ' then
      v_s_tj := v_s_tj + 'and to_char(a.jkrq, ''YYYYMMDD'') <= ''' + FormatDateTime('YYYYMMDD', DE_to.Date) + ''' ';
  end;
  AssignSQLstr(Qry_jkd, format(CS_JKD, [v_s_tj]));
  Qry_jkd.Open;
  if not Qry_jkfh.Active then
    Qry_jkfh.Open;
end;

procedure Tfrm_qtjkfh.Qry_jkdJKJEGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText)
end;

procedure Tfrm_qtjkfh.BitBtn2Click(Sender: TObject);
begin
  if Qry_jkfh.IsEmpty then
  begin
    CHQMsgBox('没有缴款单可复核!');
    Exit;
  end;
  DoCheckJKD(true);
end;

procedure Tfrm_qtjkfh.DBGridEh1GetFooterParams(Sender: TObject; DataCol,
  Row: Integer; Column: TColumnEh; AFont: TFont; var Background: TColor;
  var Alignment: TAlignment; State: TGridDrawState; var Text: String);
begin
  try
    if (UpperCase(Column.FieldName) = 'JKJE') then
      if Text = '' then
        Text := '0'
      else
        Text := FormatFloat('#,##0.00', StrToFloat(Text)/100)
  except
  end;

  if (UpperCase(Column.FieldName) = 'JKDH') then
    Text := '合 计:  ' + Text;

end;

procedure Tfrm_qtjkfh.DBGridEh1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
  if (Qry_jkd.FieldByName('ghrq').IsNull) then
    DBGridEh1.Canvas.Font.Color := clblue
  else
    DBGridEh1.Canvas.Font.Color := clRed;
  if gdSelected in State then
  begin
    dbgridEh1.Canvas.Brush.Color := clNavy;
    dbgridEh1.Canvas.Font.Color := clWhite;
  end;
  DBGridEh1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

end;

end.

⌨️ 快捷键说明

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