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

📄 newtel.~pas

📁 个人桌面电话簿管理
💻 ~PAS
字号:
unit newtel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, Buttons, DB, ADODB,
  dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms,
  frxClass, frxDBSet;

type
  TFrmnewtel = class(TForm)
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    sbAppend: TSpeedButton;
    sbEdit: TSpeedButton;
    sbDel: TSpeedButton;
    sbSave: TSpeedButton;
    sbCancel: TSpeedButton;
    sbRefresh: TSpeedButton;
    sbFirst: TSpeedButton;
    sbPrior: TSpeedButton;
    sbNext: TSpeedButton;
    sbLast: TSpeedButton;
    sbPrint: TSpeedButton;
    sbExit: TSpeedButton;
    Splitter1: TSplitter;
    CheckBox1: TCheckBox;
    StatusBar1: TStatusBar;
    ADOqyMaster: TADOQuery;
    dsMaster: TDataSource;
    dxDBGrid1: TdxDBGrid;
    ADOqyMasterxingm: TWideStringField;
    ADOqyMasterleib: TWideStringField;
    ADOqyMastergongs: TWideStringField;
    ADOqyMasterzhib: TWideStringField;
    ADOqyMasterdha: TWideStringField;
    ADOqyMastercuanz: TWideStringField;
    ADOqyMasterdhb: TWideStringField;
    ADOqyMasterdiany: TWideStringField;
    ADOqyMasterbeiz: TWideStringField;
    dxDBGrid1xingm: TdxDBGridColumn;
    dxDBGrid1leib: TdxDBGridPickColumn;
    dxDBGrid1gongs: TdxDBGridColumn;
    dxDBGrid1zhib: TdxDBGridPickColumn;
    dxDBGrid1dha: TdxDBGridColumn;
    dxDBGrid1cuanz: TdxDBGridColumn;
    dxDBGrid1dhb: TdxDBGridColumn;
    dxDBGrid1diany: TdxDBGridColumn;
    dxDBGrid1beiz: TdxDBGridColumn;
    frxDBDataset1: TfrxDBDataset;
    frxReport1: TfrxReport;
    procedure sbExitClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure dsMasterStateChange(Sender: TObject);
    procedure sbAppendClick(Sender: TObject);
    procedure sbEditClick(Sender: TObject);
    procedure sbDelClick(Sender: TObject);
    procedure sbSaveClick(Sender: TObject);
    procedure sbCancelClick(Sender: TObject);
    procedure sbRefreshClick(Sender: TObject);
    procedure sbFirstClick(Sender: TObject);
    procedure sbPriorClick(Sender: TObject);
    procedure sbNextClick(Sender: TObject);
    procedure sbLastClick(Sender: TObject);
    procedure ADOqyMasterBeforeDelete(DataSet: TDataSet);
    procedure ADOqyMasterAfterOpen(DataSet: TDataSet);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ADOqyMasterAfterScroll(DataSet: TDataSet);
    procedure sbPrintClick(Sender: TObject);
  private
    { Private declarations }
    procedure SetButton;
    procedure SetDescription;       
  public
    { Public declarations }
  end;

var
  Frmnewtel: TFrmnewtel;

implementation

{$R *.dfm}

procedure TFrmnewtel.sbExitClick(Sender: TObject);
begin
close;
end;

Procedure TFrmnewtel.SetDescription;
begin
  if ADOqyMaster.State=dsInsert then
  begin
     StatusBar1.Panels[0].Text:='新增资料';
     StatusBar1.Panels[1].Text:='储存可以按F5';
  end;
  if ADOqyMaster.State=dsEdit then
  begin
     StatusBar1.Panels[0].Text:='编辑资料';
     StatusBar1.Panels[1].Text:='储存可以按F5';
  end;
  if ADOqyMaster.State=dsBrowse then
  begin
     if ADOqyMaster.RecordCount>0 then
       begin
         StatusBar1.Panels[0].Text:='浏览资料';
         StatusBar1.Panels[1].Text:='离开F12新增F3修改F4';
       end
     else
       begin
         StatusBar1.Panels[0].Text:='没有资料记录';
         StatusBar1.Panels[1].Text:='离开F12新增F3';
       end;
  end;
end;

Procedure TFrmnewtel.SetButton;
begin
  sbExit.Enabled:=(dsMaster.DataSet.State in [dsBrowse]);
  sbCancel.Enabled:=(dsMaster.DataSet.State in [dsInsert,dsEdit]);
  sbAppend.Enabled:=(dsMaster.DataSet.State in [dsBrowse]);
  if ADOqyMaster.State in[dsInsert,dsEdit] then
   begin
     sbEdit.Enabled:=False;
     sbDel.Enabled:=False;
   end
  else
   begin
     sbEdit.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                     (not dsMaster.DataSet.Eof) or
                     (not dsMaster.DataSet.Bof));
     sbDel.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                     (not dsMaster.DataSet.Eof) or
                     (not dsMaster.DataSet.Bof));
   end;
   sbSave.Enabled:=(dsMaster.DataSet.State in [dsInsert,dsEdit]);
   sbFirst.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                    (not dsMaster.DataSet.Bof));
   sbPrior.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                    (not dsMaster.DataSet.Bof));
   sbNext.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                    (not dsMaster.DataSet.Eof));
   sbLast.Enabled:=((dsMaster.DataSet.State in [dsBrowse]) and
                    (not dsMaster.DataSet.Eof));
   sbRefresh.Enabled:=(dsMaster.DataSet.State in [dsBrowse]);
end;

procedure TFrmnewtel.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ssCtrl in Shift) and (Key=VK_UP) then
      Perform(WM_NextDlgCtl,-1,0);
  if (ssCtrl in Shift) and (Key=VK_Down) then
      Perform(WM_NextDlgCtl,0,0);
  if (Key=VK_F3) and (dsMaster.DataSet.State=dsBrowse) then
      dsMaster.DataSet.Append;
  if (Key=VK_F4) and (dsMaster.DataSet.State=dsBrowse) then
      dsMaster.DataSet.Edit;
  if (Key=VK_F5) and (dsMaster.DataSet.State in [dsInsert,dsEdit]) then
      dsMaster.DataSet.Post;
  if (Key=VK_F10) and (dsMaster.DataSet.State in [dsInsert,dsEdit]) then
      dsMaster.DataSet.Cancel;
  //F11键重读。
  if (Key=VK_F11) and (dsMaster.DataSet.State=dsBrowse) then
    try
      with dsMaster.DataSet do
      begin
        DisableControls;
        Close;
        Open;
        Last;
      end;
    finally
      dsMaster.DataSet.EnableControls;
    end;
  if Key=VK_F12 then  Close;
end;

procedure TFrmnewtel.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
  key:=#0;
  perform(WM_NextDlgCtl,0,0);
end;
end;

procedure TFrmnewtel.dsMasterStateChange(Sender: TObject);
begin
SetButton;
SetDescription;
end;

procedure TFrmnewtel.sbAppendClick(Sender: TObject);
begin
if dsMaster.DataSet.State=dsBrowse then
   dsMaster.DataSet.Append;
end;

procedure TFrmnewtel.sbEditClick(Sender: TObject);
begin
if dsMaster.DataSet.State=dsBrowse then
   dsMaster.DataSet.Edit;
end;

procedure TFrmnewtel.sbDelClick(Sender: TObject);
begin
if dsMaster.DataSet.State =dsBrowse then
   dsMaster.DataSet.Delete;
end;

procedure TFrmnewtel.sbSaveClick(Sender: TObject);
begin
if dsMaster.DataSet.State in [dsInsert,dsEdit] then
ADOqyMaster.UpdateBatch;
end;

procedure TFrmnewtel.sbCancelClick(Sender: TObject);
begin
if dsMaster.DataSet.State in [dsInsert,dsEdit] then
   dsMaster.DataSet.Cancel;
end;

procedure TFrmnewtel.sbRefreshClick(Sender: TObject);
begin
 if (ADOqyMaster.State<>dsBrowse) then Exit;
 try
    ADOqyMaster.DisableControls;
    ADOqyMaster.Close;
    ADOqyMaster.Open;
 finally
    ADOqyMaster.EnableControls;
 end;
end;

procedure TFrmnewtel.sbFirstClick(Sender: TObject);
begin
 if dsMaster.DataSet.State=dsBrowse then
 begin
  dsMaster.DataSet.First;
  sbFirst.Enabled:=False;
  sbPrior.Enabled:=False;
 end;
end;

procedure TFrmnewtel.sbPriorClick(Sender: TObject);
begin
 if dsMaster.DataSet.State=dsBrowse then
 begin
  dsMaster.DataSet.Prior;
  if dsMaster.DataSet.Bof then
  begin
    dsMaster.DataSet.First;
    sbPrior.Enabled:=False;
    sbFirst.Enabled:=False;
  end;
 end;
end;

procedure TFrmnewtel.sbNextClick(Sender: TObject);
begin
 if dsMaster.DataSet.State=dsBrowse then
 begin
  dsMaster.DataSet.Next;
  if dsMaster.DataSet.Eof then
  begin
    dsMaster.DataSet.Last;
    sbLast.Enabled:=False;
    sbNext.Enabled:=False;
  end;
 end;
end;

procedure TFrmnewtel.sbLastClick(Sender: TObject);
begin
 if dsMaster.DataSet.State=dsBrowse then
 begin
  dsMaster.DataSet.Last;
  sbLast.Enabled:=False;
  sbNext.Enabled:=False;
 end;
end;

procedure TFrmnewtel.ADOqyMasterBeforeDelete(DataSet: TDataSet);
begin
 if MessageDlg('您确定删除这笔电话资料吗?',
    mtConfirmation,[mbYes,mbNo],0)=mrNo then
   Abort;
end;

procedure TFrmnewtel.ADOqyMasterAfterOpen(DataSet: TDataSet);
begin
ADOqyMaster.Last;
end;

procedure TFrmnewtel.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.State=cbUnchecked then
  begin
   dxDBGrid1.Filter.Active:=False;
   dxDBGrid1.Filter.AutoDataSetFilter:=False;
   dxDBGrid1.OptionsDB:=[edgoCancelOnExit, edgoCanDelete, edgoCanInsert, edgoCanNavigation, edgoConfirmDelete, edgoUseBookmarks];
   CheckBox1.Caption:='筛选';
  end
else
  begin
   dxDBGrid1.Filter.Active:=True;
   dxDBGrid1.Filter.AutoDataSetFilter:=True;
   dxDBGrid1.OptionsDB:=[edgoCancelOnExit,edgoCanDelete,edgoCanInsert,edgoCanNavigation,edgoConfirmDelete,edgoLoadAllRecords,edgoUseBookmarks];
   CheckBox1.Caption:='取消筛选';
  end;
end;

procedure TFrmnewtel.FormShow(Sender: TObject);
begin
ADOqyMaster.Close;
ADOqyMaster.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source='+getcurrentdir+'\data\telk.mdb;Persist Security Info=True';
ADOqyMaster.SQL.Clear;
ADOqyMaster.SQL.Add('select * from telt');
ADOqyMaster.Open;
end;

procedure TFrmnewtel.ADOqyMasterAfterScroll(DataSet: TDataSet);
begin
SetButton;
SetDescription;
end;

procedure TFrmnewtel.sbPrintClick(Sender: TObject);
begin
Frmnewtel.frxReport1.ShowReport(False);
end;

end.

⌨️ 快捷键说明

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