UDN-企业互联网技术人气社区

板块导航

浏览  : 1432
回复  : 8

[开发平台] studio6.3做web项目,新增数据时,主表有数据,子表没数据?

[复制链接]
caodongfang的头像 楼主
发表于 2015-9-11 17:04:50 | 显示全部楼层 |阅读模式
studio6.3做web项目,设定元数据主子实体类。
新增数据时,主表有数据,子表没数据?
表单是没有设定流程的。
保存方法需要添加什么逻辑代码吗?
/**
     * 保存
     *
     * @param datasetEvent
     */

    public void onSave(MouseEvent<?> mouseEvent) throws BusinessException {
        Dataset masterDs = this.getMasterDs();
        CmdInvoker.invoke(new UifSaveCmdRV(this.getMasterDsId(), this.getDetailDsIds(), false));
        masterDs.setEnabled(true);
        this.getCurrentAppCtx().closeWinDialog();
        
        CmdInvoker.invoke(new UifPlugoutCmd(this.getCurrentView().getId(), PLUGOUT_ID));
    }


发表于 2015-9-11 19:00:23 | 显示全部楼层
看置顶帖
点评 ( 1 ) 收起 / 展开点评

倾心遁世 2015年09月11日 22:17 详情 回复

有道理!!!

使用道具 举报

回复

发表于 2015-9-11 22:17:06 | 显示全部楼层

有道理!!!
使用道具 举报

回复

caodongfang的头像 楼主
发表于 2015-9-12 09:44:04 | 显示全部楼层
@倾心遁世     哪个置顶帖?没看到呀。
使用道具 举报

回复

发表于 2015-9-14 11:42:10 | 显示全部楼层
你要设置提交规则, 子表的数据才会提交到后台. http://udn.yyuap.com/thread-9797-1-1.html
使用道具 举报

回复

caodongfang的头像 楼主
发表于 2015-9-15 17:33:44 | 显示全部楼层
@devin2014     
老师,我的模式化非流程主子表单据,已修改为:
找到保存按钮的方法,修改如下:(注释后的一行)
                              
  
public void onSave(MouseEvent<?> mouseEvent) throws  BusinessException {
       Dataset masterDs = this.getMasterDs();
       //CmdInvoker.invoke(new UifSaveCmdRV(this.getMasterDsId(),  this.getDetailDsIds(), false));
       CmdInvoker.invoke(new UifSaveCmd(this.getMasterDsId(),  this.getDetailDsIds(), LfwExAggVO.class.getName(), false));
       masterDs.setEnabled(true);
       this.getCurrentAppCtx().closeWinDialog();
       CmdInvoker.invoke(new UifPlugoutCmd(this.getCurrentView().getId(),  PLUGOUT_ID));
    }
保存时,报错:uapcp_error:=================:nc.jdbc.framework.exception.OracleException: ORA-01400: 无法将 NULL 插入 ("UAPWEB"."TB_MESS"."PK_SCHOOL_ID")。
没有获取到主表的主键,为空了。是怎么回事?

您说的“设置提交规则, 子表的数据才会提交到后台”。怎么设置提交规则??
使用道具 举报

回复

发表于 2015-9-16 09:59:04 | 显示全部楼层
1.这个提示是说TB_MESS表的PK_SCHOOL_ID字段不可为空, 你要给它先赋值
2.提交规则设置就是我发给你那个连接贴的2楼, 哪里有不明白的?
使用道具 举报

回复

caodongfang的头像 楼主
发表于 2015-9-16 11:45:32 | 显示全部楼层
@devin2014  老师
tb_school是主表,tb_mess是字表。PK_SCHOOL_ID字段是这两个主子表的关系字段。
保存时,应该自动赋值PK_SCHOOL_ID字段为tb_school的主键呀。
问什么是空呢??
保存方法修改为 :
public void onSave(MouseEvent<?> mouseEvent) throws  BusinessException {
       Dataset masterDs = this.getMasterDs();
       //CmdInvoker.invoke(new UifSaveCmdRV(this.getMasterDsId(),  this.getDetailDsIds(), false));
       CmdInvoker.invoke(new UifSaveCmd(this.getMasterDsId(),  this.getDetailDsIds(), LfwExAggVO.class.getName(), false));
       masterDs.setEnabled(true);
       this.getCurrentAppCtx().closeWinDialog();
       CmdInvoker.invoke(new UifPlugoutCmd(this.getCurrentView().getId(),  PLUGOUT_ID));
    }
添加了提交规则了:
<PluginDescs>
            <PluginDesc id="plugin_exetask" methodName="doTaskExecute">
                    <SubmitRule>
                            <Widget id="main">
                                    <Dataset id="BxHVO" type="ds_all_line">
                                    </Dataset>
                                    <Dataset id="BxdBVO" type="ds_all_line">
                                    </Dataset>
                            </Widget>
                    </SubmitRule>
            </PluginDesc>
    </PluginDescs>
结果还是提示主子表的关系字段PK_SCHOOL_ID为空,保存失败!
使用道具 举报

回复

发表于 2015-9-16 14:01:12 | 显示全部楼层
<SubmitRule>
                            <Widget id="main">
                                    <Dataset id="BxHVO" type="ds_all_line">
                                    </Dataset>
                                    <Dataset id="BxdBVO" type="ds_all_line">
                                    </Dataset>
                            </Widget>
                    </SubmitRule>
添加到你对应的按钮下面, widgetid和datasetid 要对应你自己的代码, 不要照抄
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部