ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

苍穹代码笔记

2021-05-06 18:59:17  阅读:376  来源: 互联网

标签:getView 控件 get 苍穹 代码 笔记 new 标识符 页面


文章目录

一、弹窗操作

1、获取父页面的视图和模型

IFormView parentView = this.getView().getParentView();
IDataModel parentModel = parentView.getModel();

2、父页面给子页面传值

1、FormShowParameter
--父页面
FormShowParameter formShowParameter = this.getView().getFormShowParameter();
formShowParameter.setCustomParam("你要传过去的标识","你要传过去的内容")
--子页面
FormShowParameter formShowParameter = this.getView().getFormShowParameter();
formShowParameter.getCustomParam("你传过来的标识")

2、把数据放在缓存中
--父页面
this.getView.getPageCache.put("放在缓存的key值","放在缓存的value值");
--子页面
IFormView parentView = this.getView().getParentView();//通过父类的view获取父类的缓存
IPageCache pageCache = parentView.getPageCache();
pageCache.get("放在缓存的key值");

3、给点击事件新增弹窗

1、
2、新增弹窗
 //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
FormShowParameter ShowParameter = new FormShowParameter();
//设置弹出页面的编码
ShowParameter.setFormId(KEY_POP_FORM);
//设置弹出页面标题
ShowParameter.setCaption("您的请假天数大于3天,请填写工作交接安排说明");
//设置页面关闭回调方法
//CloseCallBack参数:回调插件,回调标识
ShowParameter.setCloseCallBack(new CloseCallBack(this, KEY_LEAVE_DAYS));
//设置弹出页面打开方式,支持模态,新标签等
ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
//弹出页面对象赋值给父页面
 this.getView().showForm(ShowParameter);

4、从子页面中对父页面操作

1、获取父页面的视图和模型
IFormView parentView = this.getView().getParentView();
IDataModel parentModel = parentView.getModel();
2、操作代码
。。。。。。
例:parentModel.setVisible(false,"需要隐藏的控件");
3、将上述操作的修改完的内容发送给父页面
this.getView().sendFormAction(parentView);

5、弹窗回调事件

 /**
  * 页面关闭回调事件
  * @param closedCallBackEvent
  */
  @Override
public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
    super.closedCallBack(closedCallBackEvent);
    //判断标识是否匹配,并验证返回值不为空,不验证返回值可能会报空指针
    if (StringUtils.equals(closedCallBackEvent.getActionId(), KEY_LEAVE_DAYS) && null != closedCallBackEvent.getReturnData()) {
        //这里返回对象为Object,可强转成相应的其他类型,
        // 单条数据可用String类型传输,返回多条数据可放入map中,也可使用json等方式传输
        HashMap<String, String> returnData = (HashMap<String, String>) closedCallBackEvent.getReturnData();
        this.getModel().setValue(KEY_WORK_ARRANGE, returnData.get(KEY_WORK_ARRANGE));
        this.getModel().setValue(KEY_REMARK, returnData.get(KEY_REMARK));
    }
}

6、获取父页面的标识符

FormShowParameter formShowParameter = this.getView().getFormShowParameter();
String formId = formShowParameter.getParentFormId();

二、单据体操作

1、给单据体的某个单元格赋值

this.getModel().setValue("单元格标识符",设置的内容,行数);

2、获取选中行

int[] selectRows = ((EntryGrid)this.getControl("单据体标识符")).getSelectRows();

3、新增行

int newRowIndex = this.getModel().createNewEntryRow("单据体标识符");

4、设置冻结列

EntryGrid entry = getView().getControl("单据体标识");   
Optional.ofNullable(entry).ifPresent(e -> {                
         e.setColumnProperty("列1", ClientProperties.IsFixed, true);  
         e.setColumnProperty("列2", ClientProperties.IsFixed, true);
});

效果图:
原:
|列1|列2|列3|列4|列5|列6|列7|列8|列9|
|数1|数2|数3|数4|数5|数6|数7|数8|数9|
|数1|数2|数3|数4|数5|数6|数7|数8|数9|
冻结:(列1和列2被冻结,不能动,其他的列可拖动)
{|列1|列2|}    列3|列4|列5|列6|列7|列8|列9|
{|数1|数2|}    数3|数4|数5|数6|数7|数8|数9|
{|数1|数2|}    数3|数4|数5|数6|数7|数8|数9|

三、多选基础资料

1、通过基础资料id查询单据id

QFilter qfilter = new QFilter("单据下的多选基础资料标识符.fbasedataid.id",QCP.equals,基础资料id);
DynamicObjectCollection collection = 
	QueryServiceHelper.query("单据标识符",
	"id,单据下的多选基础资料标识符,单据下的多选基础资料标识符.fbasedataid,单据下的多选基础资料标识符.fbasedataid.id",
	new QFilter[]{qfilter});
long id = collection.getLong("id");

2、


四、表单操作

1、隐藏、锁定控件

IFormView view = this.getView();
view.setVisible(false,"需要隐藏的控件标识符");//false - 隐藏 true - 关闭隐藏
view.setVisible(false,"需要隐藏的控件标识符","需要隐藏的控件标识符2");//false - 隐藏 true - 关闭隐藏
view.setEnable(false,"需要锁定的控件标识符");//false - 关闭锁定
view.setEnable(false,"需要锁定的控件标识符","需要锁定的控件标识符2");//false - 锁定 true - 关闭锁定

2、获取当前登入人 - 信息

long userId = UserServiceHelper.getCurrentUserId();
2、获取当前登入人公司
UserServiceHelper.getUserMainOrgId(userId)
3、获取当前登入人部门
@SuppressWarnings("deprecation")
Map<String, Object> mapOrg = OrgServiceHelper.getCompanyfromOrg(Long.valueOf(UserServiceHelper.getUserMainOrgId(userId)));

3、给标签赋值

Label label = this.getView().getControl("标签的标识符");
label.setText("要设置的值");

4、


5、代码调用插件

OperationResult operationResult = this.getView().invokeOperation("需要调用的操作,比如submit");

6、苍穹判断字符为空

import kd.bos.dataentity.utils.StringUtils;
StringUtils.isNotBlack("需要判断的字符串");

7、返回错误信息和返回信息

this.getView().showErrorNotification("错误信息");
this.getView().showSuccessNotification("成功信息");

8、设置日期范围控件的最大最小值

DateRangeEdit headFieldEdit = this.getView().getControl("日期控件标识"); 
1、最小值
headFieldEdit.setMinDate(new Date());
2、最大值
headFieldEdit.setMaxDate(new Date());

9、F7过滤点击事件

1、实现监听类
implements BeforeF7SelectListener
2、添加监听事件
BasedataEdit basedataEdit = this.getView().getControl("需要过滤的控件");
basedataEdit.addBeforeF7SelectListener(this);
3、判断当前操作是否为当前控件
FormOperate formOperate = (FormOperate) args.getSource();
String operateKey = formOperate.getOperateKey();
4、给过滤添加过滤条件
QFilter qFilter = new QFilter(过滤条件);
//设置列表过滤条件
ListShowParameter showParameter=(ListShowParameter)evt.getFormShowParameter();
showParameter.getListFilterParameter().setFilter(qFilter);

10、设置徽标

1、获取设置徽标的控件 - 这里是列表上的按钮,使用的标识符为toolbarap
Toolbar toolbar = this.getView().getControl("toolbarap");
2、设置徽标格式,具体的到社区搜索徽标
toolbar.setBadgeInfo(USER_LIST_TBMAIN_DIS_BEGIN, getBadgeInfo());
3、徽标设置
    private BadgeInfo getBadgeInfo () {
        BadgeInfo badgeInfo = new BadgeInfo();
        badgeInfo.setCount(1);//设置数量
        return badgeInfo;
    }

11、判断用户是否为车间责任人

public Boolean isIncharge () {
        //获取当前操作人
        long userId = UserServiceHelper.getCurrentUserId();
        List<Long> userIds = new ArrayList<>();
        userIds.add(userId);
        List<Map<String, Object>> list = UserServiceHelper.get(userIds);
        Map<String, Object> userEntity = list.get(0);
        List<Map<String, Object>> posList = (List<Map<String, Object>>) userEntity.get("entryentity");
        boolean isincharge = (boolean) posList.get(0).get("isincharge"); // 是否为负责人
        return isincharge;
    }

12、循环 iterator

Iterator<String> it=map.iterator();
while(it.hasNext()) {
	String key = it.next();
	System.out.println("key="+key+",value="+setting.get(key));
}

13、设置颜色

@Override
    public void afterBindData(EventObject e) {
        super.afterBindData(e);
        HashMap<String, Object> item = new HashMap<>();
        HashMap<String, Object> map = new HashMap<>();
        if (this.getModel().getValue("billstatus") != null) {
            if (this.getModel().getValue("billstatus").equals("A")) {
                map.put(ClientProperties.ForeColor, "yellow");
            } else if (this.getModel().getValue("billstatus").equals("B")) {
                map.put(ClientProperties.ForeColor, "blue");
            } else if (this.getModel().getValue("billstatus").equals("C")) {
                map.put(ClientProperties.ForeColor, "orange");
            } else if (this.getModel().getValue("billstatus").equals("D")) {
                map.put(ClientProperties.ForeColor, "pink");
            } else if (this.getModel().getValue("billstatus").equals("E")) {
                map.put(ClientProperties.ForeColor, "grey");
            } else if (this.getModel().getValue("billstatus").equals("F")) {
                map.put(ClientProperties.ForeColor, "red");
            } else {
                map.put(ClientProperties.ForeColor, "#fffff");
            }
            item.put("item", map);
            this.getView().updateControlMetadata("billstatus", item);
        }
    }

14、BigDecimal值比较

1、判断正负数
int r=amount1.compareTo(BigDecimal.ZERO);
if(r < 0){//为负,amount1 < 0}

15、刷新界面

this.getView().updateView();

16、


17、


18、


19、


20、


五、列表操作

1、刷新列表

((IListView) this.getView()).refresh();

2、


六、工作流

1、当前审批人

1、列表插件中引入工作流插件
    public void beforeCreateListDataProvider(BeforeCreateListDataProviderArgs args) {
        //获取当前工作流审核人
        args.setListDataProvider(new UserApplyWorkFlowPlugin());
    }
2、工作流插件
public class UserApplyWorkFlowPlugin extends ListDataProvider {
	//当前审批人在列表上的字段
    private String USER_APPLY_NEXTOR = DisEnum.KEY_USER_APPLY_NEXTOR.getName();
    /*加载数据列表*/
    @Override
    public DynamicObjectCollection getData(int start, int limit) {
        DynamicObjectCollection rows = super.getData(start, limit);
        if (rows.isEmpty()){return rows;}
        if (!rows.get(0).getDataEntityType().getProperties().containsKey(USER_APPLY_NEXTOR)) {
            //无列,无需处理
            return rows;
        }
        for (DynamicObject row:rows){
            Map<String, List<BizProcessStatus>> map = WorkflowServiceHelper.getBizProcessStatus(new String[]{row.get("id").toString()});
            List<BizProcessStatus> value = map.get(row.get("id").toString());
            if (value != null && value.size() > 0){
                BizProcessStatus biz = value.get(0);
                if (biz.getParticipantName()!= null){
                    row.set(USER_APPLY_NEXTOR,biz.getCurrentNodeName() + "|" + biz.getParticipantName());
                }
            }
        }
        return rows;
    }
}

2、


七、

1、


2、


八、

1、


2、


九、

1、


2、


十、

1、


2、


十一、

1、


2、


十二、

1、


2、


十三、

1、


2、


十四、

1、


2、


十五、

1、


2、


十六、

1、


2、


十七、

1、


十八、

1、


2、


十九、

1、


2、


二十、

1、


2、


二十一、

1、


2、


二十二、

1、


2、


二十三、

1、


2、


二十四、

1、


2、


十四、

1、


2、


十五、

1、


2、


十六、

1、


2、


十七、

1、


十八、

1、


2、


十九、

1、


2、


二十、

1、


2、


二十一、

1、


2、


二十二、

1、


2、


二十三、

1、


2、


二十四、

1、


2、


标签:getView,控件,get,苍穹,代码,笔记,new,标识符,页面
来源: https://blog.csdn.net/shhbshdis/article/details/116460432

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有