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

📄 di_dbdictionery.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
字号:
unit DI_DBDictionery;

{
代码单元名称:通用数据登录工具数据字典窗口
从属软件:大连资金清算中心打码机管理信息系统
开发单位:大连理工大学计算机技术研究所软件工程研究室
作者:王树润
时间:2001,1,30
}

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, ComCtrls, ToolWin, Grids, DBGrids, stdctrls, ImgList, db,
  inifiles, ADODB;

type
  TDI_DfmDBDictionery = class(TForm)
    DBGrid1: TDBGrid;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    CloseToolButton: TToolButton;
    ConfirmToolButton: TToolButton;
    ToolButton3: TToolButton;
    ImageList1: TImageList;
    DBNavigator1: TDBNavigator;
    ToolBar2: TToolBar;
    FindToolButton: TToolButton;
    ToolButton2: TToolButton;
    FindEdit: TEdit;
    ReplaceToolButton: TToolButton;
    ToolBar4: TToolBar;
    ToolButton4: TToolButton;
    ToolBar3: TToolBar;
    ToolButton1: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    BeforReplaceEdit: TEdit;
    AfterReplaceEdit: TEdit;
    procedure FormShow(Sender: TObject);
    procedure CloseToolButtonClick(Sender: TObject);
    procedure ConfirmToolButtonClick(Sender: TObject);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FindToolButtonClick(Sender: TObject);
    procedure FindEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    procedure ReplaceToolButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    DictionaryTableName: string;
    DBGrid: TDBGrid;
    DBEdit: TDBEdit;
    IdentifyString: string;
    constructor Create(Owner: TComponent; ADictionaryTableName: string; ADBGrid:
      TDBGrid; ADBEdit: TDBEdit; AIdentifyString: string); overload;
  end;

implementation

uses DI_DataModul1, PublicUnit;

{$R *.DFM}

//构造函数======================================================================

constructor TDI_DfmDBDictionery.Create(Owner: TComponent; ADictionaryTableName:
  string; ADBGrid: TDBGrid; ADBEdit: TDBEdit; AIdentifyString: string);
begin
  inherited Create(Owner);
  DictionaryTableName := ADictionaryTableName;
  DBGrid := ADBGrid;
  DBEdit := ADBEdit;
  IdentifyString := AIdentifyString;
end;

//窗体==========================================================================

procedure TDI_DfmDBDictionery.FormShow(Sender: TObject);
begin
  BeforReplaceEdit.Enabled := False;
  AfterReplaceEdit.Enabled := False;
  ToolButton4.Enabled := False;
  ToolButton1.Enabled := False;
  RefreshDBDictionery(DictionaryTableName);
  with DI_DfmDataModule1.DictioneryADOQuery do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Select * From ' + DictionaryTableName + ' Order by ID');
    try
      Open;
    except
      ShowMessage('error');
      Exit;
    end;
  end;
  DI_DfmDataModule1.DictioneryADOQuery.FieldByName('ID').DisplayLabel :=
    '记录简写';
  DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').DisplayLabel :=
    '记录内容';
  DBGrid1.DataSource := DI_DfmDataModule1.DictioneryDataSource;
  DBNavigator1.DataSource := DI_DfmDataModule1.DictioneryDataSource;
  DBGrid1.Columns.Add;
  DBGrid1.Columns[0].Field :=
    DI_DfmDataModule1.DictioneryADOQuery.FieldByName('ID');
  DBGrid1.Columns[0].Title.Caption :=
    Trim(DI_DfmDataModule1.DictioneryADOQuery.FieldByName('ID').DisplayLabel);
  DBGrid1.Columns[0].Title.AlignMent := taCenter;
  DBGrid1.Columns.Add;
  DBGrid1.Columns[1].Field :=
    DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY');
  DBGrid1.Columns[1].Title.Caption :=
    Trim(DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').DisplayLabel);
  DBGrid1.Columns[1].Title.AlignMent := taCenter;
  if (DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').DataType in
    [ftString, ftWideString]) then
  begin
    BeforReplaceEdit.Enabled := True;
    AfterReplaceEdit.Enabled := True;
    ToolButton4.Enabled := True;
    ToolButton1.Enabled := True;
  end;
end;

//关闭==========================================================================

procedure TDI_DfmDBDictionery.CloseToolButtonClick(Sender: TObject);
begin
  DI_DfmDataModule1.DictioneryADOQuery.Close;
  Close;
end;

//输入按钮======================================================================

procedure TDI_DfmDBDictionery.ConfirmToolButtonClick(Sender: TObject);
begin
  if IdentifyString = 'DBGrid' then
  begin
    DBGrid.SelectedField.AsVariant :=
      DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').AsVariant;
  end
  else if IdentifyString = 'DBEdit' then
  begin
    DBEdit.Field.AsVariant :=
      DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').AsVariant;
  end;
  DI_DfmDataModule1.DictioneryADOQuery.Close;
  Close;
end;

//替换库中已有内容==============================================================

procedure TDI_DfmDBDictionery.ReplaceToolButtonClick(Sender: TObject);
var
  CurrentRecordNumber: integer;
  DictionaryExist: Boolean;
begin
  if Trim(BeforReplaceEdit.Text) = '' then
    Exit;
  if Trim(AfterReplaceEdit.Text) = '' then
    Exit;
  DictionaryExist := False;
  //替换字典中的内容=====================================
  DI_DfmDataModule1.DictioneryADOQuery.DisableControls;
  CurrentRecordNumber := DI_DfmDataModule1.DictioneryADOQuery.RecNo;
  DI_DfmDataModule1.DictioneryADOQuery.First;
  while not DI_DfmDataModule1.DictioneryADOQuery.Eof do
  begin
    DI_DfmDataModule1.DictioneryADOQuery.Edit;
    if
      (Trim(DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').AsString) = Trim(BeforReplaceEdit.Text)) then
    begin
      DI_DfmDataModule1.DictioneryADOQuery.FieldByName('DICTIONARY').AsString :=
        AfterReplaceEdit.Text;
      DictionaryExist := True;
    end;
    DI_DfmDataModule1.DictioneryADOQuery.Post;
    DI_DfmDataModule1.DictioneryADOQuery.Next;
  end;
  DI_DfmDataModule1.DictioneryADOQuery.First;
  while DI_DfmDataModule1.DictioneryADOQuery.RecNo <> CurrentRecordNumber do
    DI_DfmDataModule1.DictioneryADOQuery.Next;
  DI_DfmDataModule1.DictioneryADOQuery.EnableControls;
  //替换库中的内容=========================================
  if DictionaryExist = True then
  begin
    DI_DfmDataModule1.TTableADOQuery.DisableControls;
    CurrentRecordNumber := DI_DfmDataModule1.TTableADOQuery.RecNo;
    DI_DfmDataModule1.TTableADOQuery.First;
    while not DI_DfmDataModule1.TTableADOQuery.Eof do
    begin
      DI_DfmDataModule1.TTableADOQuery.Edit;
      if IdentifyString = 'DBGrid' then
        if
          (Trim(DI_DfmDataModule1.TTableADOQuery.FieldByName(DBGrid.SelectedField.FieldName).AsString) = Trim(BeforReplaceEdit.Text)) then
          DI_DfmDataModule1.TTableADOQuery.FieldByName(DBGrid.SelectedField.FieldName).AsString := AfterReplaceEdit.Text
        else if IdentifyString = 'DBEdit' then
          if
            Trim(DI_DfmDataModule1.TTableADOQuery.FieldByName(DBEdit.Field.FieldName).AsString) = Trim(BeforReplaceEdit.Text) then
            DI_DfmDataModule1.TTableADOQuery.FieldByName(DBEdit.Field.FieldName).AsString := AfterReplaceEdit.Text;
      DI_DfmDataModule1.TTableADOQuery.Post;
      DI_DfmDataModule1.TTableADOQuery.Next;
    end;
    DI_DfmDataModule1.TTableADOQuery.First;
    while DI_DfmDataModule1.TTableADOQuery.RecNo <> CurrentRecordNumber do
      DI_DfmDataModule1.TTableADOQuery.Next;
    DI_DfmDataModule1.TTableADOQuery.EnableControls;
  end;
  //共有部分====================================
  DI_DfmDataModule1.DictioneryADOQuery.Close;
  Close;
end;

//回车换行======================================================================

procedure TDI_DfmDBDictionery.DBGrid1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then
  begin
    if dbgrid1.SelectedIndex = dbgrid1.Columns.Count - 1 then
    begin
      dbgrid1.SelectedIndex := 0;
      if dbgrid1.DataSource.DataSet <> nil then
        with dbgrid1.DataSource.DataSet do
        begin
          Next;
          if EOF and CanModify then
            Append;
        end;
    end
    else
      dbgrid1.SelectedIndex := dbgrid1.SelectedIndex + 1;
  end;
end;

//定位按钮======================================================================

procedure TDI_DfmDBDictionery.FindToolButtonClick(Sender: TObject);
begin
  if Trim(FindEdit.Text) = '' then
    Exit;
  if not DI_DfmDataModule1.DictioneryADOQuery.Locate('ID', '' +
    Trim(FindEdit.Text) + '', []) then
    Exit;
end;

//回车定位======================================================================

procedure TDI_DfmDBDictionery.FindEditKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then
    FindToolButtonClick(nil);
end;

//快捷键========================================================================

procedure TDI_DfmDBDictionery.FormShortCut(var Msg: TWMKey;
  var Handled: Boolean);
begin
  if msg.CharCode = VK_F1 then
    ConfirmToolButtonClick(nil);
  if msg.CharCode = VK_ESCAPE then
    CloseToolButtonClick(nil);
  if msg.CharCode = VK_F2 then
    ReplaceToolButtonClick(nil);
end;

end.

⌨️ 快捷键说明

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