{"id":8084,"date":"2015-11-30T14:45:34","date_gmt":"2015-11-30T20:45:34","guid":{"rendered":"http:\/\/www.mrc-productivity.com\/docs\/?page_id=8084"},"modified":"2024-01-25T17:08:07","modified_gmt":"2024-01-25T23:08:07","slug":"parentchild-applications","status":"publish","type":"ht_kb","link":"https:\/\/www.mrc-productivity.com\/docs\/knowledge-base\/parentchild-applications","title":{"rendered":"Parent\/Child Applications"},"content":{"rendered":"\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-info\"><em>Click <a rel=\"noreferrer noopener\" href=\"https:\/\/www.mrc-productivity.com\/legacy\/maint\/parentchild-applications\" target=\"_blank\">here<\/a> to access the legacy version of this documentation.<\/em><\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<p>Creating applications that support Parent\/Child architecture (also known as Header\/Detail) is a common task for m-Power developers. This feature aims to greatly simplify the development\/customization effort of creating these types of applications. A few examples of Parent\/Child applications include:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Order Entry, where Billing\/Shipping is stored in the parent, and order lines are in the details.<\/li>\n\n\n\n<li>Expense Forms, where employee information is stored in the parent, and expense lines are in the details.<\/li>\n\n\n\n<li>Enrollment Applications, where user information is stored in the parent, and all of their selected courses are stored in the details.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<p>In short, any application that would require you to have a one to many relationship would be a great candidate for this Parent\/Child feature.<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Features<\/h2>\n\n\n\n<p>Creating your Maintenance applications using the Display &amp; Maintain template using the Parent\/Child feature, enables numerous features, including:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Automatic linking of application at run-time. Each parent record will include a link that allows users to view the Child information belonging to the Parent.<\/li>\n\n\n\n<li>The Child review screen will include a link to return to the Parent.<\/li>\n\n\n\n<li>Inclusion of Parent information on Child screens<\/li>\n\n\n\n<li>Auto-delete of Child records when Parent is deleted<\/li>\n\n\n\n<li>Auto-copy of Child records when Parent is copied<\/li>\n\n\n\n<li>Auto-Redirect to add new Child immediately upon creating Header<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Video Documentation<\/h2>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"How to Create Parent Child Applications\" width=\"643\" height=\"362\" src=\"https:\/\/www.youtube.com\/embed\/Aq3E0FmKyCY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation<\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Create Parent Application <\/strong><\/h4>\n\n\n\n<p>Create your Parent Application over the necessary tables using the Data List with Web Form template. Prior to compiling, navigate to the &#8220;Additional Options&#8221; -&gt; &#8220;Template Properties&#8221; section. At the bottom, be sure to set the &#8220;Parent\/Child Options&#8221; value to &#8220;Parent Application.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps.jpg\"><img decoding=\"async\" width=\"834\" height=\"369\" src=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps.jpg\" alt=\"\" class=\"wp-image-11170\" srcset=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps.jpg 834w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-300x133.jpg 300w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-150x66.jpg 150w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-768x340.jpg 768w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-50x22.jpg 50w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-60x27.jpg 60w, https:\/\/www.mrc-productivity.com\/docs\/images\/parentTemplateProps-100x44.jpg 100w\" sizes=\"(max-width: 834px) 100vw, 834px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Create Child Application<\/strong><\/h4>\n\n\n\n<p>Create your Child level Application over the necessary tables using the Display and Maintain template. Prior to compiling, navigate to the &#8220;Template Options&#8221; section. At the bottom, be sure to set the &#8220;Parent\/Child Options&#8221; value to &#8220;Child Application.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps.jpg\"><img decoding=\"async\" width=\"834\" height=\"366\" src=\"https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps.jpg\" alt=\"\" class=\"wp-image-11171\" srcset=\"https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps.jpg 834w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-300x132.jpg 300w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-150x66.jpg 150w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-768x337.jpg 768w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-50x22.jpg 50w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-60x26.jpg 60w, https:\/\/www.mrc-productivity.com\/docs\/images\/childTemplateProps-100x44.jpg 100w\" sizes=\"(max-width: 834px) 100vw, 834px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>Edit Parent Application <\/strong><\/h4>\n\n\n\n<p>Return to your parent application. Click on the &#8220;Actions and info&#8221; -&gt; &#8220;Link Parent to Child&#8221; link. This is what will bind the two applications together, passing the necessary fields.<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-alert\">Button missing? Be sure you&#8217;ve specified the application as a Parent Application in the &#8220;Template Properties&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild.jpg\"><img decoding=\"async\" width=\"629\" height=\"374\" src=\"https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild.jpg\" alt=\"\" class=\"wp-image-11172\" srcset=\"https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild.jpg 629w, https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild-300x178.jpg 300w, https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild-150x89.jpg 150w, https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild-50x30.jpg 50w, https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild-60x36.jpg 60w, https:\/\/www.mrc-productivity.com\/docs\/images\/linkParentToChild-100x59.jpg 100w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/a><\/figure>\n\n\n\n<p><strong>Select Child &#8212; <\/strong>Use the drilldown to select the necessary child.<\/p>\n\n\n\n<p class=\"wp-block-ht-blocks-messages wp-block-hb-message wp-block-hb-message--withicon is-style-alert\">Child Application missing? Be sure you&#8217;ve specified the necessary application as a Child Application in step 2 above.<\/p>\n\n\n\n<p><strong>Configure Parameters &#8212; <\/strong>Use the interface to select the field(s) from the Parent and Child applications that should be linked. For example, if the Parent and Child record utilize Order # as the common link between them, choose both (see image). However, if your case required more than one field (such as Company #), feel free to add as many fields as necessary.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/vue-images\/parentchild4.jpg\"><img decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/docs\/vue-images\/parentchild4.jpg\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Runtime Usage<\/h2>\n\n\n\n<p>The Parent Application contains a new button that allows users to see Child records that pertain to the user<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentchild5.jpg\"><img decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentchild5.jpg\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<p>The Child Application contains Parent information above the Child records as well as a button that allows users to return to the Parent screen<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentchild6.jpg\"><img decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/docs\/images\/parentchild6.jpg\" alt=\"\"\/><\/a><\/figure>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Additional Configuration<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Edit Properties<\/h3>\n\n\n\n<p>There are three configurable options that are included with this feature, all accessible via the Application Properties of the Parent application, under the &#8220;Parent&#8221; tab.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.mrc-productivity.com\/docs\/vue-images\/parentchild7.jpg\" alt=\"\"\/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Auto Redirect After Add &#8212;<\/strong> Redirect to Child is the default. When &#8216;Redirect to Child&#8217; is set, the application will automatically redirect the user to add a Child record after they have added a new Parent Record. However, if &#8220;Normal Redirect&#8221; is set, when a Parent record is added, the application will simply return back to the Parent maintainer.<\/li>\n\n\n\n<li><strong>Auto Copy Child Records &#8212; <\/strong>Off by default. When enabled, in the event that a parent record is copied, all associated child records will also be copied<\/li>\n\n\n\n<li><strong>Auto Delete Child Records &#8212;<\/strong> On by default. When enabled, this will delete all child record associated with the parent when the parent is deleted.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quick Add<\/h3>\n\n\n\n<p>An additional configuration is being able to update a parent record and simultaneously add\/delete a child record all from the web form screen of the parent app. This feature is called the Quick Add feature and <a rel=\"noreferrer noopener\" href=\"\/techblog\/?ht_kb=parent-child-quick-add-feature\" data-type=\"URL\" data-id=\"\/techblog\/?ht_kb=parent-child-quick-add-feature\" target=\"_blank\">this<\/a> documentation will cover how to use this feature in your parent\/child maintainer setup. <\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Creating applications that support Parent\/Child architecture (also known as Header\/Detail) is a common task for m-Power developers. This feature aims to greatly simplify the development\/customization effort of creating these types of applications. A few examples of Parent\/Child applications include: In short, any application that would require you to have a&#8230;<\/p>\n","protected":false},"author":1,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"ht-kb-category":[252],"ht-kb-tag":[],"class_list":["post-8084","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-maintainer"],"_links":{"self":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/8084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/comments?post=8084"}],"version-history":[{"count":21,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/8084\/revisions"}],"predecessor-version":[{"id":14020,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb\/8084\/revisions\/14020"}],"wp:attachment":[{"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/media?parent=8084"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb-category?post=8084"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.mrc-productivity.com\/docs\/wp-json\/wp\/v2\/ht-kb-tag?post=8084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}