`

通达OA公共函数

 
阅读更多

通达OA里面的公共函数(转)

只要在文件中包含了

<?

include_once("inc/utility_all.php");

?>

就可以调用如下函数:

add_affair($TO_ID,$CONTENT,$AFFAIR_TYPE,$TYPE)

/*

 

函数说明:增加个人事务

输入参数:$TO_ID $CONTENT $AFFAIR_TYPE:目的人;内容(自定);事务类别

*/

add_log($TYPE,$REMARK,$OPERATOR)

/*

函数说明:增加系统日志

输入参数:

$TYPE:系统日志类型(可以在系统参数设置里面的SYS_LOG_TYPE参数设定)

$REMARK:日志的其它说明

$OPERATOR:日志关联人

*/

add_notify_affair($connection,$FROM_ID,$TO_ID,$SEND_TIME,$NOTIFY_ID,$TYPE)

/*

函数说明:增加待办事宜中的通知事物

*/

affair_notify_sms()

/*

函数说明:发送通知短信

*/

affair_sms()

/*

函数说明:发送事物短信

*/

affair_sms_add($AFFAIR_TO_ID,$AFFAIR_CONTENT,$AFFAIR_DATA,$AFFAIR_TYPE,$AFFAIR_SMS=1,$LINK_URL="",$AFFAIR_FROM_ID="")

/*

 

函数名称:增加个人事务和发送短信

输入参数:

$AFFAIR_TO_ID

$AFFAIR_CONTENT

$AFFAIR_SMS

$LINK_URL

$AFFAIR_FROM_ID

$AFFAIR_TYPE 事务类别(必须)

$AFFAIR_DATA 事务附加数据(AFFAIR_TYPE结合起来控制事务和短信

        的删除)

*/

affair_sms_auto()

/*

 

函数名称:自动发送事务短信(用户第一次登陆使用)

输入参数:

*/

affair_sms_del($AFFAIR_TYPE,$AFFAIR_DATA,$AFFAIR_MEN="")

//删除事务和短信提醒

ArchJumpToNext($ARCH_FLOW_ID,$ARCH_ID)

/*

函数作用       跳转到下一事务

$ARCH_FLOW_ID     当前事务ID

$ARCH_ID       要跳转的公文ID

$OPERATOR       是否要处理当前事务

*/

attach_size($ATTACHMENT_ID,$ATTACHMENT_NAME)

/*获得附件的大小*/

calculate_compare_time($TIME1,$TIME2)

/*

 

函数名称:计算给定的时间差

输入参数:$TIME1:大的时间;$TIME2:要减去的时间

*/

check_ip($USER_IP,$TYPE)

/*

验证用户IP地址是否合法

*/

code_str_parent($TYPE_CODE,$CODE_INDEX_VALUE,$STR_CODE_FIELD_INDEX)

/*

函数名称:递归求解编码表上级路径

 

输入参数:

TYPE_CODE         :输入的字段CODE

CODE_INDEX_VALUE     :字段索引值

STR_CODE_FIELD_INDEX   :上级字段的扩展ID字符串,如果没有扩展则用0代替

输出:

字段的上级所有路径

用途:显示档案室的档案存放地址

*/

compare_date($DATE1,$DATE2)

//-- DATE1=DATE2 返回0,DATE1>DATE2 返回1,DATE1<DATE2 返回-1

compare_date_time($DATE_TIME1,$DATE_TIME2)

//-- DATE1=DATE2 返回0,DATE_TIME1>DATE_TIME2 返回1,DATE_TIME1<DATE_TIME2 返回-1

compare_time($TIME1,$TIME2)

//-- time1=time2 返回0,time1>time2 返回1,time1<time2 返回-1

copy_attach($ATTACHMENT_ID_OLD,$ATTACHMENT_NAME,$ATTACHMENT_SORT = "copyed_file")

//--------------复制附件文件(旧版本使用!仅作旧版本保留)------------------------

copytofileattachment($ID_VALUE,$TYPE=1)

//-----------------------附件转存(新版本程序)------------------------

create_rand_no($RAND_NUM="")

//生成一个四位随机数

create_serial_no()

//创建随机流水号形如200604012344(后面四位数为随机数)

csubstr(&$str, $start=0, $long=0, $ltor=true, $cn_len=2)

/* 中文字符串截取函数

一些中文字符串截取函数经常有一些问题,例如在一些自动换行程序中

$a=12”;

经两次截取后,

csubstr($str,$a,0,2);

csubstr($str, $a, 2,2)

由于载取位置指向“中”的右字节,可能会是这样的结果

1, 2

用本函数会产生正确的结果

1, 2

*/

# start 开始位置,从0开始

# long = 0 则从start 一直取到字符串尾

# ltor = true 时从左到右取字符,false 时到右到左取字符

# $cn_len 中文字符按字节取还是字数取,如果按字数取,则一个中文当一个字节计算

DateAdd($interval, $number, $date)

/**

*

* DateAdd(interval,number,date)

* 返回已添加指定时间间隔的日期。

* Inetrval为表示要添加的时间间隔字符串表达式,例如分或天

* number为表示要添加的时间间隔的个数的数值表达式

* Date表示日期

*

* Interval(时间间隔字符串表达式)可以是以下任意值:

* yyyy year

* q Quarter季度

* m Month

* y Day of year一年的数

* d Day

* w Weekday一周的天数

* ww Week of year

* h Hour小时

* n Minute

* s Second

* wyd的作用是完全一样的,即在目前的日期上加一天,q3个月,ww7天。

*/

DateDiff ($interval, $date1,$date2)

/**

* DateDiff(interval,date1,date2)

* 返回两个日期之间的时间间隔

* intervals(时间间隔字符串表达式)可以是以下任意值:

*   w

*   d

*   h 小时

*   n 分钟

*   s

*/

decrypt_data($data,$passwd)

/*

解密数据函数

*/

del_ass_task($ASS_TASK_ID)

/*

----------删除考评任务--------

 

输入:

ASS_TASK_ID 考评任务ID

输出:无返回值

*/

del_menu_priv($MENU_FUNC_ID)

/*

----------部门权限的删除--------

 

输入:

MENU_FUNC_ID 要删除的权限ID

输出:无返回值

*/

delete_attach($ATTACHMENT_ID,$ATTACHMENT_NAME)

/*

删除附件

*/

delete_html_file($DOC_ID)

//删除该文件夹下面所有的文件

delete_office_file($DOC_ID)

//删除OFFICE文件

delete_user($USER_ID)

//删除用户

dept_long_name($DEPT_ID)

//-- 递归求解完整的多级部门名称 --

dept_parent_name($DEPT_ID,$TYPE=0)

//递归得到部门以及上级部门的名称

//--------TYPE=0返回全部部门路径;TYPE=1只返回顶级部门路径

encrypt_data($data,$passwd)

//加密数据

file_copy($F_ID)

    //作者:陈志明;

    //服务器上面的文件拷贝通用函数(文件按日期目录摆放)

    //成功返回文件ID,失败返回FALSE

file_del($F_ID)

    //删除文件2006-3-23 15:17

    //成功返回TRUE,失败返回FALSE

file_info($F_ID)

//获得文件的基本信息

//输出:$FILE_INFO=array(ATTACHMENT_PATH=>$FILE_PATH,ATTACHMENT_ID=>$ATTACHMENT_ID,ATTACHMENT_NAME=>$ATTACHMENT_NAME,F_OWER=>$F_OWER,F_TIME=>$F_TIME1,ATTACHMENT_SIZE=>$ATTACHMENT_SIZE);

/*

$ATTACHMENT_PATH:附件文件路径

ATTACHMENT_ID:文件ID

ATTACHMENT_NAME:文件名称

F_OWER:文件创立者

F_TIME1:文件创建时间

ATTACHMENT_SIZE:文件大小

*/

file_is_exits($F_ID)

    //判断文件是否存在

    //成功返回TRUE,失败返回FALSE

file_new($ATTACHMENT,$ATTACHMENT_NAME)

    //作者:陈志明;

    //上传文件通用函数(文件按日期目录摆放)

    //成功返回文件ID,失败返回FALSE

file_path($F_ID)

//返回文件的路径程序

folder_long_path($VAL_SORT_ID,$VAL_FILE_SORT=2,$SEQ_TYPE=1)

/*

----------递归求解完整文件夹的路径--------

 

输入:

VAL_SORT_ID 文件储存ID

VAL_FILE_SORT 文件夹类型

SEQ_TYPE     路径的获得方法1从最末开始取;0最前开始取

输出:

HTML格式,完整文件路径以及超连接

*/

format_date($STRING1)

//-- 返回形如 199921

get_code_desc($VAL_CODE_ID,$VAL_CODE_INDEX="",$VAL_CODE_FIELD_TYPE="C",$CODE_FIELD_INDEX=0)

//---------取编码VALUE-------------

/*

 

输入:

CODE_ID     字段名

CODE_INDEX:     字段索引

CODE_FIELD_TYPE: 取值类型(默认C)

返回:

CODE_VALUE:    

*/

get_code_value($VAL_CODE_ID,$VAL_CODE_VALUE="",$VAL_CODE_FIELD_TYPE="C",$CODE_FIELD_INDEX=0,$CODE_FIELD_INDEX_OUT="")

//---------取编码INDEX-------------

/*

输入:

CODE_ID     字段名

CODE_VALUE:     字段值(默认空)

CODE_FIELD_TYPE: 字段类型(默认C)

返回:

CODE_INDEX:

*/

get_cur_time()

//------------------------取得当前日期的详细信息------------------

$tm_array=array(tm_sec=>$tm_sec,tm_min=>$tm_min,tm_hour=>$tm_hour,tm_mday=>$tm_mday,

          tm_mon=>$tm_mon,tm_year=>$tm_year,tm_wday=>$tm_wday,tm_yday=>$tm_yday);

return $tm_array;

get_dept_form_string($DEPT_ID_STRING)

//从形如"1,2,3"中的字符中取得部门名称

//输出字符串

get_name_form_string($USER_ID_STRING)

//从形如"admin,czm"中的字符中取得姓名

get_path_desc($PATHID,$SETUPNO=0)

//返回数组,路径的描述和加红显示20050307.如果为公用路径则用户名字返回为路径类型

get_user_info($USER_ID)

//返回用户信息

/*$USER_INFO=array(USER_NAME=>$USER_NAME,PRIV_DESC=>$PRIV_DESC,DEPT_NAME=>$DEPT_NAME,USER_PRIV=>$USER_PRIV,PRIV_NO=>$PRIV_NO);

return $USER_INFO;

USER_NAME:用户名称

PRIV_DESC:角色描述

DEPT_NAME:所在部门

USER_PRIV:用户权限

PRIV_NO:权限ID

*/

get_user_name($USER_ID)

//返回用户姓名

get_week($STRING1)

//-- 返回形如

gettime($d)

/**

* 转换为UNIX时间戳

*/

is_dept_parent($DEPT_ID,$PARENT_ID)

//-- 递归求解PARENT_ID是否是DEPT_ID的父节点 --

is_dept_priv($DEPT_ID)

//-- 查看$DEPT_ID是否属于本人管理范围 --

is_ip($IP)

//------------- 检查IP是否合法 -------------------------------

JudgeIsExistData($ASS_ASS_INDEX)

/*

//---------------考评系统类函数------------

 

1

评分次数我很赞同   子弹 + 10

 

小马哥收藏 分享 评分

回复 引用 订阅 TOP

 

 

范杰 发短消息

加为好友

范杰 (杰夫)当前离线

UID34 帖子77 精华0 积分210 子弹128 阅读权限60 在线时间93 小时 注册时间2008-9-7 最后登录2010-8-20 

上尉

 

UID34 帖子77 精华0 积分210 子弹128 阅读权限60 2#  发表于 2008-9-15 10:21 | 只看该作者 ----------判断该考评是否在本季度已经有数据--------

作者:陈志明/2006-2-8 9:54

输入:

ASS_ASS_INDEX 考评项目ID

输出:

T OR F

*/

jump_to_next_flow($ARCH_FLOW_ID)

/*

 

函数名称:公文流转中跳过到下一步

输入参数:$ARCH_FLOW_ID FLOW_ID

操作:

删除当前步骤

删除所有拥有该步骤的人的事务ID

更新下一步骤到当前步骤

增加下一步骤中人需要的事务ID和发送短信

*/

menu_priv_reset($MENU_FUNC_ID,$DEPT_TO_ID="ALL_DEPT",$DEPT_TO_ID_OLD="")

//针对部门权限菜单的重新设定

//2006-3-12 11:18

/*

输入参数:

MENU_FUNC_ID:菜单ID

DEPT_TO_ID:权限应用到的部门

DEPT_TO_ID_OLD:原有的应用部门

*/

my_dept_tree($DEPT_ID,$DEPT_CHOOSE,$POST_OP)

//------ 多级部门下拉菜单,支持按管理范围列出 --------

my_sort_tree($SORT_ID_CHOOSE,$FILE_SORT,$PARENT_ID,$LOGIN_DEPT_ID,$LOGIN_USER_ID,$SORT)

select_show_html($VAL_TYPE_CODE_PARENT,$VAL_TYPE_CODE_NAME,$VAL_CODE_VALUE_PARENT,$VAL_TYPE_CODE_PARENT_ID=0,$SHOW_EMPTY_SELECT=0,$SYS_PARA_QUERY_TYPE='',$SYS_PARA_QUERY_STR='',$SHOW_DATA_EMPTY=0)

/*

//-----------显示选择下拉列表框-------

函数用途:显示指定父字段的数据,并且可以下拉选择。

返回:TYPE_CODE_PARENT 值,以提供给用户选择数据

传入: VAL_TYPE_CODE_PARENT 父字段ID

    VAL_TYPE_CODE_PARENT_ID 父字段的扩展ID

    CODE_VALUE_PARENT.如果有值传入则返回原值,否则返回生成值

    VAL_TYPE_CODE_NAME SELECT 表单的名称默认为CODE_VALUE_PARENT

    SYS_PARA_QUERY_TYPE     查询类别

    SYS_PARA_QUERY_STR     查询数值

    SHOW_DATA_EMPTY   查询的时候如果结果为空显示空选项

    父字段的扩展ID.默认为0

*/    

show_parent_select_html($TYPE_CODE,$PARENT_CODE_VALUE,$VAL_CODE_VALUE,$SELECT_NAME="",$CODE_PARENT_ID=0,$SHOW_EMPTY_SELECT=0)

/*

 

函数名称:显示下拉列表框

输入参数:

$TYPE_CODE         需要显示的字段数据

$VAL_CODE_VALUE=""   字段传入值

$PARENT_CODE_VALUE="" 父字段传入值

$SELECT_NAME=""     显示的INPUT名称,不指定则为字段名称

$TYPE_CODE_THIS=""   是否显示更改按纽

$CODE_PARENT_ID=0     如果本字段有扩展ID传扩展ID

//-----------显示下拉列表框(根据传入的不同ID来生成下拉列表框)-----------

*/

show_select_html($TYPE_PARENT_CODE,$VAL_CODE_VALUE="",$SELECT_NAME="",$TYPE_CODE_THIS="",$TYPE_CODE_PARENT_ID=0,$SHOW_EMPTY_SELECT=0)

/*

//-----------显示下拉列表框(系统参数编辑时用)-----------

函数名称:显示下拉列表框

输入参数:

$TYPE_PARENT_CODE   需要显示字段的名称(必需)

$VAL_CODE_VALUE=""   传入字段值(可选)

$SELECT_NAME=""     显示的INPUT名称,不指定则为字段名称

$TYPE_CODE_THIS=""   是否显示更改按纽

$TYPE_CODE_PARENT_ID=0 如果父字段是扩展ID,则传入扩展ID

$SHOW_EMPTY_SELECT   是否显示空的选择项(查询时候用)

*/

sms_affair_add($VAL_ARCH_ID,$TO_ID,$ARCH_FLOW_ACTION)

/*

函数作用       增加事务显示和发送短信

$VAL_ARCH_ID     公文ID

$TO_ID         发送对象(字符串)

$ARCH_FLOW_ACTION 操作

*/

sms_affair_del($VAL_ARCH_ID,$TO_ID,$ARCH_FLOW_ACTION)

/*

函数作用       删除事务显示和发送取消短信

$VAL_ARCH_ID     公文ID

$TO_ID         发送对象(字符串)

$ARCH_FLOW_ACTION 操作

*/

split_sql_file($sql, $delimiter = ';')

/*

分析SQL语句,用;号分隔

*/

this_mon_year()

//返回当前年和月份

 

upload($ATTACHMENT,$ATTACHMENT_NAME,$ATTACHMENT_SORT = "other")

    //作者:SOGO;修改SUNSHINE

    //上传文件通用函数

    //成功返回附件ID,失败返回FALSE

    //旧版本兼容用

user_add_online()

//更新当前在线人数

validate_user_priv($VAL_PRIV_TYPE_ID,$VAL_PRIV_USER_ID,$VAL_PRIV_USER_PWD)

/*

----------后台用户权限验证函数--------

 

输入:

PRIV_TYPE_ID 要获得的权限类别

PRIV_USER_ID 登陆ID

PRIV_USER_PWD 登陆密码

输出:

成功返回true

失败返回false   验证成功或者失败标志

写入:

USER_LAST_LOGIN

LOG日志

验证过程

1、输入参数是否有误

2、用户名密码是否有误

3、用户是否有效

4、用户是否过期

5、是否指定了用户绑定IP

*/

需要包含的文件

include_once("inc/utility_sms1.php");

调用函数

function send_sms($connection,$FROM_ID,$TO_ID,$SMS_TYPE,$CONTENT,$CUR_DATE="",$LINK_URL="",$AFFIAR_ID="")

//只适合实时短信,日程提醒除外

输入参数:

FROM_ID:发信息人员

TO_ID:接收用户ID

SMS_TYPE:短信息的类型,在高级系统管理里面可以设定

CONTENT:短信息内容

CUR_DATE:发送时间。默认为当前时间

LINK_URL:短信点击时候连接的URL。默认空

AFFIAR_ID:短信关联的事务ID

 

 

 

//根据CODE_VALUE获得其名称的函数

get_code_desc("PUB_CODE",$VAL_PUB_CODE);

get_code_desc($VAL_CODE_ID,$VAL_CODE_INDEX="",$VAL_CODE_FIELD_TYPE="C",$CODE_FIELD_INDEX=0)

//根据CODE_NAME获得其值的函数

get_code_value($TYPE_CODE,$VAL_CODE_NAME,"C",$CODE_FIELD_INDEX)

逆向输出功能参数

$aa=get_code_value("SYS_FUNC_MEN_ID","新闻查看","C","56","57");

$CODE_FIELD_INDEX 为扩展编号,无扩展可不填写

//CODE_LIST里面取值且形成下拉列表(没有扩展)

show_select_html("SYS_LOG_TYPE",$VAL_CODE_VALUE)

//CODE_LIST里面取值且形成下拉列表(有扩展)

<?select_show_html("ARCH_SEND_UNIT","ARCH_SEND_UNIT","",28,1)?>

包括了要显示的数据(编辑)示例

show_select_html("ARCH_SEND_UNIT",$VAL_ARCH_SEND_UNIT,"","",28);

//取参数表值

SELECT *

FROM CODE_TABLE_CONTENT, CODE_LIST

WHERE 1

AND CODE_TABLE_CONTENT.TYPE_CODE_INDEX = CODE_LIST.TYPE_CODE_INDEX

AND CODE_LIST.TYPE_CODE = 'ARCH_SEND_UNIT'

新增程序方法参考

ARCH_BOX_PLACE

code_data/?TYPE_CODE=ARCH_PIGE_TIME_LIMIT

ARCH_BOX_ID       ARCH_BOX_CASE

取昨天

$yestorday = date("Y-m-d",mktime (0,0,0,date("m") ,date("d")-1,date("Y")));

根据ID字符串取人名

get_name_form_string($CLASS_MANAGE_USER);

根据部门ID字符串取部门名称

function get_dept_form_string($DEPT_ID_STRING)//从形如"1,2,3"中的字符中取得部门名称

根据用户ID取姓名

function get_user_name($USER_ID)

添加和删除自动事务

//$AA=affair_sms_add("admin","吃饭了ddd","中午",1,1,"chifanss.php","admin");

function affair_sms_del($AFFAIR_TYPE,$AFFAIR_DATA,$AFFAIR_MEN="")

精简的时间显示

$VAL_ASS_TASK_CREATE_TIME=substr($ROW["ASS_TASK_CREATE_TIME"],5,-3);

MSSQL时间转换功能:

$price_time=date("Y-m-d H:i:s",strtotime($ROWDrugInfo["price_time"]));

//解析字符串

  $TOK=strtok($TO_ID_STR,",");

  while($TOK!="")

  {

      

  $TOK=strtok(",");

  }

//选取指定人员范围内的数据

(InStr(TO_ID,',$LOGIN_DEPT_ID,')>0 or InStr(TO_ID,'$LOGIN_DEPT_ID,')=1)

//简单的加密解密程序

encrypt_data($data,$passwd)

decrypt_data($data,$passwd)

  $LastInsertedId=mysql_insert_id();

  //随机生成6位数

srand((double)microtime()*1000000);

while(($USER_PWD=rand()%10000)<1000);

打开一个全屏窗口

script语法

function newfile(file_type)

{

URL="edit.php?FILE_TYPE="+file_type;

var a_w=window.screen.width;

var a_h=window.screen.height;

showModalDialog(URL,'通知内容编辑','dialogWidth:'+a_w+';dialogHeight:'+a_h+';dialogLeft:200px;dialogTop:150px;center:yes;help:yes;resizable:yes;status:yes')

}

对于按纽使用快捷键

ACCESSKEY="r"

计算年龄

mysql> SELECT name, (TO_DAYS(NOW())-TO_DAYS(birth))/365 FROM pet;

SELECT ROUND((TO_DAYS( NOW( ) ) - TO_DAYS( "1982-4-1" )) /365, 0)

最后一次插入值

$aa=mysql_insert_id();

function get_file_path($F_ID)

{

//返回文件的路径程序

 

$FILE_INFO=array(ATTACHMENT_PATH=>$FILE_PATH,ATTACHMENT_ID=>$ATTACHMENT_ID,ATTACHMENT_NAME=>$ATTACHMENT_NAME,F_OWER=>$F_OWER,F_TIME=>$F_TIME1,ATTACHMENT_SIZE=>$ATTACHMENT_SIZE);

 

在数据库中分页

if($PAGE_START!="")

$LIMIT_STR="LIMIT ".$PAGE_START.",2";

  $BEGIN_DATE = substr($BEGIN_DATE, -5);

  $BEGIN_DATE=ereg_replace ("-", "/", $BEGIN_DATE);

 

  $FILE_CREAT_TIME = substr($FILE_CREAT_TIME, 5,-3);

  $FILE_CREAT_TIME=ereg_replace ("-", "/", $FILE_CREAT_TIME);

SELECT         DATE_FORMAT(ARCH_EXA_TIME,'%Y-%m-%d') AS ARCH_EXA_TIME,

$TJ_DATE=date("Y")."".date("m")."".date("d")."";

去掉转义字符

$WHERE_SYMPTIOM_STR=stripcslashes($WHERE_SYMPTIOM_STR);

数据库分页

  //限制查询的数目

if($PAGE_START!="")

$LIMIT_STR="LIMIT ".$PAGE_START.",".$PAGE_SIZE;

else

$LIMIT_STR="LIMIT ".$PAGE_SIZE;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics