Tuesday, 26 February 2013

Null Values in SSRS Parameters


we have option to give parameter as blank or null
by enabling the features


CRMAF in ssrs



select filteredsalesorder.ordernumber,filteredsalesorder.name,filteredsalesorder.createdon,filteredsalesorder.quoteid,filteredsalesorder.totalamount,
filteredaccount.address1_line1,filteredaccount.address1_line2,filteredaccount.address1_line3,filteredaccount.name,filteredaccount.address1_city,filteredaccount.address1_country,
filteredaccount.address1_stateorprovince,filteredaccount.address1_postalcode,
filteredbusinessunit.address2_line1,filteredbusinessunit.address2_line2,filteredbusinessunit.address2_line3,filteredbusinessunit.address2_city,
filteredbusinessunit.address2_stateorprovince,filteredbusinessunit.address2_postalcode,filteredbusinessunit.address2_country
 from filteredsalesorder,filteredbusinessunit,filteredaccount
where (filteredsalesorder.customerid = filteredaccount.accountid) and (filteredsalesorder.jmh_store=filteredbusinessunit.businessunitid)

select * from filteredsalesorder as CRMAF_filteredsalesorder,filteredbusinessunit,filteredaccount
where (CRMAF_filteredsalesorder.customerid = filteredaccount.accountid) and (CRMAF_filteredsalesorder.jmh_store=filteredbusinessunit.businessunitid)

select CRMAF_filteredsalesorder.ordernumber,CRMAF_filteredsalesorder.name,CRMAF_filteredsalesorder.createdon,CRMAF_filteredsalesorder.quoteid,CRMAF_filteredsalesorder.totalamount,
filteredaccount.address1_line1,filteredaccount.address1_line2,filteredaccount.address1_line3,filteredaccount.name,filteredaccount.address1_city,filteredaccount.address1_country,
filteredaccount.address1_stateorprovince,filteredaccount.address1_postalcode,
filteredbusinessunit.address2_line1,filteredbusinessunit.address2_line2,filteredbusinessunit.address2_line3,filteredbusinessunit.address2_city,
filteredbusinessunit.address2_stateorprovince,filteredbusinessunit.address2_postalcode,filteredbusinessunit.address2_country
 from filteredsalesorder as CRMAF_filteredsalesorder ,filteredbusinessunit,filteredaccount
where (CRMAF_filteredsalesorder.customerid = filteredaccount.accountid) and (CRMAF_filteredsalesorder.jmh_store=filteredbusinessunit.businessunitid)


Monday, 25 February 2013

Filter dataset records based on another dataset data in ssrs


Senario:
we have two datasets.
dataset1 and dataset2.
based on dataset1 values we need to filter dataset2 data.

Doing thourgh FetchXml.

First create the Dataset1 with enableprefiltering="1".
Ex:


<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="salesorder" enableprefiltering="1">
    <attribute name="name" />
    <attribute name="customerid" />
    <attribute name="statuscode" />
    <attribute name="totalamount" />
    <attribute name="createdon" />
    <attribute name="ordernumber" />
    <attribute name="quoteid" />
    <attribute name="salesorderid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition attribute="name" operator="not-null" />
    </filter>
    <link-entity name="account" from="accountid" to="customerid" alias="aa">
      <attribute name="name" />
      <attribute name="address1_name" />
      <attribute name="address1_line1" />
      <attribute name="address1_line2" />
      <attribute name="address1_line3" />
      <attribute name="address1_city" />
      <attribute name="address1_stateorprovince" />
      <attribute name="address1_postalcode" />
      <attribute name="address1_country" />
      <filter type="and">
        <condition attribute="name" operator="not-null" />
      </filter>
    </link-entity>
    <link-entity name="businessunit" from="businessunitid" to="jmh_store" alias="ab">
      <attribute name="address2_name" />
      <attribute name="address2_line1" />
      <attribute name="address2_line2" />
      <attribute name="address2_line3" />
      <attribute name="address2_city" />
      <attribute name="address2_stateorprovince" />
      <attribute name="address2_postalcode" />
      <attribute name="address2_country" />
      <filter type="and">
        <condition attribute="name" operator="not-null" />
      </filter>
    </link-entity>
  </entity>
</fetch>

the about code will join "order", "Account","businessunit" tables.

next :
dataset2:


<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
  <entity name="salesorderdetail">
    <attribute name="productid" />
    <attribute name="productdescription" />
    <attribute name="priceperunit" />
    <attribute name="quantity" />
    <attribute name="extendedamount" />   
    <attribute name="baseamount" />
    <attribute name="jmh_orderamount" />    
    <attribute name="salesorderid" />
    <attribute name="salesorderdetailid" />
    <order attribute="productid" descending="false" />
    <filter type="and">
      <condition attribute="quantity" operator="not-null" />
    </filter>
  </entity>
</fetch>

now you need to get the data in dataset2 relating of dataset1;

create parameters 










Give the values as default values.
Use this filter and create another dataset3 for the Salesorder.
after that create another parameter



so using 3 parameter
create filter on dataset2.






u will get the correct details.

Wednesday, 20 February 2013

Date Validation in crm 2011 using javascript


Validate two date fields using javascript.


function ValidateDates()
{

var startdate = Xrm.Page.getAttribute("jmh_invoicedate").getValue();
var dueby = Xrm.Page.getAttribute("jmh_daterecieved").getValue();

if(startdate != null && dueby != null)
{
if(dueby.setHours(0,0,0,0) < startdate.setHours(0,0,0,0))
{
alert("Recieved Date must be greater than or equal to Invoice Date");
var pass = Xrm.Page.data.entity.attributes.get("jmh_daterecieved");
pass.setValue(null);
//event.returnValue = false;
//return false;
}
}
}