0

我在 InfoPath 2010 中创建了一个带有 c# 代码的表单。此表单的目的是成为我们在此处理的问题的运行日志。C# 用于生成格式非常明确的电子邮件。此电子邮件的正文需要以相反的顺序显示重复字段中的项目(最新的在顶部)。我的第一个问题是试图找到一种方法来将重复部分的数据完全填充到电子邮件正文中。我终于能够找到这个以标准顺序成功打印数据的 foreach 循环。

foreach (XPathNavigator node in runningLogTable)
{
    logEntry = node.SelectSingleNode("@my:entry", this.NamespaceManager).Value;
    logTime = node.SelectSingleNode("my:CurrentTime", this.NamespaceManager).Value;
    sb.Append(convertTime(logTime) + "\n");
    sb.Append(logEntry + "\n\n");
}

来源:Infopath 重复表 - 从当前行获取字段

顺便说一下,这个循环在 stringBuilder 函数中。我的问题是,我该如何以相反的顺序执行此操作?
我已经在谷歌上搜索了好几天,我不知道我是否只是不知道正确的术语或什么,但不用说,我一直无法找到有效的解决方案。我知道必须有一个我没有看到的简单解决方案。

4

1 回答 1

0

不知道为什么这个问题掉线了,但是有几个人帮助我(特别是保存),他们让我走上了一条不同的道路。我能够使用以下方法使我的代码正常工作:

            //Lets get those log entries!
        List<string> logEntries = new List<string>(); // Create a list array to hold each entry
        List<string> logTimes = new List<string>(); // Create a list array to hold each log time

        foreach (XPathNavigator entry in runningLogTable) // iterate through the repeating section of the log
        {
            logEntry = entry.SelectSingleNode("@my:entry", this.NamespaceManager).Value; // Get the string value from each field
            logTime = entry.SelectSingleNode("my:CurrentTime", this.NamespaceManager).Value; // Get the string value for the time from each field.
            logEntries.Add(logEntry); // Add each log entry to the list starting at position (index) 0
            logTimes.Add(convertTime(logTime)); // Add each time entry to the list starting at position (index) 0
            // Each log entry should align with the correct time entry since both start at index 0.
        }
        for (int i = (logEntries.Count - 1); i >= 0; i--) // get the count of the log entries list and loop through each indexed position in reverse.
        {
            sb.Append(logTimes[i].ToString() + "\n"); // append each indexed entry to the log starting from the last position and moving to the first (0)
            sb.Append(logEntries[i].ToString() + "\n\n"); // append each indexed time to the log starting from the last position and moving to the first (0)
        }

感谢所有帮助过的人。我希望我可以链接到用户名,因为Save确实救了我!

谢谢大家!!

于 2013-08-21T23:06:19.610 回答