iNESTIM系统二次开发手册
二次开发包使用说明书
二次开发包使用说明书(版本V1.1)目录一、DEMO软件使用步骤 (3)1.1串口通讯单个显示屏 (3)1.1.1设置屏幕参数以及模组参数 (3)1.1.2打开DEMO软件 (6)1.1.3发送数据 (6)1.2串口通讯多个显示屏 (7)1.2.1设置屏幕参数以及模组参数 (7)1.2.2 打开DEMO软件 (9)1.2.3发送数据 (9)1.3 TCP/IP通讯单个显示屏 (9)1.3.1 设置屏幕参数以及模组参数 (9)1.3.2 打开DEMO软件 (12)1.3.3 发送数据 (12)1.4 TCP/IP通讯多个显示屏 (13)1.4.1 设置屏幕参数以及模组参数 (13)1.4.2 打开DEMO软件 (14)1.4.3 发送数据 (14)二、节目编辑流程 (14)三、调用顺序样例 (15)开发包使用说明软件使用步骤使用步骤一、DEMO软件单个显示屏1.1串口通讯串口通讯单个显示屏1.1.1设置屏幕参数以及模组参数主要设置屏幕参数以及模组参数,设置参数应使用“LED图文屏编辑控制平台”软件,设置步骤如下。
1)进入“LED图文屏编辑控制平台”中的硬件参数,设置参数。
参数设置完后,点击“发送后保存”。
2)打开二次开发包中的配置文件(.ini文件)打开二次开发包中的LED.INI文件。
参数配置说明参数配置说明::[地址:1]LinkAddr=1CardType=HL06ACOMPort=COM1LinkMode=串口IPAddr=PortNO=8000BaudRate=9600bpsColor=2Width=512Height=256① 控制卡地址"[地址:n]"和"LinkAddr" 范围为:1~253;② 控制卡类型CardType 的取值为: HL00、HL01、HL02、HL03A 、HL06A 、HL06A+ ③ 控制卡通讯模式“LinkMode ”的取值为:串口、TCP/IP④ 控制卡以太网参数:“IPAddr ”和“PortNO ”:IPAddr 取值:实际卡所配置IP 地址如:192.168.0.2PortNO 取值:实际卡所配置端口如:8000注:仅TCP/IP 模式需配置该参数⑥ 显示屏的宽度和高度分别为“Width ”和“Height ”:Width 取值范围: 8~屏幕高度,并且是8的倍数,Height 取值范围:8~屏幕高度⑦串口波特率和串口号分别为“BaudRate”和“COMPort”:BaudRate取值为:9600bps,38400bps,115200bps;COMPort取值为:COM1、COM2、COM3、...... (注:COM1为COM1口,COM2为COM2口);⑧显示屏颜色:0~3;0.单色屏(红色),1.单色屏(绿色),2.双色屏(红色&绿色),3.双色屏(绿色&红色)注意:*地址的个数可以根据实际显示屏的个数添加;*不要修改该文件的文件名及后缀;*该文件必须和应用程序放在同一个目录下。
NX二次开发-ufusr和ufsta等用户入口使用说明
NX⼆次开发-ufusr和ufsta等⽤户⼊⼝使⽤说明版本NX9+VS2012⽤户出⼝(⼊⼝)介绍这段内容是从书上抄的⽤户出⼝(User Exit)是NXOpen中的⼀个重要概念。
NX在运⾏过程中某些特定的位置存在规定的出⼝,当进程执⾏到这些出⼝时,NX会⾃动检查⽤户是否在此处已定义了指向内部程序位置的环境变量;若没有定义,则以NX默认的⽅式继续运⾏下去;若已定义,则从该处⾃动运⾏⽤户定制的应⽤程序。
利⽤不同的User Exit,可使⽤户定制的应⽤程序在NX运⾏到特定点时被⾃动执⾏。
每个User Exit都有唯⼀的出⼝名称,以便⽤户在⼦程序中调⽤,不同的User Exit使⽤不同的出⼝函数,最常⽤的User Exit是ufsta()与ufusr(),ufsta()是NX菜单启动时的User Exit,ufusr()是直接激活的User Exit。
通常情况下,User Exit函数的参数和返回值都相同,User Exit函数的定义如下:void entry_point(char *parm, int *returnCode, int rlen);其中parm和returnCode是输出参数,rlen是指参数parm的长度,由NX系统⾃动处理。
官⽅⽂档上的说明常⽤的两个⼊⼝函数例⼦ufusr()官⽅有⼀个example例⼦,我们编译执⾏去看⼀下/*===========================================================================Copyright (c) 1998Unigraphics Solutions CorporationUnpublished - All rights reserved===========================================================================*//************************************************************************** ** This is a sample C program written for Internal User Function. ** Its intent is a small, prewritten program so users can test ** Internal UFUN on their system to make sure it works. ** ** param - Parameters - Input, But Not Used ** retcod - Return Code - Output ** param_len - Length of 'param' argument - Input ** ** *************************************************************************/#include <stdio.h>#include <uf_defs.h>#include <uf.h>#include <uf_ui.h>#include <uf_cfi.h>#include <uf_curve.h>#include <uf_obj.h>#include <uf_part.h>#include <uf_assem.h>#include <uf_cfi.h>static void report_error( int error_code, char *msg_text, char *part_name );#define WAIT 1#define PART 2extern void ufusr( char *param, int *retcod, int param_len ){static char title[] = "CHOOSE OPTION";static char menu[6][37+1] = { "POINT","LINE","ARC","DELETE LAST ENTITY","CHANGE ARC MODE","EXIT PROGRAM" };static char mdmenu[2][37+1] = { "PARTIAL ARC","FULL CIRCLE" };static char linmsg[2][18] = { "CHOOSE LINE START","CHOOSE LINE END" };static char arcmsg[] = "CHOOSE POINT #";static char prtnam[MAX_FSPEC_BUFSIZE] = "blank";int choice; /* User Choice */int defalt[2]; /* Default Point Selection Type*/tag_t entid = 0; /* Entity Identifer */int idum; /* Dummy Integer Variable */int mode = 1; /* Arc Creation Mode */double point1[3]; /* Point Data Variable */double point2[3]; /* Point Data Variable */double point3[3]; /* Point Data Variable */int status; /* Status */int nopart; /* No active part flag */int pos_returned; /* Pos returned flag from menu */int rejected = 0; /* Reject flag from menu *//**/tag_t part_tag; /* Part Tag of Part */UF_PART_load_status_t /**/load_status; /* Structure to hold any *//* errors when loading part */int num_parts; /* Number of parts loaded */UF_initialize();/* Check For An Active Part */part_tag = UF_ASSEM_ask_work_part();if ( part_tag == NULL_TAG ){/* Ask For A Part To Retrieve or Create */nopart = 1;while (nopart){choice = uc1600("Retrieve/Create part*Enter name", prtnam, &idum);if (choice < 3) { return; }nopart=((choice != 1) && (choice != 4) && (prtnam[0] != 0)) ? 0 : 1;/* Check if the named part already exists on disk */status = uc4560(prtnam, PART);if ( status == 0 ){/* Retrieve specified part */status = UF_PART_open( prtnam, &part_tag, &load_status );nopart = 0;num_parts = load_status.n_parts;if ( status != 0 ){report_error( status, "retrieving part", prtnam );nopart = 1;}if ( num_parts > 0 ){int indx = 0;while ( indx < num_parts ){report_error( load_status.statuses[indx],"retrieving part",load_status.file_names[indx] );indx++;}UF_free_string_array( num_parts, load_status.file_names );UF_free( load_status.statuses );nopart = 1;}}else if ( status == 1 ){/* Create specified part */status = UF_PART_new(prtnam, UF_PART_ENGLISH, &part_tag ); report_error( status, "creating part", prtnam );if ( status == 0 )nopart = 0;}else{report_error( status, "checking part", prtnam );}}}/* We Now Have An Active Part *//* Get Next Action Choice (This Section Loops) */while (1){choice = uc1603(title, 0, menu, 6);/* Should always cancel out of the ufun dialog when the* user selects cancel or back*/if (choice == 1 || choice == 2){UF_terminate();}choice += -4;defalt[0] = 0;switch (choice) {case1: /* Create Points */choice = uc1616("CREATE POINT", defalt, 0, point1);while (choice > 4){UF_CURVE_create_point ( point1 , &entid );choice = uc1616("CREATE POINT", defalt, 0, point1);}break;case2: /* Create Lines */choice = 5;while (choice > 4){UF_CURVE_line_t line_coords;choice = uc1616(linmsg[0], defalt, 0,line_coords.start_point );if (choice > 4){choice = uc1616(linmsg[1], defalt, 0,line_coords.end_point );if (choice > 4)UF_CURVE_create_line ( &line_coords , &entid );if (choice == 1)choice = 5;}}break;case3: /* Create Arcs/Circles */pos_returned = 1;while (pos_returned){arcmsg[13] = '1';choice = uc1616(arcmsg, defalt, 0, point1);pos_returned = (choice > 4) ? 1 : 0;if (choice > 4)do {arcmsg[13] = '2';choice = uc1616(arcmsg, defalt, 0, point2);if (choice > 4){arcmsg[13] = '3';choice = uc1616(arcmsg, defalt, 0, point3);rejected = (choice == 1) ? 1 : 0;if (choice > 4)FTN(uf5063)(&mode,point1,point2,point3,&entid); }else/* check work */{rejected = (choice == 1) ? 0 : 1;pos_returned = (choice == 1) ? 1 : 0;}} while (rejected);}break;case4: /* Delete Last Entity Created */if (entid != 0)UF_OBJ_delete_object(entid);entid = 0;break;case5: /* Change Arc Mode */choice = uc1603("CHOOSE ARC MODE", mode, mdmenu, 2);if (choice > 4)mode = choice - 4;break;default: UF_terminate ( );return;}}}/*----------------------------------------------------------------------------*/static void report_error( int error_code, char *msg_text, char *part_name ) {if ( error_code != 0 ){char error_message[133];char local_string[300];UF_get_fail_message( error_code, error_message );sprintf(local_string,"Error %d %s: %s - %s",error_code, msg_text, part_name, error_message );uc1601( local_string, WAIT );}}我们⼆次开发最常⽤的⼊⼝函数就是ufusr()执⾏ufusr有两种⽅式,1.是直接挂到菜单栏上,从菜单点击下载。
思途旅游CMS标签调用说明前台模板二次开发文档
思途CMS标签调用说明书本文档主要描述系统标签的功能与用法,系统标签的存储位置统一存放在include/taglib/smore/目录下,标签的命名格式为标签名.lib.php1.Attrgrouplist用途:此标签主要用于读取线路,酒店,租车,景点,文章,相册,团购的的属性组列表,此标签一般与getattrgrouplist配合使用,用于搜索列表,达到显示栏目相应属性的功能。
参数:typeid:需要调用属性的栏目id(线路:1,酒店:2,租车:3,文章:4,景点:5,相册:6,团购:13)filterid:需要排除的属性组id,如果排除多个则以逗号分隔。
row:调用的条数。
例子:这个标签一般用于在搜索列表使用如如上图所示,会调用线路属性组进行显示,typeid=1表示读取线路属性组,filterid=’91’表示排除属性组id为91的属性组,属性组id的查看可以在后台属性组管理页面进行查看。
如下图:2.getattrbygroup用途:用于通过某个属性组id或者属性名称来读取某个属性组相应的属性列表,该标签一般与attrgrouplist配合使用实现快速读取多个属性组信息。
参数:groupname:属性组的名称,如“旅行方式”typeid:同上groupid:属性组id的值。
row:调用的条数。
前台模板可用参数:[field:title/]:表示读取当前属性名称[field:id/]:表示读取当前属性id.例子:1.如我想单独调用线路属性组为“交通选择”的属性列表信息,则可以通过以下代码进行实现{sline:getattrbygroup typeid=’1’groupname=’交通选择’}<a data-id=”[field:id/]”>[field:title]</a>{/sline:getattrbygroup}也可以使用groupid来实现同样的效果,{sline:getattrbygroup typeid=’1’groupid=’84’}<a data-id=”[field:id/]”>[field:title]</a>{/sline:getattrbygroup}Groupid可以在后台相应栏目属性配置那里获取。
ERP二次开发规学习手册
TIPTOP GP ERP二次开发规范说明TIPTOP ERP共分三大区:topstd(标准区) + toppord(正式区) + toptest(测试区)标准区正式生产环境用户测试,MIS程序客制测试┧━━━━━━┸━━━━━━┫目录结构和topprod完全一样标准tiptop($TOP)客制topcust($CUST)┧━━━━━━┳━━━┳━━━━━┳━━━┳━━━━╀━━━━━┫┗→目录结构和$TOP完全一样,只不过模组目录都是c开头的了config doc ds4gl2 ora out schema各模组目录(axm、asf...截止5.25已经有47个模组+sub+lib+qry)config:配置文件目录(top.global全局变量、4ad各程序ACTION列表、4st画面风格、4tb界面按钮风格、等)doc:帮助文档+系统图片目录ds4gl2:一些脚本目录,如r.c2、r.l2等ora:一下数据库应用查询脚本,如q_tabFREE等out:临时目录schema:数据库sch文件目录各模组目录:4fd画面档目录、per画面档编译后per目录、4gl源码档、42m、42rGenero Studio文件说明说明:$XXX表示各个模组;√:服务器必须文件;×服务器可选文件4pw:Genero Studio项目工程文件(位于服务器目录:$XXX/4pw)×4fd:画面档(位于服务器目录:$XXX/4fd)√per:gsform后4fd画面档对照文件(4fd经过gsform后的文件,位于服务器目录:$XXX/per)√42f:编译后的画面档文件(4fd经过r.f2后的文件,位于服务器目录:$XXX/per)√4gl:源码档(位于服务器目录:$XXX/4gl)√42m:编译后的源码链接档(4gl经过r.c2后的编译档,位于服务器目录:$XXX/42m)√42r:链接后的可执行文件(42m经过r.l2后的链接档,位于服务器目录:$XXX/42r)√4rp:报表文件(位于服务器目录:$XXX/4rp)×sch:数据库表结构文件(位于服务器目录:$XXX/sch)×TIPTOP ERP客制规范命名原则程序命名原则:X XX(3码)X(2码)XXX(3-5码)模组名程序类型流水号模组名:①如果为标准程序,程序名一定是a开头,程序位于对应的$AXX模组目录②如果修改标准程序,有些公司是修改为c程序有些公司还是用原来的a程序........................................................但是目录一定都是对应的$CXX模组目录③如果是新增程序,程序名一定是c开头,程序目录一定是对应的$CXX模组目录程序类型:r报表类程序、i基础资料类程序、q查询类程序、t交易类程序、p批处理类程序、s参数类程序流水号:一般随便编录,不重复就好;专业些就是同一作用的程序流水号一类$AZZ程序都是p_开头,规则不同与上$LIB为共用查询程序,都是cl_开头- $CLIB为客制共用查询程序,都是ccl_开头$SUB为副程序,都是s_开头- $CSUB为客制副程序,都是cs_开头$QRY为查询程序,都是q_开头- $CQRY为客制查询程序,都是cq_开头程序内部FUNCTION函数命名原则:X(2码)XXX(3-5码)_功能()常见功能函数如下:_menu:action功能菜单_q:开始查询,调用_fetch查取第一笔资料_cs:QBE条件查询及查询游标声明_fetch:N、P、F、L、/ 处理下、上、第一笔、末笔、指定笔单头资料读取,并调用_show显示资料_show:显示单头资料,如需要并调用_b_fill填充单身资料_a:新增,并先后调用_i(a)输入单头资料和_b输入单身资料_i:根据函数接受的参数a新增资料、u更新资料_u:更新,调用_i(u)更新资料_b:单身CRUD业务逻辑_b_fill:单身资料填充_bp:显示单身资料,提供单身action功能选项_r:删除整笔资料_out:打印函数_x:资料无效、有效处理_pic:显示或刷新图片_ef:EasyFlow送签_y:确认_z:取消确认_s:过账_w:过账还原_gen/_g:一般为根据某action自动产生单身资料_sub_y_chk或_y_chk:一般为复杂逻辑t程序"确认"动作时执行资料逻辑检查_sub_y_upd或_y_upd:一般为复杂逻辑t程序“确认”动作时执行资料更新_sub_refresh:一般为复杂逻辑t程序"确认"、"取消确认"、"过账"、"过账还原"动作更新后的资料刷新_sub_s:一般为复杂逻辑t程序“过账”_set_entry:设置单头栏位可进入录入资料_set_no_entry:设置单头栏位不可进入录入资料_set_entry_b:设置单身栏位可进入录入资料_set_no_entry_b:设置单身栏位不可进入录入资料_set_required:设置栏位为必须输入资料_init:初始化程序栏位是否可视,ACTION是否可视_a_default:新增资料时赋初值_b_move_to:单身栏位赋值、备份_b_move_back:单身栏位值还原修改数据库表栏位命名规则:①.修改现有表现有列:表列名称不变,只是旗标会自动由标准变成客制②.在现有表上增加列:表列规则ta_原表流水号,ex:ta_ima001③.新增表:表名及表列规则都是tc开头,表tc_xxx_file,表列tc_xxx流水号,ex:tc_lee_file,tc_lee001TIPTOP GP ERP 二次开发流程前提:熟悉基础的Linux命令+4GL基础语法+SQL语法,你可以看看本手册里面对应目录的相关资料一、p_zta增加或修改表(如果不用改表,这步可以跳过)修改表要数据库DBA的权限,如果你的账号没有这个权限可以在Linux服务器上用root执行一下脚步usermod -a -g dba Linux用户名(ex:为liyihui这个账号添加数据库dba组的权限usermod -a -g dba liyihui)(注意:是小g不是大G,大G是标准组,会覆盖之前用户所在的组,而不是添加组了)1、登入p_ztaDBA2、新增或修改表注意:你至少需要新增或修改ds库和程序业务使用的数据库,ds库是程序编译时参照的库(比如LIKE ima_file.tc_ima01)①.如果是新建表,先建立p_zta资料后,然后点击;如果是修改表就不用做这步骤了②.然后点击,根据是新增表还是修改表选择对应的选项操作//非必须操作③.更新ds.sch,Linux服务器上执行命令r.s2 ds //非必须操作,p_zta最后会自动r.s2一下我的技巧:如果多个营运中心都需要建立同一张表,我是这么做的①.ds帐套在p_zta按上面的流程建立表②.其他帐套在PL/SQL执行SQL:CREATE TABLE 表AS SELECT * FROM ds.表③.复制出zta_file及ztb_file该表的信息(将所属者改为其他帐套,每个帐套一份)④.再到p_zta里面,修改各个帐套的表的索引就OK了二、如果是将a标准程序修改为c客制程序,这里先做;如果是新增程序直接跳过本步骤为什么要先插入这一步:这样r.gf 客制程序2 c后自动新增的p_perlang和p_per就不用维护什么资料了1、p_perlang复制a标准程序的画面档资料为c客制程序的画面档资料p_perlang先查询出标准程序的资料-> 再按c(拷贝)-> 写入客制程序的代码+ 勾选"客制"栏位ex:先查询asft620的资料,然后复制(按c)将asft620客制为csft6202、p_per同理三、新增或修改4fd画面档及4gl程序源码档1、Linux服务器上下载ds.sch (如果做的4fd不用参照表就不用下载了,比如一些报表)Linux服务器上执行sz $TOP/schema/ds.sch2、打开Genero Studio软件,开始绘制4fd画面档①.建立Genero Studio的工程项目(注意是 .4pw 的工程项目工程文件哟)点击Ctrl + S 先保存项目文件,这是个人经常性按Ctrl+S保存文件的习惯^_^②.导入前面下载的ds.sch文件到工程文件中(否则等下做4fd画面档时会出现找不到表的情③.将导入的ds.sch 文件保存到工程文件中的Databases目录下面④.新建或修改4fd画面档对于新建4fd画面档时,我一般都是先摆好所有的控件,然后选择对应同一个表的所有控件(Ctrl可多选),再一起修改对应的表做画面档对于单身栏位,在单身列中间插入列时,该列在单身对应的SR变量里面一直摆在最后面,而不是对应的位置,需要手动调整一下(选中上下拉就可以了):⑤.rz -y 上传4fd档到服务器上对应的ERP模块4fd路径下面(Ex:$CSF/4fd),编译且预览画面档r.f2 4fd画面档(Ex:r.f2 csft620)r.gf 4fd画面档(Ex:r.gf csft620 2 c)(2:是语言别,表示中文简体;c:表示客制,如果是标准模块则换成p)⑥.新建或修改4gl源码档写4gl代码说明编辑器都可以,但个人还是喜欢用Genero Studio,因为有关键字着色、语法预警等功能⑦.rz -y 上传4gl源码档到服务器上对应的ERP模块4gl路径下面(Ex:$CSF/4gl),编译4gl(暂不链接)r.c2 源码档(Ex:r.c2 csft620)⑧.p_link查询出原标准程序的链接档,然后按C(复制)出客制程序的链接档,修改对应的项为客制目录下面的文件就可以了再新增p_zz里面的资料,注意p_zz里面的运行指令及模组都要改成客制目录⑨.回到服务器,链接程序r.l2 源码档(Ex:r.l2 csft620)⑩.回到p_zz,点击进入p_base_act程序后,一点要点击一下单身,然后退出,选择重新生成4ad档,才能在程序里面正确显示对应的ACTION如果不是tiptop账号,你需要$TOP/config/4ad整个目录文件的权限才可以成功生成新的程序的4ad文档四、根据需要,p_zm挂载程序到ERP目录里面及开通权限等........p_zm执行时,如果不是tiptop账号,你需要$TOP/config/4sm目录及文件的权限才可以成功生成menu.4sm目录文件。
【XXXX项目】二次开发设计说明书
文档编号:XXXX二次开发设计说明书XXXXXX有限公司目录1.引言 (3)1.1.编写目的 (3)1.2.项目背景 (3)1.3.参考资料 (3)2.二次开发结构 (3)2.1.软件结构 (3)2.2.条件与限制 (4)2.3.二次开发设计框架 (4)3.二次开发内容 (4)3.1.内容1(如:窗体定制—- ITEM属性表单的定制) (4)3.2.内容2 (5)3.3.内容n (5)4.接口设计 (5)4.1内部接口 (5)4.2外部接口 (6)5.数据结构设计 (6)5.1.库结构 (6)5.2.表结构 (6)6.出错处理设计 (6)6.1.出错信息 (6)6.2.补救措施 (6)6.3.系统维护设计 (6)7.其他 (6)1.引言1.1. 编写目的本文档主要针对系统的二次开发部分。
对在《实施总体设计方案》中描述的需要二次开发的内容,详细进行描述。
为编程人员、测试人员、实施人员和维护人员之间提供共同的参考依据,对XX软件功能及集成模块的实现作详细描述。
本说明书面向对象为编程人员、测试人员、实施人员和维护人员。
1.2. 项目背景本项目软件开发平台:本项目软件二次开发实施单位:1.3. 定义PLM (product life cycle management):产品生命周期管理PDM (product data management):产品数据管理BOM (bill of material):材料明细表CAPP(Computer Adied Process Planning):计算机辅助工艺设计PSE (product structure editor):产品结构编辑器ItemRevision:版本零部件……1.4. 参考资料《XXXX项目需求规格说明书》《XXXX项目总体设计方案》……2.二次开发结构2.1. 软件结构例如:TCEng软件的层次构成–Portal Java clients. 客户端–TCEng server 服务器端–Oracle 后台数据库–TCEngFS 文档服务器TCEng 存储数据的方式:结构化数据——存储于Oracle数据库中文件——存储于卷Volume中2.2. 条件与限制2.3. 二次开发设计框架客户程序类的层次如图所示:图:3.二次开发内容对于需要开发的内容有两类:一类是需要重新进行开发的内容,这相当于重新开发某一模块的功能。
二次开发使用手册.
二次开发使用手册条屏通讯控件thtplg.ocx(V3.3)一、说明每一个功能使用,均须先调用TP_SZLG_CardInit打开通讯口初始化,及在使用完成后,须调用TP_SZLG_CardEnd()关闭通讯口。
thtplg.ocx控件中,功能函数可以独立使用,点阵、方式函数,视需要可分开,混合使用。
二、功能函数1、TP_SZLG_CardInit(Com As Long, Port As Long, ScreenNo As Long)说明:通讯开始初始化输入参数:Com :串行口Port:波特率,使用19200ScreenNo :屏号,1-255,0为广播屏号,所有屏可接收,但无返回值。
输出参数:0-失败。
(串口被占用,或无效)1-成功。
2、TP_SZLG_CardEnd()说明:关闭通讯口输入参数:无输出参数:无3、TP_SZLG_Reset() '复位说明:显示屏复位输入参数:无输出参数:0-失败。
1-成功。
4、TP_SZLG_Screen_Send(Buffer() As Byte)说明:加载屏参数输入参数:Buffer: 13字节数组0-(不使用)1-驱动极性,0-低亮,1-高亮2-显示时间,1-显示3-接收超时复位,1-使用4-颜色,0-双色,1-单色5-亮度(1-64)6-宽度(4到24个汉字)7-高度(1到4行)8-扫描方式(16:1/16,8:1/8,4:1/4,2:1/2,0:静态扫描)9-备用10-备用11-备用12-备用输出参数:0-失败。
1-成功。
5、TP_SZLG_Screen_Seek(Buffer() As Byte)说明:读屏参数输入参数:Buffer: 13字节数组输出参数:0-失败。
1-成功。
Buffer:返回13字节数据1-屏号2-波特率参数,0-9600,1-19200,2-28800,3-576003-幕数4-极性,0-负极性低亮,1-正极性高亮5-时间,0-不显示,1-显示6-超时复位,0-不使用,1-使用超时复位功能7-颜色,0-双色,1-单色8-亮度(1-64)9-宽度(4到24个汉字)10-高度(1到4行)11-扫描方式(16:1/16,8:1/8,4:1/4,2:1/2,0:静态扫描)12-存储,1-24c64 8K,2-24c256 32K,3-24c512 64K6、TP_SZLG_Screen_Time()说明:校时输入参数:无输出参数:0-失败。
iNESTIM系统二次开发手册
iNESTIM系统数据展示及应用分析平台二次开发手册目录文件修订记录一、引言iNESTIM软件是面向企业(集团)应用需求而研发的专业能源监测与集中控制管理平台,帮助企业加强能源计量管理,开展企业节能降耗行动,提高能源利用率,减少资源消耗、保护环境;协助企业更好地完成资源调配、组织生产、部门结算、成本核算,对能源供应进行监测,以便企业实时掌握能源状况,为实现能源自动化调控奠定坚实的数据基础。
系统配合各用能单位的节能工作,科学合理地降低单位产值或单位产品的能源资源消耗,实现分产品、分车间的能源管理,提高能源资源的利用水平,建立科学合理的能源体系,同时为用能单位能源网络的设计、优化、改造提供全面的基础数据和分析数据;加强对用能单位能源利用状况的宏观监督管理,以及对用能单位能源资源投入产出全过程进行全面的审计,建立科学的能源审计体系;为企业的安全、可靠、高效的用能提供全面的科学指导,最大限度地延长企业生产设备的使用寿命,有效降低维护成本。
本手册定制的目的是为了对项目实施及配置过程中的一些简单二次开发方式做一些说明。
二菜单配置方式菜单订制及查询sql定制Sql定制页面的功能是将简单的横行乘数列的表格使用web的方式展示。
原理是通过sql语句获取数据集并将获取到的数据集在web上展示出来。
此过程只涉及到2个数据表分别是module_info表与report_unit表。
也就是说在以上2张表中将记录完成就能在web上形成一个sql定制页面。
在数据库中直接配置的方法如下:2.1.1 数据表介绍首先介绍下module_info及report_unit的主要字段:Module_info菜单信息表MODULEID 数字型,菜单编号,MODULETYPEID 数字型,菜单种类编号大部分时候使用‘1’即可,PARENTID 数字型,父节点编号,即此菜单项下挂于菜单树的哪一级,MODULENAME 字符型,菜单名称,MODULEURL 字符型,页面地址及参数,STATE 数字型,默认0,ADMINPERM 字符型,管理权限字符串,使用‘1’,READPERM 字符型,读权限字符串,使用‘1’,FUNCTIONID 数字型,,TREEID 数字型,此菜单使用的树编号,此id对应MODULE_TREE_RELATION表中的id,ORDERINDEX 数字型,排序编号,若此菜单所属的父菜单包含多个子菜单,依照此字段的大小排序IMG 字符型,菜单在菜单树中使用的图片MODULETYPE 字符型,标识位,‘0’表示此项内容在后台系统即管理员显示,‘1’表示在前台系统即数据浏览页面显示。
ANSYS二次开发资料讲解
A N S Y S二次开发ANSYS二次开发手册UIDL解析APDL解析收集于网络,如有侵权请联系管理员删除目录第二章解析UIDL篇 (1)2.1结识UIDL (1)2.2看看UIDL的模样 (2)2.3 Ansys调用UIDL的过程 (6)第三章UIDL实例解析一 (9)3.1问题描述: (9)3.2环境准备: (9)3.3添加菜单: (10)3.4结束语 (14)第四章UIDL实例解析二 (15)4.1问题描述: (15)4.2环境准备及构建对话框: (16)4.3参数提取杂谈 (19)4.4结束语 (20)附录 (20)第五章UIDL实例解析三 (23)5.1问题描述 (23)5.2环境准备及构建联机帮助: (24)5.3几点说明 (28)5.4 结束语 (29)第六章解析APDL (30)6.1 熟悉新朋友—APDL (30)6.2 二次开发工具之间的比较 (30)6.3 结束语 (31)第七章 APDL综合实例 (32)7.1 问题说明 (32)7.2 解题思想 (33)7.3 构建步骤 (34)7.4 几点说明 (40)7.5 结束语 (40)收集于网络,如有侵权请联系管理员删除第二章解析UIDL篇2.1结识UIDLUIDL是什么?Ansys二次开放语言的一种。
OK,那么它能带给我们什么?很多很多,如果你想让你在Ansys中制作的用户界面具有专业水准的话,请来结识一下我们的UIDL把。
●全称:UIDL的全名是User Interface Design Language,是Ansys中二次开发工具方面的三大金刚之一。
GUI方面几乎全部的二次开发功能都将由它运筹帷幄。
●功用:⏹组织我们自己强大的菜单系统。
想象一下我们在Ansys中也能轻松做出可以和VC,VB之类主流GUI开发工具媲美的菜单响应效果,Ansys的世界将是多么的亲切、友好。
⏹构建功能繁复的对话框。
Ansys中美观易用的ContactWizard对话框级联界面一定让你印象很深把,有了它,即使是最菜鸟的门外汉也能构建一流的工程算例,Ansys5.7中的DesignSpace应该就是无可争辩的例证之一。
应用系统二次开发技术说明书
武汉市交通经济技术信息中心DLP大屏幕监控系统工程项目应用系统二次开发技术说明书武汉XXXX工程有限公司编制2006年6月目录1 设计目的 (3)2 设计原则 (3)3 实现功能 (3)4 开发概述 (3)4.1 VW AS大屏幕管理软件概述 (3)4.1.1 VW AS的系统结构 (4)4.1.2 VW AS的管理控制功能 (5)4.1.3 VW AS的多用户管理 (6)4.1.4 VW AS的多点控制 (7)4.2 VW AS的二次开发功能 (7)4.2.1 用户应用系统集成VW AS (8)4.2.2 VW AS集成用户应用系统 (9)5.系统二次开发接口及说明 (10)5.1、简介 (10)5.2、编程说明 (11)1 设计目的在武汉交通经济技术信息中心DLP大屏幕监控系统工程项目中,应用系统包括视频监控、GPS、GIS、网络计算机信号和音频信号等系统,本文主要针对上述应用系统如何与VTRON的VW AS大屏幕管理软件进行集成提供相应的技术方案。
2 设计原则根据为用户提供个性化产品服务的原则,从经济可行性出发整体考虑,着重在多系统综合应用的二次开发,为用户量身定做一套专业的大屏幕显示系统。
3 实现功能根据视频监控设备商和软件集成商提供的相关接口协议(主要包括视频服务器、视频解码矩阵和中心的视频监控软件等),对VTRON的VWAS大屏幕管理软件进行集成,可通过VW AS管理软件在大屏幕显示墙的任意位置、以任意大小显示相关的视频信号。
为信息中心的视频监控、GPS、GIS系统提供大屏幕应用的二次开发需要,真正发挥大屏幕系统高分辨率、多信号源、跨平台、集中显示的优势。
全面整合视频图象、网络计算机信号和音频信号控制系统,实现系统的各项控制在一个界面上完成操作,简洁方便,从而达到系统控制的高度集成。
4 开发概述4.1 VWAS大屏幕管理软件概述VTRON的VW AS大屏幕控制管理系统是VTRON大屏幕显示系统专用管理系统。
intelliRule规则系统二次开发手册
目录1概述 (1)1.1INTELLI R ULE简介 (1)1.2规则引擎原理 (1)1.3开发环境搭建 (2)1.4术语 (2)1.4.1业务规则 (3)1.4.2无状态会话 (3)1.4.3有状态会话 (3)2开发过程 (3)2.1收集和组织业务规则 (4)2.2开发业务词汇 (4)2.3编辑业务规则 (4)2.4映射技术实现 (5)2.5编译业务规则 (5)2.6测试业务规则 (5)3开发约定 (5)3.1使用业务对象别名 (5)3.2日期和日期时间比较 (6)3.3技术实现获取枚举值 (6)3.4数值表达式计算 (6)3.5数据库连接 (6)4接口调用 (6)4.1示例1:装载规则 (7)4.2示例2:断言对象执行规则 (7)4.3示例3:断言对象为L IST (8)4.4示例4:规则中使用同一对象的多个实例 (9)5常见问题 (10)1概述1.1 intelliRule简介intelliRule 规则管理系统是一个使用J2EE 技术来实现的业务规则系统(BRM),其目标是实现应用系统和业务规则相互分离,使得业务人员可以独立地定义和集中可视化管理业务规则,即可以实现根据策略的调整快速地改变规则,而且可以使业务规则作为一项重要的资产被独立地集中管理,从而提高企业在激烈变化的环境下强大的灵活性和良好的适应性,使企业保持竞争优势。
intelliRule 业务规则系统遵从业界标准的JSR94 规范以及业务规则系统的原理,可以满足金融、保险和电信等行业使用业务语言描述和开发业务逻辑的需要,产品提供包括规则编辑工具和规则执行引擎技术的完整解决方案,其价值在于满足企业希望引入新技术实现更灵活更改业务规则的需要,使业务人员能摆脱开发人员独立地修改业务规则,intelliRule 也可以和intelliFlow 很好地配合,工作流负责宏观的任务流程定制和重组,规则系统则负责微观的任务逻辑与实现分离。
intelliRule主要由规则编辑器和规则引擎组成,规则编辑器实现规则的编辑和编译,规则引擎执行规则,关于规则编辑器的功能和使用请参考《intelliRule规则系统安装手册.pdf》1.2 规则引擎原理规则引擎负责对业务规则进行解释。
二次开发手册
二次开发手册业务流程定制1.基础业务单据方案定义基础业务单据适用于采用主-明细结构的业务流程,主表和明细表为一对多的关系,并通过一个字段关联(一般为DJID),如采购入库单、处方划价单等。
如图:1.1方案总体方案编号:业务方案的编号,每个方案都有一个编号,编号不能重复。
方案名称:方案的名称,同时也是方案窗体的标题。
单据标识: 单据编号的开头部分单据编号长度: 单据编号的总长度单据编码格式: YYYY 代表四位的年,YY代表两位的年,MM:两位月,DD:两位日,CZY:操作员编号,用'+'号连接各个部分也可使用固定字符。
如:'SFD'+YYYY+MM+DD ,设置编码格式后单据标识不起作用,但同样受到编号长度的约束。
主明细关键字段: 定义主表和明细表的关键字段,一般为'DjID'明细序号字段: 定义明细表的序号字段,一般为'Xh'(如图:)1.2基础业务单据方案主要构成要素:主表SQL: 定义单据数据主表的数据来源的SQL语句。
主表用来存储单据主体数据,如单据编号、日期、操作员、以及明细表的汇总信息等。
明细表SQL: 定义单据明细数据来源的SQL语句。
明细表用来存储明细数据一次检索SQL: 定义辅助明细数据输入的检索数据来源的SQL语句;一次检索数据只作为数据的来源,不存储数据。
插入明细数据时,扫描明细数据字段和检索数据字段,如果字段名称相同则将检索数据写入该字段。
二次检索SQL: 定义在一次检索完成之后的辅助明细数据输入的检索数据来源的SQL语句;是一次检索的补充。
比如做门诊收费功能时用做选择处方。
保存执行SQL: 定义单据在保存时执行的SQL语句。
1.3相关设置:显示一次检索:设置是否显示检索栏。
(有的业务单据不需要检索栏)数字码字段:当输入框中输入纯数字时,将以设置的数字码字段进行动态查找汉字码字段:当输入框中含有汉字时,将以设置的汉字码字段进行动态查找拼音码字段:当输入框中为字母时,将以设置的拼音码字段进行动态查找条形码字段:当输入框中为输入条码时,将以设置的条形码字段定位检索数据二次检索输入提示:设置二次检索时的输入提示二次检索后结束输入:设置是否在二次检索后结束输入(具体参看图形)1.4打印设置报表名称:打印样式的文件名,不用加后缀单据SQL语句:打印数据来源的SQL语句保存后默认打印:设置保存后是否默认为打印1.5颜色设置明细网格显示选项背景色:指定明细网格的背景色,默认为白色行醒目显示条件:定义明细数据行醒目显示的条件,当满足条件时,该行将以指定的颜色显示。
微软CRM系统二次开发步骤以及注意事项知识交流
微软CRM系统二次开发步骤以及注意事项微软CRM系统的二次开发主要包括四个方面:1)自定义实体的设置;2):站点图的设置;3)IS V.Config文件(实体页面导航条以及功能菜单)的配置;4)客户端JavaScript的设计。
特别注意:对系统中进行的二次开发之后一定要在自定义界面选择“发布”,不然是不能使用的。
一:自定义实体的设置微软CRM系统提供按照自己需求要求,对CRM系统功能进行扩充,因此也涉及到用户自定义实体的设计工作,在白沙集团,按照烟草行业的需求,以及结合微软CRM系统的要求,做出了一个烟草行业的自定义实体的数据库文件,见《微软CRM自定义实体》,在该文件中定义了31张自定义数据库表。
进入自定义设置的方法是依次按照系统导航条选择:设置→设置→组织设置→系统设置→自定义,进入自定义设置界面,然后“新建”,按照系统以及自定义实体数据库表的要求,对系统进行表的添加,注意的是:对于自定义的表名系统是要提供默认前缀的,系统默认的是new_,同时系统要求提供一个真正的数据库表的名称和一个显示名称,还要注意的是系统只提供数据库的一对多,和多对一的关系,不提供多对多关系的数据库设计。
添加完表后,就要添加相关的表字段的设置,一般的字段设置直接添加,涉及到表与表之间的关联字段,则是通过字段之间的关系设置完成的,有专门的“关系”菜单进行设置,如果要想直接通过关系,直接在页面上直接显示,则要把关系字段进行影射,注意的是在做关系和影射时,两个字段的类型要一定一样才行。
以下为在实体定义中的关系和影射设置图:定义完好表以及字段之后,则要对表单和视图进行设计,以便在页面上进行显示操作,以下是设置表单的页面界面:在上图中的Add a Tab表示添加一个标签,如上图中的Detail;Add a Section表示添加一个节,如上图中的“Business Information”,Add Fields表示在那个节中添加具体的字段,如“Ownership”;Add an IFrame表示添加一个页面框架,跟html中的IFrame是一致的,用来引用外部的页面。
基于sinumerik 802c base line数控系统的m指令二次开发
制其NC自动程序执行的PLC程序。
2.2 M指令二次开发步骤要实现生产自动化,数控机床必须在已使用的M指令基础上开发必要的辅助加工指令。
具体步骤和内容为:(1)先确定所开发M指令的实际功能,确定其控制对象的工作原理。
(2)查找所开发M指令的V区地址,SINUMERIK 802Cbase line系统动态M功能指令对应地址。
(3)确定所开发M指令生效时机床的运行模式及其有效信号地址及PLC有效参数地址。
(4)确定所开发M指令控制机床状态地址及其输出地址。
确定所开发M指令执行过程中可能被强制终止的情况。
(5)编制PLC主程序和子程序。
完成后先将数控机床原有数据导出备份,然后将新开发的程序下载到机床中进行在线调试。
3 机床冷却功能M指令二次开发本校实训台数控系统不具备冷却功能PLC程序,故研究其二次开发方法。
3.1 数控机床冷却控制工作原理数控机床的冷却由电动机控制,控制原理图如图1所示。
当有自动冷却指令时,这时在图2中PLC输出Q0.2有效,KA1线圈通电,继电器触点闭合,KM1线圈通电,交流接触器主触点吸合,冷却电动机旋转,带动冷却泵工作。
0 引言《中国制造2025》部署全面推进实施制造强国战略,其中高档数控机床和机器人是重点发展的十大领域之一[1]。
德国工业4.0使制造业迎来了第4次工业革命,以生产高度数字化,网络化、机器自组织为标志。
美国提出工业互联网,将通用电气(GE)作为代表,通过软件、大数据分析,机床互联,提高产品生产效率[2]。
随着国内外数控系统在柔性,可靠性和开放性等方面的飞速发展,许多理论和技术问题得到了较好的解决,数控机床可开发为智能机床,满足用户的个性化需求[3]。
1 M指令二次开发要求实验室THWZDC-1型数控机床四合一电气控制与维修实训台,采用开放式结构、模块化设计,由数控系统模块、主轴控制模块、进给驱动模块、输入/输出模块、电气控制模块、换刀控制模块,数控装置模块,故障排除单元和电机演示模块组成;采用西门子公司802C base line数控系统,主轴采用变频器控制,X、Y、Z三轴采用交流伺服驱动;一台数控机床电控系统的每一主要环节都在电控演示模块上分解展示,其信号均可测量[4]。
织梦dedeCMS二次开发文档手册
DedeCMS二次开发必备基础:•非常熟悉HTML•熟悉DIV+CSS的布局•扎实的PHP基础,熟悉结构化编程,了解OOP,并能看懂和使用•熟悉MYSQL,掌握SQL语言DedeCMS二次开发学习过程•理解CMS是什么•熟悉DedeCMS的功能(如:栏目的分类,文档管理,模型的使用,系统的设置等常用的功能)•掌握DedeCMS的模板标签使用及原理•DedeCMS目录结构分析熟悉每个文件夹里面主要装什么文件,这样在二次开发的时候知道在哪个文件夹下的什么文件修改目录结构摘要:./a 生成文件存放路径./data 缓存文件及数据中心/admin 管理后台数据/backupdata 备份数据/cache 缓存文件/enums 级别联动数据,JS,枚举类型的缓存文件/js 常用的JS/mark 水印相关文件/module 模块安装文件/rss Rss相关/sessions Session 存放路径/textdata 文本数据/tplcache 模板缓存/uploadtmp 上传文件缓存位置/ziptmp zip包解压缓存位置……•DedeCMS文件结构分析熟悉每个文件的基本功能,方便做修改,知道每个文件的大概作用之后,可以方便的对文件进行修改文件结构摘要:common.inc.php 数据库配置文件config.cache.bak.php 后台系统配置备份config.cache.inc.php 后台系统配置文件缓存downmix.data.php 采集混淆缓存文件mysql_error_track.inc MYSQL错误��志safequestions.php 安全问题sitemap.html 站点地图sys_pay.cache.php 支付网关配置template.rand.php 随机模板设置……•DedeCMS数据库结构分析,至少要熟悉每个表的作用熟悉每个表的作用,了解几个核心表的设计及字段的含义,方便拿到新的需求之后,能快速的判断是否加字段,还是新建表来处理。
恩信ERP安装、定制和二次开发
第一部分:点评。
在开源社区里面,活动的中国人身影倒是不少,但中国人贡献的开源软件凤毛麟角,更不用说优秀的开源产品了,这次恩信把自己的东东开源了,至少表明一种开放的态度,而且更重要的是这个开源ERP 还能用!我从去年年底开始帮助深圳一家企业实施恩信ERP,安装非常容易,初始化比较难,建立一个开发环境就更难了,但所有的这一切我都克服了。
在原有基础上增加了许多必须的功能:如反审核、产品档案登记时直接输入产品编号、物料成本价格小数位数调整到4位、财务系统中增加试算平衡表和科目余额表以及各种反结算结转功能、增加税率等。
恩信erp程序代码质量实在不敢恭维,不去说产品的格式规范(我个人理解是恩信公司为了增加阅读难度故意打乱代码,如果是无意行为,那很难相信开发员初中毕业了)了,错误百出,而且开发员根本没考虑合理利用计算机资源的问题——内存分配、CPU占用和数据库表设计方面根本就是一个外行,无用变量的定义随处可见,无用的代码充满着每个程序片段。
更让人为之脸红的是所有的数据库表关键字段竟然就是一个自动增长的id字段,对于为什么数据库表记录要用关键字段和数据库表设计方面必须要考虑的范式问题,恩信的开发人员难道真的一无所知!对于恩信开源erp,里面有的功能竟然是个空壳(如试算平衡,只是在jsp代码中写上一句“试算平衡了”),根据恩信官方的介绍,开源erp和vip erp主体部分是一样的,但实际上真的是这样吗?答案是否定的,如果哪位计算机同仁不能进行二次开发,强烈建议你千万不要把恩信开源ERP用于企业中,因为谁也不能保证在那华丽的操作界面之下到底蕴含着怎样的漏洞!!在这里我给恩信一个建议:参考康比尔(compirer)的开源策略,同时推出一个开源成品和一个闭源产品,把一些重要的功能从开源产品中拿走,然后在官方网站上明确声明二者的区别,但是开源erp的程序代码质量方面真的需要改进改进。
我曾经记得一个有分量的开源软件追随者自己开发了一个软件,功能很好,但他不敢开源,他自己说之所以不开源就是怕丢人,和一些优秀的开源软件相比,他的程序代码质量不是在同一个档次上。
思道OA二次开发手册2013
思道OAV6.1二次开发手册 最后修订:2012-12-7前言思道OA基于/开发,数据库使用SQL Server,开发工具使用Visual Studio。
思道OA提供开放的二次开发系统架构、Web开发的全套环境,并提供了管理架构、系统资源的开放性支持,是开发管理应用系统的理想平台。
本文将从不同的技术层面向您揭示思道OA的二次开发细节,是主要针对程序设计人员、软件产品技术支持人员编写的OA二次开发入门教程。
目 录一、开发环境简介 (4)1.1编程环境 (4)1.2目录层次结构 (4)二、数据库管理与应用 (4)2.1数据库的配置 (4)2.2数据库的管理 (5)三、系统设计 (5)3.1系统代码定义 (5)3.2系统菜单定义 (5)3.3桌面模块定义 (6)四、SDK开发类库 (7)4.1SDK类库 (7)4.3数据库连接信息 (8)4.4类库说明 (8)五、单点登录 (17)六、开发第一个HELLOWORD程序 (18)七、主要数据库结构 (25)八、二次开发代码示例 (29)一、开发环境简介1.1 编程环境思道OA基于Microsoft .NET/开发,数据库使用SQL Server,开发工具使用Visual Studio。
1.2目录层次结构下面对目录结构说明:Webroot├─bin 本地程序集├─aspnet_client 脚本库├─attachment 附件目录│ │ ├─file_folder 个人文件柜│ │ ├─global 各个模块的附件│ │ ├─gzzd 规章制度│ │ ├─knowledge 知识共享│ │ ├─netdisk 网络硬盘│ │ ├─qikan 电子期刊│ │ ├─share_file 文档共享│ │ ├─share_report 报表共享│ │ ├─temp 临时附件│ │ ├─template Office文件模板│ │ └─userfiles 文本编辑器上传的图片和Flash├─ckeditor ckeditor编辑器控件├─general 主要模块目录├─mytable 桌面模块├─images 系统图片├─module 系统组件├─PrecompiledApp.config└─Web.config二、数据库管理与应用2.1 数据库的配置OA系统数据库的配置信息保存在Web.config里的AppSettings。
INtools软件二次开发的创新研究及应用
INtools软件二次开发的创新研究及应用郑永峻;李俊;赵耀【摘要】针对INtools软件数据库的特点,结合软件自带生成端子图的功能,通过研究INtools软件数据的读取和写入,独立自主开发出将I/O清单、仪表清单和端子图信息一次性批量导入INtools数据库的软件.I/O清单、仪表清单和端子图不再需要人工绘制或者输入,保证了清单和图纸的正确率、完整性和格式的一致性,为工程施工提供高质量的设计成果,并且在生产项目中得到成功应用,节约设计成本约65%,产生很好的经济效益.%According to the characteristics of INtools database software,combining with software to generate terminal diagram function through the data of the INtools software to read andwrite,develop independent research software I/O list,instruments list and terminal diagram information in one batch into INtools database.I/O list,instruments list and terminal diagram does not need manual drawing or input,good consistency,accuracy and integrity of the list of drawings and formats,providing high quality outcomes for the project construction,and has been successfully used in the production of the project,save design costs about 65 %,produce good economic benefits.【期刊名称】《工业仪表与自动化装置》【年(卷),期】2017(000)004【总页数】4页(P97-100)【关键词】INtools;数据库;I/O清单;仪表清单;端子图【作者】郑永峻;李俊;赵耀【作者单位】海洋石油工程股份有限公司,天津300451;海洋石油工程股份有限公司,天津300451;海洋石油工程股份有限公司,天津300451【正文语种】中文【中图分类】TP3111.1 软件功能模块简介海洋工程行业竞争日益激烈,工程项目应本着高质、高效、低成本的理念,不断创新,降本增效。
DedeCms二次开发手册
DedeCms系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅提供最基本的默认模板,即是内置系统模型的各个模板,由于DedeCms支持自定义频道模型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCms也支持使用风格的形式使用模板,默认风格是default,它表示系统默认使用cmspath/templets/default这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除default原有的文件,把下载的模板文件夹命名你想要的风格名称,如style2等,然后在后台修改了默认的模板风格名称为style2,那系统将使用templets/style2这文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。
一、概念,设计和使用模板,必须要理解下面几个概念1、板块(封面)模板:指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎去解析后才输出内容或生成特定的文件。
2、列表模板:指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm”命名。
3、档案模板:表示文档查看页的模板,如文章模板,一般用“article_识别ID.htm”命名。
4、其它模板:一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定义一个模板创建为任意文件。
二、命名,DedeCms模板默认命名规则如下1、模板保存位置:模板目录:cmspath/templets/样式名称(英文,默认为default,其中system为系统底层模板,plus 为插件使用的模板)/具体功能模板文件}2、模板文件命名规范:(1)index_识别ID.htm:表示板块(栏目封面)模板;(2)list_识别ID.htm:表示栏目列表模板;(3)article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);(4)search.htm:搜索结果列表模板;(5)index.htm:主页模板;注解:[识别ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地方确定某个频道的模板命名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i N E S T I M系统二次开发手册标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]iNESTIM系统数据展示及应用分析平台二次开发手册目录文件修订记录一、引言iNESTIM软件是面向企业(集团)应用需求而研发的专业能源监测与集中控制管理平台,帮助企业加强能源计量管理,开展企业节能降耗行动,提高能源利用率,减少资源消耗、保护环境;协助企业更好地完成资源调配、组织生产、部门结算、成本核算,对能源供应进行监测,以便企业实时掌握能源状况,为实现能源自动化调控奠定坚实的数据基础。
系统配合各用能单位的节能工作,科学合理地降低单位产值或单位产品的能源资源消耗,实现分产品、分车间的能源管理,提高能源资源的利用水平,建立科学合理的能源体系,同时为用能单位能源网络的设计、优化、改造提供全面的基础数据和分析数据;加强对用能单位能源利用状况的宏观监督管理,以及对用能单位能源资源投入产出全过程进行全面的审计,建立科学的能源审计体系;为企业的安全、可靠、高效的用能提供全面的科学指导,最大限度地延长企业生产设备的使用寿命,有效降低维护成本。
本手册定制的目的是为了对项目实施及配置过程中的一些简单二次开发方式做一些说明。
二菜单配置方式菜单订制及查询sql定制Sql定制页面的功能是将简单的横行乘数列的表格使用web的方式展示。
原理是通过sql语句获取数据集并将获取到的数据集在web上展示出来。
此过程只涉及到2个数据表分别是module_info表与report_unit表。
也就是说在以上2张表中将记录完成就能在web上形成一个sql定制页面。
在数据库中直接配置的方法如下:2.1.1 数据表介绍首先介绍下module_info及report_unit的主要字段:Module_info菜单信息表MODULEID 数字型,菜单编号,MODULETYPEID 数字型,菜单种类编号大部分时候使用‘1’即可,PARENTID 数字型,父节点编号,即此菜单项下挂于菜单树的哪一级,MODULENAME 字符型,菜单名称,MODULEURL 字符型,页面地址及参数,STATE 数字型,默认0,ADMINPERM 字符型,管理权限字符串,使用‘1’,READPERM 字符型,读权限字符串,使用‘1’,FUNCTIONID 数字型,,TREEID 数字型,此菜单使用的树编号,此id对应MODULE_TREE_RELATION表中的id,ORDERINDEX 数字型,排序编号,若此菜单所属的父菜单包含多个子菜单,依照此字段的大小排序IMG 字符型,菜单在菜单树中使用的图片MODULETYPE 字符型,标识位,‘0’表示此项内容在后台系统即管理员显示,‘1’表示在前台系统即数据浏览页面显示。
SINGLE 字符型,标识位,‘0’即可。
REPORT_UNIT 报表信息表RE_UNIT_ID 数字型,报表编号,RE_UNIT_NAME 字符型,报表名称,显示于数据页面的正中,图形的上方,RE_UNIT_DEGREE 字符型,备用字段可为空,RE_UNIT_SQL 字符型,数据查询所用sql,RE_UNIT_RPT 字符型,模板名,可为空RE_UNIT_CONTERT 字符型,与RE_UNIT_NAME相同,RE_UNIT_CONDITION 字符型,可为空,RE_UNIT_SQL1 字符型,下钻页面所用sql,可为空,RE_DATA 字符型,标识位,是否可下钻‘1’为支持下钻,‘0’为不可下钻,RE_TIME_VISIBLE 字符型,标识位,时间字段可否下钻‘0’为显示双时间(起至),‘1’为单时间(时间点),‘2’为无时间XAXIS 字符型,x轴、横轴字段,一般为时间字段,填写字段顺序号即可,即希望做横轴的字段在sql查询数据集中为第几个字段。
YAXIS 字符型,y轴、纵轴字段,一般为数据字段,填写字段顺序号即可,即希望做横轴的字段在sql查询数据集中为第几个字段。
,YUNIT 字符型,y轴、纵轴单位,即数据字段所对应的单位如:kwH、A、V等,TIMER 字符型,填写字段编号,表示要进行时间下钻查询的第几个字段, PARMER 字符型,填写字段编号,表示要进行档案下钻查询的第几个字段2.1.2编写数据查询sql将需要进行查询的sql语句写出并按要求调整,以日电量查询为例:SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=这样的语句就能将所有日电量表中的电量数据查询出来了,但是在web上使用常常需要加条件如id = 445 及时间从2011-6-20到2011-6-23那么语句变成如下格式:SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=and in (445)and to_date('1970-01-01 08:00:00', 'yyyy-mm-ddHH24:mi:ss')+86400>=to_date('2011-06-20', 'yyyy-mm-dd')and to_date('1970-01-01 08:00:00', 'yyyy-mm-ddHH24:mi:ss')+86400<=to_date('2011-06-23', 'yyyy-mm-dd')而在web中所查询的参数是非固定的,是在每次查询的时候选择的,所以id及时间字段应该使用变量,inestim_web中为这样的变量值设置了固定的变量如 id 为v_mp_id,起始日时间为v_timestrday,结束日时间为v_timeendday,并将查询语句中所有不符合web 使用方式的单引号'替换为",所有参数变量名可以参照2.2.4的表格。
则最终结果变成SELECT as编号, as 名称, c_tv as 时间, as 电量FROM d_ele a,eq_param bWHERE=and in(v_mp_id)and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400>=to_date("v_timestrday","yyyy-mm-dd HH24:mi:ss")and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400<=to_date("v_timeendday","yyyy-mm-dd HH24:mi:ss")2.1.3 查询sql订制在report_unit中可以指定将要制作的页面中用于图形显示的字段,如:在查询的结果集中时间字段是第3个,数据字段是第4个,那么XAXIS为3,YAXIS为4,因为查询的结果值为电量所以单位应该是kwH,给将要增加的记录一个编号,要求在report_unit 中没有被使用过的如(2014),然后按照3.6.6.1所描述的字段定义组织记录如下:Insert into module_info(RE_UNIT_ID, RE_UNIT_NAME, RE_UNIT_SQL, RE_UNIT_CONTERT, RE_DATA,RE_TIME_VISIBLE, XAXIS, YAXIS, YUNIT, TIMER, PARMER)Values(2014,'日电量查询','selectas编号,as名称,to_date("1970-01-01 08:00:00","yyyy-mm-dd HH24:mi:ss")+86400as时间,trunc,2)as电量from d_ele a,eq_param bwhere=and=3199and in(v_mp_id)and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400>=to_date("v_timestrday","yyyy-mm-dd HH24:mi:ss")and to_date("1970-01-01 08:00:00","yyyy-mm-ddHH24:mi:ss")+86400<=to_date("v_timeendday","yyyy-mm-dd HH24:mi:ss")', 'null', '1', '1', '3', '4', 'KWh', '3', '2');COMMIT;将此记录插入report_unit表中,然后就可以为此报表增加一个菜单了。
2.1.4 菜单添加在module_info表为报表增加菜单记录需要注意的有:必须使用尚未被使用的菜单编号(moduleid),即此编号不可重复;若为数据查询页面,必须将此菜单正确的挂在某一父节点(parent_id)下;选择正确的树类型(treeid);明确菜单在前台数据浏览系统或者后台档案管理系统展示(moduletype)。
以将2.2.5.2的报表挂上菜单为例:找到一个尚未被使用的编号如:1662;此报表属于数据查询界面所以必须有父节点,因为属于电量查询我们将它下挂在18 电量统计下;他需要查询所有的对象包括虚拟节点与实际表计我们使用全树id为12(树的建立在另一章节中有说明。
);此页面应该在数据浏览系统被展示所以moduletype为1,然后我们组装关键的MODULEURL字段,以下如下地址模版进行:pages/share/flag=2&report_id=2014&dttype=d问号之前的部分为sql定制报表页面模板文件路径,所有的定制sql页面都使用此模板,故无需改动;flag字段为时间标识位,表示使用几个查询时间条件,可以使用的有’0’,’1’,’2’,0表示不使用时间条件,1表示时间点查询使用一个时间条件,2表示使用时间段查询,需要使用2个时间条件;report_id为使用报表在report_unit表中的记录编号,在2.2.5.2中我们使用的是2014;dttype为时间类型字段表示使用的查询时间条件最小单位是小时(h)或者天(d)或者月(m),所以例子的结果应该是pages/share/flag=2&report_id=2014&dttype=d。