265 
Note that the report definition files are saved in XML, so you can also edit and maintain them using any text 
editor. 
Importing Microsoft Access Reports 
One of the most powerful features of the C1ReportDesigner application is the ability to import reports created 
with Microsoft Access. This feature requires Access to be installed on the computer. Once the report is imported 
into the Designer, Access is no longer required. 
To import reports from an Access file, click the Application button and select Import from the menu. A dialog box 
prompts you for the name of the file you want to import. 
Select a Microsoft Access file (MDB or ADP) and the Designer scans the file and shows a dialog box where you 
can select which reports you would like to import: 
Move pages within pdf - re-order PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Customizing Page Order of PDF Document in C# Project
pdf reverse page order preview; reorder pdf pages online
Move pages within pdf - VB.NET PDF Page Move Library: re-order PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sort PDF Document Pages Using VB.NET Demo Code
how to move pages around in pdf; rearrange pdf pages in reader
266  
The dialog box also allows you to specify if the Designer should clear all currently defined reports before starting 
the import process. 
The import process handles most elements of the source reports, with a few exceptions: 
Event handler code 
Access reports can use VBA, macros and forms to format the report dynamically. C1Report can do the 
same things, but it only uses VBScript. Because of this, all report code needs to be translated manually. 
Form-oriented field types 
Access reports may include certain fields that are not handled by the Designer's import procedure. The 
following field types are not supported: Chart, CommandButton, ToggleButton, OptionButton, 
OptionGroup, ComboBox, ListBox, TabCtl, and CustomControl. 
Reports that use VBScript reserved words 
Because Access does not use VBScript, you may have designed reports that use VBScript reserved words 
as identifiers for report objects or dataset field names. This causes problems when the VBScript engine 
tries to evaluate the expression, and prevents the report from rendering correctly. 
Reserved words you shouldn't use as identifiers include Date, Day, Hour, Length, Minute, Month, 
Second, Time, TimeValue, Value, Weekday, and Year. For a complete list, please refer to a VBScript 
reference. 
Reports that sort dates by quarter (or weekday, month of the year, and so on)  
C1Report uses the ADO.NET dataset Sort property to sort groups. This property sorts datasets according 
to field values only and does not take expressions. (Note that you can group according to an arbitrary 
expression, but you can't sort.) An Access report that sorts groups by quarter will sort them by date after it 
is imported. To fix this, you have two options: create a field that contains the value for the expression you 
want to sort on or change the SQL statement that creates the dataset and perform the sorting that way. 
These limitations affect a relatively small number of reports, but you should preview all reports after importing 
them, to make sure they still work correctly. 
Importing the Nwind.mdb File 
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Able to add and insert one or multiple pages to existing adobe PDF of adding and inserting a new blank page to the existing PDF document within a well
pdf reverse page order online; move pages in pdf document
C# PowerPoint - How to Process PowerPoint
It enables you to move out useless PowerPoint document pages simply with a dealing solution to sort and rearrange PowerPoint slides order within C#.NET
change page order in pdf reader; reorder pages in pdf preview
267 
To illustrate how the Designer fares in a real-life example, try importing the Nwind.mdb file. It contains the 
following 13 reports. (The Nwind.xml file that ships with C1Report already contains all the following 
modifications.) 
1.
Alphabetical List of Products 
No action required. 
2.
Catalog 
No action required. 
3.
Customer Labels 
No action required. 
4.
Employee Sales by Country 
This report contains code which needs to be translated manually. The following code should be assigned 
to the Group 1 Header OnPrint property: 
Visual Basic 
If SalespersonTotal > 5000 Then 
ExceededGoalLabel.Visible = True 
SalespersonLine.Visible = True 
Else 
ExceededGoalLabel.Visible = False 
SalespersonLine.Visible = False 
End If 
C# 
if (SalespersonTotal > 5000)  
ExceededGoalLabel.Visible = true; 
SalespersonLine.Visible = true; 
} else { 
ExceededGoalLabel.Visible = false; 
SalespersonLine.Visible = false; 
5.
Invoice 
No action required. 
6.
Products by Category 
No action required. 
7.
Sales by Category 
This report contains a Chart control that is not imported. To add a chart to your report, you could use an 
unbound picture field, then write a VB event handler that would create the chart and assign it to the field 
as a picture. 
8.
Sales by Category Subreport 
No action required. 
9.
Sales by Year 
This report contains code and references to a Form object which need to be translated manually. To 
replace the Form object, edit the RecordSource property to add a [Show Details] parameter: 
Visual Basic 
PARAMETERS (Beginning Date) DateTime 1/1/1994, 
(Ending Date) DateTime 1/1/2001, 
C# TIFF: C#.NET Code to Process TIFF, RasterEdge XDoc.Tiff for .
Our supported image and document formats are: TIFF, JPEG, GIF, BMP, PNG, PDF, Word and DICOM. It represents a high-level model of the pages within a Tiff file.
how to move pages in pdf acrobat; pdf rearrange pages
C# TIFF: How to Delete Page(s) from Multi-page TIFF File Using
Word, Excel, PowerPoint to Tiff. Convert PDF to Tiff. Page Edit. Insert Pages into Tiff File. Delete Tiff Pages. Move Tiff Page Position. Rotate a Tiff Page. Extract
change page order pdf reader; move pdf pages
268  
(Show Details) Boolean False; ... 
C# 
PARAMETERS [Beginning Date] DateTime 1/1/1994, 
[Ending Date] DateTime 1/1/2001, 
[Show Details] Boolean False; ... 
Use the new parameter in the report's OnOpen event: 
Visual Basic 
Dim script As String = _ 
"bDetails = [Show Details]" & vbCrLf & _ 
"Detail.Visible = bDetails" & vbCrLf & _ 
"[Group 0 Footer].Visible = bDetails" & vbCrLf & _ 
"DetailsLabel.Visible = bDetails" & vbCrLf & _ 
"LineNumberLabel2.Visible = bDetails" & vbCrLf & _ 
"Line15.Visible = bDetails" & vbCrLf & _ 
"SalesLabel2.Visible = bDetails" & vbCrLf & _ 
"OrdersShippedLabel2.Visible = bDetails" & vbCrLf & _ 
"ShippedDateLabel2.Visible = bDetails" & vbCrLf & _ 
"Line10.Visible = bDetails" 
c1r.Sections.Detail.OnPrint = script 
C# 
string script = "bDetails = [Show Details]" +   
"Detail.Visible = bDetails\r\n" +   
"[Group 0 Footer].Visible = bDetails\r\n" +   
"DetailsLabel.Visible = bDetails\r\n" +   
"LineNumberLabel2.Visible = bDetails\r\n" +   
"Line15.Visible = bDetails\r\n" +   
"SalesLabel2.Visible = bDetails\r\n" +   
"OrdersShippedLabel2.Visible = bDetails\r\n" +   
"ShippedDateLabel2.Visible = bDetails\r\n" +   
"Line10.Visible = bDetails"; 
c1r.Sections.Detail.OnPrint = script; 
Finally, two more lines of code need to be translated: 
Visual Basic 
Sections ("Detail").OnPrint = _ 
"PageHeader.Visible = True" 
Sections("Group 0 Footer).OnPrint = _ 
"PageHeader.Visible = False" 
C# 
Sections ("Detail").OnPrint =   
"PageHeader.Visible = true"; 
Sections("Group 0 Footer).OnPrint =   
"PageHeader.Visible = false"; 
10.
Sales by Year Subreport 
No action required. 
11.
Sales Totals by Amount 
This report contains code that needs to be translated manually. The following code should be assigned to 
the Page Header OnPrint property: 
Visual Basic 
PageTotal = 0 
C# Image: C# Code to Encode & Decode JBIG2 Images in RasterEdge .
images codec into PDF documents for a better PDF compression; RasterEdge JBIG2 codec SDK controls within C# project Move license text to the new project folder
change page order in pdf file; reorder pages of pdf
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Thumbnails can be created from PDF pages. quickly convert a large-size multi-page PDF document to of high-quality separate JPEG image files within .NET projects
reorder pages in pdf; reorder pages in pdf document
269 
C# 
PageTotal = 0; 
The following code should be assigned to the Detail OnPrint property: 
Visual Basic 
PageTotal = PageTotal + SaleAmount 
HiddenPageBreak.Visible = (Counter = 10) 
C# 
PageTotal = PageTotal + SaleAmount; 
HiddenPageBreak.Visible = (Counter = 10); 
12.
Summary of Sales by Quarter 
This report has a group that is sorted by quarter (see item 4 above). To fix this, add a field to the source 
dataset that contains the value of the ShippedDate quarter, by changing the RecordSource property as 
follows: 
SELECT DISTINCTROW Orders.ShippedDate, 
Orders.OrderID,  
[Order Subtotals].Subtotal,  
DatePart("q",Orders.ShippedDate) As ShippedQuarter 
FROM Orders INNER JOIN [Order Subtotals] 
ON Orders.OrderID = [Order Subtotals].OrderID 
WHERE (((Orders.ShippedDate) Is Not Null)); 
Change the group's GroupBy property to use the new field, ShippedQuarter. 
13.
Summary of Sales by Year 
No action required. 
Summing up the information on the table, out of the 13 reports imported from the NorthWind database: eight did 
not require any editing, three required some code translation, one required changes to the SQL statement, and one 
had a chart control that was not replaced. 
Importing Crystal Reports 
The C1ReportDesigner application can also import Crystal report definition files (.rpt files). 
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Page: Replace PDF Pages. Page: Move Page Position. Page: Extract View PDF document in continuous pages display mode Search text within file by using Ignore case or
move pages in pdf online; reorder pages pdf
C# Word - Process Word Document in C#
It enables you to move out useless Word document pages simply with a You are capable of extracting pages from Microsoft Word document within C#.NET
how to reorder pdf pages in; how to move pages in pdf reader
270  
To import reports from a Crystal report definition file: 
1.
Click the Application button and select Import from the menu.  
A dialog box prompts you for the name of the file you want to import. 
2.
Select a Crystal report definition file (RPT) and the Designer will convert the report into the C1Report 
format. 
The import process handles most elements of the source reports, with a few exceptions for elements that are not 
exposed by the Crystal object model or not supported by C1Report. The exceptions include image fields, charts, 
and cross-tab fields. 
Charting in Reports for WinForms
Aggregate charting is a powerful, yet simple and easy-to-use feature that was added in the 2009 v3 release of 
ComponentOne Reports for WinForms. 
ComponentOne Reports for WinForms has always supported chart fields using its extensible custom field 
architecture. The Chart field is implemented as a custom field in the C1.Win.C1Report.CustomFields.2.dll 
assembly, which is installed with the report designer application and is also included as a sample with full source 
code (CustomFields). In the following topics, you'll see how you can customize chart fields in reports using the 
C1ReportDesigner application. The C1ReportDesigner application is installed with both ComponentOne 
Reports for WinForms and ComponentOne Reports for WPF. 
Charts in Flat Reports 
Creating simple charts is very easy. The following steps required to create a simple chart: 
1.
Open the C1ReportDesigner application and create or open a report definition file. 
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Page: Replace PDF Pages. Page: Move Page Position. Page: Copy View PDF document in continuous pages display mode. Search text within file by using Ignore case or
change page order pdf acrobat; move pdf pages online
VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
NET code. All PDF pages can be converted to separate Word files within a short time in VB.NET class application. In addition, texts
how to reorder pages in a pdf document; reordering pdf pages
271 
2.
Add a Chart field to the report, then select it to show its properties in the designer's property window. 
3.
Set the chart's DataX property to the name of the field whose values should be displayed in the X axis 
(chart categories). 
4.
Set the chart's DataY property to the name of the field whose values should be displayed in the Y axis 
(chart values). 
5.
Optionally set additional properties such as ChartType and DataColor. 
For example, the chart below was created based on the NorthWind Products table. In this case, the following 
properties were set: 
DataX = "ProductName" 
DataY = "UnitPrice" 
Note that for this chart type (Bar), the value axis (where the DataY field is displayed) is the horizontal one, and the 
category axis is the vertical one. 
In this case, a filter was applied to the data in order to limit the number of values shown. Without the filter, the 
chart would contain too many values and the vertical axis would not be readable. 
Other Useful Chart Properties 
In addition to the DataX and DataY properties mentioned above, the Chart object provides a few other properties 
that are commonly used: 
ChartType: This property allows you to select the type of chart to display. There are six options: Bar 
(horizontal bars), Column (vertical columns), Scatter (X-Y values), Line, Area, and Pie. 
DataColor: This property selects the color used to draw the bars, columns, areas, scatter symbols, and pie 
slices. If the chart contains multiple series, then the Chart field automatically generates different shades of 
the selected color for each series. If you want to select specific colors for each series, use the Palette 
property instead, and set its value to a semi-colon separated list containing the colors to use (for example 
"Red;Green;Blue"). 
FormatY, FormatX: These properties determine the format used to display the values along each axis. 
For example, setting FormatY to "c" causes the Chart field to format the values along the Y axis as 
currency values. This is analogous to the Format property in regular report fields. 
XMin, XMax, YMin, YMax: These properties allow you to specify ranges for each axis. Setting any of 
them to -1 cause the Chart to calculate the range automatically. For example, if you set the YMax 
property to 100, then  any values higher than 100 will be truncated and won't appear on the chart. 
272  
These properties apply to all chart types. There are a few additional properties that only apply to Pie charts: 
ShowPercentages: Each pie slice has a legend that shows the X value for the slice. If the 
ShowPercentages property is set to true, the legend will also include a percentage value that indicates the 
size of the slice with respect to the pie. The percentage is formatted using the value specified by the 
FormatY property. For example, if you set FormatY to "p2", then the legends will include the X value 
and the percentage with two decimal points (for example "North Region (15.23%)"). 
RadialLabels: This property specifies that instead of showing a legend on the right side of the chart, labels 
with connecting lines should be attached to each slice. This works well for pies with few slices (up to about 
ten). 
The Chart field is actually a wrapper for a C1Chart control, which provides all the charting services and has an 
extremely rich object model of its own. If you want to customize the Chart field even further, you can use the 
ChartControl property to access the inner C1Chart object using scripts. 
For example, the Chart field does not have a property to control the position of the legend. But the C1Chart 
control does, and you can access this property through the ChartControl property. For example, the script below 
causes the chart legend to be positioned below the chart instead of on the right: 
' place legend below the chart 
chartField.ChartControl.Legend.Compass = "South" 
If you assign this script to the report's OnLoad property, the chart will look like the image below: 
The other properties used to create these chart are as follows: 
ChartType = Pie 
FormatY = "p1" 
273 
ShowPercentage = true 
Palette = "Red;Gold;Orange;Beige;DarkGoldenrod;Goldenrod;" 
Charts with Multiple Series 
To create charts with multiple series, simply set the DataY property to a string that contains the names of each 
data field you want to chart, separated by semi-colons. 
For example, to create a chart showing product prices and discounts you would set the DataY property as shown 
below: 
DataY = "UnitPrice;Discount" 
If you want to specify the color used to display each series, set the Palette property to a list of colors separated by 
semi-colons. For example, the value displayed below would cause the chart to show the UnitPrice" series in red 
and the "Discount" series in blue: 
Palette = "Red;Blue" 
Series with Calculated Values 
The DataY property is not restricted to field names. The strings that specify the series are actually treated as full 
expressions, and are calculated like any regular field in the report. 
For example, to create a chart showing the actual price of each field you could set the DataY property to the value 
shown below: 
DataY = "UnitPrice * (1 - Discount)" 
Charts in Grouped Reports 
Reports for WinForms allows you to create reports with multiple groups. For example, instead of listing all 
products in a single flat report, you could group products by category. Each group has a header and a footer 
section that allow you to display information about the group, including titles and subtotals, for example. 
If you add a chart to a group header, the chart will display only the data for the current group. By contrast, adding 
a chart to the report header or footer would include all the data in the report. 
To illustrate this, here is a diagram depicting a report definition as shown in the report designer and showing the 
effect of adding a Chart field to the report header and to a group header: 
Report Header section  
A chart field here would generate 
only one chart for the entire report. 
The chart would show all the data 
in the report's data source. 
Page Header section 
Group Header section (CategoryName)  
A chart field here would generate 
one chart for each CategoryName value. 
Each chart would show all the data 
for the current CategoryName. 
Detail section 
274  
Group Footer section (CategoryName) 
Page Footer section 
Report Footer section 
Continuing with the example mentioned above, if you added a chart to the group header and set the DataX 
property to "ProductName" and the DataY property to "UnitPrice", the final report would contain one chart for 
each category, and each chart would display the unit prices for the products in that category. 
The images below show screenshots of the report described above with the group headers, the charts they contain, 
and a few detail records to illustrate: 
The above chart shows unit prices for products in the "Beverages" category.  The below chart shows unit prices for 
products in the "Condiments" category. 
Documents you may be interested
Documents you may be interested