Populating nested repeating section - InfoPath Dev
in

InfoPath Dev

Populating nested repeating section

Last post 05-07-2013 09:59 AM by forumsub. 0 replies.
Page 1 of 1 (1 items)
Sort Posts: Previous Next
  • 05-07-2013 09:59 AM

    Populating nested repeating section

     
    I need to populate a repeating section inside repeating section.
    I am using SQL Stored Proc to get the data from the database.
    Here is my Info path datasource
    -Myfields
     - group1
     -group 2
     - Agenda
     - group 3
     - group 4
     - Description
     - ECD
    There can be multiple Agenda and each agenda can have multiple Description and ECD.

    Here is my code

     public void getOldBusiness()
     {
     SqlConnection myConnection = new SqlConnection(m_ConnectionString);
     XPathNavigator myNav = MainDataSource.CreateNavigator();

     myConnection.Open();
     SqlCommand business_cmd = new SqlCommand("Get_Business", myConnection);
     SqlDataAdapter myDataAdapter = new SqlDataAdapter();
     myDataAdapter.SelectCommand = business_cmd;
     business_cmd.CommandType = CommandType.StoredProcedure;
     business_cmd.Parameters.AddWithValue("@Meeting_ID", _URLUniqueID);
     business_cmd.Parameters.AddWithValue("@Meeting_Flag_Old_New", "O");
     DataTable myDataTable = new DataTable();
     myDataAdapter.Fill(myDataTable);
     // Get a reference to the node the repeating table is bound to
     XPathNavigator xNav;
     xNav = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:group2", this.NamespaceManager);
     foreach (DataRow row in myDataTable.Rows)
     {
     XPathNavigator xRow = xNav.Clone();
     string s_Agenda_Name = row.ItemArray[1].ToString();

     int i_Meeting_Business_ID = Convert.ToInt32(row.ItemArray[0].ToString());
     xRow.SelectSingleNode("/my:myFields/my:group1/my:group2/my:Agenda", this.NamespaceManager).SetValue(s_Agenda_Name);
     xNav.InsertBefore(xRow);

     getOldBusinessDisucssion(_URLUniqueID, s_Agenda_Name);

     }
     xNav.DeleteSelf();
     }

     public void getOldBusinessDisucssion(string meeting_ID, string agenda_Name, )
     {
     SqlConnection myConnection = new SqlConnection(m_ConnectionString);
     myConnection.Open();
     SqlCommand business_cmd = new SqlCommand("Get_Meeting_Business_Item_Discussion", myConnection);
     SqlDataAdapter myDataAdapter = new SqlDataAdapter();
     myDataAdapter.SelectCommand = business_cmd;
     business_cmd.CommandType = CommandType.StoredProcedure;
     business_cmd.Parameters.AddWithValue("@Meeting_ID", meeting_ID);
     business_cmd.Parameters.AddWithValue("@Meeting_Business_ID", meeting_Busiess_ID);
     DataTable myDataTable = new DataTable();
     myDataAdapter.Fill(myDataTable);

     // Get a reference to the node the repeating table is bound to
     XPathNavigator repTable = xNav.CreateNavigator().SelectSingleNode("/my:myFields/my:group1/my:group2/my:group3/my:group4", NamespaceManager);
     XPathNavigator node;
     foreach (DataRow row in myDataTable.Rows)
     {

     string s_Meeting_Discussion = row.ItemArray[0].ToString();
     node = repTable.Clone();
     node.SelectSingleNode("/my:myFields/my:group1/my:group2/my:group3/my:group4/my:Description", NamespaceManager).SetValue(s_Meeting_Discussion);
     xNav.InsertBefore(node);

     }
     }

Page 1 of 1 (1 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.