📄 serverdbt.pas
字号:
unit ServerDBT;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Mask, DBCtrls, StdCtrls, Grids, SM_SP_Server, DBGrids, ExtCtrls,
ComCtrls, Buttons, Scope;
type
Tfrm_DBT = class(TForm)
sbr: TStatusBar;
Panel3: TPanel;
GroupBox4: TGroupBox;
Panel1: TPanel;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
GroupBox2: TGroupBox;
DBGrid3: TDBGrid;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
sgr1: TStringGrid;
Panel2: TPanel;
GroupBox1: TGroupBox;
Panel4: TPanel;
DBGrid2: TDBGrid;
DBMemo1: TDBMemo;
DBNavigator2: TDBNavigator;
GroupBox3: TGroupBox;
SimplePie1: TSimplePie;
Shape1: TShape;
Shape2: TShape;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
lRegCount: TLabel;
lCustCxCount: TLabel;
lSNDRecord: TLabel;
Label13: TLabel;
Label14: TLabel;
Label9: TLabel;
lCurCount: TLabel;
procedure DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure DBNavigator2BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure FormShow(Sender: TObject);
procedure DBGrid3CellClick(Column: TColumn);
procedure sgr1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure sgr1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_DBT: Tfrm_DBT;
Search:Boolean;
implementation
{$R *.dfm}
uses SP_DLLs, SP_DLL, ServerDB, DataBaseOperat;
procedure Tfrm_DBT.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if Button in [nbDelete] then
if Application.MessageBox('是否删除此记录?','警告信息',
MB_IconQuestion+MB_YesNO)=IDNO then
Raise EAbort.Create('''');
end;
procedure Tfrm_DBT.DBNavigator2BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
if Button in [nbDelete] then
if Application.MessageBox('是否删除此记录?','警告信息',
MB_IconQuestion+MB_YesNO)=IDNO then
Raise EAbort.Create('''');
end;
procedure Tfrm_DBT.FormShow(Sender: TObject);
begin
frmServerDB.aRegister.Close;
frmServerDB.atSvcContent.Close;
frmServerDB.aRegister.Open;
frmServerDB.atSvcContent.Open;
lRegCount.Caption := IntToStr(frmServerDB.aRegister.RecordCount);
sbr.Panels[3].Text:= IntToStr(frmServerDB.aRegister.RecordCount);
lCustCxCount.Caption:=IntToStr(ReadCXRecord);
lSNDRecord.Caption:=IntToStr(ReadSNDRecord);
sgr1.Cells[0,0]:='项目名称';
sgr1.Cells[1,0]:='当前值';
sgr1.Cells[0,1]:='主叫号码:';
sgr1.Cells[0,2]:='付费号码:';
sgr1.Cells[0,3]:='服务代码:';
sgr1.Cells[0,4]:='注册时间:';
sgr1.SetFocus;
end;
procedure Tfrm_DBT.DBGrid3CellClick(Column: TColumn);
begin
if Search then
begin
sgr1.Cells[1,1]:=Column.Grid.Fields[0].Value;
sgr1.Cells[1,2]:=Column.Grid.Fields[1].Value;
sgr1.Cells[1,3]:=Column.Grid.Fields[2].Value;
sgr1.Cells[1,4]:=Column.Grid.Fields[3].Value;
end;
end;
procedure Tfrm_DBT.sgr1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
OldAlign,
OldBkMode,
OldTextColor:Integer;
Text_Height, X, Y:Integer;
begin
Inherited;
with sgr1.Canvas do
begin
if ((ACol=1)or(ACol=2))and(State=[]) then
Font.Color:=clBlack;
FillRect(Rect);
OldBkMode:=SetBkMode(Handle, Transparent);
OldAlign:=SetTextAlign(Handle, TA_Center);
Text_Height:=TextHeight('Test');
X:=(Rect.Left+Rect.Right) div 2+1;
Y:=(Rect.Bottom+Rect.Top-Text_Height) div 2;
if Y<0 then Y:=0;
OldTextColor:=Font.Color;
if (ARow=0)or(ACol=0) then
begin
Font.Color:=clWhite;
TextOut(X+1, Y+1, sgr1.Cells[ACol, ARow]);
end;
Font.Color:=OldTextColor;
TextOut(X, Y, sgr1.Cells[ACol, ARow]);
SetTextAlign(Handle, OldAlign);
SetBkMode(Handle, OldBkMode);
end;
end;
procedure Tfrm_DBT.BitBtn1Click(Sender: TObject);
var
sqlstr,s:string;
begin
if sgr1.Row=2 then
begin
ErrorMsg(1,'被叫号码不能用作查询条件!');
Exit;
end;
if sgr1.Row=1 then
begin
s:=Trim(sgr1.Cells[1,1]);
sqlstr:='Select * from Register where SrcNo Like' +''''+s+'%''';
end;
if sgr1.Row=3 then
begin
s:=Trim(sgr1.Cells[1,3]);
sqlstr:='Select * from Register where SvcType Like' +''''+s+'%''';
end;
if sgr1.Row=4 then
begin
s:=Trim(sgr1.Cells[1,4]);
sqlstr:='Select * from Register where RegDate Like' +''''+s+'%''';
end;
with frmServerDB.aqryRegisterPhone do
begin
Close;
SQL.Clear;
SQL.Add(sqlstr);
ExecSql;
Open;
end;
Search := True;
lCurCount.Caption:=IntToStr(frmServerDB.aqryRegisterPhone.RecordCount);
if frmServerDB.aqryRegisterPhone.RecordCount=0 then
begin
ErrorMsg(1,'记录没发现!');
Search := False;
end;
end;
procedure Tfrm_DBT.BitBtn3Click(Sender: TObject);
var
s:string;
begin
s:=Trim(sgr1.Cells[1,1]);
if s='' then
ErrorMsg(1,'请输入手机号码!') else
if Application.MessageBox('是否删除此记录?','警告信息',
MB_IconQuestion+MB_YesNO)=IDYes then
with frmServerDB.aDelRegister do
begin
Close;
Parameters.ParamByName('p_SrcNo').Value := s;
ExecSQL;
end;
end;
procedure Tfrm_DBT.sgr1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then BitBtn1.OnClick(nil);
end;
procedure Tfrm_DBT.FormClose(Sender: TObject; var Action: TCloseAction);
begin
frmServerDB.aqryRegisterPhone.Close;
frmServerDB.aRegister.Close;
frmServerDB.atSvcContent.Close;
Action:=caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -