Symptoms
After the release of XBRL (Germany - EU Sales List - New Method for Submission as of 01.01.2013 - Microsoft Dynamics NAV 2009 SP1), when you click Lookup in the request form of report 505, the taxonomy lines are deleted unexpectedly. This problem occurs in the following products:
-
The German version of Microsoft Dynamics NAV 2009 R2
-
The German version of Microsoft Dynamics NAV 2009 Service Pack 1
Resolution
Hotfix information
A supported hotfix is now available from Microsoft. However, it is only intended to correct the problem that is described in this article. Apply it only to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next Microsoft Dynamics NAV 2009 service pack or the next Microsoft Dynamics NAV version that contains this hotfix.
Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Technical Support Professional for Microsoft Dynamics and related products determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
Installation information
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure. However, they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
Note Before you install this hotfix, verify that all Microsoft Navision client users are logged off the system. This includes Microsoft Navision Application Services (NAS) client users. You should be the only client user who is logged on when you implement this hotfix.
To implement this hotfix, you must have a developer license.
We recommend that the user account in the Windows Logins window or in the Database Logins window be assigned the "SUPER" role ID. If the user account cannot be assigned the "SUPER" role ID, you must verify that the user account has the following permissions:
-
The Modify permission for the object that you will be changing.
-
The Execute permission for the System Object ID 5210 object and for the System Object ID 9015 object.
Note You do not have to have rights to the data stores unless you have to perform data repair.
Code changes
Note Always test code fixes in a controlled environment before you apply the fixes to your production computers.
To resolve this problem, change the code in the VAT Posting Setup table (325). To do this, follow these steps:
-
Change the code of Properties as follows:
Existing code 1...
Width=16500;
// Delete the following line.
Height=7370;
SaveValues=Yes;
...Replacement code 1
...
Width=16500;
// Add the following line.
Height=8140;
SaveValues=Yes;
...Existing code 2
...
IF NOT XBRLTaxonomy.GET(CurrentTaxonomy) THEN
// Delete the following line.
IF NOT XBRLTaxonomy.FIND('-') THEN
XBRLTaxonomy.INIT;
...Replacement code 2
...
IF NOT XBRLTaxonomy.GET(CurrentTaxonomy) THEN
// Add the following line.
IF NOT XBRLTaxonomy.FINDFIRST THEN
XBRLTaxonomy.INIT;
...Existing code 3
...
XBRLTaxonomyLabel.SETRANGE("XML Language Identifier",CurrentLang);
// Delete the following line.
IF XBRLTaxonomyLabel.FIND('-') THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Replacement code 3
...
XBRLTaxonomyLabel.SETRANGE("XML Language Identifier",CurrentLang);
// Add the following line.
IF XBRLTaxonomyLabel.FINDFIRST THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Existing code 4
...
XBRLTaxonomyLabel.SETRANGE("XML Language Identifier");
// Delete the following line.
IF XBRLTaxonomyLabel.FIND('-') THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Replacement code 4
...
XBRLTaxonomyLabel.SETRANGE("XML Language Identifier");
// Add the following line.
IF XBRLTaxonomyLabel.FINDFIRST THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Existing code 5
...
// Delete the following line.
SETRANGE("Label Language Filter",CurrentLang);
...Replacement code 5
...
// Add the following line.
InitTempTable(ISSERVICETIER);
...Existing code 6
...
// Delete the following lines.
IF ISSERVICETIER THEN
ExpandAll
ELSE
InitTempTable;
// End of the lines.
END;
...Replacement code 6
...
// Add the following line.
SetFiltersAndUpdate;
END;
...Existing code 7
...
// Delete the following lines.
OnAfterGetRecord=VAR
XBRLLine@1102601000 : Record 395;
BEGIN
IF IsExpanded(Rec) THEN
ActualExpansionStatus := 1
ELSE
IF HasChildren(Rec) THEN
ActualExpansionStatus := 0
ELSE
ActualExpansionStatus := 2;
// End of the lines.
...Replacement code 7
...
// Add the following lines.
OnFindRecord=VAR
Found@1001 : Boolean;
BEGIN
IF NOT FiltersApplied THEN
SetFilters;
FiltersApplied := TRUE;
// End of the lines.
...Existing code 8
...
// Delete the following lines.
XBRLLine.GET("XBRL Taxonomy Name","Line No.");
IF ("Source Type" <> XBRLLine."Source Type") OR
("Constant Amount" <> XBRLLine."Constant Amount") OR
(Description <> XBRLLine.Description)
THEN BEGIN
XBRLLine.CALCFIELDS(Label,Information,Rollup,"G/L Map Lines",Notes,Reference);
Rec := XBRLLine;
MODIFY;
END;
// End of the lines.
...Replacement code 8
...
// Add the following lines.
TempXBRLLine.COPY(Rec);
Found := TempXBRLLine.FIND(Which);
Rec := TempXBRLLine;
EXIT(Found);
END;
// End of the lines.
...Existing code 9
...
// Delete the following lines.
IF Label = '' THEN
Label := Name;
END;
// End of the lines.
...Replacement code 9
...
// Add the following lines.
OnNextRecord=VAR
ResultSteps@1001 : Integer;
BEGIN
TempXBRLLine.COPY(Rec);
ResultSteps := TempXBRLLine.NEXT(Steps);
Rec := TempXBRLLine;
EXIT(ResultSteps);
END;
// End of the lines.
...Existing code 10
...
// Delete the following lines.
OnModifyRecord=VAR
XBRLLine@1102601000 : Record 395;
RecRef@1000 : RecordRef;
xRecRef@1001 : RecordRef;
ChangeLogMgt@1002 : Codeunit 423;
BEGIN
RecRef.GETTABLE(Rec);
xRecRef.GETTABLE(xRec);
XBRLLine.GET("XBRL Taxonomy Name","Line No.");
XBRLLine := Rec;
XBRLLine.MODIFY;
Rec := XBRLLine;
MODIFY;
ChangeLogMgt.LogModification(RecRef,xRecRef);
EXIT(FALSE);
END;
// End of the lines.
...Replacement code 10
...
// Add the following lines.
OnAfterGetRecord=BEGIN
IF IsExpanded(Rec) THEN
ActualExpansionStatus := 1
ELSE
IF HasChildren(Rec) THEN
ActualExpansionStatus := 0
ELSE
ActualExpansionStatus := 2;
// End of the lines.
...Existing code 11
...
// Delete the following lines.
}
CONTROLS
{
{ 1 ;TableBox ;220 ;1760 ;16060;4620 ;HorzGlue=Both;
VertGlue=Both }
{ 35 ;PictureBox ;0 ;2530 ;550 ;3740 ;ParentControl=1;
InColumn=Yes;
BitmapList=47,46;
CaptionML=ENU=Expand;
SourceExpr=ActualExpansionStatus;
OnPush=BEGIN
ToggleExpandCollapse;
END;
}
{ 36 ;Label ;0 ;0 ;0 ;0 ;ParentControl=35;
InColumnHeading=Yes }
{ 28 ;TextBox ;0 ;3410 ;1700 ;440 ;Visible=No;
ParentControl=1;
InColumn=Yes;
SourceExpr="Line No." }
{ 29 ;Label ;0 ;0 ;0 ;0 ;ParentControl=28;
InColumnHeading=Yes }
{ 2 ;TextBox ;0 ;0 ;4400 ;0 ;HorzGlue=Both;
ParentControl=1;
InColumn=Yes;
DrillDown=No;
SourceExpr=Label;
OnFormat=BEGIN
IF Level > 0 THEN
CurrForm.Label.UPDATEINDENT := Level * 220;
// End of the lines.
...Replacement code 11
...
// Add the following lines.
IF Label = '' THEN
Label := Name;
END;
// End of the lines.
...Existing code 12
...
// Delete the following lines.
IF (Level = 0) OR (ActualExpansionStatus < 2) THEN
CurrForm.Label.UPDATEFONTBOLD := TRUE;
END;
}
{ 3 ;Label ;0 ;0 ;0 ;0 ;ParentControl=2;
InColumnHeading=Yes }
{ 4 ;TextBox ;0 ;0 ;550 ;0 ;ParentControl=1;
// End of the lines.
InColumn=Yes;
...Replacement code 12
...
// Add the following lines.
OnAfterGetCurrRecord=VAR
XBRLLine@1000 : Record 395;
BEGIN
XBRLLine.GET("XBRL Taxonomy Name","Line No.");
IF ("Source Type" <> XBRLLine."Source Type") OR
("Constant Amount" <> XBRLLine."Constant Amount") OR
(Description <> XBRLLine.Description)
THEN BEGIN
XBRLLine.CALCFIELDS(Label,Information,Rollup,"G/L Map Lines",Notes,Reference);
TempXBRLLine := XBRLLine;
TempXBRLLine.MODIFY;
END;
END;
OnModifyRecord=VAR
XBRLLine@1102601000 : Record 395;
RecRef@1000 : RecordRef;
xRecRef@1001 : RecordRef;
BEGIN
RecRef.GETTABLE(Rec);
xRecRef.GETTABLE(TempXBRLLine);
XBRLLine := Rec;
XBRLLine.MODIFY;
TempXBRLLine := XBRLLine;
TempXBRLLine.MODIFY;
EXIT(FALSE);
END;
}
CONTROLS
{
{ 1 ;TableBox ;220 ;2530 ;16060;4620 ;HorzGlue=Both;
VertGlue=Both }
{ 35 ;PictureBox ;0 ;2530 ;550 ;3740 ;ParentControl=1;
// End of the lines.
InColumn=Yes;
... -
Change the code of Controls as follows:
Existing code 1...
InColumn=Yes;
// Delete the following lines.
SourceExpr="Source Type" }
{ 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 1
...
InColumn=Yes;
// Add the following lines.
BitmapList=47,46;
CaptionML=ENU=Expand;
SourceExpr=ActualExpansionStatus;
OnPush=BEGIN
ToggleExpandCollapse;
END;
}
{ 36 ;Label ;0 ;0 ;0 ;0 ;ParentControl=35;
// End of the lines.
InColumnHeading=Yes }
...Existing code 2
...
InColumnHeading=Yes }
// Delete the following line.
{ 6 ;TextBox ;0 ;0 ;2196 ;0 ;ParentControl=1;
InColumn=Yes;
...Replacement code 2
...
InColumnHeading=Yes }
// Add the following lines.
{ 28 ;TextBox ;0 ;3410 ;1700 ;440 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Existing code 3
...
InColumn=Yes;
// Delete the following lines.
SourceExpr="Constant Amount" }
{ 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 3
...
InColumn=Yes;
// Add the following lines.
SourceExpr="Line No." }
{ 29 ;Label ;0 ;0 ;0 ;0 ;ParentControl=28;
// End of the lines.
InColumnHeading=Yes }
...Existing code 4
...
InColumnHeading=Yes }
// Delete the following line.
{ 10 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Replacement code 4
...
InColumnHeading=Yes }
// Add the following lines.
{ 2 ;TextBox ;0 ;0 ;4400 ;0 ;HorzGlue=Both;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Existing code 5
...
InColumn=Yes;
// Delete the following lines.
ShowCaption=No;
SourceExpr=Information }
{ 11 ;Label ;0 ;0 ;0 ;0 ;ParentControl=10;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 5
...
InColumn=Yes;
// Add the following lines.
DrillDown=No;
SourceExpr=Label;
OnFormat=BEGIN
IF Level > 0 THEN
CurrForm.Label.UPDATEINDENT := Level * 220;
IF (Level = 0) OR (ActualExpansionStatus < 2) THEN
CurrForm.Label.UPDATEFONTBOLD := TRUE;
END;
}
{ 3 ;Label ;0 ;0 ;0 ;0 ;ParentControl=2;
// End of the lines.
InColumnHeading=Yes }
...Existing code 6
...
InColumnHeading=Yes }
// Delete the following line.
{ 32 ;CheckBox ;10345;2750 ;1700 ;440 ;ParentControl=1;
InColumn=Yes;
...Replacement code 6
...
InColumnHeading=Yes }
// Add the following line.
{ 4 ;TextBox ;0 ;0 ;550 ;0 ;ParentControl=1;
InColumn=Yes;
...Existing code 7
...
InColumn=Yes;
// Delete the following lines.
ShowCaption=No;
SourceExpr=Reference }
{ 33 ;Label ;0 ;0 ;0 ;0 ;ParentControl=32;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 7
...
InColumn=Yes;
// Add the following lines.
SourceExpr="Source Type" }
{ 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
// End of the lines.
InColumnHeading=Yes }
...Existing code 8
...
InColumnHeading=Yes }
// Delete the following line.
{ 12 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Replacement code 8
...
InColumnHeading=Yes }
// Add the following line.
{ 6 ;TextBox ;0 ;0 ;2196 ;0 ;ParentControl=1;
InColumn=Yes;
...Existing code 9
...
InColumn=Yes;
// Delete the following lines.
ShowCaption=No;
SourceExpr=Notes }
{ 13 ;Label ;0 ;0 ;0 ;0 ;ParentControl=12;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 9
...
InColumn=Yes;
// Add the following lines.
SourceExpr="Constant Amount" }
{ 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
// End of the lines.
InColumnHeading=Yes }
...Existing code 10
...
InColumnHeading=Yes }
// Delete the following line.
{ 8 ;CheckBox ;7700 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Replacement code 10
...
InColumnHeading=Yes }
// Add the following line.
{ 10 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Existing code 11
...
ShowCaption=No;
// Delete the following lines.
SourceExpr="G/L Map Lines" }
{ 9 ;Label ;0 ;0 ;0 ;0 ;ParentControl=8;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 11
...
ShowCaption=No;
// Add the following lines.
SourceExpr=Information }
{ 11 ;Label ;0 ;0 ;0 ;0 ;ParentControl=10;
// End of the lines.
InColumnHeading=Yes }
...Existing code 12
...
InColumnHeading=Yes }
// Delete the following lines.
{ 31 ;CheckBox ;8731 ;2970 ;1650 ;440 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Replacement code 12
...
InColumnHeading=Yes }
// Add the following line.
{ 32 ;CheckBox ;10345;2750 ;1700 ;440 ;ParentControl=1;
InColumn=Yes;
...Existing code 13
...
ShowCaption=No;
// Delete the following lines.
SourceExpr=Rollup }
{ 37 ;Label ;0 ;0 ;0 ;0 ;ParentControl=31;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 13
...
ShowCaption=No;
// Add the following lines.
SourceExpr=Reference }
{ 33 ;Label ;0 ;0 ;0 ;0 ;ParentControl=32;
// End of the lines.
InColumnHeading=Yes }
...Existing code 14
...
InColumnHeading=Yes }
// Delete the following line.
{ 14 ;TextBox ;0 ;0 ;4400 ;0 ;ParentControl=1;
InColumn=Yes;
...Replacement code 14
...
InColumnHeading=Yes }
// Add the following line.
{ 12 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Existing code 15
...
InColumn=Yes;
// Delete the following lines.
SourceExpr=Description }
{ 15 ;Label ;0 ;0 ;0 ;0 ;ParentControl=14;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 15
...
InColumn=Yes;
// Add the following lines.
ShowCaption=No;
SourceExpr=Notes }
{ 13 ;Label ;0 ;0 ;0 ;0 ;ParentControl=12;
// End of the lines.
InColumnHeading=Yes }
...Existing code 16
...
InColumnHeading=Yes }
// Delete the following lines.
{ 16 ;TextBox ;0 ;0 ;4400 ;0 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Replacement code 16
...
InColumnHeading=Yes }
// Add the following line.
{ 8 ;CheckBox ;7700 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Existing code 17
...
InColumn=Yes;
// Delete the following lines.
SourceExpr=Name }
{ 17 ;Label ;0 ;0 ;0 ;0 ;ParentControl=16;
// End of the lines.
InColumnHeading=Yes }
...Replacement code 17
...
InColumn=Yes;
// Add the following lines.
ShowCaption=No;
SourceExpr="G/L Map Lines" }
{ 9 ;Label ;0 ;0 ;0 ;0 ;ParentControl=8;
// End of the lines.
InColumnHeading=Yes }
...Existing code 18
...
InColumnHeading=Yes }
// Delete the following line.
{ 18 ;CommandButton;4400 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Replacement code 18
...
InColumnHeading=Yes }
// Add the following lines.
{ 31 ;CheckBox ;8731 ;2970 ;1650 ;440 ;Visible=No;
ParentControl=1;
InColumn=Yes;
ShowCaption=No;
SourceExpr=Rollup }
{ 37 ;Label ;0 ;0 ;0 ;0 ;ParentControl=31;
InColumnHeading=Yes }
{ 14 ;TextBox ;0 ;0 ;4400 ;0 ;ParentControl=1;
InColumn=Yes;
SourceExpr=Description }
{ 15 ;Label ;0 ;0 ;0 ;0 ;ParentControl=14;
InColumnHeading=Yes }
{ 16 ;TextBox ;0 ;0 ;4400 ;0 ;Visible=No;
ParentControl=1;
InColumn=Yes;
SourceExpr=Name }
{ 17 ;Label ;0 ;0 ;0 ;0 ;ParentControl=16;
InColumnHeading=Yes }
{ 18 ;CommandButton;4400 ;7370 ;2200 ;550 ;HorzGlue=Right;
// End of the lines.
VertGlue=Bottom;
...Existing code 19
...
InvalidActionAppearance=Hide }
// Delete the following line.
{ 19 ;CommandButton;6820 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Replacement code 19
...
InvalidActionAppearance=Hide }
// Add the following line.
{ 19 ;CommandButton;6820 ;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Existing code 20
...
InvalidActionAppearance=Hide }
// Delete the following line.
{ 20 ;CommandButton;14080;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Replacement code 20
...
InvalidActionAppearance=Hide }
// Add the following line.
{ 20 ;CommandButton;14080;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Existing code 21
...
PushAction=FormHelp }
// Delete the following line.
{ 21 ;MenuButton ;9240 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Replacement code 21
...
PushAction=FormHelp }
// Add the following line.
{ 21 ;MenuButton ;9240 ;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Existing code 22
...
// Delete the following line.
{ 38 ;TabControl ;220 ;220 ;16060;1430 ;HorzGlue=Both }
{ 39 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=38;
...Replacement code 22
...
// Add the following line.
{ 38 ;TabControl ;220 ;220 ;16060;2090 ;HorzGlue=Both }
{ 39 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=38;
...Existing code 23
...
OnAfterValidate=BEGIN
// Delete the following lines.
FILTERGROUP(2);
SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
FILTERGROUP(0);
SETRANGE("XBRL Taxonomy Name");
InitTempTable;
CurrForm.UPDATE(FALSE);
// End of the lines.
END;
...Replacement code 23
...
OnAfterValidate=BEGIN
// Add the following lines.
InitTempTable(FALSE);
SetFiltersAndUpdate;
// End of the lines.
END;
...Existing code 24
...
IF CurrentLang <> '' THEN
// Delete the following lines.
IF NOT XBRLTaxonomyLabel.FIND('-') THEN
ERROR(Text001,CurrentLang);
SETRANGE("Label Language Filter",CurrentLang);
// End of the lines.
END;
...Replacement code 24
...
IF CurrentLang <> '' THEN
// Add the following lines.
IF XBRLTaxonomyLabel.ISEMPTY THEN
ERROR(LangLabelsNotDefinedErr,CurrentLang);
// End of the lines.
END;
...Existing code 25
...
XBRLTaxonomyLabel.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
// Delete the following lines.
IF NOT XBRLTaxonomyLabel.FIND('-') THEN
ERROR(Text002,"XBRL Taxonomy Name");
// End of the lines.
XBRLTaxonomyLabel.SETRANGE(
...Replacement code 25
...
XBRLTaxonomyLabel.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
// Add the following lines.
IF NOT XBRLTaxonomyLabel.FINDFIRST THEN
ERROR(TaxonomyLabelsNotDefinedErr,"XBRL Taxonomy Name");
// End of the lines.
XBRLTaxonomyLabel.SETRANGE(
...Existing code 26
...
EXIT(TRUE);
// Delete the following lines.
END ELSE
EXIT(FALSE);
// End of the lines.
END;
...Replacement code 26
...
EXIT(TRUE);
// Add the following lines.
END;
EXIT(FALSE);
// End of the lines.
END;
...Existing code 27
...
END;
// Delete the following line.
}
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
...Replacement code 27
...
END;
// Add the following lines.
OnAfterValidate=BEGIN
SetFiltersAndUpdate;
END;
}
// End of the lines.
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
...Existing code 28
...
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
// Delete the following line.
{ 43 ;MenuButton ;11660;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Replacement code 28
...
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
// Add the following lines.
{ 49 ;CheckBox ;3850 ;1650 ;440 ;440 ;ParentControl=38;
InPage=0;
ShowCaption=No;
CaptionML=ENU=Show Only Presentation;
SourceExpr=OnlyShowPresentation;
OnAfterValidate=BEGIN
SetFiltersAndUpdate;
END;
}
{ 50 ;Label ;440 ;1650 ;3300 ;440 ;ParentControl=49 }
{ 43 ;MenuButton ;11660;7370 ;2200 ;550 ;HorzGlue=Right;
// End of the lines.
VertGlue=Bottom;
...Existing code 29
...
OnPush=BEGIN
// Delete the following line.
ExpandAll;
END;
...Replacement code 29
...
OnPush=BEGIN
// Add the following lines.
InitTempTable(TRUE);
SetFiltersAndUpdate;
// End of the lines.
END;
...Existing code 30
...
OnPush=BEGIN
// Delete the following line.
InitTempTable;
END;
...Replacement code 30
...
OnPush=BEGIN
// Add the following lines.
InitTempTable(FALSE);
SetFiltersAndUpdate;
// End of the lines.
END;
... -
Add the following global veriable:
...
VAR
// Add the following line.
TempXBRLLine@1005 : TEMPORARY Record 395;
CurrentTaxonomy@1004 : Code[20];
... -
Delete the following global variables:
...
ActualExpansionStatus@1000 : Integer;
// Delete the following lines.
Text001@1002 : TextConst 'ENU=Labels are not defined for language %1.';
Text002@1006 : TextConst 'ENU=There are no labels defined for %1.';
// End of the lines.
... -
Add the following global variables:
...
ActualExpansionStatus@1000 : Integer;
// Add the following lines.
LangLabelsNotDefinedErr@1002 : TextConst 'ENU=Labels are not defined for language %1.';
TaxonomyLabelsNotDefinedErr@1006 : TextConst 'ENU=There are no labels defined for %1.';
OnlyShowPresentation@1003 : Boolean;
FiltersApplied@1007 : Boolean;
// End of the lines.
... -
Change the code in the InitTempTable function as follows:
Existing code 1...
// Delete the following line.
LOCAL PROCEDURE InitTempTable@4();
VAR
...Replacement code 1
...
// Add the following line.
LOCAL PROCEDURE InitTempTable@4(ExpandAll@1000 : Boolean);
VAR
...Existing code 2
...
VAR
// Delete the following line.
XBRLLine@1000 : Record 395;
BEGIN
...Replacement code 2
...
VAR
// Add the following line.
XBRLLine@1001 : Record 395;
BEGIN
...Existing code 3
...
ResetFilter;
// Delete the following line.
DELETEALL;
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
...Replacement code 3
...
ResetFilter;
// Add the following lines.
TempXBRLLine.RESET;
TempXBRLLine.DELETEALL;
TempXBRLLine.SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
// End of the lines.
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
...Existing code 4
...
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
// Delete the following line.
XBRLLine.SETRANGE(Level,0);
IF XBRLLine.FIND('-') THEN
...Replacement code 4
...
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
// Add the following lines.
IF NOT ExpandAll THEN
XBRLLine.SETRANGE(Level,0);
// End of the lines.
IF XBRLLine.FIND('-') THEN
...Existing code 5
...
REPEAT
// Delete the following lines.
- Rec := XBRLLine;
- INSERT;
// End of the lines.
UNTIL XBRLLine.NEXT = 0;
...Replacement code 5
...
REPEAT
// Add the following lines.
TempXBRLLine := XBRLLine;
TempXBRLLine.INSERT;
// End of the lines.
UNTIL XBRLLine.NEXT = 0;
... -
Change the code in the ExpandAll function as follows:
Existing code 1...
// Delete the following line.
LOCAL PROCEDURE ExpandAll@12();
VAR
...Replacement code 1
...
// Add the following line.
LOCAL PROCEDURE HasChildren@19(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Existing code 2
...
VAR
// Delete the following line.
XBRLLine@1000 : Record 395;
BEGIN
...Replacement code 2
...
VAR
// Add the following line.
XBRLLine2@1001 : Record 395;
BEGIN
...Existing code 3
...
BEGIN
// Delete the following lines.
ResetFilter;
DELETEALL;
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
IF XBRLLine.FIND('-') THEN
REPEAT
Rec := XBRLLine;
INSERT;
UNTIL XBRLLine.NEXT = 0;
// End of the lines.
END;
...Replacement code 3
...
BEGIN
// Add the following lines.
XBRLLine2 := ActualXBRLLine;
XBRLLine2.SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
XBRLLine2.SETRANGE("XBRL Taxonomy Name",ActualXBRLLine."XBRL Taxonomy Name");
IF XBRLLine2.NEXT = 0 THEN
EXIT(FALSE);
EXIT(XBRLLine2.Level > ActualXBRLLine.Level);
// End of the lines.
END;
... -
Change the code in the HasChildren function as follows:
Existing code 1...
// Delete the following line.
LOCAL PROCEDURE HasChildren@19(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Replacement code 1
...
// Add the following line.
LOCAL PROCEDURE IsExpanded@20(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Existing code 2
...
VAR
// Delete the following line.
XBRLLine2@1001 : Record 395;
BEGIN
...Replacement code 2
...
VAR
// Add the following lines.
xXBRLLine@1001 : Record 395;
Found@1002 : Boolean;
// End of the lines.
BEGIN
...Existing code 3
...
BEGIN
// Delete the following lines.
XBRLLine2 := ActualXBRLLine;
XBRLLine2.SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
XBRLLine2.SETRANGE("XBRL Taxonomy Name",ActualXBRLLine."XBRL Taxonomy Name");
IF XBRLLine2.NEXT = 0 THEN
EXIT(FALSE)
ELSE
EXIT(XBRLLine2.Level > ActualXBRLLine.Level);
// End of the lines.
END;
...Replacement code 3
...
BEGIN
// Add the following lines.
xXBRLLine.COPY(Rec);
ResetFilter;
TempXBRLLine := ActualXBRLLine;
Found := (TempXBRLLine.NEXT <> 0);
IF Found THEN
Found := (TempXBRLLine.Level > ActualXBRLLine.Level);
COPY(xXBRLLine);
EXIT(Found);
// End of the lines.
END;
... -
Change the code in the IsExpanded function as follows:
Existing code 1...
// Delete the following line.
LOCAL PROCEDURE IsExpanded@20(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Replacement code 1
...
// Add the following line.
LOCAL PROCEDURE ToggleExpandCollapse@1();
VAR
...Existing code 2
...
VAR
xXBRLLine@1001 : Record 395;
...Replacement code 2
...
VAR
// Add the following line.
XBRLLine@1000 : Record 395;
xXBRLLine@1001 : Record 395;
...Existing code 3
...
xXBRLLine@1001 : Record 395;
// Delete the following line.
Found@1002 : Boolean;
BEGIN
...Replacement code 3
...
xXBRLLine@1001 : Record 395;
BEGIN
...Existing code 4
...
ResetFilter;
// Delete the following lines.
Rec := ActualXBRLLine;
Found := (NEXT <> 0);
IF Found THEN
Found := (Level > ActualXBRLLine.Level);
COPY(xXBRLLine);
EXIT(Found);
END;
LOCAL PROCEDURE ToggleExpandCollapse@1();
VAR
XBRLLine@1000 : Record 395;
xXBRLLine@1001 : Record 395;
BEGIN
xXBRLLine.COPY(Rec);
ResetFilter;
// End of the lines.
IF ActualExpansionStatus = 0 THEN BEGIN // Has children, but not expanded
...Replacement code 4
...
ResetFilter;
IF ActualExpansionStatus = 0 THEN BEGIN // Has children, but not expanded
... -
Change the code in the ToggleExpandCollapse function as follows:
Existing code 1...
IF XBRLLine.Level > xXBRLLine.Level THEN BEGIN
// Delete the following lines.
Rec := XBRLLine;
IF INSERT THEN;
// End of the lines.
END;
...Replacement code 1
...
IF XBRLLine.Level > xXBRLLine.Level THEN BEGIN
// Add the following lines.
TempXBRLLine := XBRLLine;
IF TempXBRLLine.INSERT THEN;
// End of the lines.
END;
...Existing code 2
...
IF ActualExpansionStatus = 1 THEN BEGIN // Has children and is already expanded
// Delete the following lines.
WHILE (NEXT <> 0) AND (Level > xXBRLLine.Level) DO
DELETE;
// End of the lines.
END;
...Replacement code 2
...
IF ActualExpansionStatus = 1 THEN BEGIN // Has children and is already expanded
// Add the following lines.
TempXBRLLine := Rec;
WHILE (TempXBRLLine.NEXT <> 0) AND (TempXBRLLine.Level > xXBRLLine.Level) DO
TempXBRLLine.DELETE;
// End of the lines.
END;
... -
Change the code in the ResetFilter function as follows:
Existing code 1...
// Delete the following line.
LOCAL PROCEDURE ResetFilter@3();
BEGIN
...Replacement code 1
...
// Add the following line.
LOCAL PROCEDURE SetFiltersAndUpdate@5();
BEGIN
...Existing code 2
...
BEGIN
// Delete the following lines.
RESET;
SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
FILTERGROUP(2);
SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
FILTERGROUP(0);
// End of the lines.
END;
...Replacement code 2
...
BEGIN
// Add the following lines.
SetFilters;
CurrForm.UPDATE(FALSE);
// End of the lines.
END;
...Existing code 3
...
BEGIN
...Replacement code 3
...
// Add the following line.
LOCAL PROCEDURE SetFilters@11();
BEGIN
...Existing code 4
...
BEGIN
// Delete the following lines.
END.
}
}
// End of the lines.
...Replacement code 4
...
BEGIN
// Add the following lines.
SETRANGE("Label Language Filter",CurrentLang);
IF OnlyShowPresentation THEN
SETFILTER("Presentation Linkbase Line No.",'>0')
ELSE
SETRANGE("Presentation Linkbase Line No.");
END;
// End of the lines.
... -
Add the following code in the ResetFilter function:
...
LOCAL PROCEDURE ResetFilter@3();
BEGIN
RESET;
SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
FILTERGROUP(2);
SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
FILTERGROUP(0);
END;
... -
Add the following code in the ResetFilter function:
...
BEGIN
END.
}
}
...
Prerequisites
You must have one of the following products installed to apply this hotfix:
-
The German version of Microsoft Dynamics NAV 2009 R2
-
The German version of Microsoft Dynamics NAV 2009 Service Pack 1
Removal information
You cannot remove this hotfix.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.