Отчетът "Анализ на продажбите по променлива матрица" показва неправилни стойности, ако квадратчето за отметка "Показвай името на колона" е избрано в анализ на продажбите по измерение в клиента RoleTailored в Microsoft Dynamics NAV 2009 Service Pack 1

Отнася се за
Dynamics NAV 2009 Service Pack 1

Тази статия се отнася за Microsoft Dynamics NAV за всички страни и всички езикови променливи.

Симптоми

Да предположим, че сте избрали квадратчето за отметка "Покажи името на колоната " в анализа на продажбите по измерение в RoleTailored клиент (RTC) в Microsoft Dynamic NAV 2009 Service Pack 1 (SP1). Когато изпълните функцията " Показване на матрица " при анализа на продажбите по измерение, стойностите се показват неправилно в отчета "Анализ на продажбите по променлива матрица".

Решение

Информация за горещи поправки

Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.

Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.

            
          

Информация за инсталиране

Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжка на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.

Забележка Преди да инсталирате тази гореща корекция, уверете се, че всички потребители на клиента на Microsoft Navision са излезли от системата. Това включва потребители на клиенти на Microsoft Navision Application Services (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.

За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.

Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:

  • Разрешението за промяна за обекта, който ще променяте.
  • Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.

                
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.

Промени в кода

Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да решите този проблем, изпълнете следните стъпки:

  1. Променете кода в кошчето. Анализ по Dim форма (9224), както следва:
    Съществуващ код 1

    ...
    Steps@1033 : Integer;
    
    // Delete the following lines.
    Dim1Filter1@1017 : Code[250];
    Dim2Filter1@1012 : Code[250];
    Dim3Filter1@1010 : Code[250];
    ItemFilter1@1009 : Code[250];
    LocationFilter1@1003 : Code[250];
    DateFilter1@1013 : Text[30];
    // End of the lines.
    
    DateFilter@1021 : Text[30];
    Dim1Filter@1043 : Code[250];
    ...
    

    Код за замяна 1

    ...
    Steps@1033 : Integer;
    DateFilter@1021 : Text[30];
    Dim1Filter@1043 : Code[250];
    ...
    

    Съществуващ код 2

    ...
    LOCAL PROCEDURE FillColumnsItem@9(VAR MatrixColumnCaptions@1009 : ARRAY [32] OF Text[30]) : Boolean;
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Delete the following line.
    Item.SETFILTER("No.",ItemFilter1);
    
    ...
    

    Код за замяна 2

    ...
    LOCAL PROCEDURE FillColumnsItem@9(VAR MatrixColumnCaptions@1009 : ARRAY [32] OF Text[30]) : Boolean;
    
    // Add the following lines.
    VAR
    Item@1013 : Record 27;
    i@1004 : Integer;
    // End of the lines.
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Add the following line.
    Item.SETFILTER("No.",ItemFilter);
    ...
    
  2. Променете кода във функцията FillColumnsLocation в библиотеката. Анализ по Dim форма (9224), както следва:
    Съществуващ код

    ...
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Delete the following line.
    Location.SETFILTER(Code,LocationFilter1);
    
    ...
    

    Код за подмяна

    ...
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Add the following line.
    Location.SETFILTER(Code,LocationFilter);
    
    ...
    
  3. Променете кода във функцията ShowMatrix в библиотеката. Анализ по Dim форма (9224), както следва:
    Съществуващ код

    ...
    BEGIN
    
    // Delete the following line.
    ApplyColumnFilter;
    
    
    PurchAnalysisByDimMatrix.LoadVariables(ItemAnalysisView,ItemStatisticsBuffer,
    CurrentItemAnalysisViewCode,CurrentAnalysisArea,
    LineDimOption,ColumnDimOption,LineDimCode,ColumnDimCode,PeriodType,ValueType,
    RoundingFactor,ShowActualBudget,MatrixColumnCaptions,
    
    // Delete the following line.
    ShowOppositeSign,PeriodInitialized,FirstColumn,LastColumn,ShowColumnName,MATRIX_CurrSetLength);
    
    ...
    

    Код за подмяна

    ...
    BEGIN
    
    PurchAnalysisByDimMatrix.LoadVariables(ItemAnalysisView,ItemStatisticsBuffer,
    CurrentItemAnalysisViewCode,CurrentAnalysisArea,
    LineDimOption,ColumnDimOption,LineDimCode,ColumnDimCode,PeriodType,ValueType,
    RoundingFactor,ShowActualBudget,MatrixColumnCaptions,
    
    // Add the following line.
    ShowOppositeSign,PeriodInitialized,ShowColumnName,MATRIX_CurrSetLength);
    
    ...
    
  4. Изтрийте функцията ApplyColumnFilter в библиотеката. Анализ по Dim форма (9224), както следва:

    // Delete the following lines.
    PROCEDURE ApplyColumnFilter@13();
    
    BEGIN
    CLEAR(ItemFilter1);
    CLEAR(LocationFilter1);
    CLEAR(DateFilter1);
    CLEAR(Dim1Filter1);
    CLEAR(Dim2Filter1);
    CLEAR(Dim3Filter1);
    CASE ColumnDimOption OF
    ColumnDimOption::Item:
    BEGIN
    IF ItemFilter <> '' THEN
    ItemFilter1 := ItemFilter + '&';
    ItemFilter1 := ItemFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Location:
    BEGIN
    ItemFilter1 := ItemFilter;
    IF LocationFilter <> '' THEN
    LocationFilter1 := LocationFilter + '&';
    LocationFilter1 := LocationFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Period:
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 1":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    IF Dim1Filter <> '' THEN
    Dim1Filter1 := Dim1Filter + '&';
    Dim1Filter1 := Dim1Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 2":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    IF Dim2Filter <> '' THEN
    Dim2Filter1 := Dim2Filter + '&';
    Dim2Filter1 := Dim2Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 3":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    IF Dim3Filter <> '' THEN
    Dim3Filter1 := Dim3Filter + '&';
    Dim3Filter1 := Dim3Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    END;
    END;
    END;
    // End of the lines.
    
  5. Променете кода в свойствата в кошчето. Анализ чрез формата на Dim Matrix (9225), както следва:
    Съществуващ код

    {
    Width=19140;
    Height=6710;
    Editable=No;
    TableBoxID=1;
    LinksAllowed=No;
    SourceTable=Table367;
    OnOpenForm=BEGIN
    
    // Delete the following line.
    ApplyColumnFilter;
    
    CurrForm.Field1.VISIBLE(1 <= NoOfRecords);
    ...
    

    Код за подмяна

    {
    Width=19140;
    Height=6710;
    Editable=No;
    TableBoxID=1;
    LinksAllowed=No;
    SourceTable=Table367;
    OnOpenForm=BEGIN
    CurrForm.Field1.VISIBLE(1 <= NoOfRecords);
    
    ...
    
  6. Променете кода в кошчето. Анализ по форма на Dim Matrix (9225), както следва:
    Съществуващ код 1

    ...
    OnAfterGetRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,1,FALSE);
    Steps := 1;
    
    // Delete the following line.
    ApplyColumnFilter;
    
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    
    OnAfterGetCurrRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,1,FALSE);
    Steps := 1;
    
    // Delete the following line.
    ApplyColumnFilter;
    
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    }
    ...
    

    Код за замяна 1

    ...
    OnAfterGetRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,1,FALSE);
    Steps := 1;
    
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    
    OnAfterGetCurrRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,1,FALSE);
    Steps := 1;
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    }
    ...
    

    Съществуващ код 2

    ...
    Text001@1032 : TextConst 'ENU=<Precision,';
    Text002@1031 : TextConst 'ENU=><Standard Format,0>';
    
    // Delete the following lines.
    LocationFilter1@1043 : Code[250];
    ItemFilter1@1042 : Code[250];
    Dim1Filter1@1041 : Code[250];
    Dim2Filter1@1040 : Code[250];
    Dim3Filter1@1039 : Code[250];
    DateFilter1@1038 : Text[30];
    FirstColumn@1044 : Text[50];
    LastColumn@1045 : Text[50];
    // End of the lines.
    
    ShowColumnName@1036 : Boolean;
    ...
    

    Код за замяна 2

    ...
    Text001@1032 : TextConst 'ENU=<Precision,';
    Text002@1031 : TextConst 'ENU=><Standard Format,0>';
    ShowColumnName@1036 : Boolean;
    ...
    

    Съществуващ код 3

    ...PROCEDURE LoadVariables@1(ItemAnalysisView1@1000 : Record 7152;ItemStatisticsBuffer1@1004 : Record 5821;CurrentItemAnalysisViewCode1@1005 : Code[10];
    CurrentAnalysisArea1@1003 : 'Sales,Purchase,Inventory';LineDimOption1@1010 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';
    ColumnDimOption1@1002 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';LineDimCode1@1016 : Text[30];ColumnDimCode1@1015 : Text[30];
    PeriodType1@1007 : 'Day,Week,Month,Quarter,Year,Accounting Period';ValueType1@1009 : 'Sales Amount,Inventory Value,Sales Quantity';
    RoundingFactor1@1011 : 'None,1,1000,1000000';ShowActualBudget1@1012 : 'Actual Amounts,Budgeted Amounts,Variance,Variance%,Index%';
    MatrixColumnCaptions1@1001 : ARRAY [32] OF Text[1024];ShowOppositeSign1@1006 : Boolean;PeriodInitialized1@1008 : Boolean;
    
    // Delete the following line.
    FirstColumn1@1014 : Text[50];LastColumn1@1013 : Text[50];
    
    ShowColumnName1@1017 : Boolean;NoOfRecordsLocal@1018 : Integer);
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    ItemAnalysisView.COPY(ItemAnalysisView1);
    
    CurrentItemAnalysisViewCode := CurrentItemAnalysisViewCode1;
    CurrentAnalysisArea := CurrentAnalysisArea1;
    
    LineDimOption := LineDimOption1;
    ColumnDimOption := ColumnDimOption1;
    
    LineDimCode := LineDimCode1;
    ColumnDimCode := ColumnDimCode1;
    
    PeriodType := PeriodType1;
    ShowOppositeSign := ShowOppositeSign1;
    
    COPYARRAY(MatrixColumnCaptions,MatrixColumnCaptions1,1);
    
    PeriodInitialized := PeriodInitialized1;
    PeriodType := PeriodType1;
    ValueType := ValueType1;
    RoundingFactor := RoundingFactor1;
    ShowActualBudget := ShowActualBudget1;
    
    // Delete the following lines.
    FirstColumn := FirstColumn1;
    LastColumn := LastColumn1;
    // End of the lines.
    
    ShowColumnName := ShowColumnName1;
    NoOfRecords := NoOfRecordsLocal;
    END;...
    

    Код за замяна 3

    ...PROCEDURE LoadVariables@1(ItemAnalysisView1@1000 : Record 7152;ItemStatisticsBuffer1@1004 : Record 5821;CurrentItemAnalysisViewCode1@1005 : Code[10];
    CurrentAnalysisArea1@1003 : 'Sales,Purchase,Inventory';LineDimOption1@1010 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';
    ColumnDimOption1@1002 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';LineDimCode1@1016 : Text[30];ColumnDimCode1@1015 : Text[30];
    PeriodType1@1007 : 'Day,Week,Month,Quarter,Year,Accounting Period';ValueType1@1009 : 'Sales Amount,Inventory Value,Sales Quantity';
    RoundingFactor1@1011 : 'None,1,1000,1000000';ShowActualBudget1@1012 : 'Actual Amounts,Budgeted Amounts,Variance,Variance%,Index%';
    MatrixColumnCaptions1@1001 : ARRAY [32] OF Text[1024];ShowOppositeSign1@1006 : Boolean;PeriodInitialized1@1008 : Boolean;
    ShowColumnName1@1017 : Boolean;NoOfRecordsLocal@1018 : Integer);
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    ItemAnalysisView.COPY(ItemAnalysisView1);
    
    CurrentItemAnalysisViewCode := CurrentItemAnalysisViewCode1;
    CurrentAnalysisArea := CurrentAnalysisArea1;
    
    LineDimOption := LineDimOption1;
    ColumnDimOption := ColumnDimOption1;
    
    LineDimCode := LineDimCode1;
    ColumnDimCode := ColumnDimCode1;
    
    PeriodType := PeriodType1;
    ShowOppositeSign := ShowOppositeSign1;
    
    COPYARRAY(MatrixColumnCaptions,MatrixColumnCaptions1,1);
    
    PeriodInitialized := PeriodInitialized1;
    PeriodType := PeriodType1;
    ValueType := ValueType1;
    RoundingFactor := RoundingFactor1;
    ShowActualBudget := ShowActualBudget1;
    
    ShowColumnName := ShowColumnName1;
    NoOfRecords := NoOfRecordsLocal;
    END;
    ...
    
  7. Променете кода във функцията FieldDrillDown в хранилището. Анализ чрез формата на Dim Matrix (9225), както следва:
    Съществуващ код

    BEGIN
    CLEAR(DimCodeBufferColumn3);
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    Steps := Ordinal - 1;
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    ItemAnalysisMgt.DrillDown(
    CurrentAnalysisArea,ItemStatisticsBuffer,CurrentItemAnalysisViewCode,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1,BudgetFilter,
    // End of the lines.
    
    LineDimOption,Rec,
    ColumnDimOption,DimCodeBufferColumn3,
    TRUE,ValueType,ShowActualBudget);
    END;
    

    Код за подмяна

    BEGIN
    CLEAR(DimCodeBufferColumn3);
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    Steps := Ordinal - 1;
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    ItemAnalysisMgt.DrillDown(
    CurrentAnalysisArea,ItemStatisticsBuffer,CurrentItemAnalysisViewCode,
    
    // Add the following lines.
    ItemFilter,LocationFilter,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter,BudgetFilter,
    // End of the lines.
    
    LineDimOption,Rec,
    ColumnDimOption,DimCodeBufferColumn3,
    TRUE,ValueType,ShowActualBudget);
    END;
    
  8. Изтрийте функцията ApplyColumnFilter в библиотеката. Анализ чрез формата на Dim Matrix (9225), както следва:

    // Delete the following lines.
    PROCEDURE ApplyColumnFilter@13();
    BEGIN
    CLEAR(ItemFilter1);
    CLEAR(LocationFilter1);
    CLEAR(DateFilter1);
    CLEAR(Dim1Filter1);
    CLEAR(Dim2Filter1);
    CLEAR(Dim3Filter1);
    
    CASE ColumnDimOption OF
    ColumnDimOption::Item:
    BEGIN
    IF ItemFilter <> '' THEN
    ItemFilter1 := ItemFilter + '&';
    ItemFilter1 := ItemFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Location:
    BEGIN
    ItemFilter1 := ItemFilter;
    IF LocationFilter <> '' THEN
    LocationFilter1 := LocationFilter + '&';
    LocationFilter1 := LocationFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Period:
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    IF DateFilter <> '' THEN
    DateFilter1 := DateFilter
    ELSE
    DateFilter1 := FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 1":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    IF Dim1Filter <> '' THEN
    Dim1Filter1 := Dim1Filter + '&';
    Dim1Filter1 := Dim1Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 2":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    IF Dim2Filter <> '' THEN
    Dim2Filter1 := Dim2Filter + '&';
    Dim2Filter1 := Dim2Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 3":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    IF Dim3Filter <> '' THEN
    Dim3Filter1 := Dim3Filter + '&';
    Dim3Filter1 := Dim3Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    END;
    END;
    END;
    
    BEGIN
    END.
    }
    }
    // End of the lines.
    
  9. Променете кода във формуляра "Анализ на продажбите по DIM" (9226) по следния начин:
    Съществуващ код 1

    ...
    Text001@1024 : TextConst 'ENU=<Precision,';
    Text002@1023 : TextConst 'ENU=><Standard Format,0>';
    Steps@1033 : Integer;
    
    // Delete the following lines.
    Dim1Filter1@1017 : Code[250];
    Dim2Filter1@1012 : Code[250];
    Dim3Filter1@1010 : Code[250];
    ItemFilter1@1009 : Code[250];
    LocationFilter1@1003 : Code[250];
    DateFilter1@1013 : Text[30];
    // End of the lines.
    
    DateFilter@1021 : Text[30];
    Dim1Filter@1043 : Code[250];
    Dim2Filter@1042 : Code[250];
    Dim3Filter@1041 : Code[250];
    ItemFilter@1040 : Code[250];
    ...
    

    Код за замяна 1

    ...
    Text001@1024 : TextConst 'ENU=<Precision,';
    Text002@1023 : TextConst 'ENU=><Standard Format,0>';
    Steps@1033 : Integer;
    DateFilter@1021 : Text[30];
    Dim1Filter@1043 : Code[250];
    Dim2Filter@1042 : Code[250];
    Dim3Filter@1041 : Code[250];
    ItemFilter@1040 : Code[250];
    ...
    

    Съществуващ код 2

    ...LOCAL PROCEDURE FillColumnsItem@9(VAR MatrixColumnCaptions@1009 : ARRAY [32] OF Text[30]) : Boolean;
    
    VAR
    Item@1013 : Record 27;
    i@1004 : Integer;
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Delete the following line.
    Item.SETFILTER("No.",ItemFilter1);...
    

    Код за замяна 2

    ...LOCAL PROCEDURE FillColumnsItem@9(VAR MatrixColumnCaptions@1009 : ARRAY [32] OF Text[30]) : Boolean;
    
    VAR
    Item@1013 : Record 27;
    i@1004 : Integer;
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Add the following line.
    Item.SETFILTER("No.",ItemFilter);
    ...
    
  10. Променете кода във функцията FillColumnsLocation във формуляра за анализ на продажбите по DIM (9226) по следния начин:
    Съществуващ код

    ...BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Delete the following line.
    Location.SETFILTER(Code,LocationFilter1);...
    

    Код за подмяна

    ...BEGIN
    CLEAR(MatrixColumnCaptions);
    i := 1;
    
    // Add the following line.
    Location.SETFILTER(Code,LocationFilter);...
    
  11. Променете кода във функцията FillColumnsDim във формуляра за анализ на продажбите по DIM (9226) по следния начин:
    Съществуващ код

    ...BEGIN
    CLEAR(MatrixColumnCaptions);
    
    // Delete the following line.
    ApplyColumnFilter;
    
    DimVal.SETRANGE("Dimension Code",DimensionCode);
    DimVal.SETFILTER(Code,DimFilter);
    i := 1;...
    

    Код за подмяна

    ...BEGIN
    CLEAR(MatrixColumnCaptions);
    DimVal.SETRANGE("Dimension Code",DimensionCode);
    DimVal.SETFILTER(Code,DimFilter);
    i := 1;...
    
  12. Променете кода във функцията ShowMatrix във формуляра за анализ на продажбите по DIM (9226) както следва:
    Съществуващ код

    ...BEGIN
    
    // Delete the following line.
    ApplyColumnFilter;
    
    IF ColumnDimOption = ColumnDimOption::Period THEN BEGIN
    FirstColumn := FORMAT(FirstColumnDate);
    LastColumn := FORMAT(LastColumnDate);
    END;
    
    SalesAnalysisByDimMatrix.LoadVariables(ItemAnalysisView,ItemStatisticsBuffer,
    CurrentItemAnalysisViewCode,CurrentAnalysisArea,
    LineDimOption,ColumnDimOption,LineDimCode,ColumnDimCode,PeriodType,ValueType,
    RoundingFactor,ShowActualBudget,MatrixColumnCaptions,
    ShowOppositeSign,PeriodInitialized,FirstColumn,LastColumn,ShowColumnName,MATRIX_CurrSetLength);
    
    SalesAnalysisByDimMatrix.LoadFilters(ItemFilter,LocationFilter,Dim1Filter,Dim2Filter,Dim3Filter,
    DateFilter,BudgetFilter,InternalDateFilter);
    
    SalesAnalysisByDimMatrix.RUNMODAL;
    END;...
    

    Код за подмяна

    ...
    BEGIN
    
    IF ColumnDimOption = ColumnDimOption::Period THEN BEGIN
    FirstColumn := FORMAT(FirstColumnDate);
    LastColumn := FORMAT(LastColumnDate);
    END;
    
    SalesAnalysisByDimMatrix.LoadVariables(ItemAnalysisView,ItemStatisticsBuffer,
    CurrentItemAnalysisViewCode,CurrentAnalysisArea,
    LineDimOption,ColumnDimOption,LineDimCode,ColumnDimCode,PeriodType,ValueType,
    RoundingFactor,ShowActualBudget,MatrixColumnCaptions,
    ShowOppositeSign,PeriodInitialized,ShowColumnName,MATRIX_CurrSetLength);
    
    SalesAnalysisByDimMatrix.LoadFilters(ItemFilter,LocationFilter,Dim1Filter,Dim2Filter,Dim3Filter,
    DateFilter,BudgetFilter,InternalDateFilter);
    
    SalesAnalysisByDimMatrix.RUNMODAL;
    END;
    ...
    
  13. Изтрийте функцията ApplyColumnFilter във формуляра за анализ на продажбите по DIM (9226), както следва:

    // Delete the following lines.
    PROCEDURE ApplyColumnFilter@13();
    
    BEGIN
    CLEAR(ItemFilter1);
    CLEAR(LocationFilter1);
    CLEAR(DateFilter1);
    CLEAR(Dim1Filter1);
    CLEAR(Dim2Filter1);
    CLEAR(Dim3Filter1);
    
    CASE ColumnDimOption OF
    ColumnDimOption::Item:
    BEGIN
    IF ItemFilter <> '' THEN
    ItemFilter1 := ItemFilter + '&';
    ItemFilter1 := ItemFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Location:
    BEGIN
    ItemFilter1 := ItemFilter;
    IF LocationFilter <> '' THEN
    LocationFilter1 := LocationFilter + '&';
    LocationFilter1 := LocationFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Period:
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 1":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    IF Dim1Filter <> '' THEN
    Dim1Filter1 := Dim1Filter + '&';
    Dim1Filter1 := Dim1Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 2":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    IF Dim2Filter <> '' THEN
    Dim2Filter1 := Dim2Filter + '&';
    Dim2Filter1 := Dim2Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 3":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    IF Dim3Filter <> '' THEN
    Dim3Filter1 := Dim3Filter + '&';
    Dim3Filter1 := Dim3Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    END;
    END;
    END;
    // End of the lines.
    
  14. Променете кода във формуляра за анализ на продажбите по матрица на DIM (9227) по следния начин:
    Съществуващ код 1

    …
    SourceTable=Table367;
    OnOpenForm=BEGIN
    
    // Delete the following line.
    ApplyColumnFilter;
    
    CurrForm.Field1.VISIBLE(1 <= NoOfRecords);
    CurrForm.Field2.VISIBLE(2 <= NoOfRecords);
    …
    

    Код за замяна 1

    …
    SourceTable=Table367;
    OnOpenForm=BEGIN
    
    CurrForm.Field1.VISIBLE(1 <= NoOfRecords);
    CurrForm.Field2.VISIBLE(2 <= NoOfRecords);
    …
    

    Съществуващ код 2

    …
    OnAfterGetRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,0,FALSE);
    Steps := 1;
    
    // Delete the following line.
    ApplyColumnFilter;
    
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    Dim1Filter,Dim2Filter,Dim3Filter);
    i := i + 1;
    END;
    END;
    
    OnAfterGetCurrRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,0,FALSE);
    Steps := 1;
    
    // Delete the following line.
    ApplyColumnFilter;
    
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    }
    …
    

    Код за замяна 2

    …
    OnAfterGetRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,0,FALSE);
    Steps := 1;
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    
    // Add the following lines.
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which, ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    
    OnAfterGetCurrRecord=BEGIN
    IF CurrForm.TotalQuantity.VISIBLE THEN
    Quantity := CalcAmt(DimCodeBufferColumn,2,FALSE);
    IF CurrForm.TotalInvtValue.VISIBLE THEN
    Amount := CalcAmt(DimCodeBufferColumn,0,FALSE);
    Steps := 1;
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    
    // Add the following lines.
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which, ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := 1;
    WHILE (i <= NoOfRecords) AND (i <= ARRAYLEN(MatrixColumnCaptions)) DO BEGIN
    MatrixData[i] := CalcAmt(DimCodeBufferColumn3,ValueType,TRUE);
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    i := i + 1;
    END;
    END;
    }
    …
    

    Съществуващ код 3

    …
    Text002@1031 : TextConst 'ENU=><Standard Format,0>';
    
    // Delete the following lines.
    LocationFilter1@1043 : Code[250];
    ItemFilter1@1042 : Code[250];
    Dim1Filter1@1041 : Code[250];
    Dim2Filter1@1040 : Code[250];
    Dim3Filter1@1039 : Code[250];
    DateFilter1@1038 : Text[30];
    FirstColumn@1044 : Text[50];
    LastColumn@1045 : Text[50];
    // End of the lines.
    
    ShowColumnName@1027 : Boolean;
    …
    

    Код за замяна 3

    …
    Text002@1031 : TextConst 'ENU=><Standard Format,0>';
    ShowColumnName@1027 : Boolean;
    …
    

    Съществуващ код 4

    …PROCEDURE LoadVariables@1(ItemAnalysisView1@1000 : Record 7152;ItemStatisticsBuffer1@1004 : Record 5821;CurrentItemAnalysisViewCode1@1005 : Code[10];
    CurrentAnalysisArea1@1003 : 'Sales,Purchase,Inventory';LineDimOption1@1010 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';
    ColumnDimOption1@1002 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';LineDimCode1@1016 : Text[30];ColumnDimCode1@1015 : Text[30];
    PeriodType1@1007 : 'Day,Week,Month,Quarter,Year,Accounting Period';ValueType1@1009 : 'Sales Amount,Inventory Value,Sales Quantity';
    RoundingFactor1@1011 : 'None,1,1000,1000000';ShowActualBudget1@1012 : 'Actual Amounts,Budgeted Amounts,Variance,Variance%,Index%';
    MatrixColumnCaptions1@1001 : ARRAY [32] OF Text[1024];ShowOppositeSign1@1006 : Boolean;PeriodInitialized1@1008 : Boolean;
    
    // Delete the following line.
    FirstColumn1@1014 : Text[50];LastColumn1@1013 : Text[50];
    
    ShowColumnName1@1017 : Boolean;NoOfRecordsLocal@1018 : Integer);
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    ItemAnalysisView.COPY(ItemAnalysisView1);
    
    CurrentItemAnalysisViewCode := CurrentItemAnalysisViewCode1;
    CurrentAnalysisArea := CurrentAnalysisArea1;
    
    LineDimOption := LineDimOption1;
    ColumnDimOption := ColumnDimOption1;
    
    LineDimCode := LineDimCode1;
    ColumnDimCode := ColumnDimCode1;
    
    PeriodType := PeriodType1;
    ShowOppositeSign := ShowOppositeSign1;
    
    COPYARRAY(MatrixColumnCaptions,MatrixColumnCaptions1,1);
    
    PeriodInitialized := PeriodInitialized1;
    PeriodType := PeriodType1;
    ValueType := ValueType1;
    RoundingFactor := RoundingFactor1;
    ShowActualBudget := ShowActualBudget1;
    
    // Delete the following lines.
    FirstColumn := FirstColumn1;
    LastColumn := LastColumn1;
    // End of the lines.
    
    ShowColumnName := ShowColumnName1;
    NoOfRecords := NoOfRecordsLocal;
    END;…
    

    Код за замяна 4

    …PROCEDURE LoadVariables@1(ItemAnalysisView1@1000 : Record 7152;ItemStatisticsBuffer1@1004 : Record 5821;CurrentItemAnalysisViewCode1@1005 : Code[10];
    CurrentAnalysisArea1@1003 : 'Sales,Purchase,Inventory';LineDimOption1@1010 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';
    ColumnDimOption1@1002 : 'Item,Period,Location,Dimension 1,Dimension 2,Dimension 3';LineDimCode1@1016 : Text[30];ColumnDimCode1@1015 : Text[30];
    PeriodType1@1007 : 'Day,Week,Month,Quarter,Year,Accounting Period';ValueType1@1009 : 'Sales Amount,Inventory Value,Sales Quantity';
    RoundingFactor1@1011 : 'None,1,1000,1000000';ShowActualBudget1@1012 : 'Actual Amounts,Budgeted Amounts,Variance,Variance%,Index%';
    MatrixColumnCaptions1@1001 : ARRAY [32] OF Text[1024];ShowOppositeSign1@1006 : Boolean;PeriodInitialized1@1008 : Boolean;
    ShowColumnName1@1017 : Boolean;NoOfRecordsLocal@1018 : Integer);
    
    BEGIN
    CLEAR(MatrixColumnCaptions);
    ItemAnalysisView.COPY(ItemAnalysisView1);
    
    CurrentItemAnalysisViewCode := CurrentItemAnalysisViewCode1;
    CurrentAnalysisArea := CurrentAnalysisArea1;
    
    LineDimOption := LineDimOption1;
    ColumnDimOption := ColumnDimOption1;
    
    LineDimCode := LineDimCode1;
    ColumnDimCode := ColumnDimCode1;
    
    PeriodType := PeriodType1;
    ShowOppositeSign := ShowOppositeSign1;
    
    COPYARRAY(MatrixColumnCaptions,MatrixColumnCaptions1,1);
    
    PeriodInitialized := PeriodInitialized1;
    PeriodType := PeriodType1;
    ValueType := ValueType1;
    RoundingFactor := RoundingFactor1;
    ShowActualBudget := ShowActualBudget1;
    
    ShowColumnName := ShowColumnName1;
    NoOfRecords := NoOfRecordsLocal;
    END;…
    
  15. Променете кода във функцията FieldDrillDown във формуляра за анализ на продажбите по матрица по DIM (9227) както следва:
    Съществуващ код

    BEGIN
    CLEAR(DimCodeBufferColumn3);
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,PeriodInitialized,InternalDateFilter,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    Steps := Ordinal - 1;
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,PeriodType,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1);
    // End of the lines.
    
    ItemAnalysisMgt.DrillDown(
    CurrentAnalysisArea,ItemStatisticsBuffer,CurrentItemAnalysisViewCode,
    
    // Delete the following lines.
    ItemFilter1,LocationFilter1,DateFilter1,
    Dim1Filter1,Dim2Filter1,Dim3Filter1,BudgetFilter,
    // End of the lines.
    
    LineDimOption,Rec,
    ColumnDimOption,DimCodeBufferColumn3,
    TRUE,ValueType,ShowActualBudget);
    END;
    

    Код за подмяна

    BEGIN
    CLEAR(DimCodeBufferColumn3);
    Which := '-';
    
    ItemAnalysisMgt.FindRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Which,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,PeriodInitialized,InternalDateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    Steps := Ordinal - 1;
    ItemAnalysisMgt.NextRec(
    ItemAnalysisView,ColumnDimOption,DimCodeBufferColumn3,Steps,
    
    // Add the following lines.
    ItemFilter,LocationFilter,PeriodType,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter);
    // End of the lines.
    
    ItemAnalysisMgt.DrillDown(
    CurrentAnalysisArea,ItemStatisticsBuffer,CurrentItemAnalysisViewCode,
    
    // Add the following lines.
    ItemFilter,LocationFilter,DateFilter,
    Dim1Filter,Dim2Filter,Dim3Filter,BudgetFilter,
    // End of the lines.
    
    LineDimOption,Rec,
    ColumnDimOption,DimCodeBufferColumn3,
    TRUE,ValueType,ShowActualBudget);
    END;
    
  16. Изтрийте функцията ApplyColumnFilter във формуляра за анализ на продажбите по матрица (9227), както следва:

    // Delete the following lines.
    BEGIN
    CLEAR(ItemFilter1);
    CLEAR(LocationFilter1);
    CLEAR(DateFilter1);
    CLEAR(Dim1Filter1);
    CLEAR(Dim2Filter1);
    CLEAR(Dim3Filter1);
    
    CASE ColumnDimOption OF
    ColumnDimOption::Item:
    BEGIN
    IF ItemFilter <> '' THEN
    ItemFilter1 := ItemFilter + '&';
    ItemFilter1 := ItemFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Location:
    BEGIN
    ItemFilter1 := ItemFilter;
    IF LocationFilter <> '' THEN
    LocationFilter1 := LocationFilter + '&';
    LocationFilter1 := LocationFilter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::Period:
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    IF DateFilter <> '' THEN
    DateFilter1 := DateFilter
    ELSE
    DateFilter1 := FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 1":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    IF Dim1Filter <> '' THEN
    Dim1Filter1 := Dim1Filter + '&';
    Dim1Filter1 := Dim1Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim2Filter1 := Dim2Filter;
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 2":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    IF Dim2Filter <> '' THEN
    Dim2Filter1 := Dim2Filter + '&';
    Dim2Filter1 := Dim2Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    Dim3Filter1 := Dim3Filter;
    END;
    ColumnDimOption::"Dimension 3":
    BEGIN
    ItemFilter1 := ItemFilter;
    LocationFilter1 := LocationFilter;
    DateFilter1 := DateFilter;
    Dim1Filter1 := Dim1Filter;
    Dim2Filter1 := Dim2Filter;
    IF Dim3Filter <> '' THEN
    Dim3Filter1 := Dim3Filter + '&';
    Dim3Filter1 := Dim3Filter1 + FORMAT(FirstColumn) + '..' + FORMAT(LastColumn);
    END;
    END;
    END;
    
    BEGIN
    END.
    }
    }
    // End of the lines.
    

            
          

Предварителни изисквания

Трябва да имате инсталиран Microsoft Dynamics NAV 2009 Service Pack 1, за да приложите тази гореща корекция.

Информация за премахване

Не можете да премахнете тази гореща корекция.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Забележка: Това е статия "FAST PUBLISH", създадена директно от организацията за поддръжка на Microsoft. Информацията, съдържаща се тук, е предоставена както е в отговор на възникващи проблеми. В резултат на бързината на предоставянето им, материалите могат да включват печатни грешки и могат да бъдат коригирани по всяко време без предизвестие. Вижте условията на използване за други съображения.