﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Application Framework - V1 » Business Objects and Data Access (How do I?)  » Why does Childformdialog not work correctly</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Sat, 30 May 2026 16:08:53 GMT</lastBuildDate><ttl>20</ttl><item><title>Why does Childformdialog not work correctly</title><link>http://forum.strataframe.net/FindPost32867.aspx</link><description>Hi there,&lt;br/&gt;&lt;br/&gt;I have a main form with a BO and a Businessbindingsource to use it with a datagridview. To add new records I call a childform with the childformdialog. This is how it's done:&lt;br/&gt;&lt;br/&gt;&lt;span&gt;[code]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;   LieferBO1.Add()&lt;br/&gt;&lt;br/&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#008000" face="Consolas" size="2"&gt;&lt;font color="#008000" face="Consolas" size="2"&gt;&lt;font color="#008000" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;Dim&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; para &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;As&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;New&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;Liefneuparams&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;&lt;font color="#2b91af" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;para.cNeu = &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;"N"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;para.cModule = &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;"Latitelneu"&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;para.cLiefer = &lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;""&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;font color="#a31515" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;para.lSolo = &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;False&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;If&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2"&gt; Childliefneu.ShowDialog(para) = DialogResult.OK &lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;&lt;font color="#0000ff" face="Consolas" size="2"&gt;Then .......&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br/&gt;&lt;br/&gt;&lt;/span&gt;&lt;span&gt;[/code]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;This works the first time I call it but the second time the&amp;nbsp;liefpos.add()&amp;nbsp;&amp;nbsp;does not add a new record and the bo is positioned on the actual record.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Does anyone know why this is not working?&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Best regards &lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;Thomas&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;</description><pubDate>Sat, 31 Jan 2015 09:42:19 GMT</pubDate><dc:creator>Thomas Holste</dc:creator></item><item><title>RE: Why does Childformdialog not work correctly</title><link>http://forum.strataframe.net/FindPost32870.aspx</link><description>Glad you got it going!</description><pubDate>Sat, 31 Jan 2015 09:42:19 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item><item><title>RE: Why does Childformdialog not work correctly</title><link>http://forum.strataframe.net/FindPost32869.aspx</link><description>Hi Trent,&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;thank you for the Explanation but the error was much simpler. After adding the record&amp;nbsp;I performed a sort on the BO to have the new record shown in the right Position. Resetting the sort before adding works fine.&lt;br/&gt;&lt;br/&gt;Best regards&lt;br/&gt;&lt;br/&gt;Thomas</description><pubDate>Fri, 30 Jan 2015 16:20:58 GMT</pubDate><dc:creator>Thomas Holste</dc:creator></item><item><title>RE: Why does Childformdialog not work correctly</title><link>http://forum.strataframe.net/FindPost32868.aspx</link><description>Remember that the BOs are essentially just being passed over. &amp;nbsp;When I am working on child dialogs, I definitely use the child form dialog so I can map my BOs, but I manage the state of the as part of the showing of the child form dialog. &amp;nbsp;First, take advantage of the SaveCurrentDataTableToSnapshot method on the BO. &amp;nbsp;This is better than an undo because you may go into the child form more than once as part of editing that record. &amp;nbsp;The first time, things would be good, but if you go back in and cancel...well, you just toasted the record or table state. &amp;nbsp;For example:&lt;br/&gt;&lt;br/&gt;&lt;div&gt;&lt;span&gt;[codesnippet]&lt;/span&gt;&lt;div&gt;&lt;span&gt;private void AddRecord()&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span&gt;{&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; myBo.SaveCurrentDataTableToSnapshot("Adding");&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; myBo.Add();&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if(myChildForm.ShowDialog() == DialogResult.Cancel) &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myBo.RestoreCurrentDataTableSnapshot("Adding", true);&lt;/span&gt;&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;div&gt;&lt;span&gt;[/codesnippet]&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;Take this same logic and apply it to an edit. &amp;nbsp;You would just replace the Add with an Edit. &amp;nbsp;You can do it in the same method if you pass over the state you are expecting and the record you are wanting to load. &amp;nbsp;Prior to the edit, you can do a seek to the PK or whatever if you pass it in.</description><pubDate>Thu, 29 Jan 2015 11:00:18 GMT</pubDate><dc:creator>Trent L. Taylor</dc:creator></item></channel></rss>