By Tim Dol - 5/18/2007
I have a SF Maintenance Form with 3 business objects. Two business objects are editable and the third, a BO based on a view, which is not (The third BO is used on a panel control to display information on a grid). I set the IncludeInFormEditType = DeterminedByBusinessObject. I then set the IncludeInFormEdit on the PrimaryBO and ChildBO = True, and False on the third BO.The 'Edit' button on the MFTS is disabled...Did I mess a setting somewhere? I have tried various combinations but can't seem to get it working unless I change the IncludeInFormEditType setting to AllBusinessOjects or PrimaryBusinessObjects, which then causes problems on my third BO. Thanks Tim
|
By StrataFrame Team - 5/21/2007
This is the code that enables the edit button. When the EditingStateChanged event of a business object is raised, this code is called. '-- Determine the edit button's visibility For Each loBO In Me.ParentForm.GetListOfEditBOs() If (loBO.Count > 0) AndAlso _ (loBO.EditingState = BusinessEditingState.Idle) Then '-- Only enable the edit button if the business object has records and it's idle. llEdit = True '-- Bail after we find the first business object that needs the button Exit For End If Next So, try calling the GetListOfEditBOs() on the form and make sure that at least one of the objects in the list has a count of > 0 and is in the Idle mode.
|
By Tim Dol - 5/22/2007
Thanks Ben.
|
By StrataFrame Team - 5/22/2007
Did you get it working?
|
By Tim Dol - 5/23/2007
No, I can't get it to work properly, but I may have stumbled across something trying out your example. When I set the IncludeINFormEditType = DetermineByBusinessObject on the form, the FormEditingStateChanged event doesn't seem to fire, therefore the code to enable the button isn't executed. When I change the value to AllBusinessObjects or PrimaryBusinessObject, it does fire and the edit button is enabled, so my problem seems to be related to the DetermineByBusinessObject setting. Does this help? Thanks Tim
|
By StrataFrame Team - 5/23/2007
Yes, that helps, Tim, let me check this out. I'll let you know...
|
By Tim Dol - 5/23/2007
Perfect. It will be nice to get this resolved.Tim
|
By Tim Dol - 5/29/2007
just following up to see if you were able to find a problem with this yet.Thanks, Tim
|
By StrataFrame Team - 5/30/2007
Nope, it's working here as expected... Do you by chance have the SF source code built in debug? If you do, then you can put a breakpoint in the MaintenanceFormToolstrip.vb file in the _ParentForm_FormEditingStateChanged() method (line 1066) and step through the code where it sets the enabled state of the edit button.
|
By Tim Dol - 5/30/2007
I am pretty sure I did this but I will try again right now and let you know. I will let you know the results shorty.Thanks, Tim
|
By StrataFrame Team - 5/30/2007
Thanks, tell me what objects are in the GetListOfEditBOs(). And, if any of them are idle, then it should enable the edit button, so if the correct business objects are in that collection, then check to see if all of them are not Idle (in their EditingState).
|
By Tim Dol - 5/30/2007
Ben, okay I have additional information.On main forms it does work fine, but the form I'm having problems with is a child form. As soon as I change the IncludeInFormEditType = DeterminedByBusinessObject, the event doesn't fire. Hope this helps. Tim
|
By Tim Dol - 5/30/2007
Ben, I emailed you a sample project that replicates my problem. Tim
|
By Tim Dol - 6/5/2007
Hi Ben,Just following up to see if you had a chance to look at the project I sent you. Thanks Tim
|
By Trent L. Taylor - 7/6/2007
Tim,OK....this actually was not a bug. Sorry it took so long to figure out what was going on. Here is your problem. You are setting the IncludeInFormEdit property to True on the Child form, but the parent forms Customers BO IncludeInFormEdit is set to False. Since you are using the ChildFormDialog and translating the BOs, the entire BO from the parent gets translated to the child. So it does not matter what properties you set on the child since the parents BO will be the actual object that you are talking to on the child form. Make sense? To see what I am talking about, set the parent forms IncludeInFormEdit to true and then run your sample. You will see that the Edit button becomes enabled. The reason the PrimaryBusiness object option worked the way you expected is because both the parent and child forms had the Customers BO set as the primary BO and it did not need to look at the IncludeInForm... properties to determine the BOs inclusions.
|