在Axapta中有一个基础类型Container,在某些场合下确实比较好用,axapta现有系统中用的也比较多,比如Runbase的pack()和unpack()方法就是用Container结合宏来实现的.
container可以看作是无类型的动态增长的数组,功能基本上等效于C#中的ArrayList.只不过container不能存放对象(Table对象还是可以存的),另外container可以作为数据库字段类型,在数据库中转化成img类型,可以看出container把数据序列化了.
另外由于Container存放的元素可以是Container,所以可以实现类似于二维数组的功能.今天遇到一个需求,做一张客户(供应商)对帐单,由于国内的财务需要按月汇总,而用户输入的查询时间可能是跨月的,并且不一定是从一号开始到月底结束的,比如用户输入如下时间段做查询 
2006-03-13~~~2006-05-27
这样按照国内的财务需求,需要分解成如下的时间段:
1.2006-03-13~~~2006-03-31
2.2006-04-01~~~2006-04-40
3.2006-05-01~~~2006-05-27
分别统计上述三段时间的交易信息并分别汇总,这样就要求把任意一段时间,按月分解,当然这个有很多种做法,不过感觉用container实现这个小功能还是挺方便的,代码如下:
Container的使用static Container GetDatePeriod(TransDate fromDate,TransDate toDate)
}

调用的代码如下:
Container的使用static void Main(Args arg)
}
当然由于对帐表要统计年结余额,所以用户输入的查询日期一般不允许跨年度,所以这个程序也就没有处理跨年度的情况了.

相关文章:

  • 2022-01-21
  • 2021-12-14
  • 2021-07-21
  • 2021-10-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-17
  • 2022-02-16
  • 2022-12-23
相关资源
相似解决方案