Artikel ini berlaku untuk Microsoft Dynamics NAV untuk negara dan bahasa lokal berikut.
- Bahasa Prancis (Swiss) (fr-ch)
- Bahasa Jerman (Swiss) (de-ch)
- Italia (Swiss) (it-ch)
Gejala
Ketika membuka matriks anggaran dalam Akuntansi Biaya di klien RoleTailored (RTC) dalam Microsoft Dynamics 2009 versi Swiss, Anda tidak dapat mengedit nilai dalam matriks anggaran. Oleh karena itu, Anda tidak dapat memasukkan anggaran biaya dalam Akuntansi Biaya.
Masalah ini terjadi pada produk berikut ini:
- Microsoft Dynamics NAV 2009 R2 versi Swiss
- Versi Swiss dari Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Resolusi
Informasi hotfix
Hotfix yang didukung kini tersedia dari Microsoft. Namun, hanya dimaksudkan untuk memperbaiki masalah yang dijelaskan dalam artikel ini. Terapkan hanya ke sistem yang mengalami masalah khusus ini. Hotfix ini mungkin menerima pengujian tambahan. Oleh karena itu, jika Anda tidak terpengaruh oleh masalah ini, kami menyarankan agar Anda menunggu paket layanan Microsoft Dynamics NAV 2009 berikutnya atau versi Microsoft Dynamics NAV berikutnya yang berisi hotfix ini.
Catatan Dalam kasus khusus, biaya yang biasanya ditimbulkan untuk panggilan dukungan mungkin dibatalkan jika Profesional Dukungan Teknis untuk Microsoft Dynamics dan produk terkait menentukan bahwa pembaruan tertentu akan mengatasi masalah Anda. Biaya dukungan biasa akan berlaku untuk pertanyaan dan masalah dukungan tambahan yang tidak memenuhi syarat untuk pembaruan tertentu yang dimaksud.
Informasi penginstalan
Microsoft menyediakan contoh pemrograman untuk ilustrasi saja, tanpa jaminan baik tersurat maupun tersirat. Ini termasuk, tetapi tidak terbatas pada, jaminan tersirat dari kelayakan jual atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa Anda sudah terbiasa dengan bahasa pemrograman yang ditunjukkan dan dengan alat yang digunakan untuk membuat dan men-debug prosedur. Teknisi dukungan Microsoft dapat membantu menjelaskan fungsionalitas prosedur tertentu. Namun, mereka tidak akan mengubah contoh ini untuk menyediakan fungsionalitas tambahan atau prosedur konstruksi untuk memenuhi persyaratan tertentu Anda.
Catatan Sebelum Anda menginstal hotfix ini, verifikasi bahwa semua pengguna klien Microsoft Dynamics NAV telah keluar dari sistem. Ini termasuk layanan Microsoft Dynamics NAV Application Server (NAS). Anda harus menjadi satu-satunya pengguna klien yang masuk ketika Anda menerapkan hotfix ini.
Untuk menerapkan hotfix ini, Anda harus memiliki lisensi pengembang.
Kami menyarankan agar akun pengguna di jendela Windows Logins atau di jendela Login Database diberi ID peran "SUPER". Jika akun pengguna tidak dapat ditetapkan sebagai ID peran "SUPER", Anda harus memverifikasi bahwa akun pengguna memiliki izin berikut:
- Izin Ubah untuk objek yang akan Anda ubah.
- Izin Jalankan untuk objek System Object ID 5210 dan untuk objek System Object ID 9015.
Catatan Anda tidak harus memiliki hak untuk penyimpanan data kecuali Anda harus melakukan perbaikan data.
Perubahan kode
Catatan Selalu uji perbaikan kode di lingkungan terkontrol sebelum Anda menerapkan perbaikan pada komputer produksi Anda.
Untuk mengatasi masalah ini, ikuti langkah-langkah ini:
Ubah kode dalam Properti dalam formulir Anggaran Biaya per Periode Matriks (36883) sebagai berikut:
Kode yang sudah ada} 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;Kode pengganti
} PROPERTIES { Width=20790; Height=6380; CaptionML=ENU=Cost Budget per Period Matrix; InsertAllowed=No; DeleteAllowed=No; LinksAllowed=No; SourceTable=Table3010551;Ubah kode dalam Kontrol dalam formulir Anggaran Biaya per Periode Matriks (36883) sebagai berikut:
Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Kode yang sudah ada 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;Kode pengganti 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;Ubah kode dalam Variabel Global dalam formulir Anggaran Biaya per Periode Matriks (36883) sebagai berikut:
Kode yang sudah adaBudgetFilter@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" THENKode pengganti
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" THENUbah kode dalam fungsi UpdateAmount dalam formulir Anggaran Biaya per Periode Matriks (36883) sebagai berikut:
Kode yang sudah adaRoundingFactor::"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">Kode pengganti
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">
Prasyarat
Anda harus memiliki salah satu produk berikut yang terinstal untuk menerapkan hotfix ini:
- Microsoft Dynamics NAV 2009 R2 versi Swiss
- Versi Swiss dari Microsoft Dynamics NAV 2009 Service Pack 1
Informasi penghapusan
Anda tidak dapat menghapus hotfix ini.
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".
Catatan Ini adalah artikel "FAST PUBLISH" yang dibuat langsung dari dalam organisasi dukungan Microsoft. Informasi yang dimuat di sini disediakan sebagaimana adanya sebagai respons terhadap masalah yang muncul. Sebagai akibat dari kecepatan dalam membuatnya tersedia, materi mungkin menyertakan kesalahan pengetikan dan dapat direvisi kapan saja tanpa pemberitahuan. Lihat Ketentuan Penggunaan untuk pertimbangan lain.