From 0b7a5abf7748eb2124ad6b767ec9e335f9fa9d90 Mon Sep 17 00:00:00 2001 From: IvetNikolova <118352332+IvetNikolova@users.noreply.github.com> Date: Fri, 31 Jan 2025 17:25:36 +0200 Subject: [PATCH 1/3] Update user-functions.md --- .../extending-expressions/user-functions.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md index a39a14c0f..a8fe952d1 100644 --- a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md +++ b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md @@ -29,13 +29,21 @@ There are two ways to utilize user functions: `= Telerik.Reporting.Report.Report1.ResolveUrl("~/Images/Logo.jpg")` -If the loaded assembly contains many __public static__ (__Public Shared__ in VB.NET) methods, this might produce some clutter in the Edit Expression dialog, when browsing for existing user functions. To overcome this problem, you can use the IsVisible attribute to hide any methods, which are not intended to be used as user functions. See the code example below: +If the loaded assembly contains many __public static__ (__Public Shared__ in VB.NET) methods, this might produce some clutter in the Edit Expression dialog, when browsing for existing user functions. To overcome this problem, you can use the IsVisible attribute to hide any methods, which are not intended to be used as user functions. See the code sample below: __Example:__ {{source=CodeSnippets\CS\API\Telerik\Reporting\Expressions\UserFunctionsSnippets.cs region=UserFunctionsAttributeIsVisibleSnippet}} {{source=CodeSnippets\VB\API\Telerik\Reporting\Expressions\UserFunctionsSnippets.vb region=UserFunctionsAttributeIsVisibleSnippet}} +As of 2025 Q1(version 19.0.25.211), the __User Function__ resolution behavior has been changed. The `IsVisible` property of the Function attribute can now be used to more precisely control which functions are loaded by the Reporting Engine. Below you will see what the new features are: + +* By default, all public static methods in a chosen assembly(ies) are loaded; +* If at least one public static method in the assembly(ies) is decorated with the Function attribute and has its `IsVisible` property set to `True` (True by default), only public static methods with the same configuration will be loaded. +* If public static methods that are not decorated with the Function attribute or have their `IsVisible` properties set to `False`, will not be loaded. +* If a type is decorated with the Function attribute and has its `IsVisible` property set to `False`, none of the methods in this class will be loaded. +* If a type is decorated with the Function attribute and has its `IsVisible` property set to `True`, all methods in it, except for the ones decorated with IsVisible = False, will be loaded. + ## Providing metadata for functions You can provide descriptive metadata about your user functions through attributes. Attributes are specialized classes that are applied to code elements. At compile time, attributes are emitted into metadata that is available to the common language runtime and reporting engine. From 1513afa06e892a86e058856e049d18b8bcd11ab9 Mon Sep 17 00:00:00 2001 From: IvetNikolova <118352332+IvetNikolova@users.noreply.github.com> Date: Fri, 31 Jan 2025 18:22:58 +0200 Subject: [PATCH 2/3] Update user-functions.md --- .../extending-expressions/user-functions.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md index a8fe952d1..88b9f41b4 100644 --- a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md +++ b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md @@ -36,13 +36,15 @@ __Example:__ {{source=CodeSnippets\CS\API\Telerik\Reporting\Expressions\UserFunctionsSnippets.cs region=UserFunctionsAttributeIsVisibleSnippet}} {{source=CodeSnippets\VB\API\Telerik\Reporting\Expressions\UserFunctionsSnippets.vb region=UserFunctionsAttributeIsVisibleSnippet}} +## User Functions Visibility in Report Designers + As of 2025 Q1(version 19.0.25.211), the __User Function__ resolution behavior has been changed. The `IsVisible` property of the Function attribute can now be used to more precisely control which functions are loaded by the Reporting Engine. Below you will see what the new features are: * By default, all public static methods in a chosen assembly(ies) are loaded; -* If at least one public static method in the assembly(ies) is decorated with the Function attribute and has its `IsVisible` property set to `True` (True by default), only public static methods with the same configuration will be loaded. -* If public static methods that are not decorated with the Function attribute or have their `IsVisible` properties set to `False`, will not be loaded. -* If a type is decorated with the Function attribute and has its `IsVisible` property set to `False`, none of the methods in this class will be loaded. -* If a type is decorated with the Function attribute and has its `IsVisible` property set to `True`, all methods in it, except for the ones decorated with IsVisible = False, will be loaded. +* If at least one public static method in the assembly(ies) is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True` (True by default), only public static methods with the same configuration will be loaded. +* If public static methods that are not decorated with the Function attribute or have their [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) properties set to `False`, will not be loaded. +* If a type is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `False`, none of the methods in this class will be loaded. +* If a type is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True`, all methods in it, except for the ones decorated with IsVisible = False, will be loaded. ## Providing metadata for functions From cbbd595a97b81e1fbe64a8d1cde93ebbeeabdb3f Mon Sep 17 00:00:00 2001 From: Momchil Zanev <108741271+mzanev@users.noreply.github.com> Date: Thu, 6 Feb 2025 11:07:26 +0200 Subject: [PATCH 3/3] Update user-functions.md --- .../extending-expressions/user-functions.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md index 88b9f41b4..994fad9da 100644 --- a/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md +++ b/designing-reports/connecting-to-data/expressions/extending-expressions/user-functions.md @@ -38,13 +38,12 @@ __Example:__ ## User Functions Visibility in Report Designers -As of 2025 Q1(version 19.0.25.211), the __User Function__ resolution behavior has been changed. The `IsVisible` property of the Function attribute can now be used to more precisely control which functions are loaded by the Reporting Engine. Below you will see what the new features are: +As of 2025 Q1 (19.0.25.211), the __User Function__ resolution behavior has been changed. The `IsVisible` property of the `Function` attribute can now be used to more precisely control which functions are loaded by the Reporting Engine. Below you can find more information about the new behavior: -* By default, all public static methods in a chosen assembly(ies) are loaded; -* If at least one public static method in the assembly(ies) is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True` (True by default), only public static methods with the same configuration will be loaded. -* If public static methods that are not decorated with the Function attribute or have their [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) properties set to `False`, will not be loaded. -* If a type is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `False`, none of the methods in this class will be loaded. -* If a type is decorated with the Function attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True`, all methods in it, except for the ones decorated with IsVisible = False, will be loaded. +* By default, all public static methods in the chosen assembly(ies) are loaded; +* If at least one public static method in the assembly(ies) is decorated with the `Function` attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True` _(true by default)_, only public static methods with the same configuration will be loaded. Public static methods that are not decorated with the `Function` attribute or have their [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) properties set to `False`, will not be loaded. +* If a type is decorated with the `Function` attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `False`, none of the methods in this class will be loaded. +* If a type is decorated with the `Function` attribute and has its [IsVisible](/api/telerik.reporting.expressions.functionattribute#Telerik_Reporting_Expressions_FunctionAttribute_IsVisible) property set to `True`, all methods in it, except for the ones decorated with `IsVisible = False`, will be loaded. ## Providing metadata for functions