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

📄 bas200_13.pas

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Bas200_13;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas100_01, StdCtrls, Buttons, wwdbdatetimepicker, ComCtrls,
  Menus, DB, ADODB, dxdbtrel, ToolWin, ActnList, dxDBGrid, Wwdbgrid, wwdbigrd;

type
  TBas200_13Form = class(TBas100_01Form)
    gbDetail: TGroupBox;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActInsert: TAction;
    ActUpdate: TAction;
    ActDelete: TAction;
    ActSave: TAction;
    ActCancel: TAction;
    ActRefresh: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExit: TAction;
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbInsert: TToolButton;
    tlbUpdate: TToolButton;
    tlbDelete: TToolButton;
    ToolButton2: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbRefresh: TToolButton;
    tlbLocate: TToolButton;
    tlbSearch: TToolButton;
    tlbPrint: TToolButton;
    ToolButton6: TToolButton;
    tlbExit: TToolButton;
    lblCreateDate: TLabel;
    edtCreateDate: TEdit;
    lblCreateBy: TLabel;
    edtCreateBy: TEdit;
    lblUpdateDate: TLabel;
    edtUpdateDate: TEdit;
    lblUpdateBy: TLabel;
    edtUpdateBy: TEdit;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton7: TToolButton;
    Action1: TAction;
    Action2: TAction;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    gbInfo: TGroupBox;
    lblCode: TLabel;
    edtCode: TEdit;
    ToolButton8: TToolButton;
    Action3: TAction;
    ToolButton9: TToolButton;
    Action4: TAction;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActInsertExecute(Sender: TObject);
    procedure ActUpdateExecute(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActCancelExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure ADOQuery1AfterScroll(DataSet: TDataSet);
  private
    procedure SetButtonState(AInsUpd:Boolean);
    procedure SaveData;
    { Private declarations }
  public
    { Public declarations }
  protected
    AMode,AOldCode:string;
    AIsAutoCode:Boolean;
    ATableName,AFieldName:string;
    AKeyEvent:TKeyEvent;
    procedure SetInterface; virtual;
    procedure GetDataInfo; virtual;
    procedure InsertEvent; virtual;
    procedure UpdateEvent; virtual;
    procedure DeleteEvent; virtual;
    procedure SetEmptyInit; virtual;
    procedure TableBeforePost; virtual;
    procedure TableAfterPost; virtual;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); virtual;
  end;

var
  Bas200_13Form: TBas200_13Form;

implementation

uses SYSDATA, CommFun;

{$R *.dfm}

//设置按钮状态
procedure TBas200_13Form.SetButtonState(AInsUpd:Boolean);
var
  I:Integer;
begin
  ActFirst.Enabled:=not AInsUpd;
  ActPrior.Enabled:=not AInsUpd;
  ActNext.Enabled:=not AInsUpd;
  ActLast.Enabled:=not AInsUpd;
  ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
  ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
  ActSave.Enabled:=AInsUpd;
  ActCancel.Enabled:=AInsUpd;
  Action1.Enabled:=(ARights[Action1.Tag]='Y') and (not AInsUpd);
  Action2.Enabled:=(ARights[Action2.Tag]='Y') and (not AInsUpd);
  Action3.Enabled:=(ARights[Action3.Tag]='Y') and (not AInsUpd);
  Action4.Enabled:=(ARights[Action4.Tag]='Y') and (not AInsUpd);
  ActRefresh.Enabled:=not AInsUpd;
  ActLocate.Enabled:=not AInsUpd;
  ActSearch.Enabled:=not AInsUpd;
  ActPrint.Enabled:=(ARights[5]='Y') and (not AInsUpd);
  ActExit.Enabled:=True;   
  for I:=0 to ComponentCount-1 do
  begin
    if (Components[I] is TGroupBox) then
    begin
      TGroupBox(Components[I]).Enabled:=AInsUpd;
    end else
    if (Components[I] is TwwDBGrid) then
    begin
      TwwDBGrid(Components[I]).ReadOnly:=not AInsUpd;
      if TwwDBGrid(Components[I]).ReadOnly then
        TwwDBGrid(Components[I]).KeyOptions:=[dgEnterToTab]
      else
        TwwDBGrid(Components[I]).KeyOptions:=[dgEnterToTab,dgAllowInsert];
    end else
    if (Components[I] is TMemo) then
    begin
      TMemo(Components[I]).ReadOnly:=not AInsUpd;
    end;
  end;
end;

procedure TBas200_13Form.SetInterface;
begin
  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');   //下移
  ActLast.Caption:=GetDBString('COM00005004');   //最后
  ActInsert.Caption:=GetDBString('COM00005005'); //新增
  ActUpdate.Caption:=GetDBString('COM00005006'); //修改
  ActDelete.Caption:=GetDBString('COM00005007'); //删除
  ActSave.Caption:=GetDBString('COM00005008');   //保存
  ActCancel.Caption:=GetDBString('COM00005009'); //取消
  ActRefresh.Caption:=GetDBString('COM00005010');//刷新
  ActLocate.Caption:=GetDBString('COM00005011'); //查找
  ActSearch.Caption:=GetDBString('COM00005012'); //查询
  ActPrint.Caption:=GetDBString('COM00005013');  //打印
  ActExit.Caption:=GetDBString('COM00005015');   //退出

  ActFirst.Hint:=GetDBString('COM00005001',2);  //移到第一条记录
  ActPrior.Hint:=GetDBString('COM00005002',2);  //移到上一条记录
  ActNext.Hint:=GetDBString('COM00005003',2);   //移到下一条记录
  ActLast.Hint:=GetDBString('COM00005004',2);   //移到最后一条记录
  ActInsert.Hint:=GetDBString('COM00005005',2); //新增一条记录
  ActUpdate.Hint:=GetDBString('COM00005006',2); //修改当前记录
  ActDelete.Hint:=GetDBString('COM00005007',2); //删除当前记录
  ActSave.Hint:=GetDBString('COM00005008',2);   //保存编辑的记录
  ActCancel.Hint:=GetDBString('COM00005009',2); //取消编辑的记录
  ActRefresh.Hint:=GetDBString('COM00005010',2);//取得最新的数据
  ActLocate.Hint:=GetDBString('COM00005011',2); //快速定位记录
  ActSearch.Hint:=GetDBString('COM00005012',2); //按条件查询数据
  ActPrint.Hint:=GetDBString('COM00005013',2);  //将数据打印出来
  ActExit.Hint:=GetDBString('COM00005015',2);   //关闭当前窗口

  lblCreateDate.Caption:=GetDBString('COM00005075');  //制单日期
  lblCreateBy.Caption:=GetDBString('COM00005076');  //制单人员
  lblUpdateDate.Caption:=GetDBString('COM00005077');  //修改日期
  lblUpdateBy.Caption:=GetDBString('COM00005078');  //修改人员
  gbInfo.Caption:=GetDBString('COM00005079');  //基本信息

  AIsAutoCode:=GetAutoCoding(AProgramID);
  edtCode.Enabled:=GetIsModifyCoding(AProgramID);
  if edtCode.Enabled then edtCode.Color:=AEnableColor else edtCode.Color:=ADisableColor;
end;

procedure TBas200_13Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
  SetButtonState(False);
  AKeyEvent:=OnKeyDown;
end;

procedure TBas200_13Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if ActSave.Enabled then
  begin
    if ShowDialog('UMS10000007')=IDNO then  //数据尚未保存,现在保存吗?
      ActCancel.Execute
    else
      ActSave.Execute;
  end;
  ADOQuery1.Close;
end;

procedure TBas200_13Form.ActFirstExecute(Sender: TObject);
begin
  inherited;
//最前
  if ADOQuery1.IsEmpty then Exit;
  ADOQuery1.First;
  ActFirst.Enabled:=False;
  ActPrior.Enabled:=False;
  ActNext.Enabled:=True;
  ActLast.Enabled:=True;
end;

procedure TBas200_13Form.ActPriorExecute(Sender: TObject);
begin
  inherited;
//上移
  if ADOQuery1.IsEmpty then Exit;
  ADOQuery1.Prior;
  ActNext.Enabled:=not ADOQuery1.Eof;
  ActLast.Enabled:=not ADOQuery1.Eof;
  ActFirst.Enabled:=not ADOQuery1.Bof;
  ActPrior.Enabled:=not ADOQuery1.Bof;
end;

procedure TBas200_13Form.ActNextExecute(Sender: TObject);
begin
  inherited;
//下移
  if ADOQuery1.IsEmpty then Exit;
  ADOQuery1.Next;
  ActNext.Enabled:=not ADOQuery1.Eof;
  ActLast.Enabled:=not ADOQuery1.Eof;
  ActFirst.Enabled:=not ADOQuery1.Bof;
  ActPrior.Enabled:=not ADOQuery1.Bof;
end;

procedure TBas200_13Form.ActLastExecute(Sender: TObject);
begin
  inherited;
//最后
  if ADOQuery1.IsEmpty then Exit;
  ADOQuery1.Last;
  ActNext.Enabled:=False;
  ActLast.Enabled:=False;
  ActFirst.Enabled:=True;
  ActPrior.Enabled:=True;
end;

procedure TBas200_13Form.ActInsertExecute(Sender: TObject);
var
  ADate:TDateTime;
begin
  inherited;

⌨️ 快捷键说明

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