標籤:item 拼接 表名 多個 flow 樹形結構 無法 sele 資料
一、檢視類型分類
視圖一共分五類:普通、樹形視圖、行事曆檢視、地理視圖、甘特視圖。
1.普通視圖:常規的視圖配置,可以通過一鍵產生視圖的方式直接產生
2.樹形視圖:以樹形結構顯示表單內容,欄位中的層級關係通過視圖列中映射欄位設定來定義,節點的開啟類型可以顯示為“視圖”或“連結”或“樹形視圖”。
二、視圖篩選條件
1.視圖資料來源:視圖中的資料配置介面可以配置視圖的資料來源,分別可以通過設計、代碼(DQL)、代碼(SQL)來進行視圖列條件的過濾。
2.樣本
在以下的樣本中我們假設在資料庫中存在 一張表,表名為:tlk_fm_student,包含欄位name、age。
1)DQL語句
擷取表單中欄位name和age的值,當name和age的值和tlk_fm_student中的值時,顯示查詢出對應內容的資料
var val = getItemValue("name");
var val2 = getItemValue("age");
var where = (val != null && val.trim().length() > 0 )?"and name = " + val + "":""; //拼接查詢條件
where += (val2 != null && val2.trim().length() > 0 )?"and age= " + val2 + "":"";
"$formname = ‘tlk_fm_student‘ " + where; //執行查詢
2)SQL語句
擷取查詢表單name的值,當查詢表單中name的值等於“tlk_fm_student”中“name”的值時,顯示資料表為查詢表單中“name”對應內容的資料;
注意:當資料庫中的欄位不是以“Item_”開頭的,那麼這個欄位就必須取一個別名,別名是以"item_"開頭,否則查詢處理的資料項目的值將無法擷取
var sql = "";
var val = getItemValue("name");
if(val != null && val.trim().length() > 0){
sql = "and item_name = " + ‘"+val+"‘;
}
"select * from tlk_fm_student where istmp = 0" + sql;
查詢映射表單資料,SQL實現查詢映射表單tb_mapping中name與title欄位內容
var sql = "select d.*, m.name, m.title from t_document d";
sql += "inner join tb_mapping m on d.mappingid = m.keyname";
sql;
3)多表查詢,顯示多個表中的資料
/*通過過濾中代碼(SQL)來實現多個資料表(多表查詢)的內容,存在兩表:tlk_fm_student、tlk_fm_school,兩個表通過主外部索引鍵關聯
var sql="SELECT d.*,sub.item_finished,sub.item_date from tlk_fm_student d";
sql +=" inner join tlk_fm_task_school sub on d.id=sub.parent";
sql;
4)查詢待辦資料
DQL方式:
var dql = "$formname = ‘formname‘ and $state.actor.actorid = " + getWebUser().getId() + " ‘ ";
dql;
SQL方式:
var sql="select d.* from tlk_tablename d";
sql +=" where (d.id in (select states.docid";
sql +=" from t_flowstatert states, t_actorrt actors";
sql +=" where states.id = actors.flowstatert_id";
sql +=" and actors.actorid =‘" +getWebUser().getId() +"‘))";
sql;
myApps視圖(1)