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

📄 udata.~pas

📁 学生信息管理系统
💻 ~PAS
字号:
unit UData;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UBase, Grids, DBGridEh, ExtCtrls, ComCtrls, ToolWin, ActnList,
  ImgList, DB, ADODB, PrnDbgeh;

type
  TFData = class(TFBase)
    StatusBar: TStatusBar;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ActionList: TActionList;
    Tool_add: TToolButton;
    Tool_modify: TToolButton;
    Tool_save: TToolButton;
    Tool_delete: TToolButton;
    Tool_cancel: TToolButton;
    Tool_print: TToolButton;
    A_add: TAction;
    A_modify: TAction;
    A_save: TAction;
    A_delete: TAction;
    A_cancel: TAction;
    A_preview: TAction;
    Panel1: TPanel;
    Shape1: TShape;
    Splitter1: TSplitter;
    Panel2: TPanel;
    ADOQuery: TADOQuery;
    DBGridEh: TDBGridEh;
    DataSource: TDataSource;
    ToolButton7: TToolButton;
    Tool_prior: TToolButton;
    Tool_next: TToolButton;
    A_pr: TAction;
    A_next: TAction;
    PrintDBGridEh: TPrintDBGridEh;
    A_refresh: TAction;
    ToolButton1: TToolButton;
    ADOQueryvxh: TIntegerField;
    procedure DataSourceStateChange(Sender: TObject);
    procedure A_addExecute(Sender: TObject);
    procedure A_modifyExecute(Sender: TObject);
    procedure A_saveExecute(Sender: TObject);
    procedure A_deleteExecute(Sender: TObject);
    procedure A_cancelExecute(Sender: TObject);
    procedure A_previewExecute(Sender: TObject);
    procedure A_prExecute(Sender: TObject);
    procedure A_nextExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DBGridEhDblClick(Sender: TObject);
    procedure A_refreshExecute(Sender: TObject);
    procedure ADOQueryCalcFields(DataSet: TDataSet);
    procedure ADOQueryAfterOpen(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FData: TFData;

implementation

uses UMain, UPublic;

{$R *.dfm}

procedure TFData.DataSourceStateChange(Sender: TObject);
begin
  A_add.Enabled := (DataSource.State =dsBrowse);
  A_modify.Enabled := (DataSource.State =dsBrowse);
  A_save.Enabled := not (DataSource.State =dsBrowse);
  A_delete.Enabled := (DataSource.State =dsBrowse);
  A_pr.Enabled := (DataSource.State =dsBrowse);
  A_next.Enabled := (DataSource.State =dsBrowse);
  A_cancel.Enabled := not (DataSource.State =dsBrowse);
  panel1.Enabled := not (DataSource.State =dsBrowse);
  DBGridEh.ReadOnly := (DataSource.State =dsBrowse);
  A_refresh.Enabled := (DataSource.State =dsBrowse);
end;

procedure TFData.A_addExecute(Sender: TObject);
begin
  try
    ADOQUery.Append;
  except
  end;
end;

procedure TFData.A_modifyExecute(Sender: TObject);
begin
  inherited;
  if AdoQUery.IsEmpty then begin
    Ask('没有记录,无法修改!','提问',MB_INFO);
    exit;
  end;
  AdoQuery.Edit;
end;

procedure TFData.A_saveExecute(Sender: TObject);
begin
  inherited;
  Adoquery.Post;
end;

procedure TFData.A_deleteExecute(Sender: TObject);
begin
  inherited;
  if AdoQUery.IsEmpty then exit;
  if DBGridEh.SelectedRows.Count=0 then begin //选择的记录数为零
    if Ask('真的删除当前记录吗?','警告',MB_OKCL+MB_WARN)<>1 then Exit;
  end
  else
    if InfoBox('真的删除选择记录吗?','警告',MB_OKCL+MB_WARN)<>1 then Exit;
  if DBGridEh.SelectedRows.Count=0 then
    AdoQUery.Delete
  else
    DBGridEh.SelectedRows.Delete;
end;

procedure TFData.A_cancelExecute(Sender: TObject);
begin
  inherited;
  AdoQUery.Cancel;
end;

procedure TFData.A_previewExecute(Sender: TObject);
begin
  inherited;
  PrintDBGridEh.Preview;
end;

procedure TFData.A_prExecute(Sender: TObject);
begin
  inherited;
  AdoQUery.Prior;
end;

procedure TFData.A_nextExecute(Sender: TObject);
begin
  inherited;
  AdoQUery.Next;
end;

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

procedure TFData.FormCreate(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ComponentCount - 1 do
  if (Components[i] is TADOQuery) then
  if (TADOQuery(Components[i]).SQL.Text<>'') and (TADOQuery(Components[i]).Tag<>111) then
  if not TADOQuery(Components[i]).Active then
  try
    TADOQuery(Components[i]).Open;
  except
  end;
end;

procedure TFData.DBGridEhDblClick(Sender: TObject);
begin
  if not AdoQUery.IsEmpty then AdoQUery.Edit;
end;

procedure TFData.A_refreshExecute(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ComponentCount - 1 do
  if (Components[i] is TADOQuery) then
  if (TADOQuery(Components[i]).SQL.Text<>'') and (TADOQuery(Components[i]).Tag<>111) then
  begin
    if  TADOQuery(Components[i]).Active then  TADOQuery(Components[i]).Close;
    try
      TADOQuery(Components[i]).Open;
    except
    end;
  end;
end;

procedure TFData.ADOQueryCalcFields(DataSet: TDataSet);
begin
  inherited;
  ADOQuery.FieldByName('vxh').AsInteger := abs(ADOQuery.RecNo);
end;

procedure TFData.ADOQueryAfterOpen(DataSet: TDataSet);
begin
  StatusBar.SimpleText := '总共搜索到'+inttostr(ADOQUery.recordcount)+'条数据';
end;

end.

⌨️ 快捷键说明

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