發(fā)布時間:2023-10-27 分類: 行業(yè)資訊
如何使轉發(fā)器也像數(shù)據(jù)庫一樣實現(xiàn)數(shù)據(jù)查詢,修改,判斷等功能?這篇文章供你解讀。
在使用Axure進行原型設計的過程中,大多數(shù)人使用轉發(fā)器作為數(shù)據(jù)存儲工具,可以快速格式化并顯示具有相同排版的一系列數(shù)據(jù),例如商品顯示文本列表,各種文本形式等等。但你有沒有想過轉發(fā)器也可以執(zhí)行數(shù)據(jù)查詢,修改,判斷和其他功能,如數(shù)據(jù)庫(例如,直接查詢下表中ID為2的人的姓名,或修改人的姓名)誰的名字是王沒有。)
轉發(fā)器相關功能的難點分析
中繼器功能
目前,可以在中繼器中提供內(nèi)部數(shù)據(jù)的功能只是“中繼器”。當我們使用這個函數(shù)時,我們只能將整個轉發(fā)器中的數(shù)據(jù)放在一個數(shù)組中。例如:
使用Repeater.text函數(shù)作為轉發(fā)器時,將獲得以下數(shù)據(jù)
由此我們知道轉發(fā)器中的數(shù)據(jù)以“數(shù)組”的形式存儲。輸出時,每一行都通過換行符字符’’連接。
這時,有人會問,為什么不直接以Repeater [0] [0]的形式直接輸出一個字段,就像數(shù)據(jù)庫一樣?對不起,通過測試,Axure中的功能無法識別數(shù)組,而“Item.Listing”功能只能直接用于轉發(fā)器的動作(如過濾,更新等),不能直接用于其他功能分配。如下圖所示:
字符串處理
現(xiàn)在我們知道直接調(diào)用轉發(fā)器的特定字段的方式已被破壞。
回到開頭,目前,我們的外部組件可以獲得轉發(fā)器數(shù)據(jù)。只能使用“中繼器”功能,但其中的數(shù)據(jù)是整個中繼器的所有數(shù)據(jù),并且仍然顯示每個數(shù)據(jù)。如果場地相距太遠,我該怎么辦?
1.過濾轉發(fā)器以獲取指定的行內(nèi)容
我們要做的第一件事是通過轉發(fā)器的過濾功能過濾,將轉發(fā)器數(shù)據(jù)分配給我們想要的數(shù)據(jù)行。例如,當我們想要獲取ID為1的人的姓名時,我們直接比較ID。篩選。
此時我們看到其他未使用的數(shù)據(jù)已經(jīng)消失,似乎我們已經(jīng)輸入了很多結果。
2.格式化數(shù)據(jù)
如果要獲取名稱字段,我們需要格式化結果數(shù)據(jù),將其調(diào)整為單行字符串顯示,并用“,”分隔每個字段。此時,您需要使用“拆分(‘分隔符’,限制)”功能(返回字符串)。第一個參數(shù)是拆分字符。這時我們使用換行符’&rsquo的; split,第二個字符是最長的字符串數(shù),這里可以省略。
有點感覺嗎? Axure提供了很多字符串處理功能,如果你想獲得’ li’字符串,這很簡單嗎?
3.截取字符串
字符串全部以“0”開頭,并且’ li’應該是從2到3.然后我們可以通過使用“substring(from,to)”函數(shù)(返回字符串)來獲取名稱。
這時候,有人會問,如果名字的長度不確定?沒問題,我們已經(jīng)知道每個字符組都用“,”分隔,然后我們直接攔截第一個’,’到第二個’,’之間的內(nèi)容很好。
如何找到’的位置,’使用“indexOf(’ searchValue’,start)”(返回號碼)功能,前一個字段是查找內(nèi)容’,’,以下字段是字符串從哪里開始查找,for
的例子LVAR.substring(LVAR.indexOf(‘,’),LVAR.indexOf(‘,’,(LVAR.indexOf(‘,’)+ 1)))
不好了!你亂七八糟嗎?突然有這么久,這是什么?好吧,我會為你分析一下:
找到第一個’的位置,’在字符串LVAR中返回數(shù)字。你為什么要+1?因為它的輸出是前一個LVAR.indexOf(2)的起始位置,也就是說,當查找2個字符串時,它從它后面的第一個字符開始,’,’ 。
從字符串LVAR&rsquo的最后一位開始,’開始尋找’,’,說白了就是得到字符串LVAR的位置第二個’,’。
從第一個’,’的位置截取字符串LVAR。出現(xiàn)在第二個’,’出現(xiàn)。
明白這一點?還要記住,當截取子字符串函數(shù)時,它會保留其前面的第一個字符,并且不保留最后一個字符。因此,當閱讀第一個’,’時,開始從它后面攔截,直到第二個’,’出現(xiàn)。
挑戰(zhàn)升級
我不知道是否還有一些人能夠看到它,因為大多數(shù)人可能仍然抱著令人失望的態(tài)度。 “看了很久之后,你告訴我如何截取字符串?我將在800年前,這與數(shù)據(jù)庫有關。這太過分了,我怎么才能查詢?nèi)魏螀?shù)?”
別擔心,以上是基本款,干貨即將上市。
需要功能:
Repeater.text確保轉發(fā)器返回一個字符串
拆分(”)按特定分隔符
拆分字符串子串(from,to)根據(jù)指定的位置
拆分字符串indexOf()在字符串
中查找字符串的位置Concat()連接字符串
長度獲取字符串的長度
場景設計
學校有[人事管理系統(tǒng)],其中包含所有學生的姓名,學院,電話號碼,年齡和其他信息。用戶可以通過名稱查詢學生的任何其他特定信息,或修改任何信息。
例如:查詢王剛的課程并查看鄧爽的電話號碼。
建筑分析
從需求中可知,我們需要查詢由名稱命名的人的某個項目,即數(shù)據(jù)庫中特定行中的項目。從上面,我們可以通過過濾轉發(fā)器方法,即指定名稱的所有信息來獲取指定的行數(shù)據(jù)。然后通過剪切字符串找到指定項目的信息。
在整個過程中,只有“找到項目字段的位置”是一個難點,因為項目不確定,在輸出字符串中,只有數(shù)據(jù)內(nèi)容除以“,”,不能知道每個數(shù)據(jù)代表什么,所以如何找到給定項目的位置?
這里我們介紹一個輔助字段,如“列名”,它將所有數(shù)據(jù)內(nèi)容放在列名稱標識符的前面,例如:
名稱中的數(shù)據(jù)變?yōu)橥鮿?mdash;— name_王剛
班級中的數(shù)據(jù)成為通信信息—— class_communication information
手機中的數(shù)據(jù)變?yōu)?3456—— phone_23456
年齡數(shù)據(jù)變?yōu)?2—— age_22
這樣我們就可以將行的字符串數(shù)據(jù)更改為:
王剛,溝通信息,23456,22— — name_王剛,班級_通訊信息,phone_23456,age_22
你看到了嗎?我們有一個帶徽標的標簽。我相信有些人已經(jīng)想要了解。我們可以通過使用字符串中數(shù)據(jù)前面的標識符來判斷每個數(shù)據(jù)的含義。如果您想上課,請確定’ class_’,如果您想獲得年齡,請確定’ age_’只要我們指定您想要的數(shù)據(jù)的身份,無論有多少數(shù)據(jù)項,無論它位于何處,您都可以。
系統(tǒng)設置
優(yōu)化數(shù)據(jù)表
根據(jù)指定的數(shù)據(jù)格式優(yōu)化原始數(shù)據(jù)(有多種方法可以在excel的同一列中為每個數(shù)據(jù)添加字符),并在優(yōu)化后將其添加到轉發(fā)器數(shù)據(jù)中。
設置全局變量
首先設置表示查詢項的變量“Finder”,并通過查詢項目內(nèi)容將值分配給“Finder”。然后設置與每個查詢項對應的特定前綴,name_,class_等。
設置查詢面板
查詢面板包括名稱文本框,查詢項列表框和查詢按鈕。
切換查詢項時,系統(tǒng)會將查詢項分配給項目變量“Finder”。項目變量的默認值與查詢項列表的默認值相同。
單擊查詢按鈕時,將“名稱”分配給全局變量“名稱”,然后根據(jù)“名稱”文本框過濾轉發(fā)器數(shù)據(jù),然后根據(jù)查詢結果顯示特定項目值。到項目變量“Finder”。
設置查詢結果面板
查詢結果包括查詢內(nèi)容的名稱和結果,相應的信息顯示在相應的文本框中,此處不再贅述。
功能分析
以下是查詢結果顯示的功能:
[[A2.text.split(&lsquo的;&rsquo的)的concat(&lsquo的;,&rsquo的)子((A2.text.split(&lsquo的。’)。indexOf(Finder)+ Finder.length),A2.text.split(‘&rsquo的;)CONCAT(&lsquo的;,&rsquo的)的indexOf(&lsquo的;,&rsquo的;(A2.text.split(&lsquo的;&rsquo的;)的indexOf(搜索))))]]
如果你了解上述內(nèi)容,你會在這里找到幾個特殊的地方:
A2.text.split(&lsquo的;’)。concat(‘,’):添加’,’在重新排列字符串的末尾,為了防止最后的’ ’從出現(xiàn)。
A2.text.split(&lsquo的;’)。indexOf(Finder)+ Finder.length:由于Finder字符串長度的不確定性,剪切的起始位置是從“Finder”字符串中剪切的。
系統(tǒng)優(yōu)化
由于時間的原因,功能相對簡單,但通過這種方法,我們可以找到或修改任何項目的內(nèi)容,例如查找學生的所有信息,通過姓名找到學生等。
結論
本文主要提供了一種將轉發(fā)器設計到數(shù)據(jù)庫中的方法。似乎雖然很麻煩,但在定義了所有內(nèi)容之后,它可以為Axure實現(xiàn)更類似的數(shù)據(jù)庫數(shù)據(jù)查詢,修改,判斷等功能。不是簡單的數(shù)據(jù)顯示。我希望喜歡它的人可以使用它。
以下是源文件下載鏈接:鏈接:http://pan.baidu.com/s/1i4JTQAT密碼:lbrc
周一周五 8:30 - 18:00
客服QQ