Тази статия се отнася за Microsoft Dynamics NAV за следните страни и езикови променливи.
- Френски (Швейцария) (fr-ch)
- Немски (Швейцария) (de-ch)
- Италиански (Швейцария) (it-ch)
Симптоми
Когато отворите таблицата на бюджета в счетоводството на разходите в клиента RoleTailored (RTC) в швейцарската версия на Microsoft Dynamics 2009, не можете да редактирате стойностите в матрицата на бюджета. Затова не можете да въведете бюджета на разходите в "Счетоводство на разходите".
Този проблем възниква в следните продукти:
- Швейцарската версия на Microsoft Dynamics NAV 2009 R2
- Швейцарската версия на Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Решение
Информация за горещи поправки
Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV 2009 или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.
Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.
Информация за инсталиране
Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжката на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура. Те обаче няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.
Забележка: Преди да инсталирате тази гореща корекция, се уверете, че всички потребители на клиента на Microsoft Dynamics NAV са излезли от системата. Това включва услугите на Microsoft Dynamics NAV Application Server (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.
За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.
Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:
- Разрешението за промяна за обекта, който ще променяте.
- Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.
Промени в кода
Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да решите този проблем, изпълнете следните стъпки:
Променете кода в свойствата във формуляра "Разход, бюджет за един период", матрица (36883) по следния начин:
Съществуващ код} PROPERTIES { Width=20790; Height=6380; // Delete the following line. Editable=No; // End of the deleted line. CaptionML=ENU=Cost Budget per Period Matrix; InsertAllowed=No; DeleteAllowed=No; LinksAllowed=No; SourceTable=Table3010551;Код за подмяна
} PROPERTIES { Width=20790; Height=6380; CaptionML=ENU=Cost Budget per Period Matrix; InsertAllowed=No; DeleteAllowed=No; LinksAllowed=No; SourceTable=Table3010551;Променете кода в контролите във формуляра "Разходен бюджет за един период" (36883) по следния начин:
Съществуващ код 1IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field1.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(1); END; } { 1051;Label ;0 ;0 ;0 ;0 ;ParentControl=1015;Код за замяна 1
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field1.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(1); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(1); END; } { 1051;Label ;0 ;0 ;0 ;0 ;ParentControl=1015;Съществуващ код 2
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field2.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(2); END; } { 1052;Label ;0 ;0 ;0 ;0 ;ParentControl=1016;Код за замяна 2
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field2.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(2); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(2); END; } { 1052;Label ;0 ;0 ;0 ;0 ;ParentControl=1016;Съществуващ код 3
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field3.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(3); END; } { 1053;Label ;0 ;0 ;0 ;0 ;ParentControl=1017;Код за замяна 3
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field3.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(3); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(3); END; } { 1053;Label ;0 ;0 ;0 ;0 ;ParentControl=1017;Съществуващ код 4
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field4.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(4); END; } { 1054;Label ;0 ;0 ;0 ;0 ;ParentControl=1018;Код за замяна 4
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field4.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(4); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(4); END; } { 1054;Label ;0 ;0 ;0 ;0 ;ParentControl=1018;Съществуващ код 5
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field5.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(5); END; } { 1055;Label ;0 ;0 ;0 ;0 ;ParentControl=1019;Код за замяна 5
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field5.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(5); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(5); END; } { 1055;Label ;0 ;0 ;0 ;0 ;ParentControl=1019;Съществуващ код 6
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field6.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(6); END; } { 1056;Label ;0 ;0 ;0 ;0 ;ParentControl=1020;Код за замяна 6
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field6.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(6); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(6); END; } { 1056;Label ;0 ;0 ;0 ;0 ;ParentControl=1020;Съществуващ код 7
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field7.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(7); END; } { 1057;Label ;0 ;0 ;0 ;0 ;ParentControl=1021;Код за замяна 7
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field7.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(7); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(7); END; } { 1057;Label ;0 ;0 ;0 ;0 ;ParentControl=1021;Съществуващ код 8
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field8.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(8); END; } { 1058;Label ;0 ;0 ;0 ;0 ;ParentControl=1022;Код за замяна 8
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field8.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(8); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(8); END; } { 1058;Label ;0 ;0 ;0 ;0 ;ParentControl=1022;Съществуващ код 9
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field9.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(9); END; } { 1059;Label ;0 ;0 ;0 ;0 ;ParentControl=1023;Код за замяна 9
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field9.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(9); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(9); END; } { 1059;Label ;0 ;0 ;0 ;0 ;ParentControl=1023;Съществуващ код 10
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field10.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(10); END; } { 1060;Label ;0 ;0 ;0 ;0 ;ParentControl=1024;Код за замяна 10
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field10.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(10); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(10); END; } { 1060;Label ;0 ;0 ;0 ;0 ;ParentControl=1024;Съществуващ код 11
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field11.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(11); END; } { 1061;Label ;0 ;0 ;0 ;0 ;ParentControl=1025;Код за замяна 11
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field11.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(11); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(11); END; } { 1061;Label ;0 ;0 ;0 ;0 ;ParentControl=1025;Съществуващ код 12
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field12.UPDATEFONTBOLD := TRUE; // CA0002.end END; OnDrillDown=BEGIN MATRIX_OnDrillDown(12); END; } { 1062;Label ;0 ;0 ;0 ;0 ;ParentControl=1026;Код за замяна 12
IF "Line Type" <> "Line Type"::"Cost Type" THEN CurrForm.Field12.UPDATEFONTBOLD := TRUE; // CA0002.end END; // Add the following lines. OnValidate=BEGIN UpdateAmount(12); END; // End of the added lines. OnDrillDown=BEGIN MATRIX_OnDrillDown(12); END; } { 1062;Label ;0 ;0 ;0 ;0 ;ParentControl=1026;Променете кода в глобалните променливи във формуляра за разходен бюджет за една матрица за период (36883) по следния начин:
Съществуващ кодBudgetFilter@1150004 : Code[10]; MATRIX_ColumnCaption@1150005 : ARRAY [12] OF Text[80]; AmtType@1150006 : 'Balance at Date,Net Change'; RoundingFactor@1150007 : 'None,1,1000,1000000'; MATRIX_CellData@1150008 : ARRAY [32] OF Decimal; LOCAL PROCEDURE SetDateFilter@1150000(MATRIX_ColumnOrdinal@1150000 : Integer); BEGIN IF AmtType = AmtType::"Net Change" THEN IF MatrixRecords[MATRIX_ColumnOrdinal]."Period Start" = MatrixRecords[MATRIX_ColumnOrdinal]."Period End" THENКод за подмяна
BudgetFilter@1150004 : Code[10]; MATRIX_ColumnCaption@1150005 : ARRAY [12] OF Text[80]; AmtType@1150006 : 'Balance at Date,Net Change'; RoundingFactor@1150007 : 'None,1,1000,1000000'; MATRIX_CellData@1150008 : ARRAY [32] OF Decimal; // Add the following lines. Text000@1150011 : TextConst 'ENU=Set View As to Net Change before you edit entries.'; Text001@1150012 : TextConst 'ENU=%1 or %2 must not be blank.'; CurrRegNo@11500010 : Integer; // End of the added lines. LOCAL PROCEDURE SetDateFilter@1150000(MATRIX_ColumnOrdinal@1150000 : Integer); BEGIN IF AmtType = AmtType::"Net Change" THEN IF MatrixRecords[MATRIX_ColumnOrdinal]."Period Start" = MatrixRecords[MATRIX_ColumnOrdinal]."Period End" THENПроменете кода във функцията UpdateAmount във формуляра за разходен бюджет за една матрица за период (36883) по следния начин:
Съществуващ кодRoundingFactor::"1000000": MATRIX_CellData[ColumnID] := ROUND(MATRIX_CellData[ColumnID] / 1000000,0.1); END; END; BEGIN { <changelog> <add id="CA0001" dev="kcools" date="2007-02-21" area="COSTACCTNG" feature="PSCORS1209" releaseversion="CACEM6.00">Код за подмяна
RoundingFactor::"1000000": MATRIX_CellData[ColumnID] := ROUND(MATRIX_CellData[ColumnID] / 1000000,0.1); END; END; // Add the following lines. LOCAL PROCEDURE UpdateAmount@1150005(ColumnID@1150000 : Integer); BEGIN IF AmtType <> AmtType::"Net Change" THEN ERROR(Text000); IF (CostCenterFilter = '') AND (CostObjectFilter = '') THEN ERROR(Text001,FIELDCAPTION("Cost Center Filter"),FIELDCAPTION("Cost Object Filter")); SetFilters(ColumnID); CALCFIELDS("Budget Amount"); InsertMatrixCostBudgetEntry(CurrRegNo,ColumnID); END; LOCAL PROCEDURE SetFilters@1150006(ColumnID@1150000 : Integer); BEGIN SetDateFilter(ColumnID); SETFILTER("Cost Center Filter",CostCenterFilter); SETFILTER("Cost Object Filter",CostObjectFilter); SETFILTER("Budget Filter",BudgetFilter); END; LOCAL PROCEDURE InsertMatrixCostBudgetEntry@1150007(VAR RegNo@1150000 : Integer;ColumnID@1150001 : Integer); VAR MatrixCostBudgetEntry@1150003 : Record 3010571; BEGIN MatrixCostBudgetEntry.INIT; MatrixCostBudgetEntry."Budget Name" := BudgetFilter; MatrixCostBudgetEntry."Cost Type No." := "No."; MatrixCostBudgetEntry.Date := MatrixRecords[ColumnID]."Period Start"; MatrixCostBudgetEntry."Cost Center Code" := CostCenterFilter; MatrixCostBudgetEntry."Cost Object Code" := CostObjectFilter; MatrixCostBudgetEntry.Amount := MATRIX_CellData[ColumnID] - "Budget Amount"; MatrixCostBudgetEntry.INSERT(TRUE); END; // End of the added lines. BEGIN { <changelog> <add id="CA0001" dev="kcools" date="2007-02-21" area="COSTACCTNG" feature="PSCORS1209" releaseversion="CACEM6.00">
Предварителни изисквания
Трябва да имате инсталиран един от следните продукти, за да приложите тази гореща корекция:
- Швейцарската версия на Microsoft Dynamics NAV 2009 R2
- Швейцарската версия на Microsoft Dynamics NAV 2009 Service Pack 1
Информация за премахване
Не можете да премахнете тази гореща корекция.
Състояние
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.
Забележка: Това е статия "FAST PUBLISH", създадена директно от организацията за поддръжка на Microsoft. Информацията, съдържаща се тук, е предоставена както е в отговор на възникващи проблеми. В резултат на бързината на предоставянето им, материалите могат да включват печатни грешки и могат да бъдат коригирани по всяко време без предизвестие. Вижте условията на използване за други съображения.