📄 uoperationmoney.pas
字号:
unit uOperationMoney;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, Buttons, cxDBEdit, cxCalc,
cxButtonEdit, cxDropDownEdit, cxCalendar, cxContainer, cxTextEdit,
cxMaskEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxGroupBox, ComCtrls, ExtCtrls, jpeg, StdCtrls, dbclient;
type
TfrmOperationMoney = class(TForm)
Bevel1: TBevel;
Shape1: TShape;
Label1: TLabel;
Image1: TImage;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label16: TLabel;
cxDBComboBox1: TcxDBComboBox;
cxDBDateEdit1: TcxDBDateEdit;
cxDBButtonEdit1: TcxDBButtonEdit;
cxDBButtonEdit2: TcxDBButtonEdit;
cxDBCalcEdit1: TcxDBCalcEdit;
cxDBComboBox2: TcxDBComboBox;
cxDBTextEdit1: TcxDBTextEdit;
cxGroupBox1: TcxGroupBox;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label15: TLabel;
Label14: TLabel;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
cxComboBox1: TcxComboBox;
cxDateEdit1: TcxDateEdit;
cxDateEdit2: TcxDateEdit;
cxButtonEdit1: TcxButtonEdit;
cxComboBox2: TcxComboBox;
cxGrid4: TcxGrid;
GridItem: TcxGridDBTableView;
colCode: TcxGridDBColumn;
colCodeClient: TcxGridDBColumn;
colNameClient: TcxGridDBColumn;
colJE: TcxGridDBColumn;
colFs: TcxGridDBColumn;
colDate: TcxGridDBColumn;
colNil: TcxGridDBColumn;
cxGrid4Level1: TcxGridLevel;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
cxDBTextEdit2: TcxDBTextEdit;
StatusBar1: TStatusBar;
SpeedButton5: TSpeedButton;
Label2: TLabel;
Label13: TLabel;
procedure FormCreate(Sender: TObject);
procedure cxDBComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBDateEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBButtonEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBButtonEdit1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure cxDBButtonEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBButtonEdit2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure cxDBCalcEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBComboBox2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBTextEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxDBComboBox2Exit(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure cxDBTextEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton5Click(Sender: TObject);
private
cdTem,cdTemSql: TclientDataSet;
dsTem,dsTemSql: TdataSource;
procedure init();
procedure pd_newRecord(dataSet: TdataSet);
procedure setToDataSource;
function GetClientData(SField, sFieldT: String): integer;
procedure ClientToMaster;
procedure SaveSusses;
{ Private declarations }
public
{ Public declarations }
end;
var
frmOperationMoney: TfrmOperationMoney;
implementation
uses
uGlobal, uGetData, uPublic;
{$R *.dfm}
{ TfrmMoneySF }
procedure TfrmOperationMoney.init;
begin
Top := frmMain.Top + 104;
Left := frmMain.Left + 10;
width := frmMain.Width -20;
height := frmMain.Height - 130;
cxDateEdit1.Date := date - 1;
cxDateEdit2.Date := date;
cdTemSql := TclientDataSet.Create(self);
dsTemSql := TdataSource.Create(self);
cdTem := TclientDataSet.Create(self);
dsTem := TdataSource.Create(self);
with cdTem.fielddefs do begin
add('ikey',ftInteger,0,false);
add('CCode',ftString,8,false);//流水号
add('ikeyclient',ftInteger,0,false);
add('CCodeClient',ftString,8,false);
add('CNameClient',ftString,60,false);
add('CLB',ftString,8,false); //操作类别
add('ddatePZ',ftdatetime,0,false);
add('fje',ftfloat,0,false);
add('cFS',ftString,6,false); //收款方式
add('cUser',ftString,8,false);
add('cBz',ftString,60,false); //摘要
end;
cdTem.CreateDataSet;
setToDataSource;
cdTem.Open;
//ds_temp.OnDataChange := pd_DataChange;
//cd_temp.BeforePost := pd_BeforePost;
cdTem.OnNewRecord := pd_newRecord;
//ds_temp.OnStateChange := pd_StateChange;
cdTem.Append;
end;
procedure TfrmOperationMoney.FormCreate(Sender: TObject);
begin
init();
end;
procedure TfrmOperationMoney.cxDBComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: if not cxDBComboBox1.DroppedDown then
cxDBDateEdit1.SetFocus;
end;
end;
procedure TfrmOperationMoney.cxDBDateEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: if not cxDBDateEdit1.DroppedDown then
cxDBTextEdit2.SetFocus;
end;
end;
procedure TfrmOperationMoney.cxDBButtonEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if cxDBButtonEdit1.Text = '' then
cxDBButtonEdit2.SetFocus
else
cxDBButtonEdit1PropertiesButtonClick(sender,0);
end;
end;
procedure TfrmOperationMoney.cxDBButtonEdit1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
If GetClientData('CCode',trim(cxDBButtonEdit1.Text)) <= 0 then exit;
IF frmGetData.ShowModal = mrOk THEN BEGIN
ClientToMaster;
cxDBCalcEdit1.SetFocus;
END;
end;
procedure TfrmOperationMoney.cxDBButtonEdit2KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if cxDBButtonEdit2.Text = '' then
cxDBButtonEdit1.SetFocus
else
cxDBButtonEdit2PropertiesButtonClick(sender,0);
end;
end;
procedure TfrmOperationMoney.cxDBButtonEdit2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
begin
If GetClientData('Cname',trim(cxDBButtonEdit2.Text)) <= 0 then exit;
IF frmGetData.ShowModal = mrOk THEN BEGIN
ClientToMaster;
cxDBCalcEdit1.SetFocus;
END;
end;
procedure TfrmOperationMoney.cxDBCalcEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: if not cxDBCalcEdit1.DroppedDown then
cxDBComboBox2.SetFocus;
end;
end;
procedure TfrmOperationMoney.cxDBComboBox2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: if not cxDBComboBox2.DroppedDown then
cxDBTextEdit1.SetFocus;
end;
end;
procedure TfrmOperationMoney.cxDBTextEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: cxDBComboBox1.SetFocus;
end;
end;
procedure TfrmOperationMoney.pd_newRecord(dataSet: TdataSet);
begin
//cdTem.fieldbyname('CCode').asstring := g_server.IPub_get_max_bh(i_count,'T_money_shoukuan',0);
cdTem.FieldByName('DDatePz').AsDateTime := date;
cdTem.FieldByName('cUser').AsString := user;
end;
procedure TfrmOperationMoney.setToDataSource;
begin
dsTem.dataSet := cdTem;
cxDBComboBox1.DataBinding.DataSource := dsTem;
cxDBComboBox1.DataBinding.DataField := 'CLB';
cxDBDateEdit1.DataBinding.DataSource := dsTem;
cxDBDateEdit1.DataBinding.DataField := 'DDatePZ';
cxDBButtonEdit1.DataBinding.DataSource := dsTem;
cxDBButtonEdit1.DataBinding.DataField := 'CCodeClient';
cxDBButtonEdit2.DataBinding.DataSource := dsTem;
cxDBButtonEdit2.DataBinding.DataField := 'CNameClient';
cxDBCalcEdit1.DataBinding.DataSource := dsTem;
cxDBCalcEdit1.DataBinding.DataField := 'fje';
cxDBComboBox2.DataBinding.DataSource := dsTem;
cxDBComboBox2.DataBinding.DataField := 'cFs';
cxDBTextEdit1.DataBinding.DataSource := dsTem;
cxDBTextEdit1.DataBinding.DataField := 'CBZ';
cxDBTextEdit2.DataBinding.DataSource := dsTem;
cxDBTextEdit2.DataBinding.DataField := 'CCODE';
dsTemSql.DataSet := cdTemSql;
gridItem.DataController.DataSource := dsTemSql;
end;
procedure TfrmOperationMoney.cxDBComboBox2Exit(Sender: TObject);
begin
if cdTem.FieldByName('cfs').AsString = '01' then
cdTem.FieldByName('cfs').AsString := '现金';
if cdTem.FieldByName('cfs').AsString = '02' then
cdTem.FieldByName('cfs').AsString := '支票';
if cdTem.FieldByName('cfs').AsString = '03' then
cdTem.FieldByName('cfs').AsString := '转帐';
if cdTem.FieldByName('cfs').AsString = '04' then
cdTem.FieldByName('cfs').AsString := '承兑';
if cdTem.FieldByName('cfs').AsString = '05' then
cdTem.FieldByName('cfs').AsString := '汇票';
end;
procedure TfrmOperationMoney.SpeedButton4Click(Sender: TObject);
begin
cxComboBox2.Text := '';
cxButtonEdit1.Text := '';
//cxButtonEdit2.Text := '';
cxComboBox1.SetFocus;
end;
procedure TfrmOperationMoney.SpeedButton3Click(Sender: TObject);
var sqlText,SOU,DEC: string;
begin
IF cxComboBox1.Text = '' THEN BEGIN
cxComboBox1.SetFocus;
infoWnd('请选择操作类别.');
exit;
END;
SOU := formatDateTime('yyyy-MM-dd',cxDateEdit1.date);
DEC := formatDateTime('yyyy-MM-dd',cxDateEdit2.date + 1);
sqlText :='Where (DdatePz >= '''+SOU+''') AND (DdatePz < '''+DEC+''')'+
' AND (CLB = '''+cxComboBox1.Text+''')';
if cxComboBox2.Text <> '' then
sqlText := sqlText + ' AND (CFS = '''+cxComboBox2.Text+''')';
if cxButtonEdit1.Text <> '' then
sqlText := sqlText + ' AND (ccodeClient like '''+cxButtonEdit1.Text+'%'')';
{if cxButtonEdit2.Text <> '' then
sqlText := sqlText + ' AND (cNameClient like ''%'+cxButtonEdit2.Text+'%'')';}
sqlText := 'Select * from v_moneyLogClient ' + #13+ sqlText +
'ORDER BY ccodeClient,ddatePz';
with frmMain.cdPub do begin
close;
commandText := sqlText;
open;
cdTemSql.Data := data;
close;
end;
end;
procedure TfrmOperationMoney.SpeedButton1Click(Sender: TObject);
var f_df: real;
begin
f_df := cdTem.fieldbyname('fje').AsFloat;
if f_df = 0 then begin
infoWnd('提示:金额不能为零,请检查。');
exit;
end;
if cdTem.FieldByName('ccode').AsString = '' then begin
infoWnd('提示:流水单号不能空,请检查。');
exit;
end;
if cdTem.FieldByName('clb').AsString = '' then begin
infoWnd('提示:操作类别不能为空,请检查。');
exit;
end;
if cdTem.FieldByName('cfs').AsString = '' then begin
infoWnd('提示:收款方式不能空,请检查。');
exit;
end;
if cdTem.FieldByName('ikeyClient').AsInteger < 0 then begin
infoWnd('提示:客户输入错误,请检查。');
exit;
end;
if frmMain.DCOMcn.appServer.IApplyUpdateMoney(cdTem.Data)=1 then
{if QueryWnd('保存成功,打印收据吗?'+#13+'按Y 开始打印;按N 继续录入.') then
frmReport.ReportS(13,1,xToD(f_df),cdTem.data); }
infoWnd('保存成功,按[确定]继续录入');
saveSusses;
end;
procedure TfrmOperationMoney.SaveSusses;
begin
cdTem.EmptyDataSet;
cdTem.MergeChangeLog;
cdTem.Insert;
end;
procedure TfrmOperationMoney.SpeedButton2Click(Sender: TObject);
begin
SaveSusses;
cxDBcomboBox1.SetFocus;
end;
procedure TfrmOperationMoney.cxDBTextEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: cxDBButtonEdit1.SetFocus;
end;
end;
function TfrmOperationMoney.GetClientData(SField, sFieldT: String): integer;
begin
with frmMain.cdPub do begin
close;
commandText := 'select IKey,CCode 客户编号,CName 客户名称 From T_pubClient'+#13+
'where ' + sfield +' like ''%'+sfieldT+'%''';
open;
fieldbyname('IKEY').Visible := False;
Result := recordCount;
end;
end;
procedure TfrmOperationMoney.ClientToMaster;
begin
with frmMain.cdPub do Begin
cdTem.Edit;
cdTem.FieldByName('IkeyClient').Value := fieldbyname('IKey').Value;
cdTem.FieldByName('CCodeClient').Value := fieldbyname('客户编号').Value;
cdTem.FieldByName('CNameClient').Value := fieldbyname('客户名称').Value;
end;
end;
procedure TfrmOperationMoney.SpeedButton5Click(Sender: TObject);
begin
frmReport.ReportS(53,0,formatDateTime('yyyy-MM-dd',cxDateEdit1.date)+
' 至 '+formatDateTime('yyyy-MM-dd',cxDateEdit2.date), cdTemSql.Data);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -