通达OA V12版本,好用的自定义函数

通达OA V12版本,好用的自定义函数

  • 后端
    • getBpmTbAllInfoCy

后端

getBpmTbAllInfoCy

/*
//2023年10月16日
功能:根据flow_id,或run_id,获取该流程的全部表名及描述,和字段及描述
返回值:$returnData=array('sortAndDesc'=>array('main'=>'表单名称','detail_828'=>'列表控件名称'),'bpmTbAllInfo'=>array('main'=>array('tableNameArr'=>array('bpm_data_537','bpm_data_537_child'//如果表单中有多行文本框时,则有子表),'tableColumArr'=>array('data_m18951'=>'申请日期','data_m18954'=>'报销人')                    ),'detail_828'=>array('tableNameArr'=>array('bpm_data_537_list_828',//如果存在列表控件'bpm_data_537_list_828_child'//如果列表控件中有多行文本框时,则有子表),'tableColumArr'=>array('data_m18984'=>'派车单号','data_m18985'=>'报告编号')),'detail_829'=>array('tableNameArr'=>array('bpm_data_537_list_829',//如果存在列表控件'bpm_data_537_list_829_child'//如果列表控件中有多行文本框时,则有子表),'tableColumArr'=>array('data_m19004'=>'派车单号','data_m19005'=>'报告编号'))))
*/
function getBpmTbAllInfoCy($run_id='',$flow_id=''){//流程表名前缀$tbNamePre='bpm_data_';$RUN_ID=$run_id;$FLOW_ID=$flow_id;//返回数据$returnData=array();//根据表名描述获取sort$returnData['sortAndDesc']=array();$returnData['bpmTbAllInfo']=array();//根据RUN_ID获取FlOW_IDif(empty($flow_id)){        $sql='select * from bpm_run where RUN_ID='.$RUN_ID.' limit 1';$res=exequery(TD::conn(),$sql);$row=mysqli_fetch_assoc($res);$FLOW_ID = $row['FLOW_ID'];}$tbNamePre=$tbNamePre.$FLOW_ID;$sortAndDesc=array();$bpmTbAllInfo=array();$sql='select * from bpm_variable_sort where FLOW_ID='.$FLOW_ID;$res=exequery(TD::conn(),$sql);while ($row=mysqli_fetch_assoc($res)) {$tableName='';$tableNameArr=array();$tableColumArr=array();if($row['TYPE']=='main'){$type='main';$tableName=$tbNamePre;}else{$type=$row['TYPE'].'_'.$row['ID'];$tableName=$tbNamePre.'_list_'.$row['ID'];}array_push($tableNameArr,$tableName);$sortAndDesc[$type]=$row['DESC'];$sql2='select * from bpm_variable where SORT_ID ='.$row['ID'];    $res2=exequery(TD::conn(),$sql2);$i=0;while ($row2=mysqli_fetch_assoc($res2)) {$tableColumArr[$row2['NAME']]=$row2['DESC'];if($i===0&&$row2['TYPE']=='text'){ //如果有一个控件类型为text,则存在xx_child子表$tableName=$tableName.'_child';array_push($tableNameArr,$tableName);$i++;}}sort($tableNameArr);asort($tableColumArr);$bpmTbAllInfo[$type]=array('tableNameArr'=>$tableNameArr,'tableColumArr'=>$tableColumArr);}$returnData['sortAndDesc']=$sortAndDesc;$returnData['bpmTbAllInfo']=$bpmTbAllInfo;return $returnData;
}# 前端
## 表单常用js
```javascript
//拼接当前地址
var pro = window.location.protocol;
var host = window.location.host;
var url = pro + "//" + host;
//向html中的head元素,追加标签
var headadd = document.getElementsByTagName("head")[0];
//追加link标签,引入css样式
var links = document.createElement('link');
links.href = '/static/layui/css/layui.css';
links.rel = 'stylesheet';
links.type = 'text/css';
//追加script标签,引入js
var scripts = document.createElement("script");
scripts.src = "/static/layui/layui.js";
scripts.type = "text/javascript";
headadd.appendChild(scripts);//自定义 解析地址栏的数据 的函数
function getWindonHref() {var sHref = window.location.href;//获取urlvar args = sHref.split('?');//从中间的?隔开存成数组if (args[0] === sHref) {return '';//?后面没有参数直接返回}var hrefarr = args[1].split('#')[0].split('&');//截取?和#之间的url,再根据&隔开每个参数存成数组待处理var obj = {};var tmp_str = "";for (var i = 0; i < hrefarr.length; i++) {hrefarr[i] = hrefarr[i].split('=');tmp_str = hrefarr[i][0].toLowerCase();obj[tmp_str] = hrefarr[i][1];}return obj;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flutter 知识集锦 | 监听与通知 ChangeNotifier

theme: cyanosis 1. 数据的提供者与消费者 今天想要和大家好好聊聊 ChangeNotifier 这个东西&#xff0c;从名字上来看它由 change(改变) 和 Notifier(通知器) 构成。打个比方&#xff1a; 有三个铁粉跟我说: "你发新文章的时候跟我说一声"。 之后我发布文章后&…

C++学习: 文件I/O

作者: 苏丙榅 原文链接: https://subingwen.cn/c/file/ 文章目录 1. 文件概述1.1 什么是文件I/O1.2 磁盘文件分类 2. 文件的打开和关闭2.1 文件指针2.2 打开文件 2.3 关闭文件3. 文件的读写3.1 按照字符读写文件3.1.1 写文件3.1.2 读文件3.1.3 EOF 3.2 按照行读写文件3.2.1 写文…

[架构之路-237]:目标系统 - 纵向分层 - 网络通信 - DNS的递归查询和迭代查询

目录 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 1.2 为什么需要DNS协议 1.3 DNS系统架构 二、DNS系统的查询方式 2.1 递归与迭代的比较 2.2 DNS递归查询 2.3 DNS迭代查询 一、DNS协议与DNS系统架构 1.1 什么是DNS协议 DNS&#xff08;Domain Name System&#xff…

2023年中国商业版服务器操作系统市场发展规模分析:未来将保持稳定增长[图]

服务器操作系统一般指的是安装在大型计算机上的操作系统&#xff0c;比如Web服务器、应用服务器和数据库服务器等&#xff0c;是企业IT系统的基础架构平台&#xff0c;也是按应用领域划分的三类操作系统之一。同时服务器操作系统也可以安装在个人电脑上。 服务器操作系统分类 …

WSL Ubuntu 22.04.2 LTS 安装paddlepaddle-gpu==2.5.1踩坑日记

环境是wsl的conda环境。 使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理&#xff1a; (1)PreconditionNotMetError: Cannot lo…

excel管理接口测试用例

闲话休扯&#xff0c;上需求&#xff1a;自动读取、执行excel里面的接口测试用例&#xff0c;测试完成后&#xff0c;返回错误结果并发送邮件通知。 分析&#xff1a; 1、设计excel表格 2、读取excel表格 3、拼接url&#xff0c;发送请求 4、汇总错误结果、发送邮件 开始实现…

Hive剔除某时间段进行时间点判断

业务中&#xff0c;遇到这样一个需求&#xff1a;需要判断在前一个节点业务操作后&#xff08;取前一节点的操作时间&#xff09;&#xff0c;判断后一节点操作是否在3个小时内完成&#xff0c;其中晚上17:00到第二天早上8:00不纳入计算范围。 思路&#xff1a;首先判断前一节点…

LeetCode24.两两交换链表中的节点

这道题还是比较简单&#xff0c;我看完题目的想法就是借助一个第三变量&#xff0c;来改变两个节点的指针的指向&#xff0c;比如我要改变1和2节点的指向&#xff0c;我用h1表示节点1&#xff0c;我创建一个新的节点ans&#xff0c;先拿ans指向节点2&#xff08;ans.next h1.n…

【面试高频题】难度 1/5,经典树的搜索(多语言)

题目描述 这是 LeetCode 上的 「109. 有序链表转换二叉搜索树」 &#xff0c;难度为 「中等」 Tag : 「二叉树」、「树的搜索」、「分治」、「中序遍历」 给定一个单链表的头节点 head&#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为高度平衡的二叉搜索树。 本题中&…

架构真题(五十四)

1、软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式&#xff0c;其中&#xff0c;在批量处理风格体系中&#xff0c;每个处理步骤都是单独程序&#xff0c;每一步必需在前一步结束才能开始&#xff0c;并且数据必需是完整性&#xff0c;以&#xff08;整体&am…

软件工程与计算(十四)详细设计中面向对象方法下的模块化

一.面向对象中的模块 1.类 模块化是消除软件复杂度的一个重要方法&#xff0c;每个代码片段相互独立&#xff0c;这样能够提高可维护性。在面向对象方法中&#xff0c;代码片段最重要的类&#xff0c;整个类的所有代码联合起来构成独立的代码片段。 模块化希望代码片段由两部…

CSS的布局 Day03

一、显示模式&#xff1a; 网页中HTML的标签多种多样&#xff0c;具有不同的特征。而我们学习盒子模型、使用定位和弹性布局把内容分块&#xff0c;利用CSS布局使内容脱离文本流&#xff0c;使用定位或弹性布局让每块内容摆放在想摆放的位置&#xff0c;让网站页面布局更合理、…

探索服务器潜能:创意项目、在线社区与其他应用

目录 一、部署自己的创意项目 优势&#xff1a; 劣势&#xff1a; 结论&#xff1a; 二、打造一款全新的在线社区 优势&#xff1a; 劣势&#xff1a; 结论&#xff1a; 三、其他用途 总结&#xff1a; 随着互联网的发展&#xff0c;越来越多的人开始拥有自己的服务器…

Android ViewBinding和DataBinding功能作用区别

简述 ViewBinding和DataBinding都是用于在 Android 应用程序中处理视图的工具&#xff0c;但它们有不同的作用和用途。 ViewBinding: ViewBinding 是 Android Studio 的一个工具&#xff0c;用于生成一个绑定类&#xff0c;能够轻松访问 XML 布局文件中的视图。ViewBinding 为…

服务器内存总量和内存条有差异是什么问题 103.239.244.X

服务器内存总量和内存条上标注的容量可能会存在一些差异&#xff0c;这是由于以下几个原因&#xff1a; 部分内存被保留给系统和其他硬件设备&#xff1a;在服务器中&#xff0c;一部分内存可能被保留给系统和其他硬件设备&#xff0c;比如显卡、网卡、RAID卡等。这些设备需要一…

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (>= 2:3.30)解决

ubuntu16.04安装vscode遇到的code 依赖于 libnss3 (> 2:3.30)&#xff1b;然而&#xff1a;系统中 libnss3:amd64 的版本为 2:3.28.4-0ubuntu0.16.04.14解决方法 一开始下载了最新版本的vscode&#xff0c;安装时出现了上面的错误状况&#xff0c;最新版本的依赖库版本过低的…

Idea怎么配置Maven才能优先从本地仓库获取依赖

网上的方法 : 在设置中搜索 Runner ,在VM Option中设置参数 -DarchetypeCataloginternal删除 解压后的依赖包中的 _remote.repositories m2e-lastUpdated.properties *.lastUpdated 文件。 上边都没有效果 最终的解决方法&#xff0c;修改maven配置文件settings.xml 主要两个…

mysql数据物理迁移

文章目录 一、mysql数据物理迁移1.1 物理迁移 一、mysql数据物理迁移 1.1 物理迁移 速度快&#xff0c;需要停机 进入数据库&#xff0c;查看数据存放位置&#xff1a; select datadir; 一般默认存放在/var/lib/mysql 停机数据库&#xff0c;防止有写入数据 systemctl stop …

LeetCode讲解篇之198. 打家劫舍

LeetCode讲解篇之198. 打家劫舍 文章目录 LeetCode讲解篇之198. 打家劫舍题目描述题解思路题解代码 题目描述 题解思路 该问题可以通过递推来完成 递推公式&#xff1a; 前n间房的最大金额 max&#xff08;前n-1间房的最大金额&#xff0c; 前n-2间房的最大金额第n-1间房的最…

MySQL学习(四)——事务与存储引擎

文章目录 1. 事务1.1 概念1.2 事务操作1.2.1 未设置事务1.2.2 控制事务 1.3 事务四大特性1.4 并发事务问题1.5 事务隔离级别 2. 存储引擎2.1 MySQL体系结构2.2 存储引擎2.3 存储引擎的特点2.3.1 InnoDB2.3.2 MyISAM2.3.3 Memory2.3.4 区别和比较 1. 事务 1.1 概念 事务 是一组…