slavetable有两种情况,

从表有三个要素

1、自己主键字段的idfield

2、对应主表的主键字段masterIdField

3、对应主表主键的值

模式一、MasetrEdit模式  也就是主表记录编辑模式

此时,主表记录的id值是确定的

slavetable的动作:

m_initial(bean or modulename,linkfield)

m_setMasterEditMode(masterfieldvalue)

listview m_selectFromMasterId() 从从表中查询符合主表id主的,然后listview显示

editview,此时masteridvalue是确定的,锁定的,不需要添加

addview,此时masteridvalue是确定的,锁定的,自动添加

初始化的时候得到 自己的idfield,master对应的idfield

模式二、MasterAdd模式,也就是主表记录新增模式

slavetable的动作:listview 为空,不需要显示,因为是新增

addview,里面masterIdValue是空的,锁定的,不需要添加,

从listview中得到的,editview ,masterIdValue是空的,锁定的,不需要添加

问题1:slavetable会在没有主表id值得情况下,被使用吗?

答:会,主要是在主从表添加的时候,此时还不知道主表的id值

但是在MasterSlave的editview情况下,是有masterid值的

答案:slavetable是根据主表而出现的一种形式,所以,主表的addview,和editview对于slavetable是不同的。

如果主表处于addview方式时,slavetable中,对应主表的id值没有,所以在新增和显示时,都没有显示

如果主表处于editview方式时,slavetable的对应的主表id已经有值,所以需要显示并自动增加。

一、listview

一、标准的主从使用

此时,因为master还没有保存,可能还没有得到master的id。\

所以,从表在增加时,是不知道masterid的,

那么此时的idfield需要显示吗?实际上,在addview时,不需要显示,在editview时需要显示。

如果此时idfield为 int字段,则显示会有错乱,因为会全部显示为0,而其实在新增时,会另外赋予真正的值。

所以,在tag=new时,id的值,应该不显示????这个仅限于id为自增长或者guid的情况,因为会自动增加。

这就意味着,slavetable有一个限制,只适应于id为在新增的时候自动增加id值的情况。

如果id为其他可识别的标识,只能用脚本改变,??????

二、单独的从表使用方式

此时,应该知道masterid的值

关于slavetable的更多相关文章

  1. Oracle 外键级联更新

    Oracle数据库中,外键约束只允许级联删除,不允许级联更新,因此,如果想要实现主表数据更新后,子表外键自动更新,只能取消外键关系,通过前端程序来维护实现完整引用,一个代替的解决方案是使用延迟约束和触 ...

随机推荐

  1. apidoc 生成Restful web Api文档

    在服务器项目开发过程中,总会牵扯到接口文档的设计与编写,之前使用的都是office写一个文档,不够直观.下面介绍一种工具生成Apidoc.,该工具是Nodejs的模块,请务必在使用前安装好nodejs ...

  2. Apache 服务器 基础知识小结

    Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软 ...

  3. WebService与RESTful WebService

    Manual Instruction Document Web Service JAX-WS & JAX-RS Author: Liu Xiang Date: 2018/01/12 1. Su ...

  4. struts2中的constant介绍之struts.objectFactory与spring的整合

    struts2提供给我们更为灵活的设计,他的很多东西都是可以手动配置的,下面介绍下他的一些 常用的constant作用和配置 struts.objectFactory这个属性用于说明Struts2的 ...

  5. JAVA 原子操作类

    上文中,guava代码中就用到了,在这里再专门捋一下 部分内容源自: https://www.jianshu.com/p/712681f5aecd https://www.yiibai.com/jav ...

  6. C#利用CDO.Message发送邮件

    如何引用CDO.Message? cod.message的引用位置: C:\Windows\System32\cdosys.dll CDO.Message objMail = new CDO.Mess ...

  7. ubuntu 使用命令行登录oracle

    1.检查环境变量设置 echo $ORACLE_HOME 2.配置oracle数据库信息,将oracle地址端口等信息放在$ORACLE_HOME/network/admin目录下的tnsnames. ...

  8. Eclipce 配置javaEE

    Eclipse 安装JavaEE插件   Oxygen版Eclipse 导入项目会自动安装你项目需要的一些插件,但是有时候会安装失败,需要手动安装: 这里以Dynamic Web Project项目为 ...

  9. Linux磁盘空间不足处理方法

    维护Linux服务器正常使用需要经常删除Linux系统运行产生的系统日志和业务环境产生的debug日志文件.安装包等.本文主要描述如何通过脚本实现清理业务环境产生的 debug日志文件和上传或备份的打 ...

  10. C# WINFORM 打包数据库

    实现效果:安装项目时直接附加数据库. 1.首先在需要部署的项目的解决方案资源管理器中新建一个安装项目   2.在安装项目的文件视图中,右键[应用程序文件夹]->[添加]->[项目输出]   ...