summaryObjectFunction에서 문자열을 반환할 수 있습니까?
-
09-06-2019 - |
문제
플렉스에서 AdvancedDatGrid
, 우리는 많은 그룹화를 수행하고 있습니다.대부분의 열은 부모와 자식에 대해 동일하므로 MAX, MIN, AVG가 아닌 그룹의 첫 번째 값을 요약으로 표시하고 싶습니다.
이 코드는 숫자 값에서는 작동하지만 텍스트 값에서는 작동하지 않습니다(주석 처리된 줄이 없으면 NaN을 얻습니다).
private function firstValue(itr:IViewCursor,field:String, str:String=null):Object
{
//if(isNaN(itr.current[field])) return 0 //Theory: Only works on Numeric Values?
return itr.current[field]
}
XML:
(mx:GroupingField name="Offer")
(mx:summaries)
(mx:SummaryRow summaryPlacement="group")
(mx:fields)
(mx:SummaryField dataField="OfferDescription" label="OfferDescription" summaryFunction="firstValue"/)
(mx:SummaryField dataField="OfferID" label="OfferID" summaryFunction="firstValue"/)
(/mx:fields)
(/mx:SummaryRow)
(/mx:summaries)
(/mx:GroupingField)
OfferID
님의 작업이 맞습니다. OfferDescription
그렇지 않습니다.
해결책
summaryFunction이 숫자를 반환해야 하는 것 같습니다.에 따르면 Adobe 버그 추적기, 문서의 버그입니다.
Sameer Bhatt의 의견:
문서에서는 Sum, Min, Max, Avg에 대한 내장 요약 기능 및 요약 데이터가 포함 된 숫자를 반환합니다.
그래서 사람들은 아이디어를 얻을 수 있지만 반환 유형이 숫자여야 한다는 점을 분명히 언급해야 한다는 점에 동의합니다.
우리는 나중에 더 많은 것을 쉽게 추가할 수 있도록 객체로 유지했습니다.
다른 팁
표시할 문자열을 가져와야 하는 경우 AdvancedDataGridColumn에서 label함수를 사용하세요.그러면 요약 행이 렌더링됩니다.
(mx:AdvancedDataGridColumn headerText="Comment" width="140" dataField="comment" labelFunction="formatColumn" /)
private function getNestedItem(item:Object):Object {
try {
if (item.undefined[0]) {
item = getNestedItem(item.undefined[0]);
}
} catch (e:Error) {
// leave item alone
}
return item;
}
private function formatColumn(item:Object, column:AdvancedDataGridColumn):String {
var output:String;
// If this is a summary row
if (item.GroupLabel) {
item = getNestedItem(item);
}
switch (column.dataField) {
case 'comment':
return item.comment;
}
}
제휴하지 않습니다 StackOverflow