ประเภทขั้นพื้นฐาน
| Boolean |
Booleans เป็น ค่า false and true. |
| Integer |
ตัวเลขจำนวนเต็ม |
| Real |
ตัวเลขจำนวนจริง |
| Date |
เก็บวันที่ (วัน เดือน ปี) |
| TimeOfDay |
เก็บเวลา(ชั่วโมง:นาที:วินาที) |
| String |
ชุดตัวอักษร |
| Enum |
ใช้เก็บข้อมูลตัวเลขโดยใช้ word แทน |
ประเภทมีโครงสร้างซับซ้อน
| Arrays |
array คือ ชุดรายการข้อมูลที่เป็นประเภทเดียวกัน โดยมี เลขindex ใช้ในการอ้างถึงข้อมูล |
| Containers |
container คือ ชุดรายการข้อมูลที่โดยประเภทข้อมูลอาจจะไม่เป็นประเภทเดียวกัน (มีความยืดหยุ่น) |
| Classes |
class จะถูกกำหนดด้วยตัวแปร และ methods จะต้อง instances (objects) โดย class |
| Tables |
ทุก tables ที่ถูกกำหนดใน Axapta สามารถควบคุมได้โดย class |
Conversion of data types
แนวคิด, กฎ และ ขบวนการในการแปลง ระหว่างประเภทของข้อมูล แบบอัตโนมัติ
Automatic conversion
ค่า เริ่มต้น (Default values) ของตัวแปร ใน X++ โชว์ได้ดังนี้:
| Data type |
ค่า เริ่มต้น |
Internal representation |
| Boolean |
false |
Short Number |
| Integer |
0 |
Long Number |
| Real |
0.0 |
BCD Number |
| Date |
Null |
Date |
| String |
empty |
List of characters |
| Enums |
0 (first entry) |
Short number |
โดยปกติจะเปลี่ยนไปเป็นรูปแบบที่รองรับรูปแบบข้อมูลได้มากขึ้น จาก short เป็น long จาก long เป็น BCD และ เรามาดูกฎการแปลงข้อมูลแบบพื้นฐาน จาก Operator ต่าง ๆ
| Operator |
รายเอียด |
| + - * |
ถ้าหนึ่งในนั้นในที่ operands คือ real ผลที่ได้จะถูกแปลงเป็น ข้อมูลประเภท real
ถ้าระหว่าง integers, boolean, หรือ enum ผลที่ได้คือ integer, boolean, หรือ enum ตามลำดับ
โดย boolean ยกระดับเป็น enum และ enum ยกระดับเป็น integer |
| / |
สัญลักษณ์ “/” คือ หาร, จะทำการแลงข้อมูลเป็น real และผลลัพธ์ ที่ได้ก็เป็น real |
| MOD DIV << >> |
สัญลักษณ์ MOD และ DIV,>>,<< ใช้กับ ข้อมูลประเภท Integer และ จะเปลี่ยนเป็น integer ก่อน ผลลัพธ์ ที่ได้ก็เป็น integer. |
ตัวอย่างการใช้งาน
| No |
รูปแบบ |
ประเภทข้อมูลด้านซ้าย |
แปลงก่อนOperands |
With numbers |
Result |
| 1 |
i = b + b |
integer |
boolean, boolean |
i = false + false |
0 |
| 2 |
i = r + b |
integer |
real, real |
i = 33.3 + true |
34 |
| 3 |
b = i + r |
boolean |
real, real |
b = 10 + 33.3 |
undefined |
| 4 |
b = i + r |
boolean |
real, real |
b = 0 + 1 |
true |
| 5 |
r = i + b |
real |
integer, integer |
r = 100 + false |
100.0 |
| 6 |
r = i + b |
real |
integer, integer |
r = 100 + true |
101.0 |
| 7 |
i = r MOD b |
integer |
integer, integer |
i = 33.3 MOD true |
0 |
| 8 |
r = i DIV i |
real |
no conversion |
r = 100 DIV 5 |
20 |
| 9 |
d = d + i |
date |
date, date |
d = 1\1\1998 + 30 |
31\1\1998 |
| 10 |
i = d + i |
integer |
date, date |
i = 1\1\1998 + 1 |
compile error |
| 11 |
d = d + d |
date |
date, date |
d = 1\1\1998+1\1\1998 |
compile error |
| 12 |
s = s + s |
string |
string, string |
s = “a” + “b” |
“ab” |
| 13 |
i = s + i |
integer |
|
|
|
จากตัวอย่างที่ 3,ถ้าผลที่ได้คือ 0 ,1 คือ false และ true (1) boolean ดังนั้นไม่สามารถระบุบได้
รายการที่ ไม่แปลงอัตโนมัติ
dates และ strings ไม่ถูกแปลงอัตโนมัติ แต่ integers สามารถ แปลงเป็น dates คุณสามารถใช้ แปลงโดย functions built-in ของ Axapta ได้
Boolean
Boolean คือข้อมูลประเภท โลจิก มี 2 สถานะคือ false หรือ true. ตัวแปร Boolean สามารถ ใช้เป็น flags ในโปรแกรม false คือ 0 true คือ 1 โดยแท้จริงแล้ว Boolean ก็คือ integerดังนั้นคุณสามารถ ใช้ integer เป็น Boolean. ถ้าค่าไม่เท่ากับ 0 คือ true โดยคำสงวนคือ true และ false
การประกาศตัวแปล สำหรับ Boolean
ทุกตัวแปลจะต้องมีการประกาศก่อนนำไปใช้งาน รูปแบบการประกาศ
| boolean declaration |
= |
boolean ชื่อตัวแปล { , ตัวแปร } ; |
| ชื่อตัวแปร |
= |
identifier [ option ] |
| Option |
= |
Arrayoptions | initialization |
ตัวอย่างการประกาศ
boolean b; // ประกาศ boolean แบบง่าย.
boolean b1,b2; // ประกาศ boolean แบบหลายตัว
boolean b3 = true; // ประกาศ boolean แบบระบุบค่า
boolean b4[]; // การประกาศ boolean แบบ array |
การใช้วิธีใช้
ปกติเราใช้ booleans ในการตัดสินใจหรือ ลอจิค ในการตัดสินใจ
ตัวอย่างการใช้งาน
void main()
{
Boolean exprValue; //ประกาศตัวแปร
exprValue = (7*6 == 42); //กำหนดค่า
if (exprValue) //ถ้าตัวแปร เป็นจริง จะทำการ Print “OK”
print “OK”; //“OK” is printed in a window
} |
7*6 เท่ากับ 42 ดังนั้นค่าเป็น จะทำการ พิมพ์ “OK” ที่หน้าจอ.
ข้อมูลทั่วไป
| Keyword |
Boolean |
| ขนาดของข้อมูล |
Byte |
| ขอบเขตข้อมูล |
false (0) and true (1) |
| ค่าเริ่มต้น |
False |
| Implicit conversions |
แปลงอัตโนมัติ เป็น integer, date หรือreal |
| Explicit conversions |
- |
Integer
Integers คือ จำนวนเต