发布时间:2023-10-27 分类: 行业资讯
如何使转发器也像数据库一样实现数据查询,修改,判断等功能?这篇文章供你解读。
在使用Axure进行原型设计的过程中,大多数人使用转发器作为数据存储工具,可以快速格式化并显示具有相同排版的一系列数据,例如商品显示文本列表,各种文本形式等等。但你有没有想过转发器也可以执行数据查询,修改,判断和其他功能,如数据库(例如,直接查询下表中ID为2的人的姓名,或修改人的姓名)谁的名字是王没有。)
转发器相关功能的难点分析
中继器功能
目前,可以在中继器中提供内部数据的功能只是“中继器”。当我们使用这个函数时,我们只能将整个转发器中的数据放在一个数组中。例如:
使用Repeater.text函数作为转发器时,将获得以下数据
由此我们知道转发器中的数据以“数组”的形式存储。输出时,每一行都通过换行符字符’’连接。
这时,有人会问,为什么不直接以Repeater [0] [0]的形式直接输出一个字段,就像数据库一样?对不起,通过测试,Axure中的功能无法识别数组,而“Item.Listing”功能只能直接用于转发器的动作(如过滤,更新等),不能直接用于其他功能分配。如下图所示:
字符串处理
现在我们知道直接调用转发器的特定字段的方式已被破坏。
回到开头,目前,我们的外部组件可以获得转发器数据。只能使用“中继器”功能,但其中的数据是整个中继器的所有数据,并且仍然显示每个数据。如果场地相距太远,我该怎么办?
1.过滤转发器以获取指定的行内容
我们要做的第一件事是通过转发器的过滤功能过滤,将转发器数据分配给我们想要的数据行。例如,当我们想要获取ID为1的人的姓名时,我们直接比较ID。筛选。
此时我们看到其他未使用的数据已经消失,似乎我们已经输入了很多结果。
2.格式化数据
如果要获取名称字段,我们需要格式化结果数据,将其调整为单行字符串显示,并用“,”分隔每个字段。此时,您需要使用“拆分(‘分隔符’,限制)”功能(返回字符串)。第一个参数是拆分字符。这时我们使用换行符’&rsquo的; split,第二个字符是最长的字符串数,这里可以省略。
有点感觉吗? Axure提供了很多字符串处理功能,如果你想获得’ li’字符串,这很简单吗?
3.截取字符串
字符串全部以“0”开头,并且’ li’应该是从2到3.然后我们可以通过使用“substring(from,to)”函数(返回字符串)来获取名称。
这时候,有人会问,如果名字的长度不确定?没问题,我们已经知道每个字符组都用“,”分隔,然后我们直接拦截第一个’,’到第二个’,’之间的内容很好。
如何找到’的位置,’使用“indexOf(’ searchValue’,start)”(返回号码)功能,前一个字段是查找内容’,’,以下字段是字符串从哪里开始查找,for
的例子LVAR.substring(LVAR.indexOf(‘,’),LVAR.indexOf(‘,’,(LVAR.indexOf(‘,’)+ 1)))
不好了!你乱七八糟吗?突然有这么久,这是什么?好吧,我会为你分析一下:
找到第一个’的位置,’在字符串LVAR中返回数字。你为什么要+1?因为它的输出是前一个LVAR.indexOf(2)的起始位置,也就是说,当查找2个字符串时,它从它后面的第一个字符开始,’,’ 。
从字符串LVAR&rsquo的最后一位开始,’开始寻找’,’,说白了就是得到字符串LVAR的位置第二个’,’。
从第一个’,’的位置截取字符串LVAR。出现在第二个’,’出现。
明白这一点?还要记住,当截取子字符串函数时,它会保留其前面的第一个字符,并且不保留最后一个字符。因此,当阅读第一个’,’时,开始从它后面拦截,直到第二个’,’出现。
挑战升级
我不知道是否还有一些人能够看到它,因为大多数人可能仍然抱着令人失望的态度。 “看了很久之后,你告诉我如何截取字符串?我将在800年前,这与数据库有关。这太过分了,我怎么才能查询任何参数?”
别担心,以上是基本款,干货即将上市。
需要功能:
Repeater.text确保转发器返回一个字符串
拆分(”)按特定分隔符
拆分字符串子串(from,to)根据指定的位置
拆分字符串indexOf()在字符串
中查找字符串的位置Concat()连接字符串
长度获取字符串的长度
场景设计
学校有[人事管理系统],其中包含所有学生的姓名,学院,电话号码,年龄和其他信息。用户可以通过名称查询学生的任何其他特定信息,或修改任何信息。
例如:查询王刚的课程并查看邓爽的电话号码。
建筑分析
从需求中可知,我们需要查询由名称命名的人的某个项目,即数据库中特定行中的项目。从上面,我们可以通过过滤转发器方法,即指定名称的所有信息来获取指定的行数据。然后通过剪切字符串找到指定项目的信息。
在整个过程中,只有“找到项目字段的位置”是一个难点,因为项目不确定,在输出字符串中,只有数据内容除以“,”,不能知道每个数据代表什么,所以如何找到给定项目的位置?
这里我们介绍一个辅助字段,如“列名”,它将所有数据内容放在列名称标识符的前面,例如:
名称中的数据变为王刚—— name_王刚
班级中的数据成为通信信息—— class_communication information
手机中的数据变为23456—— phone_23456
年龄数据变为22—— age_22
这样我们就可以将行的字符串数据更改为:
王刚,沟通信息,23456,22— — name_王刚,班级_通讯信息,phone_23456,age_22
你看到了吗?我们有一个带徽标的标签。我相信有些人已经想要了解。我们可以通过使用字符串中数据前面的标识符来判断每个数据的含义。如果您想上课,请确定’ class_’,如果您想获得年龄,请确定’ age_’只要我们指定您想要的数据的身份,无论有多少数据项,无论它位于何处,您都可以。
系统设置
优化数据表
根据指定的数据格式优化原始数据(有多种方法可以在excel的同一列中为每个数据添加字符),并在优化后将其添加到转发器数据中。
设置全局变量
首先设置表示查询项的变量“Finder”,并通过查询项目内容将值分配给“Finder”。然后设置与每个查询项对应的特定前缀,name_,class_等。
设置查询面板
查询面板包括名称文本框,查询项列表框和查询按钮。
切换查询项时,系统会将查询项分配给项目变量“Finder”。项目变量的默认值与查询项列表的默认值相同。
单击查询按钮时,将“名称”分配给全局变量“名称”,然后根据“名称”文本框过滤转发器数据,然后根据查询结果显示特定项目值。到项目变量“Finder”。
设置查询结果面板
查询结果包括查询内容的名称和结果,相应的信息显示在相应的文本框中,此处不再赘述。
功能分析
以下是查询结果显示的功能:
[[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(搜索))))]]
如果你了解上述内容,你会在这里找到几个特殊的地方:
A2.text.split(&lsquo的;’)。concat(‘,’):添加’,’在重新排列字符串的末尾,为了防止最后的’ ’从出现。
A2.text.split(&lsquo的;’)。indexOf(Finder)+ Finder.length:由于Finder字符串长度的不确定性,剪切的起始位置是从“Finder”字符串中剪切的。
系统优化
由于时间的原因,功能相对简单,但通过这种方法,我们可以找到或修改任何项目的内容,例如查找学生的所有信息,通过姓名找到学生等。
结论
本文主要提供了一种将转发器设计到数据库中的方法。似乎虽然很麻烦,但在定义了所有内容之后,它可以为Axure实现更类似的数据库数据查询,修改,判断等功能。不是简单的数据显示。我希望喜欢它的人可以使用它。
以下是源文件下载链接:链接:http://pan.baidu.com/s/1i4JTQAT密码:lbrc
« 网站建设运营和优化点 | 微信支付温暖的心脏副本,非常贴心 »