zoukankan      html  css  js  c++  java
  • 实现主附表结构的数据存储

        在071130日,我发了一篇《关于一个对象集合的求解》的文章。可能由于我没有表述清楚,至今没有人给我回复。前一段时间,我用C#实现了这一功能,但仍有一些不足之处,给大家拿出来做个靶子。欢迎大家批评指正!

    我的需求是,有主附表的结构,主表里面包含单据日期、单据编号等信息,附表里包含与此主表相关的行项目,包含物料编号、数量等信息。我想这应该建立继承的类来实现,但我还不会用。我利用泛型,暂时是解决了这个问题。

    我写了两个接口:IDocumentsIDocuments_Lines。也写了与之对应的DocumentsDocuments_Lines两个类。这两个类分别继承了前两个接口。IDocumentsDocuments中包含DocNumberDocDateLines三个属性和Add()Remove() 两个方法。IDocuments_LinesDocuments_Lines中包含ItemCodeQuantity两个属性和Add()GetLists()方法。

    Documents类中的Lines属性的类型是IDocuments_Lines。为了访问Documents_Lines的集合,我不得在Documents_Lines中建立了一个公用的方法GetLists()。该方法返回一个List<>集合,然后在Documents类中的Add()方法,遍历这个集合,再把子表数据连同主表一起添加进去。

    而在SBOSDK中,首先是在Documents_Lines里面,没有暴露类似于GetLists()之类的方法和属性。而且在Documents_Lines里会包含一个Count属性来记录当前的总条数,并能通过SetCurrentLine()方法来指定当前行。而且,在调用时也有区别:在SDK中调用如下:

     1Documents myd=myCompany.GetObject(Documents);
     2
     3Myd.DocNumber=1”;
     4
     5Myd.DocDate=CDate(“2008-3-7”);
     6
     7 
     8
     9//添加行1
    10
    11Myd.Lines.ItemCode=”a”;
    12
    13Myd.Lines.Quantity=1;
    14
    15 
    16
    17//添加行2
    18
    19Myd.Lines.Add();
    20
    21Myd.Lines.ItemCode=”b”;
    22
    23Myd.Lines.Quantity=2;
    24
    25 
    26
    27//添加主表
    28
    29Myd.Add()
    30
    31 
    32
    33//完成。
    34

     

    而对于我所做的类,调用方法如下:

     1Documents myd=new Documents();
     2
     3Myd.DocNumber=1”;
     4
     5Myd.DocDate=CDate(“2008-3-7”);
     6
     7 
     8
     9//添加行1
    10
    11Myd.Lines.ItemCode=”a”;
    12
    13Myd.Lines.Quantity=1;
    14
    15Myd.Lines.Add();
    16
    17 
    18
    19//添加行2
    20
    21//添加行2
    22
    23Myd.Lines.Add();
    24
    25Myd.Lines.ItemCode=”b”;
    26
    27Myd.Lines.Quantity=2;
    28
    29 
    30
    31//添加主表
    32
    33Myd.Add()
    34

     

    //完成。

    这两个调用的方法的区别在于,在添加行时,SDK中每添加一行之前,先执行一次Lines.Add()方法(第一行不用),且最后一行之后,不再需要执行Lines.Add()方法;而我所做的添加行时,在每添加一行之后,必须执行一次Lines.Add()方法,才能把数据添入行集合。不知道为什么会有这样的差别呢?请高手指点,谢谢!

  • 相关阅读:
    1:4 UI标签和通用标签
    1:3访问 servlet API 的两种方式(request,session等内置对象)
    1 :2 Strust2—Demo
    1:1 Struts2概述
    mysql索引原理与慢查询优化1
    mysql流程控制
    mysql函数
    mysql存储过程
    mysql事务
    mysql触发器
  • 原文地址:https://www.cnblogs.com/saptechnique/p/1094762.html
Copyright © 2011-2022 走看看