创建CanGrowCanShrink字段ComponentOne中文技术文档

创建装订线边距装订线边距是一个额外区域,主要添加在装订线边缘位置。它使页面装订成文件或是小册子等操作变得简单。想要在报表中增加一个装订线边距,你需要提高奇数页MarginLeft的属性值,然后在偶数页使用缺省数值。你可以通过脚本实现该操作。想要添加一个脚本改变呈现中页面的装订线边距,你需要完成以下步骤:

'VBScript:Report.OnOpengutter=report.layout.marginleft'initializevariable'VBScript:Report.OnPagereport.layout.marginleft=_Iif(pagemod2=1,gutter,gutter-1440)

定义和使用全局变量报表中定义和使用全局变量并没有特殊的方式,但是你可以添加隐藏字段到报表中,然后使用它们的值作为全局参数。完成以下步骤,实现该功能:

Field.Name=linesPerPageField.Text=14Field.Visible=False

cnt=cnt+1detail.forcepagebreak="none"ifcnt>=linesPerPagethencnt=0detail.forcepagebreak="after"endif需要注意的是,通过修改字段的Text属性,你可以在报表呈现前设置linesPerPage字段的值。

指定自定义页面大小缺省情况下,C1Report使用默认打印机中默认页面大小创建报表。你可以使用PaperSize和Orientation属性来指定页面大小和方向。然而,C1Report在呈现前将会检查选中页面大小是否符合当前打印机规定。如果选中页面无效,则将页面参数改为缺省参数。如果你想要指定一个具体页面的大小,不管是否符合打印机规定,你可以将PaperSize属性设置为Custom,然后将CustomWidth和CustomHeight属性设置为实际页面的规模(以像素为单位)。

注意,尺寸将自动转换成像素单位。属性窗口将尺寸显示为36000(以像素为单位)。

属性窗口将尺寸显示为15840(以像素为单位)。

不管打印机页面大小的设置,下面的代码会将报表页面大小设置为25x11:!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!VisualBasic

VisualBasic

c1r.Layout.PaperSize=PaperKind.Customc1r.Layout.CustomHeight=25*1440'intwipsc1r.Layout.CustomWidth=11*1440

C#

c1r.Layout.PaperSize=PaperKind.Custom;c1r.Layout.CustomHeight=25*1440;//intwipsc1r.Layout.CustomWidth=11*1440;

格式化报表下面的内容主要介绍在报表中如何应用格式化。很简单,你可以修改属性窗口中的属性或是在VB脚本表达式中增加几行脚本就能够修改你的报表。增加交替变换的背景色在报表中增加交替变换的背景色,你可以使用Detail区域的OnPrint属性来改变这一区域的BackColor属性实现这一功能。完成以下步骤实现该功能:

cnt=cnt+1ifcntmod2=0thendetail.backcolor=rgb(200,220,200)elsedetail.backcolor=rgb(255,255,255)endif

在某些情况下,你也许想要根据字段内容改变一个字段的显示效果。例如,你也许想要让仓库中贵重的物品或是便宜的物品高亮显示。下面的脚本可以实现这一功能。完成以下步骤,实现该功能:

'VBScript:Detail.OnFormatIfUnitsInStock+UnitsOnOrder

根据字段值编辑字段格式你可以通过为Detail区域的OnFormat属性指定一个表达式来实现根据字段值改变报表中字段格式的功能。想要为OnFormat属性指定表达式,你需要完成以下步骤:

加载报表模板C1Report使用行数据组合报表模板来完成创建报表的工作。为了创建报表,你需要加载报表模板到C1Report中。下面将介绍几种加载报表模板的方式。从文件中加载报表模板!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!你可以使用C1ReportDesigner来加载报表模板文件(XML文件中将包含一个或者多个报表模板)。

设计阶段从文件中加载报表模板,你需要完成下述任务中的一种:右键单击C1Report组件,选择LoadReport菜单选项或者单击C1Report组件上的smart标签,然后从C1Report任务菜单中选择LoadReport选项。在Selectareport对话框中选择你想要加载的报表,完成以下任务:

你可以使用Load方法,从文件中加载报表模板。将你希望加载报表的报表模板文件名称和报表名称作为参数。如果你想要罗列报表模板中的报表,可以使用GetReportInfo方法。它将以列表的形式返回文件中所有报表。VisualBasic

'获取报表模板文件中的报表列表DimreportsAsString()=c1r.GetReportInfo(reportFile)'把第一个报表加载到C1Report组件c1r.Load(reportFile,reports(0))

//获取报表模板文件中的报表列表//把第一个报表加载到C1Report组件

]]>

通过字符串加载报表模板:!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!C1Report有一个ReportDefinition属性,该属性允许你以字符串的形式获取或者设置完整报表模板。这是一种非常方便的实现方式,你可以在数据库或者自身应用的数据结构中对报表模板进行存储和检索。ReportDefinition字符串中包含了一个完整的XML,并且存储在报表模板文件中。举例说明如下:VisualBasic

'把报表加载到C1Report组件c1r.Load(reportFile,reportName)'复制报表模板到剪贴板DimrepDefAsString=c1r.ReportDefinitionClipboard.SetDataObject(repDef)'复制报表模板到c1r2组件c1r2.ReportDefinition=repDef

//把报表加载到C1Report组件c1r.Load(reportFile,reportName);//复制报表模板到剪贴板stringrepDef=c1r.ReportDefinition;Clipboard.SetDataObject(repDef);//复制报表模板到c1r2组件c1r2.ReportDefinition=repDef;

修改子报表本部分主要介绍如何修改子报表。子报表是指正式报表中包含了另外一个报表的字段。主报表经常设计用于作为显示主报表中详细信息的主要场景。子报表中增加页眉C1Report在子报表中不显示页眉和页脚。它仅在主报表中使用。在MicrosoftAccess中同样如此。在多数情况下,你可能想要在子报表中页面分页中包含页眉信息。想要实现该功能,你需要将页眉放入分组页面区域,并且设置区域的Repeat属性为True。如果你的子报表并不包含分组,请添加一个空白分组。

在子报表中检索数据在某些情况下,你想要将子报表中的数据传递给主报表。脚本变量并不能实现该功能,因为每个报表都有自己的脚本作用域(这将避免变量名冲突的可能)。想要将子报表中的数据传递给主报表,你必须将值存储在子报表字段中或者在子报表的Tag属性中,然后让主报表阅读这些值。在这个例子中,子报表计算出了每个商品类别的平均价格,然后将其存储在Tag属性中。主报表检索并显示这个值。

呈现报表(预览,打印以及导出)一旦报表模板加载到组件中,并且完成数据源的定义,你就可以将报表呈现到打印机,预览控制器或者是导出成报表文件。在报表呈现过程中显示进度显示器!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!大多数预览应用在呈现页面时都包含进度提示,并且拥有一个按钮允许你取消报表生成。.NET打印预览控制器自动提供这一功能。如果你直接打印报表或者导出报表文件,这里并没有内置的进度显示在报表UI中。你可以使用C1Report事件创建一个报表进度对话框,或者在呈现报表时更新状态条。StartPage和EndReport事件将会有足够的反馈告诉你哪个页面正在被打印以及报表什么时候完成。例如,下述代码使用起始页事件给状态条(StatusStrip1)提供反馈。VisualBasic

PrivateSubc1r_StartPage(ByValsenderAsSystem.Object,ByValeAsC1.Win.C1Report.ReportEventArgs)Handlesc1r.StartPageStatusStrip1.Text=String.Format("Renderingpage{0}of'{1}'...",c1r.Page,c1r.ReportName)EndSub

privatevoidc1r_StartPage(objectsender,ReportEventArgse){statusStrip1.Text=string.Format("Renderingpage{0}of'{1}'...",c1r.Page,c1r.ReportName);}

想要在报表完成之前取消动作,增加一个取消按钮到你的应用中,然后使用它来设置C1Report的Cancel属性为True。例如:VisualBasic

PrivateSub_btnCancel_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesbtnCancel.Clickc1r.Cancel=TrueClose()EndSub

privatevoid_btnCancel_Click(objectsender,System.EventArgse){c1r.Cancel=true;Close();}

需要注意的是你也许还想要提供进度条以及当前是第几页的提示,但是这通常情况下很难去实现。因为页面计数器在报表呈现完成前并不知道当前正在呈现的页数。

预览报表!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!想要预览报表,可以使用C1Report.Document属性。在ReportforWinForms预览控制器中或者在.NET打印预览或者打印预览对话框控制器中设置Document属性。预览控制器将显示该报表,并且允许用户区浏览,缩放或者打印报表。例如:VisualBasic

'加载报表模板c1r.Load(reportFile,reportName)'预览文档c1preview1.Document=c1r

//加载报表模板c1r.Load(reportFile,reportName);//预览文档c1preview1.Document=c1r;

打印报表!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!你可以使用C1Report.Document属性来直接打印报表。这一属性返回一个标准PrintDocument对象,该对象拥有一个Print方法以及公开的打印机和页面设置。例如,下述代码显示一个打印对话框,然后打印报表:VisualBasic

'加载报表模板c1r.Load(reportFile,reportName)'获取PrintDocument对象PrintDocumentdoc=c1r'显示打印对话框供用户自定义打印DimpdAsPrintDialog=NewPrintDialog()'在报表文档中使用打印机设置pd.PrinterSettings=doc.PrinterSettings'显示对话框并打印报表Ifpd.ShowDialog()=DialogResult.OKThendoc.Print()EndIf'清空并释放PrintDialog资源pd.Dispose()

//加载报表模板c1r.Load(reportFile,reportName);//获取PrintDocument对象PrintDocumentdoc=c1r;//显示打印对话框供用户自定义打印PrintDialogpd=newPrintDialog();//在报表文档中使用打印机设置pd.PrinterSettings=doc.PrinterSettings;//显示对话框并打印报表if(pd.ShowDialog()==DialogResult.OK)doc.Print();//清空并释放PrintDialog资源pd.Dispose();

导出报表!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!

C1Report有一个RenderToFile方法,允许你按照几种不同的文件格式导出报表,其中包含HTML,RTF,PDF,TIFF,Text,和XLS等等。例如,下述代码创建一个PDF和XLS版本的报表:VisualBasic

'加载报表模板c1r.Load(reportFile,reportName)'导出成PDFc1r.RenderToFile(outFile+".pdf",FileFormatEnum.PDF)c1r.RenderToFile(outFile+".xls",FileFormatEnum.Excel)

//加载报表模板c1r.Load(reportFile,reportName);//导出成PDFc1r.RenderToFile(outFile+".pdf",FileFormatEnum.PDF);c1r.RenderToFile(outFile+".xls",FileFormatEnum.Excel);

输入各个属性的值,并在结束设置属性之后按下ENTER键

Creator属性的默认值是ComponentOneDocumentEngine。。通过代码应当添加以下代码至Form_Load事件。为设置Author属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Author="JaneDoe"

this.c1PrintDocument1.DocumentInfo.Author="JaneDoe";

为设置Comment属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Comment="ThisisaC1PrintDocumentfile."

this.c1PrintDocument1.DocumentInfo.Comment="ThisisaC1PrintDocumentfile.";

为设置Company属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Company="ComponentOne"

this.c1PrintDocument1.DocumentInfo.Company="ComponentOne";

为设置CreationTime属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.CreationTime="2/29/08"

this.c1PrintDocument1.DocumentInfo.CreationTime="2/29/08";

为设置Creator属性,请添加以下代码。默认值是ComponentOneDocumentEngine。VisualBasic

Me.C1PrintDocument1.DocumentInfo.Creator="C1PrintPreview"

this.c1PrintDocument1.DocumentInfo.Creator="C1PrintPreview";

为设置Keywords属性,请添加以下代码。Keywords应当由空格分隔。VisualBasic

Me.C1PrintDocument1.DocumentInfo.Keywords=NewString(){"C1PrintPreviewComponentOneC1PrintDocument"}

this.c1PrintDocument1.DocumentInfo.Keywords=newstring(){"C1PrintPreviewComponentOneC1PrintDocument"};

为设置Manager属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Manager="JohnSmith"

this.c1PrintDocument1.DocumentInfo.Manager="JohnSmith";

为设置Operator属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Operator="JoeBrown"

this.c1PrintDocument1.DocumentInfo.Operator="JoeBrown";

为设置Producer属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Producer="ComponentOnePreviewfor.NET"

this.c1PrintDocument1.DocumentInfo.Producer="ComponentOnePreviewfor.NET";

为设置RevisionTime属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.RevisionTime="2/29/08"

this.c1PrintDocument1.DocumentInfo.RevisionTime="2/29/08";

为设置Subject属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Subject="DocumentCreation"

this.c1PrintDocument1.DocumentInfo.Subject="DocumentCreation";

为设置Title属性,请添加以下代码:VisualBasic

Me.C1PrintDocument1.DocumentInfo.Title="CreatingDocumentswithC1PrintPreview"

this.c1PrintDocument1.DocumentInfo.Title="CreatingDocumentswithC1PrintPreview";

隐藏导航面板为了隐藏导航面板,需要设置NavigationPanelVisible属性为False。这可以通过设计器或者代码做到。

添加以下代码至Form_Load事件:VisualBasic

Me.C1PrintPreviewControl1.NavigationPanelVisible=False

this.c1PrintPreviewControl1.NavigationPanelVisible=false;

单击C1PrintPreviewControl1选中显示在属性窗体上,设置其Document属性为C1PrintDocument1。

'构建文档.MakeDoc()'生成文档.Me.C1PrintDocument1.Generate()

//构建文档.MakeDoc();

//生成文档.this.c1PrintDocument1.Generate();

PrivateSubMakeDoc()'创建RenderText1.Dimrt1AsNewC1.C1Preview.RenderTextrt1.Text="ThisisRenderText1."'为RenderText1创建一个大纲视图条目Me.C1PrintDocument1.Outlines.Add("RenderText1",rt1)'Insertapagebreak.rt1.BreakAfter=C1.C1Preview.BreakEnum.Page'创建RenderText2。Dimrt2AsNewC1.C1Preview.RenderTextrt2.Text="ThisisRenderText2."'为RenderText2添加一个大纲视图条目。Me.C1PrintDocument1.Outlines.Add("RenderText2",rt2)'将RenderText对象添加至文档。Me.C1PrintDocument1.Body.Children.Add(rt1)Me.C1PrintDocument1.Body.Children.Add(rt2)EndSub

privatevoidMakeDoc(){//创建RenderText1.C1.C1Preview.RenderTextrt1=newC1.C1Preview.RenderText();rt1.Text="ThisisRenderText1.";//为RenderText1创建一个大纲视图条目this.c1PrintDocument1.Outlines.Add("RenderText1",rt1);//插入一个分页符。rt1.BreakAfter=C1.C1Preview.BreakEnum.Page;//创建RenderText2。C1.C1Preview.RenderTextrt2=newC1.C1Preview.RenderText();rt2.Text="ThisisRenderText2.";

//为RenderText2添加一个大纲视图条目。this.c1PrintDocument1.Outlines.Add("RenderText2",rt2);//将RenderText对象添加至文档。this.c1PrintDocument1.Body.Children.Add(rt1);this.c1PrintDocument1.Body.Children.Add(rt2);}

//构建文档

MakeDoc();//生成文档。this.c1PrintDocument1.Generate();C#

'构建文档MakeDoc()'生成文档。Me.C1PrintDocument1.Generate()

TowritecodeinVisualBasic

publicvoidMakeDoc(){//创建页面布局。C1.C1Preview.PageLayoutpl=newC1.C1Preview.PageLayout();//添加分栏的列pl.Columns.Add();pl.Columns.Add();pl.PageSettings=newC1.C1Preview.C1PageSettings();this.c1PrintDocument1.PageLayouts.Default=pl;//创建RenderText1。C1.C1Preview.RenderTextrt1=newC1.C1Preview.RenderText();rt1.Text="ThisisthehousethatJackbuilt.Thisisthecarrot,thatlayinthehousethatJackbuilt.Thisistherat,thatatethecarrot,thatlayinthehousethatJackbuilt.Thisisthecat,thatchasedtherat,thatatethecarrot,thatlayinthehousethatJackbuilt.";//添加分列符rt1.BreakAfter=C1.C1Preview.BreakEnum.Column;

文件格式

ExportProvider

BMPImage(.bmp)

BmpExportProvider

C1Document(.c1d)

C1dExportProvider

EnhancedMetafile(.emf)

EmfExportProvider

GIFImage(.gif)

GifExportProvider

HTML(.htm)

HtmlExportProvider

JPEGImage(.jpg)

JpegExportProvider

MicrosoftExcel(.xls)

XlsExportProvider

OpenXMLMSExcelFile(.xlsx)

XslsExportProvider

PNGImage(.png)

PngExportProvider

RichTextFormat(.rtf)

RtfExportProvider

TIFFImage(.tiff)

TiffExportProvider

DimlpAsInteger=0Whilelp

for(intlp=0;lp}

!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!为了以任意角度绘制文本,需要使用到Graphics对象,同时我们要创建一个子方法旋转文本。

PublicSubRotateText(ByValgAsGraphics,ByValfAsFont,ByValsAsString,ByValangleAsSingle,ByValbAsBrush,ByValxAsSingle,ByValyAsSingle)Ifangle>360ThenWhileangle>360angle=angle-360EndWhileElseIfangle<0ThenWhileangle<0angle=angle+360EndWhileEndIf'创建一个变换矩阵,并旋转指定角度。DimmyMatrixAsNewSystem.Drawing.Drawing2D.MatrixmyMatrix.Rotate(angle,Drawing2D.MatrixOrder.Append)'应用完变换之后绘制文本至屏幕。g.Transform=myMatrixg.DrawString(s,f,b,x,y)EndSub

publicvoidRotateText(Graphicsg,Fontf,strings,Singleangle,Brushb,Singlex,Singley){if(angle>360){

while(angle>360){angle=angle-360;}}elseif(angle<0){while(angle<0){angle=angle+360;}}//创建一个变换矩阵,并旋转指定角度。System.Drawing.Drawing2D.MatrixmyMatrix=newSystem.Drawing.Drawing2D.Matrix();myMatrix.Rotate(angle,System.Drawing.Drawing2D.MatrixOrder.Append);//应用完变换之后绘制文本至屏幕。g.Transform=myMatrix;g.DrawString(s,f,b,x,y);}

在Add和Generate方法调用之前,添加以下代码至Form_Load事件:VisualBasic

'设置列的颜色。table.Cols(0).Style.BackColor=Color.PapayaWhip'设置行的颜色table.Rows(0).Style.BackColor=Color.PaleTurquoise

//设置列的颜色。//设置行的颜色

table.Cells(1,1).Style.Font=NewFont("Tahoma",12,FontStyle.Bold)table.Cells(1,1).Style.TextColor=Color.DarkGreen

TowritecodeinC#

table.Cells[1,1].Style.Font=newFont("Tahoma",12,FontStyle.Bold);table.Cells[1,1].Style.TextColor=Color.DarkGreen;

Tochangethefontofatablecolumn,settheFontpropertyforthecolumn.AddthefollowingcodetotheForm_LoadeventbeforetheAddandGeneratemethods:TowritecodeinVisualBasic

table.Cols(0).Style.Font=NewFont("Arial",12,FontStyle.Bold)

table.Cols[0].Style.Font=newFont("Arial",12,FontStyle.Bold);

Tochangethefontofatablerow,settheFontpropertyfortherow.AddthefollowingcodetotheForm_LoadeventbeforetheAddandGeneratemethods:TowritecodeinVisualBasic

table.Rows(0).Style.Font=NewFont("Arial",12,FontStyle.Bold)

table.Rows[0].Style.Font=newFont("Arial",12,FontStyle.Bold);

table.Style.FlowAlign=FlowAlignEnum.Center

table.Style.FlowAlign=FlowAlignEnum.Center;

'创建一个矩形,添加两条交叉对角线。DimrectAsNewRenderRectangle(NewUnit(3,UnitTypeEnum.Cm),NewUnit(3,UnitTypeEnum.Cm))'添加对象至表格。table.Cells(1,1).Area.Children.Add(rect)table.Cells(1,1).Area.Children.Add(rl1)table.Cells(1,1).Area.Children.Add(rl2)

C#C#

//创建一个矩形,添加两条交叉对角线。RenderRectanglerect=newRenderRectangle(newUnit(3,UnitTypeEnum.Cm),newUnit(3,UnitTypeEnum.Cm));RenderLinerl1=newRenderLine(newUnit(0,UnitTypeEnum.Cm),newUnit(0,UnitTypeEnum.Cm),newUnit(3,UnitTypeEnum.Cm),newUnit(3,UnitTypeEnum.Cm),LineDef.Default);RenderLinerl2=newRenderLine(newUnit(3,UnitTypeEnum.Cm),newUnit(0,UnitTypeEnum.Cm),newUnit(0,UnitTypeEnum.Cm),newUnit(3,UnitTypeEnum.Cm),LineDef.Default);rect.Style.BackColor=Color.PeachPuff;//添加对象至表格。

'构建文档。MakeDoc()'生成文档。Me.C1PrintDocument1.Generate()

//构建文档。MakeDoc();//生成文档。this.c1PrintDocument1.Generate();

PrivateSubMakeDoc()'创建RenderText。Dimrt1AsNewC1.C1Preview.RenderTextrt1.Text="ThisisRenderText.ARenderImagewillbeonpage2andaRenderGraphiconpage3."'添加一个分页符。rt1.BreakAfter=C1.C1Preview.BreakEnum.Page'创建RenderImage。Dimri1AsNewC1.C1Preview.RenderImageri1.Image=System.Drawing.Image.FromFile("c:\c1logo.bmp")'添加一个分页符。ri1.BreakAfter=C1.C1Preview.BreakEnum.Page'创建一个RenderGraphic。Dimrg1AsNewC1.C1Preview.RenderGraphics()rg1.Graphics.FillEllipse(Brushes.DarkBlue,200,200,150,150)rg1.Graphics.FillPie(Brushes.DarkRed,200,200,150,150,-45,75)'添加RenderObjects至文档。Me.C1PrintDocument1.Body.Children.Add(rt1)Me.C1PrintDocument1.Body.Children.Add(ri1)Me.C1PrintDocument1.Body.Children.Add(rg1)EndSub

privatevoidMakeDoc(){//创建RenderText。C1.C1Preview.RenderTextrt1=newC1.C1Preview.RenderText();rt1.Text="ThisisRenderText.ARenderImagewillbeonpage2andaRenderGraphiconpage3.";//添加一个分页符。rt1.BreakAfter=C1.C1Preview.BreakEnum.Page;//创建RenderImage。C1.C1Preview.RenderImageri1=newC1.C1Preview.RenderImage();ri1.Image=System.Drawing.Image.FromFile("c:c1logo.bmp");//添加一个分页符。ri1.BreakAfter=C1.C1Preview.BreakEnum.Page;//创建一个RenderGraphic。C1.C1Preview.RenderGraphicsrg1=newC1.C1Preview.RenderGraphics();rg1.Graphics.FillEllipse(Brushes.DarkBlue,200,200,150,150);rg1.Graphics.FillPie(Brushes.DarkRed,200,200,150,150,-45,75);//添加RenderObjects至文档。this.c1PrintDocument1.Body.Children.Add(rt1);this.c1PrintDocument1.Body.Children.Add(ri1);this.c1PrintDocument1.Body.Children.Add(rg1);}

通过向Form_Load事件添加以下代码,您可以在运行时修改C1PrintDocument的页面设置:VisualBasic

Me.C1PrintDocument1.PageLayout.PageSettings.Landscape=True

this.c1PrintDocument1.PageLayout.PageSettings.Landscape=true;

此外,您还有机会在运行文档时,在C1PrintDocument的预览界面修改页面设置,通过页面设置对话框。

字段名称

描述

Paper

Orientation

选择打印方向,纵向或者横向。

Margins

自定义C1PrintDocument的页边距(上下左右)。

页面设置对话框具有以下命令按钮:

按钮名称

OK

应用设置到C1PrintDocument。

Cancel

取消对文档所做的页面设置的更改。

Printer

修改或查看打印机设置。

PrivateSubMakeDoc()'为文档定义页面布局。DimplAsNewC1.C1Preview.PageLayout()pl.PageSettings=NewC1.C1Preview.C1PageSettings()pl.PageSettings.PaperKind=System.Drawing.Printing.PaperKind.LegalMe.C1PrintDocument1.PageLayouts.Default=plEndSub

privatevoidMakeDoc(){//为文档定义页面布局。C1.C1Preview.PageLayoutpl=newC1.C1Preview.PageLayout();pl.PageSettings=newC1.C1Preview.C1PageSettings();pl.PageSettings.PaperKind=System.Drawing.Printing.PaperKind.Legal;this.c1PrintDocument1.PageLayouts.Default=pl;}

ImportsC1.C1Preview

usingC1.C1Preview;

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAs

System.EventArgs)HandlesMyBase.Load'创建一个新的RenderImage,使用您的图片名称和位置替换c1logo.png。DimimgAsNewC1.C1Preview.RenderImageimg.Image=Image.FromFile("C:\c1logo.png")'缩放图片为可用页面尺寸的50%,图片的高度将自动缩放。img.Width="50%"'Createthedocument.C1PrintDocument1.StartDoc()C1PrintDocument1.RenderBlock(img)C1PrintDocument1.EndDoc()EndSub

privatevoidForm1_Load(objectsender,EventArgse){//创建一个新的RenderImage,使用您的图片名称和位置替换c1logo.png。C1.C1Preview.RenderImageimg=newC1.C1Preview.RenderImage();img.Image=Image.FromFile("C:c1logo.png");//缩放图片为可用页面尺寸的50%,图片的高度将自动缩放。img.Width="50%";//创建文档。c1PrintDocument1.StartDoc();c1PrintDocument1.RenderBlock(img);c1PrintDocument1.EndDoc();}

PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load'创建水印和布局DimwaterMarkAsNewRenderImage

DimplAsNewC1.C1Preview.PageLayout()'设置水印图像;使用自己的图片替换c1logo.png。waterMark.Image=Image.FromFile("c:\c1logo.png")waterMark.Y=NewUnit(2,UnitTypeEnum.Inch)pl.Watermark=waterMarkMe.C1PrintDocument1.PageLayout=pl'生成文档。Me.C1PrintDocument1.Generate()EndSubC#

privatevoidForm1_Load(objectsender,EventArgse){//创建水印和布局RenderImagewaterMark=newRenderImage();C1.C1Preview.PageLayoutpl=newC1.C1Preview.PageLayout();//设置水印图像;使用自己的图片替换c1logo.png。waterMark.Image=Image.FromFile("c:c1logo.png");waterMark.Y=newUnit(2,UnitTypeEnum.Inch);pl.Watermark=waterMark;this.c1PrintDocument1.PageLayout=pl;//生成文档。this.C1PrintDocument1.Generate();}

在Form_Load事件中添加以下代码以设置ZoomMode为PageWidth:VisualBasic

Me.C1PrintPreviewControl1.PreviewPane.ZoomMode=C1.Win.C1Preview.ZoomModeEnum.PageWidth

this.c1PrintPreviewControl1.PreviewPane.ZoomMode=C1.Win.C1Preview.ZoomModeEnum.PageWidth;

AddHandlerPreviewPane.ContextMenuStrip.Opening,AddressOfContextMenuStrip_Opening

PreviewPane.ContextMenuStrip.Opening+=newCancelEventHandler(ContextMenuStrip_Opening);

PrivateSubContextMenuStrip_Opening(ByValsenderAsObject,ByValeAsCancelEventArgs)DimcmsAsSystem.Windows.Forms.ContextMenuStrip=DirectCast(sender,System.Windows.Forms.ContextMenuStrip)ForEachitemAsToolStripItemIncms.ItemsIfitem.Tag=ContextMenuTags.CopyThenitem.Visible=FalseEndIfNextEndSub

voidContextMenuStrip_Opening(objectsender,CancelEventArgse){System.Windows.Forms.ContextMenuStripcms=(System.Windows.Forms.ContextMenuStrip)sender;foreach(ToolStripItemitemincms.Items)if(item.Tag==ContextMenuTags.Copy)item.Visible=false;}

当您右键单击C1PrintPreviewControl控件上的预览面板时,可以注意到上下文菜单上不包含标准的"Copy"菜单项。禁用上下文菜单!MISSINGPHRASE'ShowAll'!!MISSINGPHRASE'HideAll'!当运行时通过右键单击一个C1PreviewPane时,会出现一个默认的上下文菜单。此上下文菜单包含操作预览的设置。您可以在代码中通过将C1PreviewPane的ContextMenuStrip属性设置为null禁用该上下文菜单。注意,这一操作无法通过设计器完成,只能通过代码做到。但是您可以在设计器中使用您自己的上下文菜单覆盖默认的菜单(通过在Form窗体上拖拽一个ContextMenuStrip组件,并设置C1PreviewPane的ContextMenuStrip至该组件)。当时用C1PrintPreviewControl控件时,预览面板可以通过控件上的PreviewPane属性进行访问。在Form_Load事件中添加以下代码以禁用C1PrintPreviewControl控件上的上下文菜单:VisualBasic

Me.C1PrintPreviewControl1.PreviewPane.ContextMenuStrip=Nothing

this.c1PrintPreviewControl1.PreviewPane.ContextMenuStrip=null;

您所达到的效果当您在C1PrintPreviewControl控件的预览面板右键单击时,不会出现默认的上下文菜单。

THE END
1.产品说明文模板.doc产品说明文产品说明文篇一在这个信息社会里,通讯变得十分重要,好在现在通讯设施和通讯工具都十分发达,我们现在用得最多的通讯工具就是手机,正是因为有了手机我们才可以随时随地的与别人进行联系。可以说,手机在我们的生活中发挥着举足轻重的作用。苹果手https://www.renrendoc.com/paper/360013064.html
2.设置表单设计用于编辑审批模板的表单样式,功能包括:设置控件、设置模板、其他设置、移动样式设置、样式设置。 设置控件(基础控件、互联控件) 通过模板的编辑表单,进入表单设计页面,该页面默认是编辑表单的移动样式(即手机端样式)。 可以将左边提供的表单控件,拖到表单中,也可以拖动排序。点击每个控件,可以在右边的控件设置中,对该控...https://vip.kingdee.com/article/254540714372518144?isKnowledge=2
3.zfcg.fuzhou.gov.cn/upload/document/20210531/a2f60d92e4d649a9...⑥其他需要说明的情况,包括但不限于:评标过程中投标人的澄清、说明或补正,评委更换等。 6.7评标委员会认为投标人的报价明显低于其他通过符合性审查投标人的报价,有可能影响产品质量或不能诚信履约的,应要求其在评标现场合理的时间内提供书面说明,必要时还应要求其一并提交有关证明材料;投标人不能证明其报价合理性的,...http://zfcg.fuzhou.gov.cn/upload/document/20210531/a2f60d92e4d649a9bd2b904312f583f0.html
4.青岛鼎信产品设计说明书.doc青岛鼎信产品设计说明书.doc 关闭预览 想预览更多内容,点击免费在线预览全文 免费在线预览全文 前 言 青岛鼎信通讯股份有限公司成立于2008年4月,总部坐落于青岛软件园内,注册资本3.9亿元。公司的主营业务涉及电力线载波通信芯片、总线通信芯片的研发以及智能电网、消防安防、智能家居等方面产品的应用及推广,目前电力载波...https://m.book118.com/html/2018/1230/6012131142001242.shtm
5.湖北省建设工程工程量清单计价定额(说明及计算规则)3.0.4 ?多层建筑坡屋面内和场馆看台下,当设计加以利用时净高超过2.1m的部位应计算全面积;净高在1.2m至2.1m的部位应计算1/2面积;当设计不利用或室内净高不足1.2m时不应计算面积。 3.0.5 ?地下室、半地下室(车间、仓库、商店、车站、仓库等),包括相应的永久性顶盖的出入口,应按其外墙上口(不包括采光井...https://www.51zxw.net/TechArticleDetails.aspx?id=2229
6.施工组织设计样本(房建工程)建筑技术文档学术交流文章本施工组织设计根据工程设计出图情况,建设单位对本工程要求和我司综合实力进行编制;其它未在图纸范围内内容和设计修改另做说明。 编制依据 1、Xx设计院设计的xx工程施工图(建施、结施、水施、电施) 2、 施工合同书 3、 图纸会审 4、《混凝土结构施工及验收规范》GB50204-92 ...http://www.cqtmjz.cn/news/show-631.html
7.20180222名片设计模板 链接:http://pan.baidu.com/s/1kViiac3 密码:1xke 企业产品画册 链接:http://pan.baidu.com/s/1gf7YAEf 密码:db0q 企业形象VI设计 链接:http://pan.baidu.com/s/1c1MbEpi 密码:z28r 包装设计素材 链接:http://pan.baidu.com/s/1sl0mHOh 密码:vuau ...https://www.jianshu.com/p/09546a87540f
1.2024年产品说明书范文联创号本文我们就《产品说明书》进行分析并总结一套撰写方法。一套比较用心的《产品说明书》,我认为至少包括五个方面:业务模式简述、合作模式与协议、产品框架简述、产品端与角色分工、产品功能与说明。 一、业务模式简述 做To B的产品,最难的就是业务理解。To B的产品功能仅是冰山一角,服务设计才是精髓。所以业务模式一...https://www.lian-bj.com/lc/562897.html
2.logo设计说明模板200字品牌logo设计说明logo设计说明模板200字【品牌logo设计说明】 走过一些著名品牌的标志历史,多少有点诗意。不管我们喜不喜欢,一些品牌对我们今天所感知的流行文化负有直接责任。他们的历史在一定程度上就是我们的历史。我们将某些情感与商标和品牌联系在一起,因为我们感觉它们永远存在。我不知道你的情况,但我和这个世界在一起才几十年...https://www.wandongli.com/news_detail.html?id=15842
3.项目计划书的模板(精选10篇)1、项目发起方的背景:就项目发起方的情况进行说明。 2、项目发起方的业务,包括近三年的财务报表: ⑴项目发起方的业务情况 ⑵项目发起方近三年的财务报表 3、项目发起方的主要股东和管理人员的简历。 四、 市场和销售安排 1、市场的基本情况: ⑴该产品的主要用途 ...https://m.ruiwen.com/gongwen/jihuashu/300495.html
4.帮助中心资费说明在线客服根据关键字“”搜索,为你匹配到213条结果 如何注册 1、您可以在中国统一教育网首页的登录框内点击“注册”。如下图所示: 2、填写手机号码,点击获取短信码,根据手机短信验证码进行填写,设置密码后,点击立即注册。如下图所示: 3、注册完成后,根据您的所在地区,选择对应地区,点击确定。如下图所示: ...https://www.tongyi.com/index.php/helpp/search
5.[精]电话营销方案范文7篇电话营销的方案设计模板5 2021年,旅顺支行在零售客户营销中另辟蹊径,广博社会资源,开展了系列对陌生大客户短信及电话营销策略,效果显著。2021年年度保险销售王李娜再次发力,成功营销行外新增资金100万购买保险产品。 4月7日,旅顺支行李娜营销一行外客户预约购买私人银行300万产品,在协助客户去他行办理电汇时得知客户资金...https://www.liuxue86.com/a/4725335.html
6.十分钟帮你了解保理——史上最全保理产品架构分析评分模型的作用:因为每个企业所在的行业会不同,所以评分标准也会不同,为了保证评分的准确性,我们会根据行业来设计不同的评分模型。 2.评级模型(评分指标) 一般情况下,评级模板会有个总分,这个可以根据具体情况设定100分、200分,然后在根据总分来评估多少分是优秀,多少分是差。下面以100分为满分来举例说明。 https://www.shangyexinzhi.com/article/details/id-120359/
7.(集合)现场管理细则对安装、使用有特殊规定的材料制品和调和施工应按其产品说明书的规定进行。 供需双方在装饰前应签订施工合同。合同中应包括设计要求、材料选型和等级、施工质量、期限、保修等内容。 2、我们的验收 管道排列应符合设计要求,管道安装应固定牢固,无松动,龙头、阀门安装平整,开启灵活,出水畅通,水表运转正常。采用目测和手感...https://www.jy135.com/guanli/1722578.html
8.ASP.NETCore适用于.NET的开源Web框架用于使用 .NET 和 C# 构建 Web 应用和服务的框架。 开始 Windows、Linux 和 macOS 上均支持 使用一个堆栈快速生成 Web 应用 ASP.NET Core 附带生成 Web 应用所需的一切内容,其中包括 Web UI 框架 Blazor,可用于快速创建在任何位置运行的快速、安全且可靠的 Web 应用。 https://asp.net/
9.关于转正工作总结模板5篇此项目为新产品,完全是全新设计,而且设计时间短,难度大,对我是一个严峻的考验。左工对我要求很严,找mts等产品的资料让 让我参考,给了我很大的自主性,经过努力,最终完成了设计任务。目前,此产品机械部分已安装完毕,等待控制器调试。 6.参与qpns-200h7、qpsb-200的设计 ...https://www.unjs.com/gongzuozongjie/2476856.html
10.机电之家机电行业b2b平台机电之家是机电行业网上机电市场,机电企业信息化专家,机电之家网提供:机电商机,机电五金展会,机电资料等https://www.jdzj.com/
11.中化岩土:发行股份及支付现金购买资产报告书(草案)(修订稿)成为国内为数不多从事通航机场投资、设计、建设和运营的企业。未来,公司还 将紧密围绕通航机场资源,实现深度的协同开发。 发行人拟通过全方位的布局,构建极具特色的建筑工程服务的生态体系。 (二)对财务状况和盈利能力的影响 根据致同会计师事务所(特殊普通合伙)出具的中化岩土2015年度《审计 报告》(致同审字(2016)...https://stock.stockstar.com/notice/JC2016092400000005_64.shtml
12.推荐施工方案范文集锦9篇水平测量:对设立好的钢筋桩进行水平测量,并标出摊铺层的设计标高,挂好钢筋,作为摊铺机的自动找平基线。 (六)沥青材料的准备,沥青材料应先加热,避免局部热过头,并保证按均匀温度把沥青材料源源不断地从贮料罐送到拌合设备内,不应使用正在起泡或加热超过160℃的沥青胶结料。 https://mip.wenshubang.com/fangan/1967161.html
13.关于举办第一届安徽信息工程学院“讯飞杯”大学生智能产品设计...提交产品海报设计作品文件格式为jpg,色彩模式RGB, 规格A3(297×420mm),分辨率300dpi,系列作品不得超过3张,单个文件不大于5 MB,作品同时需提供200字左右的创意说明文档1份。 2.产品包装设计 提交包装设计类方案展板,作品文件格式为jpg,色彩模式RGB, 规格A3(297×420mm),分辨率300dpi,展板内容应包含作品名称、设计...https://dean.aiit.edu.cn/info/154484
14.路基实习报告(精选13篇)模板是新浇混凝土成型用的模型板,模板系统由模板和支架两部分组成。模板的作用就是使混凝土构件按设计的形状和尺寸浇注成型;支架则是用来保持模板的空间设计位置。两个工地所用模板非常不同,跨河大桥的上部结构是由钢模板预制,高架桥是由现场用木模板现浇。 https://www.fwsir.com/Article/html/Article_20210722182218_1213927.html