Showing posts with label solution. Show all posts
Showing posts with label solution. Show all posts

Sunday, March 25, 2012

Customising Report Manager

Hi,

I have implemented Forms authentication for my report manager. (using the custom Security sample solution) ie i have added a login page, which upon autentication redirects to report manager.

Now i want to add a "sign out" link in the report manager so that when the user clicks on that, it gets redirects to the login page.

Is it possible, if so can anyone let me know where i can implement the code for the same

Thanks,

Bharath V V

Report manager wasn't exactly meant to be customized. How did you create your login page? Using Visual Studio 2005?

|||

There really is not a lot of customizing that you can do with report manager.

In the past few times I have needed to customize, I just created an entire application to replace report manager.

Then used a combination of the web services and/or report viewer control.

BobP

|||Yes.. using VS 2005, and the CustomSecurity.Sln given in the reporting services samples.|||

Oh thats bad news for me

anyways thanks BobP

bharthvv

Customer Interface for parameters

I found many hints that customer parameter interfaces are a possible solution
for several problems.
But I can't find one piece about how this can be done. Not in the
documentation, not in this news group and not in google. I'm really investet
many time, but don't find anything.
Can one give me a hint where I can find information about this?Here's the design doc I wrote for ours:
Reporting Phase II Design
A Dynamic User Interface for Report Navigation and Runtime Parameter Gathering
Introduction
Having a dynamic user interface to present reports to users and gather
runtime parameter values originates from a singular thought: report
customization. We desire that reports be developed by end user
administrators in addition to professional services and in-house developers.
By providing this support we must provide a means by which a report may be
deployed into the production environment and then appear in the application
without any user interface development activity on our part. The best way to
support this desire is to build our user interface such that it does not rely
on specific knowledge of any one report but rather is built with awareness
that reports are present and that they gather runtime parameters. In this
fashion, report developers are free to upload new reports or modify existing
reports independent of a release cycle. The following sections will
illustrate how we may expose this capability from within our application.
Report Navigation
The first challenge regarding our dynamic user interface is to present the
reports so a user may choose among them. Our current user interface design
calls for a hierarchical folder paradigm that contains and organizes all
reports. It begins with a root node labeled â'My Reportsâ' that appears in the
â'Trackingâ' page. This folder can contain any number of sub folders, which
serve to categorize all reports and will initially contain the folders â'Email
Reportsâ', â'Subscriber Reportsâ', â'Admin Reportsâ', and â'Custom Reportsâ'. It is
not clear whether the folder â'My Reportsâ' will ever contain reports
themselves and it is presumed these first level folders will contain reports
and perhaps additional folders.
The Report Services component, created to serve the user interface and other
consumers, provides a method GetReports() that takes no input parameters and
returns to the caller a data table containing all of the reports that the
calling user is authorized to view. This data table will also contain the
hierarchy of folders such that the consumer may illustrate reports in
accordance with the prescribed hierarchy.
The data table returned by GetReports() will contain the following items:
â?¢ ID â' a unique identifier (GUID) that uniquely identifies the report item
â?¢ Type â' an enumeration describing the nature of the report item. This is
supported by the public enum ReportItemType containing Folder and Report
(this may be expanded to include other types as demand warrants.
â?¢ Name â' the plain text name of the report, suitable for illustration in the
user interface. (This value originates from the â'nameâ' property of a report
on the report server, which gets its value from the â'nameâ' property of the
report itself, which is established at design time. It is therefore
necessary for developers to assign a meaningful name at design time,
presumably assigned by Product Management at the time of envisioning.)
â?¢ Description â' A plain text description that serves to illustrate the
content/functionality of the report in greater detail than â'Nameâ' (above).
It may be useful perhaps as tool-tip text given the folder paradigm. This
value originates from the â'descriptionâ' property of the report on the report
server, which gets its value from the â'descriptionâ' property of the report
itself, which is established at design time. It is therefore necessary for
developers to assign a meaningful value during the development process;
presumably this text will originate from Product Management.
â?¢ Path â' A text string that contains the fully qualified path to the report
on the report server. This item equally serves as a unique identifier for a
report, describes the location of the report within the folder hierarchy, and
is used as in input parameter by the RenderReport() method that identifies
the report to be rendered.
â?¢ Parent â' a unique identifier (GUID) that points to a report item that
contains this report item. If null, it indicates the root of the hierarchy.
It is presumed that our user interface will use this data table to construct
the tree view that is illustrated in the user interface document. Further,
all attempts will be made to provide all of the information desired by the
user interface team and in a structure that is most suitable to their
consumption.
Runtime Parameter Value Gathering
While it is necessary to provide a listing of reports suitable for display,
the greater challenge comes in gathering the runtime parameter values that
will be used by the report to scope its contents and perhaps drive the order
in which result rows appear. To support consumers in the gathering of
runtime parameter values, the Report Services component exposes a method
GetReportParameters(). This method takes one parameter (string reportPath)
that is acquired through the â'Pathâ' item returned by GetReports() as
described above and returns a collection containing the items described
below. (Note: the values these items contain are a function of developer
action at design time, primarily via the settings made in the â'Report
Parametersâ' dialog of the IDE.
â?¢ Bool AllowBlank â' Determines whether a parameter value can be an empty
string. This applies only to parameters of type string (identified by
ETParameterTypeEnum Type, below)
â?¢ String[] DefaultValues â' A string array that typically contains one
element whose value indicates the default for this parameter. The user
interface should populate the appropriate control with this value. (Note: in
the future we may choose to support multi-value parameters; perhaps for use
with the SQL IN operator. If and when this becomes true, the potential for
multiple default values becomes true, hence it is declared as an array.)
â?¢ Bool DefaultValuesQueryBased â' Indicates whether DefaultValues (above) is
populated by an expression (false) or by a database query (true).
â?¢ Bool DefaultValuesQueryBasedSpecified â' Indicates whether a determination
can be made at runtime to assign DefaultValuesQueryBased a value. If this
value is false the origin of the default value(s) for this parameter is
indeterminate.
â?¢ String[] Dependencies â' If this parameterâ's default or valid values are
based on a parameterized query and that queryâ's parameter(s) have
indeterminate values, then this array will contain the names of those
parameters. In other words, if this property is not null, you will need to
gather the values for the parameters named in this property, make a
subsequent call to GetReportParameters, and then gather the value for this
parameter. This is detailed in the following section.
â?¢ String Name â' The internal name of this parameter as used n the report
itself. It does not represent a value suitable for display in the user
interface. Instead, use the property â'Promptâ', which is described below.
â?¢ Bool Nullable â' Indicates that a valid value for this parameter can be
null. A combination of Nullable and AllowBlank (both are true) indicate that
this parameter is â'optionalâ' (a user need not specify a value).
â?¢ String NullableSpecified â' Indicates whether Nullable (above) is
indeterminate at runtime (if false). If it makes you feel any better, you
may include this property (along with Nullable and AllowBlank) when
determining whether a given parameter is optional or not. Our stored
procedure standards are such that every SPROC should be written as if all
parameters (with the exception of MemberID) are optional, so you shouldnâ't
encounter any runtime errors.
â?¢ String Prompt â' A string value that names the parameter accordingly.
Unlike â'Nameâ' (above) this value is suitable for display in the user
interface and should be used to label the control accordingly.
â?¢ Bool PromptUser â' This Boolean indicates whether a given parameter should
appear in the dialog. This value is determined at design time and will be
false if and only if there is an empty string defined for the â'Prompt:â' text
in the â'Report Parametersâ' dialog.
â?¢ Bool PromptUserSpecified â' Determines whether PromptUser (above) is
indeterminate at runtime.
â?¢ ETParameterStateEnum State â' This property reports the state of this
parameter. The enumeration is as follows: HasValidValue, MissingValidValue,
HasOutstandingDependencies, or DynamicValuesUnavailable. At first blush it
would appear as if this property can be used to determine whether nor not to
present a given parameter in the dialog (State = MissingValidValue). If a
parameter has a default specified for it, this property will have a State of
HasValidValue although the user has made no entry. However, using this
property to validate a parameter value, through a subsequent call to
GetReportParameters is perfectly allowable.
â?¢ Bool StateSpecified â' Indicates whether State (above) has a value based on
the most recent call to GetReportParameters().
â?¢ ETParameterTypeEnum Type â' Indicates the underlying type of the parameter
and can be one of: Boolean, DateTime, Float, Integer, or String. You will
use this property to determine the control type (and perhaps additional
formatting) of the control you will add to the page. Note: when working with
the Reporting Service component you will always use the string representation
of a parameter value. This string representation is translated under the
covers by SQL Reporting Services to its native type.
â?¢ TypeSpecified â' Indicates whether Type (above) is indeterminate at runtime.
â?¢ ETValidValues ValidValues â' This collection if not null is a list of valid
value for this parameter. The contents of this collection is determined by a
developer at design time. You may use the collection to only to validate a
value specified by a user but you should use the contents to populate a
dropdown list from which a user may select. The most powerful feature of
this property is its ability to support a lookup. The type ETValidValue is a
name/value pair, so for example instead of prompting the user to enter an
email ID, you can populate the dropdown list with email names and then assign
the associated email ID to the ETReportParameterValues collection for
submission to the componentâ's RenderReport method.
â?¢ Bool ValidValuesQueryBased â' Indicates whether ValidValues (above) are the
result of a static list (false) or a database query (true).
â?¢ Bool ValidValuesQueryBasedSpecified â' Indicates whether
ValidValuesQueryBased (above) is indeterminate at runtime (false).
The intent is for the user interface to use this collection to draw a page
containing user prompts and appropriate controls such that the user can
specify values as required. The order of the parameters as they appear in
the collection is the order in which they are displayed in the â'Report
Parametersâ' dialog in the IDE. In other words, the developer has the
opportunity at design time to specify the order in which they appear in the
user dialog (presuming a two column Prompt â' Value layout).
It is suggested that the user interface enumerate over this collection and
create controls according to the values of the collectionâ's properties. The
following steps serve to illustrate this approach:
1. Look only for parameters whose â'PromptUserâ' property is true. (Those
with a PromptUser property of false are used for other purposes and will
ALWAYS have a value resulting from a default value specification.)
2. Look for parameters whoâ's Dependencies are not null. If you find any,
this is indicative of a situation where the parameterâ's DefaultValues or
ValidValues are query based and that query requires an input parameter. You
will need to consult the array elements, take the name of each parameter
contained in an element, and use the following logic to establish a page of
controls to obtain values for the dependent parameters. Once you have these
values, you will make a subsequent call to GetReportParameters() providing
the values you have collected thus far. Then, you will construct a page of
[now] independent parameters seeking their values. Once you have these
values you may proceed with RenderReport(). Note: there is at most one level
of indirection here.
3. Use the â'Promptâ' propertyâ's value as the label text for your control.
(Depending on how you do this, you may have to wait until after the control
type is determined below.)
4. If ValidValues has zero elements, determine the type of control to use
from the Type property.
a. If Type is â'Stringâ' we can presume a Textbox control.
b. If Type is â'DateTimeâ' we can presume a Calendar control.
c. If Type is â'Booleanâ' we can presume a CheckBox control.
d. If Type is â'Integerâ' we can presume a Textbox control with integer
formatting.
e. If Type is â'Floatâ' we can presume a Textbox control with floating point
decimal formatting.
5. If ValidValues has one element, this is indicative of a rare but
potential condition where there is one and only one valid value. Since there
is only one you may consider not prompting the user at all and just use the
value supplied.
6. If ValidValues has two or more elements, the report developer is
indicating that he/she intends on the user picking a value from a list, you
should use a dropdown list control.
a. Determine if the Label property of the ETValidValue collection items is
blank.
i. If Label is NOT blank, then we have a lookup; we will display a
â'externalâ' value such as List Name, and use its corresponding â'internalâ'
value (List ID) as the parameter value. Populate the list itemâ's â'textâ'
property with the Label property of the ETValidValue and the list itemâ's
â'valueâ' property with the â'Valueâ' property of ETValidValue.
ii. If Label IS blank, then we have a simple lookup (such as a list of
dates). Populate the list boxâ's list itemâ's properties â'textâ' and â'valueâ'
with the â'Valueâ' property of ETValidValue.
7. If DefaultValues contains 1 element then use the assign the value of
DefaultValues[0] to the control in accordance with the controlâ's type, thus
establishing the default value for the control.
Future Consideration
While the design stated above is certainly dynamic, it not does not consider
all of the possibilities. We have not yet entertained for example that
report content is ordered in accordance with a runtime parameter. If it was,
we would simply gather the parameter like any other; however, it would be
used in an ORDER BY clause as opposed to a WHERE clause. Although similar in
nature, we would most likely want to visually separate those parameters that
manage scope versus those that manage ordering. SQL Reporting Services does
not directly support that segregation (through an internal property of a
report parameter) so if desires, we would have to implement our own
methodology.
Date ranges (or any range parameters for that matter) are quite common;
however we have no support for multiple ranges specified against a single
value. Should we choose to support this feature we would need to determine a
way to allow the user to enter multiple ranges, pass them to the report
renderer, which passes them along to the stored procedure that delivers the
result set. There is some hope for this support from within SQL Reporting
Services through the MultiValue property of its parameters collection but we
would still need to work out a method by which these values are passed on to
the SPROCS.
For now, user are limited to specifying a single value or (through using two
report parameters) a range of values. I think it will be necessary for us to
support multi value parameters in conjunction with the IN operator of T-SQL.
Quite frequently a user is going to want a report that contains more than
â'one itemâ'. How we will do this is not yet known as SQL Reporting Services
does not yet appear to support Multi-Value.
Another consideration, which is similar in nature to MultiValue is an
â'all-butâ' paradigm. Rather than constructing the â'positiveâ' case using
parameter values (range or multivalue) the user is constructing a WHERE NOT
clause.
In a report scenario that involves a heavy comparison by date, users
frequently desire what I refer to as date plus or minus where the user is
specifying a date and then a span of time either before or after the
specified date. This is nothing more than an alternate date range so we
really have no issue regarding our reports or stored procedures but rather it
becomes an issue for the user-interface to illustrate the parameters in this
fashion. This too is probably not too much of an endeavor however we have no
way at present for the report developer to indicate the type of control to
gather a parameter value by nor do we have support to communicate this fact
to the consumer through the GetParameters() method. Of course, one could
construct the MOADC (mother of all date controls) that allowed the user to
specify a range with a beginning and ending date or a date plus or minus a
day, week, month, quarter, half-year, year etc. but then we would have no way
to associate two date parameters into a range either.
"Dev Main" wrote:
> I found many hints that customer parameter interfaces are a possible solution
> for several problems.
> But I can't find one piece about how this can be done. Not in the
> documentation, not in this news group and not in google. I'm really investet
> many time, but don't find anything.
> Can one give me a hint where I can find information about this?|||@. Herman K: Thank you very much! This is real help and furthermore an
valuable documentation.
My misunderstanding was, that I thought I can replace the parameter section
in a report with something like a custom control. But this seems to be
impossible.
"Herman K" wrote:
> Here's the design doc I wrote for ours:
> Reporting Phase II Design
> A Dynamic User Interface for Report Navigation and Runtime Parameter Gathering
> Introduction
> Having a dynamic user interface to present reports to users and gather
> runtime parameter values originates from a singular thought: report
> customization. We desire that reports be developed by end user
> administrators in addition to professional services and in-house developers.
> By providing this support we must provide a means by which a report may be
> deployed into the production environment and then appear in the application
> without any user interface development activity on our part. The best way to
> support this desire is to build our user interface such that it does not rely
> on specific knowledge of any one report but rather is built with awareness
> that reports are present and that they gather runtime parameters. In this
> fashion, report developers are free to upload new reports or modify existing
> reports independent of a release cycle. The following sections will
> illustrate how we may expose this capability from within our application.
> Report Navigation
> The first challenge regarding our dynamic user interface is to present the
> reports so a user may choose among them. Our current user interface design
> calls for a hierarchical folder paradigm that contains and organizes all
> reports. It begins with a root node labeled â'My Reportsâ' that appears in the
> â'Trackingâ' page. This folder can contain any number of sub folders, which
> serve to categorize all reports and will initially contain the folders â'Email
> Reportsâ', â'Subscriber Reportsâ', â'Admin Reportsâ', and â'Custom Reportsâ'. It is
> not clear whether the folder â'My Reportsâ' will ever contain reports
> themselves and it is presumed these first level folders will contain reports
> and perhaps additional folders.
> The Report Services component, created to serve the user interface and other
> consumers, provides a method GetReports() that takes no input parameters and
> returns to the caller a data table containing all of the reports that the
> calling user is authorized to view. This data table will also contain the
> hierarchy of folders such that the consumer may illustrate reports in
> accordance with the prescribed hierarchy.
> The data table returned by GetReports() will contain the following items:
> â?¢ ID â' a unique identifier (GUID) that uniquely identifies the report item
> â?¢ Type â' an enumeration describing the nature of the report item. This is
> supported by the public enum ReportItemType containing Folder and Report
> (this may be expanded to include other types as demand warrants.
> â?¢ Name â' the plain text name of the report, suitable for illustration in the
> user interface. (This value originates from the â'nameâ' property of a report
> on the report server, which gets its value from the â'nameâ' property of the
> report itself, which is established at design time. It is therefore
> necessary for developers to assign a meaningful name at design time,
> presumably assigned by Product Management at the time of envisioning.)
> â?¢ Description â' A plain text description that serves to illustrate the
> content/functionality of the report in greater detail than â'Nameâ' (above).
> It may be useful perhaps as tool-tip text given the folder paradigm. This
> value originates from the â'descriptionâ' property of the report on the report
> server, which gets its value from the â'descriptionâ' property of the report
> itself, which is established at design time. It is therefore necessary for
> developers to assign a meaningful value during the development process;
> presumably this text will originate from Product Management.
> â?¢ Path â' A text string that contains the fully qualified path to the report
> on the report server. This item equally serves as a unique identifier for a
> report, describes the location of the report within the folder hierarchy, and
> is used as in input parameter by the RenderReport() method that identifies
> the report to be rendered.
> â?¢ Parent â' a unique identifier (GUID) that points to a report item that
> contains this report item. If null, it indicates the root of the hierarchy.
> It is presumed that our user interface will use this data table to construct
> the tree view that is illustrated in the user interface document. Further,
> all attempts will be made to provide all of the information desired by the
> user interface team and in a structure that is most suitable to their
> consumption.
> Runtime Parameter Value Gathering
> While it is necessary to provide a listing of reports suitable for display,
> the greater challenge comes in gathering the runtime parameter values that
> will be used by the report to scope its contents and perhaps drive the order
> in which result rows appear. To support consumers in the gathering of
> runtime parameter values, the Report Services component exposes a method
> GetReportParameters(). This method takes one parameter (string reportPath)
> that is acquired through the â'Pathâ' item returned by GetReports() as
> described above and returns a collection containing the items described
> below. (Note: the values these items contain are a function of developer
> action at design time, primarily via the settings made in the â'Report
> Parametersâ' dialog of the IDE.
> â?¢ Bool AllowBlank â' Determines whether a parameter value can be an empty
> string. This applies only to parameters of type string (identified by
> ETParameterTypeEnum Type, below)
> â?¢ String[] DefaultValues â' A string array that typically contains one
> element whose value indicates the default for this parameter. The user
> interface should populate the appropriate control with this value. (Note: in
> the future we may choose to support multi-value parameters; perhaps for use
> with the SQL IN operator. If and when this becomes true, the potential for
> multiple default values becomes true, hence it is declared as an array.)
> â?¢ Bool DefaultValuesQueryBased â' Indicates whether DefaultValues (above) is
> populated by an expression (false) or by a database query (true).
> â?¢ Bool DefaultValuesQueryBasedSpecified â' Indicates whether a determination
> can be made at runtime to assign DefaultValuesQueryBased a value. If this
> value is false the origin of the default value(s) for this parameter is
> indeterminate.
> â?¢ String[] Dependencies â' If this parameterâ's default or valid values are
> based on a parameterized query and that queryâ's parameter(s) have
> indeterminate values, then this array will contain the names of those
> parameters. In other words, if this property is not null, you will need to
> gather the values for the parameters named in this property, make a
> subsequent call to GetReportParameters, and then gather the value for this
> parameter. This is detailed in the following section.
> â?¢ String Name â' The internal name of this parameter as used n the report
> itself. It does not represent a value suitable for display in the user
> interface. Instead, use the property â'Promptâ', which is described below.
> â?¢ Bool Nullable â' Indicates that a valid value for this parameter can be
> null. A combination of Nullable and AllowBlank (both are true) indicate that
> this parameter is â'optionalâ' (a user need not specify a value).
> â?¢ String NullableSpecified â' Indicates whether Nullable (above) is
> indeterminate at runtime (if false). If it makes you feel any better, you
> may include this property (along with Nullable and AllowBlank) when
> determining whether a given parameter is optional or not. Our stored
> procedure standards are such that every SPROC should be written as if all
> parameters (with the exception of MemberID) are optional, so you shouldnâ't
> encounter any runtime errors.
> â?¢ String Prompt â' A string value that names the parameter accordingly.
> Unlike â'Nameâ' (above) this value is suitable for display in the user
> interface and should be used to label the control accordingly.
> â?¢ Bool PromptUser â' This Boolean indicates whether a given parameter should
> appear in the dialog. This value is determined at design time and will be
> false if and only if there is an empty string defined for the â'Prompt:â' text
> in the â'Report Parametersâ' dialog.
> â?¢ Bool PromptUserSpecified â' Determines whether PromptUser (above) is
> indeterminate at runtime.
> â?¢ ETParameterStateEnum State â' This property reports the state of this
> parameter. The enumeration is as follows: HasValidValue, MissingValidValue,
> HasOutstandingDependencies, or DynamicValuesUnavailable. At first blush it
> would appear as if this property can be used to determine whether nor not to
> present a given parameter in the dialog (State = MissingValidValue). If a
> parameter has a default specified for it, this property will have a State of
> HasValidValue although the user has made no entry. However, using this
> property to validate a parameter value, through a subsequent call to
> GetReportParameters is perfectly allowable.
> â?¢ Bool StateSpecified â' Indicates whether State (above) has a value based on
> the most recent call to GetReportParameters().
> â?¢ ETParameterTypeEnum Type â' Indicates the underlying type of the parameter
> and can be one of: Boolean, DateTime, Float, Integer, or String. You will
> use this property to determine the control type (and perhaps additional
> formatting) of the control you will add to the page. Note: when working with
> the Reporting Service component you will always use the string representation
> of a parameter value. This string representation is translated under the
> covers by SQL Reporting Services to its native type.
> â?¢ TypeSpecified â' Indicates whether Type (above) is indeterminate at runtime.
> â?¢ ETValidValues ValidValues â' This collection if not null is a list of valid
> value for this parameter. The contents of this collection is determined by a
> developer at design time. You may use the collection to only to validate a
> value specified by a user but you should use the contents to populate a
> dropdown list from which a user may select. The most powerful feature of
> this property is its ability to support a lookup. The type ETValidValue is a
> name/value pair, so for example instead of prompting the user to enter an
> email ID, you can populate the dropdown list with email names and then assign
> the associated email ID to the ETReportParameterValues collection for
> submission to the componentâ's RenderReport method.
> â?¢ Bool ValidValuesQueryBased â' Indicates whether ValidValues (above) are the
> result of a static list (false) or a database query (true).
> â?¢ Bool ValidValuesQueryBasedSpecified â' Indicates whether
> ValidValuesQueryBased (above) is indeterminate at runtime (false).
> The intent is for the user interface to use this collection to draw a page
> containing user prompts and appropriate controls such that the user can
> specify values as required. The order of the parameters as they appear in
> the collection is the order in which they are displayed in the â'Report
> Parametersâ' dialog in the IDE. In other words, the developer has the
> opportunity at design time to specify the order in which they appear in the
> user dialog (presuming a two column Prompt â' Value layout).
> It is suggested that the user interface enumerate over this collection and
> create controls according to the values of the collectionâ's properties. The
> following steps serve to illustrate this approach:
> 1. Look only for parameters whose â'PromptUserâ' property is true. (Those
> with a PromptUser property of false are used for other purposes and will
> ALWAYS have a value resulting from a default value specification.)
> 2. Look for parameters whoâ's Dependencies are not null. If you find any,
> this is indicative of a situation where the parameterâ's DefaultValues or
> ValidValues are query based and that query requires an input parameter. You
> will need to consult the array elements, take the name of each parameter
> contained in an element, and use the following logic to establish a page of
> controls to obtain values for the dependent parameters. Once you have these
> values, you will make a subsequent call to GetReportParameters() providing
> the values you have collected thus far. Then, you will construct a page of
> [now] independent parameters seeking their values. Once you have these
> values you may proceed with RenderReport(). Note: there is at most one level
> of indirection here.
> 3. Use the â'Promptâ' propertyâ's value as the label text for your control.
> (Depending on how you do this, you may have to wait until after the control
> type is determined below.)
> 4. If ValidValues has zero elements, determine the type of control to use
> from the Type property.
> a. If Type is â'Stringâ' we can presume a Textbox control.
> b. If Type is â'DateTimeâ' we can presume a Calendar control.
> c. If Type is â'Booleanâ' we can presume a CheckBox control.
> d. If Type is â'Integerâ' we can presume a Textbox control with integer
> formatting.
> e. If Type is â'Floatâ' we can presume a Textbox control with floating point
> decimal formatting.
> 5. If ValidValues has one element, this is indicative of a rare but
> potential condition where there is one and only one valid value. Since there
> is only one you may consider not prompting the user at all and just use the
> value supplied.
> 6. If ValidValues has two or more elements, the report developer is
> indicating that he/she intends on the user picking a value from a list, you
> should use a dropdown list control.
> a. Determine if the Label property of the ETValidValue collection items is
> blank.
> i. If Label is NOT blank, then we have a lookup; we will display a
> â'externalâ' value such as List Name, and use its corresponding â'internalâ'
> value (List ID) as the parameter value. Populate the list itemâ's â'textâ'
> property with the Label property of the ETValidValue and the list itemâ's
> â'valueâ' property with the â'Valueâ' property of ETValidValue.
> ii. If Label IS blank, then we have a simple lookup (such as a list of
> dates). Populate the list boxâ's list itemâ's properties â'textâ' and â'valueâ'
> with the â'Valueâ' property of ETValidValue.
> 7. If DefaultValues contains 1 element then use the assign the value of
> DefaultValues[0] to the control in accordance with the controlâ's type, thus
> establishing the default value for the control.
> Future Consideration
> While the design stated above is certainly dynamic, it not does not consider
> all of the possibilities. We have not yet entertained for example that
> report content is ordered in accordance with a runtime parameter. If it was,
> we would simply gather the parameter like any other; however, it would be
> used in an ORDER BY clause as opposed to a WHERE clause. Although similar in
> nature, we would most likely want to visually separate those parameters that
> manage scope versus those that manage ordering. SQL Reporting Services does
> not directly support that segregation (through an internal property of a
> report parameter) so if desires, we would have to implement our own
> methodology.
> Date ranges (or any range parameters for that matter) are quite common;
> however we have no support for multiple ranges specified against a single
> value. Should we choose to support this feature we would need to determine a
> way to allow the user to enter multiple ranges, pass them to the report
> renderer, which passes them along to the stored procedure that delivers the
> result set. There is some hope for this support from within SQL Reporting
> Services through the MultiValue property of its parameters collection but we
> would still need to work out a method by which these values are passed on to
> the SPROCS.
> For now, user are limited to specifying a single value or (through using two
> report parameters) a range of values. I think it will be necessary for us to
> support multi value parameters in conjunction with the IN operator of T-SQL.
> Quite frequently a user is going to want a report that contains more than
> â'one itemâ'. How we will do this is not yet known as SQL Reporting Services
> does not yet appear to support Multi-Value.
> Another consideration, which is similar in nature to MultiValue is an
> â'all-butâ' paradigm. Rather than constructing the â'positiveâ' case using
> parameter values (range or multivalue) the user is constructing a WHERE NOT
> clause.
> In a report scenario that involves a heavy comparison by date, users
> frequently desire what I refer to as date plus or minus where the user is
> specifying a date and then a span of time either before or after the
> specified date. This is nothing more than an alternate date range so we
> really have no issue regarding our reports or stored procedures but rather it
> becomes an issue for the user-interface to illustrate the parameters in this
> fashion. This too is probably not too much of an endeavor however we have no
> way at present for the report developer to indicate the type of control to
> gather a parameter value by nor do we have support to communicate this fact
> to the consumer through the GetParameters() method. Of course, one could
> construct the MOADC (mother of all date controls) that allowed the user to
> specify a range with a beginning and ending date or a date plus or minus a
> day, week, month, quarter, half-year, year etc. but then we would have no way
> to associate two date parameters into a range either.
>
> "Dev Main" wrote:
> > I found many hints that customer parameter interfaces are a possible solution
> > for several problems.
> >
> > But I can't find one piece about how this can be done. Not in the
> > documentation, not in this news group and not in google. I'm really investet
> > many time, but don't find anything.
> >
> > Can one give me a hint where I can find information about this?|||Read Chapter 11 of the "Hitchhiker's Guide to SQL Server 2000 Reporting
Services" book.
"Dev Main" wrote:
> @. Herman K: Thank you very much! This is real help and furthermore an
> valuable documentation.
> My misunderstanding was, that I thought I can replace the parameter section
> in a report with something like a custom control. But this seems to be
> impossible.
> "Herman K" wrote:
> > Here's the design doc I wrote for ours:
> >
> > Reporting Phase II Design
> > A Dynamic User Interface for Report Navigation and Runtime Parameter Gathering
> > Introduction
> > Having a dynamic user interface to present reports to users and gather
> > runtime parameter values originates from a singular thought: report
> > customization. We desire that reports be developed by end user
> > administrators in addition to professional services and in-house developers.
> > By providing this support we must provide a means by which a report may be
> > deployed into the production environment and then appear in the application
> > without any user interface development activity on our part. The best way to
> > support this desire is to build our user interface such that it does not rely
> > on specific knowledge of any one report but rather is built with awareness
> > that reports are present and that they gather runtime parameters. In this
> > fashion, report developers are free to upload new reports or modify existing
> > reports independent of a release cycle. The following sections will
> > illustrate how we may expose this capability from within our application.
> > Report Navigation
> > The first challenge regarding our dynamic user interface is to present the
> > reports so a user may choose among them. Our current user interface design
> > calls for a hierarchical folder paradigm that contains and organizes all
> > reports. It begins with a root node labeled â'My Reportsâ' that appears in the
> > â'Trackingâ' page. This folder can contain any number of sub folders, which
> > serve to categorize all reports and will initially contain the folders â'Email
> > Reportsâ', â'Subscriber Reportsâ', â'Admin Reportsâ', and â'Custom Reportsâ'. It is
> > not clear whether the folder â'My Reportsâ' will ever contain reports
> > themselves and it is presumed these first level folders will contain reports
> > and perhaps additional folders.
> >
> > The Report Services component, created to serve the user interface and other
> > consumers, provides a method GetReports() that takes no input parameters and
> > returns to the caller a data table containing all of the reports that the
> > calling user is authorized to view. This data table will also contain the
> > hierarchy of folders such that the consumer may illustrate reports in
> > accordance with the prescribed hierarchy.
> >
> > The data table returned by GetReports() will contain the following items:
> > â?¢ ID â' a unique identifier (GUID) that uniquely identifies the report item
> > â?¢ Type â' an enumeration describing the nature of the report item. This is
> > supported by the public enum ReportItemType containing Folder and Report
> > (this may be expanded to include other types as demand warrants.
> > â?¢ Name â' the plain text name of the report, suitable for illustration in the
> > user interface. (This value originates from the â'nameâ' property of a report
> > on the report server, which gets its value from the â'nameâ' property of the
> > report itself, which is established at design time. It is therefore
> > necessary for developers to assign a meaningful name at design time,
> > presumably assigned by Product Management at the time of envisioning.)
> > â?¢ Description â' A plain text description that serves to illustrate the
> > content/functionality of the report in greater detail than â'Nameâ' (above).
> > It may be useful perhaps as tool-tip text given the folder paradigm. This
> > value originates from the â'descriptionâ' property of the report on the report
> > server, which gets its value from the â'descriptionâ' property of the report
> > itself, which is established at design time. It is therefore necessary for
> > developers to assign a meaningful value during the development process;
> > presumably this text will originate from Product Management.
> > â?¢ Path â' A text string that contains the fully qualified path to the report
> > on the report server. This item equally serves as a unique identifier for a
> > report, describes the location of the report within the folder hierarchy, and
> > is used as in input parameter by the RenderReport() method that identifies
> > the report to be rendered.
> > â?¢ Parent â' a unique identifier (GUID) that points to a report item that
> > contains this report item. If null, it indicates the root of the hierarchy.
> >
> > It is presumed that our user interface will use this data table to construct
> > the tree view that is illustrated in the user interface document. Further,
> > all attempts will be made to provide all of the information desired by the
> > user interface team and in a structure that is most suitable to their
> > consumption.
> > Runtime Parameter Value Gathering
> > While it is necessary to provide a listing of reports suitable for display,
> > the greater challenge comes in gathering the runtime parameter values that
> > will be used by the report to scope its contents and perhaps drive the order
> > in which result rows appear. To support consumers in the gathering of
> > runtime parameter values, the Report Services component exposes a method
> > GetReportParameters(). This method takes one parameter (string reportPath)
> > that is acquired through the â'Pathâ' item returned by GetReports() as
> > described above and returns a collection containing the items described
> > below. (Note: the values these items contain are a function of developer
> > action at design time, primarily via the settings made in the â'Report
> > Parametersâ' dialog of the IDE.
> > â?¢ Bool AllowBlank â' Determines whether a parameter value can be an empty
> > string. This applies only to parameters of type string (identified by
> > ETParameterTypeEnum Type, below)
> > â?¢ String[] DefaultValues â' A string array that typically contains one
> > element whose value indicates the default for this parameter. The user
> > interface should populate the appropriate control with this value. (Note: in
> > the future we may choose to support multi-value parameters; perhaps for use
> > with the SQL IN operator. If and when this becomes true, the potential for
> > multiple default values becomes true, hence it is declared as an array.)
> > â?¢ Bool DefaultValuesQueryBased â' Indicates whether DefaultValues (above) is
> > populated by an expression (false) or by a database query (true).
> > â?¢ Bool DefaultValuesQueryBasedSpecified â' Indicates whether a determination
> > can be made at runtime to assign DefaultValuesQueryBased a value. If this
> > value is false the origin of the default value(s) for this parameter is
> > indeterminate.
> > â?¢ String[] Dependencies â' If this parameterâ's default or valid values are
> > based on a parameterized query and that queryâ's parameter(s) have
> > indeterminate values, then this array will contain the names of those
> > parameters. In other words, if this property is not null, you will need to
> > gather the values for the parameters named in this property, make a
> > subsequent call to GetReportParameters, and then gather the value for this
> > parameter. This is detailed in the following section.
> > â?¢ String Name â' The internal name of this parameter as used n the report
> > itself. It does not represent a value suitable for display in the user
> > interface. Instead, use the property â'Promptâ', which is described below.
> > â?¢ Bool Nullable â' Indicates that a valid value for this parameter can be
> > null. A combination of Nullable and AllowBlank (both are true) indicate that
> > this parameter is â'optionalâ' (a user need not specify a value).
> > â?¢ String NullableSpecified â' Indicates whether Nullable (above) is
> > indeterminate at runtime (if false). If it makes you feel any better, you
> > may include this property (along with Nullable and AllowBlank) when
> > determining whether a given parameter is optional or not. Our stored
> > procedure standards are such that every SPROC should be written as if all
> > parameters (with the exception of MemberID) are optional, so you shouldnâ't
> > encounter any runtime errors.
> > â?¢ String Prompt â' A string value that names the parameter accordingly.
> > Unlike â'Nameâ' (above) this value is suitable for display in the user
> > interface and should be used to label the control accordingly.
> > â?¢ Bool PromptUser â' This Boolean indicates whether a given parameter should
> > appear in the dialog. This value is determined at design time and will be
> > false if and only if there is an empty string defined for the â'Prompt:â' text
> > in the â'Report Parametersâ' dialog.
> > â?¢ Bool PromptUserSpecified â' Determines whether PromptUser (above) is
> > indeterminate at runtime.
> > â?¢ ETParameterStateEnum State â' This property reports the state of this
> > parameter. The enumeration is as follows: HasValidValue, MissingValidValue,
> > HasOutstandingDependencies, or DynamicValuesUnavailable. At first blush it
> > would appear as if this property can be used to determine whether nor not to
> > present a given parameter in the dialog (State = MissingValidValue). If a
> > parameter has a default specified for it, this property will have a State of
> > HasValidValue although the user has made no entry. However, using this
> > property to validate a parameter value, through a subsequent call to
> > GetReportParameters is perfectly allowable.
> > â?¢ Bool StateSpecified â' Indicates whether State (above) has a value based on
> > the most recent call to GetReportParameters().
> > â?¢ ETParameterTypeEnum Type â' Indicates the underlying type of the parameter
> > and can be one of: Boolean, DateTime, Float, Integer, or String. You will
> > use this property to determine the control type (and perhaps additional
> > formatting) of the control you will add to the page. Note: when working with
> > the Reporting Service component you will always use the string representation
> > of a parameter value. This string representation is translated under the
> > covers by SQL Reporting Services to its native type.
> > â?¢ TypeSpecified â' Indicates whether Type (above) is indeterminate at runtime.
> > â?¢ ETValidValues ValidValues â' This collection if not null is a list of valid
> > value for this parameter. The contents of this collection is determined by a
> > developer at design time. You may use the collection to only to validate a
> > value specified by a user but you should use the contents to populate a
> > dropdown list from which a user may select. The most powerful feature of
> > this property is its ability to support a lookup. The type ETValidValue is a
> > name/value pair, so for example instead of prompting the user to enter an
> > email ID, you can populate the dropdown list with email names and then assign
> > the associated email ID to the ETReportParameterValues collection for
> > submission to the componentâ's RenderReport method.
> > â?¢ Bool ValidValuesQueryBased â' Indicates whether ValidValues (above) are the
> > result of a static list (false) or a database query (true).
> > â?¢ Bool ValidValuesQueryBasedSpecified â' Indicates whether
> > ValidValuesQueryBased (above) is indeterminate at runtime (false).
> >
> > The intent is for the user interface to use this collection to draw a page
> > containing user prompts and appropriate controls such that the user can
> > specify values as required. The order of the parameters as they appear in
> > the collection is the order in which they are displayed in the â'Report
> > Parametersâ' dialog in the IDE. In other words, the developer has the
> > opportunity at design time to specify the order in which they appear in the
> > user dialog (presuming a two column Prompt â' Value layout).
> >
> > It is suggested that the user interface enumerate over this collection and
> > create controls according to the values of the collectionâ's properties. The
> > following steps serve to illustrate this approach:
> > 1. Look only for parameters whose â'PromptUserâ' property is true. (Those
> > with a PromptUser property of false are used for other purposes and will
> > ALWAYS have a value resulting from a default value specification.)
> > 2. Look for parameters whoâ's Dependencies are not null. If you find any,
> > this is indicative of a situation where the parameterâ's DefaultValues or
> > ValidValues are query based and that query requires an input parameter. You
> > will need to consult the array elements, take the name of each parameter
> > contained in an element, and use the following logic to establish a page of
> > controls to obtain values for the dependent parameters. Once you have these
> > values, you will make a subsequent call to GetReportParameters() providing
> > the values you have collected thus far. Then, you will construct a page of
> > [now] independent parameters seeking their values. Once you have these
> > values you may proceed with RenderReport(). Note: there is at most one level
> > of indirection here.
> > 3. Use the â'Promptâ' propertyâ's value as the label text for your control.
> > (Depending on how you do this, you may have to wait until after the control
> > type is determined below.)
> > 4. If ValidValues has zero elements, determine the type of control to use
> > from the Type property.
> > a. If Type is â'Stringâ' we can presume a Textbox control.
> > b. If Type is â'DateTimeâ' we can presume a Calendar control.
> > c. If Type is â'Booleanâ' we can presume a CheckBox control.
> > d. If Type is â'Integerâ' we can presume a Textbox control with integer
> > formatting.
> > e. If Type is â'Floatâ' we can presume a Textbox control with floating point
> > decimal formatting.
> > 5. If ValidValues has one element, this is indicative of a rare but
> > potential condition where there is one and only one valid value. Since there
> > is only one you may consider not prompting the user at all and just use the
> > value supplied.
> > 6. If ValidValues has two or more elements, the report developer is
> > indicating that he/she intends on the user picking a value from a list, you
> > should use a dropdown list control.
> > a. Determine if the Label property of the ETValidValue collection items is
> > blank.
> > i. If Label is NOT blank, then we have a lookup; we will display a
> > â'externalâ' value such as List Name, and use its corresponding â'internalâ'
> > value (List ID) as the parameter value. Populate the list itemâ's â'textâ'
> > property with the Label property of the ETValidValue and the list itemâ's
> > â'valueâ' property with the â'Valueâ' property of ETValidValue.
> > ii. If Label IS blank, then we have a simple lookup (such as a list of
> > dates). Populate the list boxâ's list itemâ's properties â'textâ' and â'valueâ'
> > with the â'Valueâ' property of ETValidValue.
> > 7. If DefaultValues contains 1 element then use the assign the value of
> > DefaultValues[0] to the control in accordance with the controlâ's type, thus
> > establishing the default value for the control.
> > Future Consideration
> > While the design stated above is certainly dynamic, it not does not consider
> > all of the possibilities. We have not yet entertained for example that
> > report content is ordered in accordance with a runtime parameter. If it was,
> > we would simply gather the parameter like any other; however, it would be
> > used in an ORDER BY clause as opposed to a WHERE clause. Although similar in
> > nature, we would most likely want to visually separate those parameters that
> > manage scope versus those that manage ordering. SQL Reporting Services does
> > not directly support that segregation (through an internal property of a
> > report parameter) so if desires, we would have to implement our own
> > methodology.
> >
> > Date ranges (or any range parameters for that matter) are quite common;
> > however we have no support for multiple ranges specified against a single
> > value. Should we choose to support this feature we would need to determine a
> > way to allow the user to enter multiple ranges, pass them to the report
> > renderer, which passes them along to the stored procedure that delivers the
> > result set. There is some hope for this support from within SQL Reporting
> > Services through the MultiValue property of its parameters collection but we
> > would still need to work out a method by which these values are passed on to
> > the SPROCS.
> >
> > For now, user are limited to specifying a single value or (through using two
> > report parameters) a range of values. I think it will be necessary for us to
> > support multi value parameters in conjunction with the IN operator of T-SQL.
> > Quite frequently a user is going to want a report that contains more than
> > â'one itemâ'. How we will do this is not yet known as SQL Reporting Services
> > does not yet appear to support Multi-Value.
> >
> > Another consideration, which is similar in nature to MultiValue is an
> > â'all-butâ' paradigm. Rather than constructing the â'positiveâ' case using
> > parameter values (range or multivalue) the user is constructing a WHERE NOT
> > clause.
> >
> > In a report scenario that involves a heavy comparison by date, users
> > frequently desire what I refer to as date plus or minus where the user is
> > specifying a date and then a span of time either before or after the
> > specified date. This is nothing more than an alternate date range so we
> > really have no issue regarding our reports or stored procedures but rather it
> > becomes an issue for the user-interface to illustrate the parameters in this
> > fashion. This too is probably not too much of an endeavor however we have no
> > way at present for the report developer to indicate the type of control to
> > gather a parameter value by nor do we have support to communicate this fact
> > to the consumer through the GetParameters() method. Of course, one could
> > construct the MOADC (mother of all date controls) that allowed the user to
> > specify a range with a beginning and ending date or a date plus or minus a
> > day, week, month, quarter, half-year, year etc. but then we would have no way
> > to associate two date parameters into a range either.
> >
> >
> >
> > "Dev Main" wrote:
> >
> > > I found many hints that customer parameter interfaces are a possible solution
> > > for several problems.
> > >
> > > But I can't find one piece about how this can be done. Not in the
> > > documentation, not in this news group and not in google. I'm really investet
> > > many time, but don't find anything.
> > >
> > > Can one give me a hint where I can find information about this?

Wednesday, March 7, 2012

Custom DLL #Error Issue -Really Critical - Need your Help to Sort out the Issue

Hi MSTR Mentors,
I am in need of your Help... I am having this issue for a very long
time...Hope I will get a solution from you guys...
We have a Custom .net dll, referred in the RDL, the dll has a function
which gets the encrypted Credit Card# and returns the Decrypted value to
the Report.
I have done all the steps listed below
1. Assert permissions in your custom assembly.
2. Make the custom assembly available to Report Designer and to Report
Server.
3. Reference the custom assembly in your report.
4. Modify the code access security settings for your custom assembly.
Ref: http://support.microsoft.com/?kbid=842419#XSLTH3133121123120121120120
Step 1: I have added the following code to Assert Permission.
SecurityPermission secPerm = new SecurityPermission
(PermissionState.Unrestricted);
secPerm.Assert(); - Is this Assert Permission Correct
Step 2: Copied the assembly to the following locations
C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\
bin
&
C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer
Step 3: Reference the custom assembly in the report (thru Report Properties)
Step 4: Modify the code access security for the custom assembly by creating
new permission set and code groups.
Copy the code from the security.config(C:\WINNT\Microsoft.NET\Framework\
v1.1.4322\CONFIG\) and paste it in
C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\
rssrvpolicy.config
&
C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer\
rspreviewpolicy.config
PERMISSION SET
<PermissionSet class="NamedPermissionSet"
version="1"
Name="ILNReportsPermissionSet">
<IPermission class="SecurityPermission"
version="1"
Flags="Assertion, Execution"/>
</PermissionSet>
CODE GROUP
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="TESTPS"
Name="TESTCG"
Description="">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="file://C:/Program
Files/Microsoft SQL Server/MSSQL/Reporting
Services/ReportServer/bin/CreditCardDecrypt.dll"/>
</CodeGroup>
Save and close the files
The tried to run the report in the DebugLocal Mode - Fails ?
Dll Code: I have attached the custom assembly code.
Note: To make sure the Dll works fine in Web, I have created a sample web
application and tested the dll by passing the values to the dll function It
works fine, but not working with the RDL.
Custom DLL Code
using System;
using System.Text;
using System.Net;
using System.IO;
using System.Collections.Specialized;
using System.Configuration;
using System.Security.Permissions;
using System.Security.Cryptography;
using FCLX509 = System.Security.Cryptography.X509Certificates;
using WSEX509 = Microsoft.Web.Services2.Security.X509;
using WSECRY = Microsoft.Web.Services2.Security.Cryptography;
[assembly:CLSCompliant(true)]
namespace CreditCardDecrypt
{
/// <summary>
/// Summary description for DecryptClass.
/// </summary>
///
public class DecryptClass
{
public DecryptClass()
{
//
// TODO: Add constructor logic here
//
}
public static string DecryptCardInfo(string cc,string subjectName,string
storeName)
{
string sCreditCard = "";
try
{
if(cc == "" || cc== null)
return sCreditCard = "NA";
SecurityPermission secPerm = new SecurityPermission
(PermissionState.Unrestricted);
secPerm.Assert();
WSEX509.X509CertificateStore.StoreLocation location = WSEX509.X509CertificateStore.StoreLocation.LocalMachine;
WSEX509.X509CertificateStore.StoreProvider provider = WSEX509.X509CertificateStore.StoreProvider.System;
WSEX509.X509CertificateStore store = new WSEX509.X509CertificateStore
(provider, location, storeName);
bool fopen = store.OpenRead();
if(fopen)
{
WSEX509.X509CertificateCollection certs = store.FindCertificateBySubjectString(subjectName);
if (certs.Count > 0)
{
WSEX509.X509Certificate cer = certs[0];
WSECRY.RSACryptoServiceProvider rsaCsp = (WSECRY.RSACryptoServiceProvider)cer.Key;
byte[] cipherData = Convert.FromBase64String(cc);
byte[] plainData = rsaCsp.Decrypt(cipherData, false);
sCreditCard = Encoding.UTF8.GetString(plainData);
}
}
if (store != null)
store.Close();
return sCreditCard;
//return cc;
}
catch(Exception ex)
{
return ex.ToString();
}
}
}
}
Thanks
Balaji
Note : This is my email id (bkkrishnan[AT]hotmail.com).
--
Message posted via http://www.sqlmonster.comCan any one please help on this.....
Still can't able to fix the issue
Thanks
Balaji
--
Message posted via http://www.sqlmonster.com

Saturday, February 25, 2012

Custom configuration settings?

We are an ISV and our OLAP solution will be deployed to many customers. Needless to say, various values needs to be customized to meet the client needs, e.g. KPI goal values. What will the recommended way to implement custom configuration settings in the cube that are accessable to MDX calculations?An example would be helpful. I have vague understanding of what you are asking, perhaps more explanation will make it more clear.

Sunday, February 19, 2012

Custom Bar Chart colors?

I am also looking for a way to specify my own list of colors for bars in a
bar chart. Please let me know if anyone has a solution for this.
Thanks Again,
AndyHowdy,
http://blogs.msdn.com/bwelcker/archive/2005/05/20/420349.aspx
(Courtesy of Brian Welcker)
HTH,
Sean G.

Custom Authentication

How do I change Authentication from Domain to custom.
I tried the sample on teh website but somehow I dont have the solution
required to do the modification...
Help greatly appreciated.
--
Smit N Shah
CIO OmegaSoft Inc.
http://www.omegasoftinc.comDid you carefully follow the steps outlined here:
http://msdn.microsoft.com/library/?url=/library/en-us/dnsql2k/html/ufairs.asp?frame=true#ufairs_topic3
Cheers,
'(' Jeff A. Stucker
\
Business Intelligence
www.criadvantage.com
---
"WizKid" <WizKid@.discussions.microsoft.com> wrote in message
news:2013D270-7241-4E13-93E0-313122B2548C@.microsoft.com...
> How do I change Authentication from Domain to custom.
> I tried the sample on teh website but somehow I dont have the solution
> required to do the modification...
> Help greatly appreciated.
>
> --
> Smit N Shah
> CIO OmegaSoft Inc.
> http://www.omegasoftinc.com

Friday, February 17, 2012

Custom Assembly in RDL - Need Solution - Very Urgent

Hi All,
I have a Custom .net dll, refered in the RDL, the dll has a function which
gets the encrypted CreditCard# and returns the Decrypted value to the
Report.
I have attached the code @. the end.
I have given created the permission set and code group and copied the dll
in the following location
C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer\
C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\
bin\
Now when I run the report I am getting the Credit Card# decrypted shown in
the Preview window of Report Designer.....
But when I deploy the report in my report server I am getting #Error in the
CC# field.
I followed the step in the (http://support.microsoft.com/?
kbid=842419#XSLTH3133121123120121120120) to-grant permissions to a custom
assembly that is referenced in a report in Reporting Services
But there are four steps
1. Assert permissions in your custom assembly.
2. Make the custom assembly available to Report Designer and to Report
Server.
3. Reference the custom assembly in your report.
4. Modify the code access security settings for your custom assembly.
I am not sure with the STEP -1 WHAT ASSET PERMISSION IN CUSTOM ASSEMBLY TO
ADD FOR THE CRPTOGRAPY...because in the link I can see for the textfile and
SQLClinet...
I need your help on this...
Thanks in advance
Balaji.
using System;
using System.Text;
using System.IO;
using System.Collections.Specialized;
using System.Configuration;
using System.Security.Cryptography;
using FCLX509 = System.Security.Cryptography.X509Certificates;
using WSEX509 = Microsoft.Web.Services2.Security.X509;
using WSECRY = Microsoft.Web.Services2.Security.Cryptography;
namespace RDLCustomCode
{
/// <summary>
/// This class is responsible for the data decryption of the
/// user credit card information
/// </summary>
public class DataDecryptionClass
{
public DataDecryptionClass()
{
}
public static string DecryptCardInfo(string cc,string subjectName,string
storeName)
{
string sCreditCard = "";
try
{
FileStream file = new FileStream("C:\\path.txt", FileMode.OpenOrCreate,
FileAccess.Write);
StreamWriter sw = new StreamWriter(file);
WSEX509.X509CertificateStore.StoreLocation location = WSEX509.X509CertificateStore.StoreLocation.CurrentUser;
WSEX509.X509CertificateStore.StoreProvider provider = WSEX509.X509CertificateStore.StoreProvider.System;
WSEX509.X509CertificateStore store = new WSEX509.X509CertificateStore
(provider, location, storeName);
bool fopen = store.OpenRead();
if(fopen)
{
WSEX509.X509CertificateCollection certs = store.FindCertificateBySubjectString(subjectName);
if (certs.Count > 0)
{
WSEX509.X509Certificate cer = certs[0];
WSECRY.RSACryptoServiceProvider rsaCsp = (WSECRY.RSACryptoServiceProvider)cer.Key;
byte[] cipherData = Convert.FromBase64String(cc);
byte[] plainData = rsaCsp.Decrypt(cipherData, false);
sCreditCard = Encoding.UTF8.GetString(plainData);
sw.Write(sCreditCard);
}
}
sw.Close();
file.Close();
if (store != null)
store.Close();
return sCreditCard;
//return cc;
}
catch
{
return "ErrorHandling";
}
}
--
Message posted via http://www.sqlmonster.comDid you get an error ? WHat is the error ? Did you see a .NET stack trace ?
Did you try to put the Assembly in the GAC ? There you check wheter if it is
a permission problem.
HTH, Jens Suessmeyer.
--
http://www.sqlserver2005.de
--
"BALAJI KRISHNAN via SQLMonster.com" <forum@.nospam.SQLMonster.com> schrieb
im Newsbeitrag news:22c746269e61489188230bc4b59e35df@.SQLMonster.com...
> Hi All,
> I have a Custom .net dll, refered in the RDL, the dll has a function which
> gets the encrypted CreditCard# and returns the Decrypted value to the
> Report.
> I have attached the code @. the end.
> I have given created the permission set and code group and copied the dll
> in the following location
> C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer\
> C:\Program Files\Microsoft SQL Server\MSSQL\Reporting
> Services\ReportServer\
> bin\
> Now when I run the report I am getting the Credit Card# decrypted shown in
> the Preview window of Report Designer.....
> But when I deploy the report in my report server I am getting #Error in
> the
> CC# field.
> I followed the step in the (http://support.microsoft.com/?
> kbid=842419#XSLTH3133121123120121120120) to-grant permissions to a custom
> assembly that is referenced in a report in Reporting Services
> But there are four steps
> 1. Assert permissions in your custom assembly.
> 2. Make the custom assembly available to Report Designer and to Report
> Server.
> 3. Reference the custom assembly in your report.
> 4. Modify the code access security settings for your custom assembly.
>
> I am not sure with the STEP -1 WHAT ASSET PERMISSION IN CUSTOM ASSEMBLY TO
> ADD FOR THE CRPTOGRAPY...because in the link I can see for the textfile
> and
> SQLClinet...
> I need your help on this...
> Thanks in advance
> Balaji.
>
> using System;
> using System.Text;
> using System.IO;
> using System.Collections.Specialized;
> using System.Configuration;
> using System.Security.Cryptography;
> using FCLX509 = System.Security.Cryptography.X509Certificates;
> using WSEX509 = Microsoft.Web.Services2.Security.X509;
> using WSECRY = Microsoft.Web.Services2.Security.Cryptography;
> namespace RDLCustomCode
> {
> /// <summary>
> /// This class is responsible for the data decryption of the
> /// user credit card information
> /// </summary>
> public class DataDecryptionClass
> {
> public DataDecryptionClass()
> {
> }
> public static string DecryptCardInfo(string cc,string subjectName,string
> storeName)
> {
> string sCreditCard = "";
> try
> {
> FileStream file = new FileStream("C:\\path.txt", FileMode.OpenOrCreate,
> FileAccess.Write);
> StreamWriter sw = new StreamWriter(file);
>
> WSEX509.X509CertificateStore.StoreLocation location => WSEX509.X509CertificateStore.StoreLocation.CurrentUser;
> WSEX509.X509CertificateStore.StoreProvider provider => WSEX509.X509CertificateStore.StoreProvider.System;
> WSEX509.X509CertificateStore store = new WSEX509.X509CertificateStore
> (provider, location, storeName);
> bool fopen = store.OpenRead();
> if(fopen)
> {
> WSEX509.X509CertificateCollection certs => store.FindCertificateBySubjectString(subjectName);
> if (certs.Count > 0)
> {
> WSEX509.X509Certificate cer = certs[0];
> WSECRY.RSACryptoServiceProvider rsaCsp => (WSECRY.RSACryptoServiceProvider)cer.Key;
> byte[] cipherData = Convert.FromBase64String(cc);
> byte[] plainData = rsaCsp.Decrypt(cipherData, false);
> sCreditCard = Encoding.UTF8.GetString(plainData);
> sw.Write(sCreditCard);
>
> }
> }
> sw.Close();
> file.Close();
> if (store != null)
> store.Close();
> return sCreditCard;
> //return cc;
> }
> catch
> {
> return "ErrorHandling";
> }
>
> }
> --
> Message posted via http://www.sqlmonster.com|||I ve solved similar problem a day before. See this...
Problem is: You dont ve File Permission for your assembly (dll).
Solution:
Step1: Change rrsvpolicy.config with following snippet added-
<PermissionSet
class="NamedPermissionSet"
version="1"
Name="HelloFilePermissionSet"
Description="A special permission set that grants read access to my
hello file.">
<IPermission
class="FileIOPermission"
version="1"
PathDiscovery="C:\inetpub\mailroot"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution, Assertion"
/>
</PermissionSet>
Step 2: Change Dll with the following code added on class-
[FileIOPermissionAttribute(SecurityAction.Assert,
PathDiscovery="c:\\inetpub\\mailroot\\")]
public class MailSystem
{
public MailSystem()
{
}
............//rest of class.
Step 3: Change Dll with the following code added in Assemblyinfo.cs-
[assembly:AllowPartiallyTrustedCallers]
Note: Please add appropriate namespaces.
:o) It works for sure. and if this doesnt work.. mail
me(suneetmohan@.gmail.com). i'll mail ya complete code.

Tuesday, February 14, 2012

custom (dynamic) hyperlink

I have looked through various posts, but I still don't have a solution to the
problem I have in my hand. I attempted to make create three hyperlinks from
a comma delimited string output:
value1,value2,value3
I tried the following:
="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>") & "</a>"
I'm getting the string I want but it doesn't get rendered into HTML. Please
help. Thanks in advance.Are you trying to do this from within a report and the jump to url
property? If so, then where you are getting into trouble is that you are
trying to create the html, not just the url. What you want to do is create
exactly the string that you would put into the address bar of IE. You are
not trying to create the underlying html.
Do the following. Assign the expression to a textbox on your report. You
should be able to copy and paste into IE and it should work.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> I have looked through various posts, but I still don't have a solution to
the
> problem I have in my hand. I attempted to make create three hyperlinks
from
> a comma delimited string output:
> value1,value2,value3
> I tried the following:
> ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>") &
"</a>"
> I'm getting the string I want but it doesn't get rendered into HTML.
Please
> help. Thanks in advance.|||wow, the response is quick. I'm so impressed. I'm trying to create <a></a>
tags in a column. And it links to a non-report web page. The string didn't
get rendered as HTML. I kept getting "<a
href='somewebpage.asp?c='123'>123</a>". Thanks again.
"Bruce L-C [MVP]" wrote:
> Are you trying to do this from within a report and the jump to url
> property? If so, then where you are getting into trouble is that you are
> trying to create the html, not just the url. What you want to do is create
> exactly the string that you would put into the address bar of IE. You are
> not trying to create the underlying html.
> Do the following. Assign the expression to a textbox on your report. You
> should be able to copy and paste into IE and it should work.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > I have looked through various posts, but I still don't have a solution to
> the
> > problem I have in my hand. I attempted to make create three hyperlinks
> from
> > a comma delimited string output:
> >
> > value1,value2,value3
> >
> > I tried the following:
> > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>") &
> "</a>"
> >
> > I'm getting the string I want but it doesn't get rendered into HTML.
> Please
> > help. Thanks in advance.
>
>|||You are missing a concept here. You don't create tags in a column. You
create a column or use an existing one. Then do a right mouse click,
properties, extended properties, navigation, jump to url. The put in
="http://www.microsoft.com/"
as a test.
I also then set the text blue and underlined so the user knows to click on
it.
Once that is working for you then just assemble the appropriate string.
Again, you are not create html tags. You are creating a url string.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> wow, the response is quick. I'm so impressed. I'm trying to create
<a></a>
> tags in a column. And it links to a non-report web page. The string
didn't
> get rendered as HTML. I kept getting "<a
> href='somewebpage.asp?c='123'>123</a>". Thanks again.
> "Bruce L-C [MVP]" wrote:
> > Are you trying to do this from within a report and the jump to url
> > property? If so, then where you are getting into trouble is that you are
> > trying to create the html, not just the url. What you want to do is
create
> > exactly the string that you would put into the address bar of IE. You
are
> > not trying to create the underlying html.
> >
> > Do the following. Assign the expression to a textbox on your report. You
> > should be able to copy and paste into IE and it should work.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> > "JL" <JL@.discussions.microsoft.com> wrote in message
> > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > I have looked through various posts, but I still don't have a solution
to
> > the
> > > problem I have in my hand. I attempted to make create three
hyperlinks
> > from
> > > a comma delimited string output:
> > >
> > > value1,value2,value3
> > >
> > > I tried the following:
> > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>") &
> > "</a>"
> > >
> > > I'm getting the string I want but it doesn't get rendered into HTML.
> > Please
> > > help. Thanks in advance.
> >
> >
> >|||I knew I could use the "jump to url" feature. But I attempted to create the
actual html because I planned to create a VB function in "custom code" box
that would take a delimited string input parameter, for instance,
"value1,value2,value3". Then the function would transform this string into 3
different hyperlinks:
<a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
<a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
...
And I wasn't sure if this was doable because I couldn't even create any
custom html, like <br> or <hr>, in the report designer.
"Bruce L-C [MVP]" wrote:
> You are missing a concept here. You don't create tags in a column. You
> create a column or use an existing one. Then do a right mouse click,
> properties, extended properties, navigation, jump to url. The put in
> ="http://www.microsoft.com/"
> as a test.
> I also then set the text blue and underlined so the user knows to click on
> it.
> Once that is working for you then just assemble the appropriate string.
> Again, you are not create html tags. You are creating a url string.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
>
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > wow, the response is quick. I'm so impressed. I'm trying to create
> <a></a>
> > tags in a column. And it links to a non-report web page. The string
> didn't
> > get rendered as HTML. I kept getting "<a
> > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> >
> > "Bruce L-C [MVP]" wrote:
> >
> > > Are you trying to do this from within a report and the jump to url
> > > property? If so, then where you are getting into trouble is that you are
> > > trying to create the html, not just the url. What you want to do is
> create
> > > exactly the string that you would put into the address bar of IE. You
> are
> > > not trying to create the underlying html.
> > >
> > > Do the following. Assign the expression to a textbox on your report. You
> > > should be able to copy and paste into IE and it should work.
> > >
> > >
> > > --
> > > Bruce Loehle-Conger
> > > MVP SQL Server Reporting Services
> > >
> > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > I have looked through various posts, but I still don't have a solution
> to
> > > the
> > > > problem I have in my hand. I attempted to make create three
> hyperlinks
> > > from
> > > > a comma delimited string output:
> > > >
> > > > value1,value2,value3
> > > >
> > > > I tried the following:
> > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>") &
> > > "</a>"
> > > >
> > > > I'm getting the string I want but it doesn't get rendered into HTML.
> > > Please
> > > > help. Thanks in advance.
> > >
> > >
> > >
>
>|||Ahh, OK. I see what you are trying to accomplish. This is where the power of
expressions comes in. The jump to URL is still the way to go. You can have
any expression you want to create the URL string. This means that you can
have custom code that is doing this. So,
= code.mylinkbuilder(Parameters!whateverparameternameis.Value)
Just be sure that you return a string with the appropriate URL.
--
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> I knew I could use the "jump to url" feature. But I attempted to create
the
> actual html because I planned to create a VB function in "custom code" box
> that would take a delimited string input parameter, for instance,
> "value1,value2,value3". Then the function would transform this string
into 3
> different hyperlinks:
> <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> ...
> And I wasn't sure if this was doable because I couldn't even create any
> custom html, like <br> or <hr>, in the report designer.
> "Bruce L-C [MVP]" wrote:
> > You are missing a concept here. You don't create tags in a column. You
> > create a column or use an existing one. Then do a right mouse click,
> > properties, extended properties, navigation, jump to url. The put in
> > ="http://www.microsoft.com/"
> >
> > as a test.
> >
> > I also then set the text blue and underlined so the user knows to click
on
> > it.
> >
> > Once that is working for you then just assemble the appropriate string.
> > Again, you are not create html tags. You are creating a url string.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> >
> > "JL" <JL@.discussions.microsoft.com> wrote in message
> > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > wow, the response is quick. I'm so impressed. I'm trying to create
> > <a></a>
> > > tags in a column. And it links to a non-report web page. The string
> > didn't
> > > get rendered as HTML. I kept getting "<a
> > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > >
> > > "Bruce L-C [MVP]" wrote:
> > >
> > > > Are you trying to do this from within a report and the jump to url
> > > > property? If so, then where you are getting into trouble is that you
are
> > > > trying to create the html, not just the url. What you want to do is
> > create
> > > > exactly the string that you would put into the address bar of IE.
You
> > are
> > > > not trying to create the underlying html.
> > > >
> > > > Do the following. Assign the expression to a textbox on your report.
You
> > > > should be able to copy and paste into IE and it should work.
> > > >
> > > >
> > > > --
> > > > Bruce Loehle-Conger
> > > > MVP SQL Server Reporting Services
> > > >
> > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > I have looked through various posts, but I still don't have a
solution
> > to
> > > > the
> > > > > problem I have in my hand. I attempted to make create three
> > hyperlinks
> > > > from
> > > > > a comma delimited string output:
> > > > >
> > > > > value1,value2,value3
> > > > >
> > > > > I tried the following:
> > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>")
&
> > > > "</a>"
> > > > >
> > > > > I'm getting the string I want but it doesn't get rendered into
HTML.
> > > > Please
> > > > > help. Thanks in advance.
> > > >
> > > >
> > > >
> >
> >
> >|||It still doesn't solve my problem. I want function to display 2 or more
hyperlinks in a single output, according to the number of elements in the
comma delimited string. For example, if the input parameter is
"value1,value2,value3,value4", the function will return 4 different <A> html
tags. I don't think the "jump to url" can do it because it only allows one
url. I'm sorry being pain in the butt. But I have looked thru the forum and
still has no clue how to approach it. Thx again. JL
"Bruce L-C [MVP]" wrote:
> Ahh, OK. I see what you are trying to accomplish. This is where the power of
> expressions comes in. The jump to URL is still the way to go. You can have
> any expression you want to create the URL string. This means that you can
> have custom code that is doing this. So,
> = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> Just be sure that you return a string with the appropriate URL.
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
>
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > I knew I could use the "jump to url" feature. But I attempted to create
> the
> > actual html because I planned to create a VB function in "custom code" box
> > that would take a delimited string input parameter, for instance,
> > "value1,value2,value3". Then the function would transform this string
> into 3
> > different hyperlinks:
> >
> > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> >
> > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > ...
> >
> > And I wasn't sure if this was doable because I couldn't even create any
> > custom html, like <br> or <hr>, in the report designer.
> >
> > "Bruce L-C [MVP]" wrote:
> >
> > > You are missing a concept here. You don't create tags in a column. You
> > > create a column or use an existing one. Then do a right mouse click,
> > > properties, extended properties, navigation, jump to url. The put in
> > > ="http://www.microsoft.com/"
> > >
> > > as a test.
> > >
> > > I also then set the text blue and underlined so the user knows to click
> on
> > > it.
> > >
> > > Once that is working for you then just assemble the appropriate string.
> > > Again, you are not create html tags. You are creating a url string.
> > >
> > >
> > > --
> > > Bruce Loehle-Conger
> > > MVP SQL Server Reporting Services
> > >
> > >
> > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > wow, the response is quick. I'm so impressed. I'm trying to create
> > > <a></a>
> > > > tags in a column. And it links to a non-report web page. The string
> > > didn't
> > > > get rendered as HTML. I kept getting "<a
> > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > >
> > > > "Bruce L-C [MVP]" wrote:
> > > >
> > > > > Are you trying to do this from within a report and the jump to url
> > > > > property? If so, then where you are getting into trouble is that you
> are
> > > > > trying to create the html, not just the url. What you want to do is
> > > create
> > > > > exactly the string that you would put into the address bar of IE.
> You
> > > are
> > > > > not trying to create the underlying html.
> > > > >
> > > > > Do the following. Assign the expression to a textbox on your report.
> You
> > > > > should be able to copy and paste into IE and it should work.
> > > > >
> > > > >
> > > > > --
> > > > > Bruce Loehle-Conger
> > > > > MVP SQL Server Reporting Services
> > > > >
> > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > I have looked through various posts, but I still don't have a
> solution
> > > to
> > > > > the
> > > > > > problem I have in my hand. I attempted to make create three
> > > hyperlinks
> > > > > from
> > > > > > a comma delimited string output:
> > > > > >
> > > > > > value1,value2,value3
> > > > > >
> > > > > > I tried the following:
> > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a href='#'>")
> &
> > > > > "</a>"
> > > > > >
> > > > > > I'm getting the string I want but it doesn't get rendered into
> HTML.
> > > > > Please
> > > > > > help. Thanks in advance.
> > > > >
> > > > >
> > > > >
> > >
> > >
> > >
>
>|||So you are trying to create a list of URLs that they would pick from? I'm
sure there is a way that this could be accomplished but you definitely need
to stop thinking about creating the html yourself. That is just not the way
that RS works. RS takes data, the report definition language (defined in
XML) and then renders it in a variety of formats. HTML is just one of the
formats.
I still might not understand what you are trying to accomplish but if it is
a list of hyperlinks you want then if you could put this in a stored
procedure where each hyperlink was in a row. Perhaps one column with a
description and the other with the hyperlink. Only the description would be
shown and then the jump to URL would use the second column.
--
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> It still doesn't solve my problem. I want function to display 2 or more
> hyperlinks in a single output, according to the number of elements in the
> comma delimited string. For example, if the input parameter is
> "value1,value2,value3,value4", the function will return 4 different <A>
html
> tags. I don't think the "jump to url" can do it because it only allows
one
> url. I'm sorry being pain in the butt. But I have looked thru the forum
and
> still has no clue how to approach it. Thx again. JL
> "Bruce L-C [MVP]" wrote:
> > Ahh, OK. I see what you are trying to accomplish. This is where the
power of
> > expressions comes in. The jump to URL is still the way to go. You can
have
> > any expression you want to create the URL string. This means that you
can
> > have custom code that is doing this. So,
> >
> > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> >
> > Just be sure that you return a string with the appropriate URL.
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> >
> > "JL" <JL@.discussions.microsoft.com> wrote in message
> > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > I knew I could use the "jump to url" feature. But I attempted to
create
> > the
> > > actual html because I planned to create a VB function in "custom code"
box
> > > that would take a delimited string input parameter, for instance,
> > > "value1,value2,value3". Then the function would transform this string
> > into 3
> > > different hyperlinks:
> > >
> > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > >
> > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > ...
> > >
> > > And I wasn't sure if this was doable because I couldn't even create
any
> > > custom html, like <br> or <hr>, in the report designer.
> > >
> > > "Bruce L-C [MVP]" wrote:
> > >
> > > > You are missing a concept here. You don't create tags in a column.
You
> > > > create a column or use an existing one. Then do a right mouse click,
> > > > properties, extended properties, navigation, jump to url. The put in
> > > > ="http://www.microsoft.com/"
> > > >
> > > > as a test.
> > > >
> > > > I also then set the text blue and underlined so the user knows to
click
> > on
> > > > it.
> > > >
> > > > Once that is working for you then just assemble the appropriate
string.
> > > > Again, you are not create html tags. You are creating a url string.
> > > >
> > > >
> > > > --
> > > > Bruce Loehle-Conger
> > > > MVP SQL Server Reporting Services
> > > >
> > > >
> > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > wow, the response is quick. I'm so impressed. I'm trying to
create
> > > > <a></a>
> > > > > tags in a column. And it links to a non-report web page. The
string
> > > > didn't
> > > > > get rendered as HTML. I kept getting "<a
> > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > >
> > > > > "Bruce L-C [MVP]" wrote:
> > > > >
> > > > > > Are you trying to do this from within a report and the jump to
url
> > > > > > property? If so, then where you are getting into trouble is that
you
> > are
> > > > > > trying to create the html, not just the url. What you want to do
is
> > > > create
> > > > > > exactly the string that you would put into the address bar of
IE.
> > You
> > > > are
> > > > > > not trying to create the underlying html.
> > > > > >
> > > > > > Do the following. Assign the expression to a textbox on your
report.
> > You
> > > > > > should be able to copy and paste into IE and it should work.
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Bruce Loehle-Conger
> > > > > > MVP SQL Server Reporting Services
> > > > > >
> > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > I have looked through various posts, but I still don't have a
> > solution
> > > > to
> > > > > > the
> > > > > > > problem I have in my hand. I attempted to make create three
> > > > hyperlinks
> > > > > > from
> > > > > > > a comma delimited string output:
> > > > > > >
> > > > > > > value1,value2,value3
> > > > > > >
> > > > > > > I tried the following:
> > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
href='#'>")
> > &
> > > > > > "</a>"
> > > > > > >
> > > > > > > I'm getting the string I want but it doesn't get rendered into
> > HTML.
> > > > > > Please
> > > > > > > help. Thanks in advance.
> > > > > >
> > > > > >
> > > > > >
> > > >
> > > >
> > > >
> >
> >
> >|||Hmm...let me try this:
Here is a sample of the data:
col1 col2 col3
----
John 713-333-5555 project1,project2,project3
I'm trying to make RS create 3 hyperlinks according to the string in "one"
row. Each hyperlink links to an asp page.
The url should look like:
http://localhost/projects/getProject.asp?name=project1
So for the second element in this string, the url would be:
http://localhost/projects/getProject.asp?name=project2
I don't want to break it into 3 rows. Is this doable in RS?
"Bruce L-C [MVP]" wrote:
> So you are trying to create a list of URLs that they would pick from? I'm
> sure there is a way that this could be accomplished but you definitely need
> to stop thinking about creating the html yourself. That is just not the way
> that RS works. RS takes data, the report definition language (defined in
> XML) and then renders it in a variety of formats. HTML is just one of the
> formats.
> I still might not understand what you are trying to accomplish but if it is
> a list of hyperlinks you want then if you could put this in a stored
> procedure where each hyperlink was in a row. Perhaps one column with a
> description and the other with the hyperlink. Only the description would be
> shown and then the jump to URL would use the second column.
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> > It still doesn't solve my problem. I want function to display 2 or more
> > hyperlinks in a single output, according to the number of elements in the
> > comma delimited string. For example, if the input parameter is
> > "value1,value2,value3,value4", the function will return 4 different <A>
> html
> > tags. I don't think the "jump to url" can do it because it only allows
> one
> > url. I'm sorry being pain in the butt. But I have looked thru the forum
> and
> > still has no clue how to approach it. Thx again. JL
> >
> > "Bruce L-C [MVP]" wrote:
> >
> > > Ahh, OK. I see what you are trying to accomplish. This is where the
> power of
> > > expressions comes in. The jump to URL is still the way to go. You can
> have
> > > any expression you want to create the URL string. This means that you
> can
> > > have custom code that is doing this. So,
> > >
> > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> > >
> > > Just be sure that you return a string with the appropriate URL.
> > >
> > > --
> > > Bruce Loehle-Conger
> > > MVP SQL Server Reporting Services
> > >
> > >
> > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > > I knew I could use the "jump to url" feature. But I attempted to
> create
> > > the
> > > > actual html because I planned to create a VB function in "custom code"
> box
> > > > that would take a delimited string input parameter, for instance,
> > > > "value1,value2,value3". Then the function would transform this string
> > > into 3
> > > > different hyperlinks:
> > > >
> > > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > > >
> > > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > > ...
> > > >
> > > > And I wasn't sure if this was doable because I couldn't even create
> any
> > > > custom html, like <br> or <hr>, in the report designer.
> > > >
> > > > "Bruce L-C [MVP]" wrote:
> > > >
> > > > > You are missing a concept here. You don't create tags in a column.
> You
> > > > > create a column or use an existing one. Then do a right mouse click,
> > > > > properties, extended properties, navigation, jump to url. The put in
> > > > > ="http://www.microsoft.com/"
> > > > >
> > > > > as a test.
> > > > >
> > > > > I also then set the text blue and underlined so the user knows to
> click
> > > on
> > > > > it.
> > > > >
> > > > > Once that is working for you then just assemble the appropriate
> string.
> > > > > Again, you are not create html tags. You are creating a url string.
> > > > >
> > > > >
> > > > > --
> > > > > Bruce Loehle-Conger
> > > > > MVP SQL Server Reporting Services
> > > > >
> > > > >
> > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > > wow, the response is quick. I'm so impressed. I'm trying to
> create
> > > > > <a></a>
> > > > > > tags in a column. And it links to a non-report web page. The
> string
> > > > > didn't
> > > > > > get rendered as HTML. I kept getting "<a
> > > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > > >
> > > > > > "Bruce L-C [MVP]" wrote:
> > > > > >
> > > > > > > Are you trying to do this from within a report and the jump to
> url
> > > > > > > property? If so, then where you are getting into trouble is that
> you
> > > are
> > > > > > > trying to create the html, not just the url. What you want to do
> is
> > > > > create
> > > > > > > exactly the string that you would put into the address bar of
> IE.
> > > You
> > > > > are
> > > > > > > not trying to create the underlying html.
> > > > > > >
> > > > > > > Do the following. Assign the expression to a textbox on your
> report.
> > > You
> > > > > > > should be able to copy and paste into IE and it should work.
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Bruce Loehle-Conger
> > > > > > > MVP SQL Server Reporting Services
> > > > > > >
> > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > > I have looked through various posts, but I still don't have a
> > > solution
> > > > > to
> > > > > > > the
> > > > > > > > problem I have in my hand. I attempted to make create three
> > > > > hyperlinks
> > > > > > > from
> > > > > > > > a comma delimited string output:
> > > > > > > >
> > > > > > > > value1,value2,value3
> > > > > > > >
> > > > > > > > I tried the following:
> > > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
> href='#'>")
> > > &
> > > > > > > "</a>"
> > > > > > > >
> > > > > > > > I'm getting the string I want but it doesn't get rendered into
> > > HTML.
> > > > > > > Please
> > > > > > > > help. Thanks in advance.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > > >
> > > > >
> > >
> > >
> > >
>
>|||Depends. Can you count on a maximum number of projects? If so, add that many
columns. Have the source for the column be an expression that calls your
custom code where you pass it which one you want. So it would say project1
project2 etc. Leave blank if you ask for project 3 and there is no project
three. Then make it blue and underline, use the jump to url
= code.mylinkbuilder(Parameters!whateverparameternameis.Value, 1) for the
first one etc
If you set those columns to not have a border then you won't notice the
additional columns that do not have any values.
So you end up with two pieces of code, one that returns some verbiage, the
other that returns a hyperlink. The verbiage is displayed, the hyperlink is
used in the jump to url.
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:8D82D3E9-B2CB-43B1-9273-94654D70232F@.microsoft.com...
> Hmm...let me try this:
> Here is a sample of the data:
> col1 col2 col3
> ----
> John 713-333-5555 project1,project2,project3
> I'm trying to make RS create 3 hyperlinks according to the string in "one"
> row. Each hyperlink links to an asp page.
> The url should look like:
> http://localhost/projects/getProject.asp?name=project1
> So for the second element in this string, the url would be:
> http://localhost/projects/getProject.asp?name=project2
> I don't want to break it into 3 rows. Is this doable in RS?
>
> "Bruce L-C [MVP]" wrote:
> > So you are trying to create a list of URLs that they would pick from?
I'm
> > sure there is a way that this could be accomplished but you definitely
need
> > to stop thinking about creating the html yourself. That is just not the
way
> > that RS works. RS takes data, the report definition language (defined in
> > XML) and then renders it in a variety of formats. HTML is just one of
the
> > formats.
> >
> > I still might not understand what you are trying to accomplish but if it
is
> > a list of hyperlinks you want then if you could put this in a stored
> > procedure where each hyperlink was in a row. Perhaps one column with a
> > description and the other with the hyperlink. Only the description would
be
> > shown and then the jump to URL would use the second column.
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> > "JL" <JL@.discussions.microsoft.com> wrote in message
> > news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> > > It still doesn't solve my problem. I want function to display 2 or
more
> > > hyperlinks in a single output, according to the number of elements in
the
> > > comma delimited string. For example, if the input parameter is
> > > "value1,value2,value3,value4", the function will return 4 different
<A>
> > html
> > > tags. I don't think the "jump to url" can do it because it only
allows
> > one
> > > url. I'm sorry being pain in the butt. But I have looked thru the
forum
> > and
> > > still has no clue how to approach it. Thx again. JL
> > >
> > > "Bruce L-C [MVP]" wrote:
> > >
> > > > Ahh, OK. I see what you are trying to accomplish. This is where the
> > power of
> > > > expressions comes in. The jump to URL is still the way to go. You
can
> > have
> > > > any expression you want to create the URL string. This means that
you
> > can
> > > > have custom code that is doing this. So,
> > > >
> > > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> > > >
> > > > Just be sure that you return a string with the appropriate URL.
> > > >
> > > > --
> > > > Bruce Loehle-Conger
> > > > MVP SQL Server Reporting Services
> > > >
> > > >
> > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > > > I knew I could use the "jump to url" feature. But I attempted to
> > create
> > > > the
> > > > > actual html because I planned to create a VB function in "custom
code"
> > box
> > > > > that would take a delimited string input parameter, for instance,
> > > > > "value1,value2,value3". Then the function would transform this
string
> > > > into 3
> > > > > different hyperlinks:
> > > > >
> > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > > > >
> > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > > > ...
> > > > >
> > > > > And I wasn't sure if this was doable because I couldn't even
create
> > any
> > > > > custom html, like <br> or <hr>, in the report designer.
> > > > >
> > > > > "Bruce L-C [MVP]" wrote:
> > > > >
> > > > > > You are missing a concept here. You don't create tags in a
column.
> > You
> > > > > > create a column or use an existing one. Then do a right mouse
click,
> > > > > > properties, extended properties, navigation, jump to url. The
put in
> > > > > > ="http://www.microsoft.com/"
> > > > > >
> > > > > > as a test.
> > > > > >
> > > > > > I also then set the text blue and underlined so the user knows
to
> > click
> > > > on
> > > > > > it.
> > > > > >
> > > > > > Once that is working for you then just assemble the appropriate
> > string.
> > > > > > Again, you are not create html tags. You are creating a url
string.
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Bruce Loehle-Conger
> > > > > > MVP SQL Server Reporting Services
> > > > > >
> > > > > >
> > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > > > wow, the response is quick. I'm so impressed. I'm trying to
> > create
> > > > > > <a></a>
> > > > > > > tags in a column. And it links to a non-report web page. The
> > string
> > > > > > didn't
> > > > > > > get rendered as HTML. I kept getting "<a
> > > > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > > > >
> > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > >
> > > > > > > > Are you trying to do this from within a report and the jump
to
> > url
> > > > > > > > property? If so, then where you are getting into trouble is
that
> > you
> > > > are
> > > > > > > > trying to create the html, not just the url. What you want
to do
> > is
> > > > > > create
> > > > > > > > exactly the string that you would put into the address bar
of
> > IE.
> > > > You
> > > > > > are
> > > > > > > > not trying to create the underlying html.
> > > > > > > >
> > > > > > > > Do the following. Assign the expression to a textbox on your
> > report.
> > > > You
> > > > > > > > should be able to copy and paste into IE and it should work.
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Bruce Loehle-Conger
> > > > > > > > MVP SQL Server Reporting Services
> > > > > > > >
> > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > > > I have looked through various posts, but I still don't
have a
> > > > solution
> > > > > > to
> > > > > > > > the
> > > > > > > > > problem I have in my hand. I attempted to make create
three
> > > > > > hyperlinks
> > > > > > > > from
> > > > > > > > > a comma delimited string output:
> > > > > > > > >
> > > > > > > > > value1,value2,value3
> > > > > > > > >
> > > > > > > > > I tried the following:
> > > > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
> > href='#'>")
> > > > &
> > > > > > > > "</a>"
> > > > > > > > >
> > > > > > > > > I'm getting the string I want but it doesn't get rendered
into
> > > > HTML.
> > > > > > > > Please
> > > > > > > > > help. Thanks in advance.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > >
> > > >
> > > >
> >
> >
> >|||The unfortunate part is the number of projects is unknown. But anyhow, is
there a way to display custom html in RS? If yes, I'm sure there is a
workaround.
"Bruce L-C [MVP]" wrote:
> Depends. Can you count on a maximum number of projects? If so, add that many
> columns. Have the source for the column be an expression that calls your
> custom code where you pass it which one you want. So it would say project1
> project2 etc. Leave blank if you ask for project 3 and there is no project
> three. Then make it blue and underline, use the jump to url
> = code.mylinkbuilder(Parameters!whateverparameternameis.Value, 1) for the
> first one etc
> If you set those columns to not have a border then you won't notice the
> additional columns that do not have any values.
> So you end up with two pieces of code, one that returns some verbiage, the
> other that returns a hyperlink. The verbiage is displayed, the hyperlink is
> used in the jump to url.
>
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
>
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:8D82D3E9-B2CB-43B1-9273-94654D70232F@.microsoft.com...
> > Hmm...let me try this:
> >
> > Here is a sample of the data:
> >
> > col1 col2 col3
> > ----
> > John 713-333-5555 project1,project2,project3
> >
> > I'm trying to make RS create 3 hyperlinks according to the string in "one"
> > row. Each hyperlink links to an asp page.
> >
> > The url should look like:
> > http://localhost/projects/getProject.asp?name=project1
> >
> > So for the second element in this string, the url would be:
> > http://localhost/projects/getProject.asp?name=project2
> >
> > I don't want to break it into 3 rows. Is this doable in RS?
> >
> >
> > "Bruce L-C [MVP]" wrote:
> >
> > > So you are trying to create a list of URLs that they would pick from?
> I'm
> > > sure there is a way that this could be accomplished but you definitely
> need
> > > to stop thinking about creating the html yourself. That is just not the
> way
> > > that RS works. RS takes data, the report definition language (defined in
> > > XML) and then renders it in a variety of formats. HTML is just one of
> the
> > > formats.
> > >
> > > I still might not understand what you are trying to accomplish but if it
> is
> > > a list of hyperlinks you want then if you could put this in a stored
> > > procedure where each hyperlink was in a row. Perhaps one column with a
> > > description and the other with the hyperlink. Only the description would
> be
> > > shown and then the jump to URL would use the second column.
> > >
> > > --
> > > Bruce Loehle-Conger
> > > MVP SQL Server Reporting Services
> > >
> > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> > > > It still doesn't solve my problem. I want function to display 2 or
> more
> > > > hyperlinks in a single output, according to the number of elements in
> the
> > > > comma delimited string. For example, if the input parameter is
> > > > "value1,value2,value3,value4", the function will return 4 different
> <A>
> > > html
> > > > tags. I don't think the "jump to url" can do it because it only
> allows
> > > one
> > > > url. I'm sorry being pain in the butt. But I have looked thru the
> forum
> > > and
> > > > still has no clue how to approach it. Thx again. JL
> > > >
> > > > "Bruce L-C [MVP]" wrote:
> > > >
> > > > > Ahh, OK. I see what you are trying to accomplish. This is where the
> > > power of
> > > > > expressions comes in. The jump to URL is still the way to go. You
> can
> > > have
> > > > > any expression you want to create the URL string. This means that
> you
> > > can
> > > > > have custom code that is doing this. So,
> > > > >
> > > > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> > > > >
> > > > > Just be sure that you return a string with the appropriate URL.
> > > > >
> > > > > --
> > > > > Bruce Loehle-Conger
> > > > > MVP SQL Server Reporting Services
> > > > >
> > > > >
> > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > > > > I knew I could use the "jump to url" feature. But I attempted to
> > > create
> > > > > the
> > > > > > actual html because I planned to create a VB function in "custom
> code"
> > > box
> > > > > > that would take a delimited string input parameter, for instance,
> > > > > > "value1,value2,value3". Then the function would transform this
> string
> > > > > into 3
> > > > > > different hyperlinks:
> > > > > >
> > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > > > > >
> > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > > > > ...
> > > > > >
> > > > > > And I wasn't sure if this was doable because I couldn't even
> create
> > > any
> > > > > > custom html, like <br> or <hr>, in the report designer.
> > > > > >
> > > > > > "Bruce L-C [MVP]" wrote:
> > > > > >
> > > > > > > You are missing a concept here. You don't create tags in a
> column.
> > > You
> > > > > > > create a column or use an existing one. Then do a right mouse
> click,
> > > > > > > properties, extended properties, navigation, jump to url. The
> put in
> > > > > > > ="http://www.microsoft.com/"
> > > > > > >
> > > > > > > as a test.
> > > > > > >
> > > > > > > I also then set the text blue and underlined so the user knows
> to
> > > click
> > > > > on
> > > > > > > it.
> > > > > > >
> > > > > > > Once that is working for you then just assemble the appropriate
> > > string.
> > > > > > > Again, you are not create html tags. You are creating a url
> string.
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Bruce Loehle-Conger
> > > > > > > MVP SQL Server Reporting Services
> > > > > > >
> > > > > > >
> > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > > > > wow, the response is quick. I'm so impressed. I'm trying to
> > > create
> > > > > > > <a></a>
> > > > > > > > tags in a column. And it links to a non-report web page. The
> > > string
> > > > > > > didn't
> > > > > > > > get rendered as HTML. I kept getting "<a
> > > > > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > > > > >
> > > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > > >
> > > > > > > > > Are you trying to do this from within a report and the jump
> to
> > > url
> > > > > > > > > property? If so, then where you are getting into trouble is
> that
> > > you
> > > > > are
> > > > > > > > > trying to create the html, not just the url. What you want
> to do
> > > is
> > > > > > > create
> > > > > > > > > exactly the string that you would put into the address bar
> of
> > > IE.
> > > > > You
> > > > > > > are
> > > > > > > > > not trying to create the underlying html.
> > > > > > > > >
> > > > > > > > > Do the following. Assign the expression to a textbox on your
> > > report.
> > > > > You
> > > > > > > > > should be able to copy and paste into IE and it should work.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Bruce Loehle-Conger
> > > > > > > > > MVP SQL Server Reporting Services
> > > > > > > > >
> > > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > > news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > > > > I have looked through various posts, but I still don't
> have a
> > > > > solution
> > > > > > > to
> > > > > > > > > the
> > > > > > > > > > problem I have in my hand. I attempted to make create
> three
> > > > > > > hyperlinks
> > > > > > > > > from
> > > > > > > > > > a comma delimited string output:
> > > > > > > > > >
> > > > > > > > > > value1,value2,value3
> > > > > > > > > >
> > > > > > > > > > I tried the following:
> > > > > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
> > > href='#'>")
> > > > > &
> > > > > > > > > "</a>"
> > > > > > > > > >
> > > > > > > > > > I'm getting the string I want but it doesn't get rendered
> into
> > > > > HTML.
> > > > > > > > > Please
> > > > > > > > > > help. Thanks in advance.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > > >
> > > > >
> > >
> > >
> > >
>
>|||No, there is no way to add custom html to RS. This has come up with people
wanting to display html they have in a database as well. If you use web
services you can do a whole lot more but it is correspondingly more
difficult too.
Given that the number of columns is not known then you have two choices that
I see. One is to modify the report rdl. This has its own difficulties,
including dealing with multi-user issues. With Version 2 with the new
controls (webform and winform) this option would be easier than it is now.
The other option is to use a matrix. Have you investigated using a matrix.
You would still need to have an expression that shows the verbiage and the
jump to URL.
--
Bruce Loehle-Conger
MVP SQL Server Reporting Services
"JL" <JL@.discussions.microsoft.com> wrote in message
news:68626FC4-7D7B-4313-B777-F613E0A45837@.microsoft.com...
> The unfortunate part is the number of projects is unknown. But anyhow, is
> there a way to display custom html in RS? If yes, I'm sure there is a
> workaround.
> "Bruce L-C [MVP]" wrote:
> > Depends. Can you count on a maximum number of projects? If so, add that
many
> > columns. Have the source for the column be an expression that calls your
> > custom code where you pass it which one you want. So it would say
project1
> > project2 etc. Leave blank if you ask for project 3 and there is no
project
> > three. Then make it blue and underline, use the jump to url
> >
> > = code.mylinkbuilder(Parameters!whateverparameternameis.Value, 1) for
the
> > first one etc
> >
> > If you set those columns to not have a border then you won't notice the
> > additional columns that do not have any values.
> >
> > So you end up with two pieces of code, one that returns some verbiage,
the
> > other that returns a hyperlink. The verbiage is displayed, the hyperlink
is
> > used in the jump to url.
> >
> >
> > --
> > Bruce Loehle-Conger
> > MVP SQL Server Reporting Services
> >
> >
> > "JL" <JL@.discussions.microsoft.com> wrote in message
> > news:8D82D3E9-B2CB-43B1-9273-94654D70232F@.microsoft.com...
> > > Hmm...let me try this:
> > >
> > > Here is a sample of the data:
> > >
> > > col1 col2 col3
> > > ----
> > > John 713-333-5555 project1,project2,project3
> > >
> > > I'm trying to make RS create 3 hyperlinks according to the string in
"one"
> > > row. Each hyperlink links to an asp page.
> > >
> > > The url should look like:
> > > http://localhost/projects/getProject.asp?name=project1
> > >
> > > So for the second element in this string, the url would be:
> > > http://localhost/projects/getProject.asp?name=project2
> > >
> > > I don't want to break it into 3 rows. Is this doable in RS?
> > >
> > >
> > > "Bruce L-C [MVP]" wrote:
> > >
> > > > So you are trying to create a list of URLs that they would pick
from?
> > I'm
> > > > sure there is a way that this could be accomplished but you
definitely
> > need
> > > > to stop thinking about creating the html yourself. That is just not
the
> > way
> > > > that RS works. RS takes data, the report definition language
(defined in
> > > > XML) and then renders it in a variety of formats. HTML is just one
of
> > the
> > > > formats.
> > > >
> > > > I still might not understand what you are trying to accomplish but
if it
> > is
> > > > a list of hyperlinks you want then if you could put this in a stored
> > > > procedure where each hyperlink was in a row. Perhaps one column with
a
> > > > description and the other with the hyperlink. Only the description
would
> > be
> > > > shown and then the jump to URL would use the second column.
> > > >
> > > > --
> > > > Bruce Loehle-Conger
> > > > MVP SQL Server Reporting Services
> > > >
> > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> > > > > It still doesn't solve my problem. I want function to display 2
or
> > more
> > > > > hyperlinks in a single output, according to the number of elements
in
> > the
> > > > > comma delimited string. For example, if the input parameter is
> > > > > "value1,value2,value3,value4", the function will return 4
different
> > <A>
> > > > html
> > > > > tags. I don't think the "jump to url" can do it because it only
> > allows
> > > > one
> > > > > url. I'm sorry being pain in the butt. But I have looked thru
the
> > forum
> > > > and
> > > > > still has no clue how to approach it. Thx again. JL
> > > > >
> > > > > "Bruce L-C [MVP]" wrote:
> > > > >
> > > > > > Ahh, OK. I see what you are trying to accomplish. This is where
the
> > > > power of
> > > > > > expressions comes in. The jump to URL is still the way to go.
You
> > can
> > > > have
> > > > > > any expression you want to create the URL string. This means
that
> > you
> > > > can
> > > > > > have custom code that is doing this. So,
> > > > > >
> > > > > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> > > > > >
> > > > > > Just be sure that you return a string with the appropriate URL.
> > > > > >
> > > > > > --
> > > > > > Bruce Loehle-Conger
> > > > > > MVP SQL Server Reporting Services
> > > > > >
> > > > > >
> > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > > > > > I knew I could use the "jump to url" feature. But I attempted
to
> > > > create
> > > > > > the
> > > > > > > actual html because I planned to create a VB function in
"custom
> > code"
> > > > box
> > > > > > > that would take a delimited string input parameter, for
instance,
> > > > > > > "value1,value2,value3". Then the function would transform
this
> > string
> > > > > > into 3
> > > > > > > different hyperlinks:
> > > > > > >
> > > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > > > > > >
> > > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > > > > > ...
> > > > > > >
> > > > > > > And I wasn't sure if this was doable because I couldn't even
> > create
> > > > any
> > > > > > > custom html, like <br> or <hr>, in the report designer.
> > > > > > >
> > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > >
> > > > > > > > You are missing a concept here. You don't create tags in a
> > column.
> > > > You
> > > > > > > > create a column or use an existing one. Then do a right
mouse
> > click,
> > > > > > > > properties, extended properties, navigation, jump to url.
The
> > put in
> > > > > > > > ="http://www.microsoft.com/"
> > > > > > > >
> > > > > > > > as a test.
> > > > > > > >
> > > > > > > > I also then set the text blue and underlined so the user
knows
> > to
> > > > click
> > > > > > on
> > > > > > > > it.
> > > > > > > >
> > > > > > > > Once that is working for you then just assemble the
appropriate
> > > > string.
> > > > > > > > Again, you are not create html tags. You are creating a url
> > string.
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Bruce Loehle-Conger
> > > > > > > > MVP SQL Server Reporting Services
> > > > > > > >
> > > > > > > >
> > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > > > > > wow, the response is quick. I'm so impressed. I'm trying
to
> > > > create
> > > > > > > > <a></a>
> > > > > > > > > tags in a column. And it links to a non-report web page.
The
> > > > string
> > > > > > > > didn't
> > > > > > > > > get rendered as HTML. I kept getting "<a
> > > > > > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > > > > > >
> > > > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > > > >
> > > > > > > > > > Are you trying to do this from within a report and the
jump
> > to
> > > > url
> > > > > > > > > > property? If so, then where you are getting into trouble
is
> > that
> > > > you
> > > > > > are
> > > > > > > > > > trying to create the html, not just the url. What you
want
> > to do
> > > > is
> > > > > > > > create
> > > > > > > > > > exactly the string that you would put into the address
bar
> > of
> > > > IE.
> > > > > > You
> > > > > > > > are
> > > > > > > > > > not trying to create the underlying html.
> > > > > > > > > >
> > > > > > > > > > Do the following. Assign the expression to a textbox on
your
> > > > report.
> > > > > > You
> > > > > > > > > > should be able to copy and paste into IE and it should
work.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Bruce Loehle-Conger
> > > > > > > > > > MVP SQL Server Reporting Services
> > > > > > > > > >
> > > > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > > >
news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > > > > > I have looked through various posts, but I still don't
> > have a
> > > > > > solution
> > > > > > > > to
> > > > > > > > > > the
> > > > > > > > > > > problem I have in my hand. I attempted to make create
> > three
> > > > > > > > hyperlinks
> > > > > > > > > > from
> > > > > > > > > > > a comma delimited string output:
> > > > > > > > > > >
> > > > > > > > > > > value1,value2,value3
> > > > > > > > > > >
> > > > > > > > > > > I tried the following:
> > > > > > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
> > > > href='#'>")
> > > > > > &
> > > > > > > > > > "</a>"
> > > > > > > > > > >
> > > > > > > > > > > I'm getting the string I want but it doesn't get
rendered
> > into
> > > > > > HTML.
> > > > > > > > > > Please
> > > > > > > > > > > help. Thanks in advance.
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > >
> > > >
> > > >
> >
> >
> >|||Matrix can be an interesting solution. I know where to go from here now.
Thanks! You have been very helpful. Happy Thanksgiving.
"Bruce L-C [MVP]" wrote:
> No, there is no way to add custom html to RS. This has come up with people
> wanting to display html they have in a database as well. If you use web
> services you can do a whole lot more but it is correspondingly more
> difficult too.
> Given that the number of columns is not known then you have two choices that
> I see. One is to modify the report rdl. This has its own difficulties,
> including dealing with multi-user issues. With Version 2 with the new
> controls (webform and winform) this option would be easier than it is now.
> The other option is to use a matrix. Have you investigated using a matrix.
> You would still need to have an expression that shows the verbiage and the
> jump to URL.
> --
> Bruce Loehle-Conger
> MVP SQL Server Reporting Services
>
> "JL" <JL@.discussions.microsoft.com> wrote in message
> news:68626FC4-7D7B-4313-B777-F613E0A45837@.microsoft.com...
> > The unfortunate part is the number of projects is unknown. But anyhow, is
> > there a way to display custom html in RS? If yes, I'm sure there is a
> > workaround.
> >
> > "Bruce L-C [MVP]" wrote:
> >
> > > Depends. Can you count on a maximum number of projects? If so, add that
> many
> > > columns. Have the source for the column be an expression that calls your
> > > custom code where you pass it which one you want. So it would say
> project1
> > > project2 etc. Leave blank if you ask for project 3 and there is no
> project
> > > three. Then make it blue and underline, use the jump to url
> > >
> > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value, 1) for
> the
> > > first one etc
> > >
> > > If you set those columns to not have a border then you won't notice the
> > > additional columns that do not have any values.
> > >
> > > So you end up with two pieces of code, one that returns some verbiage,
> the
> > > other that returns a hyperlink. The verbiage is displayed, the hyperlink
> is
> > > used in the jump to url.
> > >
> > >
> > > --
> > > Bruce Loehle-Conger
> > > MVP SQL Server Reporting Services
> > >
> > >
> > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > news:8D82D3E9-B2CB-43B1-9273-94654D70232F@.microsoft.com...
> > > > Hmm...let me try this:
> > > >
> > > > Here is a sample of the data:
> > > >
> > > > col1 col2 col3
> > > > ----
> > > > John 713-333-5555 project1,project2,project3
> > > >
> > > > I'm trying to make RS create 3 hyperlinks according to the string in
> "one"
> > > > row. Each hyperlink links to an asp page.
> > > >
> > > > The url should look like:
> > > > http://localhost/projects/getProject.asp?name=project1
> > > >
> > > > So for the second element in this string, the url would be:
> > > > http://localhost/projects/getProject.asp?name=project2
> > > >
> > > > I don't want to break it into 3 rows. Is this doable in RS?
> > > >
> > > >
> > > > "Bruce L-C [MVP]" wrote:
> > > >
> > > > > So you are trying to create a list of URLs that they would pick
> from?
> > > I'm
> > > > > sure there is a way that this could be accomplished but you
> definitely
> > > need
> > > > > to stop thinking about creating the html yourself. That is just not
> the
> > > way
> > > > > that RS works. RS takes data, the report definition language
> (defined in
> > > > > XML) and then renders it in a variety of formats. HTML is just one
> of
> > > the
> > > > > formats.
> > > > >
> > > > > I still might not understand what you are trying to accomplish but
> if it
> > > is
> > > > > a list of hyperlinks you want then if you could put this in a stored
> > > > > procedure where each hyperlink was in a row. Perhaps one column with
> a
> > > > > description and the other with the hyperlink. Only the description
> would
> > > be
> > > > > shown and then the jump to URL would use the second column.
> > > > >
> > > > > --
> > > > > Bruce Loehle-Conger
> > > > > MVP SQL Server Reporting Services
> > > > >
> > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > news:2BB7F82E-BC6A-4B8A-B263-180AD08C2AB4@.microsoft.com...
> > > > > > It still doesn't solve my problem. I want function to display 2
> or
> > > more
> > > > > > hyperlinks in a single output, according to the number of elements
> in
> > > the
> > > > > > comma delimited string. For example, if the input parameter is
> > > > > > "value1,value2,value3,value4", the function will return 4
> different
> > > <A>
> > > > > html
> > > > > > tags. I don't think the "jump to url" can do it because it only
> > > allows
> > > > > one
> > > > > > url. I'm sorry being pain in the butt. But I have looked thru
> the
> > > forum
> > > > > and
> > > > > > still has no clue how to approach it. Thx again. JL
> > > > > >
> > > > > > "Bruce L-C [MVP]" wrote:
> > > > > >
> > > > > > > Ahh, OK. I see what you are trying to accomplish. This is where
> the
> > > > > power of
> > > > > > > expressions comes in. The jump to URL is still the way to go.
> You
> > > can
> > > > > have
> > > > > > > any expression you want to create the URL string. This means
> that
> > > you
> > > > > can
> > > > > > > have custom code that is doing this. So,
> > > > > > >
> > > > > > > = code.mylinkbuilder(Parameters!whateverparameternameis.Value)
> > > > > > >
> > > > > > > Just be sure that you return a string with the appropriate URL.
> > > > > > >
> > > > > > > --
> > > > > > > Bruce Loehle-Conger
> > > > > > > MVP SQL Server Reporting Services
> > > > > > >
> > > > > > >
> > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > news:ADAA9315-B8BA-4581-B806-89D071361D60@.microsoft.com...
> > > > > > > > I knew I could use the "jump to url" feature. But I attempted
> to
> > > > > create
> > > > > > > the
> > > > > > > > actual html because I planned to create a VB function in
> "custom
> > > code"
> > > > > box
> > > > > > > > that would take a delimited string input parameter, for
> instance,
> > > > > > > > "value1,value2,value3". Then the function would transform
> this
> > > string
> > > > > > > into 3
> > > > > > > > different hyperlinks:
> > > > > > > >
> > > > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value1">value1</a>
> > > > > > > >
> > > > > > > > <a href="http://links.10026.com/?link=webpage.asp?c=value2">value2</a>
> > > > > > > > ...
> > > > > > > >
> > > > > > > > And I wasn't sure if this was doable because I couldn't even
> > > create
> > > > > any
> > > > > > > > custom html, like <br> or <hr>, in the report designer.
> > > > > > > >
> > > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > > >
> > > > > > > > > You are missing a concept here. You don't create tags in a
> > > column.
> > > > > You
> > > > > > > > > create a column or use an existing one. Then do a right
> mouse
> > > click,
> > > > > > > > > properties, extended properties, navigation, jump to url.
> The
> > > put in
> > > > > > > > > ="http://www.microsoft.com/"
> > > > > > > > >
> > > > > > > > > as a test.
> > > > > > > > >
> > > > > > > > > I also then set the text blue and underlined so the user
> knows
> > > to
> > > > > click
> > > > > > > on
> > > > > > > > > it.
> > > > > > > > >
> > > > > > > > > Once that is working for you then just assemble the
> appropriate
> > > > > string.
> > > > > > > > > Again, you are not create html tags. You are creating a url
> > > string.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Bruce Loehle-Conger
> > > > > > > > > MVP SQL Server Reporting Services
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > > news:4D114C71-70BE-44EB-BBC1-5657B54DB1A2@.microsoft.com...
> > > > > > > > > > wow, the response is quick. I'm so impressed. I'm trying
> to
> > > > > create
> > > > > > > > > <a></a>
> > > > > > > > > > tags in a column. And it links to a non-report web page.
> The
> > > > > string
> > > > > > > > > didn't
> > > > > > > > > > get rendered as HTML. I kept getting "<a
> > > > > > > > > > href='somewebpage.asp?c='123'>123</a>". Thanks again.
> > > > > > > > > >
> > > > > > > > > > "Bruce L-C [MVP]" wrote:
> > > > > > > > > >
> > > > > > > > > > > Are you trying to do this from within a report and the
> jump
> > > to
> > > > > url
> > > > > > > > > > > property? If so, then where you are getting into trouble
> is
> > > that
> > > > > you
> > > > > > > are
> > > > > > > > > > > trying to create the html, not just the url. What you
> want
> > > to do
> > > > > is
> > > > > > > > > create
> > > > > > > > > > > exactly the string that you would put into the address
> bar
> > > of
> > > > > IE.
> > > > > > > You
> > > > > > > > > are
> > > > > > > > > > > not trying to create the underlying html.
> > > > > > > > > > >
> > > > > > > > > > > Do the following. Assign the expression to a textbox on
> your
> > > > > report.
> > > > > > > You
> > > > > > > > > > > should be able to copy and paste into IE and it should
> work.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > Bruce Loehle-Conger
> > > > > > > > > > > MVP SQL Server Reporting Services
> > > > > > > > > > >
> > > > > > > > > > > "JL" <JL@.discussions.microsoft.com> wrote in message
> > > > > > > > > > >
> news:9F515492-05D8-41A1-8DA2-662425254001@.microsoft.com...
> > > > > > > > > > > > I have looked through various posts, but I still don't
> > > have a
> > > > > > > solution
> > > > > > > > > to
> > > > > > > > > > > the
> > > > > > > > > > > > problem I have in my hand. I attempted to make create
> > > three
> > > > > > > > > hyperlinks
> > > > > > > > > > > from
> > > > > > > > > > > > a comma delimited string output:
> > > > > > > > > > > >
> > > > > > > > > > > > value1,value2,value3
> > > > > > > > > > > >
> > > > > > > > > > > > I tried the following:
> > > > > > > > > > > > ="<a href='#'>" & replace(Fields!cdString,",","</a>,<a
> > > > > href='#'>")
> > > > > > > &
> > > > > > > > > > > "</a>"
> > > > > > > > > > > >
> > > > > > > > > > > > I'm getting the string I want but it doesn't get
> rendered
> > > into
> > > > > > > HTML.
> > > > > > > > > > > Please
> > > > > > > > > > > > help. Thanks in advance.
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > > >
> > > > >
> > >
> > >
> > >
>
>