Как преобразовать данные XML в число перед заполнением AdvancedDataGrid - PullRequest
0 голосов
/ 16 июня 2011

Я импортирую данные XML, чтобы заполнить AdvancedDataGrid (используя Flex 4.5).
Этот ADG правильно заполнен данными, столбцы отображают правильную информацию и т. Д. И т. Д.

Я хотел бы обобщить эту ADG, используя

<mx:SummaryRow summaryPlacement="group">
    <mx:SummaryField2 dataField="Cost" label="amount" summaryOperation="SUM">
</mx:SummaryRow>

Но есть проблема! Действительно, данные 'Cost' импортируются как 'Strings', и поэтому я не могу сделать SUM ... Я просто получаю хороший 0 в результате! Я хотел бы преобразовать эти данные в числа, чтобы сложение можно было обработать. Это преобразование должно быть сделано до заполнения ADG, я думаю.

Я уже пытался реализовать пользовательскую сводную операцию, но мне не повезло ...

public function calculateSummary(data:Object, field:SummaryField2, rowData:Object):void
{
    var dataField:String = field.dataField;
    var value:Number = Number(rowData[dataField]);
    Alert.show(rowData[dataField]);
    if (!data.hasOwnProperty(dataField))
        data[dataField] = value ;
    else
        data[dataField] += value;   
}

Оповещение всегда отображает пустое сообщение, данные не передаются в эту функцию, я думаю

Есть еще одна вещь: пользователь может динамически вставлять новые данные в XML, и эта вставка должна обновлять результат SUM.

Кто-нибудь может мне помочь? Я продолжу поиск, и если я что-то найду, я напишу это: D

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 июня 2011

Если вы работаете с XML, не забудьте использовать «@» для определения атрибута (@Cost).

<mx:SummaryRow summaryPlacement="group">
    <mx:SummaryField2 dataField="@Cost" label="amount" summaryOperation="SUM">
</mx:SummaryRow>

Вам не нужно конвертировать строки в числа, фреймворк уже делает это внутри.

0 голосов
/ 16 июня 2011

Вы можете преобразовать astring в число, выполнив что-то вроде этого:

var myNewNumber : Number = Number(stringValue);

Где именно вы хотите это сделать в отношении своего кода, я не уверен.Вы можете определенно преобразовать свой XML в массив объектов, а затем использовать этот массив в качестве своего dataProvider.Я подозреваю, что вы также можете сделать это как часть процесса для расчета общей суммы.

...