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

📄 ufrm_user_1.pas

📁 完整的进销存系统。 设计文件及完整的源代码。 Delphi6.0
💻 PAS
📖 第 1 页 / 共 2 页
字号:
//  ***************************************
//  *    Program name :ufrm_user_1        *
//  *    AUTHOR       :Guo xuliang        *
//  *    Name         :郭许良         *
//  *    Date         :2005/05/18         *
//  *    Porgram type :主程序             *
//  ***************************************
{
Permission code:
A:ADD_group
U:UPDATE_group
D:DELETE_group

1:ADD_user
2:UPDATE_user
3:DELETE_user
4:Assign authorization
5:Delete authorization
6:Update authorization
//Attentation please
需要搭配 trigger 一起使用
FOR ORACLE
=================================================================================
1.
CREATE OR REPLACE TRIGGER DEL_ZC BEFORE DELETE ON ZC_FILE FOR EACH ROW
BEGIN
  DELETE FROM ZE_FILE WHERE ZE01 IN (SELECT ZD02 FROM ZD_FILE WHERE ZD01=:old.zc01);
  DELETE FROM ZD_FILE WHERE ZD01=:old.zc01;
  DELETE FROM ZE_FILE WHERE ZE01=:old.zc01;
END;

2.
CREATE OR REPLACE TRIGGER UPD_ZC AFTER UPDATE ON ZC_FILE FOR EACH ROW
BEGIN
  IF :new.ZC01<>:old.ZC01 THEN
     UPDATE ZD_FILE SET ZD01=:new.ZC01 WHERE ZD01=:old.ZC01;
	 UPDATE ZE_FILE SET ZE01=:new.ZC01 WHERE ZE01=:old.ZC01;
  END IF;
END;

3.
CREATE OR REPLACE TRIGGER DEL_ZD BEFORE DELETE ON ZD_FILE FOR EACH ROW
BEGIN
  DELETE FROM ZE_FILE WHERE ZE01=:old.ZD02;
END;

4.
CREATE OR REPLACE TRIGGER UPD_ZD AFTER UPDATE ON ZD_FILE FOR EACH ROW
BEGIN
  IF :new.ZD02<>:old.ZD02 THEN
    UPDATE ZE_FILE SET ZE01=:new.ZD02 WHERE ZE01=:old.ZD02;
  END IF;
END;

FOR SQLSERVER
=================================================================================
=================================================================================
}

unit ufrm_user_1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ToolWin, ImgList, ExtCtrls, dxExEdtr, dxCntner,
  dxTL, Buttons, dxDBCtrl, dxDBGrid, DB, ADODB, StdCtrls, Grids, DBGrids,
  DBTables,ufrm_level1;

type
  //Tfrm_user_1 = class(TForm)
  Tfrm_user_1 = class(Tfrm_level1)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    U1: TMenuItem;
    R1: TMenuItem;
    Exit1: TMenuItem;
    ImageList1: TImageList;
    A1: TMenuItem;
    U2: TMenuItem;
    N2: TMenuItem;
    D1: TMenuItem;
    A2: TMenuItem;
    U3: TMenuItem;
    N3: TMenuItem;
    D2: TMenuItem;
    A3: TMenuItem;
    U4: TMenuItem;
    N4: TMenuItem;
    D3: TMenuItem;
    CoolBar1: TCoolBar;
    add_group: TSpeedButton;
    edit_group: TSpeedButton;
    delete_group: TSpeedButton;
    add_user: TSpeedButton;
    edit_user: TSpeedButton;
    delete_user: TSpeedButton;
    StatusBar: TStatusBar;
    assign_authorization: TSpeedButton;
    edit_authorization: TSpeedButton;
    delete_authorization: TSpeedButton;
    DataSource1: TDataSource;
    ImageList2: TImageList;
    View1: TMenuItem;
    Fullexpand1: TMenuItem;
    FullCollapse1: TMenuItem;
    TreeView1: TTreeView;
    Splitter1: TSplitter;
    DBGrid1: TDBGrid;
    PopupMenu1: TPopupMenu;
    PopupMenu2: TPopupMenu;
    Addgroup1: TMenuItem;
    Editgroup1: TMenuItem;
    Deletegroup1: TMenuItem;
    N5: TMenuItem;
    Adduser1: TMenuItem;
    Edituser1: TMenuItem;
    Deleteuser1: TMenuItem;
    Assignauthorization1: TMenuItem;
    Editauthorization1: TMenuItem;
    Deleteauthorization1: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    ado_pub1: TQuery;
    ado_pub2: TQuery;
    md_file: TQuery;
    md_fileZE01: TStringField;
    md_fileZE02: TStringField;
    md_fileZE03: TStringField;
    md_filePermission: TStringField;
    md_fileprog_desc: TStringField;
    Tb_exit: TSpeedButton;
    procedure Exit1Click(Sender: TObject);
    procedure md_file1CalcFields(DataSet: TDataSet);
    procedure Fullexpand1Click(Sender: TObject);
    procedure FullCollapse1Click(Sender: TObject);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure add_groupClick(Sender: TObject);
    procedure edit_groupClick(Sender: TObject);
    procedure delete_groupClick(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure add_userClick(Sender: TObject);
    procedure edit_userClick(Sender: TObject);
    procedure delete_userClick(Sender: TObject);
    procedure edit_authorizationClick(Sender: TObject);
    procedure assign_authorizationClick(Sender: TObject);
    procedure delete_authorizationClick(Sender: TObject);
    procedure A1Click(Sender: TObject);
    procedure U2Click(Sender: TObject);
    procedure D1Click(Sender: TObject);
    procedure A2Click(Sender: TObject);
    procedure U3Click(Sender: TObject);
    procedure D2Click(Sender: TObject);
    procedure A3Click(Sender: TObject);
    procedure U4Click(Sender: TObject);
    procedure D3Click(Sender: TObject);
    procedure Addgroup1Click(Sender: TObject);
    procedure Editgroup1Click(Sender: TObject);
    procedure Deletegroup1Click(Sender: TObject);
    procedure Adduser1Click(Sender: TObject);
    procedure Edituser1Click(Sender: TObject);
    procedure Deleteuser1Click(Sender: TObject);
    procedure Assignauthorization1Click(Sender: TObject);
    procedure Editauthorization1Click(Sender: TObject);
    procedure Deleteauthorization1Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure TreeView1DblClick(Sender: TObject);
    procedure Tb_exitClick(Sender: TObject);
  private
    { Private declarations }
    g_md01,g_md02:string;
    u_prog:string;               //Program code
    u_user_permission:string;    //User  permission
    u_group_permission:string;   //Group permission
    //sql string
    u_sqlstr:string;             //Public sql string
  public
    { Public declarations }
    Procedure init;
    Procedure show_stus;
    Procedure refresh_md(key_str:string);
    //permission control function
    function au_init(p_prog:string):boolean;
    function cl_prichk(p_code:string):boolean;
  end;

var
  frm_user_1: Tfrm_user_1;

implementation

uses ufrm_user_group1,udm,ufrm_user_maintain, ufrm_authorization,
     uglobal_var,uglobal_fun;

{$R *.dfm}

function Tfrm_user_1.au_init(p_prog:string):boolean;
var l_flag1,l_flag2:boolean;
begin
  u_prog:=p_prog;
  u_user_permission:='';
  u_user_permission:='';
  result:=true;
  l_flag1:=true;
  l_flag2:=true;
  with dm do
    begin
      pub1.Close;
      pub1.sql.Clear;
      u_sqlstr:='SELECT * FROM ZE_FILE WHERE ZE01='''+g_user+''''
                +' AND ZE02='''+p_prog+'''';
      pub1.SQL.Add(u_sqlstr);
      pub1.Open;
      if pub1.Bof and pub1.Eof then
         l_flag1:=false
      else
         u_user_permission:=pub1.fieldbyname('ZE03').AsString;
      pub1.Close;
      pub1.SQL.Clear;
      u_sqlstr:='SELECT * FROM ZE_FILE WHERE ZE01='''+g_grup+''''
                +' AND ZE02='''+p_prog+'''';
      pub1.SQL.Add(u_sqlstr);
      pub1.Open;
      if pub1.Eof and pub1.Bof then
        l_flag2:=false
      else
        u_group_permission:=pub1.fieldbyname('ZE03').AsString;
      result:=l_flag1 or l_flag2;
    end;
  if trim(g_user)='admin' then result:=true;
end;


function Tfrm_user_1.cl_prichk(p_code:string):boolean;
begin
  result:=false;
  if pos(p_code,u_user_permission)>0 then result:=true;
  if pos(p_code,u_group_permission)>0 then result:=true;
  if trim(g_user)='admin' then result:=true;
end;

//in here we will fill the treeview
Procedure Tfrm_user_1.init;
var node,node2:Ttreenode;
    node_str:string;
begin
  //change dataconnection

  //clear all node
  node:=treeview1.Items.GetFirstNode;
  while node<>nil do
    begin
      node.Free;
      node:=treeview1.Items.GetFirstNode;
    end;
  //fill group/user data
  ado_pub1.Close;
  ado_pub1.SQL.Clear;
  ado_pub1.SQL.add('SELECT * FROM ZC_FILE');
  ado_pub1.Open;
  while not ado_pub1.Eof do
    begin
      node_str:=trim(ado_pub1.fieldbyname('ZC01').AsString)+' '+trim(ado_pub1.fieldbyname('ZC02').AsString);
      node:=treeview1.Items.Add(nil,node_str);
      node.ImageIndex:=0;
      node.SelectedIndex:=2;
      //fill user data
      ado_pub2.Close;
      ado_pub2.SQL.Clear;
      ado_pub2.sql.Add('SELECT * FROM ZD_FILE WHERE ZD01='''+ado_pub1.fieldbyname('ZC01').AsString+'''');
      ado_pub2.Open;
      while not ado_pub2.Eof do
        begin
          node_str:=trim(ado_pub2.fieldbyname('ZD02').AsString)+' '+trim(ado_pub2.fieldbyname('ZD03').AsString);
          node2:=treeview1.Items.AddChild(node,node_str);
          node2.ImageIndex:=1;
          node2.SelectedIndex:=3;
          ado_pub2.Next;
        end;
      ado_pub1.Next;
    end;
end;

procedure Tfrm_user_1.show_stus;
var node1:Ttreenode;
    s,s1,s2:string;
begin
  node1:=treeview1.Selected;
  if (node1=nil)or(treeview1.SelectionCount>1) then
   begin
    statusbar.Panels[0].Text:='';
    statusbar.Panels[1].Text:='';
    exit;
   end;
  s:=node1.Text;
  s1:=trim(copy(s,1,pos(' ',s)-1));
  s2:=trim(copy(s,pos(' ',s),length(s)));
  if node1.Parent=nil then
     begin
       statusbar.Panels[0].Text:='組別: '+s1;
       statusbar.Panels[1].Text:='組名稱: '+s2;
       edit_group.Enabled:=true;
       delete_group.Enabled:=true;
       edit_user.Enabled:=false;
       delete_user.Enabled:=false;
     end
  else
     begin
       statusbar.Panels[0].Text:='用戶: '+s1;
       statusbar.Panels[1].Text:='用戶名稱: '+s2;
       edit_group.Enabled:=false;
       delete_group.Enabled:=false;
       edit_user.Enabled:=true;
       delete_user.Enabled:=true;
     end;
  self.refresh_md(s1);
end;

procedure Tfrm_user_1.refresh_md(key_str:string);
begin
  md_file.Close;
  md_file.SQL.Clear;
  md_file.SQL.Add('SELECT * FROM ZE_FILE WHERE ZE01='''+key_str+'''');
  md_file.Open;
  g_md01:=key_str;
  //g_md01:=md_file.fieldbyname('MD01').AsString;
end;

procedure Tfrm_user_1.Exit1Click(Sender: TObject);
begin
  close;
end;

procedure Tfrm_user_1.md_file1CalcFields(DataSet: TDataSet);
var s,c,s_v:string;
    i:integer;
    l_sql:string;
    l_prog,l_desc:string;
begin
    s_v:='';
    s:=trim(md_file.fieldbyname('ZE03').AsString);
    try
    for i:=1 to length(s) do
      begin
        c:=copy(s,i,1);
        ado_pub1.Close;
        ado_pub1.SQL.Clear;
        l_sql:='SELECT * FROM ZB_FILE WHERE ZB01='''
               +md_file.fieldbyname('ZE02').AsString+''''+
               ' AND ZB02='''+c+'''';
        ado_pub1.sql.Add(l_sql);
        ado_pub1.Open;
        s_v:=s_v+','+trim(ado_pub1.fieldbyname('ZB03').AsString);
      end;
    s_v:=copy(s_v,2,length(s_v));
    md_file.FieldByName('Permission').Value:=s_v;

    //程序說明填寫
    l_prog:=md_file.fieldbyname('ZE02').AsString;
    g_sqlstr:='SELECT * FROM ZA_FILE WHERE ZA03='''+l_prog+'''';
    ado_pub1.Close;
    ado_pub1.sql.Clear;
    ado_pub1.SQL.Add(g_sqlstr);
    ado_pub1.Open;
    l_desc:=ado_pub1.fieldbyname('ZA04').Asstring;
    md_file.FieldByName('prog_desc').Value:=l_desc;

    finally
      ado_pub1.Close;
    end;
end;

procedure Tfrm_user_1.Fullexpand1Click(Sender: TObject);
begin

⌨️ 快捷键说明

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