SSRS Pass Parameter via URL - reporting-services

I have the following report URL:
/Reports/Pages/Report.aspx?ItemPath=%2fcMIS%2fgradebookProfileView
I'm trying to pass the parameter TG via the URL so it looks like so:
/Reports/Pages/Report.aspx?ItemPath=%2fcMIS%2fgradebookProfileView&TG=10BEE%20C
However this doesn't work, how can I make this work so that it automatically enters 10BEE C into the parameter textbox.

You can't use the /Reports/ front end to pass parameters, you have to use the web services end point to pass the parameter (normally at /ReportServer/). It should still present the Report Viewer interface just like it does on the Reports url.
But your URL would become:
/ReportServer/Pages/ReportViewer.aspx?%2fcMIS%2fgradebookProfileView&rs:Command=Render&TG=10BEE+C
Two things of note. The URL parameter name must match the report parameter name, not the prompt. Also, spaces are encoded to + instead of %20.

Related

JRDataset property CSV file

I have a build up a report with a .CSV input file as DataAdapter. After that I needeed a table to put some data into a it and a linked dataset. The problem is: if I leave blank the section "Default Data Adapter" in my Dataset1, no data will be displayed. In fact, to fix this report I had to export my DataAdapter as myDataAdapter.xml and then put this file in the section "Default Data Adapter" of my Dataset1 (as shown in the attached picture).
Working with database I have never set up this property.
Is there a way to pass this property as Param? (I have a java code in which I call jasperReport and I want to pass this object dinamically).
Or is there a way the report works without setting this property?
In the section Table>Dataset I have this situation:
where I set up JRDatasource expression, but it is not working...
I have one more problem. Can I set dinamically the location of my .csv inside the DataAdapter.xml?
Is it possible to implement "myDataAdapter.xml" from java code and pass it to the report??
Thank you in advance!
In Java code you can set properties on the net.sf.jasperreports.engine.JasperReport instance like in this sample here, from the official repository. The relevant code looks like this:
...
JasperReport jasperReport = ...
...
jasperReport = (JasperReport)JRLoader.loadObjectFromFile("build/reports/ExcelXlsxQeDataAdapterReport.jasper");
jasperReport.setProperty(DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION, "data/XlsxQeDataAdapter.xml");
...
The property of interest is net.sf.jasperreports.data.adapter and is stored in DataAdapterParameterContributorFactory.PROPERTY_DATA_ADAPTER_LOCATION
The data adapter file is a convenience method to pass a series of parameters from which a net.sf.jasperreports.engine.data.JRCsvDataSource is built. If you want to skip passing this property, you would have to manually provide the built-in parameters listed in the net.sf.jasperreports.engine.query.JRCsvQueryExecuterFactory.CSV_BUILTIN_PARAMETERS.

Taleo extract process add blank field in output CSV file

I am using Taleo Connect Client to export data from Taleo. I encountered two questions:
How can I add blank columns to an output CSV file?
For example, try to add ColumnBlank1 between Column_FirstName and Column_LastName.
Column_FirstName|ColumnBlank1|Column_LastName
John||Lee
Adam||Jackson
How can I set default value like "N" for one field?
DBaluke Huang's answer was correct, but he left out some details. Adding the full solution for others who might need this too.
To export a blank or fixed string value in a column using TCC (Taleo Connect client) do the following:
Open your Export
Click the projections tab
Click the add button
Click Projection Function
Choose the Replace Function
Click ok
In the First Parameter Section: In the Value box, add any string field
from your list on the entity tab. The Data Type should be Field.
In the Second Parameter Section, In the Value box, add the same field
from Parameter 1 value box. The Data Type should be Field.
In the Third Parameter section, In the value box, enter no value for
blank or enter the fixed string you want in all records.
Then change the data type to string in this section.
For those unfamiliar with the replace function you are looking for the string Parameter1.Value in Parameter2.value and then replacing all instances where the string is found with parameter3.value
You can export a blank field with <quer:string/>.
<quer:projection alias="Blank" xmlns:quer="http://www.taleo.com/ws/integration/query">
<quer:string/>
</quer:projection>
Steps
Open your export in Taleo Connect Client.
Open the General tab and set the Export mode to "CSV-report".
Open the Projections tab.
Click Add.
Select Add a complex projection and click OK.
Under Complex projection, enter the following:
<quer:projection alias="Blank" xmlns:quer="http://www.taleo.com/ws/integration/query">
<quer:string/>
</quer:projection>
Save your changes.
Example:
<quer:query productCode="RC1704" model="http://www.taleo.com/ws/tee800/2009/01" projectedClass="Candidate" locale="en" mode="CSV" csvheader="true" csvdelimiter="|" largegraph="true" preventDuplicates="false" xmlns:quer="http://www.taleo.com/ws/integration/query">
<quer:subQueries/>
<quer:projections>
<quer:projection>
<quer:field path="FirstName"/>
</quer:projection>
<quer:projection alias="Blank">
<quer:string/>
</quer:projection>
<quer:projection>
<quer:field path="LastName"/>
</quer:projection>
</quer:projections>
<quer:projectionFilterings/>
<quer:filterings/>
<quer:sortings/>
<quer:sortingFilterings/>
<quer:groupings/>
<quer:joinings/>
</quer:query>
Results:
FirstName|Blank|LastName
John||Lee
Adam||Jackson
Jane||Doe
Notes:
If you get a SAX parsing error when running the export, make sure your Export mode is set to "CSV-report". (Appears as mode="CSV" in source)
When adding a complex projection in TCC, you must include xmlns:quer="http://www.taleo.com/ws/integration/query", or else TCC will call your source "invalid". However, it is not required when editing your export's source directly outside of TCC.
I resolved the issue by:
Add a function projection in Projections. Set your Alias. Set First parameter value as whatever field that available. Set the second parameter's value as same as the first parameter. Change Third parameter's value as "blank" and set Data type as String.
Same step as the first question, and set Change Third parameter's value as "N".

how to bind input text and combo box in angularjs 1

I have two controls in a form.
zip code - (input type text) and city - (select options)
The back-end rest service sends json object which will contains zip codes and city names. I want to change city when zip code changed and vice versa using angularjs1. Also validate zip code with json object.
please help me...
Alright. So I am assuming that you have a serverside script from which you can get both city from pincode and pincode from city
Now you have got 2 controls in your view.
1) Input Box
2) Combobox
Now The easiest way according to me is that you should make a function that is called on ngChange event of both the controls.
That function would make a request to your server and fetch the associated data and feed the data to the other control.
Now when you populate the controls internally through the controller, it might again fire an ngChange function. So in each ngChange function you must have a reference of the desired values for them. That can be done by storing both the latest values received from server side into a local variable and checking it each time the function is called.
I believe this would solve your problem.
----------------Update----------------
As mentioned in the comment, the SPA shall not be sending request to the server during the execution. It shall simply send the json at the end.
So for that its more convenient. Simply make 2 different functions, 1 getCityFromPincode(pincode) and 2 getPincodeFromCity(city)
Now you can easily do your operations in javascript on the basis of the values that you will get from the ngChange() function.
Just call the function getCityFromPincode in the ngChange function of your CITY INPUT Control and similarly for the other one.
You would probably make it through with this approach.

How can I pass '#' as part of a parameter in html?

I have an html form that I desire to be pre-populated with variables that are passed as parameters within the URL. Basically imagine that I am typing this string directly into the browser.
When I pass a variable that contains '#' however, it is read as syntax different from the string and the full variable is not copied into the form.
Example: https://form.domain.com/formname??variable1=www.variabledomain.com/#/h7Y6F53/
When I enter this into my browser, variable1 pre-populates only with "www.variabledomain.com/". I'd like it to pre-populate with "www.variabledomain.com/#/h7Y6F53/".
What can I do differently?
Cheers

GET and POST values in the same link

I want something like this:
link
GET and 2x POST in hyperlink. How can I do that? Nothing wants to work
I have a GET array in PHP and I want to generate a link which leads to the correct url to give me those GET variables.
You can't have 2 GET variables with the same name. You can arrange them into an array as follows:
link
Just for clarification, this is still a GET request, links cannot normally produce a POST request, nor you should try to achieve that not-normally.
EDIT: To answer OP's calrification.
If you have a $_GET array, and you want to generate a link to get you there, you can use http_build_query()
I don't think you understand what GET and POST means in the HTTP world. Any items you put on a query string of a URL are GET parameters, you can't have 2 with the same name. POST parameters are sent as a part of the request, not as a query string on the URL.
GET and POST are http operations.
Sending values by using the ? as a separator in the url is different but related. eg:
foo.com/page.php?val1=1&val2=2
The values are called Query String values.
For GET operations, values are sent as a query string values. For POST operations, the values are sent in the body of the POST request. This is why POST must be used when a lot of data is being sent to the server. (Query strings have a maximum length, HTTP requests do not.)
You can do a POST operation to a url that includes query string values. This is more common with Ajax requests but can be done in a form as well. Just set the action url to something like index.php?val1=1&val2=2 the form's (additional) values will be sent as the http body. Remember to set method="post" in the form.
Note that you will need to create the query string yourself in this example, including escaping it properly.
Repeating value names in the query string values
Usually this causes both values to be sent, but the server overwrites the variable and ends up only presenting the last one to the client software.
So if you use a url such as
<a href="http://localhost/index.php?get=abc&post=cde&post=efg">
// It will be decoded by php and most server-side frameworks as
set get to abc
set post to cde
set post to efg
Result: 2 variables, get and post
There is nothing in the HTTP standard that says you can't send two query string params with the same name. However, you won't be able to use $_GET to retrieve these values; $_GET will pick up the last one. Instead, you'll have to manually parse $_SERVER['QUERY_STRING']. It's not that hard and I've done it a number of times when PHP has to handle a URL pattern generated by a third-party tool. If you're feeling really fancy you can have your query-string parse routine generate a $_GET member as an array if more than one instance of that member is encountered.