首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >InfoPath 2010:以编程方式向嵌套在重复表格中的重复表格/节添加行时出现问题

InfoPath 2010:以编程方式向嵌套在重复表格中的重复表格/节添加行时出现问题
EN

Stack Overflow用户
提问于 2012-01-11 02:59:37
回答 1查看 2.1K关注 0票数 1

我有一个嵌套在重复表中的重复表。嵌套表包含5列,1列表示年份,4列表示不同的季度(财务)。如果项目持续时间超过一年,我需要向嵌套表中动态添加行。因此,如果项目持续2年,我将需要在嵌套表中添加2行并填充数据,如果项目持续3年,我将需要添加3行,以此类推。

我似乎无法让嵌套表填充任何数据。我对第一个表使用了一个带有外部XmlWriter的循环,对嵌套表使用了一个嵌套的XmlWriter。下面是一个代码示例:

代码语言:javascript
运行
复制
  public void BuildHwSwForecastRow(string vendor, string description, string totalCost, XPathNavigator root)
    {
        string myNameSpace = NamespaceManager.LookupNamespace("my");

        using (XmlWriter writer = root.SelectSingleNode ("/my:myFields/my:HW_SW_Other_Forecast/my:Forecasts",NamespaceManager).AppendChild())
        {
            writer.WriteStartElement("Forecast", myNameSpace);
            writer.WriteElementString("HSOF-VendorName", myNameSpace, vendor);
            writer.WriteElementString("HSOF-Description", myNameSpace, description);
            writer.WriteElementString("HSOF-TotalCost", myNameSpace, totalCost);

            using (XmlWriter insideWriter = root.SelectSingleNode("//my:HW_SW_Other_Forecast/my:Forecasts/my:Forecast/my:Quarterly_Breakdowns", NamespaceManager).AppendChild())
            {
                insideWriter.WriteStartElement("Quarterly_Breakdown", myNameSpace);
                insideWriter.WriteElementString("HSOF-Year", myNameSpace, "2011");
                insideWriter.WriteElementString("HSOF-Q1", myNameSpace, "");
                insideWriter.WriteElementString("HSOF-Q2", myNameSpace, "");
                insideWriter.WriteElementString("HSOF-Q3", myNameSpace, "");
                insideWriter.WriteElementString("HSOF-Q4", myNameSpace, "");
                insideWriter.WriteEndElement();
                insideWriter.Close();
            }
            writer.WriteElementString("HSOF-Total", myNameSpace, "0.0");
            writer.WriteEndElement();
            writer.Close();
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2012-05-11 03:45:03

尝尝这个。唯一的区别是,第二个using块在第一个using块之外。

代码语言:javascript
运行
复制
public void BuildHwSwForecastRow(string vendor, string description, string totalCost, XPathNavigator root)
{
    string myNameSpace = NamespaceManager.LookupNamespace("my");

    using (XmlWriter writer = root.SelectSingleNode ("/my:myFields/my:HW_SW_Other_Forecast/my:Forecasts",NamespaceManager).AppendChild())
    {
        writer.WriteStartElement("Forecast", myNameSpace);
        writer.WriteElementString("HSOF-VendorName", myNameSpace, vendor);
        writer.WriteElementString("HSOF-Description", myNameSpace, description);
        writer.WriteElementString("HSOF-TotalCost", myNameSpace, totalCost);


        writer.WriteElementString("HSOF-Total", myNameSpace, "0.0");
        writer.WriteEndElement();
        writer.Close();
    }

   using (XmlWriter insideWriter = root.SelectSingleNode("//my:HW_SW_Other_Forecast/my:Forecasts/my:Forecast/my:Quarterly_Breakdowns", NamespaceManager).AppendChild())
        {
            insideWriter.WriteStartElement("Quarterly_Breakdown", myNameSpace);
            insideWriter.WriteElementString("HSOF-Year", myNameSpace, "2011");
            insideWriter.WriteElementString("HSOF-Q1", myNameSpace, "");
            insideWriter.WriteElementString("HSOF-Q2", myNameSpace, "");
            insideWriter.WriteElementString("HSOF-Q3", myNameSpace, "");
            insideWriter.WriteElementString("HSOF-Q4", myNameSpace, "");
            insideWriter.WriteEndElement();
            insideWriter.Close();
        }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8808906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档