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

📄 base_t.pas

📁 三层ERP系统 (SQL)
💻 PAS
字号:
unit Base_T;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MDIBase, MSNPopUp, FR_DSet, FR_DBSet, FR_Class, Menus, ActnList,
  DB, DBClient, Grids, DBGridEh, StdCtrls, ExtCtrls, dxExEdtr, dxTL,
  dxDBCtrl, dxCntner, dxDBTL, Mask, wwdbedit;

type
  TfrmMDIBase_T = class(TfrmMDIBase)
    Panel1: TPanel;
    FormTitle: TLabel;
    Panel3: TPanel;
    btnExit: TButton;
    Panel2: TPanel;
    btnedit: TButton;
    btndelete: TButton;
    Panel4: TPanel;
    btnrefresh: TButton;
    btnsearch: TButton;
    btnprint: TButton;
    CDSBaseinfo: TClientDataSet;
    DSbaseinfo: TDataSource;
    ActionList1: TActionList;
    Action1: TAction;
    Action2: TAction;
    Action3: TAction;
    Action4: TAction;
    Action5: TAction;
    frBaseinfo: TfrReport;
    frDBDataSet1: TfrDBDataSet;
    ActionList2: TActionList;
    acmodify: TAction;
    acdelete: TAction;
    acrefresh: TAction;
    acsearch: TAction;
    acexit: TAction;
    MSNSaveinfo: TMSNPopUp;
    Panel5: TPanel;
    dxDBTreeList1: TdxDBTreeList;
    dxDBTreeList1Column1: TdxDBTreeListColumn;
    dxDBTreeList1Column2: TdxDBTreeListColumn;
    PlEdit: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    addBaseclass: TAction;
    addsameclass: TAction;
    addchildclass: TAction;
    Label1: TLabel;
    DBedit1: TwwDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    wwDBEdit1: TwwDBEdit;
    wwDBEdit2: TwwDBEdit;
    wwDBEdit3: TwwDBEdit;
    Button4: TButton;
    Button5: TButton;
    acSave: TAction;
    acCancel: TAction;
    ppmreport: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnprintClick(Sender: TObject);
    procedure acexitExecute(Sender: TObject);
    procedure DSbaseinfoStateChange(Sender: TObject);
    procedure DSbaseinfoDataChange(Sender: TObject; Field: TField);
    procedure acrefreshExecute(Sender: TObject);
    procedure acsearchExecute(Sender: TObject);
    procedure acdeleteExecute(Sender: TObject);
    procedure acmodifyExecute(Sender: TObject);
    procedure acCancelExecute(Sender: TObject);
    procedure acSaveExecute(Sender: TObject);
    procedure addBaseclassExecute(Sender: TObject);
    procedure addsameclassExecute(Sender: TObject);
    procedure addchildclassExecute(Sender: TObject);
    procedure dxDBTreeList1ChangeNode(Sender: TObject; OldNode,
      Node: TdxTreeListNode);
    procedure CDSBaseinfofCodeValidate(Sender: TField);
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
    procedure Action3Execute(Sender: TObject);
    procedure Action4Execute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure frBaseinfoGetValue(const ParName: String;
      var ParValue: Variant);
  private
    iParentID,iSelfID:Integer;
    sParentCode,sSelfCode:String;
    function CheckSave :Boolean;    
    { Private declarations }
  protected
    FormCaption:String;
    MainTable:string;
    KeyField:String;
    ReportName:string;
  public
    { Public declarations }
  end;

var
  frmMDIBase_T: TfrmMDIBase_T;

implementation

uses Global, DataProcess, Bsearch;

{$R *.dfm}

procedure TfrmMDIBase_T.FormDestroy(Sender: TObject);
begin
  inherited;
  frmMDIBase_T:=nil;
end;

procedure TfrmMDIBase_T.FormShow(Sender: TObject);
begin
  inherited;
  FormTitle.Caption:=FormCaption;
  GetSqlData(CDSBaseinfo,MainTable,KeyField,'Fid>0',20);
end;

procedure TfrmMDIBase_T.btnprintClick(Sender: TObject);
var
  Point:Tpoint;
begin
  inherited;
  Point:=GetScreenPoint(btnprint);
  ppmreport.Popup(point.X,point.Y);
end;


procedure TfrmMDIBase_T.acexitExecute(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmMDIBase_T.DSbaseinfoStateChange(Sender: TObject);
var
  i:integer;
begin
  inherited;
  acSave.Enabled:=CDSBaseinfo.State in [dsInsert,dsEdit];
  addBaseClass.Enabled:=not acSave.Enabled;
  addSameClass.Enabled:=not acSave.Enabled;
  addChildClass.Enabled:=not acSave.Enabled;
  acCancel.Enabled:=acSave.Enabled;
  acmodify.Enabled:=not acsave.Enabled;
  acsearch.Enabled:=not acsave.Enabled;
  acrefresh.Enabled:=not acsave.Enabled;
  acdelete.Enabled:=not acSave.Enabled;
  btnPrint.Enabled:=not acSave.Enabled;


dxdbTreelist1.Enabled := Not acSave.Enabled ;
if acSave.Enabled  then
   dxDBTreelist1.OptionsDB := dxDBTreeList1.OptionsDB - [etoCanNavigation]
   else
   if not (etoCanNavigation in dxDBTreeList1.OptionsDB ) then
      dxDBTreelist1.OptionsDB := dxDBTreeList1.OptionsDB + [etoCanNavigation];

With PlEdit do
   for i:= 0 to ControlCount-1 do
     if Controls[i] is TwwDBEdit then
        (Controls[i] as TwwDBEdit).ReadOnly := Not acSave.Enabled
end;

procedure TfrmMDIBase_T.DSbaseinfoDataChange(Sender: TObject;
  Field: TField);
begin
  inherited;
  DSbaseinfoStateChange(Self);
end;

procedure TfrmMDIBase_T.acrefreshExecute(Sender: TObject);
begin
  inherited;
  GetSqlData(CDSBaseinfo,MainTable,KeyField,'Fid>0',20);
end;

procedure TfrmMDIBase_T.acsearchExecute(Sender: TObject);
begin
  inherited;
  searchtiao:='';
  FromInterface:=Maintable;
  if not assigned(frmSearch) then
    FrmSearch:=TfrmSearch.Create(Application);
    FrmSearch.showModal;
    frmSearch.free;

  if Searchtiao<>'' then
    try
      Getsqldata(CDSBaseinfo,Maintable,Keyfield,Searchtiao,20);
    except
      on E:Exception do
        begin
          messagedlg('琩高兵ン砞竚岿粇 

⌨️ 快捷键说明

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