alguidelines/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/index.html
2022-11-30 12:38:26 +00:00

23 lines
No EOL
93 KiB
HTML

<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.107.0"><meta name=robots content="index, follow"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons/favicon-32x32.png sizes=32x32><link rel=icon type=image/png href=/favicons/android-36x36.png sizes=36x36><link rel=icon type=image/png href=/favicons/android-48x48.png sizes=48x48><link rel=icon type=image/png href=/favicons/android-72x72.png sizes=72x72><link rel=icon type=image/png href=/favicons/android-96x96.png sizes=96x96><link rel=icon type=image/png href=/favicons/android-144x144.png sizes=144x144><link rel=icon type=image/png href=/favicons/android-192x192.png sizes=192x192><title>Totals and Discounts on Subpages Sales and Purchases | alguidelines.dev - Business Central Design Patterns</title><meta name=description content="By Nikola Kukrika at Microsoft Development Center Copenhagen
Abstract
To increase discoverability and productivity, critical information, such as …"><meta property="og:title" content="Totals and Discounts on Subpages Sales and Purchases"><meta property="og:description" content="By Nikola Kukrika at Microsoft Development Center Copenhagen
Abstract To increase discoverability and productivity, critical information, such as statistics, can be moved from separate pages onto the document where it is needed.
For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document."><meta property="og:type" content="article"><meta property="og:url" content="https://alguidelines.dev/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/"><meta property="og:image" content="https://alguidelines.dev/images/og-image-fission.png"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-02-24T14:45:35+01:00"><meta property="og:site_name" content="alguidelines.dev - Business Central Design Patterns"><meta itemprop=name content="Totals and Discounts on Subpages Sales and Purchases"><meta itemprop=description content="By Nikola Kukrika at Microsoft Development Center Copenhagen
Abstract To increase discoverability and productivity, critical information, such as statistics, can be moved from separate pages onto the document where it is needed.
For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document."><meta itemprop=dateModified content="2022-02-24T14:45:35+01:00"><meta itemprop=wordCount content="1280"><meta itemprop=image content="https://alguidelines.dev/images/og-image-fission.png"><meta itemprop=keywords content="C/AL,"><meta name=twitter:card content="summary_large_image"><meta name=twitter:image content="https://alguidelines.dev/images/og-image-fission.png"><meta name=twitter:title content="Totals and Discounts on Subpages Sales and Purchases"><meta name=twitter:description content="By Nikola Kukrika at Microsoft Development Center Copenhagen
Abstract To increase discoverability and productivity, critical information, such as statistics, can be moved from separate pages onto the document where it is needed.
For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document."><link rel=preload href=/scss/main.min.84a617ff0c0265eb62b5cd2929c572f4ed37dc4907d0cf068be4eb2974f6d60f.css as=style><link href=/scss/main.min.84a617ff0c0265eb62b5cd2929c572f4ed37dc4907d0cf068be4eb2974f6d60f.css rel=stylesheet integrity><script src=https://code.jquery.com/jquery-3.6.0.min.js integrity=sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK crossorigin=anonymous></script>
<script src=https://unpkg.com/lunr@2.3.9/lunr.min.js integrity=sha384-203J0SNzyqHby3iU6hzvzltrWi/M41wOP5Gu+BiJMz5nwKykbkUx8Kp7iti0Lpli crossorigin=anonymous></script></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/><img src=/images/SiteLogo.png height=32px>
<span class="font-weight-bold show-desktop">alguidelines.dev - Business Central Design Patterns</span>
<span class="font-weight-bold show-mobile-inline">alguidelines.dev</span></a><div class="td-navbar-nav-scroll ml-md-auto" id=main_navbar><ul class="navbar-nav mt-2 mt-lg-0"><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=/docs/><i class='fas fa-book'></i><span>Docs</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://github.com/microsoft/alguidelines/discussions/ target=_blank><i class='fas fa-comments'></i><span>Discussions</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://github.com/microsoft/alguidelines target=_blank><i class='fab fa-github'></i><span>GitHub</span></a></li><li class="nav-item mr-4 mb-2 mb-lg-0"><a class=nav-link href=https://discord.gg/4wbfNv3 target=_blank><i class='fab fa-discord'></i><span>Discord</span></a></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search class="form-control td-search-input" placeholder="&#xf002; Search this site…" aria-label="Search this site…" autocomplete=off data-offline-search-index-json-src=/offline-search-index.52a9ef35bd6277cece43b30655d6b5be.json data-offline-search-base-href=/ data-offline-search-max-results=10></div></nav></header><div class="container-fluid td-outer"><div class=td-main><div class="row flex-xl-nowrap"><aside class="col-12 col-md-3 col-xl-2 td-sidebar d-print-none"><div id=td-sidebar-menu class=td-sidebar__inner><div id=content-mobile><form class="td-sidebar__search d-flex align-items-center"><input type=search class="form-control td-search-input" placeholder="&#xf002; Search this site…" aria-label="Search this site…" autocomplete=off data-offline-search-index-json-src=/offline-search-index.52a9ef35bd6277cece43b30655d6b5be.json data-offline-search-base-href=/ data-offline-search-max-results=10>
<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><ul class="td-sidebar-nav__section pr-md-3 ul-0"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docs-li><a href=/docs/ title="AL Guidelines" class="align-left pl-0 td-sidebar-link td-sidebar-link__section tree-root" id=m-docs><span>Docs</span></a><ul class=ul-1><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docspatterns-li><a href=/docs/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docspatterns><span>Design Patterns</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsapi-register-fieldset-li><a href=/docs/patterns/api-register-fieldset/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsapi-register-fieldset><span>API Register Fieldset</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternscommand-queue-li><a href=/docs/patterns/command-queue/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternscommand-queue><span>Command Queue</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsapi-delegate-operation-li><a href=/docs/patterns/api-delegate-operation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsapi-delegate-operation><span>Delegate API Operation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsevent-bridge-pattern-li><a href=/docs/patterns/event-bridge-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsevent-bridge-pattern><span>Event Bridge</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsfacade-pattern-li><a href=/docs/patterns/facade-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsfacade-pattern><span>Façade</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsgeneric-method-pattern-li><a href=/docs/patterns/generic-method-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsgeneric-method-pattern><span>Generic Method</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternsno-series-li><a href=/docs/patterns/no-series/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternsno-series><span>No. Series</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docspatternstemplate-method-pattern-li><a href=/docs/patterns/template-method-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docspatternstemplate-method-pattern><span>Template Method Pattern</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsbestpractices-li><a href=/docs/bestpractices/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsbestpractices><span>Best Practices</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesapi-page-li><a href=/docs/bestpractices/api-page/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesapi-page><span>API Page / Query</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-as-an-afterword-li><a href=/docs/bestpractices/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-as-an-afterword><span>begin as an afterword</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbegin-end-li><a href=/docs/bestpractices/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbegin-end><span>Begin-End - Compound Only</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesbinary-operator-line-start-li><a href=/docs/bestpractices/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesbinary-operator-line-start><span>Binary Operator to Start Line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescase-actions-li><a href=/docs/bestpractices/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescase-actions><span>CASE Action on next line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescomments-spacing-li><a href=/docs/bestpractices/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescomments-spacing><span>Comment Spacing</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticescustomtelemetry-li><a href=/docs/bestpractices/customtelemetry/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticescustomtelemetry><span>Custom Telemetry</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesdeleteall-li><a href=/docs/bestpractices/deleteall/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesdeleteall><span>DeleteAll</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesend-else-pair-li><a href=/docs/bestpractices/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesend-else-pair><span>end else pair</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesif-not-find-then-exit-li><a href=/docs/bestpractices/if-not-find-then-exit/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesif-not-find-then-exit><span>if not then exit</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesistemporary-table-safeguard-li><a href=/docs/bestpractices/istemporary-table-safeguard/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesistemporary-table-safeguard><span>IsTemporary record safeguard</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeskeyboard-shortcuts-li><a href=/docs/bestpractices/keyboard-shortcuts/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeskeyboard-shortcuts><span>Keyboard Shortcuts</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeskeyword-pairs-indentation-li><a href=/docs/bestpractices/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeskeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesline-start-keywords-li><a href=/docs/bestpractices/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesline-start-keywords><span>Line Start Keywords</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticeslonely-repeat-li><a href=/docs/bestpractices/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticeslonely-repeat><span>Lonely Repeat</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesnamed-invocations-li><a href=/docs/bestpractices/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesnamed-invocations><span>Named Invocations</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesone-statement-per-line-li><a href=/docs/bestpractices/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesone-statement-per-line><span>One Statement per Line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesseparate-if-and-else-li><a href=/docs/bestpractices/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesseparate-if-and-else><span>Seperate if and else</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesspacing-binary-operators-li><a href=/docs/bestpractices/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesspacing-binary-operators><span>Spacing Binary Operators</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessubscribercodeunits-li><a href=/docs/bestpractices/subscribercodeunits/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessubscribercodeunits><span>Subscriber Codeunits</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticessuggested-abbreviations-li><a href=/docs/bestpractices/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticessuggested-abbreviations><span>Suggested Abbreviations</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-else-li><a href=/docs/bestpractices/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-else><span>Unnecessary else</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesunnecessary-truefalse-li><a href=/docs/bestpractices/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesunnecessary-truefalse><span>Unnecessary true/false</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariable-naming-li><a href=/docs/bestpractices/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariable-naming><span>Variable Naming</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesvariables-declarations-order-li><a href=/docs/bestpractices/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesvariables-declarations-order><span>Variables Declarations Order</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsbestpracticesblank-lines-li><a href=/docs/bestpractices/blank-lines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsbestpracticesblank-lines><span>When not to use Blank Lines</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatterns-li><a href=/docs/navpatterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns><span>NAV Patterns Archive</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child active-path" id=m-docsnavpatternspatterns-li><a href=/docs/navpatterns/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatterns><span>1. Patterns</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsactivity-log-li><a href=/docs/navpatterns/patterns/activity-log/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsactivity-log><span>Activity Logs</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsargument-table-li><a href=/docs/navpatterns/patterns/argument-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsargument-table><span>Argument Table</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsblocked-entity-li><a href=/docs/navpatterns/patterns/blocked-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsblocked-entity><span>Blocked Entity</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity-li><a href=/docs/navpatterns/patterns/blocked-entity/data-driven-blocked-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsblocked-entitydata-driven-blocked-entity><span>Data Driven Blocked Entity</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscached-web-service-calls-li><a href=/docs/navpatterns/patterns/cached-web-service-calls/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscached-web-service-calls><span>Cached Web Server Calls</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsconditional-cascading-update-li><a href=/docs/navpatterns/patterns/conditional-cascading-update/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsconditional-cascading-update><span>Conditional Cascading Update</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscopy-document-li><a href=/docs/navpatterns/patterns/copy-document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscopy-document><span>Copy Document</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-data-from-templates-li><a href=/docs/navpatterns/patterns/create-data-from-templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-data-from-templates><span>Create Data from Templates</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreate-urls-to-nav-clients-li><a href=/docs/navpatterns/patterns/create-urls-to-nav-clients/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreate-urls-to-nav-clients><span>Create URLs to NAV Clients</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscreating-custom-charts-li><a href=/docs/navpatterns/patterns/creating-custom-charts/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscreating-custom-charts><span>Creating Custom Charts</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscross-session-events-li><a href=/docs/navpatterns/patterns/cross-session-events/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscross-session-events><span>Cross Session Events</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternscurrently-active-record-li><a href=/docs/navpatterns/patterns/currently-active-record/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternscurrently-active-record><span>Currently Active Record</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdata-migration-facade-li><a href=/docs/navpatterns/patterns/data-migration-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdata-migration-facade><span>Data Migration Façade</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdiscovery-event-li><a href=/docs/navpatterns/patterns/discovery-event/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdiscovery-event><span>Discovery Event</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsdocument-li><a href=/docs/navpatterns/patterns/document/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsdocument><span>Document</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information-li><a href=/docs/navpatterns/patterns/easy-update-of-setup-or-supplementary-information/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternseasy-update-of-setup-or-supplementary-information><span>Easy Update Of Setup Or Supplementary Information</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternserror-message-processing-li><a href=/docs/navpatterns/patterns/error-message-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternserror-message-processing><span>Error Message Processing</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsextending-the-role-center-headlines-li><a href=/docs/navpatterns/patterns/extending-the-role-center-headlines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsextending-the-role-center-headlines><span>Extending the Role Center Headlines</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsfeature-localization-for-data-structures-li><a href=/docs/navpatterns/patterns/feature-localization-for-data-structures/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsfeature-localization-for-data-structures><span>Feature Localization For Data Structures</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternshooks-li><a href=/docs/navpatterns/patterns/hooks/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternshooks><span>Hooks</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern-li><a href=/docs/navpatterns/patterns/implementation-of-surrogate-keys-using-autoincrement-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsimplementation-of-surrogate-keys-using-autoincrement-pattern><span>Surrogate keys using Autoincrement Pattern</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsinstructions-in-the-ui-li><a href=/docs/navpatterns/patterns/instructions-in-the-ui/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsinstructions-in-the-ui><span>Instructions in the UI</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsintegration-of-addresses-li><a href=/docs/navpatterns/patterns/integration-of-addresses/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsintegration-of-addresses><span>Integration of Addresses</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-error-processing-li><a href=/docs/navpatterns/patterns/journal-error-processing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-error-processing><span>Journal Error Processing</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsjournal-template-batch-line-li><a href=/docs/navpatterns/patterns/journal-template-batch-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsjournal-template-batch-line><span>Journal Template Batch Line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmaster-data-li><a href=/docs/navpatterns/patterns/master-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmaster-data><span>Master Data</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-file-download-li><a href=/docs/navpatterns/patterns/multi-file-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-file-download><span>Multi-file Download</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmulti-page-list-li><a href=/docs/navpatterns/patterns/multi-page-list/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmulti-page-list><span>Multi-Page List</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsmultilanguage-application-data-li><a href=/docs/navpatterns/patterns/multilanguage-application-data/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsmultilanguage-application-data><span>Multilanguage Application Data</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnet-exception-handling-in-cal-li><a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnet-exception-handling-in-cal><span>NET Exception Handling in CAL</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal-li><a href=/docs/navpatterns/patterns/net-exception-handling-in-cal/tryfunction-net-exception-handling-in-cal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnet-exception-handling-in-caltryfunction-net-exception-handling-in-cal><span>TryFunction NET Exception Handling in CAL</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsno-series-li><a href=/docs/navpatterns/patterns/no-series/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsno-series><span>No Series</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsnotifications-li><a href=/docs/navpatterns/patterns/notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsnotifications><span>Notifications</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsin-context-notifications-li><a href=/docs/navpatterns/patterns/notifications/in-context-notifications/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsin-context-notifications><span>In-context Notifications</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern-li><a href=/docs/navpatterns/patterns/notifications/notification-lifecycle-management-pattern/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsnotificationsnotification-lifecycle-management-pattern><span>Notification Lifecycle Management Pattern</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsobserver-li><a href=/docs/navpatterns/patterns/observer/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsobserver><span>Observer</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsposting-routine-select-behavior-li><a href=/docs/navpatterns/patterns/posting-routine-select-behavior/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsposting-routine-select-behavior><span>Posting Routine - Select Behavior</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsproduct-name-li><a href=/docs/navpatterns/patterns/product-name/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsproduct-name><span>Product Name</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternsqueries-li><a href=/docs/navpatterns/patterns/queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternsqueries><span>Queries</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries-li><a href=/docs/navpatterns/patterns/queries/select-distinct-with-queries/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesselect-distinct-with-queries><span>SELECT DISTINCT with Queries</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records-li><a href=/docs/navpatterns/patterns/queries/use-queries-to-detect-duplicate-records/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-detect-duplicate-records><span>Use Queries to Detect Duplicate Records</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops-li><a href=/docs/navpatterns/patterns/queries/use-queries-to-replace-nested-loops/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsqueriesuse-queries-to-replace-nested-loops><span>Use Queries to Replace Nested Loops</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsread-once-initialization-and-validation-li><a href=/docs/navpatterns/patterns/read-once-initialization-and-validation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsread-once-initialization-and-validation><span>Read-once Initialization and Validation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreleased-entity-li><a href=/docs/navpatterns/patterns/released-entity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreleased-entity><span>Released Entity</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsreport-selection-li><a href=/docs/navpatterns/patterns/report-selection/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsreport-selection><span>Report Selection</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssecurity-li><a href=/docs/navpatterns/patterns/security/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssecurity><span>Security</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation-li><a href=/docs/navpatterns/patterns/security/1-sensitive-data-encapsulation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity1-sensitive-data-encapsulation><span>Sensitive Data Encapsulation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity2-data-encryption-li><a href=/docs/navpatterns/patterns/security/2-data-encryption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity2-data-encryption><span>Data Encryption</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity3-single-point-of-access-li><a href=/docs/navpatterns/patterns/security/3-single-point-of-access/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity3-single-point-of-access><span>Single Point of Access</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity4-masked-text-li><a href=/docs/navpatterns/patterns/security/4-masked-text/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity4-masked-text><span>Masked Text</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssecurity5-ssl-in-nav-li><a href=/docs/navpatterns/patterns/security/5-ssl-in-nav/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssecurity5-ssl-in-nav><span>SSL in NAV</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssetup-specificity-fallback-li><a href=/docs/navpatterns/patterns/setup-specificity-fallback/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssetup-specificity-fallback><span>Setup Specificity Fallback</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternssilent-file-upload-and-download-li><a href=/docs/navpatterns/patterns/silent-file-upload-and-download/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssilent-file-upload-and-download><span>Silent File Upload and Download</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatternspatternssingleton-li><a href=/docs/navpatterns/patterns/singleton/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingleton><span>Singleton</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-codeunit-li><a href=/docs/navpatterns/patterns/singleton/singleton-codeunit/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-codeunit><span>Singleton Codeunit</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatternspatternssingletonsingleton-table-li><a href=/docs/navpatterns/patterns/singleton/singleton-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatternspatternssingletonsingleton-table><span>Singleton Table</span></a><ul class="ul-5 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table-li><a href=/docs/navpatterns/patterns/singleton/singleton-table/cue-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablecue-table><span>Cue Table</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table-li><a href=/docs/navpatterns/patterns/singleton/singleton-table/setup-table/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternssingletonsingleton-tablesetup-table><span>Setup Table</span></a></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsstandard-journal-li><a href=/docs/navpatterns/patterns/standard-journal/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsstandard-journal><span>Standard Journal</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstemporary-dataset-report-li><a href=/docs/navpatterns/patterns/temporary-dataset-report/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstemporary-dataset-report><span>Temporary Dataset Report</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases-li><a href=/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/ class="align-left pl-0 active td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstotals-and-discounts-on-subpages-sales-and-purchases><span class=td-sidebar-nav-active-item>Totals and Discounts on Subpages Sales and Purchases</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternstransfer-custom-fields-li><a href=/docs/navpatterns/patterns/transfer-custom-fields/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternstransfer-custom-fields><span>Transfer Custom Fields</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternspatternsvariant-facade-li><a href=/docs/navpatterns/patterns/variant-facade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternspatternsvariant-facade><span>Variant Facade</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns2-anti-patterns-li><a href=/docs/navpatterns/2-anti-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns2-anti-patterns><span>2. Anti-Patterns</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsnav-upgrade-li><a href=/docs/navpatterns/2-anti-patterns/nav-upgrade/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsnav-upgrade><span>Nav Upgrade</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns2-anti-patternsreusable-bugs-li><a href=/docs/navpatterns/2-anti-patterns/reusable-bugs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns2-anti-patternsreusable-bugs><span>Reusable Bugs</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns3-cal-coding-guidelines-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelines><span>3. CAL Coding Guidelines</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesign-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesdesign><span>Design</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/by-reference-parameters/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignby-reference-parameters><span>By Reference Parameters</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/class-coupling/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignclass-coupling><span>Class Coupling</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/cyclomatic-complexity/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigncyclomatic-complexity><span>Cyclomatic Complexity</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/encapsulate-local-functionality/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignencapsulate-local-functionality><span>Encapsulate Local Functionality</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/findset-findfirst-findlast/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignfindset-findfirst-findlast><span>FINDSET FINDFIRST FINDLAST</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesigninitialized-variables><span>Initialized Variables</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/maintainability-index/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignmaintainability-index><span>Maintainability Index</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/parameter-placeholders/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignparameter-placeholders><span>Parameter Placeholders</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/static-object-invocation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignstatic-object-invocation><span>Static Object Invocation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/unreachable-code/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunreachable-code><span>Unreachable Code</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-initialized-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-initialized-variables><span>Unused Initialized Variables</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/unused-variables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignunused-variables><span>Unused Variables</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/variable-capacity-mismatch/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignvariable-capacity-mismatch><span>Variable Capacity Mismatch</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision-li><a href=/docs/navpatterns/3-cal-coding-guidelines/design/with-scope-name-collision/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesdesignwith-scope-name-collision><span>WITH Scope Name Collision</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types-li><a href=/docs/navpatterns/3-cal-coding-guidelines/internally-used-dot-net-types/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternally-used-dot-net-types><span>Internally used DotNet Types</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization-li><a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalization><span>Internationalization</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate-li><a href=/docs/navpatterns/3-cal-coding-guidelines/internationalization/using-calcdate/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesinternationalizationusing-calcdate><span>Using Calcdate</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelineslocalizability><span>Localizability</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/captionml-for-system-tables/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilitycaptionml-for-system-tables><span>CaptionML on System Pages</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/fieldcaption-and-tablecaption/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityfieldcaption-and-tablecaption><span>FIELDCAPTION and TABLECAPTION</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/global-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityglobal-text-constants><span>Global Text Constants</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/use-text-constants/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityuse-text-constants><span>Use Text Constants</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml-li><a href=/docs/navpatterns/3-cal-coding-guidelines/localizability/using-optioncaptionml/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelineslocalizabilityusing-optioncaptionml><span>Using OptionCaptionML</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadability-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesreadability><span>Readability</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-as-an-afterword/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-as-an-afterword><span>Begin as an 'After Word'</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/begin-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybegin-end><span>Begin-End - Compound Only</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/binary-operator-line-start/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitybinary-operator-line-start><span>Binary Operator to Start Line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/blank-lines/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityblank-lines><span>Blank Lines</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/case-actions/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycase-actions><span>CASE Action</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/colon-usage-in-case/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycolon-usage-in-case><span>Colon usage in CASE</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-curly-brackets/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-curly-brackets><span>Comments inside Curly Brackets</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/comments-spacing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitycomments-spacing><span>Comment Spacing</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/end-else-pair/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityend-else-pair><span>END ELSE Pair</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityindentation><span>Indentation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/keyword-pairs-indentation/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitykeyword-pairs-indentation><span>Keyword Pairs - Indentation</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/line-start-keywords/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityline-start-keywords><span>Line Start Keywords</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/lonely-repeat/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitylonely-repeat><span>Lonely Repeat</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/named-invocations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynamed-invocations><span>Named Invocations</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/nested-withs/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitynested-withs><span>Nested WITHs</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/one-statement-per-line/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityone-statement-per-line><span>One Statement Per Line</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/separate-if-and-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityseparate-if-and-else><span>Separate IF and ELSE</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-binary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-binary-operators><span>Spacing Binary Operators</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-brackets-and/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-brackets-and><span>Spacing Brackets and ::</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/spacing-unary-operators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityspacing-unary-operators><span>Spacing Unary Operators</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/suggested-abbreviations/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitysuggested-abbreviations><span>Suggested Abbreviations</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/temporary-variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytemporary-variable-naming><span>Temporary Variable Naming</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/textconst-suffixes/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilitytextconst-suffixes><span>TextConst Suffixes</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unary-operator-line-end/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunary-operator-line-end><span>Unary Operator Line End</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-compound-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-compound-parenthesis><span>Unnecessary Compound Parenthesis</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-else/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-else><span>Unnecessary ELSE</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-function-parenthesis/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-function-parenthesis><span>Unnecessary Function Parenthesis</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-separators/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-separators><span>Unnecessary Separators</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/unnecessary-truefalse/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityunnecessary-truefalse><span>Unnecessary TRUE/FALSE</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-already-scoped/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-already-scoped><span>Variable Already Scoped</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variable-naming/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariable-naming><span>Variable Naming</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order-li><a href=/docs/navpatterns/3-cal-coding-guidelines/readability/variables-declarations-order/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesreadabilityvariables-declarations-order><span>Variables Declarations Order</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesux-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ux/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns3-cal-coding-guidelinesux><span>UX</span></a><ul class="ul-4 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ux/actions-images/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxactions-images><span>Actions - Images</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ux/confirm/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxconfirm><span>CONFIRM</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ux/fielderror/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxfielderror><span>FIELDERROR</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error-li><a href=/docs/navpatterns/3-cal-coding-guidelines/ux/message-and-error/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns3-cal-coding-guidelinesuxmessage-and-error><span>MESSAGE and ERROR</span></a></li></ul></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docsnavpatterns4-get-involved-li><a href=/docs/navpatterns/4-get-involved/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docsnavpatterns4-get-involved><span>(OLD) Get Involved</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedcode-of-conduct-li><a href=/docs/navpatterns/4-get-involved/code-of-conduct/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedcode-of-conduct><span>Code of Conduct</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedpatterns-authors-li><a href=/docs/navpatterns/4-get-involved/patterns-authors/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedpatterns-authors><span>Patterns Authors</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns-li><a href=/docs/navpatterns/4-get-involved/template-for-writing-nav-design-patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatterns4-get-involvedtemplate-for-writing-nav-design-patterns><span>Template for writing Nav Design Patterns</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child" id=m-docsnavpatternsrelated-links-li><a href=/docs/navpatterns/related-links/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docsnavpatternsrelated-links><span>Related Links</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child" id=m-docscontributing-li><a href=/docs/contributing/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributing><span>Contributing</span></a><ul class="ul-2 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingformattingtips-li><a href=/docs/contributing/formattingtips/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingformattingtips><span>Formatting tips</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingforkandpr-li><a href=/docs/contributing/forkandpr/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingforkandpr><span>Guide to Fork & PR</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtheapprovalprocess-li><a href=/docs/contributing/theapprovalprocess/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtheapprovalprocess><span>Understanding the Approval Process</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docscontributinginstallhugo-li><a href=/docs/contributing/installhugo/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributinginstallhugo><span>Install Hugo</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributinginstallhugotheshortcut-li><a href=/docs/contributing/installhugo/theshortcut/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributinginstallhugotheshortcut><span>Devcontainer with VS Code</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributinginstallhugomanuallyonwindows11-li><a href=/docs/contributing/installhugo/manuallyonwindows11/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributinginstallhugomanuallyonwindows11><span>Manually on Windows 11</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributinginstallhugousingpowershellonwindows11-li><a href=/docs/contributing/installhugo/usingpowershellonwindows11/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributinginstallhugousingpowershellonwindows11><span>Powershell on Windows 11</span></a></li></ul></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section with-child collapse" id=m-docscontributingtemplates-li><a href=/docs/contributing/templates/ class="align-left pl-0 td-sidebar-link td-sidebar-link__section" id=m-docscontributingtemplates><span>Templates</span></a><ul class="ul-3 foldable"><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatesbestpractice-li><a href=/docs/contributing/templates/bestpractice/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatesbestpractice><span>Title Here</span></a></li><li class="td-sidebar-nav__section-title td-sidebar-nav__section without-child collapse" id=m-docscontributingtemplatespatterns-li><a href=/docs/contributing/templates/patterns/ class="align-left pl-0 td-sidebar-link td-sidebar-link__page" id=m-docscontributingtemplatespatterns><span>Title Here</span></a></li></ul></li></ul></li></ul></li></ul></nav></div></aside><aside class="d-none d-xl-block col-xl-2 td-sidebar-toc d-print-none"><div class="td-page-meta ml-2 pb-1 pt-2 mb-0"><a href=https://github.com/microsoft/alguidelines/tree/main/content/docs/NAVPatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/index.md class=td-page-meta--view target=_blank rel=noopener><i class="fa fa-file-alt fa-fw"></i> View page source</a>
<a href=https://github.com/microsoft/alguidelines/edit/main/content/docs/NAVPatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/index.md class=td-page-meta--edit target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Edit this page</a>
<a href="https://github.com/microsoft/alguidelines/new/main/content/docs/NAVPatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/index.md?filename=change-me.md&value=---%0Atitle%3A+%22Long+Page+Title%22%0AlinkTitle%3A+%22Short+Nav+Title%22%0Aweight%3A+100%0Adescription%3A+%3E-%0A+++++Page+description+for+heading+and+indexes.%0A---%0A%0A%23%23+Heading%0A%0AEdit+this+template+to+create+your+new+page.%0A%0A%2A+Give+it+a+good+name%2C+ending+in+%60.md%60+-+e.g.+%60getting-started.md%60%0A%2A+Edit+the+%22front+matter%22+section+at+the+top+of+the+page+%28weight+controls+how+its+ordered+amongst+other+pages+in+the+same+directory%3B+lowest+number+first%29.%0A%2A+Add+a+good+commit+message+at+the+bottom+of+the+page+%28%3C80+characters%3B+use+the+extended+description+field+for+more+detail%29.%0A%2A+Create+a+new+branch+so+you+can+preview+your+new+file+and+request+a+review+via+Pull+Request.%0A" class=td-page-meta--child target=_blank rel=noopener><i class="fa fa-edit fa-fw"></i> Create child page</a>
<a href="https://github.com/microsoft/alguidelines/issues/new?title=Totals%20and%20Discounts%20on%20Subpages%20Sales%20and%20Purchases" class=td-page-meta--issue target=_blank rel=noopener><i class="fab fa-github fa-fw"></i> Create Issue</a>
<a href="https://github.com/microsoft/alguidelines/discussions?discussions_q=Totals%20and%20Discounts%20on%20Subpages%20Sales%20and%20Purchases" class=td-page-meta--issue target=_blank rel=noopener><i class="fab fa-github fa-fw"></i> Discussions</a>
<a href=https://github.com/microsoft/alguidelines/issues/new class=td-page-meta--project-issue target=_blank rel=noopener><i class="fas fa-tasks fa-fw"></i> Create project issue</a></div><div class=td-toc><nav id=TableOfContents><ul><li><a href=#abstract>Abstract</a></li><li><a href=#description>Description</a></li><li><a href=#usages>Usages</a><ul><li><a href=#flags-that-totals-are-not-updated>Flags That Totals Are Not Updated</a></li><li><a href=#total-calculation-and-update-logic>Total Calculation and Update Logic</a></li><li><a href=#ui-related-updates>UI-Related Updates</a></li><li><a href=#update-controls>Update Controls</a></li><li><a href=#ui----presentation-layer>UI &ndash; Presentation Layer:</a></li><li><a href=#ui----manual-totals-update>UI &ndash; Manual Totals Update</a></li></ul></li><li><a href=#nav-usages>NAV Usages</a></li><li><a href=#ideas-for-improvement>Ideas for Improvement</a></li></ul></nav></div><div class="taxonomy taxonomy-terms-cloud taxo-tags"><h5 class=taxonomy-title>Tag Cloud</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://alguidelines.dev/tags/al/ data-taxonomy-term=al><span class=taxonomy-label>AL</span><span class=taxonomy-count>36</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/api/ data-taxonomy-term=api><span class=taxonomy-label>API</span><span class=taxonomy-count>3</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/c/al/ data-taxonomy-term=c/al><span class=taxonomy-label>C/AL</span><span class=taxonomy-count>136</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/decoupling/ data-taxonomy-term=decoupling><span class=taxonomy-label>Decoupling</span><span class=taxonomy-count>2</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/extendability/ data-taxonomy-term=extendability><span class=taxonomy-label>Extendability</span><span class=taxonomy-count>3</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/interface/ data-taxonomy-term=interface><span class=taxonomy-label>Interface</span><span class=taxonomy-count>2</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/performance/ data-taxonomy-term=performance><span class=taxonomy-label>Performance</span><span class=taxonomy-count>2</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/productivity/ data-taxonomy-term=productivity><span class=taxonomy-label>Productivity</span><span class=taxonomy-count>1</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/readability/ data-taxonomy-term=readability><span class=taxonomy-label>Readability</span><span class=taxonomy-count>55</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/telemetry/ data-taxonomy-term=telemetry><span class=taxonomy-label>Telemetry</span><span class=taxonomy-count>1</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/tags/testability/ data-taxonomy-term=testability><span class=taxonomy-label>Testability</span><span class=taxonomy-count>2</span></a></li></ul></div><div class="taxonomy taxonomy-terms-cloud taxo-categories"><h5 class=taxonomy-title>Categories</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://alguidelines.dev/categories/best-practice/ data-taxonomy-term=best-practice><span class=taxonomy-label>Best Practice</span><span class=taxonomy-count>90</span></a></li><li><a class=taxonomy-term href=https://alguidelines.dev/categories/pattern/ data-taxonomy-term=pattern><span class=taxonomy-label>Pattern</span><span class=taxonomy-count>73</span></a></li></ul></div></aside><main class="col-12 col-md-9 col-xl-8 pl-md-5" role=main><nav aria-label=breadcrumb class=td-breadcrumbs><ol class=breadcrumb><li class=breadcrumb-item><a href=https://alguidelines.dev/docs/>Docs</a></li><li class=breadcrumb-item><a href=https://alguidelines.dev/docs/navpatterns/>NAV Patterns Archive</a></li><li class=breadcrumb-item><a href=https://alguidelines.dev/docs/navpatterns/patterns/>1. Patterns</a></li><li class="breadcrumb-item active" aria-current=page><a href=https://alguidelines.dev/docs/navpatterns/patterns/totals-and-discounts-on-subpages-sales-and-purchases/>Totals and Discounts on Subpages Sales and Purchases</a></li></ol></nav><div class=td-content><h1>Totals and Discounts on Subpages Sales and Purchases</h1><header class=article-meta><div class="taxonomy taxonomy-terms-article taxo-tags"><h5 class=taxonomy-title>Tags:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://alguidelines.dev/tags/c/al/ data-taxonomy-term=c/al><span class=taxonomy-label>C/AL</span></a></li></ul></div><div class="taxonomy taxonomy-terms-article taxo-categories"><h5 class=taxonomy-title>Categories:</h5><ul class=taxonomy-terms><li><a class=taxonomy-term href=https://alguidelines.dev/categories/pattern/ data-taxonomy-term=pattern><span class=taxonomy-label>Pattern</span></a></li></ul></div></header><p><em>By Nikola Kukrika at Microsoft Development Center Copenhagen</em></p><h2 id=abstract>Abstract</h2><p>To increase discoverability and productivity, critical information, such as statistics, can be moved from separate pages onto the document where it is needed.</p><p>For example, documents should clearly display totals and discounts information to provide quick overview, make it easy to relate the amounts to the document currency, and to allow the user to see and apply discounts directly on the document.</p><h2 id=description>Description</h2><p>Before Microsoft Dynamics NAV 2015, totals and discount information was scattered between the document and the Statistics page, which made it less discover-able and less usable for new users. It was difficult to see the discount amounts, relate the amounts to the currency of the invoice, and it was not-intuitive that you had to update the Statistics page to see updates on the document. In addition, the result of the update was not visible on the main document, which added to the confusion.</p><p>Totals and discount information logically belongs on the document, as is the case on many competitor products.</p><p>The Statistics page contains too much information for most common scenarios, and only a part of the information is visible on the related document. See the following example for sales order statistics.</p><p><a href=4300.Fig-1.jpg><img src=4300.Fig-1.jpg alt=" "></a></p><p>With the pattern implemented, selected statistics fields are placed on the sales order, as in the following example.</p><p><a href=Fig-2.jpg><img src=Fig-2.jpg alt=" "></a></p><p>This new layout gives precise and complete information about totals and discounts, with discounts on the left side and totals on the right side. The currency is clearly shown, and the layout resembles a printed document. The values are always updated (with some exceptions that are explained in the next following sections), and the user can apply a discount directly on the document.</p><p>Options considered when deciding on the layout:</p><ul><li>A new FactBox</li><li>A new FastTab</li><li>On the Lines subpage</li></ul><p>The Lines subpage option was chosen because:</p><ul><li>Can be made with cleaner code</li><li>Is always visible, not collapsible, as opposed to FactBox and FastTab options</li><li>Less chrome in the UI</li></ul><h2 id=usages>Usages</h2><p>Concerning update of totals and discounts, the following were considered:</p><ul><li>All code should be in one place</li><li>Existing VAT, invoice discount calculation, etc. should be reused and not re-implemented.</li><li>The presentation layer should be separated from the logic.</li><li>Presentation layer should have simple (one liner) calls to the logic</li><li>System responsiveness should not be significantly affected</li><li>Totals and discounts should be updated &ldquo;on-the-fly&rdquo; on any change that affects amounts</li></ul><p>The following artifacts were implemented to achieve the desired functionality.</p><h3 id=flags-that-totals-are-not-updated>Flags That Totals Are Not Updated</h3><p>In order to always update the totals, the system must have a way to mark that a specific change should trigger a recalculation of the totals. To achieve this, the following was implemented.</p><ul><li>On the lines:<ul><li>A new field, Recalculate Invoice Discount, was added and set to FALSE by default.</li></ul></li></ul><p>The <em>UpdateAmounts</em> function sets the new field to TRUE for any execution. This function was chosen as it is a central entry point for any amount-related change.</p><p><a href=Fig-3.jpg><img src=Fig-3.jpg alt=" "></a></p><ul><li>On the header:<ul><li>A new FlowField, Recalculate Invoice Discount was added. This field is TRUE if at least one line (that relates to the header) has been marked as &ldquo;dirty&rdquo;, meaning that totals must be recalculated.</li></ul></li></ul><p><a href=6305.Fig-4.jpg><img src=6305.Fig-4.jpg alt=" "></a></p><p>Update diagram</p><p><a href=Fig-5.jpg><img src=Fig-5.jpg alt=" "></a></p><h3 id=total-calculation-and-update-logic>Total Calculation and Update Logic</h3><p>The following new codeunits were added:</p><ul><li>COD56 and COD66 (one for sales and one for purchase) are responsible for the &ldquo;heavy&rdquo; tasks of calculating/applying totals and discounts by calling into existing code, similarly to how the Statistics page works.</li><li>After recalculation, the flag field is reset on all the lines related to a specific header.</li><li>These calculations, in the existing implementation, are triggered ONLY in case of UI scenarios. Non-UI scenarios are not affected.</li></ul><p><strong>Note:</strong> In case of web-service implementations that do not use the existing pages, the total calculation and the invoice discount logic should be called specifically to display similar functionality.</p><h3 id=ui-related-updates>UI-Related Updates</h3><p>A new CU, COD57 has been added and it contains the logic used to update the fields that will, in the end, be displayed in the UI. Decision was to merge both the sales and purchase functionality into one place.</p><h3 id=update-controls>Update Controls</h3><p>The pattern is applied to both non-posted documents (orders, invoices, etc.) and posted documents (posted Invoice, etc.). Because the posted document is a document that does not change, the implementation is simplified as follows.</p><h4 id=subpage---non-posted-documents>Subpage - Non-posted documents</h4><p>The <em>OnAfterGetCurrRecord</em> function call is responsible for updating the totals- and discount-related controls.</p><p>To avoid duplicating lots of code in many places, a single function with more parameters &ldquo;pattern&rdquo; was chosen. The function returns all the controls updated in a single call, as follows.</p><p><a href=Fig-6.jpg><img src=Fig-6.jpg alt=" "></a></p><p>Manual invoice discount. One function call when applying a manual invoice discount, as follows.</p><p><a href=Fig-7.jpg><img src=Fig-7.jpg alt=" "></a></p><p><strong>Note:</strong> After applying the manual discount, the lines should be refreshed as they will be changed in batch mode.</p><p>The following &ldquo;decorators&rdquo; were added to recalculate amounts on the fly:</p><ul><li>Totals should always be updated as soon as the user leaves the field.</li></ul><p>Code should be added to the validate triggers of the controls that are changing the amounts in order to refresh the total controls.<a href=Fig-8.jpg><img src=Fig-8.jpg alt=" "></a></p><p><strong>Note:</strong> Amounts will not always be up to date because of the following:</p><ul><li>Performance. The update must be triggered manually if the number of lines is above 100. (100 was chosen because performance measurements have demonstrated that with more than 100 lines, the performance was worse than 0.5-1s in update time.)</li><li>Missed/customized triggers or header changes - cannot trigger lines update from header. Likewise, lines cannot trigger the header to update.</li><li>In the above cases, a link next to the totals will be displayed informing user that totals/discounts might not be updated and they can be updated by selecting the link</li></ul><h4 id=subpage----posted-documents>Subpage &ndash; Posted Documents</h4><p>Only the _OnAfterGetCurrRecord _function will have code because posted documents cannot be changed. Therefore, totals do not need to be updated.</p><p><a href=Fig-9.jpg><img src=Fig-9.jpg alt=" "></a></p><h3 id=ui----presentation-layer>UI &ndash; Presentation Layer:</h3><p>After Platform added support for this specific case, the layout is very simple, as follows.</p><p><a href=Fig-10.jpg><img src=Fig-10.jpg alt=" "></a></p><p>This will produce the layout we wanted:</p><p><a href=Fig-11.jpg><img src=Fig-11.jpg alt=" "></a></p><h3 id=ui----manual-totals-update>UI &ndash; Manual Totals Update</h3><p>As mentioned before, there are cases when the user is informed that totals/discounts might not be up to date and that it should select a link in order to get the updated values.</p><p>The link is part of the sub-part where totals and discounts are added. The visibility is controlled by actually controlling the text (message, or empty), because Platform does not support making only one visible/invisible (it must be a group). When the link is displayed, the styling is also changed for the total/discount controls, and the values are set to 0.</p><p><a href=Fig-12.jpg><img src=Fig-12.jpg alt=" "></a></p><h2 id=nav-usages>NAV Usages</h2><p>We have implemented these scenarios for sales and purchase documents (order, invoice, quote, credit memos, return orders, including posted documents). Note that the implementation in NAV 2015 is a bit different than the one in NAV 2014 C5 objects (1300 range). It was decided not to merge the two implementations, among other reasons because the NAV 2014 C5 implementation does not fit the full application.</p><p>The pattern can easily be extended to new sales and purchase documents. If the pattern is followed, it can also be extended to other types of documents, such as in services, jobs, etc.</p><p><strong>Note:</strong> This new pattern is not implemented in the North America and India versions. This is due to special local features in the two versions regions and the multitude of sales tax/vat options that would make the solution non-user friendly and not optimized for performance.</p><h2 id=ideas-for-improvement>Ideas for Improvement</h2><p>Platform support to be able to trigger full-page update from the lines. Support does exist today, but it is not programmatically controlled at design time. This means that it cannot be used in all cases.</p><div style=position:relative;padding-bottom:56.25%;height:0;overflow:hidden><iframe src=https://www.youtube.com/embed/U3noU-WT8Xk style=position:absolute;top:0;left:0;width:100%;height:100%;border:0 allowfullscreen title="YouTube Video"></iframe></div><div class="text-muted mt-5 pt-3 border-top">Last modified February 24, 2022: <a href=https://github.com/microsoft/alguidelines/commit/5ee0436639455a35835c5ce88241d3fad662ee06>Added tags & categories + cleanup (5ee04366)</a>
by waldo1001</div></div></main></div></div><footer class="bg-dark py-5 row d-print-none"><div class="container-fluid mx-sm-5"><div class=row><div class="col-6 col-sm-4 text-xs-center order-sm-2"><ul class="list-inline mb-0"><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=GitHub aria-label=GitHub><a class=text-white target=_blank rel=noopener href=https://github.com/microsoft/alguidelines aria-label=GitHub><i class="fab fa-github"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Twitter aria-label=Twitter><a class=text-white target=_blank rel=noopener href="https://twitter.com/search?q=%23bcalhelp" aria-label=Twitter><i class="fab fa-twitter"></i></a></li><li class="list-inline-item mx-2 h3" data-toggle=tooltip data-placement=top title=Discord aria-label=Discord><a class=text-white target=_blank rel=noopener href=https://discord.gg/4wbfNv3 aria-label=Discord><i class="fab fa-discord"></i></a></li></ul></div><div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"></div><div class="col-12 col-sm-4 text-center py-2 order-sm-2"><small class=text-white>&copy; 2022 alguidelines.dev Project All Rights Reserved</small></div></div></div></footer></div><script src=https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js integrity=sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js integrity="sha512-UR25UO94eTnCVwjbXozyeVd6ZqpaAE9naiEUBK/A+QDbfSTQFhPGj5lOR6d8tsgbBk84Ggb5A3EkjsOgPRPcKA==" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/mermaid@8.13.4/dist/mermaid.min.js integrity="sha512-JERecFUBbsm75UpkVheAuDOE8NdHjQBrPACfEQYPwvPG+fjgCpHAz1Jw2ci9EXmd3DdfiWth3O3CQvcfEg8gsA==" crossorigin=anonymous></script>
<script src=/js/tabpane-persist.js></script>
<script src=/js/main.min.9021b54d402798091af52a2fc8b747e6c5076e5f1323b276dc25e0774fb46c2d.js integrity="sha256-kCG1TUAnmAka9SovyLdH5sUHbl8TI7J23CXgd0+0bC0=" crossorigin=anonymous></script></body></html>