動手寫個Google Apps Script玩玩吧

Google Apps Script Screenshot
因為這禮拜週末老爹老媽就要前往挪威進行今年不曉得第幾次的國外燒錢到可以買車之旅了, 所以在出遠門前, 老媽仔細地交代著我要小心處理她那不容錯誤的小事業。於是我的頭銜瞬間成了代理總裁, 真是讓人不好意思。

在幫忙處理的過程中, 總覺得老媽還在使用傳統手紙記帳及進出貨資料實在是一件神奇的事, 現在都已經快到哆啦A夢出生的年代了, 我媽還可以這麼牛B的用著中國古老造紙流傳下來的技術在做著生意, 果然人能有一些小成就絕不是偶然的。

不過我真的很懶, 沒辦法像她能夠按著計算機在記錄和計算那麼多事情, 於是我開了Google的試算表(SpreadSheet)試著來當簡單的進銷存系統用用。不這樣想還好, 一想和實作後就覺得頭大, 真的簡單計算的東西用這玩意還算可以, 但是要讓我媽這種當初連手機通訊錄都不想用的天才型人類來上手, 不花個我個把個月我想是絕不能順利使用的。

可是在試驗的途中, 我碰到了個好玩的東西, 也是這篇文章的主角, Google Apps Script。這玩意真的蠻有趣的, 藉著一些簡單的Script, 你可以把對話框給用了出來, 然後讓使用者簡單輸入一些資訊來進行運算。當然, 想要做出其他有趣的東西, 還是得要看個人的創意囉。

首先, 開啟一個Google試算表, 接著點選工具->指令碼編輯器。



接著瀏覽器會開啟一個視窗編輯器, 在裡面就可以開始編輯你想要的程式碼與效果了。

以下就是我野人獻曝亂寫的一些東西, 能不能跑我就不保證了, 至於功能, 就是產生個小對話框然後有小互動而已 XD

function myFunction() {
 var app = UiApp.createApplication();
 app.setTitle("請輸入送貨單編號");
 var panel = app.createVerticalPanel();
 var textbox = app.createTextBox();
 textbox.setName("MyTextBox").setId("MyTextBox");
 var button = app.createButton("加入");
 panel.add(textbox);
 panel.add(button);
 var clickHandler = app.createServerHandler("myCalc");
 button.addClickHandler(clickHandler);
 clickHandler.addCallbackElement(panel);

 app.add(panel);
 var doc = SpreadsheetApp.getActive();
 doc.show(app);
}

function onOpen() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var menuEntries = [];
 menuEntries.push({name: "計算庫存", functionName: "myFunction"});

 ss.addMenu("計算庫存", menuEntries);
}

function onInstall() { onOpen(); }

function myCalc(e){
 var app = UiApp.createApplication();
 var textboxValue = e.parameter.myTextBox;
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var lastRow = sheet.getLastRow() + 1;
 var lastCell = sheet.getRange("A"+lastRow);
 lastCell.setValue(textboxValue);
 return app.close();
}

最後, 或許你會說可以用大家常用的Google填問卷方式來完成這個進銷存, 我是有這樣考慮過, 不過我還是覺得真要一個舒服又量身訂做的進銷存, 我還是開個資料庫跟用其他的程式語言來寫會比較舒服呢。

留言