header
ask question
Click here to ask Question Now Its free No registration required. Flash, Flex, Flash Media Server, ActionScript,Adobe Air. Most questions receive a response in an hour.
Iss
Points:0
Posts:0

9/22/2010 7:52:09 PM

Title: Reporting tool for flex 3


Hi..I have a problem here on how to generate a report for my flex application. After I googling, I found out the Stimulsoft Reports.Fx for Flex is one of the reporting tool that can be buy in the market. The publisher provide free downloading software to testing.

After I downloaded and configure it and try to run, error happen. The error is 1046: Type was not found or was not a compile-time constant: [mx.binding]::IWatcherSetupUtil2. Actually the tool have the .swc file which are Stimulsoft_DesignerFx_Demo and Stimulsoft_ViewerFx_Demo. And I had compiled the both .swc file into libs folder. But the error still happen.

Can anyone give me some ideas on how to solve this problem or maybe suggest another tool to generate report for flex application.

Here the code for the program. Thank you.





<?xml version="1.0" encoding="utf-8"?>
<mx:Application
       xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
       minWidth="1024" minHeight="768" backgroundColor="#e8e8e8"
       initialize="onInitialize()">
	
	<mx:Script>
		<![CDATA[
			import mx.events.FlexEvent;
			import stimulsoft.report.StiReport;
			import stimulsoft.report.events.StiReportEvent;
			
//--------------------------------------
//  Constants
//--------------------------------------
			
			private const demoFile: String = "reports/SimpleList.mrt";
			//private const demoFile: String = "reports/TwoSimpleLists.mrt";
			//private const demoFile: String = "reports/Invoice.mrt";
			
//--------------------------------------
//  Fields
//--------------------------------------
			
			private var htmlText: String = "";
			private var fileReference: FileReference;
			private var report: StiReport;
			private var reportString: String;
			
//--------------------------------------
//  Events
//--------------------------------------
			
			private function onInitialize(): void
			{
				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;
				
				var parts: Array = demoFile.split("/");
				htmlText += "<b>Report file:</b>  " + parts[parts.length - 1] + "\n\n";
				textAreaReport.htmlText = htmlText;
			}
			
//--------------------------------------
//  Methods
//--------------------------------------
			
  private function addTextRenderReport(): void
  {
      htmlText += "<i><font color='#009900'>// Create new report object</font></i>\n<b><font color='#6699cc'>var" +
            "</font></b> report: StiReport = <b><font color='#0033ff'>new</font></b> StiReport();\n<i><font " +
            "color='#009900'>// Load report from XML string</font></i>\nreport.loadReportFromString(reportString);\n" +
            "<i><font color='#009900'>// Add event listener invoked after report is rendered</font></i>\nreport." +
            "addEventListener(StiReportEvent.RENDER_COMPLETE, onRenderComplete);\n<i><font color='#009900'>// " +
            "Render report</font></i>\nreport.render();\n\n<b>Rendering, please wait... </b>";
            textAreaReport.htmlText = htmlText;
  }
			
  private function addTextRenderComplete(): void
  {
       buttonSaveDocument.enabled = true;
       htmlText += "<b>complete</b>\n<i><font color='#009900'>// Remove event listener</font></i>\nreport." +
       "removeEventListener(StiReportEvent.RENDER_COMPLETE, onRenderComplete);\n<i><font color='#009900'>// " +
       "Save rendered document to XML string</font></i>\n<b><font color='#6699cc'>var</font></b> " +
       "documentString: String = report.saveDocumentToString();\n\n";
       textAreaReport.htmlText = htmlText;
   }
			
   private function addTextSaveDocument(): void
   {
        htmlText += "<i><font color='#009900'>// Save rendered report to XML ByteArray</font></i>\n<b><font " +
        "color='#6699cc'>var</font></b> buffer: ByteArray = report.saveDocumentToByteArray();\n\n<b>Saving " +
        "document file... </b>";
        textAreaReport.htmlText = htmlText;
    }
			
//--------------------------------------
//  Events: Render Report
//--------------------------------------
			
			private function onRenderReportClick(): void
			{
				addTextRenderReport();
				
				// Create new report object
				report = new StiReport();
				// Load report from XML string
				report.loadReportFromString(reportString);
				// Add event listener invoked after report is rendered
				report.addEventListener(StiReportEvent.RENDER_COMPLETE, onRenderComplete);
				// Render report
				report.render();
			}
			
			private function onRenderComplete(event: StiReportEvent): void
			{
				addTextRenderComplete();
				
				// Remove event listener
				report.removeEventListener(StiReportEvent.RENDER_COMPLETE, onRenderComplete);
				// Save rendered document to XML string
				var documentString: String = report.saveDocumentToString();
			}
			
//--------------------------------------
//  Events: Save Document
//--------------------------------------
			
			private function onSaveDocumentClick(): void
			{
				addTextSaveDocument();
				
				// Save rendered report to XML ByteArray
				var buffer: ByteArray = report.saveDocumentToByteArray();
				
				saveBuffer(buffer);
			}
			
			private function saveBuffer(buffer: ByteArray): void
			{
				fileReference = new FileReference();
				fileReference.addEventListener(Event.COMPLETE, onFileReferenceSave);
				fileReference.addEventListener(Event.CANCEL, onFileReferenceSave);
				//fileReference.save(buffer, "Document.mdc");
			}
			
			private function onFileReferenceSave(event: Event): void
			{
				var text: String = "complete";
				if (event.type == Event.CANCEL) text = "cancel";
				
				htmlText += "<b>" + text + "</b>\n\n";
				textAreaReport.htmlText = htmlText;
				
				fileReference.removeEventListener(Event.COMPLETE, onFileReferenceSave);
				fileReference.removeEventListener(Event.CANCEL, onFileReferenceSave);
			}

		]]>
	</mx:Script>
	
	
	<mx:Button id="buttonRenderReport" x="30" y="30" width="170" label="Render Report"       
                        click="onRenderReportClick()" />
	<mx:Button id="buttonSaveDocument" x="30" y="60" width="170" label="Save Document File"   
                        enabled="false" click="onSaveDocumentClick()" />
	<mx:TextArea id="textAreaReport" left="230" right="30" top="30" bottom="30" borderColor="#808080" 
                        borderStyle="solid" editable="false" fontFamily="Courier New" fontSize="14" wordWrap="false" />
	
</mx:Application>





1
Rex
Points: 1280
Posts:0
9/23/2010 2:26:47 AM



the error is internal error of the reporting swc so you should try to contact the swc company, they will surely assist you to solve this fast

2
Iss
Points: 0
Posts:0
9/23/2010 2:42:33 AM



Thank you so much Rex...


Post your Reply
Name  

Email

Type your Reply or Answer

Are you human? What is 3+7 



Members Login

Email  
Password
Forgot Password





This website focus on: Flash | Flex | FMS | RED5 | WOWZA | Flash Media Server | Adobe AIR | ActionScript,Flash Solutions | Flash Question | Flash Answers | Flash Developers | Flash Problem, Flash Help, Flash bugs, Flash workaround | Flash Blog | Flex Question Answers | Flash Forum | Flex Development | Actionscript development | Flash development | Adobe AIR development
Copyright © 2008 AskMeFlash.com. All rights reserved. Privacy Policy | Terms & Conditions