【Stimulsoft Reports Flex教程】从代码连接到数据库

下载Stimulsoft Reports Flex最新版本

此示例显示如何从代码连接到XML或SQL数据库。要从代码创建和显示查看器,您需要调用StiViewerFx.initialize() 静态方法。在应用程序的initialize事件中调用此方法。还要加载报表模板文件并将其分配给reportString变量:

<mx:Application
    xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    minWidth="1024" minHeight="768" backgroundColor="#e8e8e8"
    initialize="onInitialize()" xmlns:viewer="stimulsoft.viewer.*">
 
private function onInitialize(): void
{
    StiViewerFx.initialize();
 
    var request: URLRequest = new URLRequest(demoFile);
    var loader: URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, onLoadComplete);
    loader.load(request);
}
 
private function onLoadComplete(event: Event): void
{
    var loader: URLLoader = event.target as URLLoader;
    reportString = loader.data as String;
}

要创建XML数据连接,需要使用StiXmlDatabase类。在构造函数的参数中,您应该传递数据连接名称,部分传递给XSD架构和XML数据文件的路径。然后使用report.dictionary.databases.add()方法将创建的数据连接对象添加到报表中。如果需要清除报表中的现有数据连接,可以使用report.dictionary.databases.clear()方法:

private function onConnectToXMLClick(): void
{
    // Create new report object
    var report: StiReport = new StiReport();
    // Load report from XML string
    report.loadReportFromString(reportString);
    // Create new XML database with same name "Demo"
    var database: StiXmlDatabase = new StiXmlDatabase("Demo", "reports/data/Demo.xsd", "reports/data/Demo.xml");
    // Clear all existing databases in report 
    report.dictionary.databases.clear();
    // Add database to report
    report.dictionary.databases.add(database);
    // Show report in Viewer dialog window
    report.showDialog();
}

要创建MySQL数据连接,操作将是相同的,除了您需要使用StiMySqlDatabase类。在构造函数的参数中,您应该传递数据连接名称和别名,连接字符串和标志以进行密码管理:

private function onConnectToMySqlClick(): void
{
    // Create new report object
    var report: StiReport = new StiReport();
    // Load report from XML string
    report.loadReportFromString(reportString);
    // Create new MySql database with same name "Demo"
    var database: StiMySqlDatabase = new StiMySqlDatabase("Demo", "",
        "Server=localhost;Port=3306;Database=db_name;Uid=root;Pwd=;", false);
    // Clear all existing databases in report 
    report.dictionary.databases.clear();
    // Add database to report
    report.dictionary.databases.add(database);
}

下面的屏幕截图中,您可以看到示例代码的结果。

Stimulsoft

下载示例

GrapeCity年末福利大放送

猜你喜欢

转载自blog.csdn.net/xiaochuachua/article/details/85060423