การใช้ Datawindow
DataWindow Designer
การเปิด Project จากโปรแกรม DataWindow Designer
ไป File -> Open Project... -> เลือก project (.dwp)
project จะอยู่ใน path : C:\GCOOP\Saving\DataWindow\ระบบ\project (.dwp)
หมาย เหตุ : สร้าง 1 pbl ต่อ 1 w_sheet ซึ่งหมายความว่า 1 pbl มีได้หลาย data window โดยการตั้งชื่อตั้งตามชื่อ w_sheet แต่ตัด w_sheet ออก เช่นจะได้เป็น app_sheetname.pbl
การสร้าง PBL ไปคลิกขวาที่โปรเจก เลือก New Library
การสร้าง Datawindow
เลือก pbl ที่ต้องการจะสร้าง Datawindow แล้วไปที่ File -> New -> DataWindow -> เลือกชนิดให้เหมาะสมกับการทำงาน (เช่นเลือกเป็น Tabular, Grid view )
1. การเรียกใช้ datawindow จากหน้าเวป
ไปที่ toolbox เลือก ประเภท Sybase Datawindow2.5 แล้วดับเบิ้ลคลิ๊ก object ที่ชื่อ WebDataWindowControl จะได้ดังรูป

2. การเซตค่า WebDataWindowControl
(id) : dw_main (เป็นชื่อ Datawindow ไว้สำหรับใช้ในส่วนโค้ด)
Datawindow
1. กดปุ่ม Add library to library list ทำการเพิ่ม library ก่อน
2. กดปุ่ม Browse libraries เพื่อทำการหา library (.pbl) ที่เก็บ datawindow ตัวที่ต้องการไว้
3. กดปุ่ม Ok เป็นอันเสร็จเรียบร้อย
DataWindowObject : d_slipbank (เป็นการเลือก datawindow ที่ต้องการใช้)
Behavior
AutoRestoreContext = False //เกี่ยวข้องกับ JsPostback
AutoRestoreDataCache = True //เกี่ยวข้องกับ JsPostback
AutoSaveDataCacheAfterRetrieve = True //เกี่ยวข้องกับ JsPostback
ClientScriptable = True // ให้เรียกใช้ Java Script ได้
DataWindow Client EventScripts สร้างเหตุการณ์ต่างๆ ให้กับ Data window
เช่น
ClientEventButtonClickes : OnButtonClicked (เมื่อมีการคลิ๊กที่ปุ่ม จะเกิดเหตุการณ์ตามที่ฟังก์ชัน ต้องการแสดง)
function OnButtonClicked(sender, rowNumber, buttonName, value)
{
ClientEventClicked : OnDwMainClick (เมื่อมีการคลิ๊กที่ Data Window นี้ จะเกิดเหตุการณ์ตามที่ฟังก์ชันต้องการ)
function OnDwMainClick(sender, rowNumber, objectName)
{
ClientEventItemChanged : OnDwMainItemChanged (เมื่อ field ที่ถูกกำหนดมีการ เปลี่ยนแปลง ข้อมูล จะเกิดเหตุการณ์ตามที่ฟังก์ชันต้องการ)
function OnDwMainItemChanged(sender, rowNumber, columnName, newValue)
{
ClientEventItemError : OnError
function OnError(sender, rowNumber, columnName, newValue)
{
และ Event อื่นๆ ตามต้องการ
Java script การ get และ set ข้อมูล
การ get ข้อมูล
var ชื่อตัวแปร = odjชื่อDataWindow.GetItem(rowNumber,”fieldName”)
ตัวอย่าง
var deptWithFlag = objDwMain.GetItem(1, "deptwith_flag");
การ set ข้อมูล
objชื่อDataWindow.SetItem(rowNumber, ”fieldName”, newValue)
ตัวอย่าง
objdw_cheque.SetItem(sheetRow, "bank_code", bankCode);
//และจะต้องตามด้วย
objdw_cheque.AcceptText();
Code behind การ get และ set ข้อมูล
การ get ข้อมูล
ชนิดข้อมูล ชื่อตัวแปร = ชื่อDataWindow.GetItem_ชนิดข้อมูล(rowNumber,”fieldName”)
ตัวอย่าง
String accNo = DwMain.GetItemString(1, "deptaccount_no");
การ set ข้อมูล
ชื่อDataWindow.SetItem_ชนิดข้อมูล(rowNumber,”fieldName”,newValue)
ตัวอย่าง
DwItem.SetItemDecimal(1, "prncslip_amt", slipAmt);
การ Retrieve, Insert และ Update ข้อมูลในหน้าเว็บโดยใช้ Data Window
การ Retrieve ข้อมูล
เริ่มจากสร้าง ConnectionString ให้กับ DataWindow
this.ConnectSQLCA();
DwMain.SetTransaction(sqlca);
การ Insert ข้อมูล
DwMain.InsertRow(0);
//And then update data
การ Update ข้อมูล
DwMain.UpdateData();
หมายเหตุ ถ้าจะให้เซตค่าได้ update ค่าได้จากทางเว็บ ใน dw designer ก็ต้องเซต tab order ให้มีค่า (ไม่เป็น 0)


ดังกล่าวมานี้เป็นเพียงพื้นฐานเริ่มต้น อยู่ที่นำไปประยุกต์ใช้ต่อไป ....
DataWindow Designer
การเปิด Project จากโปรแกรม DataWindow Designer
ไป File -> Open Project... -> เลือก project (.dwp)
project จะอยู่ใน path : C:\GCOOP\Saving\DataWindow\ระบบ\project (.dwp)
หมาย เหตุ : สร้าง 1 pbl ต่อ 1 w_sheet ซึ่งหมายความว่า 1 pbl มีได้หลาย data window โดยการตั้งชื่อตั้งตามชื่อ w_sheet แต่ตัด w_sheet ออก เช่นจะได้เป็น app_sheetname.pbl
การสร้าง PBL ไปคลิกขวาที่โปรเจก เลือก New Library
การสร้าง Datawindow
เลือก pbl ที่ต้องการจะสร้าง Datawindow แล้วไปที่ File -> New -> DataWindow -> เลือกชนิดให้เหมาะสมกับการทำงาน (เช่นเลือกเป็น Tabular, Grid view )
1. การเรียกใช้ datawindow จากหน้าเวป
ไปที่ toolbox เลือก ประเภท Sybase Datawindow2.5 แล้วดับเบิ้ลคลิ๊ก object ที่ชื่อ WebDataWindowControl จะได้ดังรูป
2. การเซตค่า WebDataWindowControl
สามารถทำการเซตค่าได้ที่ Properties ส่วนสำคัญที่จะต้องมีเซตค่าทุกครั้ง

Misc(id) : dw_main (เป็นชื่อ Datawindow ไว้สำหรับใช้ในส่วนโค้ด)
Datawindow
LibraryList : d_dp_slip_master_usebkbal (เป็นการเลือก library (.pbl) ที่ทำการเก็บ datawindow ตัวที่ต้องการไว้ ตามขั้นตอนดังนี้)
2. กดปุ่ม Browse libraries เพื่อทำการหา library (.pbl) ที่เก็บ datawindow ตัวที่ต้องการไว้
3. กดปุ่ม Ok เป็นอันเสร็จเรียบร้อย
DataWindowObject : d_slipbank (เป็นการเลือก datawindow ที่ต้องการใช้)
AutoRestoreContext = False //เกี่ยวข้องกับ JsPostback
AutoRestoreDataCache = True //เกี่ยวข้องกับ JsPostback
AutoSaveDataCacheAfterRetrieve = True //เกี่ยวข้องกับ JsPostback
ClientScriptable = True // ให้เรียกใช้ Java Script ได้
DataWindow Client EventScripts สร้างเหตุการณ์ต่างๆ ให้กับ Data window
เช่น
ClientEventButtonClickes : OnButtonClicked (เมื่อมีการคลิ๊กที่ปุ่ม จะเกิดเหตุการณ์ตามที่ฟังก์ชัน ต้องการแสดง)
function OnButtonClicked(sender, rowNumber, buttonName, value)
{
//Do something
}ClientEventClicked : OnDwMainClick (เมื่อมีการคลิ๊กที่ Data Window นี้ จะเกิดเหตุการณ์ตามที่ฟังก์ชันต้องการ)
function OnDwMainClick(sender, rowNumber, objectName)
{
//Do something
}ClientEventItemChanged : OnDwMainItemChanged (เมื่อ field ที่ถูกกำหนดมีการ เปลี่ยนแปลง ข้อมูล จะเกิดเหตุการณ์ตามที่ฟังก์ชันต้องการ)
function OnDwMainItemChanged(sender, rowNumber, columnName, newValue)
{
//Do something
}ClientEventItemError : OnError
function OnError(sender, rowNumber, columnName, newValue)
{
//Do something
}และ Event อื่นๆ ตามต้องการ
Java script การ get และ set ข้อมูล
การ get ข้อมูล
var ชื่อตัวแปร = odjชื่อDataWindow.GetItem(rowNumber,”fieldName”)
ตัวอย่าง
var deptWithFlag = objDwMain.GetItem(1, "deptwith_flag");
การ set ข้อมูล
objชื่อDataWindow.SetItem(rowNumber, ”fieldName”, newValue)
ตัวอย่าง
objdw_cheque.SetItem(sheetRow, "bank_code", bankCode);
//และจะต้องตามด้วย
objdw_cheque.AcceptText();
Code behind การ get และ set ข้อมูล
การ get ข้อมูล
ชนิดข้อมูล ชื่อตัวแปร = ชื่อDataWindow.GetItem_ชนิดข้อมูล(rowNumber,”fieldName”)
ตัวอย่าง
String accNo = DwMain.GetItemString(1, "deptaccount_no");
การ set ข้อมูล
ชื่อDataWindow.SetItem_ชนิดข้อมูล(rowNumber,”fieldName”,newValue)
ตัวอย่าง
DwItem.SetItemDecimal(1, "prncslip_amt", slipAmt);
การ Retrieve, Insert และ Update ข้อมูลในหน้าเว็บโดยใช้ Data Window
การ Retrieve ข้อมูล
เริ่มจากสร้าง ConnectionString ให้กับ DataWindow
this.ConnectSQLCA();
DwMain.SetTransaction(sqlca);
สามารถ Retieve ข้อมูล จาก Dawa window นั้นได้โดยใช้ คำสั่งนี้ได้เลย
DwMain.Retrieve(“ตัวแปร”);การ Insert ข้อมูล
DwMain.InsertRow(0);
//And then update data
การ Update ข้อมูล
DwMain.UpdateData();
หมายเหตุ ถ้าจะให้เซตค่าได้ update ค่าได้จากทางเว็บ ใน dw designer ก็ต้องเซต tab order ให้มีค่า (ไม่เป็น 0)
ดังกล่าวมานี้เป็นเพียงพื้นฐานเริ่มต้น อยู่ที่นำไปประยุกต์ใช้ต่อไป ....
หาที่ลงไม่เจอ เรื่องของการ ส่งข้อมูลในรูปแบบ XML โดยการ export ข้อมูลจาก DataWindow โดย DataWindow ที่เป็นตัวต้นทาง ห้ามมีการจัดทำ Group บน DataWindow โดยเด็ดขาด ไม่งั้นไม่สามารถ Import ข้อมูลไปยัง DataWindow ปลายทางได้ หมายเหตุ DataWindow ปลายทาง จะมี Group หรือไม่ก็ได้
เพิ่มเติม จาก บทความก่อนหน้า
* หากไม่สามารถ แก้ DataWindow ได้ เมื่อได้ข้อมูล ที่อยู่ในรูปแบบ XML แล้ว ให้ทำการ ลบคำที่มีการจัด Group ออกจาก file XML นั้น โดย Tag ชื่อ DataWindow แล้วตามด้วย "_group1" โดยทั้งหมดจะอยู่ภายใน Tag โดยจะมีคู่กัน Tag เปิด และ Tag ปิด หากมีมากว่า 1 Group ก็ตามหลังด้วย _group2,3,4 ต่อไปเรื่อยๆ จบครบทุก Group