我正在开发一个 Power Apps 应用程序,其中有一个名为 VisualizacaoSolicitacao 的屏幕,允许用户查看和更新 SharePoint 列表中的票证。该应用程序包括类似聊天的功能,用户可以在 [Automação - Notas de Débito] 列表中名为 [Commentários] 的列中添加评论。
我想要实现的功能是将新消息附加到 [Commentários] 列中的现有消息中。每个条目应包含日期、时间和用户名,后跟消息文本,并且应保留所有条目而不覆盖以前的条目。
这是我当前使用的 Button2 的代码:
// Store the current value of 'Comentários' in a context variable
UpdateContext({ currentDetails: gblSelectedItem.Comentários });;
// Debugging: Check the current value in the context
Notify("Current details: " & currentDetails);;
// Patch with concatenation
Patch(
'Automação - Notas de Débito';
gblSelectedItem;
{
Comentários:
Coalesce(
currentDetails; "" // Corrects the argument separation
) &
"<br><br>" & // Adds two line breaks
"<b>" & Text(Now(); "[$-pt-BR]dd-mm-yyyy hh:mm:ss") & " - " & User().FullName & ":</b>" &
"<br>" &
Input_Text.Text
}
);;
// Reset the input field
Reset(Input_Text);;
// Notify the user that the details were updated
Notify("Details updated", NotificationType.Information);;
当我添加新消息时,应用程序不会在新条目上附加换行符,而是更新最后一条消息,将其替换为新消息。我需要将新消息添加为先前消息下方的新条目,而不是覆盖它们。
我尝试过的:
确保正确检索 currentDetails。 使用 Concatenate 函数而不是简单的字符串连接。 验证 gblSelectedItem 是否正确设置为当前项目。 尽管做出了这些努力,问题仍然存在,并且最后一条消息总是被覆盖,而不是附加新消息。
问题: 如何修改我的代码以将新消息正确附加到 [Commentários] 列,同时保留以前的消息?
提前感谢您的帮助!
我们的方法有点不同:我们没有在现有评论之前/之后添加评论,而是将整个评论替换为:
在代码视图中:
Patch(
Comments,
LookUp(
Comments,
ID = SelectedThing.ID
),
{
Text: Concatenate(
User().FullName,
Char(13),
Text(
Now(),
DateTimeFormat.ShortDateTime24,
"en-US"
),
Char(13),
newcommentField.Text,
Char(13),
Char(13),
"-------------------------------",
Char(13),
Char(13),
oldcomments.Text
)
}
);