У меня есть повторяющаяся таблица, вложенная в повторяющуюся таблицу. Вложенная таблица содержит 5 столбцов, 1 для года, 4 для разных кварталов (финансовые). Мне нужно динамически добавлять строки во вложенную таблицу, если проект длился дольше одного года. Поэтому, если проект длился 2 года, мне нужно было бы добавить 2 строки во вложенную таблицу и заполнить ее данными, если бы он длился 3 года, мне нужно было бы добавить 3 и т. Д.
Я не могу заставить вложенную таблицу заполняться какими-либо данными. Я использую цикл с внешним XmlWriter для первой таблицы и вложенный XmlWriter для вложенной таблицы. Вот пример кода:
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();
}
}