Child fields are disabled


Author
Message
Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
Hi All,

From some reason the Child fields are disabled on Add mode, but are fine in Edit mode. Somehow before it worked fine.  In the Child object the IncludeInFormAdd is True and in the form level the IncludeInFormAddType is DetermainedByBusinessObject. This is just an exercise for me to learn the SF, but the child and the parent should be saved at the same time. Using SF 1.6.5.1

Thanks,

Doron

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
Have you debugged to actually see if the EditingState of the BO has changed to Adding?  It sounds like something within your configuration is preventing those BOs from being placed in an Add mode.  Since you are using the IncludeInForm stuff, the Edit and the Add states will be determined by the IncludeInForm properties.  You can adjust these settings until you get what you want...but in short, the EditingState of the BO did not change.
Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
Hi Trent,

This is a maintenance form where the parent and the child fields are in the same form and using the tool strip for Adding or Editing each record. I followed all the steps shown in a video and in the help file and got the same problem. I could edit the child and the parent and under the Add mode the child was disabled. The EditingState was Adding initially and then later became Idle. Well I created a sample project with one form , from your sample database and had the same problem.

Please let me know how that can be fixed.

Thanks,

Doron

Attachments
SF_Projects.zip (113 views, 1.00 MB)
Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
It was a very simple problem...you have the ChildAutoFilterOption on the CustomersBO1 set to MatchCurrentRow.  So you will never be able to see a new child record.  This is a basic filtering problem, and you can find post after post in this regard.  I always caution people about using the ChildAutoFilter options and to be careful when using a filter or sort of any kind.  We use them all of the time, but you have to be aware of what will happen when you add a new record or change a value that is part of the filter or sort.

In this case, you could never add a new record because as soon as you create new Orders record the new row will be fitlered out (this is standard ADO.NET).  You need to turn off the filter, allow the foreign key to be set (in this example), then you could apply a filter that would include the new record. 

Bottom line, set the ChildAutoFilterOption to Off on the CustomersBO1 instance, run the app again, click add, and it will work.

Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
Hi Trent,

That property really creates a lot of confusion after searching into the WinForms section. Me and Edhy were looking at this problem and made the same assumption of using the ChildAutoFilterOption property as MatchCurrentRow. In this thread you calrify it: http://forum.strataframe.net/Topic16681-6-1.aspx?Highlight=ChildAutoFilterOption

Regards,

Doron

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
You can use it if you understand when to remove the filter and reapply it.  The post you pointed me to was really more complex than what you are trying to do in regards to the scenario that you gave me (I am sure that your code would be more complex).  However, the point of that post and what I have been telling you is that if you have a filter applied, automated or otherwise, and add a new record, that new record will be immediately filtered.
Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
ok thanks Trent
Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
Hi Trent,

What else can disabled the child fields in Add mode. In the parent BO the ChildAutoFilterOption is Off. In the project I created using your sample data it was fixed but not on my project. Hehe When I navigate the child is shown and I can edit the parent and the child as well.

Thanks,

Doron

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
No records available within the BO (check the MyBo.Count) or the EditingState is Idle.  That's it.  I am 99.99% confident you still have a filter or no records in your BO.  I proved this on the sample you sent me, so I would assume that you are still fighting this.
Doron Farber
Doron Farber
StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)StrataFrame User (152 reputation)
Group: Forum Members
Posts: 92, Visits: 612
Hi Trent,

Yes I fighting this and I  don't give up on it. This is strange since in the maintenance form the ChildAutoFilterOption is really OFF 100% this time. From the toolStrip New button I don't get it to work, but here is how in this form works for now  : Added a button with the following code:
 
  Me.MemberInfoBO1.Add()
  Me.AddressMemBO1.Add()
 
Then the child fields are enabled. If I use only this code:
Me.Add()
 
Then the child fields are disabled. 
 
I also noticed if I don't check the ChildBO.Count > 0 it will crash as well in case there are 0 records when I run it first. When I use the below code in the Navigated method then it is fixed.
 
BusinessLayerException
  The CurrentRow for table '[dbo].[AddressMem]' could not be evaluated because the CurrentRowIndex is out of range. 
Business object record count: 0.  CurrentRowIndex: -1.

While this field is casing it:
  Return CType(Me.CurrentRow.Item("MemberInfo_PK"), System.Int32)
 
Navigated method:
If Me.MemberInfoBO1.Count > 0 Then
      Me.AddressMemBO1.FillByParentPrimaryKey(Me.MemberInfoBO1.MemberInfo_PK)
End If
 
Then I tried to create the same form but based on the SF Standard form class and added the TootStrip and the GradientFormHeader and used again the same BOs and this form works just fine. When I click the New button, the child fields are enabled. Also when I run the form when there are 0 records It does not crash on me even though I don't check If Me.MemberInfoBO1.Count > 0 as shown above. I added that code anyway for other situations when I need to delete the parent and child.
 
Obviously something is happening with the maintenance form. Are there any known issues with this form?Smile Since still that form does not work for me using the ToolStrip and it worked on your test data. Hehe

Thanks,

Doron

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search