📄 dataparam.pas
字号:
unit dataparam;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Buttons, ComCtrls, ExtCtrls, DB, ADODB;
type
TDataParamForm = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
StatusBar1: TStatusBar;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
Label6: TLabel;
Edit6: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure ADOQuery1AfterScroll(DataSet: TDataSet);
procedure Aquebytypeid(str:string);
procedure ADOQuery2AfterScroll(DataSet: TDataSet);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure Label9Click(Sender: TObject);
procedure Edit5KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
procedure ControlTheEnablePro(isSaved: Boolean);//控制按钮面板的Enable属性
function GetUno: string;
//鼠标滚动 DBGrid 的数据跟着改变
procedure GridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
{ Private declarations }
public
{ Public declarations }
end;
TControlAccess = class(TControl);
var
DataParamForm: TDataParamForm;
flag:integer;
tempstr,tempdepartment:string;
tempstr2,tempdepartment2:string;
param:integer;
implementation
uses public_unit, DataModul;
{$R *.dfm}
procedure TDataParamForm.ControlTheEnablePro(isSaved: Boolean);
begin
if isSaved = true then
begin
panel4.Enabled:=true; Panel5.Enabled:=true;
panel1.Enabled:=false;
BitBtn2.Enabled:=True; BitBtn3.Enabled:=true;
BitBtn4.Enabled:=true; BitBtn7.Enabled:=true;
BitBtn5.Enabled:=false; BitBtn6.Enabled:=false;
edit1.Enabled:=false; edit2.Enabled:=false;
edit3.Enabled:=false; edit4.Enabled:=false;
edit5.Enabled:=false;
//********************************************************
end
else
begin
panel4.Enabled:=false; Panel5.Enabled:=false;
panel1.Enabled:=true;
BitBtn2.Enabled:=false; BitBtn3.Enabled:=false;
BitBtn4.Enabled:=false; BitBtn7.Enabled:=false;
BitBtn5.Enabled:=true; BitBtn6.Enabled:=true;
edit1.Enabled:=true; edit2.Enabled:=true;
edit3.Enabled:=true; edit4.Enabled:=true;
edit5.Enabled:=true;
//********************************************************
end;
end;
procedure TDataParamForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := caFree;
DataParamForm := nil;
flag:=0;
tempstr:='';
tempdepartment:='';
tempstr2:='';
tempdepartment2:='';
param:=0;
end;
procedure TDataParamForm.FormCreate(Sender: TObject);
begin
//panel6.Visible:=false; //添加数据类型的面板
adoquery1.Close;
adoquery1.Open;
enable(self);
ControlTheEnablePro(true);
StatusBar1.Panels[0].Text :=' 操作用户管理窗口';
StatusBar1.Panels[1].Text :=' 请慎重操作 !';
// 鼠标滚动,DBGRID数据集跟着滚动
TControlAccess(DBGrid1).OnMouseWheel := GridMouseWheel;
TControlAccess(DBGrid2).OnMouseWheel := GridMouseWheel;
//*********************************************************
end;
procedure TDataParamForm.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State then Exit; //隔行改变网格背景色:
if adoquery1.RecNo mod 2 = 0 then
(Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
else
(Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
//定义网格线的颜色:
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
with (Sender as TDBGrid).Canvas do //画 cell 的边框
begin
Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
Pen.Color := clbtnface; //定义画笔颜色(兰色)
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色
end;
end;
procedure TDataParamForm.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if gdSelected in State then Exit; //隔行改变网格背景色:
if adoquery2.RecNo mod 2 = 0 then
(Sender as TDBGrid).Canvas.Brush.Color := clinfobk //定义背景颜色
else
(Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
//定义网格线的颜色:
DBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
with (Sender as TDBGrid).Canvas do //画 cell 的边框
begin
Pen.Color := $00ff0000; //定义画笔颜色(蓝色)
MoveTo(Rect.Left, Rect.Bottom); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画蓝色的横线
Pen.Color := clbtnface; //定义画笔颜色(兰色)
MoveTo(Rect.Right, Rect.Top); //画笔定位
LineTo(Rect.Right, Rect.Bottom); //画绿色
end;
end;
procedure TDataParamForm.GridMouseWheel(Sender: TObject; Shift: TShiftState;
WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
begin
TDBGrid(Sender).DataSource.DataSet.MoveBy(-WheelDelta div WHEEL_DELTA);
Handled := True;
end;
procedure TDataParamForm.ADOQuery1AfterScroll(DataSet: TDataSet);
var
sqlstr:string;
begin
edit1.Text:=adoquery1.fieldbyname('dtypeid').AsString;
edit2.Text:=adoquery1.fieldbyname('dtypename').AsString;
sqlstr:='select * from tdataparam where dtypeid='+quotedstr(adoquery1.fieldbyname('dtypeid').AsString);
Aquebytypeid(sqlstr);
ADOQuery2.Close;
ADOQuery2.Open;
//tempstr:=adoquery2.fieldbyname('dname').AsString;
//tempdepartment:=adoquery2.fieldbyname('dname').AsString;
// tempdepartment2:=adoquery2.fieldbyname('dname').AsString;
end;
procedure TDataParamForm.ADOQuery2AfterScroll(DataSet: TDataSet);
begin
edit3.Text:=adoquery2.fieldbyname('did').AsString;
edit4.Text:=adoquery2.fieldbyname('dtypeid').AsString;
edit5.Text:=adoquery2.fieldbyname('dname').AsString;
edit6.Text:=adoquery2.fieldbyname('dmemo').AsString;
//tempstr:=adoquery2.fieldbyname('dname').AsString;
//tempdepartment:=adoquery2.fieldbyname('dname').AsString;
// tempdepartment2:=adoquery2.fieldbyname('dname').AsString;
end;
procedure TDataParamForm.Aquebytypeid(str: string);
begin
adoquery2.Connection:=dm.ADOConnection1;
adoquery2.SQL.Text:=str;
DataSource2.DataSet:=adoquery2;
dbgrid2.DataSource:=DataSource2;
end;
procedure TDataParamForm.BitBtn2Click(Sender: TObject);
begin
if messagebox(handle,'您确定要增加吗?','提示',MB_YESNO + MB_ICONQUESTION)=ID_yes then
begin
flag:=0;
unenable(self);
ControlTheEnablePro(false);
edit5.Text:='';
edit6.Text:='';
edit3.Text:= GetUno; // 自动获取用户编号
edit4.Text:= edit1.Text;
edit3.Enabled:=false;
edit1.Enabled:=false;
edit4.Enabled:=false;
edit2.Enabled:=false;
end;
end;
function TDataParamForm.GetUno: string;
var
UnoQry: TADOQuery;
id: string;
begin
UnoQry := TADOQuery.Create(self);
with Unoqry do
begin
Connection := dm.ADOConnection1;
sql.Text := 'select max(did) as did from tdataparam';
Open;
id := fieldbyName('did').AsString;
if id='' then
id:='001'
else
id:=copy(inttostr(strtoint(id)+1001),2,4);
end;
Result := id;
UnoQry.Free;
end;
procedure TDataParamForm.BitBtn4Click(Sender: TObject);
begin
if messagebox(handle,'您确定要修改吗?','提示',MB_YESNO + MB_ICONQUESTION)=ID_yes then
begin
adoquery2.Open;
flag:=1;
unenable(self);
ControlTheEnablePro(false);
edit3.Enabled:=false;
edit2.Enabled:=false;
edit1.Enabled:=false;
edit4.Enabled:=false;
tempstr:=adoquery2.fieldbyname('dname').AsString;
//tempdepartment:=adoquery2.fieldbyname('dname').AsString;
//tempdepartment2:=adoquery2.fieldbyname('dname').AsString;
{adoqry:=tadoquery.Create(self);
with adoqry do
begin
connection:=dm.ADOConnection1;
sql.Text:='select tcdepartment from TTeacher where tcdepartment='+quotedstr(edit5.Text);
open;
tempstr:=adoqry.FieldByName('tcdepartment').AsString;
end;
adoqry2:=tadoquery.Create(self);
with adoqry2 do
begin
connection:=dm.ADOConnection1;
sql.Text:='select tpost from TTeacher where tpost='+quotedstr(edit5.Text);
open;
tempstr2:=adoqry2.FieldByName('tpost').AsString;
end; }
end;
end;
procedure TDataParamForm.BitBtn5Click(Sender: TObject);
begin
enable(self);
ControlTheEnablePro(true);
end;
procedure TDataParamForm.BitBtn7Click(Sender: TObject);
begin
close;
end;
procedure TDataParamForm.BitBtn3Click(Sender: TObject);
var
sqlstr:string;
begin
if messagebox(handle,'您确定要删除吗?','提示',MB_YESNO + MB_ICONQUESTION)=ID_yes then
begin
sqlstr:='delete tdataparam where did='+quotedstr(edit3.Text);
MyexecSql(sqlstr,dm.ADOConnection1);
showmessage('删除成功!');
adoquery2.Close;
adoquery2.Open;
enable(self);
ControlTheEnablePro(true);
end;
end;
procedure TDataParamForm.BitBtn6Click(Sender: TObject);
var
sqlstr:string;
tmpqry:tadoquery;
begin
tmpqry:=Tadoquery.Create(nil);
with tmpqry do
begin
connection:=dm.ADOConnection1;
sqlstr:='select did,dname from tdataparam where dtypeid='+quotedstr(edit4.text);
sql.Text:=sqlstr;
open;
while not eof do
begin
if edit5.Text=Fieldbyname('dname').AsString then
begin
showmessage('输入名称重复,请重新输入!');
edit5.Text:='';
exit;
end;
next;
end;
tmpqry.Close;
tmpqry.Free;
end;
if edit5.Text='' then
begin
showmessage('名称不能为空,请输入你要增加的名称!');
edit5.SetFocus;
exit;
end;
if flag=0 then
begin
sqlstr:='insert into tdataparam(did,dtypeid,dname,dmemo) values ('
+quotedstr(edit3.Text)+','
+quotedstr(edit4.Text)+','
+quotedstr(edit5.Text)+','
+quotedstr(edit6.Text)+')';
MyexecSql(sqlstr,dm.ADOConnection1);
showmessage('添加成功!');
adoquery2.Close;
adoquery2.Open;
end
else
begin
if edit4.Text = '003' then
begin
sqlstr:='update TTeacher set tcdepartment='+quotedstr(edit5.Text)
+'where tcdepartment='+ quotedstr(tempstr);
MyexecSql(sqlstr,dm.ADOConnection1);
end
else
if edit4.Text = '002' then
begin
sqlstr:='update TTeacher set tpost='+quotedstr(edit5.Text)
+'where tpost='+quotedstr(tempstr);
MyexecSql(sqlstr,dm.ADOConnection1);
end;
sqlstr:='update tdataparam set dname='+quotedstr(edit5.Text)+
'where did='+quotedstr(edit3.Text);
MyexecSql(sqlstr,dm.ADOConnection1);
sqlstr:='update tdataparam set dmemo='+quotedstr(edit6.Text)+
'where did='+quotedstr(edit3.Text);
MyexecSql(sqlstr,dm.ADOConnection1);
showmessage('修改成功!');
adoquery2.Close;
adoquery2.Open;
adoquery1.Close;
adoquery1.Open;
end;
ADOQuery1AfterScroll(adoquery1);
ADOQuery2AfterScroll(adoquery2);
enable(self);
ControlTheEnablePro(true);
end;
procedure TDataParamForm.Label9Click(Sender: TObject);
begin
panel1.Enabled:=true;
end;
procedure TDataParamForm.Edit5KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
// tempdepartment:=edit5.Text;
// tempdepartment2:=edit5.Text;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -