开发人员文档

平台说明文档
  • 开发流程

  • 开发的步骤是怎样的?

    开发的流程应该参照下图,按步骤进行快速开发,减少重复劳动,集中精力完成业务逻辑。

  • 数据库的设计要注意什么?

    设计数据库目前使用的是PowerDesigner

    表格命名规则:模块功能的表,用模块的英文首字母缩写加数据库名,如:WF_Article。表使用英文名。列的明明规则为表的前缀+表的首字母加英文名,如:WFA_ID。

    一定要添加表的备注

    一定要添加字段的Comment备注(通过代码生成数据库表的时候会自动添加到说明栏,代码生成器会根据说明栏添加备注和描述,如果没有导出会因为没有描述反射到列为空报错)

    请按照业务需求设置好外键。

  • 数据库生成后要注意什么?

    检测表是否有主键、索引。外键关系是否正确。每列是否有说明。

  • 快速编码

  • 如何生成页面?要注意什么?

    使用代码生成器(B/S页面)登录数据库后,选择表,选择参数进行快速生成。

    Ajax表单为异步提交,不通过submit进行提交,提交后页面不会刷新。普通表单为Submit提交。

    列表类型默认为Pqgrid列表,根据特殊需求也可选择Ztree(树结构),或者双结构Pqgrid+Ztree。

    搜索为自动生成时搜索的列名。树型显示需要主键和父级列名(因为有层级关系)

    生成模型不需要使用

    点击生成后,在生成器根目录下Create文件夹中会包含2个文件。其中Service为三层架构(IBLL为业务接口层)。表格名字的文件夹为列表页面和表单页面。

  • 页面生成之后要做什么?

    将生成之后的Service底层放入对应的底层类库。

    将生成之后的页面文件夹放入到对应的业务文件夹中。

    注:本框架使用的是反射实体类生成SQL语句。如果表结构有变动,只需要修改实体类即可。

    注意修改List页面后台的路径变量为实际的相对路径。

    List中第一个变量参数为排序字段

    页面配置完成之后,就可在系统的栏目设置中进行菜单配置了。

  • 程表单如何生成页面?如何设置?

    首先进入流程列表,点击流程表单管理。配置好表单字段之后,点击生成流程表单。即可生成流程表单页面。路径为根目录下的Create文件夹。

    注意:后期修改过表单页面,如果增加或减少了字段,需要在流程表单中对应修改表单字段。表单字段与前台的需要一致,否则会出现数据多余或者无法存入数据等问题。

    生成之后,需要在List页面配置实际的相对路径。Code为流程编号,通过栏目设置可进行配置(请确认为对应的流程)。如果后期有变动,该表单为其他流程,可修改栏目设置中工作流代码为对应流程。同时需要确定新的流程表单字段要和本页面表单的字段一致。

    工作流代码一定要选择和生成的流程一致的代码!

  • 列表页面结构?

    原理:列表使用Pqgrid列表插件进行展示。前台通过Jquery获取过滤条件控件的数据,通过Ajax提交到后台的GridBindList动作方法中。根据提交的过滤条件进行SQL语句过滤,查询数据的数据,再根据定制的方法将Table或者泛型转换为Json返回到Ajax结果中。Pqgrid接受后再进行显示。

    前端Pqgrid配置为:colM为标题列名,title为名称、width为宽度、align为对齐方式(center,right,left)、hidden为隐藏、render为自定义返回方法(显示)、ui.rowData[ui.colIndx]为当前列的值。格式为Json

    Sort为列名称,与colM顺序需要对应一致。

    后台为Ado.net数据库获取方法。

  • 公共js方法

  • 基础方法

    /*刷新*/
    function Refresh()

    /*只刷新*/
    function RefreshOnly()

    /*为空判断并提示*/
    function isNullOrEmpty(s, msg)

    /*只判断是否为空*/
    function isNullOrEmptyOnly(s)

    /*异步方法*/
    /*
    参数解释:
    param.types, 类型 默认POST
    param.urls, 路径
    param.datas, 参数
    param.dataTypes, 类型 默认TEXT
    param.async, 是否异步 默认是
    param.beforeSendFunc, 开始前方法
    param.successFunc, 成功方法 默认提示成功
    param.completeFunc, 完成方法
    param.ErrorFunc 失败方法 默认提示错误
    */
    function RunAjax(param)

    /*异步方法*/
    /*
    参数解释:
    urls, 路径
    datas, 参数
    successFunc, 成功方法 默认提示成功
    async 是否异步 默认为是
    */
    function GetAjax(urls, datas, successFunc, async)

    /*异步表单方法*/
    /*
    参数解释:
    urls, 路径
    successFunc, 成功方法 默认提示成功
    */
    function GetAjaxForm(urls, successFunc, FinalFunc, formId)
    /*
    /*websocket是否可用*/
    function WebSocketsExist()
    连接websocket
    url 地址
    onopen 打开方法
    onmessage 收到服务器发送数据
    onclose 关闭方法
    onerror 错误方法
    返回ws实例
    */
    function WebSocketsConnection(url, onopen, onmessage, onclose, onerror)
    /*
    发送websock消息
    ws 实例
    msg 消息
    */
    function WebSocketsSendData(ws, msg)
    /*查看消息*/
    function WebSocketsSeeState()

    /*checkbox全选*/
    function CheckBoxAll()

    /*checkbox全不选*/
    function CheckBoxAllNone()

    /*指定checkbox全选*/
    function checkAll(name)

    /*指定checkbox全不选*/
    function checkAllNone(name)

    /*获取指定checkbox选中值*/
    function checkBoxckValue(name)

    /*获取所有checkbox选中值*/
    function checkBoxckVal()

    /*直接打印*/
    function Print()

    /*打印列表*/
    function PrintView(url)

    /*通过异步获取html数据 展示页面打印*/
    /*
    参数说明
    url 地址
    */
    function PrintAJAX(url)

    /*textarea 字数限制*/
    function txtlength(id, lbid, maxlength)

    /*自动补全*/
    /*
    传参:
    id 控件ID 绑定对应事件
    LoadFunc 绑定时间 绑定下拉框事件
    */
    function ManagerAutocomplete(id, LoadFunc)

    /**加载表格
    end
    **/
    //自动补全表格
    var IndetableRow_autocomplete = 0;
    var scrollTopheight = 0;
    /*补全*/
    function autocomplete(Objkey, width, height, data, callBack)

    //转为中文加入单位
    function numToChinese(txt, sum)

    /*输入变切换*/
    function banEnterToTab(e)

    /*处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 */
    function banBackSpace(e)

    /*音效播放*/
    function music_play(url, music)

    //刷新 兼容代码
    function ListGrid()

    /*
    获取不带参数地址
    */
    function GetUrl()

    /********
    接收地址栏参数
    key:参数名称
    **********/
    function GetQuery(key)

    /*
    搜索过滤页面内容
    id 搜索框ID
    animateHideNShow 是否启用隐藏和显示区域时的动画效果
    focusOnLoad 插件启动时是否自动聚焦到输入框
    highlightColor 高亮背景色
    textColorForHighlights 高亮文字色
    caseSensitive 是否区分大小写
    hideNegatives 是否不显示无结果的区域
    parentLookupClass 元素的父框架Class,如果子元素中无结果则隐藏整个框架
    childBlockClass 要在哪些元素中显示,元素Class名
    */
    function TxtFilter(id, animateHideNShow, focusOnLoad, highlightColor, textColorForHighlights, caseSensitive, hideNegatives, parentLookupClass, childBlockClass)

    /*
    浏览器桌面通知方法(判断)
    title 标题
    msg 消息
    ntJson 方法合集
    ntJson.icon 通知图标 默认为感叹号
    ntJson.closeTime 通知关闭事件,默认为30秒(3000)
    ntJson.ntClick 点击通知事件
    ntJson.ntError 通知错误事件
    ntJson.ntShow 通知显示事件
    ntJson.ntClose 通知关闭事件
    */
    function showMsgNotification(title, msg, ntJson)

    /*
    自动滚动
    obj 具体的li标签对象#topList2 li
    objtime 时间周期 默认3000 3秒
    */
    function scroll_news(obj, objtime)
    /*
    字符截断
    str 输入字符
    len 长度判断,默认20
    返回截断后字符
    */
    function cutStr(str, len)

  • 加载动画相关

    /*加载载入动画*/
    function loadTips()

    /*加载载入动画 验证不通过则关闭*/
    function loadTipsClose(closeTips)

    /*加载载入动画 按钮禁用 openTips 打开载入动画*/
    function buttonClose(id, openTips)

    /*关闭载入动画 按钮启用 closeTips 关闭载入动画*/
    function buttonOpen(id, closeTips)

    /*关闭载入动画*/
    function tipsClose()

  • 弹框动画相关

    /*点击显示载入动画并跳转*/
    function HrefClick(url)

    /*点击显示载入动画并弹出*/
    function ArticleClick(url)

    /*公用设置方法*/
    function OpenSet(url, name, key)

    /*公用设置方法 多选*/
    function OpenSets(url, name, key)

    /*公用删除方法*/
    function OpenDelete(url, msg, key, cmsg, callback)
    function OpenDeleteUrl(urls, msg, cmsg, callback)

    /*
    公用添加方法
    urls 链接
    title 标题
    w 宽度,不设置宽高为全屏模式
    h 高度,不设置宽高为全屏模式
    */
    function OpenAdd(urls, title, w, h)
    /*
    公用查看方法
    urls 链接
    title 标题
    key 值
    w 宽度,不设置宽高为全屏模式
    h 高度,不设置宽高为全屏模式
    */
    function OpenLookup(url, title, key, w, h)

    /*
    公用查看方法 多选
    urls 链接
    title 标题
    key 值
    w 宽度,不设置宽高为全屏模式
    h 高度,不设置宽高为全屏模式
    */
    function OpenLookups(url, title, key, w, h)

    /*
    解决WINDOW.OPEN无法使用的情况
    URL 路径
    */
    function ChromeLink(url)

    /*弹出层*/
    /*
    参数解释:
    title 标题
    url 请求的url
    id 需要操作的数据id
    w 弹出层宽度(缺省调默认值)
    h 弹出层高度(缺省调默认值)
    */
    function layer_show(title, url, w, h)

    /*弹出右下角通知框*/
    /*
    参数说明
    url 路径或内容
    title 标题,默认为公告
    */
    function layer_notice(url, titles, bar)

    /*确认窗口*/
    /*
    参数
    title 标题
    funYes 确认方法
    funNo 取消方法
    btnYes 第一个按钮
    btnNo 第二个按钮
    */
    function layer_confirm(title, funYes, funNo, btnYes, btnNo)

    /*锁定*/
    function admin_lock()

    /*输入框*/
    function admin_text(url)

    /*打开后全屏*/
    function layer_full(title, url)

    /*查看消息*/
    function msg_see(url)

    /*关闭弹出框口*/
    function layer_close()

  • Pqgrid js方法

  • 表格方法

    /**加载表格函数
    Begin
    obj_ID:元素ID, url:请求地址, colM:表头名称, sort:要显示字段, PageSize:每页大小
    标题居中
    .pq-grid-header-table-div {
    text-align: center;
    }

    复杂表头
    {
    title: "日志性质", width: 200, align: "left", colSpan: 2, rowSpan: 2,
    colModel: [
    { title: "日志类型", width: 200, align: "left" },
    { title: "日志标题", width: 400, align: "left" }]
    },
    OtherJson.topVisible 显示头部 默认不显示
    OtherJson.bottomVisible 显示底部 默认显示
    OtherJson.SaveAction 直接编辑动作名 "UpdateInfo";
    OtherJson.SortAction 点击排序动作名 "ReSort";
    OtherJson.SortDir 排序序列传参 "SortDir";
    OtherJson.SortName 排序列名传参 "SortName";
    OtherJson.Multy 是否多选 默认true;
    **/

    function PQLoadGrid(obj_ID, url, colM, sort, PageSize, topVisible, bottomVisible)

    /**获取已选
    obj_ID:ID,Only:是否单选,number:列号
    **/
    function pqGridGetSelected(number, obj_ID, Only)

    /**表格自应高度
    obj:ID,lose_height:-高度,lose_width:-宽度
    **/
    function pqResize(lose_height, lose_width)

    /**表格自应高度
    obj:ID,lose_height:-高度,lose_width:-宽度
    **/
    function pqGridResize(obj, lose_height, lose_width)

    /**表格自应高度
    obj:ID,lose_height:-高度,lose_width:-宽度
    **/
    function pqGridResizefixed(lose_height, lose_width)

    /**获取表格列值
    obj_ID:ID,rowCode:行号,number:列号
    **/
    function GetPqGridRowValue(rowCode, number, obj_ID)

  • 跳转方法

    /*公用添加方法*/
    function PubAdd(urls, title)

    /*公用设置方法*/
    function PubSet(url, name)

    /*公用设置方法 多选*/
    function PubSets(url, name)

    /*公用删除方法*/
    function PubDelete(url, msg, number, cmsg, callback)

    /*公用查看方法*/
    function PubLookup(url, title, w, h, number)

    /*公用查看方法 多选*/
    function PubLookups(url, title)

  • 数据库方法类

  • Dot.Command 数据库操作方法

    BaseSql.S 为操作业务库

    BaseSqlFrame.S 为操作框架库


    /// |summary|
    /// 执行SQL语句
    /// |param name="SqlStr"|SQL语句|/param|
    public int Execute(string SqlStr)

    /// |summary|
    /// 执行SQL语句
    /// |param name="SqlStr"|SQL语句|/param|
    public int Execute(StringBuilder SqlStr)

    /// |summary|
    /// 批量执行
    /// |param name="SqlStr"|批量SQL语句|/param|
    /// |param name="ht"|批量参数|/param|
    /// |returns||/returns|
    public int BatchExecute(StringBuilder[] SqlStr, object[] ht)

    /// |summary|
    /// 获取值
    /// |param name="SqlStr"|SQL语句|/param|
    /// |returns||/returns|
    public object GetObject(string SqlStr)

    /// |summary|
    /// 获取DataTable
    /// |param name="SqlStr"|SQL语句|/param|
    /// |returns||/returns|
    public DataTable GetDataTable(string SqlStr)

    /// |summary|
    /// 获取DataTable
    /// |param name="SqlStr"|SQL语句|/param|
    /// |param name="param"|参数|/param|
    /// |returns||/returns|
    public DataTable GetDataTable(StringBuilder SqlStr, SqlParam[] param = null)

    /// |summary|
    /// 获取DataSet
    /// |param name="SqlStr"|SQL语句|/param|
    /// |returns||/returns|
    public DataSet GetDataSet(string SqlStr)

    /// |summary|
    /// 执行SQL语句 存储过程
    /// |param name="SqlStr"|SQL语句|/param|
    /// |param name="ht"|参数|/param|
    public int ExecuteProc(string SqlStr, Hashtable ht)

    /// |summary|
    /// 批量执行 存储过程
    /// |param name="SqlStr"|批量SQL语句|/param|
    /// |param name="ht"|批量参数|/param|
    /// |returns||/returns|
    public int BatchExecuteProc(string[] SqlStr, object[] ht)

    /// |summary|
    /// 获取DataTable 存储过程
    /// |param name="SqlStr"|SQL语句|/param|
    /// |param name="ht"|参数|/param|
    /// |returns||/returns|
    public DataTable GetDataTableProc(string SqlStr, Hashtable ht)

    /// |summary|
    /// 获取DataSet 存储过程
    /// |param name="SqlStr"|SQL语句|/param|
    /// |param name="ht"|参数|/param|
    /// |returns||/returns|
    public DataSet GetDataSet(string SqlStr, Hashtable ht)

    /// |summary|
    /// 插入数据
    /// |param name="TableName"|表明|/param|
    /// |param name="ht"|HashTable数据|/param|
    public int Insert(string TableName,Hashtable ht)

    /// |summary|
    /// 插入数据
    /// |param name="TableName"|表明|/param|
    /// |param name="pkName"|Where列名|/param|
    /// |param name="pkValue"|Where列值|/param|
    /// |param name="ht"|HashTable数据|/param|
    public int Update(string TableName, string pkName, string pkValue, Hashtable ht)

    /// |summary|
    /// 删除数据
    /// |param name="TableName"|表明|/param|
    /// |param name="pkName"|Where列名|/param|
    /// |param name="pkValue"|Where列值|/param|
    public int Delete(string TableName, string pkName, string pkValue)

    /// |summary|
    /// 插入数据
    /// |param name="TableName"|表明|/param|
    /// |param name="pkName"|Where列名|/param|
    /// |param name="pkValue"|Where列值|/param|
    public int BatchDelete(string TableName, string pkName, List|object|
    pkValue)


    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns|返回Hashtable|/returns|
    public Hashtable GetHashtable(string tableName, string pkName, string pkVal)

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|参数|/param|
    /// |returns|返回Hashtable|/returns|
    public Hashtable GetHashtable(string tableName, Hashtable ht)

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|参数|/param|
    /// |param name="where"|额外条件或排序|/param|
    /// |returns|返回Hashtable|/returns|
    public Hashtable GetHashtable(string tableName,Hashtable ht, string where)

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|返回Hashtable|/returns|
    public Hashtable GetHashtable(string tableName, string where, List|sqlparam|
    param)


    /// |summary|
    /// 分页获取数据,返回DataTable
    /// |param name="sql"|SQL语句|/param|
    /// |param name="orderField"|排序字段|/param|
    /// |param name="orderType"|排序类型|/param|
    /// |param name="pageIndex"|当前页|/param|
    /// |param name="pageSize"|页面大小|/param|
    /// |param name="count"|返回参数,共多少条|/param|
    /// |returns|返回DataTable|/returns|
    public DataTable GetHashtable(string sql, string orderField, string orderType, int pageIndex, int pageSize, ref int count)

    /// |summary|
    /// 获取最大编号
    /// |param name="TableName"|表名|/param|
    /// |param name="Key"|主键|/param|
    /// |returns||/returns|
    public object GetMax(string TableName, string Key)

    /// |summary|
    /// 获取记录总数
    /// |param name="TableName"|表名|/param|
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数|/param|
    /// |returns||/returns|
    public int RecordCount(string TableName, StringBuilder where, SqlParam[] param)

    /// |summary|
    /// 获取记录总数
    /// |param name="TableName"|表名|/param|
    /// |param name="Key"|主键|/param|
    /// |param name="KeyValue"|主键值|/param|
    /// |returns||/returns|
    public int RecordCount(string TableName, string Key, string KeyValue)

    /// |summary|
    /// 获取记录总数(带条件)
    /// |param name="TableName"|表名|/param|
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    public int GetRecordCount(string TableName, string where, List|sqlparam|
    param)


    /// |summary|
    /// 增加一条数据
    /// |param name="entity"|实体类|/param|
    /// |returns||/returns|
    public int Insert|t|(T entity)

    /// |summary|
    /// 更新一条数据
    /// |param name="entity"|实体类|/param|
    /// |param name="Key"|主键|/param|
    /// |returns||/returns|
    public int Update|t|(T entity, string Key)

    /// |summary|
    /// 批量删除数据
    /// |param name="TableName"|表名|/param|
    /// |param name="Key"|主键|/param|
    /// |param name="KeyValue"|主键值|/param|
    /// |returns||/returns|
    public int BatchDelete(string TableName, string Key, string[] KeyValue)

    /// |summary|
    /// 得到一个对象实体
    /// |param name="Key"|主键|/param|
    /// |param name="KeyValue"|主键值|/param|
    /// |returns||/returns|
    public T GetEntity|t|(string Key, string KeyValue)

    /// |summary|
    /// 得到一个对象实体
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数|/param|
    /// |returns||/returns|
    public T GetEntity|t|(string where, List|sqlparam|
    param = null)


    /// |summary|
    /// 得到一个对象实体
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数|/param|
    /// |returns||/returns|
    public T GetEntity|t|(StringBuilder where, List|sqlparam|
    param = null)


    /// |summary|
    /// 获得数据列表(带条件) /// |param name="Key"|列名|/param|
    /// |param name="KeyValue"|值|/param|
    /// |returns||/returns|
    public T GetModelById|t|(string Key, string KeyValue)

    /// |summary|
    /// 获得数据列表(带条件) /// |param name="strSql"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    public IList GetList|t|(string strSql, List|sqlparam|param = null)

    /// |summary|
    /// 获得数据列表(带条件) /// |param name="strSql"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    public IList GetList|t|(StringBuilder strSql, SqlParam[] param = null)

    /// |summary|
    /// 获得数据列表(带条件) /// |param name="strSql"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    public IList GetList|t|(StringBuilder strSql, List|sqlparam|param = null)

    /// |summary|
    /// 获得数据列表(带条件) /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    public IList GetListWhere|t|(string TableName, string where, List|sqlparam|param = null)

    /// |summary|
    /// 分页获取数据列表(带条件) /// |param name="strSql"|SQL语句|/param|
    /// |param name="param"|参数化|/param|
    /// |param name="orderField"|排序字段,默认SortCode|/param|
    /// |param name="orderType"|排序类型|/param|
    /// |param name="pageIndex"|当前页|/param|
    /// |param name="pageSize"|页大小|/param|
    /// |param name="count"|总条数|/param|
    /// |returns||/returns|
    public DataTable GetPageList(string strSql, SqlParam[] param, string orderField, string orderType, int pageIndex, int pageSize, ref int count)

    /// |summary|
    /// 分页获取数据列表(带条件) /// |param name="strSql"|SQL语句|/param|
    /// |param name="param"|参数化|/param|
    /// |param name="orderField"|排序字段,默认SortCode|/param|
    /// |param name="orderType"|排序类型|/param|
    /// |param name="pageIndex"|当前页|/param|
    /// |param name="pageSize"|页大小|/param|
    /// |param name="count"|总条数|/param|
    /// |returns||/returns|
    public IList GetPageList|t|(string strSql, SqlParam[] param, string orderField, string orderType, int pageIndex, int pageSize, ref int count)

  • DotNet.DataAccess 数据库操作方法

    通过 DataFactory.DbType = SqlSourceType.MySql; 可设置数据库类型 自动转换链接方式和数据库关键字


    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns|返回Hashtable|/returns|
    Hashtable GetHashtableById(string tableName, string pkName, string pkVal);

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|参数|/param|
    /// |returns|返回Hashtable|/returns|
    Hashtable GetHashtableById(string tableName, Hashtable ht);

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|参数|/param|
    /// |param name="where"|额外条件|/param|
    /// |returns|返回Hashtable|/returns|
    Hashtable GetHashtableById(string tableName, Hashtable ht, string where);

    /// |summary|
    /// 根据唯一ID获取对象,返回Hashtable
    /// |param name="tableName"|表名|/param|
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|返回Hashtable|/returns|
    Hashtable GetHashtableById(string tableName, StringBuilder where, SqlParam[] param);

    /// |summary|
    /// 根据唯一ID获取对象,返回实体
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns|返回实体类|/returns|
    T GetModelById|t|(string pkName, string pkVal);

    /// |summary|
    /// 根据唯一ID获取对象,返回实体
    /// |param name="ht"|参数|/param|
    /// |returns|返回实体类|/returns|
    T GetModelById|t|(Hashtable ht);

    /// |summary|
    /// 根据唯一ID获取对象,返回实体
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|返回实体类|/returns|
    T GetModelById|t|(StringBuilder where, SqlParam[] param);

    /// |summary|
    /// 影响行数
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns|返回数量|/returns|
    int RecordCount(string tableName, string pkName, string pkVal);

    /// |summary|
    /// 影响行数
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|参数|/param|
    /// |returns|返回数量|/returns|
    int RecordCount(string tableName,Hashtable ht);

    /// |summary|
    /// 影响行数
    /// |param name="tableName"|表名|/param|
    /// |param name="where"|条件|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|返回数量|/returns|
    int RecordCount(string tableName, StringBuilder where, SqlParam[] param);

    /// |summary|
    /// 获取最大编号
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段|/param|
    /// |returns||/returns|
    object GetMax(string tableName, string pkName);

    /// |summary|
    /// 通过Hashtable插入数据
    /// |param name="tableName"|表名|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |returns|int|/returns|
    int Insert(string tableName, Hashtable ht);

    /// |summary|
    /// 通过实体类插入数据
    /// |param name="entity"|实体类|/param|
    /// |returns|int|/returns|
    int Insert|t|(T entity);

    /// |summary|
    /// 通过实体类插入数据
    /// |param name="entity"|实体类|/param|
    /// |returns|int|/returns|
    int Insert|t|(T entity, string key);

    /// |summary|
    /// 通过Hashtable修改数据
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkValue"||/param|
    /// |param name="ht"|Hashtable|/param|
    /// |returns|int|/returns|
    int Update(string tableName, string pkName, string pkVal,Hashtable ht);

    /// |summary|
    /// 通过实体类修改数据
    /// |param name="entity"|实体类|/param|
    /// |param name="key"|主键|/param|
    /// |returns||/returns|
    int Update|t|(T entity, string key);

    /// |summary|
    /// 删除数据
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns||/returns|
    int Delete(string tableName, string pkName, string pkVal);

    /// |summary|
    /// 批量删除
    /// |param name="tableName"|表名|/param|
    /// |param name="pkName"|字段主键|/param|
    /// |param name="pkVal"|字段值|/param|
    /// |returns||/returns|
    int BatchDelete(string tableName, string pkName, object[] pkValues);

    /// |summary|
    /// 根据SQL返回影响行数
    /// |param name="sql"|sql语句|/param|
    /// |returns||/returns|
    object GetObject(StringBuilder sql);

    /// |summary|
    /// 根据SQL返回影响行数,带参数
    /// |param name="sql"|sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    object GetObject(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 根据SQL执行
    /// |param name="sql"|sql语句|/param|
    /// |returns|object|/returns|
    int Execute(StringBuilder sql);

    /// |summary|
    /// 根据SQL执行,带参数
    /// |param name="sql"|sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|object|/returns|
    int Execute(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 根据SQL执行,带参数,不带事务
    /// |param name="sql"|sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|object|/returns|
    int ExecuteNotTran(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 批量执行SQL语句
    /// |param name="sqls"|sql语句|/param|
    /// |param name="m_param"|参数化|/param|
    /// |returns||/returns|
    int BatchExecute(object[] sqls, object[] param);

    /// |summary|
    /// 根据 SQL 返回 DataTable 数据集
    /// |param name="sql"|sql语句|/param|
    /// |returns|DataTable|/returns|
    DataTable GetDataTable(StringBuilder sql);

    /// |summary|
    /// 根据 SQL 返回 DataTable 数据集,带参数
    /// |param name="sql"|sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|DataTable|/returns|
    DataTable GetDataTable(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 摘要:
    /// 执行一存储过程DataTable
    /// 参数:
    /// procName:存储过程名称
    /// Hashtable:传入参数字段名
    DataTable GetDataTableProc(string procName, Hashtable ht);

    /// |summary|
    /// 执行一存储过程返回数据表 返回多个值
    /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |param name="rs"|Hashtable|/param|
    DataTable GetDataTableProcReturn(string procName, Hashtable ht, ref Hashtable rs);

    /// |summary|
    /// 根据 SQL 返回 DataSet 数据集
    /// |param name="sql"|sql语句|/param|
    /// |returns|DataSet|/returns|
    DataSet GetDataSetBySQL(StringBuilder sql);

    /// |summary|
    /// 根据 SQL 返回 DataSet 数据集,带参数
    /// |param name="sql"|sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns|DataSet|/returns|
    DataSet GetDataSetBySQL(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 摘要:
    /// 执行一存储过程DataSet
    /// 参数:
    /// procName:存储过程名称
    /// Hashtable:传入参数字段名
    DataSet GetDataSetProc(string procName, Hashtable ht);

    /// |summary|
    /// 执行一存储过程返回数据集 返回多个值
    /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |param name="rs"|Hashtable|/param|
    DataSet GetDataSetProcReturn(string procName, Hashtable ht, ref Hashtable rs);

    /// |summary|
    /// 根据 SQL 返回 IList
    /// |typeparam name="T"|实体类|/typeparam|
    /// |param name="sql"|语句|/param|
    /// |returns||/returns|
    IList GetDataListBySQL|t|(StringBuilder sql);

    /// |summary|
    /// 根据 SQL 返回 IList,带参数 (比DataSet效率高) /// |typeparam name="T"|实体类|/typeparam|
    /// |param name="sql"|Sql语句|/param|
    /// |param name="param"|参数化|/param|
    /// |returns||/returns|
    IList GetDataListBySQL|t|(StringBuilder sql, SqlParam[] param);

    /// |summary|
    /// 调用存储过程(带事务) /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|参数化|/param|
    int ExecuteByProc(string procName, Hashtable ht);

    /// |summary|
    ///调用存储过程 (不带事务) /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|参数化|/param|
    /// |returns||/returns|
    int ExecuteByProcNotTran(string procName, Hashtable ht);

    /// |summary|
    /// 批量调用存储过程
    /// |param name="text"||/param|
    /// |param name="param"||/param|
    /// |returns||/returns|
    int BatchExecuteByProc(object[] text, object[] param);

    /// |summary|
    /// 调用存储过程返回指定消息
    /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |param name="msg"|OutPut Msg|/param|
    int ExecuteByProcReturnMsg(string procName, Hashtable ht, ref object msg);

    /// |summary|
    /// 调用存储过程返回指定消息(不带事务)
    /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |param name="msg"|OutPut Msg|/param|
    int ExecuteByProcNotTranReturnMsg(string procName, Hashtable ht, ref object msg);

    /// |summary|
    /// 调用存储过程返回指定消息
    /// |param name="procName"|存储过程名称|/param|
    /// |param name="ht"|Hashtable|/param|
    /// |param name="msg"|OutPut rs|/param|
    int ExecuteByProcReturn(string procName, Hashtable ht, ref Hashtable rs);

    /// |summary|
    /// 摘要:
    /// 数据分页
    /// 参数:
    /// sql:传入要执行sql语句
    /// param:参数化
    /// orderField:排序字段
    /// orderType:排序类型
    /// pageIndex:当前页
    /// pageSize:页大小
    /// count:返回查询条数
    DataTable GetPageList(string sql, SqlParam[] param, string orderField, string orderType, int pageIndex, int pageSize, ref int count);

    /// |summary|
    /// 摘要:
    /// 数据分页
    /// 参数:
    /// sql:传入要执行sql语句
    /// orderField:排序字段
    /// orderType:排序类型
    /// pageIndex:当前页
    /// pageSize:页大小
    /// count:返回查询条数
    DataTable GetPageList(string sql, string orderField, string orderType, int pageIndex, int pageSize, ref int count);

    /// |summary|
    /// 摘要:
    /// 数据分页
    /// 参数:
    /// sql:传入要执行sql语句
    /// param:参数化
    /// orderField:排序字段
    /// orderType:排序类型
    /// pageIndex:当前页
    /// pageSize:页大小
    /// count:返回查询条数
    IList GetPageList|t|(string sql, SqlParam[] param, string orderField, string orderType, int pageIndex, int pageSize, ref int count);

    /// |summary|
    /// 摘要:
    /// 数据分页
    /// 参数:
    /// sql:传入要执行sql语句
    /// orderField:排序字段
    /// orderType:排序类型
    /// pageIndex:当前页
    /// pageSize:页大小
    /// count:返回查询条数
    IList GetPageList|t|
    (string sql, string orderField, string orderType, int pageIndex, int pageSize, ref int count);

    /// |summary|
    ///大批量数据插入
    /// |param name="connectionString"|数据库连接字符串|/param|
    /// |param name="table"|数据表|/param|
    /// |returns||/returns|
    bool BulkInsert(DataTable dt);

  • 公共方法类

  • IdHelper 主键方法

    /// ★自动生成编号 201008251145409865
    public static string CreateNo(bool isTimeCode = true)

    /// ★获取一个全球唯一码GUID字符串
    public static string GetGuid

  • ControlBindHelper 控件绑定方法


    /// |summary|
    /// 绑定RadioButtonList方法 传入 控件 数据源 文本字段 值字段 是否选定第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="DataSource"|数据源|/param|
    /// |param name="TextFiled"|文本字段|/param|
    /// |param name="ValueFiled"|值字段|/param|
    /// |param name="isSected"|是否选定第一项|/param|
    public static void ControlListBind(RadioButtonList rbl, object DataSource, string TextFiled, string ValueFiled, bool isSected = true)

    /// |summary|
    /// 绑定数据字典值到下拉框 传入 控件 数据字典代码 是否选择第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="Code"|数据字典代码|/param|
    /// |param name="isSected"|是否选择第一项|/param|
    public static void ControlListBindDictionary(RadioButtonList rbl, string Code, bool isSected = true)

    /// |summary|
    /// 绑定DropDownList方法 传入 控件 数据源 文本字段 值字段 是否选定第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="DataSource"|数据源|/param|
    /// |param name="TextFiled"|文本字段|/param|
    /// |param name="ValueFiled"|值字段|/param|
    /// |param name="isSected"|是否选定第一项|/param|
    public static void ControlListBind(DropDownList rbl, object DataSource, string TextFiled, string ValueFiled, bool isSected = true)

    /// |summary|
    /// 绑定数据字典值到下拉框 传入 控件 数据字典代码 是否选择第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="Code"|数据字典代码|/param|
    /// |param name="isSected"|是否选择第一项|/param|
    public static void ControlListBindDictionary(DropDownList rbl, string Code, bool isSected = true)

    /// |summary|
    /// 绑定Select标签方法 传入 控件 数据源 文本字段 值字段 是否选定第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="DataSource"|数据源|/param|
    /// |param name="TextFiled"|文本字段|/param|
    /// |param name="ValueFiled"|值字段|/param|
    /// |param name="isSected"|是否选定第一项|/param|
    public static void ControlListBind(HtmlSelect rbl, object DataSource, string TextFiled, string ValueFiled, bool isSected = true)

    /// |summary|
    /// 绑定数据字典值到下拉框 传入 控件 数据字典代码 是否选择第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="Code"|数据字典代码|/param|
    /// |param name="isSected"|是否选择第一项|/param|
    public static void ControlListBindDictionary(HtmlSelect rbl, string Code, bool isSected = true)
    public static DataTable GetDictionaryTable(string Code)

    /// |summary|
    /// 绑定CheckBoxList方法 传入 控件 数据源 文本字段 值字段 是否选定第一项
    /// |param name="rbl"|控件|/param|
    /// |param name="DataSource"|数据源|/param|
    /// |param name="TextFiled"|文本字段|/param|
    /// |param name="ValueFiled"|值字段|/param|
    /// |param name="isSected"|是否选定第一项|/param|
    public static void ControlListBind(CheckBoxList rbl, object DataSource, string TextFiled, string ValueFiled, bool isSected = true)

    /// |summary|
    /// 添加第一项并选择
    /// |param name="rbl"|控件|/param|
    /// |param name="txt"|第一项名称|/param|
    /// |param name="val"|第一项值|/param|
    public static void BindFirst(HtmlSelect rbl, string txt = "请选择", string val = "")

    /// |summary|
    /// 添加第一项并选择
    /// |param name="rbl"|控件|/param|
    /// |param name="txt"|第一项名称|/param|
    /// |param name="val"|第一项值|/param|
    public static void BindFirst(DropDownList rbl, string txt = "请选择", string val = "")

  • TypeHelper 类型转换方法


    /// |summary|
    /// 获取传参 字符串
    /// |param name="name"|名称|/param|
    /// |returns||/returns|
    public static string RequestString(string name)

    /// |summary|
    /// 获取传参 数字
    /// |param name="name"|名称|/param|
    /// |returns||/returns|
    public static int RequestInt(string name)

    /// |summary|
    /// 泛型转换字符串
    /// |param name="List"|泛型|/param|
    /// |returns||/returns|
    public static string ListToString(List|string|List)

    /// |summary|
    /// 泛型转换SQL加引号的字符串
    /// |param name="List"|泛型|/param|
    /// |returns||/returns|
    public static string ListToSQLString(List|string|List)

    /// |summary|
    /// 数组转化字符串
    /// |param name="Arrary"|数组|/param|
    /// |returns||/returns|
    public static string ArrayToString(string[] Arrary)

    /// |summary|
    /// 字符串转换泛型
    /// |param name="str"|字符串|/param|
    /// |param name="Key"|分隔符|/param|
    /// |returns||/returns|
    public static List|string|StringToList(string str, Char Key = ',')

    /// |summary|
    /// 字符串转换数组
    /// |param name="str"|字符串|/param|
    /// |param name="Key"|分隔符|/param|
    /// |returns||/returns|
    public static string[] StringToArrary(string str, Char Key = ',')

    /// |summary|
    /// 返回''空字符串防止SQL报错
    /// |param name="str"|字符串|/param|
    /// |returns||/returns|
    public static string ReturnNone(string str)

    /// |summary|
    /// 返回对象obj的String值,obj为null时返回空值。
    /// |param name="obj"|对象。|/param|
    /// |returns|字符串。|/returns|
    public static string ToObjectString(object obj)

    /// |summary|
    /// 取得Int值,如果为Null 则返回0
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static int GetInt(object obj)
    public static float GetFloat(object obj)

    /// |summary|
    /// 取得Int值,如果不成功则返回指定exceptionvalue值
    /// |param name="obj"|要计算的值|/param|
    /// |param name="exceptionvalue"|异常时的返回值|/param|
    /// |returns||/returns|
    public static int GetInt(object obj, int exceptionvalue)

    /// |summary|
    /// 取得byte值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static byte Getbyte(object obj)

    /// |summary|
    /// 获得Long值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static long GetLong(object obj)

    /// |summary|
    /// 取得Long值,如果不成功则返回指定exceptionvalue值
    /// |param name="obj"|要计算的值|/param|
    /// |param name="exceptionvalue"|异常时的返回值|/param|
    /// |returns||/returns|
    public static long GetLong(object obj, long exceptionvalue)

    /// |summary|
    /// 取得Decimal值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static decimal GetDecimal(object obj)

    /// |summary|
    /// 取得DateTime值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static DateTime GetDateTime(object obj)

    /// |summary|
    /// 取得DateTime值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static DateTime? ToDateTime(object obj)

    /// |summary|
    /// 格式化日期 yyyy-MM-dd HH:mm
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static string GetFormatDateTime(object obj, string Format)

    /// |summary|
    /// 取得bool值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static bool GetBool(object obj)

    /// |summary|
    /// 取得byte[]
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static Byte[] GetByte(object obj)

    /// |summary|
    /// 取得string值
    /// |param name="obj"||/param|
    /// |returns||/returns|
    public static string GetString(object obj)

    /// |summary|
    /// 判断用户输入是否为日期
    /// |param||/param|
    /// |returns||/returns|
    /// |remarks|
    /// 可判断格式如下(其中-可替换为.,不影响验证)
    /// YYYY | YYYY-MM |YYYY.MM| YYYY-MM-DD|YYYY.MM.DD | yyyy-MM-dd HH:mm:ss | YYYY.MM.DD HH:MM:SS | yyyy-MM-dd HH:mm:ss.FFF | YYYY.MM.DD HH:MM:SS:FF (年份验证从1000到2999年)
    |/remarks|
    public static bool IsDateTime(string strValue)

    /// |summary|
    /// 判断文本obj是否为空值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Boolean值。|/returns|
    public static bool IsEmpty(string obj)

    /// |summary|
    /// 判断对象是否为正确的日期值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Boolean。|/returns|
    public static bool IsDateTime(object obj)

    /// |summary|
    /// 判断对象是否为正确的Int32值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Int32值。|/returns|
    public static bool IsInt(object obj)

    /// |summary|
    /// 判断对象是否为正确的Long值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Long值。|/returns|
    public static bool IsLong(object obj)

    /// |summary|
    /// 判断对象是否为正确的Float值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Float值。|/returns|
    public static bool IsFloat(object obj)

    /// |summary|
    /// 判断对象是否为正确的Double值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Double值。|/returns|
    public static bool IsDouble(object obj)

    /// |summary|
    /// 判断对象是否为正确的Decimal值。
    /// |param name="obj"|对象。|/param|
    /// |returns|Decimal值。|/returns|
    public static bool IsDecimal(object obj)

    /// |summary|
    /// 生成0-9随机数
    /// |param name="codeNum"|生成长度|/param|
    /// |returns||/returns|
    public static string RndNum(int codeNum)

    /// |summary|
    /// 路径转换(转换成绝对路径)
    /// |param name="path"||/param|
    /// |returns||/returns|
    public static string WebPathTran(string path)

    /// |summary|
    /// 排序字段转换
    /// |param name="acquiesce"|默认字段|/param|
    /// |param name="orderField"|排序字段|/param|
    /// |returns||/returns|
    public static string ToOrderField(string acquiesce, string orderField)

  • StringHelper 字符过滤方法

    /// 过滤字符串
    public static string Filter(object a)

    /// 还原过滤的字符串
    public static string ReFilter(object a)

  • CheckInHelper 签到方法

    /// 是否已签到
    public static bool isCheckIn()

    /// 判断签到时间为上班还是下班
    public static int CheckTimeInt()

    /// 签到
    public static string CheckIn()

  • DictionaryHelper 数据字典方法


    /// |summary|
    /// 获取项实体 传入项代码
    /// |param name="ItemCode"|项代码|/param|
    /// |returns||/returns|
    public static FRM_Dictionary_Item GetItemByCode(string ItemCode)

    /// |summary|
    /// 获取项实体 传入项ID
    /// |param name="ItemID"|项ID|/param|
    /// |returns||/returns|
    public static FRM_Dictionary_Item GetItemByID(string ItemID)

    /// |summary|
    /// 获取数据值实体 传入项代码和值代码
    /// |param name="ItemCode"|项代码|/param|
    /// |param name="ValueCode"|值代码|/param|
    /// |returns||/returns|
    public static FRM_Dictionary_Value GetItemValueByCode(string ItemCode, string ValueCode)

    /// |summary|
    /// 获取数据值实体 传入项代码和值
    /// |param name="ItemCode"|项代码|/param|
    /// |param name="Values"|值|/param|
    /// |returns||/returns|
    public static FRM_Dictionary_Value GetItemValueByCodeValues(string ItemCode, string Values)

    /// |summary|
    /// 获取数据值 传入项代码和值代码
    /// |param name="ItemCode"|项代码|/param|
    /// |param name="ValueCode"|值代码|/param|
    /// |returns||/returns|
    public static object GetValueByCode(string ItemCode, string ValueCode)

    /// |summary|
    /// 获取数据值实体 值ID
    /// |param name="ValueID"|值ID|/param|
    /// |returns||/returns|
    public static FRM_Dictionary_Value GetItemValueByID(string ValueID)

    /// |summary|
    /// 获取真实类型 传入值,类型
    /// |param name="val"|值|/param|
    /// |param name="vt"|类型|/param|
    /// |returns||/returns|
    private static object GetRealType(string val, DValueType vt)

    /// |summary|
    /// 获取数据值生成DATATABLE 传入项代码 TEXT VALUE
    /// |param name="ItemCode"|项代码|/param|
    /// |returns||/returns|
    public static DataTable GetValueToTableByCode(string ItemCode)

    /// |summary|
    /// 获取数据值生成DATATABLE 传入项代码 TEXT VALUE
    /// |param name="ItemID"|项ID|/param|
    /// |returns||/returns|
    public static DataTable GetValueToTableByID(string ItemID)

    /// |summary|
    /// 获取数据值类型转化成的DATATABLE Text Value
    /// |param name="HasTitle"|是否增加请选择,默认增加|/param|
    /// |returns||/returns|
    public static DataTable GetValueTypeTable(bool HasTitle = true)

  • SysLogHelper 系统日志方法


    /// |summary|
    /// 访问的日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void VisitorLog(Page pg, string key, string tips)

    /// |summary|
    /// 访问的日志 传入页面,内容,描述
    /// |param name="pg"|页面|/param|
    /// |param name="tips"|内容|/param|
    /// |param name="tips2"|描述|/param|
    public static void VisitorListLog(Page pg, string tips, string tips2)

    /// |summary|
    /// 添加数据的日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void AddLog(Page pg, string key, string tips)

    /// |summary|
    /// 添加数据的失败日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void AddLogError(Page pg, string key, string tips)

    /// |summary|
    /// 更新数据的日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void UpdateLog(Page pg, string key, string tips)

    /// |summary|
    /// 更新数据的失败日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void UpdateLogError(Page pg, string key, string tips)

    /// |summary|
    /// 删除数据的日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void DeleteLog(Page pg, string key, string tips)

    /// |summary|
    /// 删除数据的失败日志 传入页面,ID,内容
    /// |param name="pg"|页面|/param|
    /// |param name="key"|ID|/param|
    /// |param name="tips"|内容|/param|
    public static void DeleteLogError(Page pg, string key, string tips)

    /// |summary|
    /// 登陆的日志 传入页面,内容,描述
    /// |param name="pg"|页面|/param|
    /// |param name="tips"|内容|/param|
    /// |param name="tips2"|描述|/param|
    public static void LoginLog(Type pg, string tips, string tips2, string name = "系统")

    /// |summary|
    /// 登陆的警告日志 传入页面,内容,描述
    /// |param name="pg"|页面|/param|
    /// |param name="tips"|内容|/param|
    /// |param name="tips2"|描述|/param|
    public static void LoginLogWarming(Type pg, string tips, string tips2, string name = "系统")

    /// |summary|
    /// 登陆的错误日志 传入页面,内容,描述
    /// |param name="pg"|页面|/param|
    /// |param name="tips"|内容|/param|
    /// |param name="tips2"|描述|/param|
    public static void LoginLogError(Type pg, string tips, string tips2, string name = "系统")

  • FrameMessage 消息通知方法


    /// |summary|
    /// 保存消息通知
    /// |param name="Code"|通知代码(枚举)|/param|
    /// |param name="Type"|通知类型(枚举)|/param|
    /// |param name="Recive"|接收人,泛型|/param|
    /// |param name="Obj_ID"|所属ID|/param|
    /// |param name="MES_Content"|内容|/param|
    /// |param name="StartTime"|提醒开始时间|/param|
    /// |param name="EndTime"|过期时间|/param|
    /// |returns||/returns|
    public static bool SaveMessage(FrameMessageCode Code, FrameMessageSendType Type, List|string|Recive, string Obj_ID, string MES_Content, DateTime StartTime, DateTime? EndTime = null)


    /// |summary|
    /// 保存消息通知
    /// |param name="Code"|通知代码(枚举)|/param|
    /// |param name="Type"|通知类型(枚举)|/param|
    /// |param name="Recive"|接收人,泛型|/param|
    /// |param name="Obj_ID"|所属ID|/param|
    /// |param name="MES_Content"|内容|/param|
    /// |param name="StartTime"|提醒开始时间|/param|
    /// |param name="EndTime"|过期时间|/param|
    /// |returns||/returns|
    public static bool SaveMessage(FrameMessageCode Code, FrameMessageSendType Type, string Recive, string Obj_ID, string MES_Content, DateTime StartTime, DateTime? EndTime = null)


    /// |summary|
    /// 消息设置为已读
    /// |param name="Code"|通知代码(枚举)|/param|
    /// |param name="Obj_ID"|所属ID|/param|
    /// |returns||/returns|
    public static bool isRead(FrameMessageCode Code, string Obj_ID)


    /// |summary|
    /// 判断发送状态
    /// |param name="obj"|值|/param|
    /// |returns||/returns|
    public static string GetMessageCode(object obj)


    /// |summary|
    /// 判断发送状态
    /// |param name="obj"|值|/param|
    /// |returns||/returns|
    public static string GetSendType(object obj)

  • MessageHelper 页面消息提醒方法

    /// |summary|
    /// 发送消息
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendMsg(Page pg, string msg)

    /// |summary|
    /// 发送消息
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void ParentUrl(Page pg, string msg, string url)

    /// |summary|
    /// 发送后关闭
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendMsgClose(Page pg, string msg)

    /// |summary|
    /// 发送消息并跳转
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendMsg(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息并跳转 警告提醒 子页让父页跳转
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendMsgParent(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息 错误提醒
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendError(Page pg, string msg)

    /// |summary|
    /// 发送消息 错误提醒并关闭
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendErrorClose(Page pg, string msg)

    /// |summary|
    /// 发送消息并跳转 错误提醒
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendError(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息并跳转 错误提醒
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendErrorParent(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息 警告提醒
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendWarming(Page pg, string msg)

    /// |summary|
    /// 发送消息 警告提醒并关闭
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendWarmingClose(Page pg, string msg)

    /// |summary|
    /// 发送消息并跳转 警告提醒
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendWarming(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息并跳转 警告提醒 子页让父页跳转
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendWarmingParent(Page pg, string msg, string url)

    /// |summary|
    /// 发送消息并跳转 警告提醒 子页让父页跳转
    /// |param name="pg"|页面|/param|
    /// |param name="msg"|消息|/param|
    public static void SendWarmingTop(Page pg, string msg, string url)

  • NetDiskHelper 网盘方法


    /// |summary|
    /// 获取网盘的相对路径
    /// |param name="type"|类型 自身Self(默认) 管理员Admin(为Ueditor路径)开发者Developer(错误日志)网盘NetDisk(网盘总目录)|/param|
    /// |returns|返回目录相对路径|/returns|
    public static string GetDiskUrl(string type)

    /// |summary|
    /// 获取网盘的物理路径
    /// |param name="type"|类型 自身Self(默认) 管理员Admin(为Ueditor路径)|/param|
    /// |returns|返回目录物理路径|/returns|
    public static string GetDiskPath(string type)

    /// |summary|
    /// 根据类型获取对应图片
    /// |param name="path"|路径|/param|
    /// |param name="IsMapPath"|是否需要转换相对路径 默认转换|/param|
    /// |returns|返回相对路径文件|/returns|
    public static string GetImg(string path, bool IsMapPath = true)

    /// |summary|
    /// 物理路径转换为相对路径
    /// |param name="path"|物理路径|/param|
    /// |returns|返回相对路径|/returns|
    public static string GetUrlFromPath(string path)

  • UploadHelper 上传方法


    /// |summary|
    /// 获取物理路径不含文件名称
    /// |param name="FilePath"|相对路径不含文件名称|/param|
    /// |param name="path"|额外路径|/param|
    /// |param name="isMapPath"|是否是相对路径|/param|
    /// |returns|返回物理路径不含文件名称|/returns|
    public static string GetPathTo(ref string FilePath, string path = "", bool isMapPath = false)

    /// |summary|
    /// 获取附件并返回图片地址
    /// |param name="key"|项目ID|/param|
    /// |param name="At_Type"|项目类型|/param|
    /// |param name="At_Code"|项目代码|/param|
    /// |returns|返回图片地址|/returns|
    public static string GetAttaSrc(string key, string At_Type, string At_Code)

    /// |summary|
    /// 上传文件到服务器(服务器上传控件单个上传)
    /// |param name="fu"|上传控件|/param|
    /// |param name="filePathTo"|物理路径不含文件名称|/param|
    /// |param name="FilePath"|相对路径不含文件名称|/param|
    /// |param name="Att_ObjdectID"|项目ID|/param|
    /// |param name="At_Code"|项目代码|/param|
    /// |param name="At_Type"|项目类型|/param|
    public static void UploadFile(FileUpload fu, string filePathTo, string FilePath, string Att_ObjdectID, string At_Code, string At_Type)

    /// |summary|
    /// 上传文件到服务器(服务器上传控件单个上传)
    /// |param name="fu"|上传控件|/param|
    /// |param name="filePathTo"|物理路径不含文件名称|/param|
    /// |param name="FilePath"|相对路径不含文件名称|/param|
    /// |param name="Att_ObjdectID"|项目ID|/param|
    /// |param name="At_Code"|项目代码|/param|
    /// |param name="At_Type"|项目类型|/param|
    /// |param name="res"|返回结果|/param|
    /// |param name="error"|返回错误信息|/param|
    public static void UploadFile(FileUpload fu, string filePathTo, string FilePath, string Att_ObjdectID, string At_Code, string At_Type, ref bool res, ref string error)

    /// |summary|
    /// 上传文件到服务器(HTML控件)
    /// |param name="filePathTo"|物理路径不含文件名称|/param|
    /// |param name="FilePath"|相对路径不含文件名称|/param|
    /// |param name="Att_ObjdectID"|项目ID|/param|
    /// |param name="At_Code"|项目代码|/param|
    /// |param name="At_Type"|项目类型|/param|
    /// |param name="res"|返回结果|/param|
    /// |param name="error"|返回错误信息|/param|
    public static void UploadRequestFile(string filePathTo, string FilePath, string Att_ObjdectID, string At_Code, string At_Type, ref bool res, ref string error)

    /// |summary|
    /// 上传到网盘
    /// |param name="netdiskhide"|已选择的ID合集|/param|
    /// |param name="filePathTo"|物理路径不含文件名称|/param|
    /// |param name="FilePath"|相对路径不含文件名称|/param|
    /// |param name="Att_ObjdectID"|项目ID|/param|
    /// |param name="At_Code"|项目代码|/param|
    /// |param name="At_Type"|项目类型|/param|
    /// |param name="res"|返回结果|/param|
    public static void UploadDiskFile(string netdiskhide, string filePathTo, string FilePath, string Att_ObjdectID, string At_Code, string At_Type, ref bool res)

    /// |summary|
    /// 路径转换 物理路径转换成相对路径
    public static string GetUrlFromPath(string path)

  • 流程公共方法类

  • ProcessHelper 流程方法


    /// |summary|
    /// ★开始流程 传入流程代码、版本
    /// |param name="Code"|流程代码|/param|
    /// |param name="PFI_ID"|流程表单ID|/param|
    /// |param name="Version"|版本,默认为最新|/param|
    /// |param name="MainToke"|分支流程使用,传入主流程的TOKE_ID|/param|
    /// |param name="CreateUser"|创建人|/param|
    /// |param name="ModifyUser"|修改人|/param|
    /// |returns|返回错误提示|/returns|
    public static bool ProcessStart(ref string Error, string Code, string PFI_ID, string Version = "", string MainToke = "", string CreateUser = "", string ModifyUser = "")


    /// |summary|
    /// ★活动步进
    /// |param name="TokenID"|令牌ID|/param|
    /// |param name="Trans"|指定转移,为空则使用默认转移:Default|/param|
    /// |param name="Note"|流程记录说明|/param|
    /// |param name="ForkCode"|分支时指定的流程代码|/param|
    /// |returns|返回错误提示|/returns|
    public static bool ProcessGo(ref string Error, string TokenID, string Trans = "Default", string Note = "", string ForkCode = "", bool isAuto = true)

    /// |summary|
    /// ★流程工作方法
    /// |param name="TokenModels"|令牌|/param|
    /// |param name="EndUpdate"|是否结束节点|/param|
    /// |param name="isState"|是否状态决策节点|/param|
    /// |returns|返回错误提示|/returns|
    private static bool ProcessRun(ref string Error, WF_Token TokenModels, WF_Transitions TransModel, bool isAuto, bool EndUpdate = false, bool isState = false)

    /// |summary|
    /// ★流程退回
    /// |param name="Error"|错误提示|/param|
    /// |param name="TokenID"|令牌|/param|
    /// |param name="Note"|说明|/param|
    /// |returns||/returns|
    public static bool ProcessBack(ref string Error, string TokenID, string Note = "")

    /// |summary|
    /// ★流程锁定
    /// |param name="Error"|错误提示|/param|
    /// |param name="TokenID"|令牌|/param|
    /// |param name="Note"|说明|/param|
    /// |returns||/returns|
    public static bool ProcessLock(ref string Error, string TokenID, string Note = "")

    /// |summary|
    /// ★流程解锁
    /// |param name="Error"|错误提示|/param|
    /// |param name="TokenID"|令牌|/param|
    /// |param name="Note"|说明|/param|
    /// |returns||/returns|
    public static bool ProcessUnLock(ref string Error, string TokenID, string Note = "")

    /// |summary|
    /// ★流程结束 (拒绝)
    /// |param name="Error"|错误提示|/param|
    /// |param name="TokenID"|令牌|/param|
    /// |param name="Note"|说明|/param|
    /// |returns||/returns|
    public static bool ProcessEnd(ref string Error, string TokenID, string Note = "")

  • WorkGroupHelper 流程工作组方法类


    /// |summary|
    /// ★获取当前处理人名字
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |returns||/returns|
    public static string GetModifyUser(object Pi_ID)

    /// |summary|
    /// ★获取下一步骤处理人 通过令牌ID
    /// |param name="TokeId"|令牌ID|/param|
    /// |param name="Trans"|转移,默认为Default|/param|
    /// |param name="Data_ID"|申请人或部门|/param|
    /// |param name="Data_Type"|数据类型 1、人员 2、部门|/param|
    /// |returns|返回 用户ID集合|/returns|
    public static List|string|GetNextUserByToken(string TokeId, string Trans = "Default", string Data_ID = "", int Data_Type = 1)

    /// |summary|
    /// ★获取当前步骤处理人 通过令牌ID
    /// |param name="TokeId"|令牌ID|/param|
    /// |param name="Data_ID"|申请人或部门|/param|
    /// |param name="Data_Type"|数据类型 1、人员 2、部门|/param|
    /// |returns|返回 用户ID集合|/returns|
    public static List|string|GetNowUserByToken(string TokeId, string Data_ID = "", int Data_Type = 1)

    /// |summary|
    /// ★获取当前步骤处理人 通过令牌ID
    /// |param name="TokeId"|令牌ID|/param|
    /// |param name="Data_ID"|申请人或部门|/param|
    /// |param name="Data_Type"|数据类型 1、人员 2、部门|/param|
    /// |returns|返回 用户ID集合|/returns|
    public static List|string|GetNowUserByTokenAll(string TokeId, string Data_ID = "", int Data_Type = 1)

    /// |summary|
    /// ★获取当前步骤处理人 从历史记录中 通过令牌ID
    /// |param name="TokeId"|令牌ID|/param|
    /// |returns|返回 用户ID集合|/returns|
    public static List|string|GetNowUserByTokenHistory(string TokeId)

    /// |summary|
    /// ★获取流程工作组用户通过活动定义ID
    /// |param name="AdId"|活动定义ID|/param|
    /// |param name="Data_ID"|申请人或部门|/param|
    /// |param name="Data_Type"|数据类型 1、人员 2、部门|/param|
    /// |returns||/returns|
    public static List|string|GetWorkGroupUser(string AdId, string Data_ID = "", int Data_Type = 1)

    /// |summary|
    /// ★获取退回处理用户
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |param name="PH_Name"|记录名称|/param|
    /// |returns||/returns|
    public static List|string|GetBackUser(string Pi_ID, string PH_Name)

    /// |summary|
    /// 更新权限
    /// |param name="WG_ID"|分组ID|/param|
    /// |param name="WG_Type"|分组分类|/param|
    /// |param name="Data_ID"|数据ID集|/param|
    /// |param name="Power_Type"|类型|/param|
    /// |param name="Power_Status"|状态|/param|
    public static void UpdatePower(string WG_ID, int WG_Type, List|string|Data_ID, int Power_Type, int Power_Status = 1)

    /// |summary|
    /// 删除权限
    public static void DeletePower(string WG_ID, int Power_Type)

  • TokenHelper 令牌方法类


    /// |summary|
    /// ★获取令牌ID 传入流程实例ID
    /// |param name="KeyValue"|流程实例ID|/param|
    /// |returns||/returns|
    public static string GetTokenIDByPiID(string KeyValue)

    /// |summary|
    /// ★获取令牌ID 传入流程活动ID
    /// |param name="KeyValue"|流程活动ID|/param|
    /// |returns||/returns|
    public static string GetTokenIDByAiID(string KeyValue)

    /// |summary|
    /// ★获取下一步信息
    /// |param name="KeyValue"|令牌ID|/param|
    /// |param name="Data_ID"|申请人或部门|/param|
    /// |param name="Data_Type"|数据类型 1、人员 2、部门|/param|
    /// |returns||/returns|
    public static DataTable GetNextByToken(string KeyValue, string Data_ID = "", int Data_Type = 1)

    /// |summary|
    /// ★获取下一步信息 设置指定处理人
    /// |param name="KeyValue"|令牌ID|/param|
    /// |param name="UserID"|ID合集|/param|
    /// |param name="UserName"|名称合集|/param|
    /// |returns||/returns|
    public static DataTable SetNextByToken(string KeyValue, List|string|UserID, List|string|UserName)

    /// |summary|
    /// ★获取下一步处理人
    /// |param name="TokenID"|令牌|/param|
    /// |param name="Trans"|转移|/param|
    /// |returns||/returns|
    public static string GetNextMan(string KeyValue, string Trans)

    /// |summary|
    /// ★获取令牌 传入流程实例ID
    /// |param name="KeyValue"|流程实例ID|/param|
    /// |returns||/returns|
    public static WF_Token GetTokenByPiID(string KeyValue)

    /// |summary|
    /// 流程转交处理人
    /// |param name="PI_ID"|流程实例ID|/param|
    /// |param name="AI_ID"|活动实例ID|/param|
    /// |param name="UserID"|原处理人 一般为登陆人|/param|
    /// |param name="NewUserID"|新的处理人|/param|
    /// |returns|返回 操作是否成功|/returns|
    public static bool SetTransfer(string PI_ID, string AI_ID, string UserID, string NewUserID)

  • VariantHelper 流程变量方法


    /// |summary|
    /// ★写入流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |returns||/returns|
    public static void WriteVar(string Pi_ID, string Value, string Note)

    /// |summary|
    /// ★写入流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |param name="Ai_ID"|活动实例ID|/param|
    /// |param name="Value"|值|/param|
    /// |param name="Note"|说明|/param|
    /// |returns||/returns|
    public static void WriteVarByAi(string Pi_ID, string Ai_ID, string Value, string Note = "UserList")

    /// |summary|
    /// ★销毁流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |returns||/returns|
    public static void DestroyVar(string Pi_ID, string Note = "")

    /// |summary|
    /// ★销毁流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |param name="Ai_ID"|活动实例ID|/param|
    /// |returns||/returns|
    public static void DestroyVarByAi(string Pi_ID, string Ai_ID, string Note = "UserList")

    /// |summary|
    /// ★获取流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |returns||/returns|
    public static string GetVar(string Pi_ID, string Note = "UserList")

    /// |summary|
    /// ★获取流程变量
    /// |param name="Pi_ID"|流程实例ID|/param|
    /// |param name="Ai_ID"|活动实例ID|/param|
    /// |returns||/returns|
    public static string GetVarByAi(string Pi_ID, string Ai_ID, string Note = "UserList")

  • SubmitHelper 流程提交方法


    /// |summary|
    /// 流程开始前执行方法
    public delegate void StartVoid(string PFI_ID = null);

    /// |summary|
    /// 节点开始前执行方法
    public delegate void StartNodeVoid(string PFI_ID = null);

    /// |summary|
    /// 流程结束后执行方法(成功后)
    public delegate void EndVoid(string PFI_ID = null);

    /// |summary|
    /// 节点结束后执行方法(成功后)
    public delegate void EndNodeVoid(string PFI_ID = null);

    /// |summary|
    /// 流程结束后执行方法(失败后)
    public delegate void EndErrorVoid(string PFI_ID = null);

    /// |summary|
    /// 节点结束后执行方法(失败后)
    public delegate void EndNodeErrorVoid(string PFI_ID = null);

    /// |summary|
    /// 流程提交开始方法
    /// |param name="PFI_ID"|主键|/param|
    /// |param name="Code"|流程定义代码|/param|
    /// |param name="error"|返回的错误信息|/param|
    /// |param name="UpdateFunc"|更新委托方法|/param|
    /// |param name="GoFunc"|完成委托方法|/param|
    /// |returns|返回 成功或失败|/returns|
    public static bool ProcessStart(string PFI_ID, string Code, ref string error, UpdateVoid UpdateFunc = null, GoVoid GoFunc = null)

Close