fixweb/theme/FixCS/form.css
修改某一文本框的样式。
<scripttype="text/javascript"src="../../../components/FixUtil.js">
</script>
<scripttype="text/javascript"src="../../../components/FixManager.js"></script>
列表使用的代码:
点击某个字段的格式化模版:
代码如下:function(value,aData,store,rowIndex) {
//value为当前单元格的值
//aData是一行的所有列数据,JSON对象
//store列表所有数据,JSON对象
//rowIndex是当前第几行
//返回一个html格式的字符串
return "<a href=javascript:openS('"+aData.ID+"')>"+value+"</a>";
}
2步骤操作脚本:
在脚本里面写弹出窗体代码:
openS = function(val){
window.showModalDialog('../../../testdemo/forms/testdemo/BOOKS1/view.htm?_viewId=testdemo&_menuId=e66cef44-1d9e-46b3-9b09-4d4a8964000b&objName=BOOKS1&_useType=view&_pk=ID&_pkValue='+val,'','dialogWidth=900px;dialogHeight=500px');
};
选设置要连接业务对象的视图:
工具条需要配置的按钮:
控件按钮的属性配置:
页面的连接地址:
../testdemo/theme/FixCS/StandardUniform.html?_objName=FIX_SYS_CODE2&_viewId=cbunit
_objName:业务对象编号
_viewId:视图编号
这个控件需要一个回调的事件:
事件代码如下:
function FixDialog_0_onFeedback(datas){
//获取记录
var record = datas.record;
var username =
record[0].CODE_NAME;
varuserid = record[0].CODE_ID;
//$("#FixDialog_0_input").val("");
//$("#text_6").val(username);
//$("#text_3").val(userid);
//jq文本框填充值的方式
$("#FIX_PURCH_INFO_PURCH_PUBLISH").val(username);
}
1、在设计视图中找到字典表------>右键点击编辑字点表--------->选择添加
如图所示:
跟据提示,将里面的编码字段、显示字段、类别字段、排序字段、方法等内容做填充。
2、然后所需要的业务对象中选择刚才添加的字典表的字段类别
分类会自动找到码表中的TYPE_ID="PURCH_TYPE"这样区分
如果用户不需要用码表来实现此功能,也可以通过代码来实现:
用户可以选择格式化模板,如图所示:
代码如下:
function(value,aData,store,rowIndex) {
//value为当前单元格的值
//aData是一行的所有列数据,JSON对象
//store列表所有数据,JSON对象
//rowIndex是当前第几行
//返回一个html格式的字符串
if(value==0){
return "科技图书";
}
if(value==1){
return "纸质规范";
}
if(value==2){
return "地形图";
}
if(value==3){
return "科技资料";
}
if(value==4){
return "中文期刊";
}
if(value==5){
return "外文期刊";
}
if(value==6){
return "公文档案";
}
}
在视图中有相对应的格式化模版设置,如图所示:
注:首选要点击启用,否则会没有效果
格式化模版设置,有很多种类,如图所示:
选在业务对象中新建一个字段,FIX_PROCESSINSTANCE_ID,varchar(64)
步骤一:在格式化模版配置中勾选启动,选择html,模版类型选择查看表单及流程状态,如图所示:
步骤二:列表standuniform关联的btnImp.js的方法和传递的参数,示例代码如下:
//自定义的流程方法
function openFlowProcList(defKey, instId) {
var url = "procList.html";
url
= Fix.App.appHost + url;
paraMap
= {
//流程编号
_defKey
: defKey,
//业务对象关联的流程编号
_instId
: instId
};
var link =
top.Fix.Utils.appendParams(url, paraMap);
window.open(link);
}
视图列表只需要调取方法及传递参数即可,如图所示:
步骤三:流程第一个节点需要创建个连接器,已封装好方法,直接调用即可,如图所示:
点击下一步,完成操作,重新点击流程图空白处,重新更新流程即可。
方法封装在:UpdateProcessInstanceId.java 文件
你给的新更新包目前发现了2个BUG,一个是伟哥那的BUG,新建一个控件报日志错误,一个是流程里面UpdateProcessInstanceId.java文件的BUG,钱骏改了点东西
应该获取表名,不是业务对象编号
客户需求性的问题:如果标签明细页过多,第一个会不显示
that.PassedVerify
= verifyRule();
需要把注释去掉,大概在2616行,控件非空验证。
从网上获取自己需要的正则表达式,在中可以直接使用
function HTMLRadioList_0_onSelectValue(selectedValue, inst, jq_scope){
//方法一:类型为radio
//vartt=$("input[type=radio]:checked").val();
//方法二:获取name标签名
var bb=$(':radio[name="HTMLRadioList_0_0"]:checked').val();
alert(bb);
}
JQ取值
JQ获取被选中的值:$(':radio[name="sex"]:checked').val();
JQ设置为选中:$(':radio[name="sex"]').eq(0).attr("checked",true);
反选:$(':radio[name="sex"]').eq(0).attr("checked",false);或$(':radio[name="sex"]').eq(0).attr("checked",'');
if($(':radio[name="sex"]').attr('checked')==undefined) //判断是否已经选中
$(':radio[name="sex"]').attr("checked",'10');//设置value=10的单选按钮为选中项
下拉框select: $(':select[name="sex"]').attr("value",'1');//设置value=1的项目为选中项
扩展:
checkbox 类似;
扩展2:
获取一组radio被选中项的值
var item = $('input[@name=items][@checked]').val();
or
var item = $('input[name="控件name"]').val();
获取select被选中项的文本
var item = $("select[@name=items] option[@selected]").text();
or
var item = $('select[name="控件name"]').val();
select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;
radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;
$('input[name="控件name"]').eq(1).checked = true;
获取值:
文本框,文本区域
$("#txt").attr("value");
or
$("#txt").val();
多选框checkbox
$("#checkbox_id").attr("value");
$("#checkbox_id").val();
单选组radio
$("input[@type=radio][@checked]").val();
$('input[name="控件name"]').val();
下拉框select
$('#sel').val();
控制表单元素
文本框,文本区域
$("#txt").attr("value",'');//清空内容
or
$("#txt").val('');
$("#txt").attr("value",'11');//填充内容
or
$("#txt").val('11');
多选框checkbox
$("#chk1").attr("checked",'');//不打勾
$("#chk2").attr("checked",true);//打勾
if($("#chk1").attr('checked')==undefined) //判断是否已经打勾
单选组radio
$("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项
下拉框select
$("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项
$("<option value='1'>1111</option><option
value='2'>2222</option>").appendTo("#sel")//添加下拉框的option
$("#sel").empty();//清空下拉框
用户可以通过SVN签出多个项目,但如果没有特殊需求,最好不要拉出多个web项目。
设计视图:
项目视图:fixflow-expand/服务器多个web可以使用一个
需要修改的配置文件.classpath/.project
代码如下:
<link>
<name>nhpdmislogicsrc</name>
<type>2</type>
<locationURI>$%7BWORKSPACE_LOC%7D/nhpdmislogic/app</locationURI>
</link>
<classpathentrykind="src"path="nhpdmislogicsrc"/>
右键新建一个服务组件,填写方法编号、方法名称、方法类型、安全级别
创建之后,双击打开,进入界面,如图所示:
三级扩展:类名.方法名,如图所示
在界面里写相应的JAVA代码,如图所示:
publicvoid allOtherbutton() throws Exception{
String terms = (String) this.dataView.get("TERMS");
String allselect = (String) this.dataView.get("ALLSELECT");
String
data_base=(String)this.dataView.get("DATA_BASE");
String
tableName=(String)this.dataView.get("TABLE");
String
status=(String)this.dataView.get("STATUS");
String
statusValue=(String)this.dataView.get("STATUSVALUE");
String
updateName=(String)this.dataView.get("UPDATENAME");
String
updateDate=(String)this.dataView.get("UPDATEDATE");
ObjServiceTo
sv = AdapterProxy.getBizServiceInfo(allselect);
String
ss=sv.getImplement();
String
sqlAll = ExpressionUtil.getExpressionWithOutType(ss);
String
sqlInfo = ExpressionUtil.getContentWithoutConf(sqlAll);
List<String>
queryInfo = new
ArrayList<String>();
queryInfo.add(terms);
BizObjectProxy.createDataAuth(sv,dataView,queryInfo,sqlInfo,true);
String
finalSql = BizObjectProxy.buildSqlParameter(queryInfo,sqlInfo,null);
String
sql ="";
if(data_base==null||data_base.equals("")){
sql = "update "+tableName+" set "+status+"='"+statusValue+"',"+updateDate+"=getdate(),"+updateName+"='"+this.getDataView().getUser().getUserName()+"' where GUID in (select GUID from ("+finalSql+") a)";
}else{
sql = "update "+data_base+".dbo."+tableName+" set "+status+"='"+statusValue+"',"+updateDate+"=getdate(),"+updateName+"='"+this.getDataView().getUser().getUserName()+"' where GUID in (select GUID from ("+finalSql+") a)";
}
SqlAdapter.executeForExecSql(sql, "db_books_booking",
null);
}
}
Fix.ajax({
action:{
_method:'buttonService.allOtherButton'
},
async:false,
data:{'TERMS':checkedTrs,
'ALLSELECT':all_select,
'DATA_BASE':data_base,
'TABLE':table_Id,
'STATUS':status_Name,
'STATUSVALUE':status_Value,
'UPDATENAME':update_name,
'UPDATEDATE':update_date},
success:function(response){
alert(success_value);
window.location.reload(true);
}
});
Store.normal是将文件存在指定的文件夹
存在fix.xml,如图所示:
存储路径:select*fromFIX_ACC_FILE_INFO可以查询到
另一种方式:AttachmentDB以文件流的形式存入数据库
不确定节点的 一般采用 自己绕自己的方式
处理者动态计算
节点配置的是:某种角色可以处理,可以通过前一步处理,计算出究竟是哪一种角色要处理,反推用户也一样
节点配置的 是一段表达式 比如说 你处理者配置的 是个 List<String> get(0) 那么在每次处理完成后 把这个 List<String>给 remove 一个 下面一个人 就会是 (1)
处理者可以这么写的无限可能性
定时发送个邮件的话就不需要做什么关联
如果涉及到 UserTask 就需要关联业务对象了
如图所示:
在OK按钮写事件,调用弹出对话框按钮事件
代码如下:
var bb=$(':checkbox[name="checkbox_FIX_MAP_INFO"]:checked');
if(bb.length==1)
{
alert("1");
Fix.get('FixDialog_0').els.Trigger.click();
}
else
{
alert("2");
}
第一步:修改htmlgrid.js
代码如下:
if($('input[GridRowSingle=true]',_jQy_table).length
!= 0 ){
$(".row-status-selected",
_jQy_table).each(function(){
$(this).removeClass(str_cssClass);
});
jQy_row.addClass(str_cssClass);
}else{
if(!jQy_row.hasClass(str_cssClass))
jQy_row.addClass(str_cssClass);
else
jQy_row.removeClass(str_cssClass);
}
第二步:在相对应的明细界面加一句话,和修改type属性值
<INPUTid=checkbox_FIX_MAP_INFOname=checkbox_FIX_MAP_INFOtype=radioComponentID="checkbox_FIX_MAP_INFO"GridRowCheck="true"GridRowSingle="true">
$("#Autocomplete_0_FixCOM").width(40);
是的 4.7 之后 就跟 浏览器没关系了
生成的 是 img 不是 svg 了
研发解答:
客户提问:
关了定时任务就好了
为什么多个系统不能同时启动定时任务了.有并存的解决方案吗
解答:在不同的 地方 是没事情的 集群多 Web 我们 走的 quarzt 自带的 集群特性
发布多个项目,需要修改web.xml中的:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>fix.root</param-value>
</context-param>
把“fix.root”改成“fix.root2”
需要修改Log4j.xml
“${fix.root}”替换成${fix.root2}
你可以为每个系统做一个首页
放在里面,不同的命名,这些只是技巧而已
换句话说,如果没有主题,你也要从头做一次
varonlineUser="";
Fix.ajax({
action: {
_method: "systemService.getUserItems"
},
async:false,
success: function(response){
onlineUser
= response.userInfo;
}
});
//
alert("111");
//alert("部门编号:"+onlineUser.orgId);
//alert("部门名称:"+onlineUser.orgName);
//alert("用户编号:"+onlineUser.userId);
//alert("用户名称:"+onlineUser.userName);
日期比较
function My97DatePicker_2_onSelectValue(selectedValue, inst, jq_scope){
var endTime=Fix.getData("My97DatePicker_2_FixCOM");
var startTime=Fix.getData("My97DatePicker_1_FixCOM");
// alert(endTime);
//alert(startTime);
if(startTime>endTime)
{
Fix.Runtime.setError("开始日畏期不能大于结束日期!");
}
}
function input_0_blur(){
//寻找最近的一行
var$tr
= $(this).closest("tr");
alert($("#TEST2_ID",$tr).val());
var aa=parseInt($("#TEST2_NUM",$tr).val());
var bb=parseInt($("#TEST2_PRICE",$tr).val());
var cc=aa*bb;
$("#input_0",$tr).val(cc);
// alert(cc);
}
正常的算法,是要区分字段别名的大小写
正则表达式:/(\.|\/)(gif|jpe?g|png)$/i
varpks="";
var pkValue="";
$(".row_selected").each(function(index){
pks = $(this).data("pks");
pkValue
+= ","
+ $(this).data("pkValue");
});
选中某一列,获取列表参数
点击编辑-------->脚本-------->空事件处理
代码如下:
function(opts,btn, url_params){
var ss='';
//循环列表取值
$(".row_selected").each(function(index){
var val=$(this).data("PURCH_ID");
ss=val;
})
alert(ss);
var url = Fix.App.appHost + opts.page;
var param = Fix.Component.ToolbarBtn.initEmptyParam(opts, btn,
_current_params);
_current_params._useType = 'add';
_current_params._viewId =
Fix.Uniform.config.ViewId;
_current_params._treeNodeId =
Fix.Uniform.treeNodeId;
delete _current_params._objName;
param.url =
top.Fix.Utils.appendParams(url, _current_params);
//从列表取值,传参
encodeURIComponent(encodeURIComponent(param.url+="&_pkValue="+ss));
top.Fix.Manager.createDialog(param, function(instObj){Fix.Uniform.refresh();},
top);
}
表单页面代码:
前提在页面加载事件onBindComplete事件下加此代码
Fix.getURLParams(window.location.href);
Fix.Utils.getURLParams(window.location.href)
参考代码如下:
//从URL获取传递参数
var Request ="";
Request =
Fix.getURLParams(window.location.href);
var purch_id=Request['_pkValue'];
alert(purch_id);
$("#FIX_PURCH_INFO_PURCH_ID").val(purch_id);
formeditor_sysvar.xml
引用类:applicationContext_expression_fix.xml
如何新建一个序列号
dataView.get("参数名")获取数据列表的值
(上传人,上传时间等可配置)
文本域ID修改:_taskComment
当需要继续往下挂载权限点时用到的
比如你的那个页面上有两个按钮也需要权限控制
然后那两个按钮还可以继续往下挂载
<IFRAMEID="fck"style="width:100%;height:50%;border: none;" src="../../../theme/FixCS/StandardUniform.html?_objName=TEST1&_viewId=testlist&_menuId=bbbbaf5f-7e07-4995-8960-d5bd553ba882"></IFRAME>
列表按钮_弹出高级查询
var url1="htm路径?_useType=search";
var obj_item;
var obj_slide = top.Fix.Manager.createSlide(null, null, window);
obj_slide.tabContainer.empty();
obj_slide.pageContainer.empty();
var config = {
obj: obj_slide.obj,
maxHeight: 200,
tabContainer: obj_slide.tabContainer,
pageContainer: obj_slide.pageContainer,
liList: [],
direction:"vertical",
ctlBtn: false
};
var tabs = new Fix.Component.JQTabs(config);
tabs.draw();
$(".slip-center").css("height","200px");
$(".slip-left").css("height","226px");
obj_item = {
name:'高级查询',
url:url1,
id:'高级查询',
enableClose:false
};
tabs.add(obj_item);
列表按钮_弹出卡片查看关联信息
function(opts,btn, url_params, params){
try
{
var V_子关联字段=$($(".row_selected")[0]).data("子关联字段");
var url1='htm路径?_viewId=list&objName=查看表&_useType=view&_pk=查看表主键字段&_pkValue='+V_子关联字段;
openTab({
title: "查看xx信息",
url : url1,
id : "查看xx信息",
name : "查看xx信息"
});
}
catch(e)
{}
}
function openTab(opt) {
var tab;
var setting = {
name:'',
id:'',
pId:'PID',
title : '',
html : '',
closable : true,
url : ''
};//初始化箱子
$.extend(setting, opt);//给箱子喂值
var html1 = opt.url;
if (html1 != '') {
setting.html = '<iframe src="'
+ html1
+ '" style="width:100%;height:100%;border:0px;" border=0 frameborder=0 parent_url="' + window.location.href + '" maintab_url="' + window.location.href + '"/>';
}
var tabFrame = null;
tabFrame = window.parent;
if(!tabFrame.MainTab){
tabFrame = tabFrame.parent;
}
tab = tabFrame.MainTab.add(setting);
tab.show();
};
import com.founder.fix.fixflow.core.impl.identity.Authentication;
Authentication.findParentGroupByGroupId(userInfo.getOrgId(),"dept")
Fix.Runtime.closeThisPage({})关闭tab标签
window.close()关闭原生窗口
//提交前验证
Fix.Engine.onVerify(function(btn_source){
debugger;
if($(btn_source).attr("commandtype")=="submit"){
if($("#DIS_OFFIC_TYPE_CODE").val()==""){
alert("发文编号不能为空");
$("#DIS_OFFIC_TYPE_CODE").focus();
Fix.Engine.PassedVerify = false;
}
}
//Fix.Engine.PassedVerify = true;
});
$("#button_0").trigger("click");
具体明细下的按钮
$("#button_0",$("#table_CGDETAIL_TABLE")).trigger("click");
示例代码:
var cc=parseInt($("#CG_TABLE1_COUNT").val());
alert(cc);
for(var
i=0;i<cc;i++)
{
$("#button_0",$("#table_CGDETAIL_TABLE")).trigger("click");
}
fz:数据源
getprocdata:获取存储过程数据
sp_T_PlaceSelectone:存储过程名
Fcur_id:存储过程变量
{ID}:传参
(fz,getprocdata) sp_T_PlaceSelectone (Fcur_id={ID})
$("#明细表id tbody tr").length
$("#明细ID tbody tr:eq(0)").remove();
$("#button_0",$("#table_PT_SYBPHHQSPB_DETAILKC1")).hide();
$("#button_0",$("#table_DG_COUNTERSIGNATURE_DETAIL")).hide();
$("#button_0",$("#table_DG_COUNTERSIGNATURE_DETAIL")).trigger("click");
$("#button_0",$("#table_PT_SYBPHHQSPB_DETAILKC1")).trigger("click");
system.out.println("");
return fixflow_alluser;
function My97DatePicker_1_onSelectValue(selectedValue, inst, jq_scope){
var selectYear = parseInt(selectedValue.split("-")[0]);
alert(selectYear);
var myDate = new Date();
var year=parseInt(myDate.getFullYear());
table0 = Fix.Engine.DetailGrid["table_FIN_EXPENSE_DETAIL"];
$("#table_CGDETAIL_TABLE tbody").empty();
for(var i = selectYear; i <= year; i++){
var newRow = table0.obj.insertRow();
var dateCtrl = $("#My97DatePicker_0_FixCOM", newRow);
dateCtrl.val(i);
}
}
Fix.Uniform.jqDataTables.onRowDblSelected(function(obj) {
var len = $(".row_selected", obj).length;
var state = "";
if (len == 1) {
state = "single";
} else if (len > 1) {
state = "multi";
}
Fix.Uniform.toolbar.setBtnState(state);
});
scott 密码是 tiger
sys 密码是 change_on_install
system 密码是 manager
sysman 密码是 oem_temp
select*
from (selectORGID,''asSUPORGID,ORGNAME
fromau_orginfo
whereorgid='T3'
union
selectt1.ORGID,t1.SUPORGID,t1.ORGNAME
from (SELECTORGID,ORGNAME,SUPORGID
FROMau_orginfo
WHERE 1 = 1
STARTWITHorgid='T3'
CONNECTBYPRIORorgid=suporgid)t1
whereorgid!='T3')mt1
where 1 = 1
Fix.Uniform.jqDataTables.getPageSize = 70;
列表数值转评分星图片
效果如下:
列表JS:function(value,aData,store,rowIndex)
{
var s='<div>';
for(i=0;i< parseInt(value) ;i++ )
{
s=s+ '<img id="img1" src="../star-on.png"/>';
}
return s+'</div>';
}
/*要求:1、列宽要调至200以上。
2、将star-on.png图片托到eclipse的项目 webroot/theme 下面。
3、图片不能太大,16-16最佳。
代码如下:
function JQFileUploadV2_0_onItemCreateEvent(data, e){
var url = Fix.Helper.getURL("streamSupportService.previewTempAttachment", "pageToken:'" + Fix.App.PageToken + "',fieldToken:'" + data.result[0].fieldToken + "',fileName:'" + data.result[0].id + "'");
$("img").attr("src", url);
}
注:其实就是取的的json格式
FixJSON={%27_method%27:%27streamSupportService.previewTempAttachment%27,%27_param%27:{pageToken:%276ffcfc1c-9d83-117c-92be-afeb781cd342%27,fieldToken:%27d379334d-070c-a2d6-923a-f52f1a0194d6%27,fileName:%27Tulips.jpg%27}}
当作变量来传参
pageToken:Fix.App.PageToken
fieldToken:data.result[0].fieldToken
fileName:data.result[0].id
界面参考:
参考代码:
在onbindcomplete事件里面写
注:var _fieldToken =
Fix.Engine.Data.表名[0].附件字段名.val;
val(是封装的属性)
在类型判断需要加代码:
注:var fileCount = Fix.get("JQFileUploadV2_0").els.GetUploadedCount();判断正确的上传类型个数
需要替换文件:form_upload.tpl
修改文件提示:jquery.fileupload-ui.js
parent.Fix.Uniform.refresh();
window.location.reload();刷新整个页面
代码如下:
function HTMLSelect_0_onSelectValue(selectedValue, inst, jq_scope){
var dataConfig = {
Fields: "F_FID,F_AREANAME",
BizObj: "T_JBXX_AREA",
Service: ""
};
var select1=Fix.get("HTMLSelect_0").els.getText();
dataConfig.Filter = "F_FID=(select F_guid from t_jbxx_city where f_name='"+select1+"')";
var obj_adapter = new Fix.Component.DataAdapter(dataConfig);
obj_adapter.getData(function (arr_package) {
var datas = arr_package.datas;
// alert(datas);
Fix.get("HTMLSelect_15").els.init(datas);
Fix.get("HTMLSelect_15").els.draw($(document));
});
}
注:dataConfig是传参数数组,分别是字段,表名
dataConfig.Filter:sql后面的条件
new Fix.Component.DataAdapter(dataConfig);:封装的调用服务的方法,直调传参调用即可。
Fix.Uniform.config.DataTable.event = {
"onRowSelected": function(objDataTable, bool_status, rowdatas, jq_row){
//监听行选中时事件
//alert("hello world");
//Fix.Uniform.toolbar.setBtnDisable("id", true);
var onlineUser;
Fix.ajax({
action: {
_method: "systemService.getUserItems"
},
async:false,
success: function(response){
onlineUser = response.userInfo;
}
});
showUserInfo(rowdatas['USERID'],onlineUser.userName,onlineUser.loginId,onlineUser.orgName || "");
}
}
function showUserInfo(userId,username,loginid,dep){
var userinfo = username + " [" + loginid + "]" + dep;
var myInfo = $("<a href='javascript:void(0)'></a>");
var ObjCfg = {
id: "myinfo",
name: "个人信息 - " + username,
title: "个人信息 - " + username,
url: "../../forms/system/AU_USERINFO/myInfo.html?_viewId=home&_menuId=home&_useType=view&_pk=USERID&_pkValue=" + userId,
width: 700,
height: 400
};
top.Fix.Manager.createDialog(ObjCfg, function(instObj){}, window);
}
/fixweb/conf/applicationContext_resources_fix.xml
Context.xml
两个文件删除与修改要保持一致
一、方法类存写路径:weblogic—src包下面
二、包名+文件名+类名+传参
URL取值
查询按钮有个点击事件,你点一下,会到写js代码的地方
URL赋值
window.outOfFrame = true;
Fix.Engine.onBindComplete(function(){
var reportobj = document.getElementById("ReportFrame");
//var url=Fix.App.getHost()+"ReportEmitter?rpt=claim/testR.brt¶ms=year=;startY=1993;endY=2007";
var url=Fix.App.getHost()+"ReportEmitter?rpt=claim/test.brt¶ms=year=9999";
reportobj.src=url;
});
function OKBtn_0_onTriggerClick(FixCMP_Config, jQ_scope){
var year = $("#My97DatePicker_0_FixCOM").val();
//var startY = $("#HTMLSelect_0").find("option:selected").text();
var reportobj = document.getElementById("ReportFrame");
var url=Fix.App.getHost()+"ReportEmitter?rpt=claim/test.brt¶ms=year="+year;
reportobj.src=url;
//alert(url);
return true;
}
代码:
function HTMLSelect_0_onSelectValue(selectedValue, inst, jq_scope){
Fix.Component.Draw("HTMLSelect_1");
}
前端:
function(opts,btn, url_params){
var selRows =
$($(".row_selected")[0]);
var ID =
selRows.data("ID");
var STATE =
selRows.data("STATE");
if(STATE=="0") {
alert("已删除");
}else{
Fix.ajax({
action
: {
//业务对象.服务名
_method
: "T_TEST.caigoulogic"
},
data
: {'ID':ID},
success
: function(response) {
alert("操作成功");
Fix.Uniform.refresh();
}
});
}
后台:
前端代码:
参考代码:在onBindComplete事件后面增加代码
//+++++++++获取编号+++++++++++++++++++++++++++++++++++
// varusertype =
GetQueryString("_useType");//获取表单类型,添加、修改、浏览
var Request ="";
Request =
Fix.getURLParams(window.location.href);
var usertype=Request['_useType'];
//alert(usertype);
if(usertype == "add"){
var _CompanyNumber ="CH";
var _Code =$("#T_TEST_ID");
reflashId('T_TEST','ID',_CompanyNumber,"6",_Code);
}
//---------获取编号-----------------------------------
Foundation.js公共方法
//自动刷新ID
function reflashId(tablename, item, preval, length, $that) {
Fix.ajax({
action
: {
_method
: "T_TEST.BASEINFO",
_param
: {
TABLENAME
: tablename,
ITEM
: item,
PREVAL
: preval,
CODELENGTH
: length
}
},
async
: false,
success
: function(response)
{
$that.val(response.res);
},
error
: function()
{
alert("系统错误!");
}
});
}
后台代码:
public Object getAutoId() {
Object
RES = null;
DataView
dataView = Current.getDataView();
String
tableName = (String) dataView.get("TABLENAME");//表表名称
String
item = (String) dataView.get("ITEM"); // 字段名称
String preVal = (String)
dataView.get("PREVAL");
// 前置占位符
String
codeLength = (String) dataView.get("CODELENGTH");//字符长度
try {
RES =
getIdValue(tableName,item,preVal,codeLength);
}
catch
(Exception e) {
e.printStackTrace();
}
this.dataView.putReturnData("res", RES);
return RES;
}
调取存储过程方法:
private Object getIdValue(String tableName, String item,
String
preVal, String codeLength) {
// TODO自动生成的方法存根
DBGetResult
dbgr = null;
String
sql= "NH_GetSerialCode";
Object result = null;
if(!(tableName==null ||
tableName.trim().equals("") ||
item==null || item.trim().equals("") ||
preVal == null || codeLength ==null || codeLength.trim().equals("") )){
try {
dbgr
= DBGetResultHandle.createDBGetResult();
List<Parm_Struct>
params = new
ArrayList<Parm_Struct>();
params.add(new
Parm_Struct(tableName));
params.add(new Parm_Struct(item));
params.add(new Parm_Struct(preVal));
params.add(new
Parm_Struct(codeLength));
result =
dbgr.GetFirstValue(sql,
CommandType.PROC, params);
}
catch
(Exception e) {
// TODO自动生成的 catch 块
e.printStackTrace();
}finally{
if(dbgr != null)
try {
dbgr.closeConn();
}
catch
(SQLException e) {
e.printStackTrace();
}
}
}
return result;
}
数据库存储过程:
USE[BPMCSCMD]
GO
/******
Object: StoredProcedure
[dbo].[NH_GetSerialCode]
Script Date: 07/06/2016 13:52:00 ******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[NH_GetSerialCode]
-- Add the parameters
for the stored procedure here
@TableNameVarchar(50),--编码数据表名称
@FieldNameVarchar(50),--编码字段名称
@CHARVarchar(10),--开始字符串名称
@iVarchar(10)--编码长度如CH0001,编码长度为
AS
BEGIN
-- SET NOCOUNT ON added
to prevent extra result sets from
-- interfering with
SELECT statements.
SETNOCOUNTON;
-- Insert
statements for procedure here
declare@LenVarchar(10)
Set@Len=Convert(varchar,len(rtrim(@CHAR))+CAST(@iasint))
exec(
'Select
rtrim('''+@CHAR+''')+ right('''+
'000000000000'+'''+Convert(varchar,isnull(max(right(rtrim( '
+@FieldName+'),'+@i+')),0)+1),'+@i+') as CODES from '+@tablename+
' where (len(rtrim('+@FieldName+'))= '+@Len+') and ('+@FieldName+'
like rtrim('''+@CHAR+''')+'+'''%'''+' )'
)
END
前台页面js文件:
Fix.Engine.onVerify(function(){
//增加自定义验证代码
//Fix.Engine.PassedVerify = true;
//varusertype =
GetQueryString("_useType");
var Request ="";
Request =
Fix.getURLParams(window.location.href);
var usertype=Request['_useType'];
var param ="";
var TEST_ID = $("#T_TEST_ID").val();
if(usertype == "add"){
param = "and ID = '"+TEST_ID+"'";
if(TEST_ID!='') {
Fix.ajax({
action: {
_method: "T_TEST.veriyId",
_param: {
TABLENAME : 'T_TEST',
PARAM : param,
}
},
async:false,
success: function(response){
if(response.res[0].ISTRUE
!= "0"){
alert("该编号已存在");
Fix.Engine.PassedVerify
= false;
}
},
error: function(){
alert("系统错误");
}
});
}
}
});
后台服务方法:
public Object isExistence(){
Object
RES = null;
DataView
dataView = Current.getDataView();
String
tableName = (String) dataView.get("TABLENAME");//表表名称
String
param = (String) dataView.get("PARAM"); // 字段名称
DBGetResult
dbgr = null;
String
sql= "NH_ISEXISTENCE";
if(!(tableName==null ||
tableName.trim().equals("") || param == null || param.trim().equals(""))){
try {
dbgr
= DBGetResultHandle.createDBGetResult();
List<Parm_Struct>
params = new
ArrayList<Parm_Struct>();
params.add(new
Parm_Struct(tableName));
params.add(new Parm_Struct(param));
RES =
dbgr.GetDataTable(sql,
CommandType.PROC, params);
}
catch
(Exception e) {
// TODO自动生成的 catch 块
e.printStackTrace();
}finally{
if(dbgr != null)
try {
dbgr.closeConn();
}
catch
(SQLException e) {
e.printStackTrace();
}
}
}
this.dataView.putReturnData("res", RES);
return RES;
}
}
数据库存储过程方法:
USE[BPMCSCMD]
GO
/******
Object: StoredProcedure
[dbo].[NH_ISEXISTENCE]
Script Date: 07/06/2016 13:55:00 ******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[NH_ISEXISTENCE]
-- Add the parameters
for the stored procedure here
@TABLENAMEVARCHAR(50),--数据表名称
@QUERY_CONDITIONSVARCHAR(250)--查询条件
--使用说明:如果返回值为表示不存在相关数据,否则存在
AS
BEGIN
-- SET NOCOUNT ON added
to prevent extra result sets from
-- interfering with
SELECT statements.
SETNOCOUNTON;
EXEC('SELECT COUNT(1) AS ISTRUE,Case when COUNT(1)=0 then '+'''数据表【'+
@TABLENAME+'】中,不存在相关数据!......'''+'
else '+'''数据表【'+
@TABLENAME+'】中,存在'''+'+Convert(varchar,COUNT(1))+'+''' 条相关数据!......'''+' end AS CAPTIONS FROM '+@TABLENAME+
' WHERE (1 =
1) '+@QUERY_CONDITIONS
)
END
var logid=top.onlineUser.loginId;
var logid=top.onlineUser.loginId;
$("#table_FA_SMB_FILEINFO
tbody tr").each(function(i,j){
if(logid!=$("#input_8",j).val()){
xh_upload_disabled(i+1);
$("#checkbox_FA_SMB_FILEINFO",j).attr("disabled",true);
$("#TEXTAREA_0",j).attr("disabled",true);
}
});
function xh_upload_disabled(i){
var $xhobj=$("#table_FA_SMB_FILEINFO_"+i+"
#JQFileUploadV2_0 button");
if($xhobj.length==0){
setTimeout(function(){
xh_upload_disabled(i);
},500);
}else{
$xhobj.attr("disabled",true);
}
}
在FixCOM.js下Fix.Calculation这个function中,在
if(!isFinite(str_value)){
alert((new Fix.Exception("Runtime_001", _className, [str_value])).description);
str_value
= "";
}
后面接上
else{
str_value
= parseFloat(str_value,10);
}