记录金蝶苍穹开发代码实例

UI操作与数据管理

隐藏元素  setVisible(true=显示 false=隐藏,标识)

this.getView().setVisible(false, new String[]{"标识"});

查询数据

QFilter filter = new QFilter("parent", QCP.equals, parentid);
DynamicObjectCollection parentOrgColl = QueryServiceHelper.query("标识","字段", new QFilter[]{filter});

创建一个新的实例

ORM orm = ORM.create();
// 创建一个新的实例
DynamicObject dynamicObject = orm.newDynamicObject("标识");
// 保存单据
SaveServiceHelper.save(new DynamicObject[]{dynamicObject });
// 更新单据
SaveServiceHelper.update();

删除实例

QFilter qf = new QFilter("id", QCP.equals, item.get("id")); 
DeleteServiceHelper.delete("shkd_ylxjllsum", new QFilter[]{qf});

监听打开基础资料(基础资料数据的过滤)

public void registerListener(EventObject e) {
        super.registerListener(e);
        BasedataEdit basedataEdit = (BasedataEdit)this.getControl("shkd_orgunit");
        if (basedataEdit != null) {
            basedataEdit.addBeforeF7SelectListener(new BeforeF7SelectListener() {
                // 打开组织时设置过滤,根据体系过滤只显示压力模型下的组织
                @Override
                public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
                    BasedataEdit info = (BasedataEdit) beforeF7SelectEvent.getSource();
                    ListShowParameter showParameter = (ListShowParameter)beforeF7SelectEvent.getFormShowParameter();
                    List<QFilter> qFilterList = ((BasedataEdit) getControl(info.getKey())).getQFilters();
                    if (qFilterList == null) {
                        qFilterList = new ArrayList();
                    }
                    qFilterList.add(new QFilter("model.shownumber", QCP.equals, ModelNumber));
                    showParameter.setListFilterParameter(new ListFilterParameter(qFilterList, null));
                }
            });
        }
    }

左树右表的左边组织树生成

private void initOrgUnitTree() {
        QFilter filter = new QFilter("model.shownumber", QCP.equals, "CJTX002");
        String select = "id,number,name,level,parent,model,parent";
        // 查询组织
        Map<Object, DynamicObject> typeMap = BusinessDataServiceHelper.loadFromCache("bcm_entitymembertree", select, new QFilter[]{filter});

        final String rootId = "0"; // 根节点id
        TreeView treeView = this.getControl("shkd_treeviewap");
        treeView.setCustomeStyles("fs:55");

        TreeNode rootNode = new TreeNode(null, rootId, "全部分类", true);
        rootNode.setIsOpened(true);
        treeView.setRootVisible(false);
        if ((typeMap == null) || (typeMap.isEmpty())) return;
        for (DynamicObject obj : typeMap.values()) {
            int level = obj.getInt("level"); // 当前节点
            int prentId = obj.getInt("level")-1; // 上级节点
            String orgId = obj.getString("id"); // 节点id
            String parentId = obj.getString("parent.id"); // 上级节点id
            String orgName = obj.getString("name"); // 节点名称
            TreeNode parentTree = rootNode.getTreeNode(parentId, prentId);
            if (level == 2) {
                rootNode.setText(orgName);
                rootNode.setId(orgId);
            }
            if (parentTree == null && level == 3) {
                rootNode.addChild(new TreeNode(String.valueOf(prentId), orgId, orgName, false));
            } else {
                if (parentTree != null && parentTree.getId().equals(parentId)) {
                    parentTree.addChild(new TreeNode(String.valueOf(prentId), orgId, orgName, false));
                }
            }
        }
        treeView.addNode(rootNode);
    }

2、打开单据 页面:BillShowParameter

3、打开基础资料 页面:BaseShowParameter

4、打开报表 页面:ReportShowParameter

5、打开标准列表 页面:ListShowParameter

 

打开动态表单 页面:FormShowParameter

FormShowParameter showParameter = new FormShowParameter();

showParameter.setFormId("表单标识");

showParameter.getOpenStyle().setShowType(ShowType.Modal);//打开方式

this.getView().showForm(showParameter);

打开标准列表 页面:ListShowParameter

ListShowParameter showParameter = new ListShowParameter();

showParameter.setBillFormId("单据标识");//注意这里是billFormId,指的是列表对应的单据标识

showParameter.setFormId("bos_list");//这里是列表的模板标识,可以在设计器列表页寻找

showParameter.getOpenStyle().setShowType(ShowType.Modal);

this.getView().showForm(showParameter);

### 金蝶云苍穹插件开发路径与方法 #### 插件开发概述 金蝶云苍穹平台提供了多种方式来实现与其他系统的集成以及功能扩展,其中一种重要的途径就是通过插件开发。这种方式不仅能够满足企业的个性化需求,还能提高应用的灵活性和可维护性。 #### 配置或开发插件以实现免登录访问 对于希望简化用户体验的企业来说,可以通过配置或开发特定的插件让第三方应用程序如云之家、企业微信等实现免登录访问苍穹的功能[^1]。这通常涉及到OAuth2.0协议的应用或者是基于API接口的安全调用机制的设计。 #### 使用URL直接登录访问 另一种常见的接入方式是利用预定义好的URL结构来进行直接登录操作。例如,通过`http://{domain}/ierp/accessTokenLogin.do?access_token=XXX&redirect=http://{domain}/ierp`这样的链接格式可以让外部系统携带有效的令牌参数完成自动化的身份验证过程并重定向至目标页面。 #### 统一认证中心集成 为了更好地管理不同来源用户的权限控制问题,苍穹集成了金蝶自家提供的云平台统一认证中心服务。当用户尝试打开苍穹时会被导向该认证门户,在那里完成必要的注册/登陆流程后再返回原请求地址继续后续的操作。 #### 新建环境的选择 在准备进行二次开发之前,开发者可以根据实际项目的需求挑选适合自己的工作区版本——无论是商业版还是免费试用性质的社区版均可作为实验对象;值得注意的是虽然本地环境中允许多个实例共存但是每次仅能激活其中一个用于测试目的[^2]。 ```bash # 安装指定版本的苍穹环境 (假设命令行工具已就绪) kdcloud install --version community ``` #### 开始编写自定义插件 一旦选定好合适的开发环境之后就可以着手于具体的编码环节了: - **熟悉官方文档**:深入研究由厂商发布的各类指南和技术白皮书; - **选择编程语言**:依据个人偏好或是团队协作习惯决定采用Java、Python或者其他受支持的语言; - **构建Maven工程**:如果选用Java,则建议创建标准的Maven项目以便更方便地管理和依赖库文件; - **遵循RESTful API设计原则**:确保新加入的服务端点易于理解和交互良好; - **实施单元测试覆盖**:保证每一个新增特性都经过充分检验从而减少潜在错误的发生几率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值