The main task was to design and develop a web application that allows users to provide an overview of construction budgets, contacts and all documents used in relation extensions and buildings.
Company Profile: Grontmij | Carl Bro is part of the Grontmij Group – one of the largest players in the European consultancy market with an annual turnover of EUR 846.2m (2008) and just over 8000 employees distributed among 150 European divisions and 20 offices in the rest of the world.
Employees: In Denmark, you will be cooperating with a staff of approx. 1300 employees with each and every one focused on delivering solutions that not only create value for the customer, but will also contribute to increase the quality of life for people and the society. Within the group, we share our core competences and strengths across geographical and professional boundaries. This is why you will always have access to our collective knowledge and experience, regardless of the location of the tasks in hand.
Services: The principle of sustainability constitutes the foundation for all Grontmij | Carl Bro activities – internally in the group as with respect to the work we carry out for our customers. As engineering and management consultants, we deliver sustainable solutions to growing markets within water, energy, transportation, planning and design. Our future-oriented services stretch across coast protection, sustainable sewerage and water supply via rural- and urban-zone planning in full harmony with the surroundings to the establishment of sustainable energy and environmentally friendly transportation.
Organization: Our organization has been structured on the basis of cross-frontier cooperation putting the Group’s collective knowledge in play for the benefit of your project. The organization has been sectioned into three business areas:* Planning & Design* Transportation & Mobility* Water & Energy
Company URL : http://www.grontmij-carlbro.dk
Product Version used : 2010 Q1
Operating System : Server 2003 or newer
Database Platform : SQL server 2008
Number of developers involved : 1 to 2
Development Time : 5 months
Challenges and Objectives: The main task was to design and develop a web application that can allow users to provide an overview of construction budget, contacts and all documents used in relation to extensions and buildings. Since this is a huge task, it is divided into 12 reports with different features. Here is an example – one type of report is dealing with documents, including contacting, architectural drawings, and more. There is also a report dealing with planning and budget, whereas the budget is also divided into two types of reports: budget and long-term budgets. For each report the user must choose the columns that appear in the report, as well as the filters that should be on the report; the user should be able to group by each column and apply filters on columns that are not displayed in the report, among other things. In addition a number of graphical and technical rules should also be provided about the formatting and layout. Overall, the reports should be calculated and generated dynamically while the program is running and should not be compiled at design time. This also has its challenges as it is clearly easier to have a fixed number of columns, etc.
Solution: In Telerik Reporting it is possible to put a data source that binds at runtime which can also be used at runtime. This allows you to create a database lookup which provides the data which forms the basis for the report itself. We add selected columns to the report by using a right-justified TextBox, which was adapted to compile the report content at runtime.
This is actually relatively simple: Data columns are added together with the headlines and then we add the fractions and the sorting (which are also built in Telerik Reporting). We put the data source and the reporting binds itself to the data via Public Properties in the data source used. In our project we used Active Record, LINQ and SQL standards. LINQ was phased out because our database was changing too quickly for the customer, and we were not able to change our LINQ model. Telerik Reporting is really good at processing data at runtime and for mapping data into the correct fields.
For formatting, we used the formatting rules that are embedded in Telerik Reporting. We have created a CSS-like language and store the rules in the database for each column. We also save the filter type (to be displayed in the filter dialogue), the columns to display in the filter dialog, as well as the data formatting in the report (e.g. bold font size, colors, numbers, formatting, and other rules are stored in the database and loaded only into the Telerik component, which itself gets the correct formatting and calculations displayed on the surface).
Telerik Reporting does the following: Dynamic data linking (via public attributes); Grouping of data at runtime; Sorting data at runtime; Applies conditional rules depending on the formatting and calculations; Uses the most widely used metrics in relation to layout (cm, inch); Uses the most widely used font sizes and fonts, and other text configurations; Adds page numbers, divides the page, calculates the page size; plus other layout things.
Results: The solution we did is a very good solution with many opportunities for reuse in subsequent designs. The product is very flexible and gives some good expandability. This is due both to Telerik Reporting as well as the design we used. In this solution we achieved quite a bit, much more than the majority of reporting products can give us.
We did find that in reports where there are over 15,000 rows and much data with relatively complex calculations has an impact on memory when using Reflections, but this problem was solved by simply showing the generated file, rather than using the Report Viewer from Telerik. Overall it was a good experience working with Telerik. Their support is also good.