文章目录
一、开发准备
二、开发环境搭建
步骤1:从服务器上拷贝WEAVER/ecology代码
步骤2:把本地代码导入到myeclipse工程中
步骤3:配置ecology项目环境
步骤4:修改ecology项目中数据库配置文件
步骤5:Resin配置文件
步骤6:启动运行
三、Ecology8系统里一个jsp页面通常需要包含什么内容
1、相关的操作的类、jsp标签、样式等
2、右键菜单
3、多语言标签
4、操作权限
四、E8控件说明
Tab组件
浏览框组件-标签
表单布局组件
可编辑表格
分页控件
Java验证复选框代码:
弹出框组件
右键菜单
weaverTree树形组件
日期控件
扩展日期控件
开关组件
五、OA流程自定义接口
一、开发准备
Ecology系统说明 :
ecology8.0文件页面编码为UTF-8
ecology8.0 JDK版本 1.6
ecology8.0 应用服务器为Resin
Ecology安装目录说明:
ecology:OA主程序目录
JDK:Java目录
Resin:应用服务器的目录
ecology主要目录说明: ecology
classbean 存放编译后的CLASS文件
js 系统中使用的JAVASCRIPT和VBSCRIPT脚本
css 系统中JSP页面使用的样式
images
images_face
images_frame 系统中使用的图片的存放目录
log 系统中日志存放目录
sqlupgrade升级SQL脚本目录
workflow 各功能分文件夹存放每个功能的文件
WEB-INF
lib 系统依赖Jar文件目录
prop 系统配置文件存放
service 系统的接口配置文件的存放
securitylog 安全补丁日志
securityXML自定义安全补丁配置目录
二、开发环境搭建
步骤1:从服务器上拷贝WEAVER/ecology代码
从服务器拷贝ecology相关代码到本地,目录服务器上文件如下图,需拷贝ecology、Resin,如果本机已安装JDK则可以不需拷贝JDK
步骤2:把本地代码导入到myeclipse工程中
点击Finish , 之后项目会build project建立索引会有很长一段时间的等待。
步骤3:配置ecology项目环境
配置Resin 3.x
配置Ecology所需的JDK
点击Add JAR/ZIP 加入Resin->lib目录下所有的jar包
步骤4:修改ecology项目中数据库配置文件
请一定要记得修改数据库配置文件中的数据库配置
配置文件:D:/weaver/ecology/WEB-INF/prop/weaver.properties
SQLServer数据库:
步骤5:Resin配置文件
配置文件Resin/conf/resin.conf配置ecology8所在目录。root-directory为本地ecology8的路径。 修改默认Resin服务监听端口
步骤6:启动运行
点击应用服务Resin3–Star
Console控制台出现以下信息,则代表启动成功!
三、Ecology8系统里一个jsp页面通常需要包含什么内容
• 相关的操作的类、JSP标签、样式等 • 右键菜单 • 多语言标签 • 操作权限
1、相关的操作的类、jsp标签、样式等
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util,weaver.hrm.common.*,weaver.conn.*" %>
<%@ page import="weaver.file.*,net.sf.json.*,java.util.*,java.text.*,weaver.common.DataBook" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea"%>
<%@ taglib uri="/browserTag" prefix="brow"%>
< script language = javascript src = " /js/ecology8/docs/docSearchInit_wev8.js" > script> < !—高级搜索-->
2、右键菜单
<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
<%
if(HrmUserVarify.checkUserRight("HrmCountriesAdd:Add", user)){ //判断是否有对应的权限,有则显示该菜单
RCMenu += "{"+SystemEnv.getHtmlLabelName(82,user.getLanguage())+",javascript:doAdd();,_self} " ;
/*标签显示菜单名,如 82 为新增*/
RCMenuHeight += RCMenuHeightStep;
}
%>
<%@ include file="/systeminfo/RightClickMenu_w3ev8.jsp" %>
3、多语言标签
<%=SystemEnv.getHtmlLabelName(21995,user.getLanguage())%>
这样的形式来表示,其中的数字21995,就是表示高级搜索 ,同时可以通过
select labelname from htmllabelinfo where indexid= 21995 and languageid= 7
来获取到“高级搜索”这个显示名称;
languageid=7表示中文显示名称,
languageid=8表示英文显示名称,
languageid=9表示繁体显示名称.
?? 如何在数据中添加多语言版本的标签 ?? 举个栗子: 添加的标签请使用负的ID,这样可以不与之前的标签产生冲突,方便后期维护升级,ID值通过sql获取
Select min ( id) - 1 from HtmlLabelIndex
delete from HtmlLabelIndex where id= - 11705
GO
delete from HtmlLabelInfo where indexid= - 11705
GO
INSERT INTO HtmlLabelIndex values ( - 11705 , ‘多语言标签’)
GO
INSERT INTO HtmlLabelInfo VALUES ( - 11705 , ‘多语言标签’, 7 )
GO
INSERT INTO HtmlLabelInfo VALUES ( - 11705 , ’ Multilingual label ', 8 )
GO
INSERT INTO HtmlLabelInfo VALUES ( - 11705 , ‘多語言標簽’, 9 )
GO
4、操作权限
通过sql先在数据库添加一个需要的权限
delete from SystemRightDetail where rightid = - 1031
GO
delete from SystemRightsLanguage where id = - 1031
GO
delete from SystemRights where id = - 1031
GO
insert into SystemRights ( id, rightdesc, righttype) values ( - 1031 , ‘合同管理’, ‘7 ’)
GO
insert into SystemRightsLanguage ( id, languageid, rightname, rightdesc) values ( - 1031 , 9 , ‘合同管理’, ‘合同管理’)
GO
insert into SystemRightsLanguage ( id, languageid, rightname, rightdesc) values ( - 1031 , 8 , ‘oaproject contractManage’, ‘oaproject contractManage’)
GO
insert into SystemRightsLanguage ( id, languageid, rightname, rightdesc) values ( - 1031 , 7 , ‘合同管理’, ‘合同管理’)
GO
insert into SystemRightDetail ( id, rightdetailname, rightdetail, rightid) values ( - 1031 , ‘合同管理’, ‘oaproject_contractManage’, - 1031 )
GO
在要需要控制权限的jsp页面上加上以下的代码就可以
<%@ include file="/systeminfo/init.jsp" %>
<%
if(!HrmUserVarify.checkUserRight(“oaproject_contractManage “, user) ) {
response.sendRedirect(”/notice/noright.jsp”);
return;
}
%>
四、E8控件说明
Tab组件
效果图: 实现方式有以下两种:
Iframe形式引用:
$ ( function ( ) {
$ ( '.e8_box' ) . Tabs ( {
getLine: 1 ,
iframe: "tabcontentframe" ,
mouldID: "<%= MouldIDConst.getID(" formmode")%>" ,
staticOnLoad: true ,
objName: "供货记录"
} ) ;
} ) ;
非Iframe形式引用:
< jsp: include page = " /systeminfo/commonTabHead.jsp" >
< jsp: param name = " mouldID" value = " formmode " /> //指定图标id
< jsp: param name = " navName" value = " 供货记录" /> //指定显示的名称
jsp: include>
< jsp: include page = " /systeminfo/commonTabFoot.jsp" > jsp: include>
所需引入js
浏览框组件-标签
效果图:
所需引入js:
<%@ taglib uri="/WEB-INF/tld/browser.tld" prefix=“brow”%>
常用属性说明:
name=“workflowid” //浏览框的id和name
viewType=“0” //字段类型(0:主表字段,1:明细表字段) 用于流程中,该属性非必要
hasBrowser=“true” //显示放大镜
hasAdd=“false” //显示添加按钮
browserUrl="/systeminfo/BrowserMain.jsp?url=/workflow/workflow/WorkflowBrowser_frm.jsp" //浏览框打开的页面地址
isMustInput=“2” //是否必填 字段是否必填(默认是0) 2:必填
isSingle=“true” //是否单选
hasInput=“true” //是否显示输入框
completeUrl="/data.jsp?type=workflowBrowser&isTemplate=0" //自动联想的地址
width=“300px” //浏览框的宽度
browserValue="" //默认浏览框隐藏域的值
browserSpanValue=""//默认浏览框显示的值
onPropertyChange="" //浏览按钮对应的隐藏域的触发的onpropertychange事件调用的方法
_callback=""//执行完browserUrl事件后的回调方法,该方法默认传递四个参数(event,datas,name,_callbackParams)
_callbackParams=""//_callback所需要的参数
/>
单人员浏览框(最多只能选择一个人员)例:
< brow: browser viewType = " 0" id = " pName" name = " pName" browserValue = " "
browserUrl = " /systeminfo/BrowserMain.jsp?url=/hrm/resource/ResourceBrowser.jsp?selectedids="
hasInput = " true"
isSingle = " true"
hasBrowser = " true"
isMustInput = ' 1'
completeUrl = " /data.jsp"
linkUrl = " javascript:openhrm($id$)" width = " 165px" browserSpanValue = " " />
多人员浏览框(可以选择多个人员)例:
< brow: browser name = " userid" viewType = " 0" hasBrowser = " true" hasAdd = " false"
browserUrl = ' <%=" /systeminfo/BrowserMain.jsp?url=/hrm/resource/MutiResourceBrowser.jsp" %>'
isMustInput = " 2" isSingle = " false" hasInput = " true" completeUrl = " /data.jsp?type=1"
width = " 300px" browserValue = ' ' browserSpanValue = ' ' />
表单布局组件
效果图: 点击查询条件2后面的箭头显示如下: 是否显示,控制不同的item和group显示或者隐藏 注意:
wea:layout, wea:group, wea:item都必须成对出现。
wea:layout: 表示一个完整的布局,页面上可以出现多个布局。
wea:group: 必须嵌套在wea:layout中使用,表示布局的一个组,类似于table
wea:item: 必须嵌套在wea:group中使用,表示布局中某个组里的一个单元格,类似td
所需标签:
<%@ taglib uri="/WEB-INF/weaver.tld" prefix="wea" %>
<%@ include file="/systeminfo/init_wev8.jsp" %>
<%@ taglib uri="/WEB-INF/tld/browser.tld" prefix="brow" %>
例子:
< wea: layout type = " fourCol" >
< wea: group context = " 常用条件" attributes = " {' class' :\"e8_title e8_title_1\",' samePair' :' showgroup' }" >
< wea: item> 标题wea: item>
< wea: item>
< wea: required id = " aaspan" required = " true" >
< input type = " text" name = " aa" id = " aa" /> wea: required>
wea: item>
< wea: item> 编号wea: item>
< wea: item>
< input type = " text" name = " bb" id = " bb" value = " b" />
wea: item>
< wea: item> 创建日期wea: item>
< wea: item attributes = " {\"colspan\":\"3\"}" >
< select class = " inputStyle" name = " ccc" id = " ccc" >
< option value = " " > 全部 option>
< option value = " 1" > 今天 option>
< option value = " 2" > 本周 option>
< option value = " 3" > 本月 option>
select>
wea: item>
< wea: item> 批准日期wea: item>
< wea: item>
< select name = " ccc" id = " ccc" >
< option value = " " > 全部 option>
< option value = " 1" > 今天 option>
< option value = " 2" > 本周 option>
< option value = " 3" > 本月 option>
select> wea: item>
wea: group>
< wea: group context = " 查询条件2"
attributes = " {' class' :\"e8_title e8_title_1\",' groupDisplay' :' ' ,' itemAreaDisplay' :' none' }" >
< wea: item> 标题wea: item>
< wea: item>
< wea: required id = " aaspan" required = " true" >
< input type = " text" name = " aa" id = " aa" />
wea: required>
wea: item>
< wea: item> 人员wea: item>
< wea: item>
< brow: browser viewType = " 0" id = " pName" name = " pName" browserValue = " "
browserUrl = " /systeminfo/BrowserMain.jsp?url=/hrm/resource/ResourceBrowser.jsp?selectedids="
hasInput = " true" isSingle = " true" hasBrowser = " true" isMustInput = ' 1' completeUrl = " /data.jsp"
linkUrl = " javascript:openhrm($id$)" width = " 165px" browserSpanValue = " " />
wea: item>
< wea: item> 是否显示wea: item>
< wea: item attributes = " {\"colspan\":\"3\"}" >
< select class = " inputStyle" name = " isshow" id = " isshow" onchange = " Onchange(this)" >
< option value = " 0" > 显示 option>
< option value = " 1" > 不显示 option>
< option value = " 2" > 常用条件不显示 option>
select> wea: item>
< wea: item attributes = " {' samePair' :' showdiv' }" > 批准日期wea: item>
< wea: item attributes = " {' samePair' :' showdiv' }" >
< select name = " ccc" id = " ccc" >
< option value = " " > 全部 option>
< option value = " 1" > 今天 option>
< option value = " 2" > 本周 option>
< option value = " 3" > 本月 option>
select>
wea: item>
wea: group>
wea: layout>
< script type = " text/javascript" >
function Onchange ( obj) {
if ( obj. value == "0" ) {
showEle ( "showdiv" , "true" ) ;
showGroup ( "showgroup" , "true" ) ;
group
} else if ( obj. value == "1" ) {
hideEle ( "showdiv" , "true" ) ;
} else if ( obj. value == "2" ) {
hideGroup ( "showgroup" , "true" ) ;
}
}
script>
可编辑表格
效果图: 所需js:
示例:
< script type= "text/javascript" >
var groupAction = null ;
jQuery ( document) . ready ( function ( ) {
var initjsondatas = [ [ { 'name' : 'id' , 'value' : '11' , 'iseditable' : 'true' , 'type' : 'checkbox' } ,
{ 'name' : 'fieldid' , 'value' : '3' , 'label' : '程序媛' , 'iseditable' : 'true' , 'type' : 'browser' } ,
{ 'name' : 'wb' , 'value' : '程序媛' , 'iseditable' : true , 'type' : 'input' } ,
{ 'name' : 'xlk' , 'value' : '1' , 'iseditable' : true , 'type' : 'select' } ,
{ 'name' : 'orderid' , 'value' : '1' , 'iseditable' : true , 'type' : 'input' }
] , [ { 'name' : 'id' , 'value' : '12' , 'iseditable' : 'true' , 'type' : 'checkbox' } ,
{ 'name' : 'fieldid' , 'value' : '14' , 'label' : 'cjr' , 'iseditable' : true , 'type' : 'browser' } ,
{ 'name' : 'wb' , 'value' : 'cjr' , 'iseditable' : true , 'type' : 'input' } ,
{ 'name' : 'xlk' , 'value' : '2' , 'iseditable' : true , 'type' : 'select' } ,
{ 'name' : 'orderid' , 'value' : '2' , 'iseditable' : 'true' , 'type' : 'input' } ] ]
var item_browser = " " ;
var items= [
{ width: "10%" , colname: "浏览按钮\"> " , itemhtml: item_browser} ,
{ width: "20%" , colname: "文本框" , itemhtml: " " } ,
{ width: "20%" , colname: "下拉框" , itemhtml: "全部 AA BB " } ,
{ width: "20%" , display: 'none' , colname: "排序" , itemhtml: " " }
] ;
var option = {
basictitle: "可编辑表格标题。。。" ,
optionHeadDisplay: "none" ,
colItems: items,
container: "#FieldList" ,
configCheckBox: true ,
usesimpledata: true ,
initdatas: initjsondatas,
canDrag: true ,
orderField: 'orderid' ,
checkBoxItem: { "itemhtml" : ' ' , width: "5%" }
} ;
groupAction= new WeaverEditTable ( option) ;
jQuery ( "#FieldList" ) . append ( groupAction. getContainer ( ) ) ;
} ) ;
function deleteAction ( ) {
groupAction. deleteRows ( ) ;
}
< / script>
< / wea: item>
< / wea: group>
< / wea: layout>
分页控件
效果图:
所需js:
<%@ taglib uri="/WEB-INF/weaver.tld" prefix=“wea”%>
方式1.查询数据表示例:
< form action = " demo_edittableoperation.jsp" method = " post" id = " weaver" name = " weaver" > < wea: layout type = " fourCol" >
< wea: group context = " 数据列表" >
< wea: item attributes = " {' isTableList' :' true' ,' colspan' :' full' }" >
<% String orderby = " id "; //排序字段
String tableString = ""; //定义表格xml数据
String backfields = " * "; //查询的字段
String fromSql = " HrmResource ";//查询的表名或者视图名
String sqlWhere = " 1=1 "; //查询条件
tableString = " " + //指定分页条数和初始化id以及是否有复选框
" " +//用于控制checkbox 框是否可用
" " + " " +
" < head> " +
" " +
" " +
" " +
" head> " +
" < operates> " +//相关操作
" popedom> " +//用于控制操作菜单是否可用,返回的ArrayList的序列对应下面的index
" " +
" " + " " +
" operates> " +
" table> "; %>
< wea: SplitPageTag tableString = ' <%=tableString%>' mode = " run" /> wea: item>
wea: group> wea: layout> form>
Java验证复选框代码:
/**
* 获取复选框能否被选中
* @param id
* @return
*/
public String getCanCheck(String id) {
if (Util.getIntValue(id) % 2 == 0) {
return "true";//返回true 标识复选框可选
} else {
return "false";//表示复选框不可选,进行隐藏复选框
}
}
/**
* 获取能不能进行操作,进行权限判断
* @param id
* @param userid
* @return
*/
public ArrayList getCanOperation(String id, String userid) {
ArrayList resultlist = new ArrayList();
resultlist.add("true"); //对应第一个操作显示
resultlist.add("true"); //对应第二个操作显示,false表示不显示
return resultlist;
}
方式2.查询外部数据示例:
< form action = " demo_edittableoperation.jsp" method = " post" id = " weaver" name = " weaver" > < wea: layout type = " fourCol" >
< wea: group context = " 数据列表" >
< wea: item attributes = " {' isTableList' :' true' ,' colspan' :' full' }" >
<% String tableString = ""; //定义表格xml数据
// 指定分页条数和初始化id以及是否有复选框 以及数据来源 datasource表示数据来源 sourceparams表示传入参数参数格式为"name:value+name1:value1"多个参数用加号连接
tableString = " " + " " +//用于控制checkbox 框是否可用
" " +
" < head> " + " " +
" " +
" " +
" head> " +
" < operates> " +//相关操作
" popedom> " +//用于控制操作菜单是否可用
" " +
" " +
" operates> " +
" table> ";
%>
< wea: SplitPageTag tableString = ' <%=tableString%>' mode = " run" /> wea: item>
wea: group> wea: layout> form>
Java封装数据如下:
public List< Map< String, String> > getDemoData ( User user, Map< String, String> otherparams, HttpServletRequest request, HttpServletResponse response) {
List< Map< String, String> > data = new ArrayList < Map< String, String> > ( ) ;
String loginid = otherparams. get ( "loginid" ) ;
RecordSet rs = new RecordSet ( ) ;
rs. executeSql ( "select * from HrmResource" ) ;
while ( rs. next ( ) ) {
Map< String, String> d = new HashMap < String, String> ( ) ;
d. put ( "id" , rs. getString ( "id" ) ) ;
d. put ( "lastname" , Util. null2String ( rs. getString ( "lastname" ) ) ) ;
d. put ( "loginid" , Util. null2String ( rs. getString ( "loginid" ) ) ) ;
data. add ( d) ;
}
rs. writeLog ( "getDemoData 传入参数::" + loginid) ;
return data;
}
弹出框组件
效果图: 从父页面打开弹窗
引用:
< script language= "javascript" src= "/wui/theme/ecology8/jquery/js/zDialog_wev8.js" > < / script>
参考代码:
< script language= "javascript" type= "text/javascript" >
function openDialog ( title, url) {
var dlg = new window. top. Dialog ( ) ;
dialog. currentWindow = window;
dlg. Model = true ;
dlg. Width = 500 ;
dlg. Height = 400 ;
dlg. URL = url;
dlg. Title = title;
dlg. show ( ) ;
}
< / script>
在弹出框获取相关对象 //在被打开的页面中,使用如下语句获取父窗口对象: parentWin = parent.getParentWindow(window); //在被打开的页面中,使用如下语句获取Dialog对象: dialog = parent.getDialog(window); 具体示例:
function openDialog ( ) {
var dlg = new window. top. Dialog ( ) ;
dlg. currentWindow = window;
dlg. Model = false ;
dlg. Width = 1060 ;
dlg. Height = 500 ;
dlg. URL = "/gsoa/oaproject/demo.jsp" ;
dlg. Title = "新建数据" ;
dlg. maxiumnable = true ;
dlg. show ( ) ;
window. dialog = dlg;
}
右键菜单
效果图:
示例:
<%@ include file="/systeminfo/RightClickMenuConent_wev8.jsp" %>
<%
RCMenu += "{提交表单,javascript:doSubmit(),_self} ";
RCMenuHeight += RCMenuHeightStep;
RCMenu += "{返回,/main.jsp,_self} ";
RCMenuHeight += RCMenuHeightStep;
%>
<%@ include file="/systeminfo/RightClickMenu_wev8.jsp" %>
其中上下两行include 为固定格式
weaverTree树形组件
效果图: 所需引入js:
< link rel = " stylesheet" href = " /css/ecology8/request/leftNumMenu_wev8.css" type = " text/css" />
< script type = " text/javascript" src = " /js/ecology8/request/leftNumMenu_wev8.js" > script>
< link rel = " stylesheet" href = " /wui/common/jquery/plugin/zTree/css/zTreeStyle/zTreeStyle_wev8.css" type = " text/css" >
< script type = " text/javascript" src = " /wui/common/jquery/plugin/zTree/js/jquery.ztree.core_wev8.js" > script>
<%@ include file="/systeminfo/leftMenuCommon.jsp" %>
必须包含头部声明
显示区域
< div class = " zDialog_div_content" >
< table cellspacing = " 0" cellpadding = " 0" class = " flowsTable" style =" width : 100%; height : 100%; " >
< tr>
< td class = " leftTypeSearch" >
< div>
< span class = " leftType" onclick = " reload()" > 菜单分类< span id = " totalDoc" > span> span>
< span class = " leftSearchSpan" >
< input type = " text" class = " leftSearchInput" style =" width : 110px; " />
span>
div>
td>
< td rowspan = " 2" > td>
tr>
< tr>
< td style =" width : 23%; " class = " flowMenusTd" >
< div class = " flowMenuDiv" >
< div class = " ulDiv" >
< div id = " deeptree" class = " cxtree" CfgXMLSrc = " /css/TreeConfig.xml" style =" overflow : hidden; " >
div>
div>
td>
tr>
table>
DIV>
树形组件数据和脚本
< script type= "text/javascript" >
var demoLeftMenus= [
{
name: "一级菜单01" ,
attr: {
typeid: "01"
} ,
submenus: [
{
name: "二级类型0101" ,
attr: {
workflowid: "0101" ,
nodeids: "87654321"
} ,
numbers: {
flowNew: "1" ,
flowResponse: "0" ,
flowOut: "0" ,
flowAll: "7"
}
}
] ,
numbers: {
flowNew: "1" ,
flowResponse: "0" ,
flowOut: "0" ,
flowAll: "7"
}
}
,
{
name: "一级菜单02" ,
attr: {
typeid: "02"
} ,
submenus: [
{
name: "二级菜单0201" ,
attr: {
workflowid: "0201" ,
nodeids: ""
} ,
numbers: {
flowNew: "0" ,
flowResponse: "0" ,
flowOut: "0" ,
flowAll: "3"
}
} ,
{
name: "二级菜单0202" ,
attr: {
workflowid: "0202" ,
nodeids: ""
} ,
numbers: {
flowNew: "0" ,
flowResponse: "0" ,
flowOut: "0" ,
flowAll: "2"
}
}
] ,
numbers: {
flowNew: "5" ,
flowResponse: "0" ,
flowOut: "0" ,
flowAll: "17"
}
}
] ;
$ ( ".ulDiv" ) . leftNumMenu ( demoLeftMenus, {
numberTypes: {
flowNew: {
hoverColor: "#EDCEAF" ,
color: "#FFA302" ,
title: "新的流程"
} ,
flowResponse: { hoverColor: "#C0D8B8" , color: "#486C3E" , title: "超时的流程" } ,
flowOut: { hoverColor: "#DAC0E3" , color: "#C325FF" , title: "有反馈的流程" } ,
flowAll: { hoverColor: "#A6A6A6" , color: "black" , title: "全部流程" }
} ,
showZero: false ,
clickFunction: function ( attr, level, numberType) {
var v = '' ;
if ( level== 1 ) {
v = attr. typeid;
} else {
v = attr. workflowid;
}
parent. jQuery ( "#contentframe" ) . attr ( "src" , "/gsoa/oaproject/weavertree/body.jsp?level=" + level+ "&value=" + v) ;
} } ) ;
function reload ( ) {
e8InitTreeSearch ( { ifrms: '' , formID: '' , conditions: '' } ) ;
var optFrame= jQuery ( "#contentframe" , parent. document) ;
var src= "/gsoa/oaproject/weavertree/body.jsp?1=1" ;
optFrame. attr ( "src" , src) ;
}
< / script>
日期控件
效果图:
所需引入js: 在需要使用的地方,写以下代码:
注意其中class=" wuiDate" 这个是必须要写的 _ callback:指选中完后调用的回调函数
扩展日期控件
效果图:
所需引入js:
在需要使用的地方,写以下代码:
< input name = " inputName" value = " " class = " wuiDateSel" _span = " spanId" _button = " buttonId" _callback = " test" >
< input name = " inputName2" value = " " class = " wuiDateSel" _span = " spanId" _button = " buttonId" _callback = " test" >
注意其中class=“wuiDateSpan”、class=“wuiDateSel” 这个是必须要写的,且不能更改。
开关组件
效果图:
所需引入js:
< link href = " /js/checkbox/jquery.tzCheckbox_wev8.css" type = text/css rel = STYLESHEET>
< script type = " text/javascript" src = " /js/ecology8/jNice/jNice/jquery.jNice_wev8.js" > script>
在需要使用的地方,写以下代码:
注意:tzCheckbox="true"是固定的,不能随意改动!
五、OA流程自定义接口
在流程的节点前后、出口都可以定义这样的自定义接口操作
1、接口实现方式
实现weaver.interfaces.workflow.action.Action接口即可
具体示例如下:
package weaver. oatest;
import org. apache. log4j. Logger;
import weaver. interfaces. workflow. action. Action;
import weaver. soa. workflow. request. *;
public class ImplementsActionDemo implements Action {
private static Logger log = Logger. getLogger ( ImplementsActionDemo. class ) ;
public String execute ( RequestInfo request) {
String requestId = request. getRequestid ( ) ;
String id = "" ;
Property[ ] properties = request. getMainTableInfo ( ) . getProperty ( ) ;
for ( int i= 0 ; i< properties. length; i++ ) {
if ( properties[ i] . getName ( ) . equalsIgnoreCase ( "id" ) ) {
id= properties[ i] . getValue ( ) ;
break ;
}
}
String detailName= "" ;
DetailTable[ ] dTables = request. getDetailTableInfo ( ) . getDetailTable ( ) ;
for ( int i= 0 ; i< dTables. length; i++ ) {
DetailTable dt = dTables[ i] ;
Row[ ] rows = dt. getRow ( ) ;
String detailId = "" ;
for ( int j = 0 ; j < rows. length; j++ ) {
Row row = rows[ j] ;
detailId = row. getId ( ) ;
Cell[ ] cells = row. getCell ( ) ;
for ( int k = 0 ; k < cells. length; k++ ) {
Cell cell = cells[ k] ;
String name = cell. getName ( ) ;
String value = cell. getValue ( ) ;
if ( "detailName" . equals ( name) ) {
detailName = value;
}
}
try {
return Action. FAILURE_AND_CONTINUE;
} catch ( Exception e) {
e. printStackTrace ( ) ;
log. error ( "操作异常:" + e. getMessage ( ) ) ;
}
}
}
return Action. SUCCESS;
}
}
2、配置流程自定义接口 【后端应用中心】【集成中心】【功能集成】【流程流转集成】,点击注册自定义接口 输入自定义接口基本信息 • 接口动作名称: 自定义 • 接口动作标识:不可重复 • 接口动作类文件 :接口动作的实现类位置 3、 流程节点附加操作接口调用 【后端应用中心】【流程引擎】【路径管理】【路径设置】,在该菜单下选择一个具体的流程路径, 然后流转设置-节点信息下面的节点前附加操作、节点后附加操作和出口附加规则都可以引用自定义接口,当流程经过这些节点时,就会自动触发定义好的接口。 转载声明: 作者:CSDN博主「程序媛-如花」 原文链接:https://blog.csdn.net/chengxuyuanruhua/article/details/91955391
你可能感兴趣的:(#,泛微OA)
vue3使用vue-clipboard3 插件进行复制
不想上班只想要钱
vue 前端 typescript vue.js 前端 typescript
vue3使用vue-clipboard3插件进行复制安装npmivue-clipboard3引入import{toClipboard}from'vue-clipboard3';复制函数copyText=(text:string)=>{returnnewPromise((resolve,reject)=>{try{//复制toClipboard(text);//下面可以设置复制成功的提示框等操作El
解决Centos使用yum命令报错“Cannot find a valid baseurl for repo: base/7/x86_64”问题
牛奶咖啡13
运维/测试 centos linux 解决Centos仓库源失效 InfluxDB作服务失败问题 [Errno 256] HTTPS Error 404
一、问题描述我们在使用Centos7.9使用【sudoyuminstallinfluxdb2】命令安装influxDB数据库的时候提示“LoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/release=7&arch=x86_64&repo=os&infra=stoc
【如何打包docker大镜像】
青柚~
docker 容器 运维
项目场景:需要将容器服务部署到离线服务器上;方案:本机的镜像进行打包,然后拷贝到服务器上部署问题描述提示:这里描述项目中遇到的问题:docker中镜像太大,以至于打包时电脑卡死解决方案:压缩打包dockersavemmyolo:v8|gzip>mmyolo.tar.gz拷贝到服务器上后先解压再加载#解压缩gunzipmmyolo.tar.gz#加载dockerload-immyolo.tar
centos 7 安装docker-compose
1.下载docker-compose#官方推荐(太慢)curl-L"https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose#国内(更快)curl-Lhttps://get.daocloud.io/do
Sa-Token v1.20.0 发布,新增临时Token认证
框架介绍Sa-Token是一个轻量级Java权限认证框架,主要解决:登录认证、权限认证、分布式Session会话、单点登录、OAuth2.0等一系列权限相关问题。框架针对踢人下线、自动续签、前后台分离、分布式会话……等常见业务进行N多适配,通过sa-token,你可以以一种极简的方式实现系统的权限认证部分Sa-Tokenv1.20.0版本更新包括以下内容:新增:新增Solon适配插件,感谢大佬@刘
SpringBoot项目中读取resource目录下的文件(六种方法)
web18285997089
面试 学习路线 阿里巴巴 spring boot python pycharm
文章目录一、先获取绝对路径再读取文件(jar包里会获取不到)方法一:类加载器的getResource().getPath()获取目录路径方法二:类加载器的getResource().getPath()获取文件路径二、直接获取文件流(jar包可用)方法三:ClassLoader对象的getResourceAsStream()方法四:Class对象的getResourceAsStream()三、使用封
宝塔安装mayfly-go
mayans005
数据库
mayfly-go:web版linux(终端文件脚本进程)、数据库(mysqlpgsql)、redis(单机哨兵集群)、mongo统一管理操作平台。1、终端执行命令下载程序包wgethttps://gitee.com/objs/mayfly-go/releases/download/v1.3.0/mayfly-go-linux-amd64.zip2、在宝塔新建一个MySQL数据库,将下载程序包中的
uniapp页面列表,详情返回不刷新,新增或编辑后返回刷新
Forevermoremo
uni-app java 服务器
列表页onLoad(async(options)=>{//其中handleSearch为请求列表方法handleSearch()uni.$on('pageRefresh',()=>{handleSearch()});})onUnload(()=>{//页面销毁时移除监听,避免重复监听uni.$off('pageRefresh');})新增或编辑页//其中reqFunc为提交请求constonSub
【Linux】Hadoop-3.4.1的伪分布式集群的初步配置
孤独打铁匠Julian
Linux linux hadoop ubuntu
配置步骤一、检查环境JDK#目前还是JDK8最适合Hadoopjava-versionecho$JAVA_HOMEHadoophadoopversionecho$HADOOP_HOME二、配置SSH免密登录Hadoop需要通过SSH管理节点(即使在伪分布式模式下)sudoaptinstallopenssh-server#安装SSH服务(如未安装)cd~/.ssh/ssh-keygen-trsa#生
为什么会有虚拟内存
fpcc
C++ 架构设计 linux c++ 软件工程
一、虚拟内存虚拟内存(virtualmemory),“Virtualmemoryisamemorymanagementtechniqueusedbyoperatingsystemstogivetheappearanceofalarge,continuousblockofmemorytoapplications,evenifthephysicalmemory(RAM)islimited.Itallo
dv-scroll-board 鼠标移入单元格显示单元格所有数据
mengfei-super
计算机外设 前端 vue.js
前言:在使用大屏组件库data-v开发大屏驾驶舱系统,dv-scroll-board实现表格数据滚动的效果,但是某一列数据较多,需求提出:鼠标移上去要显示对应的问题,完全展示出来。奈何以前没有搞过这个问题,随即立马找向百度麻麻!实现效果及方法如下:{{dvTextName}}exportdefault{data(){return{dvText:{keyX:"15px",keyY:"0px",},d
mysql数据库学号数据类型_MySQL数据库学习笔记(二)----MySQL数据类型
艾萨里昂之光
mysql数据库学号数据类型
【正文】上一章节中,我们学习了MySQL软件的安装,既然软件都装好了,现在就正式开始MySQL的基础知识的学习吧,即使是零基础,也要一步一个脚印。恩,首先要学习的就是MySQL的数据类型。一、数据类型:1、整型(xxxint)2、浮点型(float和double)3、定点数(decimal)4、字符串(char,varchar,xxxtext)5、二进制数据(xxxBlob)6、日期时间类型二、数
SpringBoot接口防抖(防重复提交),接口幂等性,轻松搞定
web18285482512
面试 学习路线 阿里巴巴 spring boot 后端 java
啥是防抖?所谓防抖,一是防用户手抖,二是防网络抖动。在Web系统中,表单提交是一个非常常见的功能,如果不加控制,容易因为用户的误操作或网络延迟导致同一请求被发送多次,进而生成重复的数据记录。要针对用户的误操作,前端通常会实现按钮的loading状态,阻止用户进行多次点击。而对于网络波动造成的请求重发问题,仅靠前端是不行的。为此,后端也应实施相应的防抖逻辑,确保在网络波动的情况下不会接收并处理同一请
2000-2022年 上市公司-企业勒纳指数、行业勒纳指数、相对勒纳指数-社科数据
泡芙萝莉酱
大数据 社科数据 大数据 数据分析 人工智能 深度学习 数据挖掘 数据统计 毕业论文
上市公司-企业勒纳指数、行业勒纳指数、相对勒纳指数(2000-2022年)-社科数据https://download.csdn.net/download/paofuluolijiang/90027759https://download.csdn.net/download/paofuluolijiang/90027759勒纳指数(LernerIndex)是一种衡量市场垄断程度的经济指标。它通过计算产
统一的视频动作模型
三谷秋水
计算机视觉 机器学习 人工智能 计算机视觉 深度学习 机器学习 人工智能
25年3月来自斯坦福大学的论文“UnifiedVideoActionModel”。统一的视频和动作模型对机器人技术具有重大意义,其中视频为动作预测提供丰富的场景信息,而动作为视频预测提供动态信息。然而,有效地结合视频生成和动作预测仍然具有挑战性,当前基于视频生成的方法在动作准确性和推理速度方面难以与直接策略学习的性能相匹配。为了弥补这一差距,引入统一的视频动作模型(UVA),它联合优化视频和动作预
Windows Docker Desktop 无法启动报错 Docker Desktop is shutting down 的可能解决办法
Bruce-li__
Docker docker 容器 运维
直接把整个AppData\Roaming\Docker目录删了,然后立刻就好了……这里还有一些其他的解决方案,Docker社区论坛也供参考:检查一下daemon.json配置文件是否有问题https://forums.docker.com/t/solved-docker-failed-to-start-docker-desktop-for-windows/106976
python --桌面开发pyqt安装(mac 环境)
Xiao_Qiang_
python
纪录下,在安装pyqt的时候花了些时间,现在纪录下参考http://www.noktec.be/python/how-to-install-pyqt4-on-osx步骤DownloadtheSIPpackage(snapshotforOSx)DownloadthePyQtpackage(snapshotforOSx)DownloadQtInstallQtInstallSIPInstallPyQta
linux系统安全加固
xiejin007
linux运维 linux 运维
linux系统安全加固linux系统安全加固linux系统安全加固脚本系统加固脚本下载地址:https://download.csdn.net/download/hzgnet2021/63201374时间获取脚本开头先获取本机时间#Variablerq=`date+%Y%m%d`Linux禁用不使用的用户将passwd先复制一份备份,然后将以下不使用的用户都禁用,如后期有需要恢复可使用passwd
Ubuntu arm64 安装docker
sglin123
docker 容器 运维
通过docker官方链接安装,如果无法链接,需要通过或者链接外网,国内如果屏蔽1.卸载旧版本Ubuntu自带的Docker版本太低,需要先卸载旧的再安装新的。sudoapt-getremovedockerdocker-enginedocker.iocontainerdrunc2.更新软件包列表和已安装软件的版本sudoaptupdatesudoaptupgrade3.安装必要的证书并允许apt包管
高速NOA要爆!一年「1000万辆」市场红利,谁是最大赢家?
高工智能汽车
人工智能 大数据
只有更低,没有最低。从7万元价位到5万元价位,2025的“智驾平权”之战开局已是火拼。有消息披露,奇瑞计划在小蚂蚁等入门级产品上全系标配基于高通8620平台的智能驾驶系统,可实现高速NOA和记忆泊车功能。2025款奇瑞小蚂蚁的起售价是5.99万元,按照这个价格区间,相当于高速NOA智驾方案进一步下探到5万级别水平。对比比亚迪将高速NOA智驾首次带入7万级车型市场,奇瑞这一动作无疑进一步加剧今年高阶
「智驾普及」引发需求井喷,这一上游细分供应链严重缺货!
高工智能汽车
人工智能 自动驾驶
2025年,车载CIS市场无疑将是智驾供应链市场最火的赛道之一。今年开年的一场智驾普及运动,不仅带来了车载摄像头市场的爆发,同时还引发摄像头模组核心元器件—车用CMOS图像传感器(CIS)芯片需求出现井喷。高工智能汽车研究院监测数据显示,2024年1-12月,中国市场(不含进出口)乘用车前装标配(含免费选装促销)NOA交付197.47万辆,同比增长162.31%。上车方案基本上都是采用多摄像头模组
【以太网RDMA网卡(DPU)技术--背景】
中古传奇
IC每日一题 IC RDMA DPU
以太网RDMA网卡(DPU)技术--背景1背景1.1RDMA通信原语1.2RDMA_writedemo【博客首发于微信公众号《漫谈芯片与编程》,欢迎专注一下,多谢大家】RDMA(RemoteDirectMemoryAccess)技术主要采用zerocopy、bypasskernel&&cpuoffload思想,来高带宽、低延迟地读写远程主机内存数据;现在以太网的传输速率已经突破400Gbps,甚至
JVM 的类加载机制原理
冰糖心书房
JVM 2025 Java面试系列 java
JVM的类加载机制是指JVM将.class文件(包含Java字节码)加载到内存,并对其进行校验、解析、初始化,最终转换为JVM可以直接使用的Java类型的过程。类加载过程(5个阶段):加载(Loading):查找并加载类的二进制数据:通过类的全限定名(FullyQualifiedName)查找.class文件。类加载器(ClassLoader)负责查找和加载.class文件。类加载器有多种,包括启
jmeter安装和jmeter历史版本下载
weixin_30432007
java
一、jmete下载:1、最新版本下载地址:http://jmeter.apache.org/download_jmeter.cgi2、历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/二、软件安装及设置环境变量1、JDK安装目录在D:\ProgramFiles\Java,其环境变量设置为:JAVA_HOME值为:D:\ProgramF
找不到Jmeter历史版本下载的同学看这里(内附使用阿里镜像和腾讯镜像下载开源软件的地址)
测试开发Kevin
jmeter 测试工具 jmeter
最近需要在jmeter4上验证一个问题,于是就在网上各种找jmeter不同版本的下载地址,比较麻烦。为了让大家不踩坑,在这里汇总一下下载地址:下载jmeter地址汇总jmeter最新版本官网下载地址:ApacheJMeter-DownloadApacheJMeterhttps://jmeter.apache.org/download_jmeter.cgijmeter历史版本下载地址(建议收藏)In
java用来模块化开发和扩展很有用的服务加载器 ServiceLoader类实现SPI机制
爱的叹息
Java 基础整理 java 开发语言
java.util.ServiceLoader是Java中用于实现服务提供者接口(ServiceProviderInterface,SPI)机制的一个工具。SPI允许你在不修改现有代码的情况下,动态地加载和使用第三方实现。这在插件化设计、模块化开发和扩展性需求中非常有用。基本概念服务接口(ServiceInterface):定义了服务的接口。服务提供者(ServiceProvider):实现了服务
使用LangChain加载College Confidential数据
scaFHIO
langchain python
#使用LangChain加载CollegeConfidential数据##技术背景介绍CollegeConfidential是一个提供有关3800+所大学和学院信息的平台。它被广泛使用于教育咨询和申请指导领域。为了方便开发者从CollegeConfidential获取数据,我们可以使用LangChain的`CollegeConfidentialLoader`模块进行加载和处理。##核心原理解析La
常用的API设计都有哪些风格?优劣势?
PhilipJ0303
java 面试 API设计 接口
API设计是软件开发中非常重要的一部分,良好的API设计可以提高系统的可维护性、扩展性和易用性。常见的API设计风格主要有以下几种:1.RESTfulAPI3.gRPC4.SOAP(SimpleObjectAccessProtocol)5.WebSocket6.RPC(RemoteProcedureCall)7.Webhook总结风格适用场景优点缺点RESTfulWeb、移动端、简单CRUD操作简
pyqt5报错:qt.qpa.plugin: Could not find the Qt platform plugin “xcb“(已解决)
一问三不知_
计算机知识 qt 开发语言 ubuntu bug conda python
我在使用pyqt库的时候报错:qt.qpa.plugin:CouldnotloadtheQtplatformplugin"xcb"in\"/mnt/private_disk/anaconda3/envs/aot-manip/lib/python3.8/site-packages/PyQt5/Qt5/plugins/platforms"eventhoughitwasfound.Thisapplica
MySQL 到 Hadoop:Sqoop 数据迁移 ETL
Ice星空
ETL
文章目录ETL:Extract-Transform-Load数据迁移过程一、Extract数据抽取1.ODS:OperationalDataStore-可操作数据存储2.DW:DataWarehouse-数据仓库3.DM:DataMart-数据集市二、Transform数据清洗和转换1.数据清洗2.数据转换三、Load数据加载四、数据迁移方法1.Sqoop1.1MySQL->Hive1.1.1im
js动画html标签(持续更新中)
843977358
html js 动画 media opacity
1.jQuery 效果 - animate() 方法 改变 "div" 元素的高度: $(".btn1").click(function(){ $("#box").animate({height:"300px
springMVC学习笔记
caoyong
springMVC
1、搭建开发环境
a>、添加jar文件,在ioc所需jar包的基础上添加spring-web.jar,spring-webmvc.jar
b>、在web.xml中配置前端控制器
<servlet>
&nbs
POI中设置Excel单元格格式
107x
poi style 列宽 合并单元格 自动换行
引用:http://apps.hi.baidu.com/share/detail/17249059
POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:
先获取工作薄对象:
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFCellStyle setBorder = wb.
jquery 获取A href 触发js方法的this参数 无效的情况
一炮送你回车库
jquery
html如下:
<td class=\"bord-r-n bord-l-n c-333\">
<a class=\"table-icon edit\" onclick=\"editTrValues(this);\">修改</a>
</td>"
j
md5
3213213333332132
MD5
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MDFive {
public static void main(String[] args) {
String md5Str = "cq
完全卸载干净Oracle11g
sophia天雪
orale数据库 卸载干净 清理注册表
完全卸载干净Oracle11g
A、存在OUI卸载工具的情况下:
第一步:停用所有Oracle相关的已启动的服务;
第二步:找到OUI卸载工具:在“开始”菜单中找到“oracle_OraDb11g_home”文件夹中
&
apache 的access.log 日志文件太大如何解决
darkranger
apache
CustomLog logs/access.log common 此写法导致日志数据一致自增变大。
直接注释上面的语法
#CustomLog logs/access.log common
增加:
CustomLog "|bin/rotatelogs.exe -l logs/access-%Y-%m-d.log 
Hadoop单机模式环境搭建关键步骤
aijuans
分布式
Hadoop环境需要sshd服务一直开启,故,在服务器上需要按照ssh服务,以Ubuntu Linux为例,按照ssh服务如下:
sudo apt-get install ssh
sudo apt-get install rsync
编辑HADOOP_HOME/conf/hadoop-env.sh文件,将JAVA_HOME设置为Java
PL/SQL DEVELOPER 使用的一些技巧
atongyeye
java sql
1 记住密码
这是个有争议的功能,因为记住密码会给带来数据安全的问题。 但假如是开发用的库,密码甚至可以和用户名相同,每次输入密码实在没什么意义,可以考虑让PLSQL Developer记住密码。 位置:Tools菜单--Preferences--Oracle--Logon HIstory--Store with password
2 特殊Copy
在SQL Window
PHP:在对象上动态添加一个新的方法
bardo
方法 动态添加 闭包
有关在一个对象上动态添加方法,如果你来自Ruby语言或您熟悉这门语言,你已经知道它是什么...... Ruby提供给你一种方式来获得一个instancied对象,并给这个对象添加一个额外的方法。
好!不说Ruby了,让我们来谈谈PHP
PHP未提供一个“标准的方式”做这样的事情,这也是没有核心的一部分...
但无论如何,它并没有说我们不能做这样
ThreadLocal与线程安全
bijian1013
java java多线程 threadLocal
首先来看一下线程安全问题产生的两个前提条件:
1.数据共享,多个线程访问同样的数据。
2.共享数据是可变的,多个线程对访问的共享数据作出了修改。
实例:
定义一个共享数据:
public static int a = 0;
Tomcat 架包冲突解决
征客丶
tomcat Web
环境:
Tomcat 7.0.6
win7 x64
错误表象:【我的冲突的架包是:catalina.jar 与 tomcat-catalina-7.0.61.jar 冲突,不知道其他架包冲突时是不是也报这个错误】
严重: End event threw exception
java.lang.NoSuchMethodException: org.apache.catalina.dep
【Scala三】分析Spark源代码总结的Scala语法一
bit1129
scala
Scala语法 1. classOf运算符
Scala中的classOf[T]是一个class对象,等价于Java的T.class,比如classOf[TextInputFormat]等价于TextInputFormat.class
2. 方法默认值
defaultMinPartitions就是一个默认值,类似C++的方法默认值
java 线程池管理机制
BlueSkator
java线程池 管理机制
编辑
Add
Tools
jdk线程池
一、引言
第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
关于hql中使用本地sql函数的问题(问-答)
BreakingBad
HQL 存储函数
转自于:http://www.iteye.com/problems/23775
问:
我在开发过程中,使用hql进行查询(mysql5)使用到了mysql自带的函数find_in_set()这个函数作为匹配字符串的来讲效率非常好,但是我直接把它写在hql语句里面(from ForumMemberInfo fm,ForumArea fa where find_in_set(fm.userId,f
读《研磨设计模式》-代码笔记-迭代器模式-Iterator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.util.Arrays;
import java.util.List;
/**
* Iterator模式提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象内部表示
*
* 个人觉得,为了不暴露该
常用SQL
chenjunt3
oracle sql C++ c C#
--NC建库
CREATE TABLESPACE NNC_DATA01 DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\nnc_data01.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 256K ;
CREATE TABLESPA
数学是科学技术的语言
comsci
工作 活动 领域模型
从小学到大学都在学习数学,从小学开始了解数字的概念和背诵九九表到大学学习复变函数和离散数学,看起来好像掌握了这些数学知识,但是在工作中却很少真正用到这些知识,为什么?
最近在研究一种开源软件-CARROT2的源代码的时候,又一次感觉到数学在计算机技术中的不可动摇的基础作用,CARROT2是一种用于自动语言分类(聚类)的工具性软件,用JAVA语言编写,它
Linux系统手动安装rzsz 软件包
daizj
linux sz rz
1、下载软件 rzsz-3.34.tar.gz。登录linux,用命令
wget http://freeware.sgi.com/source/rzsz/rzsz-3.48.tar.gz下载。
2、解压 tar zxvf rzsz-3.34.tar.gz
3、安装 cd rzsz-3.34 ; make posix 。注意:这个软件安装与常规的GNU软件不
读源码之:ArrayBlockingQueue
dieslrae
java
ArrayBlockingQueue是concurrent包提供的一个线程安全的队列,由一个数组来保存队列元素.通过
takeIndex和
putIndex来分别记录出队列和入队列的下标,以保证在出队列时
不进行元素移动.
//在出队列或者入队列的时候对takeIndex或者putIndex进行累加,如果已经到了数组末尾就又从0开始,保证数
C语言学习九枚举的定义和应用
dcj3sjt126com
c
枚举的定义
# include <stdio.h>
enum WeekDay
{
MonDay, TuesDay, WednesDay, ThursDay, FriDay, SaturDay, SunDay
};
int main(void)
{
//int day; //day定义成int类型不合适
enum WeekDay day = Wedne
Vagrant 三种网络配置详解
dcj3sjt126com
vagrant
Forwarded port
Private network
Public network
Vagrant 中一共有三种网络配置,下面我们将会详解三种网络配置各自优缺点。
端口映射(Forwarded port),顾名思义是指把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。Vagrantfile中设定语法为:
c
16.性能优化-完结
frank1234
性能优化
性能调优是一个宏大的工程,需要从宏观架构(比如拆分,冗余,读写分离,集群,缓存等), 软件设计(比如多线程并行化,选择合适的数据结构), 数据库设计层面(合理的表设计,汇总表,索引,分区,拆分,冗余等) 以及微观(软件的配置,SQL语句的编写,操作系统配置等)根据软件的应用场景做综合的考虑和权衡,并经验实际测试验证才能达到最优。
性能水很深, 笔者经验尚浅 ,赶脚也就了解了点皮毛而已,我觉得
Word Search
hcx2013
search
Given a 2D board and a word, find if the word exists in the grid.
The word can be constructed from letters of sequentially adjacent cell, where "adjacent" cells are those horizontally or ve
Spring4新特性——Web开发的增强
jinnianshilongnian
spring spring mvc spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
CentOS安装配置tengine并设置开机启动
liuxingguome
centos
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl-devel
Ubuntu上可以这样安装
sudo aptitude install libdmalloc-dev libcurl4-opens
第14章 工具函数(上)
onestopweb
函数
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Xelsius 2008 and SAP BW at a glance
blueoxygen
BO Xelsius
Xelsius提供了丰富多样的数据连接方式,其中为SAP BW专属提供的是BICS。那么Xelsius的各种连接的优缺点比较以及Xelsius是如何直接连接到BEx Query的呢? 以下Wiki文章应该提供了全面的概览。
http://wiki.sdn.sap.com/wiki/display/BOBJ/Xcelsius+2008+and+SAP+NetWeaver+BW+Co
oracle表空间相关
tongsh6
oracle
在oracle数据库中,一个用户对应一个表空间,当表空间不足时,可以采用增加表空间的数据文件容量,也可以增加数据文件,方法有如下几种:
1.给表空间增加数据文件
ALTER TABLESPACE "表空间的名字" ADD DATAFILE
'表空间的数据文件路径' SIZE 50M;
&nb
.Net framework4.0安装失败
yangjuanjava
.net windows
上午的.net framework 4.0,各种失败,查了好多答案,各种不靠谱,最后终于找到答案了
和Windows Update有关系,给目录名重命名一下再次安装,即安装成功了!
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=17113
方法:
1.运行cmd,输入net stop WuAuServ
2.点击开