📄 jm_jymxcx.pas
字号:
{*******************************************************}
{ }
{ 营业员营业情况汇总 }
{ }
{ 中软金马公司版权所有。2002.12前 }
{ }
{ 编制:中软金马邮资票品项目开发组 }
{ }
{ }
{*******************************************************}
(*
本模块在地市集邮票管理,地市集邮品管理,地市市场购入票里面调用。
*)
unit JM_JYMXCX;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, DBGrids, ComCtrls, RXCtrls, ExtCtrls, Buttons, Mask,
ToolEdit, dbtables, Db, RxQuery, CurrEdit, DBGridExport,
Menus, JM_data;
type
P_DM = ^T_DM;
T_DM = record
dm: string;
end;
type
TFrm_JYMXCX = class(TForm)
Panel4: TPanel;
RxLabel1: TRxLabel;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Panel6: TPanel;
Panel5: TPanel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label1: TLabel;
Label6: TLabel;
ListBox1: TListBox;
DBGrid2: TDBGrid;
Panel3: TPanel;
Label5: TLabel;
Panel2: TPanel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
RadioButton1: TRadioButton;
RadioButton3: TRadioButton;
RadioButton2: TRadioButton;
DateEdit1: TDateEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
DateEdit2: TDateEdit;
DateEdit3: TDateEdit;
Lbl_user: TLabel;
Label11: TLabel;
CB_ygdm: TComboBox;
LB_jylx: TListBox;
DataSource1: TDataSource;
Query1: TQuery;
Query1YD: TFloatField;
Query1LSH: TStringField;
Query1JYRQ: TDateTimeField;
RQry_pnt: TRxQuery;
Edit1: TCurrencyEdit;
Edit2: TCurrencyEdit;
procedure BitBtn1Click(Sender: TObject);
procedure Query1YDGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
V_LSH, V_SM, V_aCXTJ: string;
{ Private declarations }
public
{ Public declarations }
function Execute(const DB: TDataBase; p_ISQH: TQH_TYPE): Boolean;
end;
var
Frm_JYMXCX: TFrm_JYMXCX;
implementation
uses datas,pub, JM_JYMXDY;
{$R *.DFM}
function TFrm_JYMXCX.Execute(const DB: TDataBase; p_ISQH: TQH_TYPE): Boolean;
var
v_pdm: P_DM;
i: Integer;
procedure SetYGDMLB;
begin
new(v_pdm);
v_pdm.dm := '';
CB_ygdm.Items.AddObject('全部', TObject(v_pdm));
AssignSQLstr(data.qrytmp, 'select YGDM, YGMC from TGS_RYB where YGDM in( select YGDM from TM_YYYYEB)');
data.qrytmp.Open;
while not data.qrytmp.Eof do
begin
new(v_pdm);
v_pdm.dm := data.qrytmp.FieldByName('YGDM').AsString;
CB_ygdm.Items.AddObject(data.qrytmp.Fieldbyname('YGMC').asstring + '(' + data.qrytmp.FieldByName('YGDM').AsString + ')', TObject(v_pdm));
if v_pdm.dm = VG_UserID then
i := CB_ygdm.Items.Count - 1;
data.qrytmp.Next;
end;
if p_ISQH = is_Q then
begin
CB_ygdm.ItemIndex := i;
CB_ygdm.Enabled := false;
end
else
CB_ygdm.ItemIndex := 0;
end;
procedure SetJYLXLB;
procedure ADDJYLX(AMC, ADM: string);
begin
new(v_pdm);
v_pdm.dm := ADM;
LB_jylx.Items.AddObject(AMC, TObject(v_pdm));
end;
begin
ADDJYLX('预付款', 'yfk');
ADDJYLX('保证金', 'bzj');
ADDJYLX('工本费', 'gbf');
ADDJYLX('其他费用', 'qtfy');
ADDJYLX('零售', 'ls');
ADDJYLX('加收', 'js');
ADDJYLX('退补', 'tb');
ADDJYLX('磁卡零售', 'ckls');
ADDJYLX('换卡', 'hk');
ADDJYLX('退保证金', 'tbzj');
LB_jylx.ItemIndex := 0;
end;
begin
Result := false;
if not Assigned(DB) then
exit;
Caption := application.Title;
try
Result := true;
DateEdit1.Date := GetSYSdate;
DateEdit2.Date := GetSYSdate;
DateEdit3.Date := GetSYSdate;
SetYGDMLB;
SetJYLXLB;
AssignSQLstr(data.qrytmp, 'select LSHWS from TG_DHSJBBMGF where DHDM=''mq_jylsh''');
data.qrytmp.Open;
if data.qrytmp.IsEmpty then
begin
CHQMsgBox('单号数据编码规范没有设定!');
exit;
end
else if data.qrytmp.Fields[0].AsInteger <= 0 then
begin
CHQMsgBox('单号数据编码规范没有设定!');
exit;
end;
for i := 1 to data.qrytmp.Fields[0].AsInteger do
V_LSH := V_LSH + '0';
except
CHQMsgBox('不能打开 <集邮门市交易明细> 表!');
exit;
end;
end;
procedure TFrm_JYMXCX.BitBtn1Click(Sender: TObject);
const
LBSQL = 'select sum(%s) JE, LSH, JYRQ from VW_JYMXB where %s is not Null ';
ZJJESQL = 'select nvl(sum(YFK),0) + nvl(sum(BZJ),0) + nvl(sum(GBF),0) + nvl(sum(QTFY),0) + nvl(sum(LS),0) + nvl(sum(JS),0) - nvl(sum(TB),0) + nvl(sum(CKLS),0) + nvl(sum(HK),0) - nvl(sum(TBZJ),0) from VW_JYMXB where 1=1 ';
JYJESQL = 'select nvl(sum(%s),0) from VW_JYMXB where 1=1 ';
var
v_s_ywlx, v_s_sql: string;
begin
try
v_s_ywlx := P_DM(LB_jylx.Items.Objects[LB_jylx.ItemIndex])^.dm;
if RadioButton1.Checked then
begin
if (DateEdit1.Date = 0) or (trim(Edit3.Text) = '') or (trim(Edit4.Text) = '') then
begin
CHQMsgBox('请确定查询条件!');
exit;
end;
v_s_sql := v_s_sql + ' and to_char(JYRQ, ''YYYYMMDD'') =''' +
FormatDateTime('YYYYMMDD', DateEdit1.Date) + ''' and SUBSTR(lsh,10,3)>=LTRIM(to_char(''' +
Edit3.Text + ''',''' + V_LSH + ''')) and SUBSTR(lsh,10,3)<=LTRIM(to_char(''' +
Edit4.Text + ''',''' + V_LSH + ''')) ';
V_SM := DateEdit1.Text + '日产生的交易流水从' + Edit3.Text + '到' + Edit4.Text + '的交易汇总';
end
else if RadioButton2.Checked then
begin
if (DateEdit2.Date = 0) or (DateEdit3.Date = 0) then
begin
CHQMsgBox('请确定查询条件!');
exit;
end;
v_s_sql := v_s_sql + ' and to_char(JYRQ, ''YYYYMMDD'') >=''' +
FormatDateTime('YYYYMMDD', DateEdit2.Date) + ''' and to_char(JYRQ, ''YYYYMMDD'') <=''' +
FormatDateTime('YYYYMMDD', DateEdit3.Date) + ''' ';
V_SM := '从' + DateEdit2.Text + '到' + DateEdit3.Text + '产生的交易汇总';
end
else if RadioButton3.Checked then
begin
if (trim(Edit5.Text) = '') or (trim(Edit6.Text) = '') then
begin
CHQMsgBox('请确定查询条件!');
exit;
end;
v_s_sql := v_s_sql + ' and lsh>=''' + Edit5.Text + ''' and lsh<=''' + Edit6.Text + ''' ';
V_SM := '收据号从' + Edit5.Text + '到' + Edit6.Text + '的交易汇总';
end;
V_aCXTJ := v_s_sql;
if CB_ygdm.ItemIndex <> 0 then
begin
v_s_sql := ' and YGDM=''' + P_DM(CB_ygdm.Items.Objects[CB_ygdm.ItemIndex])^.dm + ''' ' + v_s_sql;
end;
AssignSQLstr(Query1, format(LBSQL, [v_s_ywlx, v_s_ywlx]) + v_s_sql + ' group by LSH, JYRQ order by LSH, JYRQ');
Query1.Open;
Label6.Caption := '交易数目:' + inttostr(Query1.RecordCount);
AssignSQLstr(data.qrytmp, ZJJESQL + v_s_sql);
data.qrytmp.Open;
Edit1.Text := formatfloat('#,##0.00##', data.qrytmp.Fields[0].AsFloat / 100);
AssignSQLstr(data.qrytmp, format(JYJESQL, [v_s_ywlx]) + v_s_sql + ' and ' + v_s_ywlx + ' is not null');
data.qrytmp.Open;
Edit2.Text := formatfloat('#,##0.00##', data.qrytmp.Fields[0].AsFloat / 100);
BitBtn3.Enabled := true;
except
CHQMsgBox('请重新确定查询条件!');
BitBtn3.Enabled := false;
end;
end;
procedure TFrm_JYMXCX.Query1YDGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrm_JYMXCX.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TFrm_JYMXCX.BitBtn3Click(Sender: TObject);
begin
RQry_pnt.Close;
RQry_pnt.MacroByName('TJ').AsString := copy(V_aCXTJ, 5, length(V_aCXTJ));
RQry_pnt.Open;
Frm_JYMXDY := TFrm_JYMXDY.Create(nil);
with Frm_JYMXDY do
try
QRLabel25.Caption := VG_UnitName;
QRLabel4.Caption := FormatDateTime('yyyy"年"mm"月"d"日" ', GetsysDate);
QRLabel2.Caption := V_SM;
DetailLines := 1;
Prepare;
try
QRLabel29.Caption := IntToStr(QRPrinter.PageCount);
finally
QRPrinter.Free;
QRPrinter := nil;
end;
preview;
finally
Frm_JYMXDY.Free;
end;
end;
procedure TFrm_JYMXCX.FormCreate(Sender: TObject);
begin
GetAllColWidth(self);
end;
procedure TFrm_JYMXCX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SaveAllColWidth(self);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -