|
Report Application Server .NET SDK Developer Guide
|
|
To set a page margin condition formula in the report's print options
|
|
- Use the PrintOutputController to retrieve and instance of the PrintOptions object saved with the report.
|
Visual Basic
|
|
|
Dim printOutputController As PrintOutputController = rcd.PrintOutputController Dim printOptions As PrintOptions = printOutputController.GetPrintOptions()
|
|
C#
|
|
|
PrintOutputController printOutputController = reportClientDocument.PrintOutputController; PrintOptions printOptions = printOutputController.GetPrintOptions();
|
- Clone the PrintOptions object.
|
Visual Basic
|
|
|
Dim newPrintOptions As PrintOptions = DirectCast(printOptions.Clone(True), PrintOptions)
|
|
C#
|
|
|
PrintOptions newPrintOptions = (PrintOptions)printOptions.Clone(true);
|
- Retrieve the PageMargins object.
|
Visual Basic
|
|
|
Dim newMargins As PageMargins = newPrintOptions.PageMargins
|
|
C#
|
|
|
PageMargins newMargins = newPrintOptions.PageMargins;
|
- Create a new PageMarginConditionFormulas and IConditionFormula object.
|
Visual Basic
|
|
|
Dim formulas As New PageMarginConditionFormulas() Dim condFormula As New ConditionFormula()
|
|
C#
|
|
|
PageMarginConditionFormulas formulas = new PageMarginConditionFormulas(); ConditionFormula condFormula = new ConditionFormula();
|
- Set the formula syntax and text.
|
Visual Basic
|
|
|
Dim formulaText As String = "If Remainder(pagenumber,2) = 0 then 1440 else 2880" condFormula.Syntax = CrFormulaSyntaxEnum.crFormulaSyntaxCrystal condFormula.Text = formulaText formulas(CrPageMarginConditionFormulaTypeEnum.crPageMarginConditionFormulaTypeLeft) = condFormula
|
|
C#
|
|
|
String formulaText = "If Remainder(pagenumber,2) = 0 then 1440 else 2880"; condFormula.Syntax = CrFormulaSyntaxEnum.crFormulaSyntaxCrystal; condFormula.Text = formulaText; formulas[CrPageMarginConditionFormulaTypeEnum.crPageMarginConditionFormulaTypeLeft] = condFormula;
|
- Set the formulas in the PageMargins object and set the new margins in thePrintOptions object.
|
Visual Basic
|
|
|
newMargins.PageMarginConditionFormulas = formulas newPrintOptions.PageMargins = newMargins
|
|
C#
|
|
|
newMargins.PageMarginConditionFormulas = formulas; newPrintOptions.PageMargins = newMargins;
|
- Use the PrintOutputController to modify the print options of the report.
|
Visual Basic
|
|
|
printOutputController.ModifyPrintOptions(newPrintOptions)
|
|
C#
|
|
|
printOutputController.ModifyPrintOptions(newPrintOptions);
|
This sample creates a formula that checks whether a page number is even or odd and sets the margins accordingly: if the page is an even number, the margin is set to one inch; if the page is an odd number, the margin is set to two inches. The formula is applied to the left margin of the report.
|
Visual Basic
|
|
|
Private Sub SetPageMarginConditionFormulaPrintOptions(ByVal rcd As ISCDReportClientDocument) Dim printOutputController As PrintOutputController = rcd.PrintOutputController Dim printOptions As PrintOptions = printOutputController.GetPrintOptions() Dim newPrintOptions As PrintOptions = DirectCast(printOptions.Clone(True), PrintOptions) Dim newMargins As PageMargins = newPrintOptions.PageMargins Dim formulas As New PageMarginConditionFormulas() Dim condFormula As New ConditionFormula() Dim formulaText As String = "If Remainder(pagenumber,2) = 0 then 1440 else 2880" condFormula.Syntax = CrFormulaSyntaxEnum.crFormulaSyntaxCrystal condFormula.Text = formulaText formulas(CrPageMarginConditionFormulaTypeEnum.crPageMarginConditionFormulaTypeLeft) = condFormula newMargins.PageMarginConditionFormulas = formulas newPrintOptions.PageMargins = newMargins printOutputController.ModifyPrintOptions(newPrintOptions) End Sub
|
|
C#
|
|
|
private void SetPageMarginConditionFormulaPrintOptions(ISCDReportClientDocument rcd) { PrintOutputController printOutputController = rcd.PrintOutputController; PrintOptions printOptions = printOutputController.GetPrintOptions(); PrintOptions newPrintOptions = (PrintOptions)printOptions.Clone(true); PageMargins newMargins = newPrintOptions.PageMargins; PageMarginConditionFormulas formulas = new PageMarginConditionFormulas(); ConditionFormula condFormula = new ConditionFormula(); String formulaText = "If Remainder(pagenumber,2) = 0 then 1440 else 2880"; condFormula.Syntax = CrFormulaSyntaxEnum.crFormulaSyntaxCrystal; condFormula.Text = formulaText; formulas[CrPageMarginConditionFormulaTypeEnum.crPageMarginConditionFormulaTypeLeft] = condFormula; newMargins.PageMarginConditionFormulas = formulas; newPrintOptions.PageMargins = newMargins; printOutputController.ModifyPrintOptions(newPrintOptions); }
|
This list includes the namespaces used by the sample code:
- CrystalDecisions.Enterprise
- CrystalDecisions.ReportAppServer.ClientDoc
- CrystalDecisions.ReportAppServer.Controllers
- CrystalDecisions.ReportAppServer.DataDefModel
- CrystalDecisions.ReportAppServer.ReportDefModel
© 2021 SAP AG. All rights reserved.
http://www.sap.com/sapbusinessobjects/
Support services
http://service.sap.com/bosap-support/
Created with the Personal Edition of HelpNDoc: Full-featured Help generator