基本數據類型: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報表就生成成功了。