WinForms版本OLAP快速入门 > 定制C1OlapPage > 持久化OLAP视图 |
我们首先创建一个默认视图到之前的应用。想要完成这部分工作,你需要在你的Visual Studio项目中右键单击解决方案浏览器中的项目结点,单击”Properties”条目,然后选择”Settings”选项卡,创建一个叫做”DefaultView”的字符串类型设置:
该设置将用于在会话之间持久化视图,因此任何由用户产生的定制将在应用关闭之后自动进行保存,然后在下一次启动后进行恢复。
想要实现这一功能,打开”Form1”表单,切换到编码视图,然后将下述代码添加到应用中:
private void Form1_Load(object sender, EventArgs e)
{
// auto-generated:
// This line of code loads data into the 'nWINDDataSet.Invoices' table.
this.invoicesTableAdapter.Fill(this.nWINDDataSet.Invoices);
// show default view: this assumes an application
// setting of type string called "DefaultView"
var view = Properties.Settings.Default.DefaultView;
if (!string.IsNullOrEmpty(view))
{
c1OlapPage1.ViewDefinition = view;
}
else
{
// build default view now
var olap = c1OlapPage1.OlapEngine;
olap.BeginUpdate();
olap.RowFields.Add("ProductName");
olap.ColumnFields.Add("Country");
olap.ValueFields.Add("ExtendedPrice");
olap.EndUpdate();
}
}
// closing form, save current view as default for next time
protected override void OnClosing(CancelEventArgs e)
{
// save current view as new default
Properties.Settings.Default.DefaultView = c1OlapPage1.ViewDefinition;
Properties.Settings.Default.Save();
// fire event as usual
base.OnClosing(e);
}
当你打开表单时,第一行应该始终如此。它是加载数据时自动生成的。
下一部分代码检查”DefaultView”设置是否已经可用。如果可用,则将其赋值给C1OlapPage.ViewDefinition属性。这将应用于整个视图设置,包括所有字段以及它们各自的属性,例如图表,表格以及报表选项。
如果”DefaultView”设置不可用,代码将创建一个视图,并在RowFields, ColumnFields以及ValueFields集合中添加字段。此视图将根据产品和国家显示销售总额(总价数值之和)。
接下来的代码重载表单的OnClosing方法,并且通过读取C1OlapPage.ViewDefinition保存当前视图,然后赋值给保存在本地的”DefaultView”设置。
如果你现在运行项目,你会注意到它将启动使用代码创建的默认视图。如果你对视图作出任何改变,关闭应用然后重启它,将会看到你的改变已经被恢复。