เอกสาร

คู่มือและเอกสารประกอบที่ครอบคลุมสำหรับ SQLVantage

คำนำ

คู่มือการใช้งาน SQLVantage (ภาษาไทย)

คู่มือการใช้งานระบบรายงาน SQLVantage ฉบับสมบูรณ์

สารบัญ

  1. ภาพรวมระบบ
  2. การติดตั้งและการปรับใช้ (Windows / Linux)
  3. คำแนะนำการกำหนดค่า
  4. คู่มือสำหรับผู้ดูแลระบบ
  5. คำแนะนำการออกแบบรายงาน (SQL/FORM/HTML)
  6. คู่มือสำหรับผู้ใช้งานทั่วไป
  7. การประมวลผลคำขอและผลลัพธ์
  8. คำถามที่พบบ่อย (FAQ)
  9. ภาคผนวก: การจัดเก็บข้อมูล การสำรองข้อมูล และการย้ายระบบ

1. ภาพรวมระบบ

1.1 SQLVantage คืออะไร

SQLVantage คือระบบรายงานบนเว็บ โดยมี "ผู้ดูแลระบบ" เป็นผู้ดูแลคำนิยามของรายงาน และ "ผู้ใช้งานทั่วไป" สามารถเลือกรายงาน กรอกเงื่อนไขการค้นหา รับผลลัพธ์แบบ asynchronous และส่งออกเป็นไฟล์ Excel / HTML / JSON / TEXT ผ่านทางหน้าเว็บ

1.2 เทคโนโลยีที่ใช้

ระบบนี้ใช้สถาปัตยกรรมเว็บแบบบริสุทธิ์: ไม่จำเป็นต้องติดตั้งไคลเอนต์หรือปลั๊กอินใดๆ ในเบราว์เซอร์ สามารถเข้าถึงได้ด้วยเบราว์เซอร์สมัยใหม่ทุกตัว สำหรับฝั่งเซิร์ฟเวอร์ ต้องการเพียงโปรแกรมที่รันได้และโฟลเดอร์กำหนดค่าที่เกี่ยวข้อง ทำให้การติดตั้งทำได้ง่าย

1.3 แนวคิดหลัก

แนวคิด คำอธิบาย
รายงาน (Report) 1 รายงาน = โค้ด 3 ส่วน (SQL + FORM + HTML) + ไฟล์ JSON รูปแบบ 3 ไฟล์ (SqlFormat / FormFormat / HtmlFormat) โดยสังกัดอยู่ใน "ความรับผิดชอบ" หนึ่ง
ความรับผิดชอบ (Responsibility) หมวดหมู่ของรายงาน ซึ่งตรงกับ Responsibility ใน Oracle EBS ใช้สำหรับจัดกลุ่มรายงานตามโมดูลเพื่อแสดงให้ผู้ใช้เห็น
พารามิเตอร์ (Parameter) เงื่อนไขการค้นหาที่กำหนดใน FORM (เช่น วันที่, ลูกค้า, องค์กร เป็นต้น) เมื่อส่งข้อมูลแล้วจะถูกนำไปผูกกับ SQL ในรูปแบบ named parameter
คำขอ (Request) ภารกิจการรันรายงานเฉพาะครั้งที่ส่งโดยผู้ใช้ทั่วไป ระบบจะประมวลผลแบบ asynchronous ในพื้นหลังและสร้างไฟล์ผลลัพธ์
ไลเซนส์ (License) ไฟล์ไลเซนส์ conf/license.dat ที่ควบคุมจำนวนรายงานและระยะเวลาการใช้งาน

1.4 บทบาทผู้ใช้งาน

บทบาท ทางเข้า สิทธิ์การใช้งาน
ผู้ดูแลระบบ (admin) /admin/login จัดการผู้ใช้, จัดการความรับผิดชอบ, จัดการรายงาน, นำเข้าไลเซนส์, ตั้งค่าระบบ, ตรวจสอบคำขอทั้งหมด
ผู้ใช้งานทั่วไป (normal) /login เลือกรายงาน, กรอกพารามิเตอร์, ส่งคำขอ, ดูคำขอของตนเอง, ดาวน์โหลดผลลัพธ์, เปลี่ยนรหัสผ่าน

1.5 โครงสร้างไดเรกทอรี

ไฟล์หลักหลังจากแตกไฟล์แพ็กเกจ:

SQLVantage/
├── SQLVantage.exe / sqlvantage   # โปรแกรมหลัก (Windows / Linux)
├── conf/
│   ├── app.conf        # ไฟล์กำหนดค่าระบบ (พอร์ต / ภาษา / Oracle เป็นต้น)
│   ├── data.dat        # ฐานข้อมูลธุรกิจ (ผู้ใช้ / ความรับผิดชอบ / รายงาน / คำขอ)
│   ├── license.dat     # ไฟล์ไลเซนส์
│   └── locale/         # แพ็กเกจภาษา
├── data/               # สร้างขึ้นขณะรัน: <RequestID>.xlsx / <RequestID>.json
├── docs/               # เอกสารการใช้งาน (หลายภาษา, รวม images/)
└── tmp/                # ไฟล์ชั่วคราว (เซสชัน, งาน)

2. การติดตั้งและการปรับใช้ (Windows / Linux)

2.1 ข้อกำหนดด้านสภาพแวดล้อม

  • ระบบปฏิบัติการ: Windows 7+ / 64-bit Linux (x86_64)
  • วิธีการรัน (แนะนำ): ใช้โปรแกรมที่รันได้ที่จัดทำไว้โดยตรง (SQLVantage.exe หรือ binary ของ Linux) โดยไม่ต้องติดตั้ง runtime environment ใดๆ
  • ฐานข้อมูล Oracle: การรันรายงานจำเป็นต้องเชื่อมต่อกับ Oracle ได้ (ระบบนี้เชื่อมต่อกับ Oracle EBS เป็นค่าเริ่มต้น) โปรดตรวจสอบเครือข่ายและบัญชีผู้ใช้ล่วงหน้า
  • สิทธิ์ของดิสก์/ไดเรกทอรี: ไดเรกทอรีที่โปรแกรมทำงานต้องมี สิทธิ์ในการเขียน (writable) เนื่องจากในระหว่างการทำงาน ระบบจะสร้างไดเรกทอรี data/ และ tmp/ รวมถึงอ่าน/เขียนไฟล์ใน conf/

2.2 การติดตั้งบน Windows

  1. แตกไฟล์: แตกไฟล์แพ็กเกจ (zip) ไปยังไดเรกทอรีใดก็ได้ เช่น D:\SQLVantage\ หลังจากแตกไฟล์แล้ว ให้ตรวจสอบว่ามีไฟล์สำคัญดังต่อไปนี้:

    D:\SQLVantage\
    ├── SQLVantage.exe      # โปรแกรมหลัก
    ├── conf\app.conf       # ไฟล์กำหนดค่า
    ├── conf\data.dat       # ฐานข้อมูล (ฐานข้อมูลว่างที่มาพร้อมกับแพ็กเกจ)
    └── conf\locale\        # แพ็กเกจภาษา
    
  2. (ไม่บังคับ) แก้ไขการกำหนดค่า: เปิด conf\app.conf ด้วย Notepad และแก้ไขที่อยู่สำหรับ listen, พอร์ต, การเชื่อมต่อ Oracle เป็นต้น ตาม บทที่ 3

  3. เริ่มโปรแกรม: ดับเบิลคลิกที่ SQLVantage.exe หรือรันผ่าน command line:

    cd D:\SQLVantage
    SQLVantage.exe
    

    หลังจากเริ่มทำงานสำเร็จ คอนโซลจะพิมพ์ข้อมูลเวอร์ชัน สถานะไลเซนส์ และเข้าสู่สถานะ listening

  4. เข้าถึงระบบ: เปิด http://127.0.0.1:8080 ในเบราว์เซอร์ (ที่อยู่เริ่มต้น สามารถแก้ไขได้ใน app.conf)

  5. การตั้งค่า Firewall: หากต้องการเข้าถึงจาก LAN/ระยะไกล ให้เปิดพอร์ตที่เกี่ยวข้อง (เช่น 8080) ใน Windows Firewall:

    netsh advfirewall firewall add rule name="SQLVantage" dir=in action=allow protocol=TCP localport=8080
    

2.3 การติดตั้งบน Linux

  1. แตกไฟล์: แตกไฟล์แพ็กเกจ (tar.gz หรือ zip) ไปยังไดเรกทอรีเป้าหมาย เช่น /opt/sqlvantage:

    mkdir -p /opt/sqlvantage
    tar -xzf sqlvantage-linux-amd64.tar.gz -C /opt/sqlvantage
    cd /opt/sqlvantage
    
  2. กำหนดสิทธิ์การรัน:

    chmod +x sqlvantage
    
  3. (ไม่บังคับ) แก้ไขการกำหนดค่า: แก้ไข conf/app.conf (เช่นเดียวกับ Windows)

  4. ทดสอบการรันแบบ foreground:

    ./sqlvantage
    

    เมื่อเห็นข้อมูลเวอร์ชันและ log การ listen แสดงว่าเริ่มทำงานสำเร็จ กด Ctrl+C เพื่อหยุด

  5. รันแบบ background (แนะนำให้ใช้ systemd หรือ nohup):

    วิธี A: nohup

    cd /opt/sqlvantage
    nohup ./sqlvantage > sqlvantage.log 2>&1 &
    

    วิธี B: systemd (สร้างไฟล์ /etc/systemd/system/sqlvantage.service):

    [Unit]
    Description=SQLVantage Report System
    After=network.target
    
    [Service]
    WorkingDirectory=/opt/sqlvantage
    ExecStart=/opt/sqlvantage/sqlvantage
    Restart=always
    RestartSec=5
    User=sqlvantage
    
    [Install]
    WantedBy=multi-user.target
    

    จากนั้นรันคำสั่ง:

    systemctl daemon-reload
    systemctl enable sqlvantage
    systemctl start sqlvantage
    systemctl status sqlvantage
    
  6. Firewall / Security Group: เปิดพอร์ต (เช่น 8080):

    firewall-cmd --permanent --add-port=8080/tcp && firewall-cmd --reload
    

2.4 การคอมไพล์จากซอร์สโค้ด (ไม่บังคับ)

สำหรับผู้ใช้ที่ได้รับซอร์สโค้ดเท่านั้น: รันคำสั่ง build ในไดเรกทอรีซอร์สเพื่อสร้างไฟล์ที่รันได้สำหรับแพลตฟอร์มปัจจุบัน สำหรับสภาพแวดล้อมการปรับใช้จริง แนะนำให้ใช้โปรแกรมที่รันได้ซึ่งเผยแพร่อย่างเป็นทางการโดยตรง

2.5 การเริ่มใช้งานครั้งแรก

ในการเริ่มใช้งานครั้งแรก ระบบจะดำเนินการกำหนดค่าเริ่มต้นโดยอัตโนมัติดังนี้:

  1. ตรวจสอบไฟล์ข้อมูล: อ่าน conf/data.dat (มาพร้อมกับแพ็กเกจ หากหายไปโปรแกรมจะแจ้งว่า "conf/data.dat is not found" และปิดตัวลง — โปรดอย่าลบไฟล์นี้)
  2. สร้างตารางอัตโนมัติ: ตาราง user, responsibility, report และ request ทั้ง 4 ตารางจะถูกสร้างโดยอัตโนมัติ
  3. สร้างบัญชีผู้ดูแลระบบอัตโนมัติ: เมื่อเข้าถึง /admin/login ครั้งแรก หากไม่มีผู้ใช้ root ระบบจะสร้างให้โดยอัตโนมัติ:
    • ชื่อผู้ใช้: root
    • รหัสผ่านเริ่มต้น: SQLVantage
    • บทบาท: admin (ผู้ดูแลระบบ)
    • คำเตือนด้านความปลอดภัย: โปรดเปลี่ยนรหัสผ่านนี้ทันทีหลังจากการเข้าสู่ระบบครั้งแรก (ผู้ดูแลระบบสามารถเปลี่ยนได้ที่ "การจัดการผู้ใช้")
  4. ตรวจสอบไฟล์ไลเซนส์: หาก conf/license.dat หายไปหรือไม่ถูกต้อง คอนโซลจะพิมพ์คำเตือน ระบบยังคงทำงานได้แต่จะอยู่ภายใต้ข้อจำกัดของไลเซนส์ใน ส่วนที่ 4.7

3. คำแนะนำการกำหนดค่า

3.1 ตำแหน่งไฟล์กำหนดค่า

ไฟล์กำหนดค่าคือ conf/app.conf (รูปแบบ INI) โดยมีวิธีแก้ไข 2 วิธี:

  • วิธีที่ 1 (แนะนำ, ผ่านหน้าจอ UI): หลังจากเข้าสู่ระบบในฐานะผู้ดูแลระบบ ให้ไปที่ "การตั้งค่าระบบ" (/admin/setting) กรอกค่าที่ต้องการแล้วบันทึก ระบบจะเขียนกลับไปยัง app.conf โดยอัตโนมัติ
  • วิธีที่ 2 (แก้ไขไฟล์โดยตรง): แก้ไข conf/app.conf ด้วย text editor จากนั้นรีสตาร์ทโปรแกรม

3.2 ตารางคำอธิบายพารามิเตอร์

พารามิเตอร์ ค่าเริ่มต้น คำอธิบาย
appname SQLVantage ชื่อแอปพลิเคชัน
httpaddr 127.0.0.1 IP Address สำหรับ listen; 0.0.0.0 หมายถึง listen ทุก network interface (เข้าถึงได้จาก LAN)
httpport 8080 พอร์ตสำหรับ listen แนะนำช่วง 8080~8099
runmode dev โหมดการทำงาน: dev (พัฒนา, แสดงข้อผิดพลาดโดยละเอียด) / prod (ใช้งานจริง, ซ่อนรายละเอียดข้อผิดพลาด)
language en-US ภาษาเริ่มต้นของ UI (ลำดับความสำคัญต่ำกว่าพารามิเตอร์ URL / Cookie / ภาษาของเบราว์เซอร์)
sessiongcmaxlifetime 3600 เวลาหมดอายุของ Session (วินาที) ค่าเริ่มต้นคือ 1 ชั่วโมง
max_execution_time 30 เวลาทำงานสูงสุดของงานรายงาน (นาที) งานที่หมดเวลาจะถูกทำเครื่องหมายเป็น Terminated โดยอัตโนมัติ
oracle_server เช่น 192.168.10.13 IP/Hostname ของเซิร์ฟเวอร์ฐานข้อมูล Oracle
oracle_port 1521 พอร์ต listen ของ Oracle
oracle_database test ชื่อบริการของ Oracle (SERVICE_NAME)
oracle_username apps ชื่อผู้ใช้ในการเชื่อมต่อ Oracle
oracle_password ไม่มี รหัสผ่านในการเชื่อมต่อ Oracle (โปรดกรอกรหัสผ่านจริง)

3.3 การมีผลของสิ่งที่แก้ไข

  • sessiongcmaxlifetime: มีผลทันทีหลังจากบันทึก
  • พารามิเตอร์อื่นๆ (พอร์ต, Oracle ฯลฯ): ต้องรีสตาร์ทโปรแกรม เพื่อให้การเปลี่ยนแปลงมีผล

3.4 การเปลี่ยนภาษา

  • ระบบมี 12 ภาษาในตัว: zh-CN, zh-TW, en-US, ja-JP, ko-KR, fr-FR, de-DE, es-ES, th-TH, vi-VN, ru-RU, pt-PT
  • วิธีเปลี่ยน: เพิ่ม ?lang=zh-CN ต่อท้าย URL (เช่น /?lang=zh-CN) หรือเปลี่ยนผ่านเมนูภาษาที่มุมขวาบนของคอนโซลผู้ดูแลระบบ หลังจากเลือกแล้วจะถูกบันทึกลงใน Cookie ซึ่งมีอายุ 1 ปี

4. คู่มือสำหรับผู้ดูแลระบบ

4.1 การเข้าสู่ระบบของผู้ดูแลระบบ

  1. เข้าถึง http://<ที่อยู่เซิร์ฟเวอร์>:<พอร์ต>/admin/login ผ่านเบราว์เซอร์
  2. เข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบ (เริ่มต้นคือ root / SQLVantage)
  3. เมื่อเข้าสู่ระบบสำเร็จ จะเข้าสู่หน้าจัดการหลังบ้าน (/admin) โดยเมนูทางด้านซ้ายประกอบด้วย: การจัดการรายงาน, การจัดการความรับผิดชอบ, การจัดการผู้ใช้, การจัดการคำขอ, การจัดการไลเซนส์, การตั้งค่าระบบ, แดชบอร์ด, เกี่ยวกับ

หมายเหตุ: บัญชีผู้ดูแลระบบต้องมี บทบาท = admin และ สถานะ = active มิฉะนั้นจะไม่สามารถเข้าสู่ระบบหลังบ้านได้

4.2 แดชบอร์ดและแถบนำทางด้านบน

  • แถบนำทางด้านบนใช้สำหรับทางลัด: แดชบอร์ด (/admin), การรันรายงาน (/request, หน้าต่างใหม่), หน้าแรกพอร์ทัล (/)
  • มุมขวาบนสามารถเปลี่ยนภาษา และออกจากระบบ (/admin/logout)

4.3 การจัดการผู้ใช้

ทางเข้า: /admin/user (เมนูซ้าย 「การจัดการผู้ใช้」)

คำอธิบายฟิลด์ผู้ใช้:

ฟิลด์ คำอธิบาย
ชื่อผู้ใช้ (UserName) บัญชีสำหรับเข้าสู่ระบบ ไม่สามารถแก้ไขได้หลังจากสร้าง (อ่านอย่างเดียว)
อีเมล (Email) ไม่บังคับ
บทบาท (Role) normal (ผู้ใช้งานทั่วไป) / admin (ผู้ดูแลระบบ)
สถานะ (Status) active (ปฏิบัติงานอยู่, เข้าสู่ระบบได้) / inactive (ลาออก/ระงับ, ห้ามเข้าสู่ระบบ)
รหัสผ่าน ต้องระบุเมื่อสร้าง; จัดเก็บแบบเข้ารหัส ไม่แสดงผลบนหน้าจอ

การดำเนินการ:

  • สร้างใหม่: คลิกปุ่ม 「สร้างใหม่」 $\rightarrow$ กรอกชื่อผู้ใช้/อีเมล/บทบาท/สถานะ/รหัสผ่าน/ยืนยันรหัสผ่าน $\rightarrow$ ส่งข้อมูล
  • แก้ไข: คลิก 「แก้ไข」 ในแถว $\rightarrow$ แก้ไขอีเมล บทบาท และสถานะได้; หากเว้นช่องรหัสผ่านว่างไว้ หมายถึงไม่มีการแก้ไขรหัสผ่าน
  • ลบ: คลิก 「ลบ」 ในแถว ข้อควรระวัง:
    • บัญชี root ห้ามลบ
    • ผู้ใช้ที่มีรายงานผูกอยู่ห้ามลบ (ต้องลบหรือโอนย้ายรายงานก่อน)

ประเด็นสำคัญในการจัดการ:

  • ทางเข้าสู่ระบบของผู้ใช้งานทั่วไปคือ /login (หน้าแรก) และของผู้ดูแลระบบคือ /admin/login ซึ่งแยกจากกัน
  • การตั้งสถานะผู้ใช้งานทั่วไปเป็น inactive เพียงพอสำหรับการระงับการเข้าสู่ระบบ โดยไม่จำเป็นต้องลบบัญชี
  • รายชื่อผู้ใช้จะซ่อน root โดยอัตโนมัติ

4.4 การจัดการความรับผิดชอบ (Responsibility)

ทางเข้า: /admin/responsibility (เมนูซ้าย 「การจัดการความรับผิดชอบ」)

คำอธิบายฟิลด์ความรับผิดชอบ:

ฟิลด์ คำอธิบาย
RespId ID ความรับผิดชอบใน Oracle EBS
RespKey Key ความรับผิดชอบใน Oracle EBS
ชื่อ (Name) ชื่อที่แสดง และเป็นชื่อกลุ่มในเมนูรายงานสำหรับผู้ใช้งานทั่วไป
ชื่อย่อ (ShortName) ไม่บังคับ

การดำเนินการ:

  • สร้างใหม่: คลิก 「สร้างใหม่」 $\rightarrow$ เลือกความรับผิดชอบของผู้ใช้จากรายการ dropdown (ข้อมูลมาจาก interface การสอบถาม Oracle EBS /api/user/responsibilities/) เมื่อเลือกแล้ว RespId / RespKey / Name จะถูกเติมโดยอัตโนมัติ หรือสามารถกรอกเองได้ $\rightarrow$ ส่งข้อมูล
  • แก้ไข / ลบ: ดำเนินการผ่านปุ่มในแถว ข้อควรระวัง: ความรับผิดชอบที่ถูกอ้างอิงโดยรายงานไม่สามารถลบได้

จุดประสงค์: รายงานต้องสังกัดความรับผิดชอบใดหนึ่ง; 「เมนูรายงาน」 ในฝั่งผู้ใช้งานทั่วไปจะแสดงผลโดยจัดกลุ่มตามความรับผิดชอบ (รายงานที่ไม่มีความรับผิดชอบจะถูกจัดอยู่ในกลุ่ม 「ไม่ได้ระบุประเภท」)

4.5 การจัดการรายงาน

ทางเข้า: /admin/report (เมนูซ้าย 「การจัดการรายงาน」)

ฟิลด์รายงาน:

ฟิลด์ คำอธิบาย
ID ลำดับที่ระบบรันให้โดยอัตโนมัติ
ความรับผิดชอบ หมวดหมู่ที่รายงานสังกัด
ชื่อ (Name) ชื่อรายงาน ผู้ใช้งานทั่วไปสามารถมองเห็นได้
คำอธิบาย ไม่บังคับ
สถานะ (Status) Draft (ฉบับร่าง) / Release (เผยแพร่แล้ว) / Discard (ยกเลิก)
เวลาที่สร้าง/อัปเดต ระบบบันทึกโดยอัตโนมัติ

วงจรชีวิตของรายงาน (สำคัญ):

Draft (ฉบับร่าง, ช่วงออกแบบ) ──▶ Release (เผยแพร่แล้ว, ผู้ใช้มองเห็น)
       │                        │
       │                        └──▶ ห้ามลบโดยตรง ต้องเปลี่ยนเป็น Draft/Discard ก่อน
       └──▶ Discard (ยกเลิก, ผู้ใช้มองไม่เห็น)
  • เฉพาะรายงานที่มีสถานะ Release เท่านั้นที่จะปรากฏในเมนูรายงานของผู้ใช้งานทั่วไป
  • รายงานที่เผยแพร่แล้ว (Release) ห้ามลบ ต้องเปลี่ยนสถานะในรายการเป็น Draft หรือ Discard ก่อนจึงจะลบได้
  • คอลัมน์ 「ชื่อ」 「คำอธิบาย」 「สถานะ」 ในรายการ รองรับการ ดับเบิลคลิกที่เซลล์เพื่อแก้ไขโดยตรง (บันทึกอัตโนมัติ)

การดำเนินการ:

ปุ่ม คำอธิบาย
สร้างใหม่ เปิดฟอร์ม: เลือกความรับผิดชอบ, กรอกชื่อ/คำอธิบาย/สถานะ $\rightarrow$ ส่งข้อมูล
โค้ด (สีม่วง) เปิด เครื่องมือออกแบบรายงาน (ดูรายละเอียดในบทที่ 5 ซึ่งเป็นฟังก์ชันหลักของระบบ)
แก้ไข (สีน้ำเงิน) เปิดฟอร์มข้อมูลพื้นฐานเพื่อแก้ไข
ลบ (สีแดง) ลบรายงาน (สถานะ Release ห้ามลบ)

4.6 การจัดการคำขอ (มุมมองผู้ดูแลระบบ)

ทางเข้า: /admin/request (เมนูซ้าย 「การจัดการคำขอ」)

ผู้ดูแลระบบสามารถดูคำขอรายงานของ ผู้ใช้ทุกคน (ผู้ใช้ทั่วไปดูได้เฉพาะของตนเอง) โดยรองรับ:

  • ดูตามชื่อรายงาน/สถานะ/ขั้นตอน;
  • ดูพารามิเตอร์, ผู้ส่ง, IP Address, เวลาที่สร้าง/เสร็จสิ้น;
  • เมนู dropdown 「ส่งออก」 สามารถดาวน์โหลดผลลัพธ์ Excel / HTML / JSON / TEXT ของคำขอนั้นได้โดยตรง;
  • ลบทีละรายการ หรือเลือกหลายรายการแล้ว 「ลบแบบกลุ่ม」

ความหมายของสถานะคำขอ ดูได้ใน บทที่ 7

4.7 การจัดการไลเซนส์ (License)

ทางเข้า: /admin/license (เมนูซ้าย 「การจัดการไลเซนส์」)

4.7.1 ไฟล์ไลเซนส์คืออะไร

ไฟล์ไลเซนส์คือ conf/license.dat เป็นข้อความสั้นๆ ที่ออกโดยผู้ให้บริการ ซึ่งประกอบด้วยข้อมูลดังนี้:

ฟิลด์ คำอธิบาย
reg_id ID การลงทะเบียน (ตัวระบุลูกค้าหนึ่งเดียว)
company ชื่อบริษัทที่ลงทะเบียน
expire วันหมดอายุ (รูปแบบ YYYY-MM-DD เช่น 2026-12-31)

ระบบจะตรวจสอบความถูกต้องของไฟล์ไลเซนส์โดยอัตโนมัติเมื่อเริ่มโปรแกรมและเมื่อนำเข้า หากมีการแก้ไขข้อมูล (เช่น แก้ไขข้อมูลลงทะเบียนหรือวันหมดอายุ) จะทำให้ไลเซนส์เป็นโมฆะ

4.7.2 ขั้นตอนการซื้อ

  1. ติดต่อผู้ให้บริการ/ผู้พัฒนา SQLVantage โดยให้ข้อมูลดังนี้:
    • ชื่อหน่วยงาน/บริษัท (company);
    • ID การลงทะเบียนของเซิร์ฟเวอร์ที่ต้องการไลเซนส์ (reg_id, ซึ่งผู้ให้บริการเป็นผู้กำหนด);
    • ระยะเวลาไลเซนส์ที่ต้องการ
  2. ผู้ให้บริการใช้เครื่องมือสร้างไลเซนส์เพื่อสร้างไฟล์ไลเซนส์ (ข้อความ) และส่งมอบให้ลูกค้า
  3. เมื่อลูกค้าได้รับไฟล์แล้ว ให้ดำเนินการนำเข้าตามข้อ 4.7.3

4.7.3 การนำเข้าไลเซนส์

  1. ผู้ดูแลระบบเข้าสู่ระบบ $\rightarrow$ การจัดการไลเซนส์ (/admin/license)
  2. หน้าจอจะแสดงสถานะไลเซนส์ปัจจุบัน (Reg ID / บริษัท / วันหมดอายุ; หากไม่ถูกต้องหรือไม่มีจะแสดงคำเตือนสีแดง)
  3. คลิก 「เลือกไฟล์」 เพื่อเลือกไฟล์ไลเซนส์ที่ได้รับ (ตั้งชื่อไฟล์อย่างไรก็ได้ เช่น license.dat) $\rightarrow$ คลิก 「นำเข้า」
  4. หลังนำเข้าสำเร็จ ระบบจะตรวจสอบและรีเฟรชหน้าจอโดยอัตโนมัติ เพื่อแสดงข้อมูลไลเซนส์ที่ถูกต้อง

หรือสามารถนำไปวางด้วยตัวเอง: บันทึกเนื้อหาไฟล์ไลเซนส์เป็น conf/license.dat แล้วรีสตาร์ทโปรแกรม

4.7.4 ข้อจำกัดเมื่อไม่มีไลเซนส์ / ไลเซนส์หมดอายุ

ข้อจำกัด คำอธิบาย
จำนวนรายงาน เมื่อไม่มีไลเซนส์ (หรือหมดอายุ) สามารถมีรายงานได้สูงสุด 3 รายงาน หากเกินกว่านี้ การสร้างรายงานจะถูกปฏิเสธ (แจ้งว่า 「ไลเซนส์ถึงขีดจำกัด」)
การส่งคำขอ เมื่อไม่มีไลเซนส์และมีรายงาน $\ge 3$ การส่งคำขอของผู้ใช้งานทั่วไปจะถูกปฏิเสธ
การหมดอายุ หลังหมดอายุ ไม่ส่งผลต่อการทำงานของผู้ที่ล็อกอินอยู่ แต่การสร้างรายงาน/ส่งคำขอจะถูกจำกัด

4.8 การตั้งค่าระบบ

ทางเข้า: /admin/setting (เมนูซ้าย 「การตั้งค่าระบบ」) เพื่อแก้ไข conf/app.conf แบบ Visual:

  • ตั้งค่าแอปพลิเคชัน: ที่อยู่สำหรับ listen, พอร์ต, โหมดการทำงาน, ภาษาเริ่มต้น, เวลาทำงานสูงสุด;
  • ตั้งค่าเซสชัน: เวลาหมดอายุของ Session (วินาที);
  • ตั้งค่าฐานข้อมูล Oracle: เซิร์ฟเวอร์, พอร์ต, ชื่อบริการ, ชื่อผู้ใช้, รหัสผ่าน (มีปุ่มสลับแสดงข้อความปกติ/ข้อความเข้ารหัส)

หลังบันทึก บางพารามิเตอร์จะมีผลทันที พารามิเตอร์เช่น พอร์ต ต้องรีสตาร์ทโปรแกรม

4.9 เกี่ยวกับ

ทางเข้า: /admin/aboutus เพื่อดูเวอร์ชันของระบบ ข้อมูลการเผยแพร่ และอื่นๆ


5. คำแนะนำการออกแบบรายงาน (บทหลัก)

นี่คือคุณลักษณะสำคัญที่สุดของ SQLVantage บันทึก รายงานประกอบด้วย 3 ส่วน:

  • SQL: กำหนดข้อมูลที่จะดึงข้อมูล (SQL ソース + การกำหนดค่ามetadata ของคอลัมน์)
  • FORM: กำหนดเงื่อนไขที่ผู้ใช้กรอก (ฟอร์มพารามิเตอร์)
  • HTML: กำหนดการแสดงผลลัพธ์ (ตาราง/กราฟ/Layout KPI card)

แต่ละส่วนมี 2 ชิ้นของข้อมูล — "Code" และ "Format JSON" — ซึ่งจะถูกบันทึกในที่สุดลงในบันทึกของรายงาน

5.1 สถานที่ทำงานเพื่อการออกแบบ

5.1.1 เข้าถึง Designer

  1. เข้าสู่ระบบในฐานะผู้ดูแลระบบ → การจัดการรายงาน (/admin/report)
  2. ค้นหารายงานเป้าหมายและคลิกปุ่ม "Code" (สีลิลา)
  3. เปิด Designer ขนาดใหญ่ (ประมาณ 98% ของหน้าจอ) โดยแบ่งอินเทอร์เฟสเป็นแผนกซ้ายและขวา:
┌────────────────────────────────────────────────────────┐
│ [下拉:SQL设计 | FORM设计 | HTML设计]   [保存全部]        │
├───────────────────────────────┬────────────────────────┤
│ ซ้าย: โค้ดแก้ไข                │ ขวา: แผ่นแสดงผลแบบไดนามิก │
│ (โค้ด SQL / โค้ด FORM /           │ (เปลี่ยนตามโหมดซ้าย)      │
│  โค้ด HTML) ใช้ editor ร่วมกัน         │   · SQL: ตารางการกำหนดค่าคอลัมน์ │
│                               │   · FORM: ตารางการกำหนดค่าพารามิเตอร์ │
│                               │   · HTML: ตารางการกำหนดค่าบล็อก │
└───────────────────────────────┴────────────────────────┘

5.1.2 สามโหมด

เมนูดรอปดาวน์บนเปลี่ยนโหมดการออกแบบ; โซนซ้ายและขวาจะซิงค์กัน:

โหมด เนื้อหาโซนซ้าย แผ่นขวา
SQL Design รายงาน SQL โค้ด (Syntax Oracle) ตารางการกำหนดค่ามetadata ของคอลัมน์ (ส่งผลต่อ Excel-Export/หัวคอลัมน์หน้าเพจ)
FORM Design โค้ด HTML ของฟอร์มพารามิเตอร์ ตารางการกำหนดค่าพารามิเตอร์ + ส่วมแสดงผลแบบเรียลไลฟ์ + บทคัดลอกโค้ด FORM
HTML Design โค้ด HTML แสดงผลผลลัพธ์ (เฟรมงานตัวอย่าง) ตารางการกำหนดค่าบล็อกการออกแบบ + ส่วนแสดงผลแบบเรียลไลฟ์ + บทคัดลอกโค้ด HTML

5.1.3 บันทึก

  • ขณะออกแบบ: การเปลี่ยนแปลงในแผ่นขวาจะถูกบันทึกอัตโนมัติลงในฟิลด์ที่ซ่อนไว้ (sql_code/sql_format/form_code/form_format/html_code/html_format).
  • การบันทึกแบบเป็นทางการ: คลิกปุ่ม "บันทึกทั้งหมด" ที่มุมซ้ายบน เพื่อส่งข้อมูล 6 ชิ้นไปที่ /admin/report/code/ และบันทึกลงในฐานข้อมูล

จำเป็นต้องระวัง: หลังจากแก้ไข SQL / FORM / HTML ต้องคลิก "บันทึกทั้งหมด" เสมอ มิ autrement การเปลี่ยนแปลงจะสูญหายเมื่อปิดหน้าต่าง.

5.2 โมดุล SQL (การออกแบบแหล่งข้อมูลของรายงาน)

5.2.1 เขียนโค้ด SQL

  • ใช้ Syntax Oracle; เขียนคำสั่ง SELECT โดยตรง (FROM/JOIN/WHERE/GROUP BY เป็นต้น อาจรวมอยู่ได้)
  • เงื่อนไขการค้นหาใช้ ตัวชี้วัดพารามิเตอร์ที่มีชื่อ :ชื่อพารามิเตอร์ และชื่อพารามิเตอร์ต้องสอดคล้องกับ field ที่กำหนดในโมดุล FORM ตัวอย่าง หากใน FORM กำหนดพารามิเตอร์ P_OU_ID เขียนดังนี้ใน SQL:
SELECT company_name, ou_id, amount
  FROM fnd_ou_tl
 WHERE ou_id = :P_OU_ID
  • ชื่อคอลัมน์ทุกตัวที่เลือกใน SQL คือตัวระบุฟิลด์ของการ Export ไป Excel และตาราง HTML หน้าเพจ (แนะนำให้ใช้ตัวพิมพ์ใหญ่สม่ำเสมอเช่น COMPANY_NAME)

5.2.2 ตารางกำหนดค่ามetadata ของคอลัมน์ SQL (Key: Excel-Export)

"ตารางการกำหนดค่ามetadata ของคอลัมน์ SQL" ขวา มี 1 รายการสำหรับแต่ละคอลัมน์ที่ SQL ออกผล:

คอลัมน์ คำอธิบาย ตัวอย่าง
field ชื่อคอลัมน์ที่ SQL ออกผล (แปลงเป็นพิมพ์ใหญ่โดยอัตโนมัติเมื่อกรอก) AMOUNT
title หัวข้อแสดงผล — หัวข้อ Excel-Export และหัวคอลัมน์ของตารางหน้าเพจ Amount
type text / number / percent / date / month / time / datetime number
precision จำนวนทศนิยมสำหรับค่าที่เป็นตัวเลข (ค่าเริ่มต้น 2) 2
format รูปแบบตัวเลข/วันที่กำหนดเองสำหรับ Excel #,##0.00
align left / center / right right

Operation: คลิก "เพิ่มแถว" เพิ่มคอลัมน์ → คลิกสองครั้งบนเซลล์เพื่อเติม → จะสร้าง JSON snapshot อัตโนมัติ (พื้นที่แสดงผลโค้ดสีดำทางขวา) และเขียนกลับไปที่ sql_format แบบเรียลไทม์

5.2.3 Corelation ระหว่างการกำหนดค่าคอลัมน์ SQL และ Excel-Export

ระบบสร้างไฟล์ Excel (xlsx) ในเบื้องหลังตามกฎการ Corelation ดังนี้:

การกำหนดค่าคอลัมน์ พฤติกรรมการออกผลของ Excel
field ตรงกับชื่อคอลัมน์ของผลลัพธ์ของการค้นหา และกำหนดว่าการกำหนดค่ารายการนี้ใช้กับคอลัมน์ใด
title เขียนลงในเซลล์หัวแถวที่ 1 คือ หัวข้อของ Excel-Header
type = text ค่าที่เขียนลงในเซลล์เป็นข้อความ
type = number ค่าที่เขียนเป็นตัวเลข, ทศนิยม = precision; หากมี format ตั้งค่า สามารถออกผลด้วยรูปแบบตัวเลขที่กำหนดเอง, เช่น #,##0.00
type = percent ค่าที่ออกผลในรูปแบบเปอร์เซ็นต์; format สามารถ override ได้, เช่น 0.00%
type = date ค่าที่ออกผลเป็นวันที่; format สามารถใช้เป็นรูปแบบวันที่, เช่น yyyy-mm-dd
align การจัดเรียงแนวนอนของเซลล์: left / center / right
precision ความแม่นยำของตัวเลข (ค่าเริ่มต้น 2)

ในคำอื่นๆ: ตารางการกำหนดค่าคอลัมน์ SQL คือการกำหนดค่าที่ครบถ้วนของ "หัวคอลัมน์ + ประเภทของคอลัมน์ + รูปแบบตัวเลข + การจัดเรียง" ของ Excel-Export. แม้โดยไม่มีการกำหนดค่าใดๆ ก็ตาม Excel ยังสามารถ export ได้ (ประเภทข้อความเริ่มต้น, จัดเรียงซ้าย, หัวคอลัมน์ใช้ชื่อคอลัมน์เริ่มต้น) แต่มากจะ export ออกมาของ Excel ดียิ่งขึ้นหลังจากการกำหนดค่า

5.2.4 ตัวอย่างการออกแบบ SQL ที่ครบถ้วน

สมมติว่าเราต้องการสร้าง "รายงานค่าใช้จ่ายแยกประเภท":

  1. โค้ด SQL (Editor):
SELECT DEPT_NAME, MONTH, TOTAL_AMOUNT, RATE
  FROM DEPT_COST_V
 WHERE MONTH = :P_MONTH
 ORDER BY DEPT_NAME
  1. การกำหนดค่ามetadata ของคอลัมน์:
field title type precision format align
DEPT_NAME Department Name text left
MONTH Month date yyyy-mm center
TOTAL_AMOUNT Total Amount number 2 #,##0.00 right
RATE Cost Ratio percent 2 0.00% right
  1. ผลลัพธ์ของการ export ไป Excel: หัวข้อคือ "ชื่อแผนก / เดือน / ยอดรวม / อัตราค่าใช้จ่าย"; ยอดใช้จ่ายอยู่ด้านขวาด้วยทศนิยม 2 ตำแหน่งและเครื่องหมายจุลภาค, และอัตราแสดงเป็นเปอร์เซ็นต์

5.3 โมดุล FORM (การออกแบบฟอร์มพารามิเตอร์สำหรับค้นหา)

5.3.1 ตารางกำหนดค่าพารามิเตอร์

"ตารางการกำหนดค่าพารามิเตอร์" ขวา กำหนด 1 รายการสำหรับแต่ละพารามิเตอร์ของการค้นหา:

คอลัมน์ คำอธิบาย ตัวอย่าง
field ระบุพารามิเตอร์; ต้องตรงกับ :ชื่อพารามิเตอร์ ใน SQL P_OU_ID
label ข้อความแสดงบนฟอร์ม Business Entity
type ดูตารางประเภทด้านล่าง select
value เลือกได้; ค่าเริ่มต้น 101
verify กฎการตรวจสอบ (เช่น required) required
static_options ตัวเลือกแบบสถิติสำหรับ Dropdown/Radio; รูปแบบ key:value,key:value 101:Shanghai,102:Beijing
api_url ที่อยู่ API สำหรับตัวเลือกแบบไดนามิก; สามารถมี {ชื่อตัวแปร} มาร์กเกอร์ได้ /api/query?ou={P_OU_ID}
query_sql คำสั่ง SQL สำหรับตัวเลือกแบบไดนามิก; สามารถมี {ชื่อตัวแปร} มาร์คเกอร์ได้; คืนค่า 2 คอลัมน์ (value/ text) SELECT id, name FROM tab WHERE ou = {P_OU_ID}

ตารางประเภทส่วนประกอบ:

ประเภท คำอธิบาย
text ช่องข้อความแบบบรรทัดเดียว
number ช่องกรอกตัวเลข
select เมนูดรอปดาวน์ (ตัวเลือกจากตัวเลือกสถิติหรือ API/SQL ไดนามิก)
radio กลุ่มปุ่มเลือก (ตัวเลือกจากตัวเลือกสถิติ)
date ผู้เลือกวันที่ (YYYY-MM-DD)
year ผู้เลือกปี
month ผู้เลือกเดือน
time ผู้เลือกเวลา
datetime ผู้เลือกวันที่และเวลา
hidden ช่องที่ซ่อน (ไม่แสดง แต่ยังส่งพร้อมกับฟอร์ม)
temp ค่าที่ซ่อน (ไม่ส่ง)

5.3.2 การทำหน้าที่ของพารามิเตอร์ (การกรองเชื่อมโยง)

  • api_url / query_sql รองรับ {ชื่อตัวแปร} มาร์คเกอร์: เมื่อผู้ใช้เปลี่ยนพารามิเตอร์ upstream (เช่น การเลือกองค์กร) ระบบจะแทนที่มาร์คเกอร์อัตโนมัติด้วยค่าจริงในฟอร์มปัจจุบันและขอตัวเลือกของเมนูดรอปดาวน์แบบไดนามิกทางด้านลงstream โดยอัตโนมัติ
  • หากพารามิเตอร์ upstream ยังไม่ได้กรอก เมนูดรอปดาวน์แบบด้านลงstream จะแสดง "กรุณากรอกเงื่อนไขบนก่อน" และล้างตัวเลือกเพื่อป้องกันข้อมูลด่าง"
  • เลือกหนึ่งในสอง: เมนูดรอปดาวน์แบบสถิติ (static_options) และเมนูดรอปดาวน์แบบไดนามิก (api_url / query_sql)

ข้อกำหนดรูปแบบข้อมูลสำหรับตัวเลือกเมนูดรอปดาวน์แบบไดนามิก: แต่ละรายการที่กลับมาจาก API/SQL ต้องมี 2 ฟิลด์: val (value) และ txt (text แสดงผล)

5.3.3 การแสดงผลแบบเรียลไลฟ์และการสร้างโค้ด

  • ใต้ตารางจะมี "พื้นที่แสดงผลแบบเรียลไลฟ์": ฟอร์ม (รวมถึงตัวควบคุมวัน เวลา เมนูดรอปดาวน์แบบเชื่อมโยง ฯลฯ) จะถูกแสดงผลแบบเรียลไลฟ์ขณะที่กำหนดพารามิเตอร์
  • "บทคัดลอกโค้ดฟอร์ม" ท่องด้านล่างสร้างโค้ด HTML ฟอร์มแบบเรียลไลฟ์
  • คลิกปุ่ม "คัดลอกและใช้งาน": บทคัดลอกโค้ดแบบ draft เขียนลงใน editor (โหมด FORM) และซิงค์กับ form_code / form_format

คุณยังสามารถข้ามแผ่นขวาและเขียน HTML ฟอร์ม (syntax ของฟอร์ม) โดยตรงใน editor ซ้ายได้ (ก็ยังทำงานเมื่อบันทึก)

5.3.4 พฤติกรรมในเวลาทำงาน

หลังจากที่ผู้ใช้สุดท้ายส่งฟอร์ม ระบบจะผูกข้อมูลฟอร์มเป็นพารามิเตอร์ที่มีชื่อกับ SQL และทำการรัน; พารามิเตอร์ยังถูกบันทึกในการร้องเรียน ดังนั้น หน้าผลลัพธ์ / ไฟล์ export สามารถสะท้อนเงื่อนไขของการค้นหาได้

5.4 โมดุล HTML (การออกแบบการแสดงผลผลลัพธ์)

5.4.1 ตารางกำหนดค่าบล็อกการแสดงผล HTML

แต่ละแถวของ "ตารางการกำหนดค่าบล็อกการแสดงผล HTML" ขวา กำหนด 1 บล็อกการแสดงผล:

คอลัมน์ คำอธิบาย ตัวอย่าง
block_id ระบุ ID ที่ไม่ซ้ำของบล็อก (ใช้เป็นคำหน้าของ DOM id ที่สร้างขึ้น) chart_zone
title หัวข้อของบล็อก Cost Trend
grid_md ความกว้างของกริด 1~12 (12 ครอบคลุมทั้งแถว) 8
component table / chart / card / custom (บล็อกผู้ใช้กำหนดเอง) chart
subtotal Y (เปิดใช้งานแถวรวมของตาราง) / N N
chart_type line (กราฟเส้น) / bar (กราฟแท่ง) line
x_field ฟิลด์แกน X (จากคอลัมน์ออกของ SQL) MONTH
y_fields ฟิลด์แกน Y; แยกหลายอับด้วยคอมม่าภาษาอังกฤษ TOTAL_AMOUNT

คำอธิบายส่วนประกอบ:

ส่วนประกอบ ผลการแสดงผล เทคโนโลยีในเวลาทำงาน
table ตารางข้อมูลด้วยการแบ่งหน้าและการจัดเรียง; หัวคอลัมน์มาจาก metadata ของคอลัมน์ title; กับ subtotal=Y, คอลัมน์ตัวเลขแสดงแถวรวม table
chart กราฟ (line/bar); แกน X/Y ฟิลด์มาจากการกำหนดค่า chart
card KPI card แสดงค่าสำคัญ การ render แบบกำหนดเอง
custom บล็อกผู้ใช้กำหนดเอง HTML

5.4.2 การแสดงผลแบบเรียลไลฟ์และการสร้างโค้ด

  • "พื้นที่แสดงผลแบบเรียลไลฟ์" แสดงผลสเก็ตช์ความฟิดลายสูงของแต่ละบล็อก (หัวข้อ + ประเภทของบล็อก + ความกว้าง) แบบเรียลไลฟ์
  • "บทคัดลอก HTML" สร้างโค้ด HTML ครบถ้วนแบบเรียลไลฟ์ (รวมถึง attribute ในเวลาทำงาน เช่น data-component, data-subtotal, data-charttype, data-xfield, data-yfields)
  • คลิก "คัดลอกและใช้งาน": เขียนลงใน editor และซิงค์ html_code / html_format

คุณยังสามารถเขียนเฟรมงาน HTML โดยตรงใน editor ซ้าย (สนับสนุนสัญลักษณ์ Template ที่พบบ่อย) สำหรับข้อมูลที่สามารถใช้ได้ในการ render โปรดดู 5.4.3

5.4.3 กลไกการ Render ของหน้าผลลัพธ์

เมื่อผู้ใช้สุดท้ายดาวน์โหลด/ดูผลลัพธ์ HTML (/request/output?ext=html) ระบบจะ render โค้ด HTML ของรายงานพร้อมกับ JSON ของผลลัพธ์การค้นหา, metadata ของคอลัมน์ เป็นต้น:

ตัวแปรของ plantilla คำอธิบาย
data ผลลัพธ์ JSON ของการค้นหา (inject ที่เวลาทำงาน; ร่วมกับ {{.data}} output เป็นข้อมูล JS)
params พารามิเตอร์ของการร้องเรียนนี้ (คู่คีย์-ค่า)
colsConfig metadata SQL ของคอลัมน์ (ใช้สำหรับหัวคอลัมน์ของตาราง / ชื่อของ series ของกราฟ)
reportName / reportDate / status ชื่อรายงาน, ชั่วโมงของการสร้าง, สถานะ

หน้าจะแปลง Container ที่มี data-component="table" อัตโนมัติเป็น ตารางข้อมูล, chart เป็น กราฟ และ card เป็น KPI cards

5.5 กระบวนการเผยแพร่รายงาน (Flow ที่แนะนำสำหรับผู้ดูแลระบบ)

1. การจัดการรายงาน → สร้างรายงานใหม่ (เลือกความรับผิดชอบ, ใส่ชื่อ, เลือกสถานะ Draft)
2. คลิก "Code" เพื่อเข้า Designer
3. SQL Design: เขียน SQL + กำหนด metadata ของคอลัมน์ (ฐานสำหรับ Excel-Export)
4. FORM Design: กำหนดพารามิเตอร์ของการค้นหา (สอดคล้องกับพารามิเตอร์ SQL ตัวต่อตัว)
5. HTML Design: กำหนด Layout การแสดงผล (ตาราง/กราฟ/KPI Card)
6. คลิก "บันทึกทั้งหมด" → ปิด Designer
7. กลับไปที่รายการรายงาน, เปลี่ยนสถานะเป็น Release (เผยแพร่)
8. ผู้ใช้ทั่วไป login และสามารถเห็นรายงานนี้ในเมนูรายงานและรันได้

5.6 ข้อสังเกตการออกแบบ

  • ชื่อพารามิเตอร์ใน SQL และ FORM ต้องตรงกันพอดี (SQL ใช้ :ชื่อพารามิเตอร์, FORM ใช้ field).
  • ชื่อคอลัมน์ SQL ควรใส่ตัวพิมพ์ใหญ่; ตารางการกำหนดค่ามetadata ของคอลัมน์จะแปลง field อัตโนมัติเป็นตัวพิมพ์ใหญ่.
  • SQL ของรายงานต้องสามารถถูก precompile โดย Oracle (db.Prepare); ข้อผิดพลาดของ sentence จะนำไปสู่ความล้มเหลวของการร้องเรียน (สถานะ Error).
  • โดยไม่มีใบอนุญาตที่ถูกต้อง จำนวนรายงานจำกัดไว้ที่ 3 เริ่มการออกแบบหลังจากยืนยันสถานะใบอนุญาต.
  • หลังจากบันทึก สามารถร้องเรียน 1 ครั้งใน "จัดการคำขอ" หรือบนฝั่งผู้ใช้สุดท้าย เพื่อตรวจสอบว่าประวัติศาสตร์และการแสดงผลถูกต้อง

6. คู่มือสำหรับผู้ใช้งานทั่วไป

6.1 เข้าสู่ระบบ

6.2 หน้าแรกของพอร์ทัล

6.3 สร้างคำขอรายงานใหม่

6.4 รายการคำขอของฉัน

6.5 เปลี่ยนรหัสผ่าน

6.6 ข้อเสนอแนะเพิ่มเติม


7. การประมวลผลคำขอและผลลัพธ์

7.1 การทำงานแบบขนาน (asynchronous)

7.2 รูปแบบของผลลัพธ์

7.3 การควบคุมสิทธิ์

7.4 คำถามที่พบบ่อย


8. ภาคผนวก: การจัดเก็บข้อมูล การสำรองข้อมูล และการย้ายระบบ

9.1 สถานที่จัดเก็บข้อมูล

9.2 การแนะนำการสำรองข้อมูล

9.3 การย้ายไปยัง Server ใหม่

9.4 เอกสารหลายภาษา (Multilingual Document) การย้ายถอนและอ่านออนไลน์