Accessing Children BOs from a Parent BO Programmatically


Author
Message
Leonard P.
Leonard P.
StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)StrataFrame Novice (93 reputation)
Group: Awaiting Activation
Posts: 65, Visits: 306
Hello,

I have what seems to be a very simple scenario, but for whatever reason can't get it to work correctly.

I defined parent/child relationship between 2 BOs; 1) setup ParentRelationShip property in BO designer by PK_Id to FK_Id and 2) Dropped 2 objects on the form and set ParentObject property.

I want to loop through parent objects and inner loop children of each parent. But I am getting all "Children" objects for each parent, instead of true children as defined by IDs. What am I missing?

Also is there way to get strongly typed Child object from parent instead of: parentBO.ChildBusinessObjects[0];

here's relevant code:

private void PopulateFactSheets()
{
FillFactSheetsObjects();
if (factSheetCategory.MoveFirst())
{
do
{
TreeNode fsTypeNode = trvFactSheets.Nodes.Add(factSheetCategory.FactSheetType);
FactSheetReport fsR = (FactSheetReport)factSheetCategory.ChildBusinessObjects[0];//can I get to strongly typed child?
if (fsR.MoveFirst())
{
do
{
fsTypeNode.Nodes.Add(fsR.IndexName);
} while (fsR.MoveNext());
}
} while (factSheetCategory.MoveNext());
}
}
private void FillFactSheetsObjects()
{
SqlCommand sqlCmnd = new SqlCommand(SqlCommands.SelectAllFactSheets + ";" + SqlCommands.SelectFactSheetTypes);
BusinessLayer.FillMultipleDataTables(sqlCmnd, factSheetReport, factSheetCategory);
// factSheetReport.ParentBusinessObject = factSheetCategory; //it's set in the designer
}

Thank you for your help.


Reply
Alex Luyando
Alex Luyando
StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)StrataFrame User (298 reputation)
Group: StrataFrame Users
Posts: 112, Visits: 1.2K
Dustin Taylor (08/08/2008)
Glad you got it going!




1) The most efficient way kind of depends on your setup. In most scenarios, doing what you are doing now and filling the child as needed whenever the parent navigates (by way of FillByParentPrimaryKey) is actually the most efficient. BigGrin







Hi all -



A question concerning the above, which may be" Not Applicable" to StrataFrame but something I've become accustomed to using the Visual FoxExpress framework. Would it be incorrect to expect StrataFrame to automatically handle the calls to FillByParentPrimaryKey() based on the pre-established registering of child Business Objects with their parent Business Object? I would envision tying into the ChildAutoFilterOption property (e.g., CurrentRow) on the parent business object, and having a property on the child BOs that would specify the fill method to use (though perhaps that would just be the FillByParentPrimaryKey()).



Am I missing a reason why this should not be behavior inherent in the framework to handle the countless PC BO relationships we all work with?



My apologies in advance if this is a dumb question... still working on the VFP/VFE-to-dotNET/SF transfer...



Thanks!

________________

_____/ Regards,

____/ al




________________
_____/ Regards,
____/ al
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