Professional Documents
Culture Documents
0 – Version 2
The following document is a guide for creating your own reports with the Report Builder 3.0 or adjusting already existing
reports to your individual requirements.
The detailed description refers to the imos Version 11.0 SR2 and the Report Builder 3.0.
Content
1. Technical Background
The reports are based on the SQL Server Reporting Services (SSRS).
SQL Server Reporting Services (SSRS) are a server based report generator system from Microsoft which can be used in a
Client/Server environment with a report server or “local” (without report server). A report server is not installed with imos.
The reports are exclusively edited locally.
Different kinds of interactive or previously prepared reports can be used for the preparation and productive generation.
Reports in imos 11.0 SR1 are applied via the Report Builder 3.0 and must be also edited there.
Reports
1BAdministration 6
2. Administration
2.1 imos DB
The database applied for imos has several elements which are important for administrating the reports.
1) Tables
2) Possible stored procedures
3) Views
2.1.1 Tables
Table Explanation
CMSBOMLINK The report principles displayed in the Element Manager are administrated via the imos table
CMSBOMLINK.
BINDATA The table BINDATA saves the actual report file as Blob (Binary Large Object).
Reports
1BAdministration 7
2.1.2 Orderlist
According to the program, a parameter is transmitted to the ReportViewer in the Organizer to transmit the PROADMIN.IDs
of the selected orders (e.g. 199, 209, 204,1366).
If you open a report for editing in the Report Builder to test these, one or several order IDs (PROADMIN.IDs) must be set.
Reports
1BAdministration 8
For finding out which order name has which ID, the following command must be entered in the SQL Management Studio:
Enter the searched order names for <PROADMIN.NAME> (e.g..: 'Kitchen_modern). In this example it would be ID “143”.
Reports
1BAdministration 9
The ID found can be now entered in the field ORDERLIST in the Report Builder and then confirm with ENTER. The Report
is executed now and shows the corresponding data of the corresponding order.
If it is not possible to
change in the preview,
then the data source
might have to be
adjusted. (see chapter
6.1).
It is possible to enter several IDs in the field as well. Thereby the IDs must be entered by separating with a comma and
without blank spaces. (e.g. 143,155,156)
Then the corresponding orders are processed sequentially and displayed on separate sheets in the preview.
Reports
1BAdministration 10
This means if an existing report has to be edited, then it must be led out via the function Export . By doing this, a
RDL file is created!
If the RDL is marked by double clicking, then it is opened directly in the Report Builder.
After completing the modifications, the modified report must be led into the Element Manager again via Import .
Reports
1BAdministration 11
Function Explanation
Comment Free editable text box.
Show Report in With an activated function the report is loaded in the Organizer Registry Dashboard.
Dashboard
Only one report can always be activated.
Category Groups the reports in the respective nodes in the report-tree in the Organizer and in imos.
One of the following options can be selected:
• Quotations
• Bill of material
• Calculation lists
Output Screen(Preview):
When generating the report, the dialog with the report appears.
PDF-Export:
When generating the report, a dialog does not appear and therefore the report is output in
the PDF-Format in the <imos>\TEMP directory.
Word-Export:
When generating the report, a dialog does not appear and therefore the report is output in
the Word-Format in the <imos>\TEMP directory.
Reports
1BAdministration 12
Excel-Export:
When generating the report, a dialog does not appear and therefore the report is output in
the Excel-Format in the <imos>\TEMP directory.
Mode Standard:
The report is shown in the page layout (paper formats).
Interactive:
The report is not shown in the limited paper format, but interactive elements such as
expanding and collapsing nodes are applied.
Reports
2BOutput 13
3. Output
3.1 imos CAD
Reports
2BOutput 14
3.2 Organizer
In the Organizer the reports can be output via the same named function in the menu
and via the registry dashboard.
Reports
3BReport Builder 15
4. Report Builder
4.1 User interface
The Report Builder is divided into the following sections:
Menu
Design surface
Report data
pane
Properties pane
Grouping pane
Reports
3BReport Builder 16
There you can add the report elements groups, expressions, parameters, filters, actions, visibility and formatting.
1 and 3.) Modify the header and footer properties (e.g. frame- and filling colour), by right clicking outside of the report
elements on the white surface of the Design Surface and then click on page header properties or footer properties.
2.) Modify the properties of the report‘s main part (e.g. frame- and filling colour), by right clicking outside of the report
elements on the white surface of the Design Surface and then click on properties of the report’s main part.
Modify the properties of the report elements, by right clicking on the elements and then click on the properties.
4.) Modify the properties of the report (e.g. page set-up), by right clicking on the blue surface around the design surface and
then click on the report properties.
Reports
4BCreate New Report 17
Reports
4BCreate New Report 18
Reports
4BCreate New Report 19
Reports
4BCreate New Report 20
With a right mouse click on the entry data source in the left window, call the
function add data source.
Reports
4BCreate New Report 21
After that the database further down can be selected via the
pulldown menu.
Reports
4BCreate New Report 22
For defining the datasets, the entry datasets must be marked with a right mouse click and then the function add dataset
must be called.
2
Now the dialog dataset properties opens.
Reports
4BCreate New Report 23
The name cannot be identical with the name of the data range.
In imos it is not possible to use an enabled dataset from a report server because a report server is not installed in imos.
4. Select as query type text so that queries can be executed and data can be called from the database.
5. If text has been set as query type, then a window below appears in which the query can be entered.
The following queries are SELECT statements. The following statements specify the source of the Main-Select.
Reports
4BCreate New Report 24
-- Uncomment the following lines and insert PROADMIN.IDs to test the statement in SQL-Management-Studio
--
##################################################################################################
###
--Declare @ORDERLIST NVARCHAR (max)
--SET @ORDERLIST = '<PROADMIN.ID>,<PROADMIN.ID>,<PROADMIN.ID>,...';
With Orderlist AS
(
SELECT
ID AS PROADMIN_ID,
NAME
FROM PROADMIN
WHERE CHARINDEX( ',' + (CAST(PROADMIN.ID AS nvarchar(5))) + ',', ',' + @ORDERLIST + ',' ) != 0
)
select
Orderlist.PROADMIN_ID,
PROADMIN.CNT AS ORDERCNT,
PROADMIN.NAME AS ORDERNAME,
PROADMIN.COMM,
PROADMIN.ARTICLENO,
PROADMIN.EMPLOYEE,
PROADMIN.DATECREATE,
(--GET CUSTOMER
(SELECT NACHNAME FROM CMSCONTACTS
WHERE (CAST(CMSCONTACTS.ID AS uniqueidentifier) =(SELECT PROADMIN.LEVEL_1 FROM
PROADMIN WHERE ((PROADMIN.ID = Orderlist.PROADMIN_ID) AND (SELECT PROADMIN.LEVEL_1 FROM
PROADMIN WHERE PROADMIN.ID = Orderlist.PROADMIN_ID) <> ''))))+', '+
(SELECT VORNAME1 FROM CMSCONTACTS
WHERE (CAST(CMSCONTACTS.ID AS uniqueidentifier) =(SELECT PROADMIN.LEVEL_1 FROM
PROADMIN WHERE ((PROADMIN.ID = Orderlist.PROADMIN_ID) AND (SELECT PROADMIN.LEVEL_1 FROM
PROADMIN WHERE PROADMIN.ID = Orderlist.PROADMIN_ID) <> ''))))
Reports
4BCreate New Report 25
) AS CUSTOMER,
PROADMIN.CLIENT,
PROADMIN.PROGRAM,
PROADMIN.CONTYPE,
PROADMIN.DESIGN,
PROADMIN.SOURCE,
PROADMIN.SHIPPING_DATE,
PROADMIN.DELIVERY_DATE,
PROADMIN.INFO1,
PROADMIN.INFO2,
PROADMIN.INFO3,
PROADMIN.INFO4,
PROADMIN.INFO5,
IDBINFO.CPID AS ARTNAME,
IDBINFO.BOMFACTOR,
IDBGPL.ID,
IDBGPL.CNT,
IDBGPL.NAME1,
IDBGPL.TYP,
IDBGPL.CPID,
IDBGPL.ISPEC,
IDBGPL.MATID,
IDBGPL.MATNAME,
IDBGPL.MATCAT,
(SELECT MAT.TEXT from MAT WHERE MAT.NAME=IDBGPL.MATID) AS MAT_DESC,
(SELECT MAT.BESTELLUNG from MAT WHERE MAT.NAME=IDBGPL.MATID) AS MAT_ORDERNR,
(SELECT MAT.PRODUCER from MAT WHERE MAT.NAME=IDBGPL.MATID) AS MAT_PRODUCER,
IDBGPL.MATGROR,
IDBGPL.FLENG,
IDBGPL.FWIDTH,
IDBGPL.FTHK,
IDBGPL.CLENG,
IDBGPL.CWIDTH,
Reports
4BCreate New Report 26
IDBGPL.CTHK,
IDBGPL.RLENG,
IDBGPL.RWIDTH,
IDBGPL.RTHK,
IDBGPL.SURFTID,
IDBGPL.SURFBID,
IDBGPL.SURFTGROR,
IDBGPL.SURFBGROR,
IDBGPL.SURFTLEN,
IDBGPL.SURFTWIDTH,
IDBGPL.SURFTTHK,
IDBGPL.BARCODE,
IDBGPL.PARTPOSSTR,
IDBGPL.COLORTOP,
IDBGPL.COLORBOTTOM,
IDBGPL.AREA,
IDBGPL.NCNO,
IDBGPL.KMS,
IDBGPL.PRICE,
IDBGPL.WEIGHT,
--- <FLAGS ---
IDBGPL.BOM_FLAG,
IDBGPL.NC_FLAG,
IDBGPL.CUT_FLAG,
--- /FLAGS> ---
IDBATT.ATT_VALUE,
IDBATT.ATT,
IDBPRF.ID ASIDBPRF_ID ,
IDBPRF.PRFNAME,
IDBPRF.PRFNO,
IDBPRF.PRFID,
IDBPRF.RENDERP,
IDBPRF.PRFCPU,
Reports
4BCreate New Report 27
IDBPRF.PRFLEN,
IDBPRF.PRFHGT,
IDBPRF.PRFTHK,
IDBPRF.PRFHGTFIN,
IDBPRF.PRFTHKFIN,
IDBPRF.HEIGHT,
IDBPRF.PRFWS,
IDBPRF.PRFCOL1,
IDBPRF.PRFCOL2,
(SELECT PROFIL.TEXT from PROFIL WHERE (PROFIL.NAME=IDBPRF.PRFNAME) AND (PROFIL.NAME <> 'PRF_00')
AND (PROFIL.THK = IDBPRF.PRFHGTFIN) ) AS PROFIL_DESC,
(SELECT PROFIL.BESTELLUNG from PROFIL WHERE(PROFIL.NAME=IDBPRF.PRFNAME) AND (PROFIL.NAME <>
'PRF_00') AND (PROFIL.THK = IDBPRF.PRFHGTFIN) ) AS PROFIL_ORDERNR,
(SELECT PROFIL.SUPPLIER from PROFIL WHERE(PROFIL.NAME=IDBPRF.PRFNAME) AND (PROFIL.NAME <>
'PRF_00') AND (PROFIL.THK = IDBPRF.PRFHGTFIN) ) AS PROFIL_SUPPLIER
from
Orderlist
inner join PROADMIN ON Orderlist.PROADMIN_ID=PROADMIN.ID
inner join IDBGPL ON PROADMIN.NAME=IDBGPL.ORDERID AND IDBGPL.TYP <> 59
inner join IDBGRPS ON IDBGPL.ID=IDBGRPS.ID and IDBGPL.ORDERID=IDBGRPS.ORDERID
inner join IDBPRF ON IDBGPL.ID=IDBPRF.ID and IDBPRF.ORDERID=IDBGPL.ORDERID
left join IDBATT ON IDBPRF.ID=IDBATT.ID and IDBPRF.ORDERID=IDBATT.ORDERID
left join IDBINFO ON IDBINFO.ID=IDBGRPS.HIGHARTID and IDBINFO.ORDERID=IDBGRPS.ORDERID
Reports
4BCreate New Report 28
In the option fields the fields are listed which have been defined with the Select query.
Reports
4BCreate New Report 29
A condition can be defined via the option filter so that only the parts, which are also transferred to the bill of material lists,
are displayed in the report.
1
2
3
4
The available expressions are defined via the stored query from the option query.
BOM_FLAG is an entry from the IDBGPL and defines if the part is transferred or not to the bill of material.
• 1= Yes
• 0= No
2. Select “=“as Operator
3. And enter “1“ for the value.
Thereby only the parts, which are also transferred to the bill of material list, are output.
Reports
4BCreate New Report 30
Afterwards drag out a rectangle in the middle section by moving the mouse to create the table.
Reports
4BCreate New Report 31
It is possible when creating the report in every stage to display a preview of the current status by clicking on the function
Run in the registry root.
Thereby, the view of the dialog changes and the preview window opens.
Reports
4BCreate New Report 32
1. To fill the list with values, the parameter ORDERLIST value must be filled (refer chapter 2.1.2)
2. When modifying the design view, the button update must be pressed once before changing to the preview.
3. For viewing the print view of the report, use the function page layout.
For further editing the list, change to the design view again via Design.
Reports
4BCreate New Report 33
Reports
4BCreate New Report 34
1. Variant:
Öpen the node Datasets on the left side in the report data range.
Select NAME1 in the list of the attributes and drag this to the first column while keeping the mouse button pressed.
Reports
4BCreate New Report 35
2. Variant:
The second possibility for filling columns with report data is to go with the mouse over
the bottom data field and then click on the small table field.
By doing this, a list opens with the selection of data sets as well.
Now proceed in the same way for the remaining columns and fill them with the following values:
Reports
4BCreate New Report 36
If you change to the preview via Run, the following picture appears:
Reports
4BCreate New Report 37
To do this, click on the arrow next to column group in the grouping range and then activate the extended mode.
Reports
4BCreate New Report 38
3
2
Reports
4BCreate New Report 39
Reports
4BCreate New Report 40
3. In the design surface a further column has been inserted for grouping:
If you see the list in the preview now, the report is grouped according to the order and not by parts. This means that further
groups must still be defined.
Reports
4BCreate New Report 41
For grouping the report according to parts, mark the row ORDERNAME in the range of the row groups by right clicking and
then call the group attributes:
Reports
4BCreate New Report 42
For this purpose, the row ORDERNAME must be marked in the range of the row groups by right clicking once and then call
add group/ Child group.
Reports
4BCreate New Report 43
Reports
4BCreate New Report 44
Referring to 1.)
Delete the second barcode column by marking the column in the Design Surface and then call the context menu by right
clicking once. In the appearing context menu the function delete column must be selected.
Referring to 2.)
For applying the part name as the group name and not the order name, the entry ORDERNAME only has to be marked in
the column and can be deleted via delete.
Then the empty row can be filled with new report data again.
In this case apply NAME1.
Reports
4BCreate New Report 45
Now the column NAME1 must be deleted so that NAME1 does not appear twice in the report as well.
Reports
4BCreate New Report 46
Now the other headings still must be modified so that the following picture appears:
Reports
4BCreate New Report 47
Several rows can be marked at the same time via the Shift-Key as well.
Reports
4BCreate New Report 48
It is necessary to set an asterisk in front of and behind the entry [BARCODE] so that the barcode can be read. It is better to
do this before converting the font type. Afterwards it is important to convert the font type for the * as well.
Reports
4BCreate New Report 49
With the modified settings of the font, the display of the barcode in the design surface changes as well.
Reports
4BCreate New Report 50
For filtering this edge, the complete Tablix must be marked and the
context menu must be called via a right click.
There the function Tablix-Properties can be called.
Reports
4BCreate New Report 51
So that only the edges with material are listed in the report:
In the following chapters the alignments regarding the appearance of the report are made.
Reports
4BCreate New Report 52
Reports
4BCreate New Report 53
For checking this setting in the preview, it is important to change to the print layout.
Reports
4BCreate New Report 54
Reports
4BCreate New Report 55
If a frame has to be displayed around the complete main range in the preview, then it can be deleted by calling the context
menu in the main range in an empty space via a right click and then the function body properties is called.
In the appearing dialog properties of the report main part next to frames none can be set under presets.
Reports
4BCreate New Report 56
Click on the arrow next to BackgroundColor and go to expression in the appearing menu.
Reports
4BCreate New Report 57
Now in the appearing dialog a condition can be defined for the background.
Reports
4BCreate New Report 58
Here the page format for printing the report can be defined under page setup.
If the columns do not fit on the page anymore, then these must be manually modified in their width. For this purpose, just
mark the column and then move it with the mouse.
Reports
4BCreate New Report 59
If the row height should always remain the same and does not conform to the
row content, then the setting can be set on False under General via
CanGrow and CanShrink.
CanGrow => row can become greater
CanShrink => row can become smaller
Reports
4BCreate New Report 60
5.20 Header
In the following chapters the header of the report is configured. In order to do this, the header must be inserted first.
The function Add header can be called in the menu via the tab Insert.
Reports
4BCreate New Report 61
Now insert a rectangle in the bottom data field. To do this, select the function rectangle on the tab insert and then drag
this into the field by pressing the mouse key.
Reports
4BCreate New Report 62
Then the text box must be marked by a right click and call the function text box
properties in the context menu.
Reports
4BCreate New Report 63
These values are filled with the information from the datasets!
In this example select DELIVERY_DATE as the value and enter DELIV for the name.
Now four further text boxes must be inserted in the rectangle in the same way. Following settings must be made for these
text boxes:
Reports
4BCreate New Report 64
The new inserted column should not be displayed in the report and therefore the column has to be marked by right clicking
and then call the function column visibility in the context menu.
Reports
4BCreate New Report 65
To immediately show that there are no elements displayed in the list, the text box can be set with a coloured background.
To do this, the complete rectangle is marked and afterwards a background color can be defined via the properties on the
right side.
Reports
4BCreate New Report 66
Now a text box can be inserted in the header, for example, which is filled with the following texts:
Reports
4BCreate New Report 67
=ReportItems!DELIV.Value
= ReportItems!<TEXTFELDNAME>.Value
In doing so, the definition of the text box name must be identical with the
name of the text box properties.
It is important to consider the small and capital letters!
The value is filled with the value from the text box.
Reports
4BCreate New Report 68
For defining further expressions underneath, a wordwrap must be made after the first expression and the function create
placeholder has to be called in the row below by right clicking once.
In the appearing dialog of the placeholder properties, change to the expression dialog via the button fx. Here the
expression for the EMPLOYEE can be defined.
Reports
4BCreate New Report 69
If no value is entered for the description in the placeholder properties, then only <<Expr>> is in the text box later.
Repeat this process for the other entries of the header as well and fill the field description at the same time.
Preview
Reports
4BCreate New Report 70
To do this, the function text box must be called via the menu insert and then span the field to the desired size with the
mouse.
Reports
4BCreate New Report 71
For inserting a dividing row below the header, the header properties must be called.
In order to do this, call the context menu in an empty space of the header by right clicking and call the same named
function there.
In the appearing dialog header properties a row below can be defined in the range frame.
Reports
4BCreate New Report 72
A further possibility for defining e.g. a dividing row below the heading is to mark the text box so that it is displayed as a
dashed line and afterwards a frame can be defined below via the frame functions.
Vorschau
Reports
4BCreate New Report 73
Then an image can be inserted via the group report elements in the menu insert.
With the mouse it is possible to span the image to the desired size.
Reports
4BCreate New Report 74
If the image has been spanned, the dialog image properties appear.
If the option embedded is selected with use image source, then the previous defined logo can be selected via the pull
down menu under use this image.
Reports
4BCreate New Report 75
Afterwards the dialog expression is called via the button fx. Here an external image can be linked via the term
=file:\\\<File path>.
The advantage is that not all lists have to be manually adjusted when modifying the logo.
=“file:\\\<File path>“
Reports
4BCreate New Report 76
5.24 Footer
The footer has already been automatically inserted in the report and therefore it is not necessary to insert footer anymore.
The date and the page number have to be inserted in the footer which is shown as follows.
For example, the page number from the integrated fields can be moved per Drag & Drop in the footer then.
Reports
4BCreate New Report 77
Thereby, the current page number would be displayed in the report. But if
the current page number and the total number of pages have to be
displayed, then the expression can still be edited further.
To do this, the text boxes marked by a right click and the function text box
properties called.
The name of the expression can then be edited via the text box properties.
Change to the same named dialog via the fx-button to edit the expression.
Reports
4BCreate New Report 78
=Globals! => Displays global variables, which are useful for reports such as the report name or the page number.
The global variables are always available!
If the following term is entered, the page number is set in the format 1/20.
For inserting the date in the footer, a text box must be inserted in the footer first. Afterwards the placeholder properties
are called via the context menu of the text box. The following expressions are defined via fx:
Reports
4BCreate New Report 79
These functions can be selected in the Category under Common functions/ Date & Time.
Reports
4BCreate New Report 80
Please, note that this value may be overwritten by the settings in the text properties. This means that the type of date is
set differently via number and then the value in the report could refer to this.
Reports
4BCreate New Report 81
Reports
4BCreate New Report 82
OverallPageNumber Integer The page number of the current page for the complete report.
ResetPageNumber has no effect on this value.
OverallPageNumber can only be used in an expression in a page header or
page footer.
OverallTotalPages Integer The total number of the pages for the complete report.
ResetPageNumber has no effect on this value.
OverallTotalPages can only be used in an expression in a page header or page
footer.
RenderFormat RenderFormat Information for current rendering demand.
Further information is under "RenderFormat" in the next section.
Reports
5BEdit existing lists 83
In order to do this, the existing data source must be selected in the report data range on the left side by right clicking and
call the function data source properties in the context menu.
In the data source properties the server path and database is shown under connection string.
Reports
5BEdit existing lists 84
The definition for this takes place via the ValueLocID in the properties on the right side.
In this case the entry in the text box is controlled via the MSG Entry 1115!
This means that if your own lists should never be translated, the value next to ValueLocID must be deleted. Otherwise it
can happen that the entry in the text box is modified, but the expression from the MSG in the output reports is used!
Reports
5BEdit existing lists 85
For example, the following filter in the assembly list (i_ManufactList.rdl) in the dataset properties has been stored:
BOM_FLAG is an entry from the IDBGPL and defines if the part has to be transferred to the part list or not.
• 1= Yes
• 0= No
Reports
5BEdit existing lists 86
In the purchased part list a filter is stored for only allowing purchased parts to be listed in the list.
Reports
5BEdit existing lists 87
6.4 Visibility
In all list headers a field is inserted which is only then displayed if no objects are in the list.
For example, if no purchased parts are applied in the order, then the list is empty.
Therefore a text box is displayed in the list header with the text “No Purchased Parts existing“.
Reports
5BEdit existing lists 88
This definition is made via the text box properties. In the section visibility it defines if the text box Depending on the
expression show/hide is.
If edges exist in the report and the text box is not displayed, then the order header information behind it is displayed.
Reports
6BExpert Tips 89
7. Expert Tips
7.1 Text style and colour on the basis of aligning a condition
It is possible to manipulate visibility, colours and formats etc. via the expressions.
Example:
In a purchased part list the quantity of the purchased parts should be displayed red and bold if this exceeds a value of 50.
For this purpose, the text box of the quantity [CNT] in the table must be marked and then call the text box properties.
In the settings of the font you have to switch to the expressions via the fx-button.
Then the following expression must be defined for the format bold:
=IIF(Sum(Fields!CNT.Value)> 50, "ExtraBold" ,"Normal")
Reports
6BExpert Tips 90
Then to display the quantity red as well, the following expression must be defined for the color:
=IIF(Sum(Fields!CNT.Value)> 50, "Red" ,"Black")
Reports
7BField descriptions 91
8. Field descriptions
Field Descriptions Table
NAME Name of the order PROADMIN
COMM Commission on the order PROADMIN
ARTICLENO Article number PROADMIN
EMPLOYEE Name of the employee PROADMIN
DATECREATE Creation date of the order PROADMIN
CUSTOMER Name of the customer PROADMIN
CLIENT Name of the client PROADMIN
PROGRAM Program name PROADMIN
CONTYPE Construction type PROADMIN
DESIGN Design parameters PROADMIN
SOURCE User applied with the order/project PROADMIN
SHIPPING_DATE Shipping date PROADMIN
DELIVERY_DATE Delivery date PROADMIN
INFO1 PROADMIN
INFO2 PROADMIN
INFO3 PROADMIN
INFO4 PROADMIN
INFO5 PROADMIN
Reports
7BField descriptions 92
Reports
7BField descriptions 93
Reports
7BField descriptions 94
Reports