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

📄 ubasebrowser.pas

📁 简单易用的按件按时计工资管理系统
💻 PAS
字号:
unit uBaseBrowser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ActnList, dxExEdtr, DB, DBClient, ImgList, dxTL, dxDBCtrl,
  dxDBGrid, dxCntner, StdCtrls, ExtCtrls, ComCtrls, ToolWin, uDM, Provider,
  uBaseQryDlg;

const
  WM_SHOWQRYDLG = WM_USER + 1004;
type
  TBaseBrowser = class(TForm)
    cbMain: TCoolBar;
    tbMain: TToolBar;
    pnlTop: TPanel;
    lblCaption: TLabel;
    pnl_Cell: TPanel;
    Cell: TdxDBGrid;
    Img_Main: TImageList;
    Actions: TActionList;
    actClose: TAction;
    actQuery: TAction;
    actExportData: TAction;
    cdsMast: TClientDataSet;
    dsMast: TDataSource;
    actDetail: TAction;
    actAdd: TAction;
    actDel: TAction;
    dspMast: TDataSetProvider;
    procedure actCloseExecute(Sender: TObject);
    procedure actQueryExecute(Sender: TObject);
    procedure actExportDataExecute(Sender: TObject);
    procedure actDetailExecute(Sender: TObject);
    procedure actAddExecute(Sender: TObject);
    procedure actDelExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure CellDblClick(Sender: TObject);
  private
    FCondition: string;
    FTableName: string;
    FQryDLg: TBaseQryDlg;
    procedure SetCondition(const Value: string);
    procedure SetTableName(const Value: string);
    procedure WMShowQryDlg(var Message: TMessage); message WM_SHOWQRYDLG;
    { Private declarations }
  protected
    FirstShow:Boolean;
    ShowQryDlg:Boolean;
    procedure InitVars; virtual;
    procedure InitDisplay; virtual;
    procedure Query; virtual;
    procedure GetList; virtual;
    procedure ExportData; virtual;
    procedure Detail; virtual;
    procedure Add; virtual;
    procedure Del; virtual;

    function GetID:string;virtual;
    procedure UpdateKeyFieldValue; virtual;
  public
    { Public declarations }
    property  TableName:string read FTableName write SetTableName;
    property  Condition:string read FCondition write SetCondition;
    property  QryDLg:TBaseQryDlg read FQryDLg write FQryDLg;
  end;

var
  BaseBrowser: TBaseBrowser;

implementation

uses uGlobal;

{$R *.dfm}

{ TBaseBrowser }

procedure TBaseBrowser.Add;
begin
  UpdateKeyFieldValue;
end;

procedure TBaseBrowser.Del;
begin
  UpdateKeyFieldValue;
end;

procedure TBaseBrowser.Detail;
begin
  UpdateKeyFieldValue;
end;

procedure TBaseBrowser.ExportData;
begin
  Pub_ExportData(Cell);
end;

procedure TBaseBrowser.GetList;
begin
  cdsMast.DisableControls ;
  try
    if cdsMast.Active then cdsMast.Close ;
    cdsMast.CommandText :='SELECT * FROM ' + TableName + ' WHERE ' + FCondition;
    cdsMast.Active:=True;
    CreateCellCols(cell, cdsMast);
    SetAllColumnsCanEdit(cell, False);
  finally
    cdsMast.EnableControls ;
    SetCellAutoWidth(Cell);
  end;
end;

procedure TBaseBrowser.Query;
begin

end;

procedure TBaseBrowser.actCloseExecute(Sender: TObject);
begin
  Close;
end;

procedure TBaseBrowser.actQueryExecute(Sender: TObject);
begin
  Query;
end;

procedure TBaseBrowser.actExportDataExecute(Sender: TObject);
begin
  ExportData;
end;

procedure TBaseBrowser.actDetailExecute(Sender: TObject);
begin
  Detail;
end;

procedure TBaseBrowser.actAddExecute(Sender: TObject);
begin
  Add;
end;

procedure TBaseBrowser.actDelExecute(Sender: TObject);
begin
  Del;
end;

procedure TBaseBrowser.InitVars;
begin
  Cell.KeyField := CS_KeyFieldName;
  FCondition:=' (1=1) ';
end;

procedure TBaseBrowser.FormCreate(Sender: TObject);
begin
  FirstShow:=True;
  ShowQryDlg:=False;
  InitVars;
end;

procedure TBaseBrowser.SetCondition(const Value: string);
begin
  FCondition := Value;
end;

procedure TBaseBrowser.SetTableName(const Value: string);
begin
  FTableName := Value;
end;

procedure TBaseBrowser.FormShow(Sender: TObject);
begin
  
  if FirstShow then
  begin
    GetList;
    FirstShow:=False;
  end;
  if ShowQryDlg then
    PostMessage(self.Handle, WM_SHOWQRYDLG, 0, 0); 
  InitDisplay;
end;

procedure TBaseBrowser.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;



procedure TBaseBrowser.CellDblClick(Sender: TObject);
begin
  actDetail.Execute ;
end;

procedure TBaseBrowser.UpdateKeyFieldValue;
begin
  Pub_KeyFieldValue:='';
  if not CheckDataSet(cdsMast) then exit;
  if cdsMast.RecordCount =0 then exit;
  if cdsMast.FindField(CS_KeyFieldName)=nil then exit;

  Pub_KeyFieldValue:= cdsMast.FieldByName(CS_KeyFieldName).AsString ;
end;

procedure TBaseBrowser.InitDisplay;
begin
  
end;

function TBaseBrowser.GetID: string;
begin
  Result:='';
  if not CheckDataSet(cdsMast) then exit;
  if cdsMast.RecordCount=0 then exit;
  if cdsMast.FindField(CS_KeyFieldName)<>nil then
     Result:=cdsMast.FindField(CS_KeyFieldName).AsString;
end;

procedure TBaseBrowser.WMShowQryDlg(var Message: TMessage);
begin
  Query;
end;

end.

⌨️ 快捷键说明

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