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