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

📄 frm_filenoassignuser.~pas

📁 站长您好
💻 ~PAS
字号:
unit Frm_FileNoAssignUser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Frm_Cargo, XPMenu, StdCtrls, Buttons, Grids, BaseGrid, AdvGrid;

type
  TFrmFileNoAssignUser = class(TFrmCargo)
    GridUserID: TAdvStringGrid;
    GridFileNO: TAdvStringGrid;
    Label1: TLabel;
    Label2: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    procedure FormActivate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure GridUserIDRowChanging(Sender: TObject; OldRow,
      NewRow: Integer; var Allow: Boolean);
    procedure GridFileNOCanEditCell(Sender: TObject; ARow, ACol: Integer;
      var CanEdit: Boolean);
  private
  UserIDCurrentRow: Integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmFileNoAssignUser: TFrmFileNoAssignUser;

implementation

uses Frm_Main;

{$R *.dfm}

procedure TFrmFileNoAssignUser.FormActivate(Sender: TObject);
var
  Sqlstr: string;
  I: Integer;
begin
  inherited;
  SqlStr := 'Select UserID,LoginName from FuncRights';
  FrmMain.AddGridData(GridUserID, SqlStr);
  UserIDCurrentRow := 1;
  if GridUserID.Cells[0, 1] <> '' then
  begin
    SqlStr := 'Select '''' as state,a.FileNoRule,a.FileNoDesc From FileNoInfo a,UserFileNo b Where b.FileNoPre=a.FileNoPre and b.UserID=''' + GridUserID.Cells[0, 1] + '''';
    Frmmain.AddGridData(GridFileNO, SqlStr);
    if (GridFileNO.RowCount = 2) and (GridFileNO.Cells[1, 1] = '') then
    else
    begin
      for i := 1 to GridFileNO.RowCount - 1 do
        GridFileNO.AddCheckBox(0, i, True, false);
    end;
  end;
end;

procedure TFrmFileNoAssignUser.BitBtn1Click(Sender: TObject);
Var
  I:Integer;
  BeCheck:Boolean;
begin
  inherited;
  for i:=1 to GridFileNo.RowCount -1 do
    begin
       GridFileNo.GetCheckBoxState(0,i,BeCheck);
       BeCheck:=Not BeCheck;
       GridFileNo.SetCheckBoxState(0,i,BeCheck);
    end;
end;

procedure TFrmFileNoAssignUser.BitBtn2Click(Sender: TObject);
var
  I: Integer;
begin
  inherited;
  for i := 1 to GridFileNo.RowCount - 1 do
  begin
    GridFileNo.SetCheckBoxState(0, i, true);
  end;
end;

procedure TFrmFileNoAssignUser.BitBtn3Click(Sender: TObject);
var
  Sqlstr: string;
  I: Integer;
  CurrentRowCount: Integer;
begin
  inherited;
  if BitBtn3.Caption = '显示全部' then
  begin
    SqlStr := 'Select '''' as state,a.FileNoPre,a.FileNoDesc from FileNoInfo a,' +
      'UserFileNO b,FuncRights c where b.filenopre=a.filenopre and b.userid=c.userid and' +
      ' b.UserID=''' + GridUserID.Cells[0, UserIDCurrentRow] + '''';
    FrmMain.AddGridData(GridFileNO, SqlStr);
    if (GridFileNO.RowCount = 2) and (GridFileNO.Cells[1, 1] = '') then
    else
    begin
      for I := 1 to GridFileNO.RowCount - 1 do
      begin
        GridFileNO.AddCheckBox(0, I, True, false);
      end;
    end;
    CurrentRowCount := GridFileNO.RowCount;
    if (CurrentRowCount = 2) then
    begin
      if GridFileNO.Cells[1, 1] = '' then
        CurrentRowCount := 1
      else
        CurrentRowCount := 2;
    end;

    SqlStr := 'Select '''' as state,a.FileNoPre,a.FileNoDesc from FileNoInfo a where a.filenopre not in (select ' +
      'FileNOPre from userfileno where userid=''' + GridUserID.Cells[0, UserIDCurrentRow] + ''')';
    FrmMain.AddGridData(GridFileNO, SqlStr, 1, True);
    if (GridFileNO.RowCount = 2) and (GridFileNO.Cells[1, 1] = '') then
    else
    begin
      for I := CurrentRowCount to GridFileNO.RowCount - 1 do
      begin
        GridFileNO.AddCheckBox(0, I, false, false);
      end;
    end;
    BitBtn3.Caption := '显示已选中';
  end
  else
  begin
    BitBtn3.Caption := '显示全部';
    SqlStr := 'Select '''' as state,a.FileNoPre,a.FileNoDesc from FileNoInfo a,' +
      'UserFileNO b,FuncRights c where b.filenopre=a.filenopre and b.userid=c.userid and' +
      ' b.UserID=''' + GridUserID.Cells[0, UserIDCurrentRow] + '''';
    FrmMain.AddGridData(GridFileNO, SqlStr);
    if (GridFileNO.RowCount = 2) and (GridFileNO.Cells[1, 1] = '') then
    else
    begin
      for i := 1 to GridFileNo.RowCount - 1 do
      begin
        GridFileNO.AddCheckBox(0, i, true, false);
      end;
    end;
  end;
end;

procedure TFrmFileNoAssignUser.GridUserIDRowChanging(Sender: TObject;
  OldRow, NewRow: Integer; var Allow: Boolean);
var
  SqlStr: string;
  i: Integer;
begin
  inherited;
  UserIDCurrentRow := NewRow;
  SqlStr := 'Select '''' as state,a.FileNoPre,a.FileNoDesc from FileNoInfo a,' +
    'UserFileNO b,FuncRights c where b.filenopre=a.filenopre and b.userid=c.userid and' +
    ' b.UserID=''' + GridUserID.Cells[0, UserIDCurrentRow] + '''';
  FrmMain.AddGridData(GridFileNO, SqlStr);
  if (GridFileNO.RowCount = 2) and (GridFileNO.Cells[1, 1] = '') then
  else
  begin
    for i := 1 to GridFileNo.RowCount - 1 do
    begin
      GridFileNO.AddCheckBox(0, i, true, false);
    end;
  end;
  BitBtn3.Caption:='显示全部';
end;

procedure TFrmFileNoAssignUser.GridFileNOCanEditCell(Sender: TObject; ARow,
  ACol: Integer; var CanEdit: Boolean);
begin
  inherited;
  if ACol = 0 then
    CanEdit := True
  else
    CanEdit := False;
end;

end.

⌨️ 快捷键说明

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