4.7 開(kāi)發(fā)技巧:模板開(kāi)發(fā)

MisShop中建立頁(yè)面所使用的模板,可以根據(jù)需要自己開(kāi)發(fā)和修改樱衷。模板開(kāi)發(fā)登淘,跟頁(yè)面類似箫老,主要不同在于參數(shù)不一樣黔州,計(jì)算結(jié)果是設(shè)計(jì)器里的頁(yè)面阔籽,而頁(yè)面的計(jì)算結(jié)果才是網(wǎng)頁(yè)。

創(chuàng)建模板時(shí)笆制,單擊導(dǎo)航區(qū)按鈕模板,進(jìn)入模板導(dǎo)航樹(shù)证薇,工作區(qū)和頁(yè)面的工作區(qū)一樣,都是在單元格中布置元素浑度。

模板設(shè)計(jì)時(shí)的添加鸦概、刪除、使用控件窗市、布局等編輯功能與頁(yè)面開(kāi)發(fā)一致,相當(dāng)于做一個(gè)通用的頁(yè)面咨察。

模板頁(yè)面數(shù)據(jù)中,有@tl_table參數(shù)脓诡,表示這個(gè)模板生成頁(yè)面時(shí)素跺,頁(yè)面對(duì)應(yīng)數(shù)據(jù)表的表名誉券。在設(shè)計(jì)頁(yè)面的添加頁(yè)面時(shí),選擇了頁(yè)面對(duì)應(yīng)數(shù)據(jù)表踊跟,就自動(dòng)把這個(gè)參數(shù)傳到了頁(yè)面。

參數(shù)中箕憾,以tl_ 開(kāi)頭的參數(shù)拳昌,只在模板里使用袭异,生成頁(yè)面的時(shí)候炬藤,這個(gè)變量就沒(méi)有了。所以上真,在模板里 tl_ 開(kāi)頭的參數(shù),都要用公式將它變成值睡互,才能在設(shè)計(jì)器頁(yè)面里顯示陵像,或者需要在添加頁(yè)面的時(shí)候就珠,手動(dòng)設(shè)置醒颖,然后傳輸給模板,模板再以此生成頁(yè)面图贸。其他名稱的變量,在生成頁(yè)面時(shí)都能夠保留偿洁。

我們來(lái)看看平臺(tái)默認(rèn)提供的列表模板沟优,是怎么樣配置的涕滋。

  1. 模板數(shù)據(jù)配置挠阁。在模板的數(shù)據(jù)變量配置中溯饵,能看到tl_queryds變量和 tl_selectds變量锨用。
    其中,tl_queryds的初始化函數(shù)是:DataSet.parse(tl.getTableInfo(@tl_table, Constant.template.query_cols))增拥,表示在對(duì)應(yīng)的表中,根據(jù)查詢字段分組掌栅,找到的字段名、字段類型等表結(jié)構(gòu)信息猾封,tl_queryds.value就表示字段名。
    tl_selectds的初始化函數(shù)是:DataSet.parse(tl.getTableInfo(@tl_table, Constant.template.list_cols).removeValue(tl.getTableDispColumn(@tl_table)).subList(3))齐莲,表示根據(jù)列表字段分組查找到的表結(jié)構(gòu)枚钓,包含字段名等信息铅搓。
    其他變量如ds搀捷、checked多望、me等數(shù)據(jù)變量,跟頁(yè)面中的一樣怀偷。ds的泛型是template,在生成頁(yè)面時(shí)會(huì)改變成頁(yè)面對(duì)應(yīng)的數(shù)據(jù)表饭于。

  2. 功能區(qū)
    靠頁(yè)面頂端主要是功能按鈕,A1格的 =" " +@tl_table+"列表"掰吕,在頁(yè)面中會(huì)變成如= 用戶列表颅痊,樣式中設(shè)置為粗體殖熟,在最終效果中會(huì)顯示這頁(yè)的標(biāo)題斑响。B1格的增加钳榨、C1格的批量刪除纽门、D1格的導(dǎo)入、K1格的導(dǎo)出赏陵、L1格的折疊與展開(kāi),都是對(duì)應(yīng)的控件候醒,配置與頁(yè)面中類似。

  3. 查詢區(qū)
    查詢區(qū)顯示了查詢單表單和查詢按鈕倒淫。
    A1格中的 =tl_queryds.select(`tl_queryds.value`,,,,,,,3)败玉,表示按照字段名擴(kuò)展,每3個(gè)為一組运翼,這個(gè)格顯示第一個(gè)。即每行顯示3個(gè)血淌,超過(guò)3個(gè)的往下?lián)Q一行繼續(xù)顯示。系統(tǒng)取值時(shí)會(huì)3個(gè)同時(shí)取出來(lái)癌淮,后邊的再根據(jù)偏差到這個(gè)里面取值沦补。
    B1格的=ifv(tl_queryds.value!=null,"=query.ds."+tl_queryds.value,"")乳蓄,表示如果 tl_queryds.value的結(jié)果不為空夕膀,則把這個(gè)格子的值設(shè)置為=query.ds.字段名,在最終頁(yè)面中就會(huì)顯示為輸入查詢條件的輸入框魂奥。
    后面的D2、G2格的=dsoff(tl_queryds.value,1)捧弃,=dsoff(tl_queryds.value,2),表示獲得這個(gè)字段分組中下一個(gè)字段名违霞。
    后面的E2、H2格的=ifv(dsoff(tl_queryds.value,1)!=null,"=query.ds."+dsoff(tl_queryds.value,1),"")买鸽、=ifv(dsoff(tl_queryds.value,2)!=null,"=query.ds."+dsoff(tl_queryds.value,2),"")表示設(shè)置這個(gè)格子的值為相應(yīng)的=query.ds.字段名。其中妆艘,高級(jí)屬性中上主格都設(shè)置為A2,表示隨A2而變批旺。
    列可以為空表示這一列有內(nèi)容時(shí)诵姜,右邊的單元格向右偏移。橫向侵占表示這一列有內(nèi)容時(shí)棚唆,把右側(cè)的單元格占領(lǐng)。
    第三行的查詢按鈕與頁(yè)面一樣宵凌,啟動(dòng)查詢。

  4. 列表區(qū)
    列表區(qū)以表格形式顯示數(shù)據(jù)表中的記錄瞎惫。其中第四行是顯示表格的標(biāo)題,第五行是顯示數(shù)據(jù)逗扒。
    A4格是id,是固定值,在設(shè)計(jì)器頁(yè)面和瀏覽器頁(yè)面都顯示一樣的现恼。
    A5格值="=ds.select(ds.id)"是固定的,用于生成擴(kuò)展顯示每個(gè)記錄id的公式=ds.select(ds.id)始锚。
    B4格是全選框喳逛,B5格是復(fù)選框瞧捌,都是跟checked變量綁定。
    C4格=tl.getTableDispColumn(@tl_table)是顯示數(shù)據(jù)表的顯示字段的字段名殿怜,默認(rèn)是名稱字段曙砂,C5格="=ds."+tl.getTableDispColumn(@tl_table)是生成顯示名稱字段數(shù)據(jù)的公式头谜。
    D4格=tl_selectds.select(tl_selectds.value)是顯示數(shù)據(jù)表字段名鸠澈,D5格是=ifv(tl_selectds.value!=null,"=ds."+tl_selectds.value,"")顯示其他字段的數(shù)據(jù)。此時(shí)注意tl_selectds變量的定義中已經(jīng)移除掉了名稱字段笑陈,所以D4格不會(huì)顯示,而D3格我們手動(dòng)加上了名稱字段乖菱。D4單元格高級(jí)屬性為橫向侵占,表示D4單元格的公式出來(lái)幾個(gè)字段就向右方侵占多少個(gè)格子块请,而J4拳缠、J5單元格的高級(jí)屬性中有個(gè)占位屬性設(shè)置為列可以為空,表示擴(kuò)展到這的時(shí)候窟坐,這個(gè)格會(huì)不斷復(fù)制,向右推移哲鸳,而如果列的所有單元格值都為空,則這一列將被刪掉徙菠。
    同時(shí),C5缺狠、K5單元格控件屬性為鏈接萍摊,點(diǎn)擊會(huì)跳轉(zhuǎn)到詳情頁(yè)面挤茄,鏈接的控件屬性中冰木,鏈接目標(biāo)也是模板笼恰,傳遞參數(shù)ds.id是固定值歇终。L5單元格控件屬性為刪除數(shù)據(jù),點(diǎn)擊后會(huì)刪除該行數(shù)據(jù)练湿。
    在C4猴仑、C5基本屬性的格名一欄公式為tl.calcStaticProperty("head_ds."+tl_selectds.value)tl.calcStaticProperty("ds."+tl_selectds.value),表示在生成頁(yè)面的格名屬性中肥哎,設(shè)置靜態(tài)值為ds.字段名辽俗。如果公式為tl.calcExp("ds."+tl_selectds.value),生成的值會(huì)放在格名屬性的公式一列篡诽,會(huì)在頁(yè)面生成網(wǎng)頁(yè)時(shí)動(dòng)態(tài)計(jì)算崖飘。格名是代表這個(gè)單元格,例如目前常用A3杈女、C5表示這個(gè)單元格朱浴,以后也可以用格名表示單元格,格名的功能暫時(shí)未用达椰。

  5. 分頁(yè)控件
    第六行是一個(gè)分頁(yè)控件翰蠢,用于對(duì)表格中的數(shù)據(jù)分頁(yè)顯示啰劲。

編輯模板與列表模板類似梁沧,定義了tl_fieldstl_longfields變量集,獲得數(shù)據(jù)表的字段名蝇裤。其中tl_fields定義是DataSet.parse(AuxTable.getCols(@tl_table,[Constant.subtype.shorttext,Constant.subtype.password,Constant.type.number,Constant.type.date,Constant.type.logic,Constant.type.selection,Constant.type.reference,Constant.type.attachment]).removeAll(["id","wx_openid","mis_valid"]))廷支,表示獲得大部分字段的字段名。

tl_longfields定義為DataSet.parse(AuxTable.getCols(@tl_table,[Constant.subtype.longtext,Constant.subtype.html]))栓辜,表示獲得字段類型為長(zhǎng)文本或html的字段名恋拍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市藕甩,隨后出現(xiàn)的幾起案子施敢,更是在濱河造成了極大的恐慌,老刑警劉巖狭莱,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悯姊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡贩毕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門仆嗦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)辉阶,“玉大人,你說(shuō)我怎么就攤上這事∽惶穑” “怎么了垃僚?”我有些...
    開(kāi)封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)规辱。 經(jīng)常有香客問(wèn)我谆棺,道長(zhǎng),這世上最難降的妖魔是什么罕袋? 我笑而不...
    開(kāi)封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任改淑,我火速辦了婚禮,結(jié)果婚禮上浴讯,老公的妹妹穿的比我還像新娘朵夏。我一直安慰自己,他們只是感情好榆纽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布仰猖。 她就那樣靜靜地躺著,像睡著了一般奈籽。 火紅的嫁衣襯著肌膚如雪饥侵。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天衣屏,我揣著相機(jī)與錄音躏升,去河邊找鬼。 笑死勾拉,一個(gè)胖子當(dāng)著我的面吹牛煮甥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藕赞,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼成肘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了斧蜕?” 一聲冷哼從身側(cè)響起双霍,我...
    開(kāi)封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎批销,沒(méi)想到半個(gè)月后洒闸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡均芽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年丘逸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掀宋。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡深纲,死狀恐怖仲锄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情湃鹊,我是刑警寧澤儒喊,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站币呵,受9級(jí)特大地震影響怀愧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜余赢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一芯义、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧没佑,春花似錦毕贼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至啤贩,卻和暖如春待秃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痹屹。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工章郁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人志衍。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓暖庄,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親楼肪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子培廓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355