<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.infopathdev.com:443/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Newbie Questions</title><link>https://www.infopathdev.com:443/forums/39.aspx</link><description>New to InfoPath? Search to see if your question has already been answered. If it has not, then ask it here or the appropriate topic forum.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP3 (Build: 31118.962)</generator><item><title>Cloning while using Master/Detail control</title><link>https://www.infopathdev.com:443/forums/thread/37145.aspx</link><pubDate>Thu, 15 Jan 2009 13:43:34 GMT</pubDate><guid isPermaLink="false">033a2e2d-04e2-4a9d-be01-a4634161eefd:37145</guid><dc:creator>savita</dc:creator><slash:comments>0</slash:comments><comments>https://www.infopathdev.com:443/forums/thread/37145.aspx</comments><wfw:commentRss>https://www.infopathdev.com:443/forums/commentrss.aspx?SectionID=39&amp;PostID=37145</wfw:commentRss><description>&lt;p&gt;Hi. I am using Infopath 2003 SP2, Access 2003 and prg language is VBScript. I have gone through post for iterating through repeating table.&lt;br /&gt;The main data source in my form for looks like below:&lt;/p&gt;
&lt;p&gt;myFields &lt;br /&gt;&amp;nbsp;&amp;nbsp; dataFields&lt;br /&gt;&amp;nbsp;d:DealsMaster&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DealsDetails&lt;/p&gt;
&lt;p&gt;I have a master detail control on the form. The form works fine i.e. when a record from master is selected the details of the deals are retrieved, changes made are properly submitted etc.&lt;br /&gt;I want to clone a deal. My code looks like follows:&lt;/p&gt;
&lt;p&gt;Sub btnClone_OnClick(eventObj)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dim rootnode, masternode, detailnode, masterrow, detailnodelist, i, tt&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set rootnode = XDocument.DOM.selectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields&amp;quot;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set masternode = XDocument.DOM.selectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields/d:DealsMaster&amp;quot;).cloneNode(true)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;set all the fields in the masternode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; masternode.selectSingleNode(&amp;quot;@deal_id&amp;quot;).text() = &amp;quot;&amp;quot;&amp;nbsp;&amp;nbsp;&amp;#39;this is the primary key of DealsMaster&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; masternode.selectSingleNode(&amp;quot;@deal_inflow_id&amp;quot;).text() = eventObj.Source.selectSingleNode(&amp;quot;@deal_inflow_id&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; masternode.selectSingleNode(&amp;quot;@requestor&amp;quot;).text() = eventObj.Source.selectSingleNode(&amp;quot;@requestor&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; masternode.selectSingleNode(&amp;quot;@deal_start_date&amp;quot;).text() = eventObj.Source.selectSingleNode(&amp;quot;@deal_start_date&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; masternode.selectSingleNode(&amp;quot;@deal_comments&amp;quot;).text() = eventObj.Source.selectSingleNode(&amp;quot;@deal_comments&amp;quot;).value&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;append the masternode which has new values and get reference to the newly added row&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set masterrow = rootnode.appendChild(masternode)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;retrieve the first detail node and clone it&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set detailnode = XDocument.DOM.selectSingleNode(&amp;quot;/dfs:myFields/dfs:dataFields/d:DealsMaster/d:DealsDetails&amp;quot;).cloneNode(false)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;get all detail nodes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set detailnodelist = XDocument.DOM.selectNodes(&amp;quot;/dfs:myFields/dfs:dataFields/d:DealsMaster/d:DealsDetails&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;set all the fields in detailnode in a loop&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 0 to detailnodelist.length-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;detailnode.selectSingleNode(&amp;quot;@detail_id&amp;quot;).text() = &amp;quot;&amp;quot;&amp;nbsp;&amp;nbsp;&amp;#39;&amp;#39;this is the primary key of DealsDetails&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;detailnode.selectSingleNode(&amp;quot;@telex_category&amp;quot;).text() = detailnodelist(i).selectSingleNode(&amp;quot;@telex_category&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;detailnode.selectSingleNode(&amp;quot;@telex_received_sent&amp;quot;).text() = detailnodelist(i).selectSingleNode(&amp;quot;@telex_received_sent&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;detailnode.selectSingleNode(&amp;quot;@telex_from&amp;quot;).text() = detailnodelist(i).selectSingleNode(&amp;quot;@telex_from&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;detailnode.selectSingleNode(&amp;quot;@telex_date&amp;quot;).text() = detailnodelist(i).selectSingleNode(&amp;quot;@telex_date&amp;quot;).value&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;detailnode.selectSingleNode(&amp;quot;@cloned&amp;quot;).text() = &amp;quot;C&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;masternode.appendChild(detailnode)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; next&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;#39;submit to database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XDocument.submit&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;My detailnodelist retrieves all the records from the DealsDetails table. I want detail rows only for the current master row.&lt;br /&gt;Unforunately, I do not know how to loop through the rows which I can see in the detail control. The name of the control is DealsDetails_17.&lt;br /&gt;I observed something else. If I submit to database after -&amp;gt; set masterrow = rootnode.appendChild(masternode) &amp;lt;-, the first detail record from &lt;br /&gt;DealsDetails table is added for that masternode.&lt;/p&gt;
&lt;p&gt;Any pointers???? Your help will be highly appreciated.&lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>