Announcement

As of April 17, 2018, this site is now in read-only mode. To start new Blackbaud Developer’s discussions, you will find Developer Discussions in the Blackbaud CRM Community.

To post or respond to Blackbaud Community discussions, you will have to login using a www.blackbaud.com login. Learn how to login here. If you have questions or need assistance, please email community@blackbaud.com.

1.7k questions

3.2k answers

401 users

Categories

1.7k questions

3.2k answers

401 users

How to add drilldown reports in ecrm. Is there an example of drilldown report?

asked by mpuffer (177 points)

2 Answers

Are you trying to drill down from an SSRS report to another more detailed report? Or are you trying to drill from a SSRS report to a specific place in CRM? I think there's already an answer for you posted to this page if you're wanting to drill to another report. If you want to drill down to a specific spot in CRM, here's some info for you:

What do you need to find out ahead of time in order to make this work?

The only things you really need are:

• Figure out what page you want to drill down to
• Once you have the page identified, determine the context data that you need in order to open the page (ie: a constituent ID, or a transaction ID, etc.)

EXAMPLE: you might want to let users click on the date of a transaction in a report, and have that action take them to the transaction detail page. The name of the page is Revenue Transaction Page, and the context you need to provide is a transaction ID. Now you're ready to add the hyperlink to your report.

STEP 1) In the query that pulls the data for your report, you need to add in a column that builds a specifically-formatted url. The column alias is SUPER IMPORTANT because it will be used in future steps so make it something that stands out to you.

http://www.blackbaud.com/<linkname>?<linkname>=' + convert(nvarchar(38),<yourIDcolumn>) as <linkname>

Here is how this looks in the query. We want to be able to drill down to the Revenue Transaction Page for a specific transaction ID. This query comes from our datamart, but you get the idea -- your query needs the financial transaction ID in order to link to the revenue detail page.

select top 15 rm.FTDate
  ,rm.RowDefinition
  ,rm.DesignationName
  ,rm.DesignationSchool
  ,rm.RevRecAmount
  ,rm.FTDonorName
  ,'http://www.blackbaud.com/FTlink?FTlink=' + CONVERT(nvarchar(38), rm.FTID) as FTlink 
from RecognitionMart rm
where rm.ConstituentID = @ConstituentID
order by rm.FTDate desc, rm.RevRecAmount desc
  • The FTID column in the RecognitionMart table is the FinancialTransactionID, which is the context id you need to pass to the Revenue Transaction Page.
  • The column alias FTLink is what determines what goes in the url after www.blackbaud.com/ . So if you called your column alias Bob, then the url would have been:

    http://www.blackbaud.com/Bob?Bob=' + convert(nvarchar(38), rm.FTID) as Bob

  • Don't worry that the url doesn't make any sense with www.blackbaud.com -- it really isn't going to go to that url. CRM interprets that in such a way as to go to your current CRM app. SO, the link magic will only work within CRM if you use this specific url !

STEP 2) I deployed this report on a tab on the Constituent page, so I added an AlterExistingPages section to my Report specification. The bit that's related to getting the link working is the Action that I called "Goto transaction" -- notice it specifies a LinkFieldID = FTLink (the column name from Step 1), the target page you want to drill down to, and the action context is the SectionField which is also set to FTLink. Keeping the column name consistent is the key making this work!

<AlterExistingPages xmlns="bb_appfx_pagedefinition">
<AlterPages>
  <AlterPage PageID="88159265-2b7e-4c7b-82a2-119d01ecd40f">
    <AlterTabs>
      <AddTab Sequence="1">
        <Tab Caption="Recognition  Summary"
             ID="e52a52d0-f121-43d4-9eff-ab59bf70ec40"
             Visible="= Page.Fields!SHOWRECOGNITIONSUMMARYTAB">
          <Sections>
            <Section Caption="UConn Recognition Summary"
                     ID="86efa35b-d401-43a0-bfba-369f9be9c621">
              <Report ID="b6a8e93e-05cf-4c5c-b474-2c11f35f4db0">
                <ParameterValues>
                  <common:ParameterValue ID="ConstituentID" xmlns="bb_appfx_commontypes">
                    <common:Value>
                      <common:PageContextID/>
                    </common:Value>
                  </common:ParameterValue></ParameterValues>
              </Report>
              <Actions>
                <Action ID="81c82fba-0825-490b-a87e-b458f0f0395c"
                        Caption="Goto transaction"
                        ShowCaptionOnToolbar="false"
                        LinkFieldID="FTlink">
                  <common:ShowPage PageID="387f861b-6c03-486c-9ff5-9cc5bb7a5275">
                    <common:ActionContext>
                      <common:SectionField>FTlink</common:SectionField>
                    </common:ActionContext>
                  </common:ShowPage>
                </Action>
              </Actions>
            </Section>
          </Sections>
        </Tab>
      </AddTab>
    </AlterTabs>
  </AlterPage>
</AlterPages>

That should do it. :)

answered by tscarlett (120 points)

Are you talking about subreports? From the the application's perspective you can just create these as standalone reports. You may need to update the parent ReportSpec to include the data retrieval from the subreports but other than that it should just be wiring up the relevant parts when you build the parent report itself

http://technet.microsoft.com/en-us/library/dd239314.aspx

answered by danielcooke (3.5k points)
...