|
DataForm有多個頁簽, 如何控制不同的人可以編輯不同的頁簽? (頁簽如何隱藏) |
觀看回應
|
|
可以透過DataForm的onLoad事件來控制, 並判斷沒有權限的人, 將頁簽隱藏即可, 如下JS程式: function dfMaster_onLoad(row) { var groups = $.getVariableValue('groups'); if (groups.indexOf("80")<0) { // 找不到"80"的群組角色 var tabID = 'tabMaster'; // 設定要隱藏的 Tab var index = 1; // 第幾頁要隱藏 (從0開始算) $('[href="#'+ tabID + '_'+ index +'"]').hide(); } }
|
|
|
|
ClientMove整批新增時, 欄位的對應關係(ColumnMatch), 是否可以有條件控制目的欄位的內容? |
觀看回應
|
|
可以的, 在ColumnMatch中, 可以設定SourceValue(原來的SourceField會優先, 所以要先清空), 設定SourrceValue的Type為Function, 然後設定Function對應到JS程式即可, 如下在ColumnMatch的"金額"欄位, 設定一個 getAmt()的JS: function getAmt(row) { var amt = row.金額; if (row.稅別=="未稅") { amt = row.金額*1.05; } return amt; }
|
|
|
|
TRS交易時, 是否可以控制某些條件成立在過帳, 否則就不過帳? |
觀看回應
|
|
可以的, 在EEPCloud的Transaction組件中, 每一個交易都有一個onBeforeTrans事件, 可以控制是否要持續交易或動態改變對方的交易欄位, 如下為控制是否交易的例子: exports.trs請假單_年度特休假表_onBeforeTrans = function(row, oldRow, fields) { if (row.請假類型!='特休假') return false; //不為特休假就不過帳 return true; }; 上面的情況是針對'請假類型'不能更改的情況, 如果請假類型可以更改的話, 要改成這樣: exports.trs請假單_年度特休假表_onBeforeTrans = function(row, oldRow, fields) { if (row.請假類型!='特休假' && oldRow.請假類型!='特休假') { //考慮更改時新舊值都不為特休假 return false; } else if (oldRow.請假類型=='特休假') { //如果是特休假改為其他假時 row.請假天數=0; } return true; };
|
|
|
|
如何在 DataGrid中以 Excel上傳來匯入資料,而不是一筆一筆輸入? |
觀看回應
|
|
可以在DataGrid的ToolItems中, 新增一個"導入"的Button, 設定為 'importExcel' 即可
|
|
|
|
Server端的JS程式非常不好Debug, 常常不知道錯誤在哪? 有沒有比較好的方法可以Debug? |
觀看回應
|
|
Server端在主機, 服務大眾用戶, 確實很難Debug, 可以如下的方式來debug: 1. 可以在Server端中使用 dataModule.echo()方法, 回應到SQL Profiler的"Server"訊息中, 如使用 echo('pass 1'); 等等了解JS的程式邏輯與執行到哪個階段出錯, 或echo()你自己的變數, 看看是否變數的內容有錯。 2. 另一個方法, 就是當Server端程式比較複雜, 需要調用非同步的程式時, 如果非同步程式內出錯, 會回不來, 此時最好在非同步程式中, 使用 try/catch的方式來避免回不來, 如下:
|
|
|