【问题标题】:Converting concatenated text to columns in a table将连接的文本转换为表格中的列
【发布时间】:2020-12-05 02:38:26
【问题描述】:

所以,我继承了 PowerApp 的这种野兽,它做一些相对简单的事情,收集对应用程序中创建的动态测验的响应。操作员创建问题(将项目添加到 SPO 列表),然后将测验发送给人们,然后他们在 PowerApp 中回答。

因为问题的创建或多或少是一时兴起,并且因为 PowerApps 无法动态创建新数据源或操纵它使用的数据源,而不是为每个问题/答案对设置一列,这些 QnA 对被连接成一个巨大的纯文本块,并被塞入一个单独的 SPO 列表中的一列,其中包含以下格式的响应:

问题:问题 1 文本?答案:答案 1 文本 |问题:问题2 文本?答案:Answer2 文字等等等等。

我已经找到了我需要将块拆分为 QnA 对(在条形字符上拆分)然后每个 QnA 对本质上是一个二维数组(在 JavaScript 中,无论如何,我会在正则表达式 /((\?|\.)( Answer: ))/ 因为当然问题可以以句点或问号结尾)。

由于 PowerApps 的函数引擎非常奇怪和拜占庭式,我不太明白如何使用该正则表达式将该 blob 转换为我可以输出到应用程序中的表格,以便我的操作员可以将数据提取到更多内容中有用。

编辑 1:

越来越近了。使用以下函数,我可以获得 2D 集合:

ClearCollect(
    QnAPairs,
    ForAll(
        'ResponsesList',
        Split(
           'ResponsesList'[@Answers],
           "|"
        )
    )
);

仍然不知道如何处理 QnA 集合中的每个结果,就像我可以添加到新表中的键/值对一样。

TL;DR?

如何转弯

姓名 | 日期 | 答案 人麦克森 |月/日/年 |问题:问题1 文本?答案:答案 1 文本 |问题:问题2 文本?答案:Answer2 文字等,等等。

进入

姓名 | 日期 | 问题1文本 | 问题2文本 | ...问题文本 人麦克森 |月/日/年 |答案 1 文本 |答案 2 文本 | ...答案 2 文本

【问题讨论】:

    标签: powerapps powerapps-formula powerapps-canvas powerapps-collection


    【解决方案1】:

    如果您想向操作员显示问题/答案(例如,在画廊中),那么您需要一个将问题作为 而不是列的结构,因此您的结构将有点像这样:

    姓名 | 日期 | 问题与答案 人麦克森 |月/日/年 |

    <table> 将单独的问题和答案作为行。您可以使用如下表达式创建新结构:

        ClearCollect(
            QnAPairs,
            DropColumns(
                AddColumns(
                    ResponsesList,
                    "QuestionsAndAnswers",
                    MatchAll(Answers, "Question:\s?(?<question>[^\?]+)\?\s?Answer\s?:\s?(?<answer>[^|]+)")),
                "Answers"))
    

    因此,在您的应用程序中,如果您有一个画廊,其中列出了 Items 属性设置为 QnAPairs 的所有受访者,您可以拥有第二个画廊,并将 Items 属性设置为Gallery1.Selected.QuestionsAndAnswers,它将显示所选对象的问答人。

    请注意,您不需要单独的集合;如果将第一个库的 Items 属性设置为原始数据源 (ResponseList),则可以将第二个库的 Items 属性设置为

    MatchAll(
        Gallery1.Selected.Answers,
        "Question:\s?(?<question>[^\?]+)\?\s?Answer\s?:\s?(?<answer>[^|]+)")
    

    它会显示所选人员的答案。

    您可以在https://carlosfigueirapastorage.blob.core.windows.net/public/StackOverflow63425784.msapp 找到显示此策略的应用程序。要打开它,请将其保存在本地,然后转到 https://create.powerapps.com,选择打开、浏览,然后找到您保存的文件。

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多