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

📄 zyqxpas.pas

📁 本软件是一套功能完整成熟的固定资产管理系统,具有固定资产管理系统的相应全部功能
💻 PAS
字号:
unit zyqxpas;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Grids, Db, DBTables, ADODB;

type
  Tzyqxform = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Panel4: TPanel;
    sour: TStringGrid;
    Panel5: TPanel;
    deti: TStringGrid;
    Panel6: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    czxmcx: TADOQuery;
    procedure detiClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure sourClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure detiDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zyqxform: Tzyqxform;

implementation

uses datapas;



{$R *.DFM}

procedure Tzyqxform.detiClick(Sender: TObject);
begin
IF (deti.col=1) and (DETI.CELLS[1,DETI.ROW]<>'  √') THEN
DETI.CELLS[1,DETI.ROW]:='  √' ELSE
DETI.CELLS[1,DETI.ROW]:='';
end;

procedure Tzyqxform.FormCreate(Sender: TObject);
begin
sour.ColWidths[0]:=sour.width;
deti.ColWidths[0]:=(deti.width*70) div 100;
deti.ColWidths[1]:=(deti.width*22) div 100-5;

end;

procedure Tzyqxform.FormShow(Sender: TObject);
var i:integer;
begin
with hjzcdata.zybmb do
begin
close;
open;
DisableControls;
first;
i:=0;
while not  eof do
begin
sour.cells[0,i]:=fieldbyname('职员姓名').asstring;
i:=i+1;
next;
end;
enableControls;
end;
sour.RowCount:=i;
with czxmcx do
begin
close;
prepared;
open;
end;
i:=0;
while not czxmcx.eof do
begin
deti.cells[0,i]:=czxmcx.fieldbyname('管理项').asstring;
i:=i+1;
czxmcx.next;
end;
deti.rowcount:=i;
sourClick(self);
end;



procedure Tzyqxform.sourClick(Sender: TObject);
var i:integer;
begin
for i:=0 to deti.rowcount-1 do
deti.cells[1,i]:='';
with czxmcx do
begin
close;
sql.clear;
sql.add('select b.职员姓名,c.管理项 from 职员权限表 a,职员编码表 b,管理编码表 c');
sql.add('where a.职员编码=b.职员编码 and a.管理编码=c.管理编码 and b.职员姓名=:zyxm');
parameters.parambyname('zyxm').value:=sour.cells[0,sour.row];
prepared;
open;
end;
if czxmcx.IsEmpty then
exit;
while not czxmcx.eof do
begin
for i:=0 to deti.RowCount-1 do
if deti.cells[0,i]=czxmcx.FieldByName('管理项').asstring then
//deti.cells[1,i]:='有权操作';
deti.cells[1,i]:='  √';
czxmcx.next;
end;

end;

procedure Tzyqxform.Button1Click(Sender: TObject);
var zybm,gnbm,i:integer;
begin
with czxmcx do
begin
close;
sql.clear;
sql.add('select 职员编码 from 职员编码表 where 职员姓名=:xm');
parameters.parambyname('xm').value:=sour.cells[0,sour.row];
prepared;
open;
end;
if czxmcx.IsEmpty then
exit;
zybm:=czxmcx.fields[0].asinteger;
for i:=0 to deti.RowCount-1 do
begin
//if deti.cells[1,i]='有权操作' then
IF DETI.CELLS[1,I]='  √' THEN
begin
//有权操作时先判断管理编码表中有无此项,若无则追加
with czxmcx do
begin
close;
sql.clear;
sql.add('select 管理编码 from 管理编码表 where 管理项=:gnx');
parameters.parambyname('gnx').value:=deti.cells[0,i];
prepared;
open;
end;
gnbm:=czxmcx.Fields[0].asinteger;
with czxmcx do
begin
close;
sql.clear;
sql.add('select * from 职员权限表 where 职员编码=:zybm and 管理编码=:gnbm');
parameters.parambyname('zybm').value:=zybm;
parameters.parambyname('gnbm').value:=gnbm;
prepared;
open;
end;
if czxmcx.IsEmpty then
with czxmcx do
begin
close;
sql.clear;
sql.add('insert into 职员权限表 values(:zybm,:gnbm)');
parameters.parambyname('zybm').value:=zybm;
parameters.parambyname('gnbm').value:=gnbm;
prepared;
execsql;
end;
end else
begin
//无权操作时先判断管理编码表中有无此项,若有则删除
with czxmcx do
begin
close;
sql.clear;
sql.add('select 管理编码 from 管理编码表 where 管理项=:gnx');
parameters.parambyname('gnx').value:=deti.cells[0,i];
prepared;
open;
end;
gnbm:=czxmcx.Fields[0].asinteger;
with czxmcx do
begin
close;
sql.clear;
sql.add('select * from 职员权限表 where 职员编码=:zybm and 管理编码=:gnbm');
parameters.parambyname('zybm').value:=zybm;
parameters.parambyname('gnbm').value:=gnbm;
prepared;
open;
end;
if not czxmcx.IsEmpty then
with czxmcx do
begin
close;
sql.clear;
//showmessage(inttostr(gnbm)+' '+inttostr(zybm)+' '+inttostr(i));
sql.add('delete from 职员权限表 where 职员编码=:zybm and 管理编码=:gnbm');
parameters.parambyname('zybm').value:=zybm;
parameters.parambyname('gnbm').value:=gnbm;
prepared;
execsql;
end;
end;
end;  //结束循环
messagedlg('保存权限设置成功!',mtconfirmation,[mbok],0);
end;

procedure Tzyqxform.detiDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
Var
  mShowStr: String;
  myRect: TRect;
begin
  mShowStr := deti.cells[ACol, ARow];
  if (Acol = deti.ColCount-1) then
  begin
    deti.Canvas.Font.Color := clRed;
    deti.Canvas.Font.Size:=12;
    deti.Canvas.Font.Name:='宋体';
    deti.Canvas.Font.Style:=[fsbold];
  end else
  begin
    deti.Canvas.Font.Color := clblack;
    deti.Canvas.Font.Size:=9;
    deti.Canvas.Font.Name:='宋体';
    deti.Canvas.Font.Style:=[];
  end;
  deti.Canvas.FillRect(Rect);  //清空
//准备要写的区域
  myRect := Rect;
  MyRect.Top := MyRect.Top + 2;
  myRect.Right := myRect.Right - 2;
  DrawText(deti.Canvas.Handle, PChar(mShowStr), Length(mShowStr), myRect, DT_CENTER);
end;

end.

⌨️ 快捷键说明

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