让文本框控件显示出来,修改文本框颜色


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"这样区分

方法2

如果用户不需要用码表来实现此功能,也可以通过代码来实现:

用户可以选择格式化模板,如图所示:

代码如下:

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_IDvarchar(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  文件

你给的新更新包目前发现了2BUG,一个是伟哥那的BUG,新建一个控件报日志错误,一个是流程里面UpdateProcessInstanceId.java文件的BUG,钱骏改了点东西
应该获取表名,不是业务对象编号

浏览标签页面显示未定义,发图所示:

客户需求性的问题:如果标签明细页过多,第一个会不显示

验证:fixCore.js

    that.PassedVerify = verifyRule();

需要把注释去掉,大概在2616行,控件非空验证。

控件正则验证

从网上获取自己需要的正则表达式,在中可以直接使用

HtmlRadioList控件如何获取选中值

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()
//清空下拉框

 

一个工程挂多个web方法

用户可以通过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以文件流的形式存入数据库

流程处理节点的处理方式不确定,如何设计该节点,比如处理人数、审批方式、多人情况下的审批顺序等这个cs里面有解决方案吗?

不确定节点的 一般采用  自己绕自己的方式   

处理者动态计算

节点配置的是:某种角色可以处理,可以通过前一步处理,计算出究竟是哪一种角色要处理,反推用户也一样

节点配置的  是一段表达式   比如说 你处理者配置的 是个 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");

   

      }

   

   

建议弹出窗体做一个禁用的事件

修改明细,将明细中checkbox改成radio

第一步:修改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);

发现自定义样式BUG,设置完值后,不显示,但源代码里面有相对应的样式。

新版本流程不区分浏览器

是的  4.7 之后 就跟  浏览器没关系了
生成的   img 不是 svg 

需要协助帮忙解决tomcat同时发布多个工程时.定时框架启动失败的问题.同步流程数据源还是会报这个异常

研发解答:

客户提问:

关了定时任务就好了
为什么多个系统不能同时启动定时任务了.有并存的解决方案吗

解答:在不同的 地方 是没事情的  集群多 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}

如果把不同的系统按模块开发放到一个工程里面,每个模块能有自己独立的展示页面和主题吗?如果模块过多,可有好的展示方式

你可以为每个系统做一个首页
放在里面,不同的命名,这些只是技巧而已

换句话说,如果没有主题,你也要从头做一次

CS如何用JS获取当前登录人

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");

            });

如何获取URL传递的参数

选中某一列,获取列表参数

点击编辑-------->脚本-------->空事件处理

代码如下:

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

如何新建一个序列号

Fix.Calculation 这个类的使用案例

如何获取视图列表值

dataView.get("参数名")获取数据列表的值

附件如何增加上传人,附件控件是否可配置

(上传人,上传时间等可配置)

自定义分页如何嵌入到使用

列字段太多,如何调整列宽

流程意见:_taskComment

文本域ID修改:_taskComment

这里配置权限是做什么用的.

当需要继续往下挂载权限点时用到的
比如你的那个页面上有两个按钮也需要权限控制
然后那两个按钮还可以继续往下挂载

表单如何嵌入IFRAME

<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();
};

流程里获取上级部门ID

import com.founder.fix.fixflow.core.impl.identity.Authentication;

 

Authentication.findParentGroupByGroupId(userInfo.getOrgId(),"dept")

JAVA代码返回一个List

前端关闭页面的两种区别

 

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})

 

获取某个table的总行

$("#明细表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);

}

}

 

修改默认表单按钮文本

列表调用流程启动

双击列表JS

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);

});

 

 

orcl数据库默认的登录名和密码

scott   密码是 tiger

sys     密码是 change_on_install

system  密码是 manager

sysman  密码是 oem_temp

 

orlc数据库递归调用组织ID找下级单位

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;

 

ORCL数据库分类查询关联条件


 列表数值转评分星图片
 
效果如下:
 
列表JSfunction(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最佳。

上传控件2显示图片

代码如下:

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}}

当作变量来传参

pageTokenFix.App.PageToken

fieldTokendata.result[0].fieldToken

fileNamedata.result[0].id

上传控件2浏览图片

界面参考:

参考代码:

onbindcomplete事件里面写

注:var _fieldToken = Fix.Engine.Data.表名[0].附件字段名.val;

val(是封装的属性)

上传控件2类型文件验证

在类型判断需要加代码:

注:var fileCount = Fix.get("JQFileUploadV2_0").els.GetUploadedCount();判断正确的上传类型个数

需要替换文件:form_upload.tpl

修改文件提示:jquery.fileupload-ui.js

执行AJAX异步调用,刷新列表

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.Filtersql后面的条件

new Fix.Component.DataAdapter(dataConfig);:封装的调用服务的方法,直调传参调用即可。

Formtest.java测试类

原生的弹出界面

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 

两个文件删除与修改要保持一致

 

流程调用JAVA类方法

一、方法类存写路径: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&params=year=;startY=1993;endY=2007";
var url=Fix.App.getHost()+"ReportEmitter?rpt=claim/test.brt&params=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&params=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;

V2上传组件禁用

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);

    }

}

计算输入数字被转化成8进制16进制计算

FixCOM.jsFix.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);

                     }

将值强制以10进制转换

版权所有 蜀ICP备19036269号-1 工业和信息化部备案管理系统