BMS-HOSxP Community

HOSxP => Development => ข้อความที่เริ่มโดย: manoi ที่ มกราคม 03, 2011, 20:57:29 PM

หัวข้อ: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 20:57:29 PM
เนื่องจากผมได้อธิบายไว้ที่เชียงใหม่ว่าในระบบ UE มีการปรับปรุง Pascal script ใหม่ แต่เนื่องจากเวลามีจำกัดจึงอธิบายทั้งหมดไม่ได้ ขอเปิดกระทู้อธิบายเลยก็แล้วกันนะครับ   ;D


อันดับแรกเลยครับ มีการย้าย การวาง Component ไปเป็น Popup Menu ครับ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:04:10 PM
การเขียน Script ควบคุม component ใน Form มีรูปแบบง่ายๆ ดังนี้ครับ

1. สามารถกำหนด Property ของ Component ต่างๆ ได้ โดยการใช้ Type Casting ผ่าน UEForm.FindComponent ครับ เช่น หากต้องการกำหนด Property caption ของ Label ใน Form ก็สามารถเขียนคำสั่งได้ดังตัวอย่าง

TLabel(UEForm.FindComponent('UELabel8681')).Caption := 'Test Caption';
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:07:14 PM
2. Property ที่สามารถกำหนดได้ ตอนนี้จะเป็นเฉพาะ key Property ที่สำคัญๆ ครับ เช่น TEdit ก็จะเป็น Text
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:10:51 PM
3. การประกาศตัวแปร สามารถประกาศได้เลย โดยใช้คำสำคัญว่า var ข้างหน้า แล้วเรียกใช้งานบรรทัดถัดไปได้เลยครับ เช่น

var i : Integer;

for i:=1 to 10 do
begin
  TListBox(UEForm.FindComponent('UEListBox7027')).items.add(IntToStr(i));
end;
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:13:35 PM
4. มี Component ที่สามารถเพิ่มเข้าไปใน Form ได้อีก 1 ตัวคือ DBGrid ครับ สามารถกำหนด Column ได้โดยการคลิกขวาที่ Grid แล้วเลือก DBGrid Properties
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:16:47 PM
DBGrid ทุกตัวที่สร้างเอาไว้ จะมี DataSource / DataSet สร้างให้อัตโนมัติครับ สามารถดึงข้อมูลมาใส่ใน Dataset ด้วยคำสั่ง SQL ผ่านปุ่ม Assign SQL Data ได้ครับ (เพื่อนำมาแสดงเป็นตัวอย่างตอนออกแบบก่อน)

จากนั้นจึงค่อยกำหนด Property FieldName ครับว่าจะให้นำค่าจาก Field อะไรมาแสดง
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:22:19 PM
เราสามารถกำหนดให้ดึงข้อมูลอะไรก็ได้มาแสดงใน DbGrid โดยใช้วิธี Type Casting แบบนี้ครับ

TClientDataset(TDBGrid(UEForm.FindComponent('UEDBGrid3371')).DataSource.Dataset).Data :=HOSxP_GetDataset('select * from pttype');
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:26:28 PM
หรือจะสร้าง ClientDataset ตัวใหม่ขึ้นมาแล้วกำหนดให้กับ DBGrid ผ่าน DataSource ครับ เช่น


var cds:TClientDataset;
cds:=TClientDataset.create(UEForm);
cds.data:=HOSxP_GetDataset('select * from pttype');
cds.first;
while not cds.eof do
begin
  cds.edit;
  cds.fieldbyname('name').asstring:='Test edit pttype name : '+cds.fieldbyname('pttype').asstring;
  cds.post;
  cds.next;
end;
TDBGrid(UEForm.FindComponent('UEDBGrid3371')).DataSource.DataSet := cds;

หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: manoi ที่ มกราคม 03, 2011, 21:31:08 PM
Function อื่นๆ ที่สามารถเรียกใช้ได้ในระบบ UE Script ตอนนี้ก็ตามรูปเลยครับ

ตัวอย่าง function ที่น่าจะได้ใช้ประโยชน์เช่น GetGlobalValue('vn')  จะเป็นการนำค่า VN ของ Visit ที่กำลังบันทึกข้อมูลมาใช้ครับ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: James011 ที่ มกราคม 03, 2011, 22:21:04 PM
 ;D ;D ;D   ขอบคุณครับ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: poramat ที่ มกราคม 03, 2011, 22:29:25 PM
ขอบคุณครับ  :D :D :D
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: Khuad ที่ มกราคม 03, 2011, 22:41:29 PM

... ขอลคุณอาจารย์ มากๆ ครับ ...  :D .....
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: Bordin ที่ มกราคม 04, 2011, 06:38:34 AM

... ขอลคุณอาจารย์ มากๆ ครับ ...  :D .....

 ;D ;D  อ.ขวดสงสัยจะรีบไปทดสอบ  ;D ;D

ขอบคุณมากครับ  :D

หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: เกื้อกูล ครับ.. ที่ มกราคม 04, 2011, 08:19:16 AM

... ขอลคุณอาจารย์ มากๆ ครับ ...  :D .....

 ;D ;D  อ.ขวดสงสัยจะรีบไปทดสอบ  ;D ;D

ขอบคุณมากครับ  :D



ระยะหลังนี้  Admin ดุกันทุกคน..ใครพลาด  ...โดนยิงพรุนเลย..ใ่ช่มั๋ย..ท่านบ่อดิน... ;D ;D ;D ;D ;D
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: Bordin ที่ มกราคม 04, 2011, 09:11:58 AM
ระยะหลังนี้  Admin ดุกันทุกคน..ใครพลาด  ...โดนยิงพรุนเลย..ใ่ช่มั๋ย..ท่านบ่อดิน... ;D ;D ;D ;D ;D

 ;D ;D ;D
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: udomchok ที่ มกราคม 04, 2011, 15:41:09 PM

... ขอลคุณอาจารย์ มากๆ ครับ ...  :D .....

 ;D ;D  อ.ขวดสงสัยจะรีบไปทดสอบ  ;D ;D

ขอบคุณมากครับ  :D



ระยะหลังนี้  Admin ดุกันทุกคน..ใครพลาด  ...โดนยิงพรุนเลย..ใ่ช่มั๋ย..ท่านบ่อดิน... ;D ;D ;D ;D ;D
พี่ก็ปล่อยผ่านไปแล้วนะ เดี่ยวจะหาว่าจุกจิก เจอน้องบ่อดิน(ทับ) "ถม" เข้าไปซะ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: doramon ที่ มกราคม 04, 2011, 15:51:16 PM

... ขอลคุณอาจารย์ มากๆ ครับ ...  :D .....

 ;D ;D  อ.ขวดสงสัยจะรีบไปทดสอบ  ;D ;D

ขอบคุณมากครับ  :D



ระยะหลังนี้  Admin ดุกันทุกคน..ใครพลาด  ...โดนยิงพรุนเลย..ใ่ช่มั๋ย..ท่านบ่อดิน... ;D ;D ;D ;D ;D
พี่ก็ปล่อยผ่านไปแล้วนะ เดี่ยวจะหาว่าจุกจิก เจอน้องบ่อดิน(ทับ) "ถม" เข้าไปซะ
ตอนหลังต้องระวังการ post เพราะว่า มีคุณครูประถมอยู่ในบอร์ดหลายคนครับ อ.ขวด

ต้องเข้าใจบ้างเรื่องก็เร็ว  บ้างเรื่องก็ช้า  ครับ


 ;D
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: Bordin ที่ มกราคม 04, 2011, 16:03:21 PM
พี่ก็ปล่อยผ่านไปแล้วนะ เดี่ยวจะหาว่าจุกจิก เจอน้องบ่อดิน(ทับ) "ถม" เข้าไปซะ

ไม่ได้ทำอย่างนั้นเลยนะครับ  ;D ;D ;D แค่เน้นตัวหนังสือสีแดงครับ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: usa0823 ที่ มกราคม 04, 2011, 16:03:37 PM
เมื่อก่อนใช้ UE แล้ว บันทึกอย่างเดียววันนี้สามารถเอาลูกเล่นมาใส่ได้แล้วครับ
ลองแล้ว โอเคเลยครับ ที่อยากได้ GetGlobalValue('vn')   ;D ;D

ขอบคุณอาจารย์มากเลยครับ
หัวข้อ: Re: การเขียน Pascal script ในระบบ UE 3.54.x.x
เริ่มหัวข้อโดย: tigerfx ที่ สิงหาคม 18, 2011, 20:13:26 PM
สอบถามครับ ผมลอง code ใน UE แบบนี้

TLabel(UEForm.FindComponent('UELabel470')).caption := 'Test';

ขึ้นว่า Undeclared Identifier 'UEForm' ผมควรเขียน code อย่างไรครับ เพื่อจะ reference ถึง component ได้

ทดสอบใน 3.54.xx
ขอบคุณครับ