使用C1ReportDesigner控件 > 步骤五:实现SetDesignMode 方法 |
该简单的设计器有两种模式:报表设计模式和预览模式。当用户选择了一个新的报表或点击工具栏上的Design按钮时,该应用程序显示设计器控件。当用户单击“Preview ”按钮时,应用程序将当前报表呈现到预览控件并显示结果。
添加以下代码以实现SetDesignMode方法:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
Private Sub SetDesignMode(ByVal design As Boolean) ' 显示/隐藏预览/设计面板 _c1rd.Visible = design _c1ppv.Visible = Not design '在预览模式不显示属性 If Not design Then _lblPropGrid.Text = "Properties" _ppg.SelectedObject = Nothing End If ' 将报表的一个副本关联到预览控件 ' (因此脚本所引发的变更不会保存) If Not design Then _c1ppv.Document = Nothing _c1r.CopyFrom(_c1rd.Report) Cursor = Cursors.WaitCursor _c1r.Render() If _c1r.PageImages.Count > 0 Then _c1ppv.Document = _c1r End If Cursor = Cursors.Default End If ' 完成,更新UI UpdateUI() End Sub |
C#
C# |
拷贝代码
|
---|---|
private void SetDesignMode( bool design) { // 显示/隐藏预览/设计面板 _c1rd.Visible = design; _c1ppv.Visible = !design; //在预览模式不显示属性 if (!design ) { _lblPropGrid.Text = "Properties"; _ppg.SelectedObject = null; } // 将报表的一个副本关联到预览控件 // (因此脚本所引发的变更不会保存) if (!design ) { _c1ppv.Document = null; _c1r.CopyFrom(_c1rd.Report); Cursor = Cursors.WaitCursor; _c1r.Render(); if (_c1r.PageImages.Count > 0 ) _c1ppv.Document = _c1r; Cursor = Cursors.Default; } // 完成,更新UI UpdateUI(); } |
切换到设计模式非常容易,您所要做的就是显示设计器并隐藏预览控件。切换到预览模式则稍微有点复杂,因为它还需要呈现报表。
请注意,在开始呈现之前,该报表被复制到一个独立的C1Report组件。这是必要的操作,因为报表本身可能包含脚本代码,这可能会修改报表定义(字段颜色,可见性,等等),我们不想让这些更改应用到报表定义。