Page tree
Skip to end of metadata
Go to start of metadata

存储过程可以帮助您在应用程序之间实现逻辑的一致实现,提高性能,并使用户无需了解数据库中表的详细信息。存储过程的主要优点之一是,您可以传入参数以使数据库过滤记录集。这将返回较小的数据集,报表可以更快,更轻松地进行操作。

您可以在C1FlexReport向导中选择从存储过程中填充报表。要打开C1FlexReport向导,请完成以下操作之一:

  • 在Visual Studio中,通过从C1FlexReport上下文菜单中选择“ 编辑报表”
  • 在Visual Studio中,通过从C1FlexReport任务菜单中选择“ 编辑报表”
  • C1FlexReportDesigner应用程序中,单击“报表选项卡中的“ 新建报表”按钮

有关访问“ 编辑报表”链接的更多信息,请参见  设计时支持

从存储过程填充报表与使用SQL语句或直接表没什么不同。在C1FlexReport向导的第一个屏幕中,单击省略号按钮以选择数据源。然后从可用数据源列表中选择一个存储过程

选择下一步,然后继续执行向导。

与加载其他形式的数据一样,您有两个选择:

  • 您可以使用DataSource的  ConnectionString和  RecordSource属性来选择数据源:

    在设计器中,使用“ 数据源”对话框选择连接字符串(通过单击省略号按钮“ ...”),然后从列表中选择要使用的表或存储。例如:

    connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Windows 8.1\Documents\ComponentOne Samples\Common\C1NWind.mdb;Persist Security Info=False;" RecordSource = "[Products by Category]"

    (在这种情况下,存储过程名称包含空格,因此将其括在方括号中)。

  • 您可以使用所需的任何方法创建数据源,然后将其分配给DataSource的Recordset属性:

    此方法需要您编写代码,当您将数据缓存在某处并希望使用它来生成多个报表时,此方法很有用。它会覆盖先前的方法(如果您指定ConnectionStringRecordSource和  Recordset,则C1FlexReport使用Recordset)。

    语法因要使用的连接/适配器的类型(OleDb,SQL,Oracle等)而异。获得正确语法的更简单方法是将表或proc从Visual Studio的Server Explorer拖到窗体上。这将添加所有必需的神秘元素,然后您可以遍历代码并挑选所需的片段。

    您可以通过存储过程的名称将存储过程指定为数据源。如果该存储过程具有参数,则将它们作为参数传递。例如,在针对MSSQL和ADVENTURE_WORKS.mdf数据库构建的报表定义中,在C1FlexReportDesigner中指定的SQL请求(根据需要调整ADVENTUREWORKS_DATA.MDF的路径)是:

    PARAMETERS Employee Int 290;
    DECLARE @RC int
    DECLARE @EmployeeID int
    set @EmployeeID = [Empoyee]
    EXECUTE @RC = [C:\ADVENTUREWORKS_DATA.MDF].[dbo].[uspGetEmployeeManagers]
    @EmployeeID
  • No labels