【问题标题】:Splitting string twice ? in HTML Control Powerapps拆分字符串两次?在 HTML 控制 Powerapps
【发布时间】:2021-07-20 21:56:31
【问题描述】:

真的希望在这个项目上获得一些帮助!它是如此接近!因此,我们将不胜感激任何帮助。

因此,在图像示例中,第一个 HTML 表具有硬编码值,这就是我想要的结果,下表动态获取信息,但正如您所见,我遇到了问题。

我希望能够用逗号分隔,然后换行。

这是下面的代码。

With(
    {
        Headers: Split("Power,Freq,Comp Intake,Exhaust,Eng Fresh Water,RW IN,RW OUT,Oil Sump,Inlet Manifold,Fuel Use,Boost,Engine Oil Press,Smoke,Blow by,Voltage,Current", ","),
        Units: Split("KWe,Hz,ºC,ºC,ºC,ºC,ºC,ºC,ºC,mm3/ST,Bar,Bar,FSN,L/min,volts,amps", ","),
        Measurements: [
            Concat(SortByColumns(Search(Filter('datasource',Len(data) > 20),TextInput3.Text,"serialno"),"loadord"),data) 
        ]
    },
    "<table border='1'>" &
        "<tr>" & Concat(Headers, "<th>" & Result & "</th>") & "</tr>" &
        "<tr>" & Concat(Units, "<th>" & Result & "</th>") & "</tr>" &
        Concat(
            Measurements,
            "<tr>" & Concat(Split(Value, ","), "<td align='middle'>" & Result & "</td>") & "</tr>"
        ) &
        "</table>")

【问题讨论】:

    标签: html powerapps powerapps-canvas


    【解决方案1】:

    在 With 函数的记录范围内创建“Measurements”值时,您会将所有行合并为一个行 - 这不是您想要的。如果你有一个名为'datasource'的数据源,相当于下面的集合:

    ClearCollect(
        datasource,
        { data: "86, 50, 21, 411, 83, 60, 0, 112, 47, 118.5, 1.31, 3.79, 2.3, 70, 401, 125", serialno: "1", loadord: "1" },
        { data: "86, 50, 23, 416, 83, 60, 0, 113, 49, 117.3, 1.31, 3.76, 2.4, 65, 400, 124", serialno: "1", loadord: "1" },
        { data: "95, 50, 23, 436, 84, 60, 0, 115, 51, 131.3, 1.45, 3.69, 2.8, 65, 400, 136", serialno: "1", loadord: "1" },
        { data: "65, 50, 22, 389, 82, 60, 0, 112, 50, 92.8, .97, 3.76, 2.2, 60, 401, 93", serialno: "1", loadord: "1" },
        { data: "43, 50, 21, 332, 81, 60, 0, 104, 47, 63.3, .62, 3.86, .8, 50, 402, 62", serialno: "1", loadord: "1" },
        { data: "22, 50, 21, 237, 80, 60, 0, 101, 46, 35.3, .25, 4, .8, 40, 402, 32", serialno: "1", loadord: "1" },
        { data: "00, 50, 21, 122, 79, 60, 0, 95, 44, 11.7, .14, 4.14, .1, 35, 402, 0", serialno: "1", loadord: "1" }
    )
    

    那么你可以使用类似下面的表达式:

    With(
        {
            Headers: Split("Power,Freq,Comp Intake,Exhaust,Eng Fresh Water,RW IN,RW OUT,Oil Sump,Inlet Manifold,Fuel Use,Boost,Engine Oil Press,Smoke,Blow by,Voltage,Current", ","),
            Units: Split("KWe,Hz,ºC,ºC,ºC,ºC,ºC,ºC,ºC,mm3/ST,Bar,Bar,FSN,L/min,volts,amps", ","),
            Measurements: SortByColumns(Search(Filter('datasource',Len(data) > 20),TextInput3.Text,"serialno"),"loadord")
        },
        "<table border='1'>" &
            "<tr>" & Concat(Headers, "<th>" & Result & "</th>") & "</tr>" &
            "<tr>" & Concat(Units, "<th>" & Result & "</th>") & "</tr>" &
            Concat(
                Measurements,
                "<tr>" & Concat(Split(data, ","), "<td align='middle'>" & Result & "</td>") & "</tr>"
            ) &
            "</table>")
    

    这是一种读取将测量值添加到表中的表达式部分的方法。我经常发现“从内到外”阅读这些表达方式很有用

    • “过滤器”功能将“数据源”中的数据限制为仅对“数据”列具有足够大值的数据
    • 之前的结果被传递给'Search'函数,以进一步过滤'serialno'与用户在TextInput3中输入的值匹配的那些
    • 然后根据“loadord”列对先前的结果进行排序;到目前为止,结果是一个包含多个测量集的表格(每个测量集都是逗号分隔的单独测量值)
    • 之前的结果在 With 函数中被分配了别名“测量”。请注意,这不是绝对必要的——我们可以直接使用 Sort(Search(Filter(...))) 表达式,但我发现将表达式分解可以更容易理解它们
      • 标题也一样 - 不需要通过 With 函数完成的别名;我们可以将文本 &lt;tr&gt;&lt;th&gt;Power&lt;/th&gt;&lt;th&gt;Freq&lt;/th&gt;...&lt;/tr&gt; 直接放在表达式中,而不是拆分和连接逗号分隔的测量名称。
    • 表达式的输出是通过连接一些字符串来创建的。要将上一步中表的所有行连接成一个字符串,我们使用外部 Concat 函数 - 它会获取“Measurements”的每一行并在表达式中使用它
    • 由于测量值是用逗号分隔的,我们使用 Split 函数将其分解,并使用另一个嵌套的 Concat 调用将各个值包装在创建表所需的 &lt;td&gt;...&lt;/td&gt; 中。

    【讨论】:

    • 嗨,卡洛斯!感谢您回答这个问题。是否可以与您通话或聊天,因为看起来您有答案,但我不太了解,如果可以的话,将不胜感激!再次感谢您!
    • 嗨 Gregor,StackOverflow 中的答案应该是独立的,以便其他接触它的人能够理解。我编辑了答案以添加有关其工作原理的更多详细信息。
    • 是否可以在不硬编码条目的情况下执行此操作,因为根据我们搜索的内容,我们只能得到 1 行或最多 7 行?
    • 更新后的答案拆分了测试条目和表达式本身。行数将取决于过滤/搜索功能的结果
    • 嗨卡洛斯,首先我非常感谢您在这方面的帮助!它已经得到了预期的结果,但我想知道是否可以就此提出后续问题,以及是否可以向您展示用例以帮助更好地理解我为什么要问这个问题。有没有其他平台可以发消息给你?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2014-01-16
    相关资源
    最近更新 更多