Best Practice For Formulating A Default Value For A Queried Parameters
Jun 6, 2007
In general, what is the most appropriate way to specify a "data driven" default for a report parameter. Seems to me like options are:
1. construct an expression which operates on one of the existing report datasets (possibly the same data set used to populate the defaults dropdown)
2. construct a new dataset which returns a single value which is the desired default
what's the "normal" approach?
For example, I have an MDX dataset which contains the list of dates for which data is available. There is generally some data available for today, but normally the user is interested in the most recent day with data prior to today.
So which would be the better option out of the two above (or a third option if I'm missing something!) to tell my parameter to set itself to:
"The most recent day prior to today for which data exists".
Quick question guys, I remember running into this before but can't remember if I was able to complete it or not. What is the syntax format in the 'Report Parameters' dialog box selecting 'Non-queried' in the "value " field I want to select multiple value parameters ie 001, 002, 003, 004 for one "label" Every combination I tried it's not taking. Thanks in advance
Adding a value to a non-queried default report parameter value does not update on the target server after deployment.
To recreate
1. Create a report in Visual Studio and add a report parameter with the following properties:
Multi-value is checked Available values = "From Query" Dataset = [create a dataset that returns a table w/ a Id and Description column] Value field = [the Id field from the table] Label field=[the Description column from the table] Default values = "Non-queried" (add several values the match the IDs from the table so that some of the values in the report dropdown will show up as checked when rendering the report)
2. Build and deploy the report to the reporting server. View the report and verify the specified items are checked in the report parameter.
3. Go back to Visual Studio and add a value to the Non-queried Default values.
4. Build and deploy the report again. View the report. The newly added item is not selected.
Notes
I verified that the newly added ID exists in the rdl file (as xml) on both the development box and the server where the report was deployed. However, when I view the report parameter using Management Studio (connect to the reporting server), the newly added value for the report parameter does not exist. I verified that changes are being deployed by adding new parameters and changing other properties of the parameter. I thought maybe the rdl itself was being cached somehow - I tried restarting IIS, SQL Server, and SQL Reporting services. None worked. Note that running the report on the development box by running the project through Visual Studio DOES reflect the change to the parameter.
Work-arounds
1. Create a dataset for the report that returns a table of the Ids that you want pre-selected. The query could be something like this:
SELECT '4' AS SelectedId UNION SELECT '5' AS SelectedId UNION SELECT '6' AS SelectedId
2. Delete the report in Management Studio, then redeploy.
I have issue w/ both workarounds because for 1) it is not intuitive and you have to remember to do this for every similar case, and 2) this extra step has to occur each time the report is deployed w/ changes to the report parameter.
I need to be able to set the date parameters of a report dynamically when it is run based on system time. The problem I am having is being able to compare the dates (StartDate & EndDate) against [Service Date 1]. Essentially this report will only pull the current month's data.
The date fields being created with the GETDATE, DATEADD & DATEDIFF functions are working correctly. Do I need to create a separate dataset to be able to run the parameters automatically in the actual report?
Any help would be greatly appreciated!
SELECT TodaysDate =GetDate()-2,dbo.[Billing Detail].[Service Date 1], DATEADD(mm, DATEDIFF(mm, 0, DATEADD(yy, 0, GETDATE())), 0) AS StartDate, DATEADD(dd, - 1, DATEADD(mm, DATEDIFF(mm, -1, GETDATE()), 0)) AS EndDate, dbo.[Billing Detail].Billing, dbo.[Billing Detail].Chart, dbo.[Billing Detail].Item, dbo.[Billing Detail].[Sub Item], dbo.Patient.[Patient Code], dbo.Patient.[Patient Type], dbo.[Billing Header].Charges, dbo.Practice.Name FROM dbo.[Billing Detail] INNER JOIN dbo.Patient ON dbo.[Billing Detail].Chart = dbo.Patient.[Chart Number] INNER JOIN dbo.[Billing Header] ON dbo.[Billing Detail].Billing = dbo.[Billing Header].Billing CROSS JOIN dbo.Practice WHERE (dbo.[Billing Detail].Item = 0) AND (dbo.[Billing Detail].[Sub Item] = 0) AND (dbo.[Billing Detail].[Service Date 1] Between StartDate AND EndDate
This is for SQL2k5. The database may be small or big, I don't know (it's going out to multiple customers). I'm wondering if in general it's considered "better" to create a single non-primary default filegroup and put all the objects there, or just leave everything in primary? In one training years back I got the impression that recovering the primary filegroup was important for certain restore operations, so it was always wise to separate them like this.
What is best practise for what this number should be?
I have seen guidance saying set to a number greater than 25000, but not from any source I particularly know or trust. (I checked SANS, NIST-CIS and the NSA, but I couldn't find anything.
I have a table for storing alerts (exceptional situations) occuring ondevices that I monitor. Associated with each alert is an alert code, adescription, the device responsible for causing the alert, when thealert was generated, and when the alert was removed (device no longerhad the alert)A candidate table definition looks likeCREATE TABLE Alerts(device_id varchar(17),alert_code int,alert_description nvarchar(128),generation_date datetime,removal_date datetime-- constraints, etc not shown, generation_date <= removal_date)What I want to figure out is, on a device by device basis, determinecontiguous periods of time when the device was in alert.For example, if the above table had these entries for a device:alert1 10:20 to 10:23alert2 10:25 to 10:40alert3 10:28 to 10:29alert4 10:41 to 11:45alert5 11:44 to 12:31Then, I want a query that will help me determinethat the device had the following periods where one or more alerts wereactive10:20 to 10:2310:25 to 10:4010:41 to 12:31Any help would be appreciated, including suggestions on designing thetable differently.
I created a report with same parameters. Two of them a based on a query. The first query contains a simple select * from ... the result will be stored in the parameter @param1. The second parameter contains select * from ... where ID = @param1. So far... If a pass the reportparameters of the report i will get a valuelist for the first query, but nothing for the second one.
How can I manage that the second parameters also gets a valuelist?
I have to build a dynamic query to go over to Oracle and get some data and bring it back via a SQL Server Stored Procedure. How I can create an IN clause passing values and ","s from a SQL Server Temp Table that I have already built.
SET @SQLQuery = @SQLQuery + 'WHERE MEMBER.MEMBER_ID IN (''''' + SELECT MEMBER.MEMBER_ID + ',' FROM #TempTable + ''''' '
I know I can find out what parameters does a stored procedure have via either sp_help or INFORMATION_SCHEMA.PARAMETERS, I can get the types, the lengths or precisions ... what I do not seem to be able to get is which of those parameters are required and which ones have a default value. I mean:
CREATE PROCEDURE dbo.Foo ( @Required Int, @Optional Int = 0 ) AS ...
Is there any way to get this information (preferably together with the default value) short of parsing the output of sp_helptext?
I have a requirement like I need to have default values for all my parameters in my report. But Report should not run on the initial load. Is that possible?
I have a requirement like I need to have default values for all my parameters in my report. But Report should not run until i click the view report button.Currently It will load the data automatically on initial load when all the parameters are provided. Is that possible to restrict load of report data?
In my report, I have set the default parameters such that it is supposed to automatically render when the page loads. I have set the defaults in Report / Report Parameters and it even works in the preview pane, however, when I deploy the report, the defaults are not set.
This report has subreports, and I've tried setting their defaults. Has anyone come across this?
Hi all, I have a MDX query that has been put together from a Analysis Services Cube in Reporting Services, as below: SELECT NON EMPTY { [Measures].[MM Document Count], [Measures].[FI Document Total], [Measures].[MM Document Total], [Measures].[FI Document Count] } ON COLUMNS, NON EMPTY { ([Lookup Company Code].[Company Code].[Company Code].ALLMEMBERS * [Lookup Financial Period].[Financial Year].[Financial Year].ALLMEMBERS * [Lookup Financial Period].[Financial Period].[Financial Period].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( STRTOSET(@LookupCompanyCodeCompanyCode, CONSTRAINED) ) ON COLUMNS FROM [SAP Document Analysis Doc Totals MM FI]) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGSIt has a parameters @LookupCompanyCodeCompanyCode, which creates the following dataset query: WITH MEMBER [Measures].[ParameterCaption] AS '[Lookup Company Code].[Company Code].CURRENTMEMBER.MEMBER_CAPTION' MEMBER [Measures].[ParameterValue] AS '[Lookup Company Code].[Company Code].CURRENTMEMBER.UNIQUENAME' MEMBER [Measures].[ParameterLevel] AS '[Lookup Company Code].[Company Code].CURRENTMEMBER.LEVEL.ORDINAL' SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , [Lookup Company Code].[Company Code].ALLMEMBERS ON ROWS FROM [SAP Document Analysis Doc Totals MM FI] Within the Report Parameters it is set with as being a Multi value parameter and default value for return all records: [Lookup Company Code].[Company Code].[All] This work fine when previewing report & when I build. Problem is when I drop a report viewer control in VWD 2005 and attach this report, it does not run with the default values when the page loads. Does anyone have a idea what I might be doing wrong? or/and how would i pass a value from a listbox extbox to the parameter and then run the report? Thanks in advance Kevin
When I call a proc with one input parameter and two output parameters, (all the three parameters having defaults in the proc), I was expecting to see these values defaulted to in the proc. But apparently, this not the case. Could someone tell me what am I doing wrong here? Appreciate your time.
USE Pubs GO
CREATE PROCEDURE dbo.MyTestProc (@InputParamVARCHAR(30) = 'Input', @OutPutParam1VARCHAR(30) = 'OutputParam1' OUTPUT, @OutPutParam2VARCHAR(30) = 'OuputParam2' OUTPUT) AS BEGIN SELECT @InputParam, @OutPutParam1, @OutPutParam2 END GO
I have 9 parameters which all have defaul values and 1 that does not, 4 of them show the correct default but 5 of them state <Select a Value>.
I have copied the report project to another pc and the same problem occurs.
I have tried deleting 'reports' and 'reportserver' from iis and recreating them, as well as deleting the actual report from http://localhost/Reports/Pages/Folder.aspx [then selecting 'show details' and deleting and redeploying the report].
I have even tried toggling the default values on/off. I am at a loss, I can only think that the report project file(s) need to be manually amended in some way. There is nothing significantly different between the parameters to justify them not defaulting
Hello, does anyone know how to determine (within the stored procedure)whether a parameter has been passed explicitly to a stored procedure asopposed to a parameter that has taken on the default value.Many thanksPhil
My report has default values for all parameters (ofcourse. which can be modified by user). When I try to view the preview, the report is running with the default values automatically. I want the report to run only when we click "View Report".
Hi,I am trying to call a user defined function(UDF) from a stored proc,using a default parameter in the called UDF (e.g. @bid_price_type int= 0 ). However the calling stored proc complains that the UDF isexpecting a 2nd parameter when I only provide the @test parametervalue. Are default parameter values supported in UDF's?I wld really appreciate anybody's help. Thankyou in advance.UDF code:CREATE FUNCTION get_bid_price (@test int, @bid_price_type int = 0)RETURNS decimal(18, 4) ASBEGINdeclare @x decimal(18, 4)if (@bid_price_type = 0)beginselect @x = fieldNamefromtableNameendelsebeginselect @x = fieldName2fromtableName2endreturn @xEND' Calling Stored Proc codeCREATE PROCEDURE testASdeclare @x decimal(18, 4)set @x = dbo.get_bid_price(1)select @xGOthanks,Vic Y
I have 5 cascading parameters. They all have default values. I would like the default value of each of these to be selected when the report opens.
It currently works correctly when I preview the report, however when I deploy the report to the server it does not. In the deployed report, the default value of the first parameter is not selected. However, when I select a value for this one, on postback the rest of these parameters get set to their default value. They're all configured the same. I'm confused as to why the first one doesn't default to its default value while the others do.
Got any ideas?
Here's how I have it configured:
Allow null value CHECKED
Allow blank value CHECKED
The rest are unchecked.
Available values: From query
Default Values: Non-queried with a value supplied that exists in the dataset.
I think it has been discussed previously that having default parameter values based on expressions, e.g. a default parameter value of =Split("Bug",",") in multiple parameters will cause a postbacl whenever a user selects different values from the list.
Is this by design? Its a bit of an annoying thing. The refreshpostback doesnt happen if you have basic defaults like ="All" but only when an expression of some sort is used in more than 1 parameter. Does RS think they are linked or something, why does it need to psotback efresh?
This is regarding Report Services 2005 designing the report in Visual Studio.
Currently I am using a query to populate 2 date selectors in the parameter section at the top of a report. The start and end dates are determined by a query which returns the values based on yet another parameter. If I change the value of the paramter which is supposed to be used by the date selectors they don't seem to feel the need to re-calc themselves. I have 3 other dependent param's in the same report which behave reasonably.
Has anyone seen this before or is there way to somehow force a parameter re-caluclation?
I wanted to create a report with parameters. The users will access the reports via http://localhost/Reportserver/myReportName
Now, each user will have their own default parameters and would like to be stored(somewhere!!!) as "user preference", so nexttime when they access this report it should display data with the "user preference" parameters.
Can someone give me some advise to implement this.
I'm generating a list of parameters needed by stored procedures, and I'd like to know which ones have default values assigned to them. To retrieve the parameter information I use:
sp_sproc_columns @Procedure_Name='InsertUser''
However, the column that is supposed to give the default value, 'COLUMN_DEF' always returns as NULL, even when that column has a default value assigned to it. i.e. CREATE PROCEDURE InsertUser@UserID INT = 10,.....
And then if I do a sp_sproc_columns @Procedure_Name='InsertUser'', the COLUMN_DEF value for the @UserID column is still NULL.
Does anyone know what I'm doing wrong and how I can retrieve the default value?
I have created a report, and am setting default values for the parameters. Once the default parameters is set, the report automatically generates. Is there a way to make it not automatically generate the report? We are setting the parameters with values that will get the end user the most recent data, but alot of times, they will want to pull older data as well. We don't want them to have to wait for the report to automatically generate before they can change the parameter values
I'm trying to have a default or null value in the dropdown list of the parameters on SSRS report. The dataset is bound with the Dynamics-AX 2009 AOT query. In the screen shot below you can see that I need a show All option in the dropdown list.
I wrote a report in Visual Studio with some parameters that I gave default values to in the report definition. I deployed it out to the report server and when I look at the report Properties, Parameters section to see the default values. Instead of seeing all of the default values, I see a bunch of "Override Default" buttons. When you click the buttons, you get a blank text box in which to enter a new value.
Someone before me created a report with default values and the parameters section of that report has text boxes with the default values in them.
Does anyone know how to have the default values show up rather than those "Override Default" buttons?
HI, I am trying to set the following default parameter : datepart("m",now()). The parameter is an integer
If I do this through visual studio 2005 it works just fine. However I need to change this for a linked report and when I do the same thing in the viewer (using the "Overide Default" key) I get the following error "The parameter Month contains a value that is not valid. This parameter takes an integer as a value" Can anyone suggest a way to get arround this ?
Can someone please explain how i would define a multi-valued default parameter within the report Properties -> Parameters. I have an OLAP based report with multi-value parameters. I do not want to set the default values from within BIDS. Instead, I'd like to do this from the ReportServer (after report deployment). I have no problem when i enter a single value as a 'default value', for example: ReportParm1 String [Deal Dim].[Shelf].&[AAM] But, how would i define it with multiple values as a 'default value' ?, for example: ReportParm1 String [Deal Dim].[Shelf].&[ABC] , [Deal Dim].[Shelf].&[DEF] NOTE: It appears that you cannot use expressions, such as the 'split' function in the 'default value' space. Any help would be greatly appreciated. thank you.
I have a SSRS report using 2008 R2. It prompts the user for the start and end dates. This all works. But now I want the start date parm to default to the first day of the current month and the end date parm to default to the last day of the current month.In the new query window in SQL Server Management Studio, I can run this chunk of code to get the first day of current month:
I've been running into this issue quite a few times, and have been unable to solve it through reading various posts/forums. Here is the issue
Software Details: Datawarehouse Database - SQL Server 2008 R2 Reporting Services Version - SSRS 2008 R2 Development Environment - Visual Studio 2008 Problem Details:
I have been writing reports based of a Relational Datamart with dimensions and facts. The report in question uses dimensions for parameters and facts for content. Multi valued parameters are enabled in the report query by using the 'IN(@Paramenter)' statement within the report query. It has a total of 6 multi-value parameters. I assign the same available values from dimension datasets for each parameter to it's default parameter. Theoretically all the values in the option lists should be selected after first render. This is not always the case.
Example: SELECT * FROM dbo.MyTable WHERE TableColumn0 IN (@Parameter0) AND TableColumn1 IN(@Parameter1) AND ....N (continue syntax to 6 multi valued parameters)
Some of the multi-value drop down lists are defaulting to have every value selected, and some are not. The problem is I need to know why some parameters are not selecting all by default when specified.