📄 newtel.~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 + -