1
繰り返しテーブル内に繰り返しテーブルがネストされています。ネストした表には、5つの列があります.1つは1年、4つは異なる四半期(財務)です。プロジェクトが1年以上続く場合は、ネストした表に行を動的に追加する必要があります。したがって、プロジェクトが2年間続く場合は、入れ子になったテーブルに2行追加してデータで埋める必要があります.3年後に3などを追加する必要があります。InfoPath 2010:繰り返しテーブル内に入れ子になっている繰り返しテーブル/セクションに行をプログラムで追加するときに問題が発生する
ネストされた表にデータを移入させる。最初のテーブルには外側の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();
}
}
回答をいただきありがとうございます。私は明らかに間違いがありました。私は、別のルートに行き、完全な行のXMLを構築し、そのように追加しました。 – stayinwett