Симптомы
После выпуска XBRL (Германия - ЕС - новый метод для отправки на 01.01.2013 - SP1 Microsoft Dynamics NAV 2009 г.) при нажатии кнопки поиска в форме запроса отчета 505, таксономия строки удаляются неожиданно. Эта проблема возникает в следующих продуктах:
-
Немецкая версия Microsoft Dynamics NAV 2009 R2
-
Немецкая версия Пакет обновления 1 для Microsoft Dynamics NAV 2009 г.
Решение
Сведения об исправлении
Исправление от корпорации Майкрософт доступно. Однако оно предназначено только для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление может проходить дополнительное тестирование. Таким образом Если вы не подвержены серьезно эту проблему, рекомендуется дождаться следующего пакета обновления для Microsoft Dynamics NAV 2009 или следующей версии Microsoft Dynamics NAV, содержащего это исправление.
Примечание. В особых случаях оплата, предусмотренная в службу поддержки может быть отменена Если специалист службы технической поддержки Microsoft Dynamics и связанных продуктов определит, что решения проблемы является специально выпущенное. Затраты на обычные услуги службы поддержки будут применяться к дополнительным вопросам и проблемам, которые не охватываются конкретным обновлением.
Сведения об установке
Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации и без явных или подразумеваемых гарантий. Это включает, но не ограничиваясь, подразумеваемые гарантии товарной пригодности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с демонстрируемым языком программирования и средствами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры. Тем не менее они не изменит примеров для обеспечения функциональных возможностей или создания процедур для определенных требований.
Примечание. Перед установкой данного исправления убедитесь, что все пользователи Microsoft Navision вошли выход из системы. Это включает в себя пользователей клиентских служб приложений Microsoft Navision (NAS). Должен быть только клиент пользователя, который вошел в систему, при реализации данного исправления.
Чтобы реализовать это исправление, необходимо иметь лицензию разработчика.
Рекомендуется, чтобы учетной записи пользователя в окне Логины Windows или в окне Логины базы данных был присвоен идентификатор роли «SUPER» Если учетная запись пользователя не может быть назначена роль «SUPER» идентификатор, необходимо убедиться, что учетная запись пользователя имеет следующие разрешения.
-
Изменение разрешений для объекта, подлежащий изменению.
-
Разрешение Execute для объекта идентификатор объекта системы 5210 и 9015 идентификатор объекта системного объекта.
Примечание. Необходимо иметь права к хранилищам данных, если необходимо выполнить восстановление данных.
Изменения кода
Примечание. Всегда тестовый код исправления в контролируемой среде, прежде чем применить исправления на производственных компьютерах.
Чтобы решить эту проблему, измените код в таблице НДС Настройка учета (325). Чтобы сделать это, выполните следующие действия.
-
Измените код свойства следующим образом:
Существующий код 1... Width=16500;
// Delete the following line.
Height=7370;
SaveValues=Yes;
...Код для замены 1
...Width=16500;
// Add the following line.
Height=8140;
SaveValues=Yes;
...Существующий код 2
...IF NOT XBRLTaxonomy.GET(CurrentTaxonomy) THEN
// Delete the following line.
IF NOT XBRLTaxonomy.FIND('-') THEN
XBRLTaxonomy.INIT;
...Код для замены 2
...IF NOT XBRLTaxonomy.GET(CurrentTaxonomy) THEN
// Add the following line.
IF NOT XBRLTaxonomy.FINDFIRST THEN
XBRLTaxonomy.INIT;
...Существующий код 3
...XBRLTaxonomyLabel.SETRANGE("XML Language Identifier",CurrentLang);
// Delete the following line.
IF XBRLTaxonomyLabel.FIND('-') THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Код для замены 3
...XBRLTaxonomyLabel.SETRANGE("XML Language Identifier",CurrentLang);
// Add the following line.
IF XBRLTaxonomyLabel.FINDFIRST THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Существующий код 4
...XBRLTaxonomyLabel.SETRANGE("XML Language Identifier");
// Delete the following line.
IF XBRLTaxonomyLabel.FIND('-') THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Код для замены 4
...XBRLTaxonomyLabel.SETRANGE("XML Language Identifier");
// Add the following line.
IF XBRLTaxonomyLabel.FINDFIRST THEN
CurrentLang := XBRLTaxonomyLabel."XML Language Identifier"
...Существующий код 5
...// Delete the following line.
SETRANGE("Label Language Filter",CurrentLang);
...Код для замены 5
...// Add the following line.
InitTempTable(ISSERVICETIER);
...Существующий код 6
...// Delete the following lines.
IF ISSERVICETIER THEN
ExpandAll
ELSE
InitTempTable;
// End of the lines.
END;
...Код для замены 6
...// Add the following line.
SetFiltersAndUpdate;
END;
...Существующий код 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.
...Код для замены 7
...// Add the following lines.
OnFindRecord=VAR
Found@1001 : Boolean;
BEGIN
IF NOT FiltersApplied THEN
SetFilters;
FiltersApplied := TRUE;
// End of the lines.
...Существующий код 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.
...Код для замены 8
...// Add the following lines.
TempXBRLLine.COPY(Rec);
Found := TempXBRLLine.FIND(Which);
Rec := TempXBRLLine;
EXIT(Found);
END;
// End of the lines.
...Существующий код 9
...// Delete the following lines.
IF Label = '' THEN
Label := Name;
END;
// End of the lines.
...Код для замены 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.
...Существующий код 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.
...Код для замены 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.
...Существующий код 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.
...Код для замены 11
...// Add the following lines.
IF Label = '' THEN
Label := Name;
END;
// End of the lines.
...Существующий код 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;
...Код для замены 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;
... -
Измените код элементов управления следующим образом:
Существующий код 1...InColumn=Yes;
// Delete the following lines.
SourceExpr="Source Type" }
{ 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
// End of the lines.
InColumnHeading=Yes }
...Код для замены 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 }
...Существующий код 2
...InColumnHeading=Yes }
// Delete the following line.
{ 6 ;TextBox ;0 ;0 ;2196 ;0 ;ParentControl=1;
InColumn=Yes;
...Код для замены 2
...InColumnHeading=Yes }
// Add the following lines.
{ 28 ;TextBox ;0 ;3410 ;1700 ;440 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Существующий код 3
...InColumn=Yes;
// Delete the following lines.
SourceExpr="Constant Amount" }
{ 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
// End of the lines.
InColumnHeading=Yes }
...Код для замены 3
...InColumn=Yes;
// Add the following lines.
SourceExpr="Line No." }
{ 29 ;Label ;0 ;0 ;0 ;0 ;ParentControl=28;
// End of the lines.
InColumnHeading=Yes }
...Существующий код 4
...InColumnHeading=Yes }
// Delete the following line.
{ 10 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Код для замены 4
...InColumnHeading=Yes }
// Add the following lines.
{ 2 ;TextBox ;0 ;0 ;4400 ;0 ;HorzGlue=Both;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Существующий код 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 }
...Код для замены 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 }
...Существующий код 6
...InColumnHeading=Yes }
// Delete the following line.
{ 32 ;CheckBox ;10345;2750 ;1700 ;440 ;ParentControl=1;
InColumn=Yes;
...Код для замены 6
...InColumnHeading=Yes }
// Add the following line.
{ 4 ;TextBox ;0 ;0 ;550 ;0 ;ParentControl=1;
InColumn=Yes;
...Существующий код 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 }
...Код для замены 7
...InColumn=Yes;
// Add the following lines.
SourceExpr="Source Type" }
{ 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
// End of the lines.
InColumnHeading=Yes }
...Существующий код 8
...InColumnHeading=Yes }
// Delete the following line.
{ 12 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Код для замены 8
...InColumnHeading=Yes }
// Add the following line.
{ 6 ;TextBox ;0 ;0 ;2196 ;0 ;ParentControl=1;
InColumn=Yes;
...Существующий код 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 }
...Код для замены 9
...InColumn=Yes;
// Add the following lines.
SourceExpr="Constant Amount" }
{ 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
// End of the lines.
InColumnHeading=Yes }
...Существующий код 10
...InColumnHeading=Yes }
// Delete the following line.
{ 8 ;CheckBox ;7700 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Код для замены 10
...InColumnHeading=Yes }
// Add the following line.
{ 10 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Существующий код 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 }
...Код для замены 11
...ShowCaption=No;
// Add the following lines.
SourceExpr=Information }
{ 11 ;Label ;0 ;0 ;0 ;0 ;ParentControl=10;
// End of the lines.
InColumnHeading=Yes }
...Существующий код 12
...InColumnHeading=Yes }
// Delete the following lines.
{ 31 ;CheckBox ;8731 ;2970 ;1650 ;440 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Код для замены 12
...InColumnHeading=Yes }
// Add the following line.
{ 32 ;CheckBox ;10345;2750 ;1700 ;440 ;ParentControl=1;
InColumn=Yes;
...Существующий код 13
...ShowCaption=No;
// Delete the following lines.
SourceExpr=Rollup }
{ 37 ;Label ;0 ;0 ;0 ;0 ;ParentControl=31;
// End of the lines.
InColumnHeading=Yes }
...Код для замены 13
...ShowCaption=No;
// Add the following lines.
SourceExpr=Reference }
{ 33 ;Label ;0 ;0 ;0 ;0 ;ParentControl=32;
// End of the lines.
InColumnHeading=Yes }
...Существующий код 14
...InColumnHeading=Yes }
// Delete the following line.
{ 14 ;TextBox ;0 ;0 ;4400 ;0 ;ParentControl=1;
InColumn=Yes;
...Код для замены 14
...InColumnHeading=Yes }
// Add the following line.
{ 12 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Существующий код 15
...InColumn=Yes;
// Delete the following lines.
SourceExpr=Description }
{ 15 ;Label ;0 ;0 ;0 ;0 ;ParentControl=14;
// End of the lines.
InColumnHeading=Yes }
...Код для замены 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 }
...Существующий код 16
...InColumnHeading=Yes }
// Delete the following lines.
{ 16 ;TextBox ;0 ;0 ;4400 ;0 ;Visible=No;
ParentControl=1;
// End of the lines.
InColumn=Yes;
...Код для замены 16
...InColumnHeading=Yes }
// Add the following line.
{ 8 ;CheckBox ;7700 ;0 ;1650 ;0 ;ParentControl=1;
InColumn=Yes;
...Существующий код 17
...InColumn=Yes;
// Delete the following lines.
SourceExpr=Name }
{ 17 ;Label ;0 ;0 ;0 ;0 ;ParentControl=16;
// End of the lines.
InColumnHeading=Yes }
...Код для замены 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 }
...Существующий код 18
...InColumnHeading=Yes }
// Delete the following line.
{ 18 ;CommandButton;4400 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Код для замены 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;
...Существующий код 19
...InvalidActionAppearance=Hide }
// Delete the following line.
{ 19 ;CommandButton;6820 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Код для замены 19
...InvalidActionAppearance=Hide }
// Add the following line.
{ 19 ;CommandButton;6820 ;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Существующий код 20
...InvalidActionAppearance=Hide }
// Delete the following line.
{ 20 ;CommandButton;14080;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Код для замены 20
...InvalidActionAppearance=Hide }
// Add the following line.
{ 20 ;CommandButton;14080;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Существующий код 21
...PushAction=FormHelp }
// Delete the following line.
{ 21 ;MenuButton ;9240 ;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Код для замены 21
...PushAction=FormHelp }
// Add the following line.
{ 21 ;MenuButton ;9240 ;7370 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Существующий код 22
...// Delete the following line.
{ 38 ;TabControl ;220 ;220 ;16060;1430 ;HorzGlue=Both }
{ 39 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=38;
...Код для замены 22
...// Add the following line.
{ 38 ;TabControl ;220 ;220 ;16060;2090 ;HorzGlue=Both }
{ 39 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=38;
...Существующий код 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;
...Код для замены 23
...OnAfterValidate=BEGIN
// Add the following lines.
InitTempTable(FALSE);
SetFiltersAndUpdate;
// End of the lines.
END;
...Существующий код 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;
...Код для замены 24
...IF CurrentLang <> '' THEN
// Add the following lines.
IF XBRLTaxonomyLabel.ISEMPTY THEN
ERROR(LangLabelsNotDefinedErr,CurrentLang);
// End of the lines.
END;
...Существующий код 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(
...Код для замены 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(
...Существующий код 26
...EXIT(TRUE);
// Delete the following lines.
END ELSE
EXIT(FALSE);
// End of the lines.
END;
...Код для замены 26
...EXIT(TRUE);
// Add the following lines.
END;
EXIT(FALSE);
// End of the lines.
END;
...Существующий код 27
...END;
// Delete the following line.
}
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
...Код для замены 27
...END;
// Add the following lines.
OnAfterValidate=BEGIN
SetFiltersAndUpdate;
END;
}
// End of the lines.
{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
...Существующий код 28
...{ 42 ;Label ;10890;990 ;3300 ;440 ;ParentControl=41 }
// Delete the following line.
{ 43 ;MenuButton ;11660;6600 ;2200 ;550 ;HorzGlue=Right;
VertGlue=Bottom;
...Код для замены 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;
...Существующий код 29
...OnPush=BEGIN
// Delete the following line.
ExpandAll;
END;
...Код для замены 29
...OnPush=BEGIN
// Add the following lines.
InitTempTable(TRUE);
SetFiltersAndUpdate;
// End of the lines.
END;
...Существующий код 30
...OnPush=BEGIN
// Delete the following line.
InitTempTable;
END;
...Код для замены 30
...OnPush=BEGIN
// Add the following lines.
InitTempTable(FALSE);
SetFiltersAndUpdate;
// End of the lines.
END;
... -
Добавьте следующие глобальные veriable:
...VAR
// Add the following line.
TempXBRLLine@1005 : TEMPORARY Record 395;
CurrentTaxonomy@1004 : Code[20];
... -
Удалите следующие глобальные переменные:
...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.
... -
Добавьте следующие глобальные переменные:
...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.
... -
Измените код в функцию InitTempTable следующим образом:
Существующий код 1...// Delete the following line.
LOCAL PROCEDURE InitTempTable@4();
VAR
...Код для замены 1
...// Add the following line.
LOCAL PROCEDURE InitTempTable@4(ExpandAll@1000 : Boolean);
VAR
...Существующий код 2
...VAR
// Delete the following line.
XBRLLine@1000 : Record 395;
BEGIN
...Код для замены 2
...VAR
// Add the following line.
XBRLLine@1001 : Record 395;
BEGIN
...Существующий код 3
...ResetFilter;
// Delete the following line.
DELETEALL;
XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
...Код для замены 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);
...Существующий код 4
...XBRLLine.SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
// Delete the following line.
XBRLLine.SETRANGE(Level,0);
IF XBRLLine.FIND('-') THEN
...Код для замены 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
...Существующий код 5
...REPEAT
// Delete the following lines.
- Rec := XBRLLine;
- INSERT;
// End of the lines.
UNTIL XBRLLine.NEXT = 0;
...Код для замены 5
...REPEAT
// Add the following lines.
TempXBRLLine := XBRLLine;
TempXBRLLine.INSERT;
// End of the lines.
UNTIL XBRLLine.NEXT = 0;
... -
Измените код в функцию "Развернуть все" следующим образом:
Существующий код 1...// Delete the following line.
LOCAL PROCEDURE ExpandAll@12();
VAR
...Код для замены 1
...// Add the following line.
LOCAL PROCEDURE HasChildren@19(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Существующий код 2
...VAR
// Delete the following line.
XBRLLine@1000 : Record 395;
BEGIN
...Код для замены 2
...VAR
// Add the following line.
XBRLLine2@1001 : Record 395;
BEGIN
...Существующий код 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;
...Код для замены 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;
... -
Измените код в функцию HasChildren следующим образом:
Существующий код 1...// Delete the following line.
LOCAL PROCEDURE HasChildren@19(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Код для замены 1
...// Add the following line.
LOCAL PROCEDURE IsExpanded@20(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Существующий код 2
...VAR
// Delete the following line.
XBRLLine2@1001 : Record 395;
BEGIN
...Код для замены 2
...VAR
// Add the following lines.
xXBRLLine@1001 : Record 395;
Found@1002 : Boolean;
// End of the lines.
BEGIN
...Существующий код 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;
...Код для замены 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;
... -
Измените код в функцию IsExpanded следующим образом:
Существующий код 1...// Delete the following line.
LOCAL PROCEDURE IsExpanded@20(ActualXBRLLine@1000 : Record 395) : Boolean;
VAR
...Код для замены 1
...// Add the following line.
LOCAL PROCEDURE ToggleExpandCollapse@1();
VAR
...Существующий код 2
...VAR
xXBRLLine@1001 : Record 395;
...Код для замены 2
...VAR
// Add the following line.
XBRLLine@1000 : Record 395;
xXBRLLine@1001 : Record 395;
...Существующий код 3
...xXBRLLine@1001 : Record 395;
// Delete the following line.
Found@1002 : Boolean;
BEGIN
...Код для замены 3
...xXBRLLine@1001 : Record 395;
BEGIN
...Существующий код 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
...Код для замены 4
...ResetFilter;
IF ActualExpansionStatus = 0 THEN BEGIN // Has children, but not expanded
... -
Измените код в функцию ToggleExpandCollapse следующим образом:
Существующий код 1...IF XBRLLine.Level > xXBRLLine.Level THEN BEGIN
// Delete the following lines.
Rec := XBRLLine;
IF INSERT THEN;
// End of the lines.
END;
...Код для замены 1
...IF XBRLLine.Level > xXBRLLine.Level THEN BEGIN
// Add the following lines.
TempXBRLLine := XBRLLine;
IF TempXBRLLine.INSERT THEN;
// End of the lines.
END;
...Существующий код 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;
...Код для замены 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;
... -
Измените код в функцию ResetFilter следующим образом:
Существующий код 1...// Delete the following line.
LOCAL PROCEDURE ResetFilter@3();
BEGIN
...Код для замены 1
...// Add the following line.
LOCAL PROCEDURE SetFiltersAndUpdate@5();
BEGIN
...Существующий код 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;
...Код для замены 2
...BEGIN
// Add the following lines.
SetFilters;
CurrForm.UPDATE(FALSE);
// End of the lines.
END;
...Существующий код 3
...BEGIN
...Код для замены 3
...
// Add the following line.
LOCAL PROCEDURE SetFilters@11();
BEGIN
...Существующий код 4
...BEGIN
// Delete the following lines.
END.
}
}
// End of the lines.
...Код для замены 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.
... -
Добавьте следующий код в функцию ResetFilter :
... LOCAL PROCEDURE ResetFilter@3();
BEGIN
RESET;
SETCURRENTKEY("XBRL Taxonomy Name","Presentation Order");
FILTERGROUP(2);
SETRANGE("XBRL Taxonomy Name",CurrentTaxonomy);
FILTERGROUP(0);
END;
... -
Добавьте следующий код в функцию ResetFilter :
... BEGIN
END.
}
}
...
Предварительные условия
Необходимы следующие продукты для установки данного исправления.
-
Немецкая версия Microsoft Dynamics NAV 2009 R2
-
Немецкая версия Пакет обновления 1 для Microsoft Dynamics NAV 2009 г.
Сведения об удалении
Установленное обновление удалить нельзя.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".
Примечание. Это статья «БЫСТРАЯ ПУБЛИКАЦИЯ», созданная непосредственно из технической поддержки корпорации Майкрософт. Сведения, содержащиеся в настоящем документе, предоставляются "как есть" в ответ на возникающие проблемы. В результате скорости предоставления материалов они могут включать опечаток и быть изменены в любое время без предварительного уведомления. Другие вопросы, связанные с Условиями использования см.