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

📄 u_userpower.pas

📁 一个简单的学籍管理软件
💻 PAS
字号:
unit U_UserPower;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls, dbtables, U_Globalvar, Db, HGrids, HDBGrids;

type
  TFm_UserPower = class(TForm)
    DQuery: TQuery;
    DDS: TDataSource;
    Panel1: TPanel;
    DGrid: THDBGrid;
    Btn_Ok: TButton;
    Btn_Cancel: TButton;
    Bevel1: TBevel;
    DQuerys_rydm: TStringField;
    DQuerys_cddm: TStringField;
    DQueryb_zdqx: TStringField;
    DQueryb_dxqx: TStringField;
    tmQuery: TQuery;
    DUpSQL: TUpdateSQL;
    procedure DQuerys_cddmGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure DQueryb_zdqxSetText(Sender: TField; const Text: string);
    procedure DQueryb_zdqxGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure FormCreate(Sender: TObject);
    procedure DGridKeyPress(Sender: TObject; var Key: Char);
    procedure DGridDblClick(Sender: TObject);
  private
  public
  end;

var
  Fm_UserPower: TFm_UserPower;
function Show_UserPower(pCode: string): Boolean;
implementation

uses U_GlobalProc;

{$R *.DFM}

function Show_UserPower(pCode: string): Boolean;
begin
  Result := False;
  Fm_UserPower := TFm_UserPower.Create(Application);
  with Fm_UserPower do
  try
    DQuery.ParamByName('ps_rydm').AsString := pCode;
    DQuery.Prepare;
    DQuery.Open;
    //RefreshGridStyle(Fm_UserPower.DGrid);
    if ShowModal = mrOk then
    begin
      if DQuery.State in [dsEdit, dsInsert] then
        DQuery.Post;
      Fm_UserPower.DQuery.ApplyUpdates;
      Result := True;
      //  操作权限
      SetUserPower(S_UserCode);
    end;
  finally
    Fm_UserPower.Free;
  end;
end;

procedure TFm_UserPower.DQuerys_cddmGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin //
  if tmQuery.Locate('s_cddm', Sender.AsString, []) then
    Text := tmQuery.FieldByName('s_hzmc').AsString;
end;

procedure TFm_UserPower.DQueryb_zdqxSetText(Sender: TField;
  const Text: string);
begin //
  if Text = ' ' then
    Sender.AsString := '0'
  else
    Sender.AsString := '1';
end;

procedure TFm_UserPower.DQueryb_zdqxGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin //
  if Sender.AsString = '1' then
    Text := '√'
  else
    Text := ' ';
end;

procedure TFm_UserPower.FormCreate(Sender: TObject);
begin
  tmQuery.Open;
end;

procedure TFm_UserPower.DGridKeyPress(Sender: TObject; var Key: Char);
begin
  if Key <> ' ' then
  begin
    Key := #7;
    Exit;
  end;
  with DGrid do
  begin
    if (Columns[Col].Field.FieldName = 'b_zdqx') or
      (Columns[Col].Field.FieldName = 'b_dxqx') then
    begin
      DQuery.Edit;
      if Columns[Col].Field.AsString = '0' then
      begin
        Columns[Col].Field.AsString := '1';
        if (Columns[Col].Field.FieldName = 'b_dxqx') then
          DQuery.FieldByName('b_zdqx').AsString := '1';
      end
      else
      begin
        Columns[Col].Field.AsString := '0';
        if (Columns[Col].Field.FieldName = 'b_zdqx') then
          DQuery.FieldByName('b_dxqx').AsString := '0';
      end;
      DQuery.Post;
    end;
  end;
end;

procedure TFm_UserPower.DGridDblClick(Sender: TObject);
begin
  with DGrid do
  begin
    if (Columns[Col].Field.FieldName = 'b_zdqx') or
      (Columns[Col].Field.FieldName = 'b_dxqx') then
    begin
      DQuery.Edit;
      if Columns[Col].Field.AsString = '0' then
      begin
        Columns[Col].Field.AsString := '1';
        if (Columns[Col].Field.FieldName = 'b_dxqx') then
          DQuery.FieldByName('b_zdqx').AsString := '1';
      end
      else
      begin
        Columns[Col].Field.AsString := '0';
        if (Columns[Col].Field.FieldName = 'b_zdqx') then
          DQuery.FieldByName('b_dxqx').AsString := '0';
      end;
      DQuery.Post;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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