SQL Server Report Builder for Shipping Labels, One per page - sql-server

I am trying to replace our outdated shipping label program with a SQL Server report, and I am very green when it comes to doing this. I am testing using an ODBC connection with some sample data. I have created a DataSource which is a simple "SELECT * FROM LABELLIST" statement. Each row in this table contains ONE label.
In the DataSet I have each column that is needed (To, From, Carrier, PO, etc) listed. I have dragged the fields onto a blank report and in the expression it is set to "=Fields!FROMADDRESS.Value". As mentioned earlier, each ROW is a new label, but when previewing, I only get the first record as a label. What do I have to use (tablix, matrix, list, grouping?) to accomplish this and how?. I'm not sure how to search for this answer online and was hoping to get a reference page to read on how to do it. Everything I've found pertaining to labels or "row to page mapping" is showing how to print multiple labels/rows to one page and not each row to a single page.
EdIt: to clarify, each label is being sent to a zebra thermal printer and follows a similar format to a UPS or FedEx shipping label. Each row in the table will be one shipping label.

The key for you to understand is how SSRS handles Page Breaks. I have a similar answer here.
Whatever formatting you have for your labels should be placed inside a Rectangle.
Place this rectangle into a table with one cell that is grouped by label ID.
Set the group to page break between instances.
This makes the report repeat one instance of the label on each page. It can be a little tricky to understand at first, but it is a very useful trick. I have used this for reports like invoices where we needed one on each page.

Related

SSRS - Can Individual Columns in a Grouped Row be Hidden Without Hiding the Entire Row?

I am using SSRS 2014, aka Report Builder 3, to develop reports at work. The one I'm currently working on requires a "user-level view" and a "supervisor-level view". The difference between the views is that non-supervisory users don't need to see the first three columns and should only see data related to themselves, not other users. Supervisors do need to see everything, but also want to be able to limit what's on-screen at any given time.
I can read the user's role and set visibility based on that. The problem is that I can't hide the columns because the option is not available for them. The option IS available for the columns I'm not grouping on, so I assume that this is because the rows are being grouped on those first three columns. Is there a way around this?
As far as I know there is no nice way of doing this. You can actually hide columns that are not on the details rowgroup even though the right-click context menu does not show the option.
If you left click on the column head to select the entire row, then use the properties panel you can set the Hidden property to an expression.
In fact, what you are actually doing is setting all the textbox's hidden properties.
Unfortunately this literally just hides the textboxes so it just leaves a blank area. This might not be too bad if its at the start or end column but if it was in the middle there would be a gap.
In my sample report with the column not hidden
and then with it hidden
Sometimes you just have to rethink how you present the data. In my example, for instance, I could move the data I want to hide (Year) to the next column across but still in the same row group, then delete the first column. Like this...
Now when I run the report with everything visible it looks like this.
Now, I set the ROW visibility of the row with the [Year] field and when I run the report I get this...

SQL Report Builder: How to merge groups?

I have two reports, one I created and another I'm using as kind of a guide/template. In the template report, the column grouping appears to be "merged", but that's probably not the right term for this scenario (hence my trouble in Googling this further). Here is what my template looks like:
TEMPLATE
However, mine looks a little different. I have both my year and month grouping, but if I merge them (by selecting both cells and click Merge inside the Layout section), I lose the "month" group. Here's how mine looks:
MINE
So how do I mimic the style of the template? I see that the two groups in my template both have parentheses around them, whereas in mine, the parentheses only exist for my child group. Is that my problem? What does this signify?
For further clarity, here's essentially what I'm trying to get the output to look like (column for 8/2019, column for 9/2019, etc.)
VERSUS
What I have (column for year, sub-column for month)
I was prepared to tell you that you must've gotten a warning message before your group disappeared. But to my surprise, the group disappears just like you said it would.
Instead of merging the fields, follow these steps:
Select the row that contains the year textbox.
Right-click, and select "delete rows"
When prompted, mark "Delete rows only".
Enter the textbox that has '[month]'
Place your cursor after '[month]'.
Type in a "/".
Without leaving focus from inside the box, right-click and select "Create Placeholder".
In the properties box, set the value to Fields!year.Value.
As for the parentheses around the group names. Seems that it may have to do with the fact that the group isn't represented in a particular way in the structure. You can read here to learn a little more. But the report always works as I expect with or without them so I don't pay them much attention.

Repeat header in SSRS with Row Group in body

I have designed simple SSRS report, the thing is like I have data which is splitted into master details using sub-reports, and I have kept these into a Row Group control in body part of main report.
Here the header which I placed in main report is getting repeated only as per row and it is not visible if a details of specific records is gets spilled over next page.
How can I show the header on each and every page irrespective of the row (record)?
Please find below screen shot for details.
Please see link to answer below:
You'll want to select the the Advanced Mode where you can select row detail. Here, you should be able to select the Static row columns. On the right in the Properties, you'll want to set "RepeatOnNewPage" to True
SSRS How to repeat the table header on each page in print preview

Gather inserted text values from multiple rows in a report

I'm currently struggling with Oracle Apex.
I'm trying to create an application which enables customers to place their order. Therefore I create a report which lists the available products. Furthermore the report contains a column (the SQL query for that is simply '0' as "Quantity") which displays a text box. In this text boy the customer should be able to insert the required quantity.
I've create a screenshot to make it easier to follow me:
After the customer has fill out the form, the "Place Order" button will purchase the wished items then.
My question is now, how is it possible to read out in which text boxes did the user filled in a number and also to which product belongs it!
An easier solution would be to recreate the region but choose Form Region and then Tabular Form Region and then the wizard will help take care of the DML for you. But you need to use specific table columns for this to work.
To answer your question more directly - the input items defined in reports that are posted to the server can be accessed in PL/SQL as a set of "Global Arrays". These are defined as PL/SQL tables in the package apex_application with the names g_f01 through g_f50.
To be sure which of these arrays to use for the quantity text box you can look at the html of the page for the name attribute of the input tag. If it is f01 then you would be able to process the results by accessing each position or element in apex_application.g_f01.
To link the input with the table you would need some sort of key. If you use the wizard to build a Tabular Form all this headache is taken care of for you though.

Combining multiple datasets in PowerPivot

Essentially what I want to do is to create an interactive dashboard using slicers in Excel 2010 PowerPivot.
I have 3 different data sets from a sql database which share "dimensions."
Incoming Orders
Sales Order Backlog - essentially what products are currently in production and waiting
to ship or invoice
Invoiced Sales
Each data set shares certain "dimensions" such as Customer, Product, Time Period, Category, etc.
I want to have a specific chart for each of the business processes and have the slicers filter each chart at the same time. When someone chooses ACME Rockets as a customer, I want all three charts to update and show only information about ACME Rockets.
I could probably accompish this wiht a union statement and then hard filter each chart only to show it's subsection of the data, but I was hoping for something more intuitive.
Can anyone point me toward how I would accomplish this with PowerPivot?
You can create four charts at once and delete one and they will all be connected to the same slicers by default. Or, if you have already created three separate charts and have one slicer you want to connect them all to:
Select the chart not connected to the slicer.
On the PowerPivot ribbon, click the PowerPivot Window button.
Click the "Analyze" tab
Click on "Insert Slicer"
click on "Slicer Connections".
Put a check in the box next to the slicer(s) you want to connect your chart to.
Repeat for each chart.
It the tables are related to the fact tables in the underlying model then it should be really easy to have shared slicers. What you have to do is "connect" the slicers representing shared dimensions to all pivottables/charts that you are interested in.
Example:
1. insert pivot chart on sheet1
2. add a shared dimension attribute to the slicers pane
3. insert another pivotchart to the same sheet (sheet1)
4. add any measure from another fact that you are interested in slycing to the values pane for that chart
5. select the slicer representing the shared dim attribute
6. click on the "Options" tab and then on "PivotTable Connections" or right-click on the slicer and click "PivotTable Connections"
7. put a checkbox on all pivottables that you want for this slicer to "slice" :) - in this example it would be "PivotTable1 - Data for Sheet1 Chart1" or something like that
Additionally check a great powerpivot resource by Rob Collie (#powerpivotpro) at http://powerpivotpro.com for examples of using a main sheet with all slicers connected to all other pivots on other sheets.
Best regards,
#HrvojePiasevoli
Are you using PowerPivot 2010 or PowerPivot 2012? What kind of data source is it?
I would write a union when importing my data sets. I see you merging the three data sets into one fact table with a 'status' category containing 'incoming', 'backlog', 'invoiced'. You need a field to filter on, i.e. status. This will be based on the dataset the record is sourced from.
Do you want all the charts on the same sheet? In that case, choose the 'four charts' option, and delete one of the charts. If you add a slicer, it will automatically apply to all the charts on the sheet. Filter each chart by a 'status' type as described above. Create a slicer for 'customer'. That should give you what you described above.
Shout if this didn't answer your question.
In addition to what's already been said, if you are using PowerPivot 2012, be sure to do the following:
1) Use the new diagram view to verify that all of the appropriate relationships were detected and created on data import
2) Add or update any valid relationships between the tables in PowerPivot
Note: you may have to 'fix' your source data so that the joined results conform to business requirements. You can just write a T-SQL query check to verify prior to import, or you could use SSIS with Data Profiling Task and then view the output of the profile in the Data Profile Viewer tools (listed under SSIS) in the start menu.

Resources