Morphx基本数据类型2 + 报表开发

  基本数据类型: Int str boolean Real Date Enum
原始数据类型
描述
例子
数据类型
String
字符串:X + +调用支持几种类型的字符串:左对齐,右对齐,固定长度或不固定长度。
str test;
 
str 10 test;
 
str 10 right test;
  
str
Intrger
一个整数,也命名为一个自然的数字,是一个数字。
 int i;
int
Boolean
布尔型只能包含true和false。
boolean falg [yes/no];
boolean
Date
时期类型
21/12/2008
date
Enum
枚举类型
[yes/no]
Enum
Real
浮点数
Real r ; r=3.14;
real
 
混合数据类型
数据类型
描述
例子
Array

一个数组是一个项目清单具有相同的数据类型和相同的
名称;只有指数有所不同。

str 20 txt [];

txt[1] = ‘John’;

 txt[2] = ‘Peter’;

txt[3] = ‘Paul’;

 
Container
一个容器是一个动态的项目清单包含原始数据类型和一些复合数据类型。
Container con;
;
Con = [‘abc’,123,…];
Classes
类:是一个类型定义,说明这两个变量和方法的实例(对象)的class。
class ANewClass
 {

   int abc;

   void aNewMethod()

   {

   int xyz;

   }

 }
Tables
表格的定义在数据库中(在数据字典),可处理类定义
EDTtableJob etable;
注: container容器中还有conPeek() 、conDel()、conNull() 、conFind() 、conIns() 、conPoke() 、conLen()方法操作容器里的数据。
 
 
                      报表的设计
其实在进行开发中最重要的就是报表,因为ax4.0后的产品开始进入国内市场,用他成熟的功能疯狂的冲击国内金蝶、用友等ERP。但是用于AX4.0以前版本都是在欧洲占领份额,报表都不是表格形式。所有对国内行业基本是一无是处。
在之前请大家花点时间看看Axapta x++及Morph开发指南,也希望更多人翻译出更优秀的文章。下面贴一个简单的报表设计(salestable)。
相信salestable大家都比较熟悉。我们就对salesId、salesName、salesStuts、salesTyope几个fields进行设计。不会使用报表向导的朋友参考Axapta x++及Morph开发指南。
下面我们进行报表填充: 首先我们将salesId、salesName、salesStuts、salesTyope的LineBelow、lineAbove、lineleft、lineright的属性值改为solid。这样就会形成一个一个的独立单元格,我们再将leftmargin  的值改我0.。单元格就会连在一起形成一张比较完整的表。但是日常的报表可能只需要每页显示20条或者其他的记录时这里我们就需要用代码控制了。
 首先在方法ReportRun中声明变量

public class ReportRun extends ObjectRun

{
   int RecordCount , lineNo;
}
然后在该报表的header中重载executeSection方法,

public void executeSection()

{
 queryRun _query; 
;
    super();
    _query = new queryRun(element.query());
 
    while(_query.next())
    {
       recordcount++; //记录总数 这里用于填充不足分页行的计算
    }
}
再在body里重载executeSection方法

public void executeSection()

{
      super();
    lineNo++;
    if(lineNo ==20) //以20条记录分页
    {
      element.newPage(); //创建新的一页 并重新计数
      lineNo=0;
    }
}
下面我们新建一个ProgerammablesSetion在Methods中创建salesId、salesName、salesStuts、salesTyope四个方法:Display SalesName SalesName()
{
    return "";
}
所有都返回为空,并将salesId、salesName、salesStuts、salesTyope四个方法都放在ProgerammablesSetion下将其LineBelow、lineAbove、lineleft、lineright的属性值改为solid。在header、body一层建立footer重载executeSection方法
public void executeSection()
{
    int i;
    super();
 
    for(i=1;i<=10 - RecordCount mod 10;i++)
    {
       element.execute(1);
    }
}
这样一个简单的salestables报表就生成成功了。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值