SSRS Report Archives -

Tag Archives: SSRS Report

Download SSRS report as a PDF with Power Automate – Part 2

In this blog, we will see how to extract the value for PdfDownloadUrl so we can load it into another request and get our PDF.

Run/Enable Customer Engagement SSRS Reports on Mobile App Android / iPad

Customer Engagement apps running on a web browser on an iOS or Android tablet provide a similar experience to using it with a web browser on your desktop or laptop computer. However, some features are not available on the mobile app or mobile web browser out of which one is running SSRS reports. Let’s say we need to run a Sales History report as below on a web application. But on mobile but there is not Reports Menu/Button on mobile application. We can use the following work around with Model Driven apps. Step :1 Run the Report 1st time on the web browser and copy the URL.Step Step : 2 Open App designer Step: 3 Create a URL Menu Submenu Item and paste the about URL in the URL field. Step: 4 Save and Publish the app and you can see the same menu appearing on the mobile app # Run the report and it will open on the mobile browse you may continue with the same login credentials. [/vc_column_text][/vc_column][/vc_row]   Hope this helps!

Creating Document Map in SSRS

Document Map makes navigation is easy to navigate through table in SSRS In our case we have dataset which contains Product and Product Subcategory. We created the 2 parent groups on Product key and Product Subcategory key. We have to go in the Parent group(ProductCategoryKey) >Advanced > Document Map and select the column used for document Map, in our case we are using ProductCaegoryName Go to Tablix property and in the Document Map Label and specify the Document Map Name. When we preview the report we can see the Product Index Label under the Document Map as shown in image, we can navigate though the table from the Product index. In this way we can create document Map in SSRS to navigate through the report.

Work Hours in CRM

Posted On September 3, 2018 by Admin Posted in Tagged in ,

In this article, we will learn how we can leverage the work hours in Reporting. The calendar entity stores data for customer service calendars and holiday schedules in addition to business. Each calendar is set for a specific time zone. A calendar describes the availability of a service or a resource. Calendars are related to calendarrule records, which include details about the duration, start and end times, and recurring patterns of events included in the calendar. There are two types of calendar rules in Microsoft Dynamics 365: Root: A calendar rule that contains an inner calendar or that has nested (leaf) rules. You can specify an inner calendar for a root calendar rule by using the InnerCalendarId attribute. The attribute value of CalendarRule.InnerCalendarId of a root rule is the same as the attribute value of CalendarRule.CalendarId of its leaf rules. Leaf: A calendar rule that doesn’t contain an inner calendar, and therefore, is the end of the “branch.” Referred from Blog: https://msdn.microsoft.com/en-us/library/gg328538.aspx To obtain Work Hours of a resource, you can use the following fetchxml code: <fetch version=”1.0″ output-format=”xml-platform” mapping=”logical” >   <entity name=”bookableresource”>   <!– You can use systemuser to retrieve same data –>         <link-entity name=”calendar” from=”calendarid” to=”calendarid” alias=”c” >             <link-entity name=”calendarrule” from=”calendarid” to=”calendarid” alias=”cr” >                 <attribute name=”starttime” />                 <attribute name=”effectiveintervalend” />                 <filter type=”or” > <!– These filters are applied to get calendar of this year only –>                     <condition attribute=”starttime” operator=”this-year” />                     <condition attribute=”effectiveintervalend” operator=”this-year” />                     <condition attribute=”effectiveintervalend” operator=”ge” value=”12/30/9999″ /> <!– 12/30/9999 is the max end date i.e infinite time –>                 </filter>                 <link-entity name=”calendar” from=”calendarid” to=”innercalendarid” alias=”inc” >                     <link-entity name=”calendarrule” from=”calendarid” to=”calendarid” alias=”incr” >                         <attribute name=”duration” />                         <filter>                             <condition attribute=”duration” operator=”lt” value=”1440″ /> <!– 1440 minutes equals 24 hours which is redundant. As the calendar includes Business Closures and holidays we want to avoid such calendar records  –>                         </filter>                     </link-entity>                 </link-entity>             </link-entity>         </link-entity> </fetch>

Row Numbering Issue for Grouped Data in SSRS

Issue: In SSRS if we are using an aggregate function in a group at the Tablix level, then you may realize that the simple row numbering function does not give a current sequential ranking. Using the function RowNumber(Nothing) gives something like this. Using RowNumber(“GroupName”) would also give an incorrect row numbering and look something like this. This is because RowNumber does not actually give the row count. Rather it counts the incidences of the data in the group and returns that value. Solution: We can use the “RunningValue” function in SSRS. The format for the expression would be. =RunningValue(<Grouped field>,CountDistinct,”<DataSet>”) Eg: =RunningValue(Fields!Name.Value,CountDistinct,”Accounts”) This would return something like this.   This should fix your issue!

Print Custom Size Report using Document Routing in D3FOE

Introduction: Recently I was working on Cheque Report. I created a custom size Cheque design and it was working fine while downloading it. Then the task was to print the cheque and test but the printout was off size. In this blog I will guide you how the custom size report prints using document routing agent in Dynamics 365 for Operations. Pre-requisites: Install Document Routing agent Configure Network Printers Adobe Reader Note: Click here to refer how to configure Document routing and network printer Steps: 1. Setup Printer Page Size You need to configure your printer to print custom size report. Go to Printer Paper size and select custom. A new dialog will ask for page size. Enter the Custom Paper size. Make this custom size as your default size. 2. Setup Adobe Reader Once you print the report from Operations with Print Destination as Printer, The Document Routing will take the command and send the document to Adobe Reader. Thus, it takes printing configurations of Adobe Reader and send it to Printer for printing. So, we need to setup the Adobe Reader as well. Please refer below screenshot for Adobe Reader Settings. Conclusion: After setting up Printer size and Adobe Reader with same orientation and page size you can print the Custom size report from D365 Operations directly to Printer with correct print layout.

Fetch Parameter name from ID for SSRS Report in D365 Operations

Introduction: I was stuck in an issue recently where I was working on SSRS report with multiple filter parameters. In multiple parameter, one parameter was Brand ID and in report I had to display the Brand name instead of its ID. In this blog article, we will see how we can get the name of brand as parameter using brand id in Dynamics 365 Operations. Steps: Override getFromDialog() Method getBrandName() method to fetch Brand name. parmBrandName() to set the value 1. Override getFromDialog() Method: In UI Builder class override getFromDialog() method. This method gets the value of Brand Id. /// <summary> /// Transfers data from the dialog into the data contract object. /// </summary> public void getFromDialog() { super(); RecId r; r = contract.parmEcoResCategoryId(); if (r) contract.parmBrandName(this.getBrandName(r)); } 2. getBrandName() method to fetch Brand name: This method is used to find Brand name and called from getFromDialog() method. The return value is passed as parameter to contract class. /// <summary> /// This method looks up name of the organization using the hierarchy relationship id. /// </summary> /// <param name = “hierarchyRelationshipId”>The hierarchy relationship id for the organization.</param> /// <returns>Name of the organization.</returns> public EcoResCategoryName getBrandName(RecId hierarchyRelationshipId) { EcoResCategory category; select firstonly Name from category where Category.RecId == hierarchyRelationshipId; return category.Name; } 3. parmBrandName() to set the value: This method gets or sets the value of Category Name. /// <summary> /// Gets or sets the value of the datacontract parameter Category Name. /// </summary> /// <param name=”_categoryName”> /// The new value of the datacontract parameter CategoryName; optional. /// </param> /// <returns> /// The current value of datacontract parameter CategoryName /// </returns> [ DataMemberAttribute(‘Retail Category Name’), SysOperationLabelAttribute(literalstr(“Brands”)), SysOperationHelpTextAttribute(literalstr(“Brands Category”)) ] public EcoResCategoryName parmBrandName(EcoResCategoryName _categoryName = categoryName) { categoryName = _categoryName; return categoryName; } Conclusion: This blog showed how we can fetch the parameter value from another parameter in SSRS report using filter parameters with Contract and UIBuilder class in D365 Operations.

Set SSRS Report Parameter to allow null values in D365 Operations

Introduction: Reports are used to see summary of data.  We also set parameter to filter data but at times we don’t want to filter using a parameter and keep it as blank. By default, parameter values are always mandatory in D365 Finance and Operations, Enterprise Edition. In this blog article, we will see how we set property to allow null values to a parameter in SSRS Report. Steps: Go to Report -> Parameters. Select the Parameter which you don’t want to be mandatory. Go to Properties -> Nullable. Set the value to True. This will allow you to pass null value. This is how you can make the report parameter as optional.

SEARCH :

FOLLOW CLOUDFRONTS BLOG :

[gravityform id="36" ajax="true"]

FOLLOW CLOUDFRONTS BLOG :