Using the step-by-step recipe I have build a example One-Page matrix based on the following requirements:

Customer/Item Spending: Display the total amount for each item what each of our customers has in order.

Basically this line already reveals the design of our matrix:

  • Display the total amount ... -> matrix cells
  • for each item what ... -> horizontal dimension
  • each of our customers has in order -> vertical dimension

 To be able to build the matrix I need to do some preparation:

Customer table 

This table needs to be extended with the following three fields (that actualy do the calculations needed for the matrix cells):

Field No.

Field Name

Data Type

Length

Description

85.000

Total Amount

Decimal

 

FlowField: sum of Amount- fields in Sales Line table for customer (incl. next FlowFilters)

85.001

Type Filter

Option

 

FlowFilter for Type field in Sales Line table
OptionString =  ,G/L Account,Item,Resource,Fixed Asset,Charge (Item)

85.002

No. Filter

Code

20

FlowFilter or No. field in Sales Line table

Sales Line table

The following secondary key should be added (to facilitate the FlowField on the Customer table) with Amount field as SumIndexField:

Key

SumIndexFields

Sell-to Customer No.,Type,No.

Amount

Customer/Item Spending Matrix

This One-Page matrix consists of two pages:

  • matrix main  page: 62105 - Customer/Item Spending
  • matrix sub page: 62107 - Customer/Item Spending Matrix

In both objects (were possible) the changes have been marked related to the steps as defined in by step-by-step recipe.

PAG62105

OBJECT Page 62105 Customer/Item Spending

{

  OBJECT-PROPERTIES

  {

    Date=20-04-12;

    Time=12:00:00;

    Version List=Advanced Matrix Box;

  }

  PROPERTIES

  {

    CaptionML=ENU=Customer/Item Spending;

    SaveValues=Yes;

    InsertAllowed=No;

    DeleteAllowed=No;

    ModifyAllowed=No;

    SourceTable=Table18;

    PageType=Card;

    OnOpenPage=BEGIN

                 //AMB0004-BEGIN

                 SetColumns(MATRIX_SetWanted::Initial);

                 //AMB0007-BEGIN

                 UpdateMatrixSubform

                 //AMB0007-END

                 //AMB0004-END

               END;

 

    ActionList=ACTIONS

    {

      { 1900000004;0 ;ActionContainer;

                      ActionContainerType=ActionItems }

      { 31   ;1 ;Action    ;

                      CaptionML=ENU=Previous Set;

                      ToolTipML=ENU=Previous Set;

                      Description=AMB0008;

                      Promoted=Yes;

                      PromotedIsBig=Yes;

                      Image=PreviousSet;

                      PromotedCategory=Process;

                      OnAction=BEGIN

                                 //AMB0008-BEGIN

                                 SetColumns(MATRIX_SetWanted::Previous);

                                 UpdateMatrixSubform

                                 //AMB0008-END

                               END;

                                }

      { 102  ;1 ;Action    ;

                      CaptionML=ENU=Previous Column;

                      ToolTipML=ENU=Previous;

                      Description=AMB0008;

                      Promoted=Yes;

                      PromotedIsBig=Yes;

                      Image=PreviousRecord;

                      PromotedCategory=Process;

                      OnAction=BEGIN

                                 //AMB0008-BEGIN

                                 SetColumns(MATRIX_SetWanted::PreviousColumn);

                                 UpdateMatrixSubform();

                                 //AMB0008-END

                               END;

                                }

      { 103  ;1 ;Action    ;

                      CaptionML=ENU=Next Column;

                      ToolTipML=ENU=Next;

                      Description=AMB0008;

                      Promoted=Yes;

                      PromotedIsBig=Yes;

                      Image=NextRecord;

                      PromotedCategory=Process;

                      OnAction=BEGIN

                                 //AMB0008-BEGIN

                                 SetColumns(MATRIX_SetWanted::NextColumn);

                                 UpdateMatrixSubform();

                                 //AMB0008-END

                               END;

                                }

      { 32   ;1 ;Action    ;

                      CaptionML=ENU=Next Set;

                      ToolTipML=ENU=Next Set;

                      Description=AMB0008;

                      Promoted=Yes;

                      PromotedIsBig=Yes;

                      Image=NextSet;

                      PromotedCategory=Process;

                      OnAction=BEGIN

                                 //AMB0008-BEGIN

                                 SetColumns(MATRIX_SetWanted::Next);

                                 UpdateMatrixSubform

                                 //AMB0008-END

                               END;

                                }

    }

  }

  CONTROLS

  {

    { 1900000001;0;Container;

                ContainerType=ContentArea }

 

    { 12  ;1   ;Group     ;

                CaptionML=ENU=Options }

 

    { 15  ;2   ;Field     ;

                CaptionML=[ENU=Show Column Name;

                           NLD=Kolomnaam weergeven];

                SourceExpr=ShowColumnName;

                OnValidate=BEGIN

                             ShowColumnNameOnAfterValidate;

                           END;

                            }

 

    { 33  ;1   ;Part      ;

                Name=MatrixForm;

                Description=AMB0001;

                PagePartID=Page62107;

                PartType=Page }

 

  }

  CODE

  {

    VAR

      MatrixRecord@1000 : Record 27;

      MatrixRecords@1010 : ARRAY [32] OF Record 27;

      MatrixRecordRef@1007 : RecordRef;

      MATRIX_SetWanted@1006 : 'Initial,Previous,Same,Next,PreviousColumn,NextColumn';

      ShowColumnName@1002 : Boolean;

      MATRIX_CaptionSet@1008 : ARRAY [32] OF Text[1024];

      MATRIX_CaptionRange@1011 : Text[100];

      MATRIX_PKFirstRecInCurrSet@1001 : Text[100];

      MATRIX_CurrSetLength@1004 : Integer;

      WshShell@11091689 : Automation "{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B} 1.0:{72C24DD5-D70A-438B-8A42-98424B88AFB8}:'Windows Script Host Object Model'.WshShell";

 

    PROCEDURE SetColumns@6(SetWanted@1002 : 'Initial,Previous,Same,Next,PreviousColumn,NextColumn');

    VAR

      MatrixMgt@1000 : Codeunit 9200;

      CaptionFieldNo@1001 : Integer;

      CurrentMatrixRecordOrdinal@1003 : Integer;

    BEGIN

      //AMB0004-BEGIN

      CLEAR(MATRIX_CaptionSet);

      CLEAR(MatrixRecords);

      CurrentMatrixRecordOrdinal := 1;

 

      MatrixRecordRef.GETTABLE(MatrixRecord);

      MatrixRecordRef.SETTABLE(MatrixRecord);

 

      //AMB0009-BEGIN

      IF ShowColumnName THEN

        CaptionFieldNo := MatrixRecord.FIELDNO(Description)

      ELSE

      //AMB0009-END

        CaptionFieldNo := MatrixRecord.FIELDNO("No.");

 

      MatrixMgt.GenerateMatrixData(MatrixRecordRef,SetWanted,ARRAYLEN(MatrixRecords),CaptionFieldNo,MATRIX_PKFirstRecInCurrSet,

        MATRIX_CaptionSet,MATRIX_CaptionRange,MATRIX_CurrSetLength);

 

      IF MATRIX_CurrSetLength > 0 THEN BEGIN

        MatrixRecord.SETPOSITION(MATRIX_PKFirstRecInCurrSet);

        MatrixRecord.FIND;

        REPEAT

          MatrixRecords[CurrentMatrixRecordOrdinal].COPY(MatrixRecord);

          CurrentMatrixRecordOrdinal := CurrentMatrixRecordOrdinal + 1;

        UNTIL (CurrentMatrixRecordOrdinal > MATRIX_CurrSetLength) OR (MatrixRecord.NEXT <> 1);

      END;

      //AMB0004-END

    END;

 

    PROCEDURE UpdateMatrixSubform@7();

    BEGIN

      //AMB0007-BEGIN

      CurrPage.MatrixForm.FORM.Load(MATRIX_CaptionSet,MatrixRecords,MatrixRecord);

      //AMB0009-BEGIN

      UpdateThePage

      //AMB0009-END

      //AMB0007-END

    END;

 

    LOCAL PROCEDURE ShowColumnNameOnAfterValidate@8();

    BEGIN

      //AMB0009-BEGIN

      SetColumns(MATRIX_SetWanted::Same);

      UpdateMatrixSubform

      //AMB0009-END

    END;

 

    PROCEDURE UpdateThePage@10();

    BEGIN

      //AMB0009-BEGIN

      IF ISCLEAR(WshShell) THEN

        CREATE(WshShell, TRUE, TRUE);

      WshShell.SendKeys('{F5}');

      //AMB0009-END

    END;

 

    BEGIN

    {

      <changelog>

        <add id="AMB0001"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 2 - One-Page Matrix Step-by-Step</add>

        <change id="AMB0004"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 4 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0007"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 7 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0008"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 8 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0009"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 9 - One-Page Matrix Step-by-Step</change>

      </changelog>

    }

    END.

  }

}

 

PAG62107

OBJECT Page 62107 Customer/Item Spending Matrix

{

  OBJECT-PROPERTIES

  {

    Date=20-04-12;

    Time=12:00:00;

    Version List=Advanced Matrix Box;

  }

  PROPERTIES

  {

    Editable=No;

    CaptionML=ENU=Customer/Item Spending Matix;

    SourceTable=Table18;

    PageType=ListPart;

    OnInit=BEGIN

             //AMB0006-BEGIN

             Field32Visible := TRUE;

             Field31Visible := TRUE;

             Field30Visible := TRUE;

             Field29Visible := TRUE;

             Field28Visible := TRUE;

             Field27Visible := TRUE;

             Field26Visible := TRUE;

             Field25Visible := TRUE;

             Field24Visible := TRUE;

             Field23Visible := TRUE;

             Field22Visible := TRUE;

             Field21Visible := TRUE;

             Field20Visible := TRUE;

             Field19Visible := TRUE;

             Field18Visible := TRUE;

             Field17Visible := TRUE;

             Field16Visible := TRUE;

             Field15Visible := TRUE;

             Field14Visible := TRUE;

             Field13Visible := TRUE;

             Field12Visible := TRUE;

             Field11Visible := TRUE;

             Field10Visible := TRUE;

             Field9Visible := TRUE;

             Field8Visible := TRUE;

             Field7Visible := TRUE;

             Field6Visible := TRUE;

             Field5Visible := TRUE;

             Field4Visible := TRUE;

             Field3Visible := TRUE;

             Field2Visible := TRUE;

             Field1Visible := TRUE;

             //AMB0006-END

           END;

 

    OnOpenPage=BEGIN

                 //AMB0006-BEGIN

                 MATRIX_NoOfMatrixColumns := ARRAYLEN(MATRIX_CellData);

                 //AMB0006-END

               END;

 

    OnAfterGetRecord=VAR

                       MATRIX_CurrentColumnOrdinal@1018 : Integer;

                     BEGIN

                       //AMB0006-BEGIN

                       MATRIX_CurrentColumnOrdinal := 0;

                       IF MatrixRecord.FIND('-') THEN

                         REPEAT

                           MATRIX_CurrentColumnOrdinal := MATRIX_CurrentColumnOrdinal + 1;

                           MATRIX_OnAfterGetRecord(MATRIX_CurrentColumnOrdinal);

                         UNTIL (MatrixRecord.NEXT(1) = 0) OR (MATRIX_CurrentColumnOrdinal = MATRIX_NoOfMatrixColumns);

                       //AMB0006-END

                     END;

 

  }

  CONTROLS

  {

    { 1900000001;0;Container;

                ContainerType=ContentArea }

 

    { 1   ;1;Group  ;

                Name=Group;

                Description=AMB0009;

                GroupType=Repeater;

                FreezeColumnID=Name }

 

    { 2   ;2;Field  ;

                Description=AMB0001;

                SourceExpr="No." }

 

    { 4   ;2;Field  ;

                Description=AMB0001;

                SourceExpr=Name }

 

    { 1008;2;Field  ;

                Name=Field1;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[1];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[1];

                Visible=Field1Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(1);

                            END;

                             }

 

    { 1100409033;2;Field  ;

                Name=Field2;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[2];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[2];

                Visible=Field2Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(2);

                            END;

                             }

 

    { 1100409034;2;Field  ;

                Name=Field3;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[3];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[3];

                Visible=Field3Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(3);

                            END;

                             }

 

    { 1100409031;2;Field  ;

                Name=Field4;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[4];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[4];

                Visible=Field4Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(4);

                            END;

                             }

 

    { 1100409032;2;Field  ;

                Name=Field5;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[5];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[5];

                Visible=Field5Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(5);

                            END;

                             }

 

    { 1100409029;2;Field  ;

                Name=Field6;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellDataDevil;

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaptionDevil;

                Visible=Field6Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(6);

                            END;

                             }

 

    { 1100409030;2;Field  ;

                Name=Field7;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[7];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[7];

                Visible=Field7Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(7);

                            END;

                             }

 

    { 1100409027;2;Field  ;

                Name=Field8;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellDataMusic;

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaptionMusic;

                Visible=Field8Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(8);

                            END;

                             }

 

    { 1100409028;2;Field  ;

                Name=Field9;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[9];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[9];

                Visible=Field9Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(9);

                            END;

                             }

 

    { 1100409025;2;Field  ;

                Name=Field10;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[10];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[10];

                Visible=Field10Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(10);

                            END;

                             }

 

    { 1100409026;2;Field  ;

                Name=Field11;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[11];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[11];

                Visible=Field11Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(11);

                            END;

                             }

 

    { 1100409023;2;Field  ;

                Name=Field12;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[12];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[12];

                Visible=Field12Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(12);

                            END;

                             }

 

    { 1100409024;2;Field  ;

                Name=Field13;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[13];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[13];

                Visible=Field13Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(13);

                            END;

                             }

 

    { 1100409021;2;Field  ;

                Name=Field14;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[14];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[14];

                Visible=Field14Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(14);

                            END;

                             }

 

    { 1100409022;2;Field  ;

                Name=Field15;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[15];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[15];

                Visible=Field15Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(15);

                            END;

                             }

 

    { 1100409019;2;Field  ;

                Name=Field16;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[16];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[16];

                Visible=Field16Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(16);

                            END;

                             }

 

    { 1100409020;2;Field  ;

                Name=Field17;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[17];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[17];

                Visible=Field17Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(17);

                            END;

                             }

 

    { 1100409017;2;Field  ;

                Name=Field18;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[18];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[18];

                Visible=Field18Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(18);

                            END;

                             }

 

    { 1100409018;2;Field  ;

                Name=Field19;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[19];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[19];

                Visible=Field19Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(19);

                            END;

                             }

 

    { 1100409015;2;Field  ;

                Name=Field20;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[20];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[20];

                Visible=Field20Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(20);

                            END;

                             }

 

    { 1100409016;2;Field  ;

                Name=Field21;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[21];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[21];

                Visible=Field21Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(21);

                            END;

                             }

 

    { 1100409013;2;Field  ;

                Name=Field22;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[22];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[22];

                Visible=Field22Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(22);

                            END;

                             }

 

    { 1100409014;2;Field  ;

                Name=Field23;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[23];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[23];

                Visible=Field23Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(23);

                            END;

                             }

 

    { 1100409011;2;Field  ;

                Name=Field24;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[24];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[24];

                Visible=Field24Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(24);

                            END;

                             }

 

    { 1100409012;2;Field  ;

                Name=Field25;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[25];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[25];

                Visible=Field25Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(25);

                            END;

                             }

 

    { 1100409009;2;Field  ;

                Name=Field26;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[26];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[26];

                Visible=Field26Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(26);

                            END;

                             }

 

    { 1100409010;2;Field  ;

                Name=Field27;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[27];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[27];

                Visible=Field27Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(27);

                            END;

                             }

 

    { 1100409007;2;Field  ;

                Name=Field28;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[28];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[28];

                Visible=Field28Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(28);

                            END;

                             }

 

    { 1100409008;2;Field  ;

                Name=Field29;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[29];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[29];

                Visible=Field29Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(29);

                            END;

                             }

 

    { 1100409005;2;Field  ;

                Name=Field30;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[30];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[30];

                Visible=Field30Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(10);

                            END;

                             }

 

    { 1100409006;2;Field  ;

                Name=Field31;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[31];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[31];

                Visible=Field31Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(31);

                            END;

                             }

 

    { 1100409004;2;Field  ;

                Name=Field32;

                BlankNumbers=BlankZero;

                Description=AMB0003|AMB0009;

                SourceExpr=MATRIX_CellData[32];

                AutoFormatType=1;

                CaptionClass='3,' + MATRIX_ColumnCaption[32];

                Visible=Field32Visible;

                OnDrillDown=BEGIN

                              MatrixOnDrillDown(32);

                            END;

                             }

 

  }

  CODE

  {

    VAR

      SalesLine@1035 : Record 37;

      MatrixRecords@1002 : ARRAY [32] OF Record 27;

      MatrixRecord@1039 : Record 27;

      MATRIX_NoOfMatrixColumns@1001 : Integer;

      MATRIX_CellData@1042 : ARRAY [32] OF Decimal;

      MATRIX_ColumnCaption@1000 : ARRAY [32] OF Text[1024];

      Field1Visible@19069335 : Boolean INDATASET;

      Field2Visible@19014807 : Boolean INDATASET;

      Field3Visible@19062679 : Boolean INDATASET;

      Field4Visible@19074839 : Boolean INDATASET;

      Field5Visible@19043543 : Boolean INDATASET;

      Field6Visible@19067287 : Boolean INDATASET;

      Field7Visible@19067863 : Boolean INDATASET;

      Field8Visible@19039959 : Boolean INDATASET;

      Field9Visible@19008663 : Boolean INDATASET;

      Field10Visible@19006501 : Boolean INDATASET;

      Field11Visible@19052468 : Boolean INDATASET;

      Field12Visible@19013039 : Boolean INDATASET;

      Field13Visible@19079726 : Boolean INDATASET;

      Field14Visible@19077225 : Boolean INDATASET;

      Field15Visible@19035896 : Boolean INDATASET;

      Field16Visible@19003763 : Boolean INDATASET;

      Field17Visible@19049730 : Boolean INDATASET;

      Field18Visible@19007213 : Boolean INDATASET;

      Field19Visible@19053180 : Boolean INDATASET;

      Field20Visible@19014629 : Boolean INDATASET;

      Field21Visible@19060596 : Boolean INDATASET;

      Field22Visible@19021167 : Boolean INDATASET;

      Field23Visible@19047854 : Boolean INDATASET;

      Field24Visible@19045353 : Boolean INDATASET;

      Field25Visible@19004024 : Boolean INDATASET;

      Field26Visible@19011891 : Boolean INDATASET;

      Field27Visible@19057858 : Boolean INDATASET;

      Field28Visible@19015341 : Boolean INDATASET;

      Field29Visible@19061308 : Boolean INDATASET;

      Field30Visible@19010597 : Boolean INDATASET;

      Field31Visible@19056564 : Boolean INDATASET;

      Field32Visible@19017135 : Boolean INDATASET;

 

    LOCAL PROCEDURE MATRIX_OnAfterGetRecord@1047(ColumnID@1000 : Integer);

    VAR

      Cust@1001 : Record 18;

    BEGIN

      //AMB0006-BEGIN

      Cust.COPY(Rec);

      Cust.SETRANGE("Type Filter","Type Filter"::Item);

      Cust.SETRANGE("No. Filter",MatrixRecords[ColumnID]."No.");

      Cust.CALCFIELDS("Total Amount");

      MATRIX_CellData[ColumnID] := Cust."Total Amount";

      SetVisible;

      //AMB0006-END

    END;

 

    PROCEDURE Load@3(MatrixColumns1@1001 : ARRAY [32] OF Text[1024];VAR MatrixRecords1@1002 : ARRAY [32] OF Record 27;VAR MatrixRecord1@1000 : Record 27);

    BEGIN

      //AMB0005-BEGIN

      COPYARRAY(MATRIX_ColumnCaption,MatrixColumns1,1);

      COPYARRAY(MatrixRecords,MatrixRecords1,1);

      MatrixRecord.COPY(MatrixRecord1);

      //AMB0005-END

    END;

 

    PROCEDURE MatrixOnDrillDown@1100409001(ColumnID@1000 : Integer);

    BEGIN

      //AMB0009-BEGIN

      SalesLine.SETCURRENTKEY("Sell-to Customer No.",Type,"No.");

      SalesLine.SETRANGE("Sell-to Customer No.","No.");

      SalesLine.SETRANGE(Type,SalesLine.Type::Item);

      SalesLine.SETRANGE("No.",MatrixRecords[ColumnID]."No.");

      FORM.RUN(0,SalesLine);

      //AMB0009-END

    END;

 

    PROCEDURE SetVisible@6();

    BEGIN

      //AMB0006-BEGIN

      Field1Visible := MATRIX_ColumnCaption[1] <> '';

      Field2Visible := MATRIX_ColumnCaption[2] <> '';

      Field3Visible := MATRIX_ColumnCaption[3] <> '';

      Field4Visible := MATRIX_ColumnCaption[4] <> '';

      Field5Visible := MATRIX_ColumnCaption[5] <> '';

      Field6Visible := MATRIX_ColumnCaptionDevil <> '';

      Field7Visible := MATRIX_ColumnCaption[7] <> '';

      Field8Visible := MATRIX_ColumnCaptionMusic <> '';

      Field9Visible := MATRIX_ColumnCaption[9] <> '';

      Field10Visible := MATRIX_ColumnCaption[10] <> '';

      Field11Visible := MATRIX_ColumnCaption[11] <> '';

      Field12Visible := MATRIX_ColumnCaption[12] <> '';

      Field13Visible := MATRIX_ColumnCaption[13] <> '';

      Field14Visible := MATRIX_ColumnCaption[14] <> '';

      Field15Visible := MATRIX_ColumnCaption[15] <> '';

      Field16Visible := MATRIX_ColumnCaption[16] <> '';

      Field17Visible := MATRIX_ColumnCaption[17] <> '';

      Field18Visible := MATRIX_ColumnCaption[18] <> '';

      Field19Visible := MATRIX_ColumnCaption[19] <> '';

      Field20Visible := MATRIX_ColumnCaption[20] <> '';

      Field21Visible := MATRIX_ColumnCaption[21] <> '';

      Field22Visible := MATRIX_ColumnCaption[22] <> '';

      Field23Visible := MATRIX_ColumnCaption[23] <> '';

      Field24Visible := MATRIX_ColumnCaption[24] <> '';

      Field25Visible := MATRIX_ColumnCaption[25] <> '';

      Field26Visible := MATRIX_ColumnCaption[26] <> '';

      Field27Visible := MATRIX_ColumnCaption[27] <> '';

      Field28Visible := MATRIX_ColumnCaption[28] <> '';

      Field29Visible := MATRIX_ColumnCaption[29] <> '';

      Field30Visible := MATRIX_ColumnCaption[30] <> '';

      Field31Visible := MATRIX_ColumnCaption[31] <> '';

      Field32Visible := MATRIX_ColumnCaption[32] <> '';

      //AMB0006-END

    END;

 

    BEGIN

    {

      <changelog>

        <add id="AMB0002"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 1 - One-Page Matrix Step-by-Step</add>

        <change id="AMB0003"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 3 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0005"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 5 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0006"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 6 - One-Page Matrix Step-by-Step</change>

        <change id="AMB0009"

          dev="lvanvugt"

          date="2012-04-20"

          source="http://dynamicsuser.net/blogs/vanvugt/archive/2012/04/20/how-to-create-a-one-page-matrix.aspx"

          releaseversion="Advanced Matrix Box">Step 9 - One-Page Matrix Step-by-Step</change>

      </changelog>

    }

    END.

  }

}