Wednesday, 17 October 2018

SSRS Report with Prefilter in MSCRM

SSRS Report run on multiple records in Dynamic CRM

Create SSRS(SQL query) prefilter based report for dynamic CRM and it can run on single or multiple records.
Below example related to the "incident entity" and getting incident Id, title and ticket number in report.

Create a report project in VS and two new reports "mainreport" and "subreports".
Design subreport as ref below screenshot1
(screenshot1)

Dataset1 query(use filtered view)

SELECT  top 1      Title, IncidentId, TicketNumber
FROM            FilteredIncident

WHERE        FilteredIncident.IncidentId = @CRM_IncidentId


Design 2nd report "mainreport" and add subreport in rectangle or list data item.

Dataset1 query:
SELECT        TOP (20) IncidentId as caseid
FROM            FilteredIncident AS CRMAF_FilteredIncident


Add a parameter in subreport

Add group properties in list or rectangle. 

Add report in mscrm and run report for multiple records.


report result for multiple records.


 run report from the form, it will run for that record only.



Enjoy :)

Thursday, 11 October 2018

Encode/Decode in JS

// Create Base64 Object

var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9+/=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/rn/g,"n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}



// Define the string

var string = 'Hello World!';



// Encode the String

var encodedString = Base64.encode(string);

console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh"



// Decode the String

var decodedString = Base64.decode(encodedString);

console.log(decodedString); // Outputs: "Hello World!"

Add double quotation mark " " in string c#


"\"" + value.ToString() + "\""