Nous avons une exigence dans notre projet de parcourir & télécharger un fichier XML et le montrer sur la grille de données, modifier la grille, puis enregistrez le contenu dans la base de données. Je suis en mesure de voir des exemples qui prennent un XML à partir d'un dossier spécifique et de montrer sur la grille de données, mais pas en mesure de voir des exemples qui recherchent un XML, puis le télécharger. Ce serait génial si quelqu'un peut me diriger vers les exemples ou un exemple de code. Notre XML ressemble à:Flex Télécharger XML vers datagrid/database
<VisitImportList>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>4</MeasurementCollectionId>
<WeightConfirmationCode>5</WeightConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitDate>2010-10-22T16:25:26.593Z</VisitDate>
</Visit>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>3</MeasurementCollectionId>
<BloodPressureConfirmationCode>4</BloodPressureConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitInvalidCode>1</VisitInvalidCode>
<VisitInvalidReasonText>No Dates</VisitInvalidReasonText>
</Visit>
</VisitImportList>
Ok j'ai pu montrer les données sur la grille à l'aide FileReference pour le téléchargement et XML/XMLListCollection. Maintenant, le problème est lorsque j'essaie d'enregistrer dans la base de données. Je ne voulais pas créer un nouveau fil, donc je l'ai ajouté ma question ici:
private function saveVisit(event:MouseEvent): void
{
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder();
var data:Object = decoder.decodeXML(xmlDoc);
var array:Array = ArrayUtil.toArray(data.VisitImportList.Visit);
tempCollection = new ArrayCollection(array);
Maintenant, j'ai les données dans mon ArrayCollection (tempCollection). Mais il contient des objets génériques et j'ai besoin de les convertir en objet visite. Je veux donc faire une boucle dans ArrayCollection, convertir l'objet en objets Visit personnalisés et les ajouter à une autre collection (je suis sûr que ce n'est pas la bonne façon de faire, mais je ne suis pas capable de trouver un suppléant):
for (var i:int = 0; i < tempCollection.length; ++i)
{
model.visit = new Visit();
model.visit = Visit(tempCollection.getItemAt(i, 0)); // This line gives the error Type Coercion failed: cannot convert [email protected] to com.model.Visit.
model.visit = tempCollection.getItemAt(i) as Visit; // This line always has Visit as null eventhough the tempCollection has 2 objects
model.pvList.visits.addItemAt(Visit, i);
}
alors quelqu'un peut-il aider sur la façon de boucler à travers le ArraCollection et convertir l'AS objet pour objet de visite personnalisé et ajoutez à un autre ArrayCollection ou un moyen plus facile de le faire
Merci
Harish
Merci Faheem. J'ai été capable d'utiliser FileReference pour browse/upload et XML/XMLListCollection pour afficher sur le DataGrid. Mais maintenant, j'ai un autre problème lors de l'enregistrement dans la base de données. J'ai ajouté ceci à la question principale. S'il vous plaît aider quelqu'un – Harry
C'est la façon la plus simple de le faire ... http://cookbooks.adobe.com/post_Using_a_Factory_Method_to_convert_raw_XML_into_cus-12764.html – Faheem
Faheem impressionnant, presque résolu sauf 1 problème :). visit.visitDate = VisitNode.VisitDate Ici, j'obtiens une erreur: La coercition de type a échoué: impossible de convertir XMLList @ 1d76eee9 en date. Ai-je besoin de formater la date? Comment faire plaisir – Harry