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

📄 deptfun.pas

📁 三層源碼,DELPHI寫的三層源碼,三層源碼,
💻 PAS
字号:
unit deptfun;

interface

uses SysUtils,Classes,adodb;
//-------------基本功能
function create_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function copy_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function delete_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function modify_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;


function create_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function delete_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
function modify_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;

procedure Query_deptinfo(params:WideString;out querys:tadoquery);

function check_authority_dept(funid,authority:string):boolean;

implementation
uses shareunit;

// 部门工种管理 6-10
function check_authority_dept(funid,authority:string):boolean;
begin
case strtointdef(funid,public_unkonw) of
   public_unkonw:          result:=true;
   public_add:             result:=authority[6]='1';
   public_modify:          result:=authority[7]='1';
   public_del:             result:=authority[8]='1';
   public_copy:            result:=authority[9]='1';

   public_add_temp:        result:=authority[6]='1';
   public_clear_temp:      result:=authority[7]='1';
   public_del_temp:        result:=authority[8]='1';
   else result:=true;
   end;
end;
//-------------基本功能
function create_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.Close;
querys.SQL.clear;
querys.sql.add('select count(*) as tmp from dept_list where dept=:ax');
querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
querys.Open;
if querys['tmp']=0 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;
   
   querys.close;
   querys.sql.clear;
   querys.sql.add('insert into dept_list(dept)');
   querys.sql.add('values(:ax)');
   querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
   querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='部门建立时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;

end;

function modify_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from dept_worktype where dept=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
querys.open;

if querys['tmp']=0 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

    querys.close;
    querys.sql.clear;
    querys.sql.add('update dept_list set dept=:ax where dept=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.execsql;

    querys.close;
    querys.sql.clear;
    querys.sql.add('update dept_worktype set dept=:ax where dept=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.execsql;

    querys.close;
    querys.sql.clear;
    querys.sql.add('update P_archives set dept=:ax where dept=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='部门修改时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;

function copy_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from dept_list where dept=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
querys.open;
if querys['tmp']=0 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

    querys.close;
    querys.sql.clear;
    querys.sql.add('insert into dept_list(dept)');
    querys.sql.add('values(:ax)');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
    querys.execsql;

    querys.close;
    querys.sql.clear;
    querys.sql.add('insert into dept_worktype(dept,work_type)');
    querys.sql.add('select :ax,work_type from dept_worktype where dept=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tnewuid');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='部门复制时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;

function delete_dept(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
    abc1,abc2:boolean;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.Close;
querys.SQL.clear;
querys.sql.add('select count(*) as tmp from dept_list where dept=:ax');
querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
querys.Open;
abc1:=querys['tmp']=1;

querys.Close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where dept=:ax');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
querys.open;
abc2:=querys['tmp']=0;
if not abc2 then outstr:='部门使用中不能删除';

if abc1 and abc2 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

   querys.close;
   querys.sql.clear;
   querys.sql.add('delete from dept_worktype where dept=:ax');
   querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
   querys.execsql;

   querys.close;
   querys.sql.clear;
   querys.sql.add('delete from dept_list where dept=:ax');
   querys.parameters.parambyname('ax').value:=getparamitem(params,'tuid');
   querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='部门删除时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;

function create_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from dept_worktype where dept=:ax and work_type=:ar');
querys.Parameters.parambyname('ax').value:=getparamitem(params,'tdept');
querys.Parameters.parambyname('ar').value:=getparamitem(params,'tuid');
querys.open;

if querys['tmp']=0 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

    querys.close;
    querys.sql.clear;
    querys.sql.add('insert into dept_worktype(dept,work_type)');
    querys.sql.add('values(:ax,:ar)');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tdept');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tuid');
    querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='工种建立时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;

function modify_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
begin
result:=false;
outstr:='记录已经存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from dept_worktype where dept=:ax and work_type=:ar');
querys.parameters.parambyname('ax').value:=getparamitem(params,'tdept');
querys.parameters.parambyname('ar').value:=getparamitem(params,'tnewuid');
querys.open;

if querys['tmp']=0 then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

    querys.close;
    querys.sql.clear;
    querys.sql.add('update dept_worktype set work_type=:ai where dept=:ax and work_type=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tdept');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.parameters.parambyname('ai').value:=getparamitem(params,'tnewuid');
    querys.execsql;

    querys.close;
    querys.sql.clear;
    querys.sql.add('update P_archives set work_type=:ai where dept=:ax and work_type=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tdept');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tolduid');
    querys.parameters.parambyname('ai').value:=getparamitem(params,'tnewuid');
    querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='工种修改时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;

function delete_work(params:WideString;out outstr:string;adoconn:TADOConnection):boolean;
var querys:tadoquery;
    abc1,abc2:boolean;
begin
result:=false;
outstr:='记录不存在!';
try
querys:=tadoquery.create(nil);
querys.Connection:=adoconn;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from dept_worktype where dept=:ax and work_type=:ar');
querys.Parameters.parambyname('ax').value:=getparamitem(params,'tdept');
querys.Parameters.parambyname('ar').value:=getparamitem(params,'tuid');
querys.open;
abc1:=querys['tmp']=1;

querys.close;
querys.sql.clear;
querys.sql.add('select count(*)as tmp from P_archives where dept=:ax and work_type=:ar');
querys.Parameters.parambyname('ax').value:=getparamitem(params,'tdept');
querys.Parameters.parambyname('ar').value:=getparamitem(params,'tuid');
querys.open;
abc2:=querys['tmp']=0;
if not abc2 then outstr:='工种使用中不能删除!';

if abc1 and abc2  then
   try
   adoconn.Connected:=true;
   adoconn.BeginTrans;

    querys.close;
    querys.sql.clear;
    querys.sql.add('delete from dept_worktype where dept=:ax and work_type=:ar');
    querys.parameters.parambyname('ax').value:=getparamitem(params,'tdept');
    querys.parameters.parambyname('ar').value:=getparamitem(params,'tuid');
    querys.execsql;

   adoconn.CommitTrans;
   result:=true;
   except
   adoconn.RollbackTrans;
   outstr:='工种删除时更新错误!';
   end;

finally
querys.close;
freeandnil(querys);
end;
end;


procedure Query_deptinfo(params:WideString;out querys:tadoquery);
var funid:integer;
begin
funid:=strtointdef(getparamitem(params,'funid'),public_unkonw);
case funid of
 public_list:
    begin
    querys.Close;
    querys.SQL.clear;
    querys.SQL.Add('select dept from dept_list');
    querys.open;
    end;

 public_infor:
    begin
    querys.Close;
    querys.SQL.clear;
    querys.SQL.Add('select * from dept_worktype where dept=:ax');
    querys.Parameters.ParamByName('ax').value:=getparamitem(params,'tuid');
    querys.open;
    end;
 end;

end;

end.

⌨️ 快捷键说明

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