Flex - 截断显示为字符串的十进制值
Posted
技术标签:
【中文标题】Flex - 截断显示为字符串的十进制值【英文标题】:Flex - Truncate decimal values displayed as strings 【发布时间】:2015-11-03 08:31:42 【问题描述】:我在我的 flex 应用程序中使用以下 AdvancedDataGrid 控件:
<mx:AdvancedDataGrid id="tableDataGrid" editable="false" dataProvider="tableDataGridLst"
sortableColumns="true" draggableColumns="false" resizableColumns="true" headerStyleName="adgHeaderStyle"
textAlign="center" headerWordWrap="true" verticalScrollPolicy="on" headerHeight="50"
rowCount="tableDataGridLst.length + 2" >
<mx:columns>
<mx:AdvancedDataGridColumn headerText="Actual Hours Iet" dataField="actualhoursIet" dataTipField="actualhoursIet"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Actual Imp Iet" dataField="actualIet" dataTipField="actualIet"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Actual Hours 3PGH" dataField="actualhours3pgh" dataTipField="actualhours3pgh"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Actual Imp 3PGH" dataField="actual3pgh" dataTipField="actual3pgh"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Actual Hours RH" dataField="actualhoursrh" dataTipField="actualhoursrh"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Actual Imp RH" dataField="actualrh" dataTipField="actualrh"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="EMD AS" dataField="asValue" dataTipField="asValue"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="EMD TN" dataField="tnValue" dataTipField="tnValue"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Year" dataField="year" dataTipField="year"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Month(AS)" dataField="monthAS" dataTipField="monthAS"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="No of Act(AS)" dataField="noOfActASCost" dataTipField="noOfActASCost"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<!--<mx:AdvancedDataGridColumn headerText="Total Hours(AS) " dataField="hoursAS" dataTipField="hoursAS"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
--><mx:AdvancedDataGridColumn headerText="Month(TN)" dataField="monthTN" dataTipField="monthTN"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="No of Act(TN)" dataField="noOfActTNCost" dataTipField="noOfActTNCost"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Total Hours(1S/1F/1B)(TN)" dataField="hoursTN" dataTipField="hoursTN"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="Status Tracking(TN)" dataField="statusTracking" dataTipField="statusTracking"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
<mx:AdvancedDataGridColumn headerText="BAU(TN)" dataField="BAU" dataTipField="BAU"
textAlign="left" headerWordWrap="true" fontSize="11" showDataTips="true" />
</mx:columns>
</mx:AdvancedDataGrid>
基本上,我从 dataProvider tableDataGridList 获取数据,这些值基本上是小数,在条形图列上显示为字符串:
我要做的就是将这些十进制值截断为 int 值(如 100.56 到 100),然后显示它们。我该怎么做?
【问题讨论】:
【参考方案1】:您需要定义图表 dataTipFunction 来解决此问题。
chartInstance.dataTipFunction = myDataTipFunction
private function myDataTipFunction(hd:HitData):String
return hd.item.label + "\n " + Math.round(parseInt(hd.item.y));
代替“hd.item.y”,您需要更新变量,例如“hd.item.yourVariable”。
通过这种方式,您可以自定义图表的数据提示。
希望这对你有用。
【讨论】:
感谢先生的回复。实际上,我对 flex 还是很陌生。那么我应该在哪里写这段代码呢?在我的 .mxml 文件的开头? 您应该将此代码放在实例化图表组件的同一文件中。如果它在脚本块内的 mxml 文件中,或者如果它在 Actionscript 文件(.as)文件中,则在您实例化图表组件的第一行并将 myDataTipFunction() 函数放置在同一类中的任何位置。以上是关于Flex - 截断显示为字符串的十进制值的主要内容,如果未能解决你的问题,请参考以下文章