首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >通达OA内置函数全攻略

通达OA内置函数全攻略

原创
作者头像
企业管理软件开发
发布2026-07-05 14:19:43
发布2026-07-05 14:19:43
1060
举报

一、引言

通达OA提供了丰富的内置函数库,涵盖通用基础接口、通用功能接口、组织机构相关接口、文件处理、邮件处理、短信发送等多个方面。掌握这些内置函数可以极大提高开发效率,避免重复造轮子。本文将系统介绍OA的内置函数分类、使用方法和实战技巧。

二、函数库总览

通达OA的内置函数按功能分为多个文件:

图表
图表

函数文件

功能分类

主要用途

utility.php

通用基础接口

消息提示、按钮、ID处理、IP获取

utility_all.php

通用功能接口

字符串处理、日志、系统参数、邮件发送

utility_org.php

组织机构接口

用户、部门、角色、权限管理

utility_sms1.php

短信接口

OA内部短信发送

utility_sms2.php

手机短信接口

手机短信发送

utility_file.php

文件处理接口

上传、下载、附件管理

utility_email.php

邮件接口

邮件收发管理

utility_calendar.php

日程接口

日程、任务管理

三、通用基础接口(utility.php)

3.1 Message() - 消息提示

代码语言:javascript
复制
Message($message, $url = "", $icon = "", $width = 300, $height = 160)

功能:显示消息提示框并跳转

参数说明

参数

类型

说明

message

string

提示消息内容

url

string

跳转URL,默认返回上一页

icon

string

图标类型(success/error/warning/info)

width

int

弹窗宽度

height

int

弹窗高度

示例

代码语言:javascript
复制
// 成功提示
Message(_("操作成功"), "index.php", "success");

// 错误提示
Message(_("操作失败"), "", "error");

// 提示后返回上一页
Message(_("删除成功"));

3.2 Button_Back() - 返回按钮

代码语言:javascript
复制
Button_Back($text = "")

功能:生成返回上一页的按钮

参数说明

参数

类型

说明

text

string

按钮文字,默认"返回"

示例

代码语言:javascript
复制
Button_Back(_("返回列表"));

3.3 find_id() - 获取ID

代码语言:javascript
复制
find_id($array, $id)

功能:从数组中查找指定ID的元素

参数说明

参数

类型

说明

array

array

待查找的数组

id

int

要查找的ID

返回值:找到的元素或false

示例

代码语言:javascript
复制
$users = array(
    array('uid' => 1, 'name' => '张三'),
    array('uid' => 2, 'name' => '李四')
);

$user = find_id($users, 1);
// 返回:array('uid' => 1, 'name' => '张三')

3.4 remove_id() - 移除ID

代码语言:javascript
复制
remove_id($array, $id)

功能:从数组中移除指定ID的元素

参数说明

参数

类型

说明

array

array

待处理的数组

id

int

要移除的ID

返回值:处理后的数组

示例

代码语言:javascript
复制
$users = array(
    array('uid' => 1, 'name' => '张三'),
    array('uid' => 2, 'name' => '李四')
);

$users = remove_id($users, 1);
// 返回:array(array('uid' => 2, 'name' => '李四'))

3.5 get_client_ip() - 获取客户端IP

代码语言:javascript
复制
get_client_ip()

功能:获取客户端真实IP地址

返回值:IP地址字符串

示例

代码语言:javascript
复制
$ip = get_client_ip();
echo "客户端IP:$ip";

四、通用功能接口(utility_all.php)

4.1 csubstr() - 中文字符串截取

代码语言:javascript
复制
csubstr($str, $start, $length, $charset = "utf-8")

功能:安全截取中文字符串,避免乱码

参数说明

参数

类型

说明

str

string

原字符串

start

int

起始位置

length

int

截取长度

charset

string

字符集,默认utf-8

返回值:截取后的字符串

示例

代码语言:javascript
复制
$str = "这是一段很长的中文文本";
$result = csubstr($str, 0, 10);
echo $result; // 输出:这是一段很长的中

4.2 is_ip() - IP地址验证

代码语言:javascript
复制
is_ip($ip)

功能:验证IP地址是否合法

参数说明

参数

类型

说明

ip

string

IP地址

返回值:true(合法)或false(非法)

示例

代码语言:javascript
复制
if (is_ip("192.168.1.1")) {
    echo "IP地址合法";
} else {
    echo "IP地址非法";
}

4.3 add_log() - 添加日志

代码语言:javascript
复制
add_log($type, $action, $detail = "")

功能:添加系统操作日志

参数说明

参数

类型

说明

type

string

日志类型

action

string

操作动作

detail

string

详细描述

示例

代码语言:javascript
复制
add_log("project", "add", "添加项目:项目管理系统");

4.4 get_code_name() - 获取代码名称

代码语言:javascript
复制
get_code_name($table, $code_field, $name_field, $code)

功能:根据代码值获取对应的名称

参数说明

参数

类型

说明

table

string

表名

code_field

string

代码字段名

name_field

string

名称字段名

code

mixed

代码值

返回值:名称字符串

示例

代码语言:javascript
复制
$status_name = get_code_name("project", "status", "status_name", 1);
echo $status_name; // 输出:已完成

4.5 dept_long_name() - 获取部门全称

代码语言:javascript
复制
dept_long_name($dept_id)

功能:获取部门的完整路径名称

参数说明

参数

类型

说明

dept_id

int

部门ID

返回值:部门全称字符串

示例

代码语言:javascript
复制
$dept_name = dept_long_name(5);
echo $dept_name; // 输出:总公司/技术部/开发组

4.6 get_sys_para() - 获取系统参数

代码语言:javascript
复制
get_sys_para($para_name)

功能:获取系统配置参数

参数说明

参数

类型

说明

para_name

string

参数名称

返回值:参数值

示例

代码语言:javascript
复制
$company_name = get_sys_para("company_name");
echo "公司名称:$company_name";

4.7 set_sys_para() - 设置系统参数

代码语言:javascript
复制
set_sys_para($para_name, $para_value)

功能:设置系统配置参数

参数说明

参数

类型

说明

para_name

string

参数名称

para_value

mixed

参数值

示例

代码语言:javascript
复制
set_sys_para("company_name", "通达科技有限公司");

4.8 send_mail() - 发送邮件

代码语言:javascript
复制
send_mail($to, $subject, $body, $from = "", $cc = "", $attachment = "")

功能:发送邮件

参数说明

参数

类型

说明

to

string

收件人邮箱

subject

string

邮件主题

body

string

邮件内容

from

string

发件人邮箱

cc

string

抄送邮箱

attachment

string

附件路径

示例

代码语言:javascript
复制
send_mail(
    "user@example.com",
    _("项目通知"),
    _("您有新的项目任务"),
    "admin@example.com",
    "cc@example.com",
    "/path/to/file.pdf"
);

五、组织机构接口(utility_org.php)

5.1 用户信息获取

5.1.1 GetUserNameById() - 根据ID获取用户名

代码语言:javascript
复制
GetUserNameById($uid)

参数$uid - 用户ID

返回值:用户姓名字符串

示例

代码语言:javascript
复制
$name = GetUserNameById(1);
echo "用户姓名:$name";

5.1.2 GetUserNameByUid() - 根据UID获取用户名

代码语言:javascript
复制
GetUserNameByUid($uid)

参数$uid - 用户UID

返回值:用户姓名字符串

5.2 部门信息获取

5.2.1 GetDeptNameById() - 根据ID获取部门名称

代码语言:javascript
复制
GetDeptNameById($dept_id)

参数$dept_id - 部门ID

返回值:部门名称字符串

示例

代码语言:javascript
复制
$dept_name = GetDeptNameById(10);
echo "部门名称:$dept_name";

5.2.2 is_dept_parent() - 判断是否为父部门

代码语言:javascript
复制
is_dept_parent($parent_id, $child_id)

功能:判断parent_id是否为child_id的上级部门

参数说明

参数

类型

说明

parent_id

int

父部门ID

child_id

int

子部门ID

返回值:true或false

示例

代码语言:javascript
复制
if (is_dept_parent(1, 5)) {
    echo "部门1是部门5的上级";
}

5.2.3 top_dept() - 获取顶级部门

代码语言:javascript
复制
top_dept($dept_id)

功能:获取指定部门的顶级部门ID

参数$dept_id - 部门ID

返回值:顶级部门ID

示例

代码语言:javascript
复制
$top_dept_id = top_dept(5);
echo "顶级部门ID:$top_dept_id";

5.3 角色信息获取

5.3.1 GetPrivNameById() - 根据ID获取角色名称

代码语言:javascript
复制
GetPrivNameById($priv_id)

参数$priv_id - 角色ID

返回值:角色名称字符串

5.4 权限管理

5.4.1 is_module_manager() - 判断是否为模块管理员

代码语言:javascript
复制
is_module_manager($uid, $module)

功能:判断用户是否为指定模块的管理员

参数说明

参数

类型

说明

uid

int

用户ID

module

string

模块名称

返回值:true或false

示例

代码语言:javascript
复制
if (is_module_manager($_SESSION['uid'], "project")) {
    echo "您是项目管理模块管理员";
}

5.4.2 set_priv_menu_priv() - 设置角色菜单权限

代码语言:javascript
复制
set_priv_menu_priv($priv_id, $menu_id, $priv)

功能:为角色设置菜单权限

参数说明

参数

类型

说明

priv_id

int

角色ID

menu_id

int

菜单ID

priv

int

权限值(0=无权限,1=有权限)

示例

代码语言:javascript
复制
set_priv_menu_priv(1, 100, 1); // 为角色1设置菜单100的权限

5.4.3 set_uid_menu_priv() - 设置用户菜单权限

代码语言:javascript
复制
set_uid_menu_priv($uid, $menu_id, $priv)

功能:为用户设置菜单权限

参数说明

参数

类型

说明

uid

int

用户ID

menu_id

int

菜单ID

priv

int

权限值

5.5 组织架构查询

5.5.1 GetUnionSetOfChildDeptId() - 获取子部门ID集合

代码语言:javascript
复制
GetUnionSetOfChildDeptId($dept_id)

功能:获取指定部门及其所有子部门的ID集合

参数$dept_id - 部门ID

返回值:部门ID数组

示例

代码语言:javascript
复制
$dept_ids = GetUnionSetOfChildDeptId(1);
print_r($dept_ids); // 输出:array(1, 2, 3, ...)

5.5.2 GetfunmenuByuserID() - 获取用户功能菜单

代码语言:javascript
复制
GetfunmenuByuserID($uid)

功能:获取用户有权限访问的功能菜单

参数$uid - 用户ID

返回值:菜单数组

六、短信接口

6.1 OA内部短信(utility_sms1.php)

6.1.1 send_sms() - 发送OA短信

代码语言:javascript
复制
send_sms($to_uid, $content, $from_uid = 0)

功能:发送OA内部短信

参数说明

参数

类型

说明

to_uid

int

接收人ID

content

string

短信内容

from_uid

int

发送人ID,默认0(系统)

返回值:true或false

示例

代码语言:javascript
复制
send_sms(2, _("您有新的任务需要处理"), 1);

6.1.2 delete_sms() - 删除短信

代码语言:javascript
复制
delete_sms($sms_id)

功能:删除指定短信

参数$sms_id - 短信ID

返回值:true或false

6.2 手机短信(utility_sms2.php)

6.2.1 send_mobile_sms_user() - 向用户发送手机短信

代码语言:javascript
复制
send_mobile_sms_user($uid, $content)

功能:向指定用户发送手机短信

参数说明

参数

类型

说明

uid

int

用户ID

content

string

短信内容

返回值:true或false

示例

代码语言:javascript
复制
send_mobile_sms_user(1, _("验证码:123456"));

6.2.2 send_mobile_sms() - 发送手机短信

代码语言:javascript
复制
send_mobile_sms($mobile, $content)

功能:直接向手机号发送短信

参数说明

参数

类型

说明

mobile

string

手机号码

content

string

短信内容

返回值:true或false

示例

代码语言:javascript
复制
send_mobile_sms("13800138000", _("验证码:123456"));

七、邮件接口(utility_email.php)

7.1 邮件统计

7.1.1 GetWebMailNumByUid() - 获取收件箱邮件数

代码语言:javascript
复制
GetWebMailNumByUid($uid)

功能:获取用户收件箱邮件数量

参数$uid - 用户ID

返回值:邮件数量

示例

代码语言:javascript
复制
$count = GetWebMailNumByUid(1);
echo "收件箱邮件数:$count";

7.1.2 GetSentMailNum() - 获取已发送邮件数

代码语言:javascript
复制
GetSentMailNum($uid)

功能:获取用户已发送邮件数量

参数$uid - 用户ID

返回值:邮件数量

7.2 邮件操作

7.2.1 get_email_data() - 获取邮件数据

代码语言:javascript
复制
get_email_data($mail_id)

功能:获取邮件详细信息

参数$mail_id - 邮件ID

返回值:邮件数组

7.2.2 delete_email() - 删除邮件

代码语言:javascript
复制
delete_email($mail_id)

功能:删除指定邮件

参数$mail_id - 邮件ID

返回值:true或false

7.2.3 remove_email() - 彻底删除邮件

代码语言:javascript
复制
remove_email($mail_id)

功能:彻底删除邮件(从数据库中删除)

参数$mail_id - 邮件ID

返回值:true或false

八、日程接口(utility_calendar.php)

8.1 日程操作

8.1.1 add_calendar() - 添加日程

代码语言:javascript
复制
add_calendar($uid, $title, $start_time, $end_time, $content = "")

功能:添加日程

参数说明

参数

类型

说明

uid

int

用户ID

title

string

日程标题

start_time

datetime

开始时间

end_time

datetime

结束时间

content

string

日程内容

返回值:日程ID或false

示例

代码语言:javascript
复制
$calendar_id = add_calendar(
    1,
    _("项目会议"),
    "2024-01-15 10:00:00",
    "2024-01-15 11:00:00",
    _("讨论项目进度")
);

8.1.2 update_calendar() - 更新日程

代码语言:javascript
复制
update_calendar($calendar_id, $title, $start_time, $end_time, $content = "")

功能:更新日程信息

参数说明

参数

类型

说明

calendar_id

int

日程ID

title

string

日程标题

start_time

datetime

开始时间

end_time

datetime

结束时间

content

string

日程内容

返回值:true或false

8.1.3 delete_calendar() - 删除日程

代码语言:javascript
复制
delete_calendar($calendar_id)

功能:删除指定日程

参数$calendar_id - 日程ID

返回值:true或false

8.1.4 get_list_data() - 获取日程列表

代码语言:javascript
复制
get_list_data($uid, $start_date, $end_date)

功能:获取用户在指定日期范围内的日程列表

参数说明

参数

类型

说明

uid

int

用户ID

start_date

date

开始日期

end_date

date

结束日期

返回值:日程数组

8.2 任务操作

8.2.1 insert_taskcenter() - 添加任务

代码语言:javascript
复制
insert_taskcenter($uid, $title, $content, $deadline)

功能:添加任务

参数说明

参数

类型

说明

uid

int

用户ID

title

string

任务标题

content

string

任务内容

deadline

datetime

截止时间

返回值:任务ID或false

九、函数使用最佳实践

9.1 函数调用流程

图表
图表

调用步骤

  1. 包含 auth.inc.php(推荐)或直接包含对应函数文件
  2. 调用所需函数
  3. 处理返回结果

9.2 函数引用方式

代码语言:javascript
复制
// 方式1:通过auth.inc.php间接包含(推荐)
include_once("inc/auth.inc.php");
// 已包含:utility.php, utility_all.php, utility_org.php等

// 方式2:直接包含特定函数文件
include_once("inc/utility_file.php");
include_once("inc/utility_sms2.php");

9.3 实战技巧

技巧1:消息提示后跳转

代码语言:javascript
复制
// 操作成功后跳转到列表页
if ($success) {
    Message(_("操作成功"), "index.php", "success");
    exit;
}

技巧2:获取用户信息

代码语言:javascript
复制
// 获取当前用户信息
$uid = $_SESSION['uid'];
$username = GetUserNameById($uid);
$dept_name = GetDeptNameById($_SESSION['dept_id']);

技巧3:发送通知

代码语言:javascript
复制
// 发送OA短信通知
send_sms($user_id, $message);

// 发送手机短信通知
send_mobile_sms_user($user_id, $message);

// 发送邮件通知
send_mail($email, $subject, $body);

技巧4:权限判断

代码语言:javascript
复制
// 判断用户是否为模块管理员
if (!is_module_manager($_SESSION['uid'], "project")) {
    Message(_("无权限访问"), "", "error");
    exit;
}

十、常见问题

10.1 函数未找到

现象:调用函数时报错"Call to undefined function"

解决方案

图表
图表

解决步骤

  • 确认已包含对应的函数文件
  • 检查函数名拼写是否正确
  • 确认OA版本是否支持该函数

10.2 短信发送失败

现象:调用短信函数返回false

解决方案

问题类型

排查方法

短信余额不足

检查短信服务配置

手机号格式错误

使用is_ip()类似方法验证

短信内容过长

截断内容或分条发送

服务未启动

检查OfficeMail服务状态

10.3 邮件发送失败

现象:调用send_mail()返回false

解决方案

问题类型

排查方法

SMTP配置错误

检查邮件服务器配置

收件人地址错误

验证邮箱格式

附件路径错误

检查文件是否存在

服务未启动

检查OfficeMail服务状态

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、引言
  • 二、函数库总览
  • 三、通用基础接口(utility.php)
    • 3.1 Message() - 消息提示
    • 3.2 Button_Back() - 返回按钮
    • 3.3 find_id() - 获取ID
    • 3.4 remove_id() - 移除ID
    • 3.5 get_client_ip() - 获取客户端IP
  • 四、通用功能接口(utility_all.php)
    • 4.1 csubstr() - 中文字符串截取
    • 4.2 is_ip() - IP地址验证
    • 4.3 add_log() - 添加日志
    • 4.4 get_code_name() - 获取代码名称
    • 4.5 dept_long_name() - 获取部门全称
    • 4.6 get_sys_para() - 获取系统参数
    • 4.7 set_sys_para() - 设置系统参数
    • 4.8 send_mail() - 发送邮件
  • 五、组织机构接口(utility_org.php)
    • 5.1 用户信息获取
    • 5.2 部门信息获取
    • 5.3 角色信息获取
    • 5.4 权限管理
    • 5.5 组织架构查询
  • 六、短信接口
    • 6.1 OA内部短信(utility_sms1.php)
    • 6.2 手机短信(utility_sms2.php)
  • 七、邮件接口(utility_email.php)
    • 7.1 邮件统计
    • 7.2 邮件操作
  • 八、日程接口(utility_calendar.php)
    • 8.1 日程操作
    • 8.2 任务操作
  • 九、函数使用最佳实践
    • 9.1 函数调用流程
    • 9.2 函数引用方式
    • 9.3 实战技巧
  • 十、常见问题
    • 10.1 函数未找到
    • 10.2 短信发送失败
    • 10.3 邮件发送失败
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档