?? 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 + -