Ntaub表單開發入門系列 (一)

此係列文章經過虛構場景介紹Ntaub表格開發流程。示例假設某公司人力部門要制定招聘計劃,要求各部門按月提交招聘需求,招聘需求需經人力總監和公司總經理審批。數據庫

 

軟件能夠從http://www.ntaub.com/download下載。數組

最終會完成的表格樣式以下圖。app

 

1. 在目錄中新建名爲「招聘計劃」的子目錄,以後新建項放在此目錄中。編輯器

2. 新建名爲「招聘計劃表」的表格,在新建後系統會自動打開表格編輯器,或是在目錄中表格右鍵菜單裏選編輯打開編輯器。在表格編輯器中,可看到表格默認含有一主鍵字段、一篩選器和一數據源。工具

 

3. 選中數據源,在右側屬性界面中,爲表格指定一數據源。再將數據表改成recruit_plan,表格數據將保存到此名稱的MongoDB集合(Collection)中。性能

 

4. 選中主鍵字段,將字段標題改成申請ID。測試

 

5. 選中字段節點,使用右鍵菜單或工具欄的新建按鍵,逐個建立下列字段,此步驟暫只設置字段名稱、標題和值類型,其餘屬性保留默認。字段能夠經過右鍵菜單或工具欄按鍵刪除、複製,拖動字段可調整順序。ui

 
名稱 標題 值類型
applier_id 申請人帳號 文本
applier_name 申請人 文本
recruit_year 招聘年份 數字
recruit_month 招聘月份 數字
reason 申請理由 文本
detail 明細 數組
total_head_count 招聘人數 數字
submit_time 提交時間 日期
submit_status 提交狀態 文本
create_time 建立時間 日期

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6. 建立字段後可點擊工具欄的保存按鍵保存,點擊測試按鍵可在標籤欄中打開表格測試環境,能夠嘗試新建、修改、刪除記錄。在開發過程當中可隨時打開測試環境查看效果,測試環境使用測試數據庫,不會對最終發佈版本的生產數據庫形成影響。spa

 

7. 回到表格編輯界面,將數據源的建立時間設爲字段create_time,建立人ID設爲字段applier_id,建立人姓名設爲字段applier_name。3d

 

系統在保存新記錄時會自動對這3個字段賦值,比使用字段的計算腳本更方便。

 

修改字段create_time屬性,勾選含時間選項框,將格式改成yyyy-MM-dd HH:mm:ss,建立時間字段將顯示時分秒信息。並將默認寬度設爲150。

 

另外,因只需給用戶看到申請人姓名,須要隱藏申請人帳號,將applier_id的生成列屬性設爲否。

 

8. 假設要求招聘年月輸入改成下拉列表模式,且限制用戶只能選擇將來的6個月。先把recruit_year字段控件改成列表,在列表值中添加201八、201九、2020三個年份。

 

2018年的列表值條件中輸入下面腳本以限制顯示6個月內的年份。相似輸入其餘年份條件,替換腳本中黃色標示值便可。

var now = new Date();

var ym = now.getFullYear() * 100 + now.getMonth(); // js月份從0至11

return ym > 201705 && ym < 201811;

 

 

 

 

再把recruit_month字段控件設爲列表,加入12個月列表值。

 

一月份列表值條件中輸入下面腳本以限制顯示6個月內的月份。相似輸入其餘月份條件,替換腳本中黃色標示值便可。

if($row().getField("recruit_year").isNull()) {

    return false;

} else {

    var now = new Date();

    var y = now.getFullYear();

    var m = now.getMonth(); // js月份從0至11

    var tmp = m - 5;

    var lM = (tmp == 6 ? (y + 1) * 100 : y * 100 + m + 1);

    var hM = (tmp > 0 ? (y + 1) * 100 + tmp - 1 : y * 100 + m + 6);

    var am = $row().getField("recruit_year").getValue() * 100 + 0; // 1月: 0; 2月: 1; ...

    return am >= lM && am <= hM;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

爲了在新建記錄時自動填入默認值,在recruit_year字段初始值屬性中輸入下面腳本。

var now = new Date();

var m = now.getMonth(); // js月份從0至11

if(m == 11) {

    return now.getFullYear() + 1;

} else {

    return now.getFullYear();

}

 

 

 

 

 

 

 

 

在recruit_month字段初始值屬性中加入下面腳本。

var now = new Date();

var m = now.getMonth(); // js月份從0至11

if(m == 11) {

    return 1;

} else {

    return m + 2;

}

 

 

 

 

 

 

 

 

9. 將reason字段的控件類型改成多行文本框。所以字段輸入長文本,出於性能考慮,禁止此字段的排序和篩選操做,將排序和篩選屬性設爲否。

 

To be continue...

相關文章
相關標籤/搜索