UAP studio基础使用技巧

1.表格翻页方法的重写
me.gridView.getDataGrid().onpageindexchanged.clear();  me.gridView.getDataGrid().onpageindexchanged.addEventListener(me.controller.pageIndexChanged);
2.获取登陆人信息
@RequestMapping(value = "/getuserinfo")
 public @RawResponseBody Object    getuserinfo( ){
   Map<String, String> data = new HashMap<String, String> ();
   //得到用户id,登录名
  String userId = ClientContextHolder.getInstance().getClientContext().getUserID();
  String name = ClientContextHolder.getInstance().getClientContext().getUserName();
  try {
   List<User> users = AdapterFactory.getIdentityService().getUserByIds(new String[]{userId}); 
   User  user = ((User) users.get(0));
  String  userName = user.getName();
  String  userMobile = user.getMobile();
  String  userEmail= user.getEmail();
   Department  dept =  AdapterFactory.getIdentityService().getDepartmentById(user.getBaseOrgId());
   可以去的部门的unicode 去o_org表中 判断org_type 02省 03地市
在前台判断页面的展现即可
  String departementName =  dept.getName();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return  WrappedResult.successWrapedResult(data );
 }


3.uap压缩模式启动
#前端展现框架是否使用调试模式,默认为  true,生产环境下建议设置为 false
MX_DEBUGMODE=true
#前端展现框架是否使用压缩模式加载到浏览器端,默认不启用,建议生产模式启用
MX_COMPRESSMODE=false
前者设置为false,后者设置为true即可 。
4.jquary方法的使用
jquary 
find 搜索所有与指定表达式匹配的元素。这个函数是找出正在处理的元素的后代元素的好方法。$("p").find("span").onfocus = function(){}
可以转化为document对象.
5.控制台打印信息
console.log()
6.uap错误日志
window show View   others 里面的 error log就有
D:\Users\Administrator\workspace\.metadata 中的.log日志
7.uap添加log日志文件
1.uap项目下修改log4j.properties配置文件,添加sql所在文件包路径节点及输出方式(文件)。
### set sql log
log4j.additivity.com.sgcc.mds.lcam=false
log4j.logger.com.sgcc.mds.lcam=debug, lcam
log4j.appender.lcam=org.apache.log4j.RollingFileAppender
log4j.appender.lcam.File=${LOG_DIR}/lcam.log
log4j.appender.lcam.MaxBackupIndex=100
log4j.appender.lcam.MaxFileSize=5000000
log4j.appender.lcam.layout=org.apache.log4j.PatternLayout
log4j.appender.lcam.layout.ConversionPattern=[%d{ISO8601}][%p] %c{1}:%L)  %n    %m%n
参考附件:
 

2. 模块项目添加如下log4j依赖:

3. Java类里添加如下标红两行:


4. Sql生成位置添加日志输出代码:

参考附件:

8.uap白名单配置-越过登陆直接访问
Applicationconfig.proerties
ISC_EXCLUDEPAGES=/sguap-client/workbench/workbench/login.jsp,\
                /mds/portal/portal/login.jsp,\
                /ImsBusiness/services,\--wsdl
                /mds/smfxjpj/isc_tree/index.jsp,\--页面
                /mds/portal/fromMds/index.jsp
9.uap接入统一认证
ISC_ADAPTER_URL = http://192.168.0.32:7002/isc_frontmv_serv
ISC_LOGINURL = http://192.168.0.32:7002/isc_sso/login
ISC_AUTHMODE = ISC
10.uap中wsdl实现
1.配置org.codehaus.xfire白名单 modulelist的
2.applicationconfig中wsdl路径白名单
3config下配置xfire

4config下配置service

http://IP地址:端口号/lcamIMS /ImsBusiness/services/MDSWebService?wsdl
5测试新建webservice项目 导入xfire包
String urlString = "http://localhost:9000/mds/ImsBusiness/services/MDSWebService?wsdl";
        Client client;
        try {
            client = new Client(new URL(urlString));
            Object[] results= client.invoke("getKPIValue", new Object[]{xml});
//            System.out.println(results[0].toString());
            for( Object o : results){
                System.out.println(o);
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
11.uap中生成42位uuid

12.uap过滤器--用于审计和sql注入校验
1.config下filter注册
2过滤配置
3过滤实现
13.uap配置文件配置常量
    public static final String ISC_APPID = PlatformConfigUtil
            .getString("ISC_APPID");
14.uap与chart图集成
首先导入include(/mds/gg/fusionCharts/FusionCharts.js);
1.初始化容器
me.chaichuChart = new mx.containers.Container({
            height:"250px",
            width:"650px",
//            border:"1px solid #6EC5B9",
            left: "300px",
            
            top:"0px",
            id :"chaichuChart"
            });
2.初始化数据
var params = new Object();
        params.items = new Array();
        params.items.push({
            "stratDate" : me.timeEditor3.value,
            "endDate" : me.timeEditor4.value,
            "orgNo" : me.controller.drop1_value,
            "startAge" : me.drop5.value,
            "endAge" : me.drop6.value,
            "statusCode" : me.controller.drop2_value
        });
//        debugger
        var client = new mx.rpc.RESTClient({
            async : false
        });
        client.post(chdnbfjqk.mappath("~/rest/removeHomePage/EquipPickPie3D"), JSON
                .stringify(params), function(result) {
            me.JsonData = result;
        });
3 /**
     * 放置chart
     */
    me.setChartA = function() {
        me.chart1 = new FusionCharts("/mds/gg/fusionCharts/Pie3D.swf",
                "chartA", "570", "230");
        me.chart1.setJSONData(me.JsonData);
        me.chart1.render("chaichuChart");
    }
15.uap容易添加html代码
获取容器jquary对象的append方法
me.hsplit2.$panel1.append(
                "<table style='width: 100%;'><tr><td align='center'>" +
                "<div style='position: relative; float: left;width: 100%;padding-left: 33px; top:10px;'>" +
                "<div style='position: relative; float: left; margin-left: 70px;'>单位:只</div>" +
                "</div>" +
                "<div id='chartContainer1' style='width: 100%; height: 100%;'></div>" +
                "</td></tr></table>"
        );
16表格onload方法 设置表格数据样式
onload:me.controller._dataGrid_onload
  me._dataGrid_onload = function(e){
        var v_dataGrid = e.target;
        v_dataGrid.$e.find("table>tbody>tr>td").css({"border":"#6ec5b9 1px solid"});
        v_dataGrid.$e.find("div#body").css({"overflow-y":"auto","top":"23px"});
        v_dataGrid.$bodyTable.find("#rownumber").css("backgroundColor","#E7F8F2");
        if(v_dataGrid.displayStatisticRow){
            var statist =  v_dataGrid.$statisticRow;
            //改变统计行的样式
            statist.css({
                 position:"absolute",
                 bottom:v_dataGrid.pageNaviBar.height,
                 border:"1px solid #1B9974"
            });
            statist.find("tr").css({"backgroundColor":"#E7F8F2"});
            statist.find("#rownumber").text("合计");
            //移除统计行
            statist.remove();
            //将统计行重新加载到grid下面
            statist.insertAfter("#grid");
            //重置grid的bottom样式
            v_dataGrid.$grid.css("bottom",statist.height()+v_dataGrid.pageNaviBar.height);
            //统计
            var items = v_dataGrid.items;
            //申请报废数
            var runQty = 0;
            for(var i=0;i<items.length;i++){
                runQty += items[i].getValue("appRetQty");
            }
            //设置统计值
            v_dataGrid.columns["appRetQty"].setStatisticValue(runQty);
            v_dataGrid.columns["appRetQty"].setStatisticAlign("center");

            //已报废数
            var ybfs = 0;
            for(var i=0;i<items.length;i++){
                ybfs += items[i].getValue("finishRetQty");
            }
            //设置统计值
            v_dataGrid.columns["finishRetQty"].setStatisticValue(ybfs);
            v_dataGrid.columns["finishRetQty"].setStatisticAlign("center");

            
        }

17.uap导出功能
导出方法1
/**
     * 导出Excel
     *
        //导出时间
        var date = new Date();
        //年份
        var year = date.getFullYear();
        //月份
        var month = date.getMonth()+1;
        //第几日
        var day = date.getDate();
        var time = year+"-"+month+"-"+day;
        //过滤条件
        var v_dataGrid = me.view.getDataGrid();
        //列名
        var columns = "";
        //列标题
        var columnCaptions = "";
        //列宽度
        var columnWidths = "";
        //文件名称
        var fileName = "报废数量单位分布";
        //文件标题
        var fileTitle = "报废数量单位分布";
        
        //获取列名,列标题,列宽度
        for(var i=0;i<v_dataGrid.columns.length-1;i++){
            if(v_dataGrid.columns[i].name == v_dataGrid.primaryKey){
                continue;
            }
            columns += v_dataGrid.columns[i].name + ",";
            columnCaptions += v_dataGrid.columns[i].caption + ",";
            columnWidths +=  "100,";
        }
        columns = columns.substring(0,columns.length-1);
        columnCaptions = columnCaptions.substring(0,columnCaptions.length-1);
        columnWidths = columnWidths.substring(0,columnWidths.length-1);
        
        //查询条件
        var filter = new Object();
        filter.orgNo = me.orgNo;
          filter.mdType = me.mdType;
          filter.bidBatchNo = me.bidBatchNo;
          filter.arriveNo = me.arriveNo;
          filter.supplierNo = me.supplierNo;
          filter.tjksrq = me.tjksrq;
          filter.tjjzrq = me.tjjzrq;
          //选中的列名
          filter.columns = me.columns;
        //导出标记,使用它便于区分导出还是查询
        filter.exportFlag = true;
        //导出 com.sgcc.mds.lcam.lcEquipRetired.LcEquipRetiredController.exportExcel
        var jsonObject = {
                id : "equipInstGuidOut",//不重复的ID
                className:"equipInstController",//相应的.java文件        
                queryMethod:"exportExcel",//查询方法                                            autoFilter:true,
                queryMethodParamType:1,
                columns:columns,
                columnCaptions:columnCaptions,
                columnWidths:columnWidths,
                fileName:fileName,
                fileTitle:fileTitle,
                fileTime:time,
                isMerge:"false",
                statisticCols:"appRetQty,finishRetQty",
                filter:filter
            };
        
        //导出控件
        me.exportXSLUtil = new common$util.excel.ExportXSLUtils({
            jsonObject:JSON.stringify(jsonObject)
        });
        me.exportXSLUtil.exportExcel();
}

Config下

后台controller
    /**
     * 导出表格
     * @param params 查询条件
     * @param p_request
     * @return QueryResultObject 列表数据
     */
    @RequestMapping("/exportExcel")
    public @ItemResponseBody
    QueryResultObject exportExcel(@QueryRequestParam("params") RequestCondition params,HttpServletRequest p_request){
        return query(params);
    }


导出方法2


me.btn_daochu_click = function(){
    
        var itemCount = me.view._dataGrid.itemCount;
        if(itemCount==0){
             mx.indicate("info","无查询结果,查询后再进行操作!");
             return;
        }/*else if(itemCount>2000){
            mx.indicate("info","数据量过大,请缩小查询范围!");
            return;
        }*/else{
            var pathName = window.document.location.pathname;
            var projectName = pathName.substring(0,pathName.substr(1).indexOf('/')+1);
            var baseUrl = projectName+"/zczt/test/Zc_Servlet?" +
            "wd="+wd+"&rmv_reason="+me.view.drop1.value+"&type_code="+me.view.drop2.value+"&OrgNo="+me.view.drop3.value
               +"&asset_sort="+me.view.drop4.value+"&bid_batch_name="+me.view.drop5.value+"&arrive_no="+me.view.drop6.value+"&biaozhiwei="+"chqk"+
               "&supplier_no="+me.view.drop7.value+"&stat_ymQS="+me.view.timeEditor8.value+"&stat_ymJZ="+me.view.timeEditor9.value;
//            window.location.href = baseUrl;
             var httpurl=sheiBeizk.mappath(baseUrl);
            window.open(httpurl,
                    "显示窗口","height=1px, width=1px, top=10000px, left=100px, toolbar=no, menubar=no, scrollbars=yes, resizable=no, location=no, status=no");
        }
};
18 uap下载功能
Uap项目下webcontent下建文件夹放下载内容 servlet实现

19.tab中text自适应属性
“max-width” : “100%”


一.uap初级使用
1.布局控件
创建一个布局控件主要包括以下步骤:
导入所需的js类。
创建实例。
将实例添加到容器中。

1.1上下分割窗口布局
//1.导入类代码
$import("mx.containers.HSplit"); 
//2. 创建实例
       me.hsplit = new mx.containers.HSplit({
              rows: “300, auto“ ,//窗口的两部分大小
borderThick:”0px”//设置边框粗细
             });
      //3.将实例添加到容器中
      me.addControl(me.hsplit);

1.2左右分割窗口布局
//1.导入类代码
$import("mx.containers.VSplit"); 
//2. 创建实例
      me.vsplit = new mx.containers.VSplit({
              cols: “300, auto“ //窗口的两部分大小
             });
//3.将实例添加到容器中
me.addControl(me.vsplit);
**vsplit整体左边距设置,和左边框线的设置
me.vSplit2 = new mx.containers.VSplit({
             cols:"12%,88%",
             width:"50%",
             top:"0%",
             position:"absolute",
             borderThick:2
         });
vsplit整体左边距设置,和左边框线的设置
me.vSplit2.setLeft("50%");
me.vSplit2.$panel1[0].style.borderLeftWidth = "1px";
1.3手风琴式菜单
//1.导入类代码
$import("mx.containers.Accordion");
//2. 创建菜单实例
   me.accordion = new mx.containers.Accordion(
      { 
        "height":"60%", 
        "width":"20%",
        panels:[ 
           { title: "综合评价", name: "zhpj" }, 
           { title: "参建队伍", name: "cjdw" } 
           ],
     onselectionchanged:me.controller.accordionChanged
       }
     );        
  //3.将实例添加到容器中
  me.addControl(me.accordion);
me.addControl.appendPanel({name:"panel3", title:"面板3"});
var text = new mx.editors.TextEditor({ value: "bruce" }); 
me.addControl.panels[0].addControl(text); 
1.4Tab页
 (1)创建tablePage加入tabCotrol 
自己生成新的页面加入显示
$import("mx.containers.TabControl");//记得导包 
me.tab = new mx.containers.TabControl({
            pages:[
                { text: "常规", name: "general" },
                { text: "角色", name: "role" }
            ],
onselectionchanging: me.controller._selection_changing,
               onselectionchanged: me.controller._selection_changed
});
if(me.pageTwo == null){      //如果第二个page不存在
//创建第二个tablePage加入tableCotrol    me.pageTwo=me.view.tabControl.appendPage(text,text);//,true;
    initTableTwo();
    me.pageTwo.init();//非第一个页面记得要先初始化一下
    me.pageTwo.addControl(me.hSplit);
    //显示第二个
    me.view.tabControl.selectPage(1);

1.5.lable
         Label5.$e[0].style.cursor="pointer";
定义点击事件:
        Label5.$e.on("mouseenter",me._onmousemove);
@.或onclick: me.controller.detailOnclick


autoWrap :true, //表示标签文本是否自动换行
1.6panel
//去除panel2右侧的视图
        me.view.vsplit2.removeControl(me.view.vsplit2.controls[4]);
        me.view.vsplit2.addControl( me.getSingleIdx(),1);
2. 创建一个表格
创建一个表格主要也包括以下步骤:
导入创建表格所需的js类。
定义与表格交互数据的服务器url。
创建表格数据容器。
创建表格实例
调用表格load方法。
将表格添加到容器中。

//1.导入类代码
$import("mx.datacontainers.GridEntityContainer");
$import("mx.datacontrols.DataGrid");
//2.定义服务端url
var restUrl = "~/mxdemo/rest/uapsb/";
        /* 初始化表单数据容器EntityContainer */        
 me.gridEntityContainer=new mx.datacontainers.GridEntityContainer({
        baseUrl : restUrl,
          iscID : "-1", // iscID 是数据元素的统一权限功能编码。默认值为  "-1" ,表示不应用权限设置
        loadMeta :false    //不会更新数据库验证字段
    primaryKey: "objId"
        });
//3. 创建表格实例
//4. 创建表格实例 
     me.dataGrid = new mx.datacontrols.DataGrid({   
            columns:[
           {name: "objId", caption: "主键" , editorType: "TextEditor"},
            {name: "mc", caption: "设备名称      " , editorType: "TextEditor"},
            {name: "sbxh", caption: " 设备型号" , editorType: "TextEditor"},
            {name: "bdz", caption: "变电站 " , editorType: "TextEditor"},
            {name: "jgdy", caption: "间隔单元" , editorType: "TextEditor"},
            {name: "azrq", caption: "安装日期" , editorType: "TextEditor"},
            {name: "sblx", caption: "设备类型" , editorType: "DropDownEditor"},
           {name: "sfzy", caption: "是否在用" , editorType: "DropDownEditor"},
           {name: "ssbm", caption: "所属部门" , editorType: "DropDownEditor"},
          {name: "sfwx", caption: " 是否已维修" , editorType: "DropDownEditor"},
           {name: "sysm", caption: "使用说明" , editorType: "TextEditor"}
            ],
          displayCheckBox: true,
          displayPrimaryKey:false,//列表是否显示主键
          allowEditing: true,    //列表默认不可编辑
          entityContainer: me.gridEntityContainer({
                type : "local",
                primaryKey : "objId",
                onload : me.controller._datagridEntityContainer_onload   // 列表容器加载数据
            }),
onpageindexchanged : me.controller._datagrid_onpageindexchanged//分页

onitemclick :me.controller._dataGrid_onClick  //定义 表格点击事件     
     });
    //5.调用表格load方法
     me.dataGrid.load();
      //6.将表格添加到页面上
me.addControl(me.dataGrid);    
controller:
// 列表容器加载数据(不常用)
    me._datagridEntityContainer_onload = function(e) {
        if(me.view.danwei.value!=me.orgcode){
            e.target.dicts = me.organdict1;//数据字典
            e.itemCount = me.itemCountCx;
            e.items = me.dataCx;
        }else{
            e.target.dicts = me.organdict;//数据字典
            e.itemCount = me.itemCountCx;
            e.items = me.dataCx;
        }
        
    }
    // 分页
    me._datagrid_onpageindexchanged = function(e) {
        Query(me.filtercx, e.target.pageIndex, e.target.pageSize,true);
    }
    
2.1ToorBar
mx.controls.ToolBar
var toolBar = new mx.controls.ToolBar( 

items : 
    [ 
    { 
        name : "menuGroup",//菜单项的唯一标识 
        toolTip : "菜单分组", 
        imageKey : "new", 
        text : "菜单分组", 
        items : 
        [ 
        { 
            name : "childMenu1", 
            toolTip : "子菜单1", 
            imageKey : "new", 
            text : "子菜单1" 
        }, 
        { 
            name : "childMenu2", 
            toolTip : "子菜单2", 
            imageKey : "new", 
            text : "子菜单2" 
        }] 
    }, 
    "-",//横线表示显示分隔线 
    { 
        name : "menu1", 
        toolTip : "主菜单1", 
        imageKey : "new", 
        text : "主菜单1" 
    }, 
    { 
        name : "menu2", 
        toolTip : "主菜单2", 
        imageKey : "new", 
        text : "主菜单2" 
    }] 
});

例:
var toolBar = new mx.controls.ToolBar( 
                 { 
                     items : 
                     [{ name : "menuGroup",//菜单项的唯一标识 
                         toolTip : "保存", 
                         imageKey : "save", 
                         text : "保存"
                     }] 
                 });

//将toolBar置为空白 setDisplay or setVisible
me.proView.getDataGrid().toolBar.setDisplay("none");
//将toolBar高度设为空
me. proView.getDataGrid().toolBar.resizeTo("100%", "0%");
//调整高度
me. proView.getDataGrid().$grid.animate({top : 1},"fast");    (26为:距上边框距离)

增添:
_dataGrid.toolBar.insertItem(2,"-",true);    分割线

_dataGrid.toolBar.insertItem(3,    添加编辑按钮
{ name: "edit", text: mx.msg("EDIT"), toolTip: mx.msg("EDIT"), imageKey : "edit", 
onclick: me.controller._btnEdit_onclick},true);

_dataGrid.toolBar.insertItem(4,{ name: "fqlc", text: "发起流程",toolTip:"发起流程",imageKey : "edit",onclick: me.controller._btnFqlc_onclick},true);
删除:
_dataGrid.toolBar.removeByIndex(1);
_dataGrid.toolBar.removeByName("save");
Editor类型:获取或设置编辑器的类型

CheckEditor
TextEditor   文本框
DateTimeEditor     DATETIME 日期时间。例如:2007-07-01 14:28:32 
DropDownEditor  下拉框
LinkEditor
NumberEditor  数字编辑器
TimeEditor     TIME 时间。例如:14:28:32
默认值:TextEditor


2.2隐藏searchBox
//将searchBox置为空白 setDisplay or setVisible
me.projunitDetailView.getDataGrid().searchBox.setDisplay("none");
//将searchBox高度设为空
me.projunitDetailView.getDataGrid().searchBox.resizeTo("100%", "

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值