Weekly Executive Dashboard

ระบบรายงานผลการดำเนินงานรายสัปดาห์สำหรับผู้บริหาร

รอบสัปดาห์รายงานสำหรับผู้บริหาร

สัปดาห์ปัจจุบัน: ...

รายงานทั้งหมด

0

สำเร็จแล้ว

0

กำลังดำเนินการ

0

ติดปัญหา / ล่าช้า

0
รายการรายงานประจำสัปดาห์

เพิ่มข้อมูลรายงานใหม่

ตารางจำลองฐานข้อมูลรายงาน

ข้อมูลเหล่านี้จะถูกบันทึกไว้ใน Browser (LocalStorage) ของคุณ และอัปเดตไปยังหน้าแดชบอร์ดโดยอัตโนมัติ

หน่วยงาน ความคืบหน้า สถานะ วันที่อัปเดต จัดการ

คู่มือการเชื่อมโยงระบบจริง (System Architecture Guide)

พิมพ์เขียวฉบับนี้ช่วยให้ฝ่ายไอทีหรือผู้ดูแลระบบสามารถแปลงรายงานสั้นและรูปภาพที่ส่งในกลุ่ม LINE Group เข้าสู่ Google Sheets และแสดงผลบน Web Dashboard ได้อย่างอัตโนมัติ โดยมีขั้นตอนดังต่อไปนี้:

ประโยชน์: ช่วยลดขั้นตอนการทำงานของแอดมินจากการคัดลอกข้อความและดาวน์โหลดรูปภาพมาสรุปด้วยมือทีละรายการ

ขั้นตอนที่ 1: การเตรียมตาราง Google Sheets

1

สร้างไฟล์ Google Sheets

สร้าง Google Sheets ขึ้นมา 1 ไฟล์ ตั้งชื่อว่า "Weekly_Report_DB" และกำหนดหัวตารางในแถวแรก (Row 1) จากซ้ายไปขวา ดังนี้:

  • คอลัมน์ A: วันที่-เวลา (Timestamp)
  • คอลัมน์ B: ชื่อหน่วยงาน (Department)
  • คอลัมน์ C: รายละเอียดงานสั้นๆ (Task_Detail)
  • คอลัมน์ D: ลิงก์รูปภาพผลงาน (Image_URL)
  • คอลัมน์ E: สถานะงาน (Status) — [สำเร็จ / กำลังทำ / ติดปัญหา]

ขั้นตอนที่ 2: โค้ดสำหรับ Google Apps Script

2

ติดตั้ง Google Apps Script บน Google Sheets

ไปที่เมนู Extensions (ส่วนขยาย) > Apps Script บน Google Sheets ของคุณ ลบโค้ดเดิมที่มีอยู่ออกทั้งหมด แล้วคัดลอกโค้ดด้านล่างนี้ไปวางแทนที่:

Code.gs (Google Apps Script)
function doGet() {
  return HtmlService.createTemplateFromFile('Index')
    .evaluate()
    .setTitle('Weekly Executive Dashboard')
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

function getWeeklyData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var result = [];
  
  // วนลูปอ่านข้อมูลตั้งแต่แถวที่ 2 เป็นต้นไป (ข้ามหัวตาราง)
  for (var i = 1; i < data.length; i++) {
    if(!data[i][0]) continue; // ข้ามแถวที่ว่างเปล่า
    
    // แปลงฟอร์แมตวันที่ให้อ่านง่าย
    var formattedDate = "";
    try {
      formattedDate = Utilities.formatDate(new Date(data[i][0]), "GMT+7", "dd/MM/yyyy");
    } catch(e) {
      formattedDate = data[i][0].toString();
    }
    
    result.push({
      timestamp: formattedDate,
      dept: data[i][1],
      detail: data[i][2],
      imageUrl: data[i][3],
      status: data[i][4]
    });
  }
  
  return result.reverse(); // นำงานล่าสุดแสดงขึ้นก่อน
}

// ฟังก์ชัน API รับข้อมูลจาก LINE Webhook (สำหรับ Developer เพื่อจัดเก็บข้อมูลอัตโนมัติ)
function doPost(e) {
  try {
    var json = JSON.parse(e.postData.contents);
    var events = json.events;
    if (events && events.length > 0) {
      var event = events[0];
      var replyToken = event.replyToken;
      var message = event.message;
      
      // ตรวจสอบแฮชแท็ก #ส่งงาน
      if (message && message.type === 'text' && message.text.includes('#ส่งงาน')) {
        var text = message.text;
        var lines = text.split('\n');
        var dept = "ไม่ได้ระบุหน่วยงาน";
        var detail = text.replace('#ส่งงาน', '').trim();
        
        // จำแนกข้อมูลแบบง่าย (ตัวอย่าง: บรรทัดแรกเป็นชื่อหน่วยงาน บรรทัดถัดไปเป็นรายละเอียด)
        if(lines.length > 1) {
          dept = lines[0].replace('#ส่งงาน', '').trim();
          detail = lines.slice(1).join('\n').trim();
        }
        
        // ทำการบันทึกลง Google Sheet
        var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
        sheet.appendRow([new Date(), dept, detail, "", "กำลังทำ"]);
        
        // ส่งข้อความตอบกลับไปยัง LINE Group
        replyLine(replyToken, "บันทึกรายงานของ '" + dept + "' ลงฐานข้อมูลสำเร็จแล้ว! กรุณาเพิ่มรูปหลักฐานในระบบ (หากมี)");
      }
    }
  } catch(err) {
    // บันทึกข้อผิดพลาดกรณีระบบทำงานขัดข้อง
    console.error(err);
  }
}

ขั้นตอนที่ 3: วิธีเชื่อมต่อ LINE Group ให้รับข้อมูลอัตโนมัติ

3

เลือกใช้วิธีนำเข้าข้อมูลที่เหมาะสมกับทีมงานของคุณ

ทางเลือกที่ 1: วิธีประหยัดเวลาและไม่ต้องเขียนโค้ด (แนะนำสำหรับ Admin ทั่วไป)

ให้แอดมินประจำทีมเปิด LINE บนคอมพิวเตอร์ (LINE PC) คัดลอกข้อความรายงานและบันทึกรูปภาพจากที่สมาชิกส่งเข้ามาในกลุ่ม นำมาพิมพ์กรอกลงบนหน้า Google Sheets โดยตรง สัปดาห์ละครั้ง (ใช้เวลาเพียง 15-20 นาที) หน้าเว็บ Dashboard สำหรับผู้บริหารตัวนี้จะอัปเดตอัตโนมัติทันที

ทางเลือกที่ 2: ใช้ LINE Messaging API + Webhook (สำหรับ Developer)

สร้าง LINE Bot (Provider & Channel) ใน LINE Developers Console แล้วเปิดใช้งาน Webhook และนำลิงก์ Web App URL ที่ได้จากการ Deploy Apps Script ข้างต้นไปวาง เพื่อให้ระบบสามารถตรวจจับแฮชแท็ก #ส่งงาน และรูปภาพ แล้วนำมาบันทึกใน Google Sheets โดยอัตโนมัติ