Apache flex 如何从FlexUI转换到ApacheRoayle
我有Main.MXML文件在其中我有另一个view ReportTab.mxmlnavas是这个页面的根标记在这个下面我有更多的另一个页面RaviReport.mxmlnavas是这个页面的根标记在这个页面中我有formItem一旦我提交它们,我需要使用RemoteObject标记从备份中获取数据,我必须在DATAGRID中呈现数据。当我加载Main.mxml文件时,我可以成功编译,但控制台中出现错误。 EventDispatcher.js:74未捕获类型错误:indicatorClass不是构造函数 在mx.containers.FormItem.mx_containers_FormItem_显示指示器FormItem.js:718 位于mx.containers.FormItem.updateDisplayList FormItem.js:397 在mx.containers.FormItem.updateFormiteDisplayList FormItem.js:409 在mx.containers.FormItem.formitelayout.updateDisplayList FormItem.js:1101 位于mx.containers.FormItem.FormItemLayout.mx.containers.beads.BoxLayout.layout BoxLayout.js:115 在mx.containers.FormItem.FormItemLayout.org.apache.royale.core.LayoutBase.performLayout LayoutBase.js:247 在mx.containers.FormItem.FormItemLayout.org.apache.royale.core.LayoutBase.handlelayoutRequired LayoutBase.js:152 在mx.containers.FormItem.goog.events.EventTarget.fireListeners EventTarget.js:284 位于Function.goog.events.EventTarget.dispatchEventInternal EventTarget.js:381 在mx.containers.FormItem.goog.events.EventTarget.dispatchEvent EventTarget.js:196 我已经尝试删除FormItem,并且刚刚添加了RaviReport.mxml,但是我的画布隐藏了label元素。请建议我如何在Royale中使用navigationBar或ViewSTACK集成视图 Main.MXML 错误 EventDispatcher.js:74未捕获类型错误:indicatorClass不是构造函数 在mx.containers.FormItem.mx_containers_FormItem_显示指示器FormItem.js:718 位于mx.containers.FormItem.updateDisplayList FormItem.js:397 在mx.containers.FormItem.updateFormiteDisplayList FormItem.js:409 在mx.containers.FormItem.formitelayout.updateDisplayList FormItem.js:1101 位于mx.containers.FormItem.FormItemLayout.mx.containers.beads.BoxLayout.layout BoxLayout.js:115 在mx.containers.FormItem.FormItemLayout.org.apache.royale.core.LayoutBase.performLayout LayoutBase.js:247 在mx.containers.FormItem.FormItemLayout.org.apache.royale.core.LayoutBase.handlelayoutRequired LayoutBase.js:152 在mx.containers.FormItem.goog.events.EventTarget.fireListeners EventTarget.js:284 位于Function.goog.events.EventTarget.dispatchEventInternal EventTarget.js:381Apache flex 如何从FlexUI转换到ApacheRoayle,apache-flex,apache-royale,Apache Flex,Apache Royale,我有Main.MXML文件在其中我有另一个view ReportTab.mxmlnavas是这个页面的根标记在这个下面我有更多的另一个页面RaviReport.mxmlnavas是这个页面的根标记在这个页面中我有formItem一旦我提交它们,我需要使用RemoteObject标记从备份中获取数据,我必须在DATAGRID中呈现数据。当我加载Main.mxml文件时,我可以成功编译,但控制台中出现错误。 EventDispatcher.js:74未捕获类型错误:indicatorClass不是构
在mx.containers.FormItem.goog.events.EventTarget.dispatchEvent EventTarget.js:196如果您从一个简单的工作文件开始并开始向其中添加内容,我的建议是 在Royale中,没有像Flex MX/Spark那样只有一个UI集。您可以选择Basic、Jewel、Emulation MX/Spark和MDL。所以第一件事是:你想选择什么UI集?。考虑到Emulation MX/Spark仍在进行中,尚未完全工作。也许Jewel或Basic更容易实现,但您需要根据新的标记和API调整UI代码 例如,在Jewel中,您可以检查和查看它是如何完成的
嗨,拉维坎特,这种回答太笼统了。我可以给你一些观点,但很难将这里的多个部分连接到这些观点。还有一些部分,比如如何在视图中加载深度为N倍的视图,不容易理解您所指的内容。我建议你在新的答案中更简短地回答你的具体疑问或问题,这样我们就可以帮助你了。嗨@CarlosRovira我已经更新了我的问题,请你再重复一遍这个问题。提前谢谢。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:view="com.sp.cpem.view.*" backgroundColor="#FFFFFF" verticalGap="0" horizontalGap="0" paddingTop="0" paddingLeft="2" paddingRight="2" paddingBottom="2" pageTitle="EXAMPLE">
<mx:Script>
<![CDATA[
]]>
</mx:Script>
<mx:ViewStack id="myViewStack" borderStyle="none" width="100%" height="100%">
<view:ReportTAB id ="repo" label="REPORTING" />
</mx:ViewStack>
</mx:Application>
**ReportTAB.MXML:**
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:view="com.sp.cpem.view.reports.*" width="100%" height="100%">
<mx:TabNavigator width="100%" height="100%">
<view:RaviReport id = "raviReport" label="Ravi Report"/>
</mx:TabNavigator>
</mx:Canvas>
**RaviReport.MXML:**
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:view="com.sp.cpem.view.*" width="100%" height="100%" creationComplete="loadPage();">
<mx:RemoteObject id="pageService" destination="pageService" result="handlePageResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:RemoteObject id="loaderService" destination="reportService" result="handleLoadResult(event)" fault="handleFault(event)" showBusyCursor="true" />
<mx:Script>
<![CDATA[
import com.sp.cpem.vo.StarsStdValues;
import mx.managers.CursorManager;
import com.as3xls.xls.Sheet;
import com.as3xls.xls.ExcelFile;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.collections.ArrayCollection;
import flash.net.FileReference;
import mx.controls.Alert;
private var pageArray:ArrayCollection = new ArrayCollection();
private var fileReference:FileReference;
private var sheet:Sheet;
[Bindable]
private var reportDG:ArrayCollection = new ArrayCollection();
[Bindable]
private var assetDP:ArrayCollection = new ArrayCollection();
[Bindable]
private var locationDP:ArrayCollection = new ArrayCollection();
[Bindable]
private var fields:Array = new Array();
[Bindable]
public var abcpRecords:int = 0;
public var d:Date = null;
import flash.external.*;
private function exportToExcel():void{
if(fromDate.selectedDate == null || toDate.selectedDate == null || asset.selectedItem == null || location.selectedItem == null )
Alert.show("Please input '*' required fields.","Information", Alert.OK, null, null, null, Alert.OK);
else{
var s:String;
var locStr:String;
d = DateField.stringToDate(toDate.text, toDate.formatString);
d.hours = 23;
d.minutes = 59;
d.seconds = 59;
d.milliseconds = 999;
locStr='';
//var myArray:Array = new Array(10);
var myArray:Array = location.selectedItems;
var obj:StarsStdValues;
for (var i:uint; i < myArray.length; i++) {
obj = myArray[i];
if(i==0)
locStr = obj.value;
else
locStr = locStr+","+obj.value;
}
if (ExternalInterface.available) {
var formatter : DateFormatter;
formatter = new DateFormatter();
formatter.formatString = "DD.MMMM.YYYY KK:NN:SS A";
var jsFunction:String = "toABCPExcel";
s = ExternalInterface.call(jsFunction,formatter.format(fromDate.selectedDate),formatter.format(d),locStr);
} else {
s = "JS not available";
}
}
}
/* We are using JSP to create report not FLEX due to 255 char limit issue
private function exportToExcel1():void
{
sheet = new Sheet();
var dataProviderCollection:ArrayCollection = dataGrid.dataProvider as ArrayCollection;
var rowCount:int = dataProviderCollection.length;
var columns:Array = dataGrid.columns;
var colCount:int =columns.length;
sheet.resize(rowCount+4,colCount);
var i:int = 0;
for each (var field:DataGridColumn in columns){
fields.push(field.dataField.toString());
sheet.setCell(0,i,field.headerText.toString());
i++;
}
for(var r:int=0;r<rowCount;r++)
{
var record:Object = dataProviderCollection.getItemAt(r);
/*insert record starting from row no 2 else
headers will be overwritten* /
insertRecordInSheet(r+1,sheet,record);
}
var xls:ExcelFile = new ExcelFile();
xls.sheets.addItem(sheet);
var bytes:ByteArray = xls.saveToByteArray();
var fr:FileReference = new FileReference();
fr.save(bytes,"LOCExposureReport.xls");
}
private function insertRecordInSheet(row:int,sheet:Sheet, record:Object):void
{
var i:int = 0;
for each(var field:String in fields){
if(record[field] == null){
//Do nothing if its null
}else{
sheet.setCell(row,i,record[field].toString());
}
i++;
}
//Alert.show(record["comments"].toString(),"Information", Alert.OK, null, null, null, Alert.OK);
}*/
public function loadPage():void {
pageService.getDP("ABCPReport");
}
private function handlePageResult(ev:ResultEvent):void {
pageArray = ev.result as ArrayCollection;
assetDP =pageArray[0] as ArrayCollection;
locationDP =pageArray[1] as ArrayCollection;
asset.selectedIndex = 0;
location.selectedIndex = 0;
}
public function getReport():void {
//Alert.show(toDate.value.toString(),"Information", Alert.OK, null, null, null, Alert.OK);
d = DateField.stringToDate(toDate.text, toDate.formatString);
d.hours = 23;
d.minutes = 59;
d.seconds = 59;
d.milliseconds = 999;
//toDate.selectedDate = d;
//toDate.selectedDate = DateField.dateToString(d, toDate.formatString);
if(fromDate.selectedDate == null || toDate.selectedDate == null || asset.selectedItem == null || location.selectedItem == null )
Alert.show("Please input '*' required fields.","Information", Alert.OK, null, null, null, Alert.OK);
else
loaderService.getReport(asset.selectedItems,fromDate.selectedDate,d,location.selectedItems); //toDate.selectedDate
}
private function handleLoadResult(ev:ResultEvent):void {
reportDG = ev.result as ArrayCollection;
abcpRecords = reportDG.length;
this.label = "ABCP Exposure Report (" +abcpRecords +")";
}
private function handleFault(ev:FaultEvent):void {
Alert.show("Error: " + ev.fault.faultCode + " - " + ev.fault.faultDetail + " - " + ev.fault.faultString,"Information", Alert.OK, null, null, null, Alert.OK);
}
private function dateFunc( item:Object, column:DataGridColumn):String
{
return formatDate.format(item[column.dataField]);
}
//NUMERIC SORTING obj1[fieldName] sortCompareFunction="sortNumeric"
private function sortMaturityDate(obj1:Object, obj2:Object):int {
var value1:Date = (obj1.strmaturityDate =='' || obj1.strmaturityDate == null) ? null : new Date(obj1.strmaturityDate);
var value2:Date = (obj2.strmaturityDate == '' || obj2.strmaturityDate == null) ? null : new Date(obj2.strmaturityDate);
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
}
]]>
</mx:Script>
<mx:DateFormatter id="formatDate" formatString ="D-MMM-YYYY"/>
<mx:VDividedBox width="100%" height="100%">
<mx:HBox height="15%" width="100%">
<mx:FormItem label="Location:" required="true">
<mx:List id="location" dataProvider="{locationDP}" labelField="value" allowMultipleSelection="true" rowCount="4"/>
</mx:FormItem>
<mx:FormItem label="Asset Type:" required="true">
<mx:List id="asset" dataProvider="{assetDP}" labelField="value" allowMultipleSelection="true" rowCount="4"/>
</mx:FormItem>
<mx:FormItem label="From Date:" required="true">
<mx:DateField id="fromDate" yearNavigationEnabled="true"/>
</mx:FormItem>
<mx:FormItem label="To Date:" required="true">
<mx:DateField id="toDate" yearNavigationEnabled="true"/>
</mx:FormItem>
<mx:Button label="Submit" click="getReport()" toolTip="Exposure Report." />
<mx:Button label="Save To Excel" click="exportToExcel();"/>
</mx:HBox>
<mx:VBox height="85%" width="100%">
<mx:DataGrid id="dataGrid" height="100%" width="100%" dataProvider="{reportDG}" horizontalScrollPolicy="on">
<mx:columns>
<mx:DataGridColumn dataField="alertId" headerText="Alert ID" showDataTips="true" dataTipField="alertId"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:VDividedBox>
</mx:Canvas>