- <?php
- $Text= " Rajabhat Institute Rambhaibarni ";
- echo "ข้อความ " Rajabhat Institute Rambhaibarni "<br><hr>";
- echo 'Function Ltrim() :"".Ltrim($Text).""<br>";
- echo "Function Chop() :"".Chop($Text).""<br>";
- echo "Function Trim() :"".Trim($Text).""<br>";
- ?>
8/26/2011
Code แบบ ย่อ
a = "1"
b = "2"
a += b
a = "12" ความหมายคือ a = a + b
b = "2"
a -= b ความหมายคือ a = a-b
a *=b ความหมายคือ a = a*b
---------------------------------------------------
i++; คือ ค่า i +1 ไปเรื่อย ๆ แต่ i ต้องมีการประกาศตัวแปร ไว้ก่อน เช่น i = 1 ; เป็นต้น
++i; คือ + ค่า i ไปทีล่ะ 1 ไม่ต้องมีการประกาศตัวแปร ใช้ได้เลย เช่นใน PHP จะใช้เป็น ++$i; เป็นต้น
---------------------------------------------------
ใน Axapta ใช้บ่อย
a += b ? x1 : x2 ความหมายคือ ? ค่าที่เรายังไม่รู้ถ้ามีค่า ให้เอา X1 แต่ถ้าไม่มี ให้เอาค่าจาก X2
Axapta X++: ยอด Physical Inventory ติดลบ
เพราะว่า มีการ Set ใน Item ติดลบไว้ปกติจะ Set เป็น DEF แต่ถ้า Set เป็น NEG คือติดลบได้
เข้าไปที่ Item ---> General ที่ Inventory model group ตามรูป
set : NEG Tempory Use for Kit Set (ใช้ชั่วคราวใน T&L Phase) ให้ติดลบได้
DEF Defualt Inventory Model Group ห้ามติดลบ
เข้าไปที่ Item ---> General ที่ Inventory model group ตามรูป
set : NEG Tempory Use for Kit Set (ใช้ชั่วคราวใน T&L Phase) ให้ติดลบได้
DEF Defualt Inventory Model Group ห้ามติดลบ
8/24/2011
PHP : หาว่าปีนั้นมีกี่วัน 365 หรือ 366
Format :
$ตัวแปร = date("L");
return = 0 or 1
1=ปีที่มี 366 วัน , 0=ปีที่มี 365 วัน
นำค่าไปใช้
if($ตัวแปร = 0){
$ตัวแปร = 365;
} else {
$ตัวแปร = 366;
}
Exemple :
$DateInYear = date("L");
if($DateInYear = 0){
$DateInYear = 365;
} else {
$DateInYear = 366;
}
8/20/2011
VB.Net : สลับสีใน ListView
Format :
Use code in Loop while :
ชื่อListView.View = View.Details
ชื่อListView.GridLines = True
For i As Integer = 0 To ชื่อListView.Items.Count - 1 Step 1 'Code การสลับสีใน listview
If i Mod 2 = 0 Then
ชื่อListView.Items(i).BackColor = Color.White
Else
ชื่อListView.Items(i).BackColor = Color.Linen
End If
Next i
Exemple :
MyLV.View = View.Details
MyLV.GridLines = True
For i As Integer = 0 To MyLV.Items.Count - 1 Step 1 'Code การสลับสีใน listview
If i Mod 2 = 0 Then
MyLV.Items(i).BackColor = Color.White
Else
MyLV.Items(i).BackColor = Color.Linen
End If
Next i
Use code in Loop while :
ชื่อListView.View = View.Details
ชื่อListView.GridLines = True
For i As Integer = 0 To ชื่อListView.Items.Count - 1 Step 1 'Code การสลับสีใน listview
If i Mod 2 = 0 Then
ชื่อListView.Items(i).BackColor = Color.White
Else
ชื่อListView.Items(i).BackColor = Color.Linen
End If
Next i
Exemple :
MyLV.View = View.Details
MyLV.GridLines = True
For i As Integer = 0 To MyLV.Items.Count - 1 Step 1 'Code การสลับสีใน listview
If i Mod 2 = 0 Then
MyLV.Items(i).BackColor = Color.White
Else
MyLV.Items(i).BackColor = Color.Linen
End If
Next i
VB.Net : Switch case in vb.net
format :
Select Case ..... : ตัวแปรที่จะเช็ค
Case .... : เป็นอะไรเช่น 0 1 2 3....
..... : ให้ทำงานนี้
Case 1
..... : ให้ทำงานนี้
Case 2
..... : ให้ทำงานนี้
Case 3
..... : ให้ทำงานนี้
End Select
Exemple :
Select Case DataTab.SelectedIndex
Case 0
Call RefreshGrid(DataGridView1)
Case 1
Call ReloadGrid(SQL)
Case 2
Call ReloadGrid1(SQL)
Case 3
Call ReloadGridSales(SQL)
End Select
Select Case ..... : ตัวแปรที่จะเช็ค
Case .... : เป็นอะไรเช่น 0 1 2 3....
..... : ให้ทำงานนี้
Case 1
..... : ให้ทำงานนี้
Case 2
..... : ให้ทำงานนี้
Case 3
..... : ให้ทำงานนี้
End Select
Exemple :
Select Case DataTab.SelectedIndex
Case 0
Call RefreshGrid(DataGridView1)
Case 1
Call ReloadGrid(SQL)
Case 2
Call ReloadGrid1(SQL)
Case 3
Call ReloadGridSales(SQL)
End Select
8/19/2011
PHP Function of String
ฟังก์ชั่นทางด้านข้อความ
ฟังก์ชั่น ความหมาย
Chop() ตัดช่องว่างท้ายข้อความออกไป
Chr() แปลงค่า ASCII เป็นตัวอักษร
echo() แสดงผลข้อความ
explode() แยกข้อความโดยใช้เครื่องหมายแรก
ereg_replace() แทนที่ข้อความที่พบด้วยคำที่ต้องการ
eregi_replace() แทนที่ข้อความที่พบด้วยคำที่ต้องการ โดยไม่สนใจตัวพิมพ์เล็กพิมพ์ใหญ่
flush() เคลียร์บัฟเฟอร์
htmlspecialchars() แสดงแท็ก HTML ในเว็บเพจ
implode() รวมอาร์เรย์เป็นข้อความ
join() รวมอาร์เรย์เป็นข้อความ
Itrim() ตัดข้อความด้านหน้าข้อความออกไป
Ord() แปลงตัวอักษรเป็นรหัส ASCII
parse_str() รับค่าข้อความไว้ในตัวแปร
print() แสดงผลข้อความ
printf() แสดงผลข้อความที่มีรูปแบบ
setlocale() ปรับค่าข้อมูลท้องถิ่น
similar_text() คำนวณความเหมือนระหว่างข้อความทั้งสอง
sprintf() ให้ค่าข้อความที่มีรูปแบบ
strchr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้
strip_tags() ตัดแท็ก HTML และ PHP จากข้อความ
stristr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้โดยไม่สนใจเรื่องตัวพิมพ์เล็กตัวพิมพ์ใหญ่
strlen() ขนาดความยาวข้อความ
strpos() หาตำแหน่งแรกที่ค้นพบข้อความที่ต้องการ
strrchr() ตัดข้อความบางส่วนตั้งแต่ตัวสุดท้ายที่พบจนถึงท้ายสุดเพื่อนำมาใช้งาน
str_repeat() แสดงข้อความซ้ำตามจำนวนครั้งที่ต้องการ
strrev() เรียงสลับข้อความจากหลังไปหน้า
strrpos() หาตำแหน่งสุดท้ายที่ค้นพบข้อความที่ต้องการ
strstr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้
strtolower() ทำให้ข้อความเป็นตัวพิมพ์เล็ก
strtoupper() ทำให้ข้อความเป็นตัวพิมพ์ใหญ่
str_replace() เปลี่ยนข้อความที่พบด้วยคำที่ต้องการ
strtr() แปลงตัวอักษรที่แน่นอน
substr() ตัดตัวอักษรที่ต้องการใช้ออกมา
substr_replace() เปลี่ยนข้อความภายในส่วนของข้อความ
trim() ตัดช่องว่างด้านหน้าและด้านหลังข้อความ
ucfirst() เปลี่ยนอักษรตัวแรกของข้อความเป็นตัวพิมพ์ใหญ่
ucwords() เปลี่ยนอักษรตัวแรกของแต่ละคำในข้อความ
ตัดช่องว่างหน้า-หลังข้อความด้วย Ltrim(), Chop() และ Trim()
รูปแบบของฟังก์ชั่น
Ltrim(Text)
Chop(Text)
Trim(Text)
ฟังก์ชั่น ความหมาย
Chop() ตัดช่องว่างท้ายข้อความออกไป
Chr() แปลงค่า ASCII เป็นตัวอักษร
echo() แสดงผลข้อความ
explode() แยกข้อความโดยใช้เครื่องหมายแรก
ereg_replace() แทนที่ข้อความที่พบด้วยคำที่ต้องการ
eregi_replace() แทนที่ข้อความที่พบด้วยคำที่ต้องการ โดยไม่สนใจตัวพิมพ์เล็กพิมพ์ใหญ่
flush() เคลียร์บัฟเฟอร์
htmlspecialchars() แสดงแท็ก HTML ในเว็บเพจ
implode() รวมอาร์เรย์เป็นข้อความ
join() รวมอาร์เรย์เป็นข้อความ
Itrim() ตัดข้อความด้านหน้าข้อความออกไป
Ord() แปลงตัวอักษรเป็นรหัส ASCII
parse_str() รับค่าข้อความไว้ในตัวแปร
print() แสดงผลข้อความ
printf() แสดงผลข้อความที่มีรูปแบบ
setlocale() ปรับค่าข้อมูลท้องถิ่น
similar_text() คำนวณความเหมือนระหว่างข้อความทั้งสอง
sprintf() ให้ค่าข้อความที่มีรูปแบบ
strchr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้
strip_tags() ตัดแท็ก HTML และ PHP จากข้อความ
stristr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้โดยไม่สนใจเรื่องตัวพิมพ์เล็กตัวพิมพ์ใหญ่
strlen() ขนาดความยาวข้อความ
strpos() หาตำแหน่งแรกที่ค้นพบข้อความที่ต้องการ
strrchr() ตัดข้อความบางส่วนตั้งแต่ตัวสุดท้ายที่พบจนถึงท้ายสุดเพื่อนำมาใช้งาน
str_repeat() แสดงข้อความซ้ำตามจำนวนครั้งที่ต้องการ
strrev() เรียงสลับข้อความจากหลังไปหน้า
strrpos() หาตำแหน่งสุดท้ายที่ค้นพบข้อความที่ต้องการ
strstr() ตัดข้อความบางส่วนตั้งแต่ตัวแรกที่พบจนถึงท้ายสุดเพื่อนำมาใช้
strtolower() ทำให้ข้อความเป็นตัวพิมพ์เล็ก
strtoupper() ทำให้ข้อความเป็นตัวพิมพ์ใหญ่
str_replace() เปลี่ยนข้อความที่พบด้วยคำที่ต้องการ
strtr() แปลงตัวอักษรที่แน่นอน
substr() ตัดตัวอักษรที่ต้องการใช้ออกมา
substr_replace() เปลี่ยนข้อความภายในส่วนของข้อความ
trim() ตัดช่องว่างด้านหน้าและด้านหลังข้อความ
ucfirst() เปลี่ยนอักษรตัวแรกของข้อความเป็นตัวพิมพ์ใหญ่
ucwords() เปลี่ยนอักษรตัวแรกของแต่ละคำในข้อความ
ตัดช่องว่างหน้า-หลังข้อความด้วย Ltrim(), Chop() และ Trim()
รูปแบบของฟังก์ชั่น
Ltrim(Text)
Chop(Text)
Trim(Text)
แปลงค่าตัวอักษรกับรหัส ASCII ด้วย Chr() และ Ord()
รูปแบบของฟังก์ชั่น
Chr(ascii-value)
Ord(string)
ascii-value เป็นข้อมูลชนิดตัวเลข หมายถึง คารหัส ASCII ที่ต้องการแปลงเป็นตัวอักษร
string เป็นข้อมูลชนิดตัวเลข หมายถึง ข้อความที่ต้องการนำมาแปลงเป็นรหัส ASCII
- <?php
- echo "รหัส 65 ใช้ฟังก์ชั่น Chr(65) :".chr(65)."<br>";
- echo "รหัส 161 ใช้ฟังก์ชั่น Chr(161) :".chr(161)."<br><hr>";
- echo "อักษร A ใช้ฟังก์ชั่น Ord(A) :".ord(A)."<br>";
- echo "อักษร ก ใช้ฟังก์ชั่น Ord(ก) :".ord(ก)."<br>";
- ?>
การแบ่งข้อความออกจากกันด้วย Explode() หรือ Split()
รูปแบบของฟังก์ชั่น
explode(separator, string)
split(separator, string)
separator คือเครื่องหมายแยก
string คือข้อความ
- <?php
- $cake = "ชิ้นที่ 1 ชิ้นที่ 2 ชิ้นที่ 3 ชิ้นที่ 4 ชิ้นที่ 5";
- $pieces = explode ("", $cake);
- echo "ฟังก์ชั่น explode() <br>"; //Function explode
- For ($I=0; $I<=5; $I++)
- {
- echo $pieces[$I]."<br>";
- }
- $pieces1 =split("", $cake); //Function split
- echo "ฟังก์ชั่น split() <br>";
- For ($I=0; $I<=5; $I++)
- {
- echo $pieces1[$I]."<br>";
- }
- ?>
การรวมข้อความจากอาร์เรย์เป็นข้อความด้วย Implode() หรือ Join()
รูปแบบของฟังก์ชั่น
implode(glue, $array)
join(glue, $array)
glue คือเครื่องหมายที่จะให้ข้อความรวมกัน
array คือตัวแรอาร์เรย์ที่จะนำข้อความมารวมกัน
- <?php
- $pieces[0] = "เค้กชิ้น 1";
- $pieces[1] = "เค้กชิ้น 2";
- $pieces[2] = "เค้กชิ้น 3";
- $pieces[3] = "เค้กชิ้น 4";
- $pieces[4] = "เค้กชิ้น 5";
- $cake =implode("", $pieces); //Function Implode
- echo "ฟังก์ชั่น Implode() <br>";
- echo $cake;
- $cake1 =join("", $pieces); //Function join
- echo "<Hr>ฟังก์ชั่น Join() <br>";
- echo $cake1;
- ?>
ตัดข้อความบางส่วนมาใช้ด้วย strchr(), strrchr(), stristr() และ strstr()
รูปแบบของฟังก์ชั่น
strchr(haystack, niddle)
strrchr(haystack, niddle)
stristr(haystack, niddle)
strstr(haystack, niddle)
haystack เป็นข้อมูลชนิดข้อความ หมายถึง ข้อความทั้งหมดซึ่งเราต้องการนำมาค้นหาข้อความย่อย
niddle เป็นข้อมูลชนิดข้อความ หมายถึง ตัวอักษรหรือข้อความย่อยที่จะค้นหาว่าอยู่ที่ตำแหน่งใดใน haystack
- <?php
- $string = "Rajabhat Institute Rambhaibarni";
- echo strchr($string,R)."<br>";
- echo strrchr($string,R)."<br>";
- echo stristr($string,R). "<br>";
- echo strstr($string,R)."<br>";
- ?>
การหาขนาดความยาวข้อความด้วย strlen()
รูปแบบของฟังก์ชั่น
Strlen(string)
- <?php
- $string = "Rajabhat Institute Rambhaibarni";
- echo "ความยาวของข้อความ $string มีค่าเท่ากับ".strlen($string). "<br>";
- ?>
การหาตำแหน่งตัวอักษรที่ค้นพบด้วย strpos() และ strrpos()
รูปแบบของฟังก์ชั่น
strpos(haystack, niddle)
strrpos(haystack, niddle)
haystack เป็นข้อมูลชนิดข้อความ หมายถึง ข้อความทั้งหมดซึ่งเราต้องการนำมาค้นหาข้อความย่อย
niddle เป็นข้อมูลชนิดข้อความ หมายถึง ตัวอักษรหรือข้อความย่อยที่จะค้นหาว่าอยู่ที่ตำแหน่งใดใน haystack
- <?php
- $string ="Rajabhat Institute Rambhaibarni";
- echo "i ตัวแรกที่พบในข้อความ $string อยู่ตำแหน่ง :".strpos($string,i)."<br>";
- echo "i ตัวสุดท้ายที่พบในข้อความ $string อยู่ตำแหน่ง :".strrpos($string,i)."<br>";
- ?>
การแสดงข้อความซ้ำหลายรอบด้วย str_repeat()
รูปแบบของฟังก์ชั่น
Str_repeat(string, multiplier)
- <?php
- $string = "Rajabhat Institute Rambhaibarni,";
- echo "แสดงข้อความ $string จำนวน 5 ครั้ง<hr>";
- echo str_repeat($string,5)."<br>";
- ?>
การเรียงสลับข้อความจากหลังไปหน้าด้วย strrev()
รูปแบบของฟังก์ชั่น
Strrev(string)
- <?php
- $string = "Rajabhat Institute Rambhaibarni";
- echo "ข้อความ $string เมื่อใช้ฟังก์ชั่น strrev() <br>";
- echo "ผลที่ได้ :".strrev($string);
- ?>
- การแปลงเป็นตัวพิมพ์เล็กพิมพ์ใหญ่ด้วย strtolower() และ strtoupper()
รูปแบบของฟังก์ชั่น
strtower(string)
strtoupper(string)
string เป็นข้อมูลชนิดข้อความ หมายถึง ข้อมูลทั้งหมดที่ต้องการนำมาแปลง
- <?php
- $string = "Rajabhat Institute Rambhaibarni";
- echo "ข้อความ $string เมื่อใช้ฟังก์ชั่น strtolower()<br>";
- echo "ผลที่ได้ ".strtolower($string)."<br>";
- echo "ข้อความ $string เมื่อใช้ฟังก์ชั่น strtoupper()<br>";
- echo "ผลที่ได้ ".strtolower($string)."<br>";
- ?>
การใช้ตัวพิมพ์ใหญ่หน้าข้อความด้วย ucfirst() หรือ ucwords()
รูปแบบของฟังก์ชั่น
Ucfirst(String)
Ucwords(String)
- <?php
- $string = "rajabhat institute rambhaibarni";
- echo "ข้อความ $string เมื่อใช้ฟังก์ชั่น ucfirst()<br>";
- echo "ผลที่ได้".ucfirst($string)."<br>";
- echo "ข้อความ $string เมื่อใช้ฟังก์ชั่น ucwords()<br>";
- echo "ผลที่ได้".ucwords($string)."<br>";
- ?>
การแทนที่คำด้วย ereg_replace หรือ eregi_replace() หรือ str_replace()
รูปแบบของฟังก์ชั่น
Ereg_replace(needle, string, haystack)
Eregi_replace(needle, string, haystack)
Str_replace(needle, string, haystack)
- <?php
- $needle = "ชื่อ :";
- $string = "Name :";
- $haystack = "สถาบันราชภัฏรำไพพรรณี";
- echo "Function ereg_replace() =".ereg_replace($needle, $string, $haystack)."<br>";
- echo "Function eregi_replace() =".eregi_replace($needle, $string, $haystack)."<br>";
- echo "Function str_replace() =".str_replace($needle, $string, $haystack)."<br>";
- ?>
การตัดตัวอักษรที่ต้องการใช้ออกมาด้วย substr()
รูปแบบของฟังก์ชั่น
substr(string, start, [length]);
string เป็นข้อมูลชนิดข้อความ หมายถึงข้อความทั้งหมดที่ต้องการนำมาตัด
start เป็นข้อมูลชนิดตัวเลข หมายถึงตำแหน่งเริ่มตัด (หากค่าตัวเลขเป็นติดลบ หมายถึง นับตำแหน่งจากหลังสุดมาข้างหน้า
length เป็นข้อมูลชนิดตัวเลข หมายถึงจำนวนตัวอักษรที่ต้องการตัด ซึ่งจะระบุหรือไม่ก็ได้ หากไม่ระบุหมายถึงให้ตัดออกมาตั้งแต่ตำแหน่ง start ไปจนจบข้อความ string
- <?php
- $string = "Rajabhat Institute Rambhaibarni";
- echo substr($string,3)."<br>";
- echo substr($string,15,3)."<br>";
- echo substr($string,18,12)."<br>";
- echo substr($string,-6,7)."<br>";
- ?>
PHP : DateDiff/Time Diff ฟังก์ชั่นเกี่ยวกับการหาค่าต่างของวันที่และเวลา
Use Function :
<?php
function DateDiff($strDate1,$strDate2)
{
return (strtotime($strDate2) - strtotime($strDate1))/ ( 60 * 60 * 24 ); // 1 day = 60*60*24
}
function TimeDiff($strTime1,$strTime2)
{
return (strtotime($strTime2) - strtotime($strTime1))/ ( 60 * 60 ); // 1 Hour = 60*60
}
function DateTimeDiff($strDateTime1,$strDateTime2)
{
return (strtotime($strDateTime2) - strtotime($strDateTime1))/ ( 60 * 60 ); // 1 Hour = 60*60
}
echo "Date Diff = ".DateDiff("2008-08-01","2008-08-31")."<br>";
echo "Time Diff = ".TimeDiff("00:00","19:00")."<br>";
echo "Date Time Diff = ".DateTimeDiff("2008-08-01 00:00","2008-08-01 19:00")."<br>";
?>
PHP : เปิดหน้าใหม่ กำหนดขนาดหน้า ตามที่ต้องการ
รูปแบบคำสั่ง
Formate :
<a href='#' onClick='window.open(" ชื่อไฟล์ที่ต้องการแสดง?ค่าที่ต้องการส่งไป=<!--%VALUES%--& gt;","mywindow","location=0,status=1,scrollbars=1,width=800,height=750" );'><!--%TEXT ที่ต้องการคลิ๊ก%-->
Exemple :
<a href='#' onClick='window.open(" ชื่อไฟล์ที่ต้องการแสดง?ค่าที่ต้องการส่งไป=<!--%VALUES%--& gt;","mywindow","location=0,status=1,scrollbars=1,width=800,height=750" );'><!--%TEXT ที่ต้องการคลิ๊ก%-->
<a href='#' onClick='window.open("ams_check_spec.php?BARCODE=<!--%AMS_BARCODE%-->","mywindow","location=0,status=1,scrollbars=1,width=800,height=750" );'><!--%AMS_BARCODE%--></a>
PHP : Textarea ให้อ่านได้อย่างเดียว
Formate :
<textarea name="ชื่อ" rows="แถว" cols="กว้าง" readonly="readonly"> ข้อมูลที่ต้องการแสดง </textarea>
Exemple :
<textarea name="Detail" rows="5" cols="50" readonly="readonly"><!--%AMS_SPC%--></textarea>
<textarea name="ชื่อ" rows="แถว" cols="กว้าง" readonly="readonly"> ข้อมูลที่ต้องการแสดง </textarea>
Exemple :
<textarea name="Detail" rows="5" cols="50" readonly="readonly"><!--%AMS_SPC%--></textarea>
8/17/2011
OpenOffice Calc : แสดงผลลัพธ์ออกมาเป็นสูตร ไม่ได้แสดงผลเป็นผลลัพธ์การคำนวณ
โปรแกรม Calc แสดงผลลัพธ์ออกมาเป็นสูตร ไม่ได้แสดงผลเป็นผลลัพธ์การคำนวณ จะสามารถแก้ไขได้อย่างไร
การ ที่โปรแกรมไม่แสดงผลออกมาเป็นคำตอบของการคำนวณนั้น เพราะรูปแบบการแสดงผลลัพธ์จากสูตรคำนวณได้ถูกตั้งค่าต่างไปจากค่าเริ่มต้น ของระบบ
เลือก OpenOffice.org Calc - View ที่ Display ให้คลิกเอาเครื่องหมายที่ Formula ออก
การ ที่โปรแกรมไม่แสดงผลออกมาเป็นคำตอบของการคำนวณนั้น เพราะรูปแบบการแสดงผลลัพธ์จากสูตรคำนวณได้ถูกตั้งค่าต่างไปจากค่าเริ่มต้น ของระบบ
-
ส่วนของการปรับค่าโปรแกรมให้สามารถแสดงผลลัพธ์ของสูตรออกมาเป็นตัวเลขได้เหมือนเดิม สามารถทำได้ดังนี้
ที่เมนูหลักเลือก Tools > Options
เลือก OpenOffice.org Calc - View ที่ Display ให้คลิกเอาเครื่องหมายที่ Formula ออก
Axapta X++ : การเพิ่มสิทธ์ให้กับ User ใน Groups
1. ที่ใช้ดู และ Add สิทธิ์ ให้กับ User ต่าง ๆ เข้าไปที่
Administration ---> Users ตามรูป
Administration ---> Users ตามรูป
-
2. ที่ใช้ในการกำหนด สิทธิ์ให้กับ Group นั้น ๆ ว่ามีสิทธิ์ทำอะไรบ้าง เข้าไปที่
Administration ----> Setup ---->User groups ตามรูป
3. การกำหนดสิทธิ์ให้กับ Group ต่าง ๆ ทำได้โดยคลิกที่ Permission แล้วเลือก Menu หรือ Table ที่ต้องการกำหนดสิทธ์
แล้วก็ Set value ด้านขวามือให้เป็น No access or full or view อื่น ๆ ตามรูป
8/16/2011
Axapta X++ : Info in Axapta
เป็นการแสดง log info ใน Axapta เพื่อแสดงข้อมูล นั้นๆ ออกมาในรูปแบบของ Info log ดังรูป
ส่วนมากที่ใช้ จะอยู่นอกเหนือจาก case ที่เรา ไม่ได้ระบุไว้ คือนอกเหนือจากนั้นให้มัน info log ออกมาให้เราดู หรือแสดงข้อมูลที่
ต้องการเปรียบเทียบ ตามแต่วัตถุประสงค์ของการใช้
รูปแบบ
info(strfmt("%1",ค่าที่ต้องการแสดง)); :: เป็นสีน้ำเงิน แสดงข้อมูล
error(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: เป็นสีแดง แสดงข้อมูล Error
warning(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: เป็นสีเหลือง แสดงข้อมูล อันตรายแจ้งเตือน
setprefix(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: แสดงข้อมูล ใน รูปเข็มมุดปักกระดาษ
เช่น switch case เสร็จ
default :
info(strfmt("%1",ข้อมูลที่ต้องการแสดง));
break;
ต้องการเปรียบเทียบ ตามแต่วัตถุประสงค์ของการใช้
รูปแบบ
info(strfmt("%1",ค่าที่ต้องการแสดง)); :: เป็นสีน้ำเงิน แสดงข้อมูล
error(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: เป็นสีแดง แสดงข้อมูล Error
warning(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: เป็นสีเหลือง แสดงข้อมูล อันตรายแจ้งเตือน
setprefix(strfmt("%1 : %2",ค่าที่ต้องการแสดง1,ค่าที่ต้องการแสดง2)); :: แสดงข้อมูล ใน รูปเข็มมุดปักกระดาษ
เช่น switch case เสร็จ
default :
info(strfmt("%1",ข้อมูลที่ต้องการแสดง));
break;
Axapta X++ : SQL Order By Join Table
การสั่งเรียงข้อมูลเมื่อมีการ Join table
สามารถทำได้โดย
WHILE
SELECT * FROM Table1
ORDER BY Field1, Field2
JOIN Table2
ORDER BY Field1, Field2
WHERE เงื่อนไข
{
}
สามารถทำได้โดย
WHILE
SELECT * FROM Table1
ORDER BY Field1, Field2
JOIN Table2
ORDER BY Field1, Field2
WHERE เงื่อนไข
{
}
8/15/2011
VB.Net ศิลปะการใช้ If (Art of If Statement)
1. แบบมี End If (หรือแบบหลายบรรทัด)
1.1) If ... End If
รูปแบบนี้ เราจะตรวจสอบและเขียนคำสั่ง กรณีผลลัพธ์ของเงื่อนไขเป็น True เท่านั้น เช่น
'กรณีผลลัพธ์ของเงื่อนไขเป็น False คำสั่งถัดไปจะเป็น End If ทันที
If ValueA > 2 Then
ValueA -= 1
ValueB = 3
End If
1.2) If ... Else ... End If
รูปแบบนี้ เราจะตรวจสอบและเขียนคำสั่ง ที่ผลลัพธ์ของเงื่อนไขเป็นทั้ง True และ False เช่น
If ValueA <> 3 Then
ValueB += 1
Else
ValueB -= 1
End If
1.3) If ... ElseIf ... Else ... End If
รูป แบบนี้จะให้เราใส่เงื่อนไขเข้าไปหลายๆ ตัวได้ คล้ายๆ Select Case ส่วน Else จะใสหรือไม่ก็ได้ แต่ถ้าไม่ใส่จะเป็นการเขียนโปรแกรมที่ไม่ดี เพราะกรณีเงื่อนไขใดๆ ไม่มีผลลัพธ์เป็น True เลย ก็อาจจะเกิดปัญหา logic error หรือ flow ไม่เป็นไปตามต้องการก็ได้ จึงควรเขียนดักไว้ก่อน เพื่อให้ถูกหลักการเขียนโปรแกรมที่ดี (อาจมีเหตุการณ์แปลกๆ ที่ทำให้มี input data แปลกๆ เข้ามาในโปรแกรมเรา กันไว้ดีกว่าแก้ครับ) ตัวอย่างการใช้
If MyCountry = "Thailand" Then
MyCountry = "ประเทศไทย"
ElseIf MyName = "Japan" Then
MyCountry = "ประเทศญี่ปุ่น"
ElseIf MyName = "China" Then
MyCountry = "ประเทศจีน"
Else
MyCountry = "บุคคลไร้สัญชาติ"
End If
2. แบบไม่มี End If (หรือแบบบรรทัดเดียว)
2.1) If ... Then ...
เป็น รูปแบบที่สั้นที่สุด และหวังผลให้ทำงานเฉพาะผลลัพธ์ของเงื่อนไขที่เป็น True เท่านั้น แต่คำสั่งหลัง Then มีได้แค่ 1 statement เท่านั้น ตัวอย่างเช่น
If Number = 10 Then MsgBox("Value is " & Number)
2.2) If ... Then ... Else ...
รูป แบบ If บรรทัดเดียว ที่ทำงานกับผลลัพธ์ชองเงื่อนไข ทั้ง True และ False แต่คำสั่งหลัง Then และ Else ก็ยังต้องมีเพียง 1 statement เท่านั้น เช่น
If Score <= 49 Then Grade = "S" Else Grade = "P"
2.3) If ... Then ... : ... : ...
รูป แบบ If บรรทัดเดียว ที่ทำงานกับผลลัพธ์ชองเงื่อนไขที่เป็น True แต่สามารถเขียนหลายๆ statement หลัง Then ได้ โดยมีเครื่องหมานโคล่อน (:) ระหว่าง statement
If Sex = True Then SexString = "Man" : MsgBox("Sex is " & SexString)
2.4) If ... Then ... : ... : ... Else ... : ... : ...
รูป แบบที่เหมือนข้อ 2.3 แต่ทำงานกับผลลัพธ์ชองเงื่อนไข ทั้ง True และ False และเขียนหลายๆ statement หลังตรวจสอบการเงื่อนไข ได้เหมือนกัน
If Value > 3 Then X *= 2 : Y *= 3 Else X *= 3 : Y *=2 : Z *= 2
3. แบบ IIf (อ่านว่า If and only If)
รูป แบบนี้จะมีการ return ค่าหลังจากตรวจสอบเงื่อนไข ซึ่งเขียนได้ในบรรทัดเดียวด้วย รูปแบบเป็นดังนี้ IIF(เงื่อนไข, ค่าเมื่อเงื่อนไขเป็นจริง, ค่าเมื่อเงื่อนไขเป็นเท็จ) ตัวอย่างเช่น
'คำสั่ง IIf จะทำงานเหมือน call function
Price = IIf(IsMember, Price - (Price * 0.1), Price - (Price * 0.05))
เทคนิคเพิ่มเติม
เพื่อ ให้การเขียนแต่ละบรรทัดไม่ยาวเกินไป เราอาจจะใช้เครื่องหมาย underscore (_) เพื่อขึ้นบรรทัดใหม่ แต่ compiler จะตีความเป็นเหมือนบรรทัดเดียว ทำให้โค้ดมีระเบียบและมีประสิทธิภาพดี เช่น
'โค้ดข้างล่างนี้ มีรูปแบบเหมือนข้อ 2.1
If (CustomerItem => 3) Or (CustomerTotal > 2000) _
Or (CustomerBirthday = Now) Or (IsMember) Then _
Price -= Price * 0.1
1.1) If ... End If
รูปแบบนี้ เราจะตรวจสอบและเขียนคำสั่ง กรณีผลลัพธ์ของเงื่อนไขเป็น True เท่านั้น เช่น
'กรณีผลลัพธ์ของเงื่อนไขเป็น False คำสั่งถัดไปจะเป็น End If ทันที
If ValueA > 2 Then
ValueA -= 1
ValueB = 3
End If
1.2) If ... Else ... End If
รูปแบบนี้ เราจะตรวจสอบและเขียนคำสั่ง ที่ผลลัพธ์ของเงื่อนไขเป็นทั้ง True และ False เช่น
If ValueA <> 3 Then
ValueB += 1
Else
ValueB -= 1
End If
1.3) If ... ElseIf ... Else ... End If
รูป แบบนี้จะให้เราใส่เงื่อนไขเข้าไปหลายๆ ตัวได้ คล้ายๆ Select Case ส่วน Else จะใสหรือไม่ก็ได้ แต่ถ้าไม่ใส่จะเป็นการเขียนโปรแกรมที่ไม่ดี เพราะกรณีเงื่อนไขใดๆ ไม่มีผลลัพธ์เป็น True เลย ก็อาจจะเกิดปัญหา logic error หรือ flow ไม่เป็นไปตามต้องการก็ได้ จึงควรเขียนดักไว้ก่อน เพื่อให้ถูกหลักการเขียนโปรแกรมที่ดี (อาจมีเหตุการณ์แปลกๆ ที่ทำให้มี input data แปลกๆ เข้ามาในโปรแกรมเรา กันไว้ดีกว่าแก้ครับ) ตัวอย่างการใช้
If MyCountry = "Thailand" Then
MyCountry = "ประเทศไทย"
ElseIf MyName = "Japan" Then
MyCountry = "ประเทศญี่ปุ่น"
ElseIf MyName = "China" Then
MyCountry = "ประเทศจีน"
Else
MyCountry = "บุคคลไร้สัญชาติ"
End If
2. แบบไม่มี End If (หรือแบบบรรทัดเดียว)
2.1) If ... Then ...
เป็น รูปแบบที่สั้นที่สุด และหวังผลให้ทำงานเฉพาะผลลัพธ์ของเงื่อนไขที่เป็น True เท่านั้น แต่คำสั่งหลัง Then มีได้แค่ 1 statement เท่านั้น ตัวอย่างเช่น
If Number = 10 Then MsgBox("Value is " & Number)
2.2) If ... Then ... Else ...
รูป แบบ If บรรทัดเดียว ที่ทำงานกับผลลัพธ์ชองเงื่อนไข ทั้ง True และ False แต่คำสั่งหลัง Then และ Else ก็ยังต้องมีเพียง 1 statement เท่านั้น เช่น
If Score <= 49 Then Grade = "S" Else Grade = "P"
2.3) If ... Then ... : ... : ...
รูป แบบ If บรรทัดเดียว ที่ทำงานกับผลลัพธ์ชองเงื่อนไขที่เป็น True แต่สามารถเขียนหลายๆ statement หลัง Then ได้ โดยมีเครื่องหมานโคล่อน (:) ระหว่าง statement
If Sex = True Then SexString = "Man" : MsgBox("Sex is " & SexString)
2.4) If ... Then ... : ... : ... Else ... : ... : ...
รูป แบบที่เหมือนข้อ 2.3 แต่ทำงานกับผลลัพธ์ชองเงื่อนไข ทั้ง True และ False และเขียนหลายๆ statement หลังตรวจสอบการเงื่อนไข ได้เหมือนกัน
If Value > 3 Then X *= 2 : Y *= 3 Else X *= 3 : Y *=2 : Z *= 2
3. แบบ IIf (อ่านว่า If and only If)
รูป แบบนี้จะมีการ return ค่าหลังจากตรวจสอบเงื่อนไข ซึ่งเขียนได้ในบรรทัดเดียวด้วย รูปแบบเป็นดังนี้ IIF(เงื่อนไข, ค่าเมื่อเงื่อนไขเป็นจริง, ค่าเมื่อเงื่อนไขเป็นเท็จ) ตัวอย่างเช่น
'คำสั่ง IIf จะทำงานเหมือน call function
Price = IIf(IsMember, Price - (Price * 0.1), Price - (Price * 0.05))
เทคนิคเพิ่มเติม
เพื่อ ให้การเขียนแต่ละบรรทัดไม่ยาวเกินไป เราอาจจะใช้เครื่องหมาย underscore (_) เพื่อขึ้นบรรทัดใหม่ แต่ compiler จะตีความเป็นเหมือนบรรทัดเดียว ทำให้โค้ดมีระเบียบและมีประสิทธิภาพดี เช่น
'โค้ดข้างล่างนี้ มีรูปแบบเหมือนข้อ 2.1
If (CustomerItem => 3) Or (CustomerTotal > 2000) _
Or (CustomerBirthday = Now) Or (IsMember) Then _
Price -= Price * 0.1
Axapta X++ : ตัดค่าตัวเลขของเดือนแต่ล่ะเดือน
You use function mthOfyr
Syntax :
Int MthOfYr (date date)
Description :
Returns the number of the month in which the date specified by date appears.
Example :
MthOfYr(02\02\1998)
returns the value '2'
Note :
January is month number 1
February in month number 2 and other month ... respectively
Syntax :
Int MthOfYr (date date)
Description :
Returns the number of the month in which the date specified by date appears.
Example :
MthOfYr(02\02\1998)
returns the value '2'
Note :
January is month number 1
February in month number 2 and other month ... respectively
OpenOffice Calc : ทำตัวอักษรยก หรือตัวห้อย
ใน Calc อยากทำตัวอักษรยก (superscript) หรือตัวห้อย (subscript) ได้หรือไม่
การทำตัวอักษรยกและตัวห้อยให้กำหนดค่าโดยไปที่คำสั่ง
Format >Character ที่ tab Font position เลือก super script สำหรับตัวอักษรยก
การทำตัวอักษรยกและตัวห้อยให้กำหนดค่าโดยไปที่คำสั่ง
Format >Character ที่ tab Font position เลือก super script สำหรับตัวอักษรยก
หากต้องการให้เป็นตัวอักษรห้อยให้เลือก subscript แทน
Axapta X++ เก็บค่า string มาต่อกันไปเรื่อย ๆ
str sNarration ,sLastName ประกาศตัวแปร
sNarration = "" ; Reset ค่าให้เป็นค่ีาว่างก่อน ไม่งั่นมันจะ ยาวไปเรื่อย ๆ
sLastName = "" ;
WHILE
SELECT * FROM ... Table
WHERE ... เงื่อนไข
{
sNarration = TableVendInvoiceTrans.Name ; ค่าที่ต้องการเก็บใหม่
if( sLastName == "" ){
sLastName = strfmt("%1", sNarration);
} else {
sLastName = strfmt("%1, %2", sLastName, sNarration); เอามาต่อไปเรื่อย ๆ ใช้ , คั่น
}
}
sNarration = "" ; Reset ค่าให้เป็นค่ีาว่างก่อน ไม่งั่นมันจะ ยาวไปเรื่อย ๆ
sLastName = "" ;
WHILE
SELECT * FROM ... Table
WHERE ... เงื่อนไข
{
sNarration = TableVendInvoiceTrans.Name ; ค่าที่ต้องการเก็บใหม่
if( sLastName == "" ){
sLastName = strfmt("%1", sNarration);
} else {
sLastName = strfmt("%1, %2", sLastName, sNarration); เอามาต่อไปเรื่อย ๆ ใช้ , คั่น
}
}
8/10/2011
การ backup email ของ thunderbird
Thunderbird Profile , การ backup email setting ของ thunderbird
สำหรับการ format และลง windows ใหม่ สิ่งที่ต้องทำก่อนคือการ backup ข้อมูลต่างๆ ใน drive C ซึ่งเมล และสิ่งต่างๆ ที่ตั้งค่าไว้ใน setting ตัว thunderbird เองสามารถทำได้ง่ายดายจริงๆ 3 ขั้นตอนจบ1. copy profile (ก่อน format)
ไปที่เมนู tools->Account
Click ที่ Server Settings , ที่ Local Directory แสดง Path ที่เก็บ Profile
- ตัวอย่าง
"C:\Users\Administrator\AppData\Roaming\Thunderbird\Profiles\u0m9vw53.default\ImapMail\imap.gmail.com"
ให้ copy path ตามนี้ "C:\Users\Administrator\AppData\Roaming\Thunderbird\Profiles"
เปิด Mycomputer ขึ้นมาเอา path ไปวางกด enter
แล้วก็ copy "u0m9vw53.default" เก็บไว้
folder นี้คือ profile ทั้งหมด
2. เอาที่ copy ไว้มาวางที่เดิม (หลังลง Windows และติดตั้ง Thunderbird แล้ว)
ถ้าหาไม่เจอ ก็ set mail อะไรก็ได้ ขึ้นมาแล้วก็เข้าไปดูตามขั้นตอนที่หนึ่ง ก็จะได้ profile path แล้ว
3. แก้ไข Profile.ini
ที่ path เราวาง profile ไว้ ให้ถอดออกไป 1 directory จะเจอ profiles.ini ("C:\Users\Administrator\AppData\Roaming\Thunderbird")
edit ด้วย notepad แก้ไข path ใน profile0 ให้ถูกต้อง
ตัวอย่าง
[General]
StartWithLastProfile=1
[Profile0]
Name=default
IsRelative=1
Path=Profiles/u0m9vw53.default
แก้เฉพาะตรงตัวหนังสือที่เป็นสีน้ำเงิน เป็นชื่อ Folder ที่เรา Copy มาเท่านี้ทุกอย่างที่เคยใช้งาน ใน Thunderbird ก็จะเหมือนเดิมไม่ต้อง Set อะไรเพิ่มเติม
8/07/2011
วิธี Download www.saveufile.com โดยใช้โปรแกรม FlashGet เร็วกว่าโหลดธรรมดา
ขั้นตอนการ Download www.saveufile.com โดยใช้โปรแกรม FlashGet เร็วกว่าโหลดธรรมดา
การทำแบบนี้อาจทำได้จาก web downlond อื่น ๆ แต่ยังไม่ได้ลองน่ะครับต้องลองดู อาจจะได้ครับ
1. เข้าไปที่ Link Download ตามปกติ ใส่รหัสที่เห็น คลิ๊ก Download เลือก Save file ขั้นตอนตามปกติ
2. จะขึ้นหน้า Download ของ Firefox หรือ IE ขึ้นมาดังรูป
3. คลิ๊กขวาที่ไฟล์ที่ Download กดหยุดการ Download ดังรูป
4. คลิกขวาที่ชื่อไฟล์ที่ Download เลือก Copy Download Link ดังรูป
5. เปิด FlashGet หรือ Internetdownloadmanager ขึ้นมาเลือก New แล้ววาง URL ที่ Copy มาจาก ข้อ 2 เสร็จแล้ว กด Download เป็นอันเสร็จ
6. ความเร็วที่ได้ เร็วและมากว่าตอนโหลด ธรรมะดามาก เท่า ๆ หรือมากกว่า Mediafire ด้วยบางครั้ง
การทำแบบนี้อาจทำได้จาก web downlond อื่น ๆ แต่ยังไม่ได้ลองน่ะครับต้องลองดู อาจจะได้ครับ
1. เข้าไปที่ Link Download ตามปกติ ใส่รหัสที่เห็น คลิ๊ก Download เลือก Save file ขั้นตอนตามปกติ
2. จะขึ้นหน้า Download ของ Firefox หรือ IE ขึ้นมาดังรูป
3. คลิ๊กขวาที่ไฟล์ที่ Download กดหยุดการ Download ดังรูป
4. คลิกขวาที่ชื่อไฟล์ที่ Download เลือก Copy Download Link ดังรูป
5. เปิด FlashGet หรือ Internetdownloadmanager ขึ้นมาเลือก New แล้ววาง URL ที่ Copy มาจาก ข้อ 2 เสร็จแล้ว กด Download เป็นอันเสร็จ
6. ความเร็วที่ได้ เร็วและมากว่าตอนโหลด ธรรมะดามาก เท่า ๆ หรือมากกว่า Mediafire ด้วยบางครั้ง
8/06/2011
Axapta X++ :: เขียนข้อมูลจาก Axapta ลงไฟล์ Text หรือ Csv
เขียนข้อมูลจาก Axapta ลงไฟล์ Text หรือ Csv
1. ประกาศตัวแปร
AsciiIO myFile;
;
2. ใช้คำสั่งด้านล่างนี้บน SQL ที่ SELECT ข้อมูล และระบุ ที่เก็บและชื่อไฟล์ที่มันจะสร้างขึ้น
myFile=new AsciiIO("c:\\min.txt","a");
3. ใช้คำสั่งยัดตัวแปรใส่ในไฟล์ ดังนี้
myfile.write(strfmt("%1",..ตัวแปรหรือค่าที่ต้องการเขียน...));
เช่น myfile.write(strfmt("%1",TableSalesLine.SalesId));
1. ประกาศตัวแปร
AsciiIO myFile;
;
2. ใช้คำสั่งด้านล่างนี้บน SQL ที่ SELECT ข้อมูล และระบุ ที่เก็บและชื่อไฟล์ที่มันจะสร้างขึ้น
myFile=new AsciiIO("c:\\min.txt","a");
3. ใช้คำสั่งยัดตัวแปรใส่ในไฟล์ ดังนี้
myfile.write(strfmt("%1",..ตัวแปรหรือค่าที่ต้องการเขียน...));
เช่น myfile.write(strfmt("%1",TableSalesLine.SalesId));
Axapta X++ :: Static Method
คือ method ที่สามารถเรียกใช้งานโดยเรียกผ่านชื่อ Object ได้เลย โดยไม่ต้องประกาศตัวแปร
การเรียกใช้คือ ชื่อตามด้วย :: เช่น InventTable::find
เหมาะสำหรับการทำงานที่ต้องเรียกใช้บ่อย ๆ
ตัวอย่าง static method
การเรียกใช้คือ ชื่อตามด้วย :: เช่น InventTable::find
เหมาะสำหรับการทำงานที่ต้องเรียกใช้บ่อย ๆ
ตัวอย่าง static method
static VendDueDate find(VendPaymDayId _Term, TransDate _Date)
{
VendDueDate vendDueDate;
;
if (_Term && _Date){
SELECT * FROM vendDueDate
WHERE vendDueDate.FromDate <= _Date
&& vendDueDate.ToDate >= _Date
&& vendDueDate.PaymentTerms == _Term;
}
return vendDueDate;
}
Axapta X++ :: Run คำสั่ง SQL ตรง ๆ ใน Axapta
static void Job3(Args _args)
{
LogInProperty Lp = new LogInProperty();
OdbcConnection myConnection;
Statement myStatement;
ResultSet myResult;
str sqlQuery;
;
sqlQuery = 'SELECT TOP 10 * FROM CustTable ORDER BY NewID()';
LP.setServer("Server");
LP.setDatabase("db");
Lp.setUsername("user");
Lp.setPassword("password");
try{
myConnection = new OdbcConnection(LP);
}
catch{
info("Check username/password.");
return;
}
myStatement = myConnection.createStatement();
myResult = myStatement.executeQuery(sqlQuery);
while (myResult.next()){
box::info(myResult.getString(1));
}
}
Axapta X++ :: สำหรับให้ถามเพื่อยืนยัน
void clicked()
{
DialogButton result;
;
result = Box::yesNo("คุณแน่ใจหรือไม่ ?",DialogButton::No);
if(result == DialogButton::Yes) {
// คำสั่งที่จะให้ทำเมื่อผู้ใช้ตอบยืนยัน
}
super();
}
หรือใช้คำสั่งแบบไม่ต้องประกาศตัวแปร
if(box::yesNo("Do you want something to happen?",
dialogbutton::Yes) == dialogbutton::Yes)
{
somethingHappens = this.callTosSomeReturnMethod();
}
{
DialogButton result;
;
result = Box::yesNo("คุณแน่ใจหรือไม่ ?",DialogButton::No);
if(result == DialogButton::Yes) {
// คำสั่งที่จะให้ทำเมื่อผู้ใช้ตอบยืนยัน
}
super();
}
หรือใช้คำสั่งแบบไม่ต้องประกาศตัวแปร
if(box::yesNo("Do you want something to happen?",
dialogbutton::Yes) == dialogbutton::Yes)
{
somethingHappens = this.callTosSomeReturnMethod();
}
Axapta X++ :: DynamicHeight Replacement
code สำหรับใช้แทน property DynamicHeight ที่มีไว้สำหรับการแสดงผลหลายบรรทัด (เป็น bug ของ axapta) ใน Reports
void executeSection()
{
ReportStringControl ctrlBatchReserved = this.ControlName('batchReserved');
// Control ต้อง set ให้ AutoDeclare ด้วย
str tmpStr;
int i;
;
tmpStr = inventJournalTrans.batchReserved(); //มี \n คั่นสำหรับขึ้นบรรทัดใหม่
while(true){ // วนลูปนับบรรทัด
i++;
if(strLine(tmpStr, i) == '') break;
}
ctrlBatchReserved.height(i,Units::Char); // กำหนดความสูงตามบรรทัดที่นับได้
}
Axapta X++ :: การใช้ตัวแปรใน SQL Statement ของ Axapta
การรับตัวแปรเพิ่มเข้าไปเป็นเงื่อนไขในส่วนของ SQL เช่น รับค่าจาก Dialog แล้วเอามาเติม Wildcard ก่อนที่จะ query
หากใช้ตัวแปรที่เป็น str ธรรมดาจะมี error message
แก้ไขได้โดย กำหนดขนาดของ string ให้แน่นอน หรือประกาศเป็น extended datatype ไปเลย
เช่น
หากใช้ตัวแปรที่เป็น str ธรรมดาจะมี error message
"Container and unbound string (text) fields are not allowed here in a WHERE expression"
แก้ไขได้โดย กำหนดขนาดของ string ให้แน่นอน หรือประกาศเป็น extended datatype ไปเลย
เช่น
WrkCtrIdBase tmpStr;
// str 10 tmpStr;
;
tmpStr = strfmt("%1%2",wrkCtrIdBase,"-LA*");
SELECT sum(Amount) FROM prodRouteTrans WHERE prodRouteTrans.CategoryId LIKE tmpStr;
Axapta X++ :: Get or Set Checkbox Value
ตัวอย่างการตรวจสอบและเซ็ตสถานะของ checkbox ใน Axapta
public void clicked()
{
Qty tmpQty1;
Qty tmpQty2;
FormCheckboxControl formCheckboxControl;
;
super(); // ต้องรัน super ก่อน ไม่งั้นค่าไม่เปลี่ยน
formCheckboxControl = element.design().control(control::ProdParmHistoricalCost_EndJob); // รับค่าจาก design
// box::info(strfmt("%1",formCheckboxControl.value()));
if(formCheckboxControl.value() == 1){ //ถ้า checked จะเป็น 1
tmpQty1 = ProdTable::find(ProdParmHistoricalCost.ProdId).QtySched;
tmpQty2 = ProdTableJour::reportedFinishedGood(ProdParmHistoricalCost.prodId);
if(tmpQty1 != tmpQty2){
if(box::yesNo(strfmt("¨Ó¹Ç¹·Õè reported (%1) < ¨Ó¹Ç¹·Õè ÊÑ觼ÅÔµ (%2) \n µéͧ¡ÒôÓà¹Ô¹¡ÒõèÍËÃ×ÍäÁè",tmpQty2,tmpQty1), DialogButton::Yes, "Â×¹Âѹ¡Ò÷ӧҹ") == DialogButton::Yes)
{
if(box::yesNo("¤Ø³µéͧ¡ÒÃÂ×¹ÂѹËÃ×ÍäÁè",DialogButton::Yes,"¡ÃسÒÂ×¹Âѹ")== DialogButton::Yes){
formCheckboxControl.value(true); //สั่งให้ checked
}else{
formCheckboxControl.value(false); //สั่งให้ ไม่ checked
}
}else{
formCheckboxControl.value(false);
}
}
}
}
8/05/2011
Ubuntu เสียบ Lan ใหม่ไม่เจอ Eth0.. Eth1
Ubuntu เสียบ Lan ใหม่ไม่เจอ Eth0.. Eth1
แก้โดยใช้คำสั่งนี้
- You use command sudo nano /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x8086:0x294c (e1000e)
- Delete red color
- Save the file (ctrl-o to write the file, ctrl-x to exit the editor), then reboot.
ที่มา http://ubuntuforums.org/showthread.php?t=955990
แก้โดยใช้คำสั่งนี้
- You use command sudo nano /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x8086:0x294c (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1c:ff:ff:ff:ff", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
- Delete red color
- Save the file (ctrl-o to write the file, ctrl-x to exit the editor), then reboot.
ที่มา http://ubuntuforums.org/showthread.php?t=955990
8/02/2011
PHP : Get Real IP Address
function getRealIpAddr()
{
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
PHP BB ให้มีเมนู List ด้านข้าง
1.แก้ template ไฟล์ overall_header.html (ใน \styles\prosilver\template\)
1.1 ด้านล่างสุด เพิ่ม
<table id="mainbody"><tr><td id="left_sidebar" valign="top">
<!-- INCLUDE sidebar.html -->
</td><td id="right_column" valign="top">
1.2 ด้านบน ก่อนปิด </head>
<style>
<!--
table#mainbody{ width:100%; }
td#left_sidebar{width:200px;}
//-->
</style>
2.แก้ template ไฟล์ overall_footer.html (ใน \styles\prosilver\template\)
2.1 ด้านบนสุด เพิ่ม
</td>
</tr>
</table>
3.เพิ่ม template ชื่อ sidebar.html (ใน \styles\prosilver\template\) ให้มีโครงสร้างตามนี้
<div class="panel">
<div class="inner">
<span class="corners-top"><span></span></span>
<h3>Online Services : ฝซร.</h3>
<li><a href="/sci/mn1_start.php">แจ้งซ่อม Online</a><br />
<li><a href="/sci/mn1_make_start.php">แจ้งสร้าง Online</a><br />
<span class="corners-bottom"><span></span></span>
</div>
</div>
1.1 ด้านล่างสุด เพิ่ม
<table id="mainbody"><tr><td id="left_sidebar" valign="top">
<!-- INCLUDE sidebar.html -->
</td><td id="right_column" valign="top">
1.2 ด้านบน ก่อนปิด </head>
<style>
<!--
table#mainbody{ width:100%; }
td#left_sidebar{width:200px;}
//-->
</style>
2.แก้ template ไฟล์ overall_footer.html (ใน \styles\prosilver\template\)
2.1 ด้านบนสุด เพิ่ม
</td>
</tr>
</table>
3.เพิ่ม template ชื่อ sidebar.html (ใน \styles\prosilver\template\) ให้มีโครงสร้างตามนี้
<div class="panel">
<div class="inner">
<span class="corners-top"><span></span></span>
<h3>Online Services : ฝซร.</h3>
<li><a href="/sci/mn1_start.php">แจ้งซ่อม Online</a><br />
<li><a href="/sci/mn1_make_start.php">แจ้งสร้าง Online</a><br />
<span class="corners-bottom"><span></span></span>
</div>
</div>
Subscribe to:
Posts (Atom)