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

📄 uoperationmoney.pas

📁 delphi 源代码 界面上模仿了在2ccc.com网站发布的某一个程序.数据库为SQL2000。
💻 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 + -