文章目录
一、开发准备
二、开发环境搭建
步骤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)
gbase导入sql文件_GBase数据库——常用命令
weixin_39706561
gbase导入sql文件
1数据库操作与维护1.1数据库启停[root@OMMB-66-V10-001~]#servicegcwarestopStoppingGCMonitsuccess!SignalingGCRECOVER(gcrecover)toterminate:[OK]Waitingforgcrecoverservicestounload:.....[OK]SignalingGCSYNC(gc_sync_serve
Linux Docker 部署 Elasticsearch (ES) 集群详解教程
努力的小T
Linux 云计算运维基础 docker linux docker elasticsearch 运维 服务器 云计算 大数据
1.安装Docker首先,确保你的Linux系统上已经安装了Docker。如果尚未安装,可以通过以下命令进行安装:sudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.reposudoyuminstalldocker-cedocker-c
《深入浅出LLM基础篇》(三):大模型结构分类
GoAI
深入浅出LLM 深入浅出AI 自然语言处理NLP 大模型 LLM 人工智能 transformer chatgpt
AI学习星球推荐:GoAI的学习社区知识星球是一个致力于提供《机器学习|深度学习|CV|NLP|大模型|多模态|AIGC》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI爱好者学习,性价比非常高!加入星球➡️点击链接✨专栏介
linux内网部署deepseek大模型(ollama+anythingllm)
wukurua
大模型 linux 大模型 人工智能 docker
一、安装ollama来源:ollama/docs/linux.mdatmain·ollama/ollama·GitHub1.下载安装包ollama下载链接:https://ollama.com/download/ollama-linux-amd64.tgz,下载后放在用户目录下2.运行脚本#!/bin/sh#ThisscriptinstallsOllamaonLinux.#Itdetectsthe
darts框架使用
ME_Seraph
机器学习 darts
文|Seraph高版本Pytorch问题运行test.py报错IndexError:invalidindexofa0-dimtensor.Usetensor.item()toconverta0-dimtensortoaPythonnumber解决:update函数的参数loss.data[0],prec1.data[0],prec5.data[0]等修改为loss.item(),prec1.ite
【etcd】ubuntu22安装,与redis对比的区别
{⌐■_■}
etcd redis chrome 服务器 数据库 golang 缓存
安装方法1:通过apt安装(简单,但版本可能较旧)步骤更新软件包列表:sudoaptupdate安装etcd:sudoaptinstalletcd启动etcd服务:sudosystemctlstartetcd验证安装:etcdctlversion如果输出类似以下内容,表示安装成功:etcdctlversion:3.4.20APIversion:3.4设置开机自启(可选):sudosystemctl
mac+CLion+redis6.2本地源码调试
王冬的csdn
redis redis
1.下载安装CLion下载地址:https://www.jetbrains.com.cn/clion/download/other.html安装过程自行百度2.下载redis源码gitclonehttp://github.com/redis/redis.git3.添加CMakeLists.txt文件1、\redis-6.2\cmake_minimum_required(VERSION3.0FATA
【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】
飞火流星02027
URL整合 apisix反向代理 apisix网关 apisix实现web资源整合 系统URL资源整合 apisix基于请求参数的路由 apisix基于请求头的路由 APISIXDashboard
需求说明软件功能需求:反向代理功能(描述:apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、oa-portal业务应用等多个web资源等只能通过有限个代理地址访问),不考虑SSO。软件质
每周论文精读05-A2J:AnchortoJointRegressionNetwork for 3D ArticulatedPoseEstimation from a SingleDepthImage
Jason_____Wang
精读笔记 python 计算机视觉 卷积 手势识别 深度学习
https://download.csdn.net/download/Jason_____Wang/16502249论文精读——A2J:Anchor-to-JointRegressionNetworkfor3DArticulatedPoseEstimationfromaSingleDepthImage标题比较长,已经打不完了。。所以题目格式有些变形,望谅解。上周尝试做了一下代码复现的方向,因为生活
1.如何配置开发环境(JDK、Maven、IDEA)搭建SpringBoot项目
yjx012
java maven intellij-idea spring boot
搭建SpringBoot项目的开发环境主要包括安装和配置JDK、Maven和IDEA(IntelliJIDEA)。以下是详细的步骤和注意事项。1.安装JDK1.1下载JDKDownloadIntelliJIDEA–TheLeadingJavaandKotlinIDE1.2安装JDK下载后,按照安装向导完成安装。安装过程中请记住安装路径,通常为C:\ProgramFiles\Java\jdk-11或
自动化办公|xlwings 数据类型和转换
游客520
自动化 实用代码 python全栈学习 自动化 运维 python
xlwings数据类型和转换:Python与Excel的桥梁在使用xlwings进行Python和Excel数据交互时,理解两者之间的数据类型对应关系至关重要。本篇将详细介绍Python数据类型与Excel数据类型的对应关系,以及如何进行数据类型转换。一、Python数据类型与Excel数据类型的对应关系Python数据类型Excel数据类型说明int数字整数float数字浮点数str文本字符串b
01-开发板、核心板、系统板、实验板、功能板的区别
科技搬运猿
科技
开发板、核心板、系统板、实验板,都是一个东西,大家在接触这些东西不用太过于执着。功能板(FunctionBoard或FeatureBoard)是一种专门设计的电路板,它通常用于实现特定的功能或扩展某个系统的一部分能力。功能板不是完整的计算系统,而是作为辅助组件,为已有的如开发板、核心板或系统板来提供额外的功能。
Spring Security(六)RBAC 结构实现
是晓周哦
Spring-Security spring java 后端 spring boot 安全架构 spring cloud
博主前言:本以为这个就是代替传统jwt的插件,没想到复杂程度如此之高。SpringSecurity本身是个高度自定义化的组件,必须花时间重点学习一下。以下为个人配置学习的流程,从零到权限管理、redis嵌入等步骤。本文基于尚硅谷的SpringSecurity教程学习,文章与原教程有不小出入,仅供参考。B站视频链接:尚硅谷Java项目SpringSecurity+OAuth2权限管理实战教程RBAC
python爬取的数据保存到表格中_利用Python爬取的数据存入Excel表格
weixin_39608063
分析要爬取的内容的网页结构:demo.py:importrequests#requests是HTTP库importrefromopenpyxlimportworkbook#写入Excel表所用fromopenpyxlimportload_workbook#读取Excel表所用frombs4importBeautifulSoupasbs#bs:通过解析文档为用户提供需要抓取的数据importosim
编译安装nginx并使用systemctl管理
Mr_Black0_0
nginx linux 服务器
1、编译安装nginxcd/optwgethttp://nginx.org/download/nginx-1.18.0.tar.gz#通过网络下载nginx压缩包tarxfnginx-1.18.0.tar.gz#解压nginx-1.18.0.tar.gzcdnginx-1.18.0yum-yinstallgccpcre-developenssl-develzlib-developensslopen
vs发布后再linux打包linux版本的安装包
kevinfkq
linux github 运维
*****Linux安装包打包:**在vs打包好linux运行文件,将linux-x64复制到linux电脑桌面上,准备好可执行文件和资源后,先打开终端输入./overview.Desktop试试是否可以运行。(本项目可能需要输入sudomkdir-p/home/coalcar和sudochmod-R777/home/coalcar进行日志文件夹的创建和权限赋予)。在linux电脑操作即可。一、首
shrio反序列化分析
红队蓝军
java 开发语言 安全
shiro550环境搭建https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4配置pom.xmljavax.servletjstlruntimejavax.servletservlet-apiprovidedorg.slf4jslf4j-log4j12runtimelog4jlog4jruntimenet.sourceforge.
Ollama容器+打造DeepSeek-R1-7B大模型
码哝小鱼
AI大模型 docker 运维 语言模型
1、获取Ollama官方镜像1.1在线拉取镜像#dokcerpullollama/ollama:0.5.71.2导入离线镜像#tar-zxfollama0.5.7_x86.tar.gz#dokcerload-iollama0.5.7.tar2、执行以下命令创建与启动ollama#dockerrun-dp8880:11434--nameollama\-eOLLAMA_HOST=0.0.0.0:114
Ubuntu 20.04 声音输出设备更改问题
m0_56408077
ubuntu linux 运维
问题描述:Ubuntu20.04插入耳机有声音,但扬声器也同时播放,只能同时播放,无法选择播放设备,在设置中音频输出设备找不到USB耳机设备。解决方法一:在pavucontrol中更改您的输出设备:安装然后运行pavucontrol:sudoaptinstallpavucontrolpavucontrol在port中改变输出设备:解决办法二:(在pavucontrol中输出设备没有耳机设备)命令行
python编译成dll文件_Python 调用DLL文件
weixin_39682511
python编译成dll文件
http://blog.csdn.net/magictong/archive/2008/10/14/3075478.aspx貌似原文的网页服务器有问题,总是load不全,所以备个份:Python调用windows下DLL详解在python中某些时候需要C做效率上的补充,在实际应用中,需要做部分数据的交互。使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下
Java基础知识点总结:数据类型、方法重载重写、访问控制、静态关键字、字符串类与集合框架
我尽力学
java 笔记
Java基础知识点总结:数据类型、方法重载重写、访问控制、静态关键字、字符串类与集合框架1、数据类型1.1基本数据类型整数类型byte:1字节(8位),范围:-128~127short:2字节(16位),范围:-32768~32767int:4字节(32位),默认整数类型long:8字节(64位),声明时需加L后缀(如longnum=100L;)浮点类型float:4字节(32位),单精度,声明需
架构设计(4)面向服务架构SOA与C++模拟实现
CoderIsArt
架构设计研究 C++11 架构 面向服务架构SOA
SOA架构SOA(面向服务的架构)是一种架构风格,通过将系统划分为服务来提高灵活性和可维护性。每个服务是一个独立的功能模块,通过标准化接口进行交互。SOA架构涉及多种技术和组件,以下是关键技术和它们的作用:1.服务设计与接口-服务接口定义:通常使用标准接口描述语言,如WSDL(WebServicesDescriptionLanguage)或OpenAPI(Swagger)来定义服务的接口。接口描述
「架构」SOA(面向服务的架构)
吴维炜
AIGC架构设计师 架构 java 微服务 面向服务的架构 SOA
SOA(面向服务的架构)是一种设计模式,用于构建灵活、可互操作和可重用的企业IT系统。SOA基于服务的概念,服务是自包含的、模块化的软件组件,可以被不同的应用程序或业务流程调用。核心功能:服务识别与定义:识别业务功能并将其定义为独立的服务。服务抽象:隐藏服务内部实现的细节,只暴露接口。服务目录:创建服务目录或注册中心,以便服务消费者发现可用服务。服务组合:允许通过组合多个服务来构建复杂的业务流程。
《深入浅出多模态》 (五):多模态经典模型ALBEF
GoAI
深入浅出多模态 多模态 大模型 LLM 深度学习 人工智能
AI学习星球推荐:GoAI的学习社区知识星球是一个致力于提供《机器学习|深度学习|CV|NLP|大模型|多模态|AIGC》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于前沿论文解读、资料共享、行业最新动态以、实践教程、求职相关(简历撰写技巧、面经资料与心得)多方面综合学习平台,强烈推荐AI小白及AI爱好者学习,性价比非常高!加入星球➡️点击链接✨专栏介绍:</
MongoDB入门与实践
风中凌乱的猿
笔记 mongodb 数据库
MongoDB是一个NoSQL数据库,它采用文档模型来存储数据,具有高性能、易扩展、灵活的特点。以下是MongoDB的入门指南和一些基本的实践示例,帮助你开始使用MongoDB。1.安装和基本配置安装MongoDB具体安装方法取决于你的操作系统。以Ubuntu为例,可以通过以下命令安装MongoDB:sudoaptupdatesudoaptinstall-ymongodb启动MongoDB安装完成
面向服务架构(SOA)详细介绍
huaqianzkh
架构理解与实践 架构
面向服务架构(SOA)详细介绍1.概述面向服务架构(Service-OrientedArchitecture,SOA)是一种软件设计模式,通过将应用程序功能分解为可重用的服务来构建系统。这些服务通过定义良好的接口和协议进行通信,通常使用网络调用(如Web服务)来实现。2.核心概念服务(Service):一个自包含的功能单元,提供特定的业务功能。服务接口(ServiceInterface):定义了服
从0开始的操作系统手搓教程 4:做好准备,跳到加载器(Loader)
charlie114514191
从0开始的操作系统教程 学习 汇编 操作系统 手搓教程 bochs 调试 MBR
目录为什么要加载Loader,Loader是干什么的?上菜!NASM的预处理语句%include包含其他文件%define定义一个常量%macro来定义一个代码宏进一步说明常见的NASM的常见的语法和指令进一步理解我们的实模式关于NASM中对于-I指令的使用办法关于bochs的高级调试手段步入正轨:对硬盘进行系统编程系统编程中对硬盘编程的办法对硬盘进行编程最后一瞥添加一个Loader.S作为测试修
Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件
柳鲲鹏
docker vscode ide 编辑器
步骤1开始通过WSL使用VSCode|MicrosoftLearn点击远程开发扩展包。步骤2RemoteDevelopment-VisualStudioMarketplace点击install,允许打开VisualStudioCode。步骤3共有4项,一齐安装。步骤4在WSLLinux(Ubuntu)中:sudoapt-getinstallwgetca-certificates打开步骤1准备工作完
【bug】spacedesk Display Driver has expired!Please download the most recent driver version on https
Java手札
Java后端 bug
#扩展屏软件出问题#场景:出现扩展屏黑屏解决:重新下载软件,清除设置,重启设备软件:https://allall02.baidupcs.com/file/9其他问题:在主控电脑安装的是控制台在扩展屏安装的是可视屏软件需要设置主屏幕和副屏幕:这个排列代表的是鼠标的移动方向,可以自定义更改。如果副屏幕的分辨率不够也需要更改。看自己使用的是啥。
android studio 使用maven-publish 插件上传aar到远程maven仓库
-优势在我
android studio maven android
上传插件编写1、在工程目录下添加upload.gradle文件applyplugin:'maven-publish'defRELEASE_REPOSITORY_URL='http://xxx.xx.com/artifactory/repository/release/'defSNAPSHOT_REPOSITORY_URL='http://xxx.xx.com/artifactory/reposit
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.点击开