Category Archive PowerBuilder

PowerBuilder:DataWindow.ShareData

shareData เป็นวิธีที่ใช้ data เดียวกันของ DataWindow โดยจะแชร์กันหมดทุกอย่างทั้ง primary buffer, delete buffer, filter buffer, sort order ประโยชน์เช่น มี DataWindow ตัวแรก ( dw_booking ) ไว้กรอกข้อมูลที่ติดต่อลูกค้าและออกรายงานในรูปแบบใบรับจองตั๋วรถทัวร์ โดยจะมีข้อมูลบางส่วนเป็นเวลานัด หมายเลขเที่ยว ที่นั่ง เวลาใส่กระดาษเล็ก ๆ ใน DataWindow ( dw_ticket ) แบบสวยงามกระทัดรัด ไม่จำเป็นต้องมีข้อมูลของลูกค้า แต่ร้านค้ามีข้อมูลครบถ้วนอย่าง ชื่อ นามสกุล เบอร์โทรศัพท์ไว้ติดต่อกรณีที่ลูกค้ามาสาย

การเขียนทำได้ด้วย code ง่าย ๆ

dw_original.ShareData(dw_shareing)
หรือ
IF dw_original.ShareData(dw_shareing) = -1 THEN MessageBox("Error !", "ShareData original and shareing")

ตัวอย่าง

dw_booking.ShareData(dw_dw_ticket)
หรือ
IF dw_booking.ShareData(dw_dw_ticket) = -1 THEN MessageBox("Error !", "ShareData booking and ticket")

เมื่อกรอกข้อมูลใน dw_booking จะเห็นว่าข้อมูลจะไปแสดงใน dw_ticket ตามรูปแบบในหน้าที่ design

ข้อควรระวังคือ source ของทั้งสอง Datawindow ต้องมีจำนวน column และ data type เท่ากัน ไม่อย่างนั้นฝั่ง replicate จะไม่แสดงข้อมูล ดูเพิ่มเติมได้จาก ShareData

PowerBuilder: DBMS not supported in your current installation

เห็น error DBMS not supported in your current installation ในขั้นตอนที่ connect database sql server ตอนแรกเข้าใจว่าตอนที่ติดตั้งไม่ได้ลงพวก adodb, jdbc, odbc driver ลอง install ใหม่ก็เหมือนเดิม กี่ครั้งก็เหมือนเดิม

รุ่นพี่บอกให้ลง sql server 2000 หลังจากนั้นก็ connect ได้ปกติเลย เข้าใจว่าในการติดตั้งมันจะลงไดร์เวอร์ให้เป็นตัวที่ยังใช้โปรโตคอลเดี่ยวกับตัว PB8

PowerBuilder: file extension

ในส่วนของ source code ของ PowerBuilder ประกอบด้วยไฟล์นามสกุลต่าง ๆ

ความหมายfile extension
Application source files.sra
Custom user object source files.sru
Data pipeline source files.srp
DataWindow source files.srd
Dynamic link library files.pdb
Function source files.srf
Library files.pbl
Menu source files.srm
Project files.srj
Query source files.srq
Structure source files.srs
Target files.pbt
Window source files.srw
Workspace files.pbw

PowerBuilder: Target ( Template Application )

วิธีสร้าง target application จาก template

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. คลิก file
  3. คลิก Open..
  4. Browse ไปไฟล์ *.pbw ที่ต้องการ
  5. คลิก OK
  6. คลิก file
  7. คลิก New…
  8. ที่เท็บ Target เลือก Template Application
  9. คลิก OK
  10. หน้า About the Template Application Wizard
  11. คลิก Next >
  12. หน้า What you will do
  13. คลิก Next >
  14. หน้า Specify New Application and Library
    • Application Name: ใส่ชื่อ เช่น prototype_pb8
    • Library: ใส่ชื่อ Library ตัวหลักเช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\main.pb
    • Target: เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\prototype_pb8.pb
  15. หน้า Specify Template Type เลือกชนิดของ application ที่ต้องการ
    • MDI Application with Microhelp
    • SDI Application
    • PFC-base application
  16. เลือก MDI
  17. คลิก Next >
  18. หน้า Adjust Application Library Search Path
  19. คลิก Next >
  20. หน้า Name MDI Frame and Menu
    • MDI Frame: ใส่ชื่อ เช่น w_main
    • MDI Frame Menu: เช่น m_main
  21. คลิก Next >
  22. หน้า Name MDI Base Sheet, Menu and Service
    • Base Sheet Window: เช่น w_basesheet
    • Sheet Menu: เช่น m_sheet
    • Sheet Manager Service: เช่น n_sheetmanager
  23. คลิก Next >
  24. หน้า Name individual Sheets
    • Sheet 1: เช่น w_sheet1
    • Sheet 2: เช่น w_sheet2
    • Sheet 3: เช่น w_sheet3
  25. คลิก Next >
  26. หน้า Assign Display Name to Sheets
    • W_sheet1 Title (1) : เช่น Untitled for Sheet 1
    • W_sheet2 Title (2) : เช่น Untitled for Sheet 2
    • W_sheet3 Title (3) : เช่น Untitled for Sheet 3
  27. คลิก Next >
  28. หน้า Name About Box and Toolbar Window
    • About Window: เช่น w_about
    • Toolbar Window: เช่น w_toolbars
  29. คลิก Next >
  30. หน้า Specify Connectivity
    • Requires SQL Database connection
    • Requires EAServer connection
    • None
  31. เลือก Requires SQL Database connection
  32. คลิก Next >
  33. หน้า Choose Database Profile
    • เลือก database ที่ต้องการ
  34. หน้า Specify Connectivity Source Info
    • Application INI file คือเก็บไว้ในไฟล์ .ini
    • Registry Settings ฝากไว้ในความจำของ windows
    • Script
    • Connection Service Object: เก็บไว้ในชื่อ เช่น n_connectservice
  35. คลิก Next >
  36. หน้า Name Application INI File
    • Application INI File: เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\main.ini
  37. คลิก Next >
  38. หน้า Create Project?
    • No. create project later
    • Yes, Create project now
  39. เลือก Yes ซิจะได้ไปต่อ
  40. คลิก Next >
  41. หน้า Specify Project Object
    • Project: เช่น p_prototype_pb8_exe
  42. คลิก Next >
  43. Specify Executable and Resource Files
    • Executable File Name เช่น C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\prototype_pb8.exe
    • Option Resource File (.pbr) เว้นไว้ก่อน
  44. คลิก Next >
  45. Specify Build Options จากจุดนนี้ไปทำเหมือนตอน build เอา

PowerBuilder: Deploy

การ Deploy โปรเจกต์ powerbuilder ไปยัง user สามารถทำได้โดยมีส่วนประกอบ 2 ส่วนด้วยกัน

  1. ไฟล์ *.exe
    • ชื่อไฟล์โดยปกติจะโดนระบุไว้ในไฟล์ *.pbt
    • ถ้าไม่มีการเพิ่มหรือลด library ใน target ก็ไม่จำเป็นต้องส่งไฟล์นี้ให้ user
  2. ไฟล์ *.pbd
    • เป็นไฟล์ที่เกิดจากการแปลงไฟล์ library ( *.pbl ) โดยจะมีชื่อเดียวกันแต่นามสกุล .pbd โดยจะอยู่ใน path เดียวกัน
    • สามารถนำไฟล์ pbd ไปแทนที่ไฟล์เดิมในเครื่อง user ได้ทันที ตัว .exe จะสามารถใช้ datawindow, function, window และส่วนประกอบอื่น ๆ ที่อยู่ใน library version นั้น ๆ ได้ทันที
    • ไฟล์ pbd อื่น ๆ สามารถเรียกใช้สิ่งที่อยู่ใน pbd อื่น ๆ ได้ ถ้ายังเป็นชื่อเดิม มี parameter เหมือนเดิม ถึงตัวมันเองจะเก่ากว่า หรือว่าใหม่กว่าไฟล์ pbd ตัวนั้น ๆ

ข้อดีจากคุณสมบัติของไฟล์ pbd และ exe ทำให้เวลาที่ส่งโปรแกม update ให้ user สามารถส่งบางฟีเจอร์ ไปให้ user แต่ละกลุ่มได้โดยการส่ง pbd ให้ต่างกัน กลุ่ม a อาจจะได้รับไฟล์ pbd ที่ใหม่กว่าเพื่อทดลองใช้ฟีเจอร์ใหม่ ๆ ในเมนูเดียวกันกับกลุ่ม b ที่ได้รับไฟล์ pbd เวอร์ชั่นก่อนหน้าที่ใช้งานได้ อาจจะไม่ดีนัก แต่ทำงานได้อยู่

PowerBuilder: build application

การ build source code ของเราเป็น application ( .exe ) ทำได้ง่าย ๆ โดย

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. ใน System tree คลิก target ที่ต้องการ build
  3. คลิกขวา New…
  4. ที่เท็บ Project เลือก Application Wizard
  5. คลิก OK
  6. จะมีหน้าต่าง About the Application Project Wizard ขึ้นมา คลิก Next >
  7. หน้า Specify Destination Library
  8. คลิก Next >
  9. หน้า Specify Project Object จะให้เราสามาารถตั้งชื่อได้ เช่น p_prototypes_pb8_exe
  10. คลิก Next >
  11. หน้า Specify Executable and Resource Files จะช่องให้ว่าจะ build ไฟล์ .exe ไว้ที่ไหน ชื่ออะไร
  12. คลิก Next >
  13. หน้า Specify Build Options มีอยู่ 2 Options
    • Fill Build จะ build ทั้ง target
    • Incremental Build จะ build เฉพาะไฟล์ที่เปลี่ยนแปลงจากครั้งที่ Build ล่าสุดเท่านั้น จะเร็วกว่า
  14. คลิก Next >
  15. หน้า Generate Machine Code?
  16. คลิก Next >
  17. หน้า Specify Dynamic Library Options
  18. ติ๊ก Build Dynamic Libaries (.PBD)
  19. คลิก Next >
  20. หน้า Specify Version Information จะไว้ระบุข้อมูลของโปรแกรม เช่น บริษัท version
  21. คลิก Next >
  22. หน้า Ready to Create Application จะให้รายละเอียดตัวเลือกที่ผ่านมา
  23. คลิก Finish
  24. จะเห็นหน้าที่ใช้ Build โดยด้านล่างจะมี list Library ให้สามารถเลือกทับ Resource File Name นั้น ๆ ได้
  25. คลิก Deploy จากเมนู

ด้านล่างจะมี log แสดงการทำงานอยู่ เมื่อแสดงข้อความประมาณ

———- Deploy: Deploy of p_prototypes_pb8_exe
Creating executable file . . .
Inspecting Application Dependencies. . .
Inspecting Application Dependencies. . .
Inspecting application libraries . . .
Writing C:\UsersDatas\ProjectsGit\PrototypesPowerBuilder8\Source code\common.pbl(prototypes_pb8) . . .
———- Finished Deploy of p_prototypes_pb8_exe


โปรแกรมของเราจะเสร็จสมบูรณ์

PowerBuilder: Target

ตัวโปรแกรมจริง ๆ ของ powerbuilder ที่เอาไป build เป็น *.exe จะอยู่ในไฟล์ target โดยไฟล์นี่จะมีหน้าที่ลิสต์ Library ต่าง ๆ ที่ใช้ไว้

  1. เปิด workspace ที่ต้องการขึ้นมาเช่น งานชิ้นใหม่ก็เปิดจาก development.pbw
  2. คลิก file
  3. คลิก Open..
  4. Browse ไปไฟล์ *.pbw ที่ต้องการ
  5. คลิก OK
  6. คลิก file
  7. คลิก New…
  8. ที่เท็บ Target เลือก Application
  9. ระบุ
    • Application Name: เช่น prototypes_pb8 ย่อมาจาก Prototype Power Builder 8
    • Library: จะเป็นไฟล์ที่เก็บส่วนประกอบย่อย ต่าง ๆ เป็นกลุ่ม ๆ เหมือนห้องสมุดที่แบ่งเป็นห้องสมุดการแพทย์ก็อยู่ที่หนึ่ง ห้องสมุดเกี่ยวกับการเกษตรก็อยู่อีกที่ เช่น C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8\common.pbl
      สาเหตุที่ไฟล์นี้ใช้คำว่า common เพราะตั้งใจจะไว้เก็บ function กลาง ไว้ใช้ทั้งโปรแกรม
    • Target: จะเป็นชื่อไฟล์ .exe ที่จะ build ขึ้นมา เช่น C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8\prototypes_pb8.pbt

เมื่อเปิดโพลเดอร์ C:\UsersDatas\ProjectsGit\PowerBuilder\Prototype_PB8 จะเห็นอยู่ 2 ไฟล์ main_pb8.pbt และ common.pbl ที่จะอธิบายต่อไป

PowerBuilder: new project / open project

ไฟล์ project ของ PowerBuilder จะมีนามสกุล *.pbw ย่อมาจาก PowerBuilder Workspace เป็นไฟล์ที่จะบันทึก กลุ่มของ target ไว้ภายใน โดยไฟล์ *.pbw จะสามารถมี target ภายในได้มากกว่า 1 และ target เดียวกันสามารถอยู่ได้ในหลาย worksapce

สามารถสร้างใหม่ได้โดย

  1. คลิก file
  2. คลิก New…
  3. ที่เท็บ Workspace คลิก Workspace คลิก OK
  4. ตั้งชื่อที่ต้องการ
  5. คลิก save

โดยผมเลือกสร้าง workspace ไว้ 3 กลุ่มดังนี้

  • development สำหรับพัฒนาโปรแกรม
  • production งานที่ build ให้ user จะอยู่ในนี้
  • prototype สำหรับทดลองแนวทางต่าง ๆ ง่าย ๆ เร็ว ๆ

ในครั้งต่อไปที่เปิดโปรเจกต์ต้องเปิดจากไฟล์ตัวนี้ ไม่อย่างนั้นจะหาส่วนต่างๆ ไม่เจอได้

ตอนต่อไป PowerBuilder: Target

PowerBuilder 8: ภาษาไทย

ถ้าเปิดโปรเจคขึ้นมาแล้วตัวอักษรไม่สามารถอ่านได้เป็นตัวเหลี่ยมๆ อะไรแปลกๆ เป็นภาษาต่างแดน ต่างด่าว ต่างดาว แก้ได้โดย

  1. ไปที่ menu ของ windows 10
  2. คลิก Settings
  3. คลิก Time & Language
  4. คลิก Language
  5. คลิก Administrative language setting
  6. คลิก Change system locale
  7. เลือก Current system locale เป็น Thai (Thailand) เอาที่ติ๊กช่อง Use Unicode UTF-8 for worldwide language support ออกไป
  8. restart windows

PowerBuilder 8: ติดตั้ง

จริงๆ แล้ว PowerBuilder 8 ออกมาในปี 2001 มาติดตั้งปีนี้ 2021 ก็ 20 ปีพอดี ถ้าจะนับเป็นคนก็เป็นหนุ่มสาวกันแล้วละ แน่นอนว่ามันไม่ทันกับ windows 10 แน่นอน การลงมันเลยต้องมีการติดตั้งที่พิเศษจากโปรแกรมอื่นๆ

  1. หาตัวติดตั้งมาก่อน หาโหลดไม่ได้แล้วจัดเป็นโปรแกรม classic ที่ใช้ตอนนี้ได้เป็นมรดกมาจากรุ่นพี่ ถ้ามีแล้วจงรักษาเอาไว้ให้ดี
  2. ไปคลิกที่ตัวติดตั้ง C:\PowerBuilder v.8\pb 8.01\Setup.exe
    1. ในหน้า Select Components ให้เอา PowerBuilder, PowerDynamo และ Adaptive Server Anyware ออกไปก่อนเพราะถ้าติดตั้งตอนนี้มันจะค้างที่ 70% ถ้าเจอค้างกด end task ตัวติดตั้งตัวแรกทิ้งไปเลย
    2. ติดตั้งโปรแกรมโดยเลี่ยงทั้ง 3 โปรแกรมให้มากที่สุด restart
    3. ติดตั้งโปรแกรม C:\PowerBuilder v.8\pb 8.01\Setup.exe ใหม่อีกครั้ง คราวนี้เลือกติดตั้งทุกตัว
  3. update โดยติดตั้ง C:\PowerBuilder v.8\PB 8.02\PB802.zip\PB802.exe
  4. update โดยติดตั้ง C:\PowerBuilder v.8\PB 8.03\PB803.zip\PB803.exe
  5. โปรแกรมจะถูกติดตั้งเรียบร้อยแล้วแต่ว่าคู่มือจะไม่สามารถกด F1 จากตัวโปรแกรมได้ ให้ไปล้วง short cut ออกมาจาก C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Sybase\PowerBuilder 8.0\

อ่านเพิ่มเติม https://pitt.plusmagi.com/powerbuilder-8-ภาษาไทย