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

📄 gld500_01.pas.svn-base

📁 一个用Delphi开发的ERP软件
💻 SVN-BASE
字号:
unit Gld500_01;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  BAS100_01, ImgList, ComCtrls, ToolWin, ExtCtrls, Grids, DBGrids,
  Wwdbigrd, Wwdbgrid, sncCurrency, StdCtrls, wwdbdatetimepicker, Db,
  dxTL, dxDBCtrl, dxDBGrid, dxCntner, sncDBCurrency, DBTables,
  dxDBTLCl, dxGrClms, dxExEdtr, ADODB;

type
  TGld500_01Form = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbInsert: TToolButton;
    tlbDelete: TToolButton;
    ToolButton2: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbSearch: TToolButton;
    tlbPrint: TToolButton;
    tlbCheck: TToolButton;
    ToolButton4: TToolButton;
    tlbExit: TToolButton;
    Label6: TLabel;
    wwDBDateTimePicker1: TwwDBDateTimePicker;
    Label1: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    DataSource1: TDataSource;
    Label2: TLabel;
    Label5: TLabel;
    Label7: TLabel;
    sncDBCurrencyEdit1: TsncDBCurrencyEdit;
    Panel1: TPanel;
    Panel2: TPanel;
    Edit3: TEdit;
    tlbCurr: TToolButton;
    ToolButton6: TToolButton;
    DBGrid1: TdxDBGrid;
    DBGrid1G500_001: TdxDBGridMaskColumn;
    DBGrid1G500_002: TdxDBGridMaskColumn;
    DBGrid1G500_006: TdxDBGridMaskColumn;
    DBGrid1G500_007: TdxDBGridMaskColumn;
    DBGrid1G500_008: TdxDBGridMaskColumn;
    DBGrid1G500_009: TdxDBGridMaskColumn;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Shape4: TShape;
    DBGrid1G500_003: TdxDBGridButtonColumn;
    DBGrid1G500_004: TdxDBGridButtonColumn;
    DBGrid1G500_005: TdxDBGridButtonColumn;
    sncCurrencyEdit1: TsncCurrencyEdit;
    sncCurrencyEdit2: TsncCurrencyEdit;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    ADODataSet1: TADODataSet;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure DBGrid1ColExit(Sender: TObject);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure sncDBCurrencyEdit1Enter(Sender: TObject);
    procedure sncDBCurrencyEdit1Exit(Sender: TObject);
    procedure sncDBCurrencyEdit1MoveOut(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure tlbFirstClick(Sender: TObject);
    procedure tlbPriorClick(Sender: TObject);
    procedure tlbNextClick(Sender: TObject);
    procedure tlbLastClick(Sender: TObject);
    procedure tlbInsertClick(Sender: TObject);
    procedure tlbDeleteClick(Sender: TObject);
    procedure tlbSaveClick(Sender: TObject);
    procedure tlbCancelClick(Sender: TObject);
    procedure tlbSearchClick(Sender: TObject);
    procedure tlbPrintClick(Sender: TObject);
    procedure tlbCurrClick(Sender: TObject);
    procedure tlbCheckClick(Sender: TObject);
    procedure tlbExitClick(Sender: TObject);
    procedure DBGrid1CustomDraw(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxDBTreeListColumn;
      const AText: String; AFont: TFont; var AColor: TColor; ASelected,
      AFocused: Boolean; var ADone: Boolean);
    procedure DBGrid1G500_003ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure DBGrid1G500_004ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure DBGrid1G500_005ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure ClientDataSet1AfterPost(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure sncDBCurrencyEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    function CheckCurrencyField(FieldName: String): Boolean;
    procedure SetHighLightColor;
    procedure SetNormalColor;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Gld500_01Form: TGld500_01Form;

implementation

uses SYSDATA, CommFun, Gld120_01, Gld100_01;

{$R *.DFM}

function TGld500_01Form.CheckCurrencyField(FieldName: String): Boolean;
const
  CurrencyFieldSet: array[0..2] of string=('G500_007', 'G500_008', 'G500_009');
var
  I: Integer;
begin
  Result := False;
  for I:=0 to Length(CurrencyFieldSet)-1 do
  begin
    if (FieldName=CurrencyFieldSet[I]) then
    begin
      Result := True;
      Break;
    end;
  end;
end;

procedure TGld500_01Form.SetHighLightColor;
begin
  sncDBCurrencyEdit1.Color := clHighLight;
  sncDBCurrencyEdit1.Font.Color := clwhite;
end;

procedure TGld500_01Form.SetNormalColor;
begin
  sncDBCurrencyEdit1.Color := DBGrid1.Color;
  sncDBCurrencyEdit1.Font.Color := DBGrid1.Font.Color;
end;

procedure TGld500_01Form.FormCreate(Sender: TObject);
begin
  inherited;
  wwDBDateTimePicker1.Date:=Date;
  sncDBCurrencyEdit1.Color := DBGrid1.Color;
  sncDBCurrencyEdit1.Font.Assign(DBGrid1.Font);
  sncDBCurrencyEdit1.Tag := 0;
//  ClientDataSet1.Open;
end;

procedure TGld500_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//  ClientDataSet1.Close;
end;

procedure TGld500_01Form.DBGrid1ColEnter(Sender: TObject);
begin
  inherited;
  if CheckCurrencyField(DBGrid1.FocusedField.FieldName) then
  begin
    sncDBCurrencyEdit1.DataField := DBGrid1.FocusedField.FieldName;
    sncDBCurrencyEdit1.Tag := 1;
  end;
end;

procedure TGld500_01Form.DBGrid1ColExit(Sender: TObject);
begin
  inherited;
  if CheckCurrencyField(DBGrid1.FocusedField.FieldName) then
  begin
    sncDBCurrencyEdit1.Visible := False;
    sncDBCurrencyEdit1.Tag := 0;
  end;
end;

procedure TGld500_01Form.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
 if (key<>chr(9)) and (key<>#13) and CheckCurrencyField(DBGrid1.FocusedField.FieldName) then
  begin
    sncDBCurrencyEdit1.SetFocus;
    SendMessage(sncDBCurrencyEdit1.Handle, WM_Char, WORD(Key), 0);
  end;  
end;

procedure TGld500_01Form.sncDBCurrencyEdit1Enter(Sender: TObject);
begin
  inherited;
  SetNormalColor;
end;

procedure TGld500_01Form.sncDBCurrencyEdit1Exit(Sender: TObject);
begin
  inherited;
  sncDBCurrencyEdit1.Visible := False;
  sncDBCurrencyEdit1.Tag := 0;
  SetHighLightColor;
end;

procedure TGld500_01Form.sncDBCurrencyEdit1MoveOut(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  case Key of
    VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT:
      begin
        DBGrid1.SetFocus;
        SendMessage(DBGrid1.Handle, WM_KEYDOWN, WORD(Key), 0);
      end;
  end;
end;

procedure TGld500_01Form.tlbFirstClick(Sender: TObject);
begin
  inherited;
//最前
end;

procedure TGld500_01Form.tlbPriorClick(Sender: TObject);
begin
  inherited;
//上移
end;

procedure TGld500_01Form.tlbNextClick(Sender: TObject);
begin
  inherited;
//下移
end;

procedure TGld500_01Form.tlbLastClick(Sender: TObject);
begin
  inherited;
//最后
end;

procedure TGld500_01Form.tlbInsertClick(Sender: TObject);
begin
  inherited;
//新增
end;

procedure TGld500_01Form.tlbDeleteClick(Sender: TObject);
begin
  inherited;
//删除
end;

procedure TGld500_01Form.tlbSaveClick(Sender: TObject);
begin
  inherited;
//保存
end;

procedure TGld500_01Form.tlbCancelClick(Sender: TObject);
begin
  inherited;
//取消
end;

procedure TGld500_01Form.tlbSearchClick(Sender: TObject);
begin
  inherited;
//查找
end;

procedure TGld500_01Form.tlbPrintClick(Sender: TObject);
begin
  inherited;
//打印
end;

procedure TGld500_01Form.tlbCurrClick(Sender: TObject);
begin
  inherited;
//外币
  if DBGrid1.Bands[1].Visible then
  begin
    tlbCurr.Down:=False;
    DBGrid1.Bands[1].Visible:=False;
    DBGrid1G500_004.Width:=220;
  end else
  begin
    tlbCurr.Down:=True;
    DBGrid1.Bands[1].Visible:=True;
    DBGrid1G500_004.Width:=120;
  end;
end;

procedure TGld500_01Form.tlbCheckClick(Sender: TObject);
begin
  inherited;
//审核
end;

procedure TGld500_01Form.tlbExitClick(Sender: TObject);
begin
  inherited;
//退出
  Close;
end;

procedure TGld500_01Form.DBGrid1CustomDraw(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
  AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
  var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
var
  OldColor, OldFontColor: TColor;
begin
  inherited;
  if CheckCurrencyField(AColumn.Field.FieldName) then
  begin
    ADone:=True;
    if AFocused then
    begin
      sncDBCurrencyEdit1.DataField := DBGrid1.FocusedField.FieldName;
      sncDBCurrencyEdit1.Tag := 1;
      sncDBCurrencyEdit1.Left:=ARect.Left+DBGrid1.Left+1;
      sncDBCurrencyEdit1.Top:=ARect.Top+DBGrid1.Top+1;
      sncDBCurrencyEdit1.Width:=ARect.Right-ARect.Left;
      sncDBCurrencyEdit1.Height:=ARect.Bottom-ARect.Top;
      SetHighLightColor;
      if (sncDBCurrencyEdit1.Tag=1) and not sncDBCurrencyEdit1.Visible then
      begin
        sncDBCurrencyEdit1.Visible := True;
        sncDBCurrencyEdit1.BringToFront;
        sncDBCurrencyEdit1.SetFocus;
      end;
    end else
    begin
//      sncDBCurrencyEdit1.Visible := False;
      sncDBCurrencyEdit1.Tag := 0;
      OldColor := sncDBCurrencyEdit1.Color;
      OldFontColor := sncDBCurrencyEdit1.Font.Color;
      SetNormalColor;
      DrawCurrencyFrame(DBGrid1.Canvas, ARect, sncDBCurrencyEdit1, AColumn.Field.AsFloat);
      sncDBCurrencyEdit1.Color := OldColor;
      sncDBCurrencyEdit1.Font.Color := OldFontColor;
    end;
  end else
    ADone:=False;
end;

procedure TGld500_01Form.DBGrid1G500_003ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
//樀要
  Gld120_01Form:=TGld120_01Form.Create(Application);
  Gld120_01Form.ShowModal;
end;

procedure TGld500_01Form.DBGrid1G500_004ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
//会计科目
  Gld100_01Form:=TGld100_01Form.Create(Application);
  Gld100_01Form.ShowModal;
end;

procedure TGld500_01Form.DBGrid1G500_005ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
//币别
  ShowMsg('币别');
end;

procedure TGld500_01Form.ClientDataSet1AfterPost(DataSet: TDataSet);
begin
  inherited;
//  sncCurrencyEdit1.Value:=ClientDataSet1.Aggregates.Items[0].Value;
//  sncCurrencyEdit2.Value:=ClientDataSet1.Aggregates.Items[1].Value;
end;

procedure TGld500_01Form.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ActiveControl is TdxDBGrid then Exit;
  if Key in [vk_Return] then Perform(WM_NEXTDLGCTL, 0, 0);
//  if Key in [vk_Return] then PostMessage(handle,wm_keydown,vk_tab,0);
end;

procedure TGld500_01Form.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key in [vk_Return] then
  begin
    if DBGrid1.Bands[1].Visible then
    begin
      case DBGrid1.FocusedColumn of
        0:DBGrid1.FocusedColumn:=1;      //摘要
        1:DBGrid1.FocusedColumn:=2;      //会计科目
        2:DBGrid1.FocusedColumn:=3;      //币别
        3:DBGrid1.FocusedColumn:=6;      //汇率
        6:DBGrid1.FocusedColumn:=4;      //外币金额
        4:DBGrid1.FocusedColumn:=5;      //借方金额
//        5:begin ClientDataSet1.Next; DBGrid1.FocusedColumn:=0; end;      //贷方金额
      end;
      if not (DBGrid1.FocusedColumn in [4,5,6]) then
        PostMessage(DBGrid1.Handle,wm_keydown,vk_F2,0);
      DBGrid1.SetFocus;
    end else
    begin
      case DBGrid1.FocusedColumn of
        0:DBGrid1.FocusedColumn:=1;      //摘要
        1:DBGrid1.FocusedColumn:=2;      //会计科目
        2:DBGrid1.FocusedColumn:=3;      //借方金额
//        3:begin ClientDataSet1.Next; DBGrid1.FocusedColumn:=0; end;      //贷方金额
      end;
      if not (DBGrid1.FocusedColumn in [2,3]) then
        PostMessage(DBGrid1.Handle,wm_keydown,vk_F2,0);
      DBGrid1.SetFocus;
    end;
  end;
end;

procedure TGld500_01Form.sncDBCurrencyEdit1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key in [vk_Return] then
  begin
    PostMessage(DBGrid1.Handle,wm_keydown,key,0);
  end;
end;

initialization
  RegisterClass(TGld500_01Form);

finalization
  UnRegisterClass(TGld500_01Form);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -