热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

子表行添加和子表行自动填充

提交后Activity4新

//=========================================================================提交后Activity4新增目标表单物资信息================================================================================================================
if(childPaCategory != null && childPaCategory.Length > 0)
{
foreach(H3.DataModel.BizObject child in childPaCategory)
{
//供应商名称主表赋值给子表
if((child["nameMaterial"] + string.Empty != null || child["nameMaterial"] + string.Empty != "") && (child["supplier"] + string.Empty == null || child["supplier"] + string.Empty == "")
&& (this.Request.BizObject["joinPersonnel"] + string.Empty != null || this.Request.BizObject["joinPersonnel"] + string.Empty != ""))
{
child[
"supplier"] = this.Request.BizObject["joinPersonnel"] + string.Empty;
}
}
}
// 新增物资的方法,在审批供应商时加载出所有数据
if(actiOnName== "Submit" && this.Request.ActivityCode == "Activity4")
{
if(childPaCategory != null && childPaCategory.Length > 0)
{
// 加一个list集合,将数据添加至集合中
List list = new List();
//判断子表数据是否为空,不为空则保存
if(childBoList != null)
{
//先将原来的子表数据存起来
list.AddRange(childBoList);
}
foreach(H3.DataModel.BizObject child in childPaCategory)
{
//new物资目录一个对象
H3.DataModel.BizObject targetBoCategory3 = new H3.DataModel.BizObject(this.Engine, schemaCategory3, this.Request.UserContext.UserId);
//物资名称
targetBoCategory3["nameMaterial"] = child["nameMaterial"] + string.Empty;
//规格型号
targetBoCategory3["specification"] = child["specification"] + string.Empty;
//物资出厂码
targetBoCategory3["MaterialFactoryCode"] = child["F1"] + string.Empty;
//物资类别
targetBoCategory3["categoryName1"] = child["categoryName1"] + string.Empty;
//物资类别负责人
targetBoCategory3["principal"] = child["principal"] + string.Empty;
//供应商名称
targetBoCategory3["joinPersonnel"] = child["supplier"] + string.Empty;
//计量单位
targetBoCategory3["measurement"] = child["measuringUnit"] + string.Empty;
//设置业务对象数据为生效状态
targetBoCategory3.Status = H3.DataModel.BizObjectStatus.Effective;
//目标表单创建
targetBoCategory3.Create();
//=========================================================================提交后Activity4更新本表单物资信息================================================================================================================
string sqlchildBo = "select * from i_D150516category3 where ObjectId='" + targetBoCategory3.ObjectId + "'";
System.Data.DataTable dt
= this.Request.Engine.Query.QueryTable(sqlchildBo, null);
foreach(System.Data.DataRow row in dt.Rows)
{
//new一个采购清单业务对象
H3.DataModel.BizObject childBoList1 = new H3.DataModel.BizObject(this.Request.Engine, schemation.GetChildSchema("D150516shoppingList"), H3.Organization.User.SystemUserId);
{
//数据添加采购清单
//规格型号
childBoList1["specifications"] = row["ObjectId"];
//物资名称
childBoList1["materialName"] = row["nameMaterial"];
//物资出厂码
childBoList1["MaterialFactoryCode"] = row["MaterialFactoryCode"];
//物资编码
childBoList1["MaterialFactoryCodes"] = row["SeqNo"];
//物资类别
childBoList1["categoryName1"] = row["categoryName1"];
//计量单位
childBoList1["measuringUnit"] = row["measurement"];
list.Add(childBoList1);
}
//将新的子表数据集合赋值到子表控件
targetBoPA["D150516shoppingList"] = list.ToArray();
//更新主表数据
targetBoPA.Update();
}
}
}
}

 写在base.OnSubmit(actionName, postValue, response);后面以免照成新增后,目标子表无法被自动填充

objectid根据目标新建表单获得对应的数据id

一条数据填充一条子表行,因此要放在同一个循环中

要和清除子表行合作使用,否则会有一个空白行

 



推荐阅读
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • php缓存ri,浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法。本文是小编日常整理有关thinkp ... [详细]
  • 简述在某个项目中需要分析PHP代码,分离出对应的函数调用(以及源代码对应的位置)。虽然这使用正则也可以实现,但无论从效率还是代码复杂度方面考虑ÿ ... [详细]
author-avatar
宛雨万青惠雯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有