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

📄 dataparam.pas

📁 DELPHI计算机科学系教务管理系统,带论文设计,不错的参考
💻 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 + -