Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   XML Data Binding FacturaE (https://www.clubdelphi.com/foros/showthread.php?t=91370)

raul_toled 18-01-2017 16:44:48

XML Data Binding FacturaE
 
Buenas, estoy intentando realizar la lectura de facturas electrónicas.
Para ello he utilizado el XML Data Binding (Rad Studio XE) de la Facturae v 3.2 y ha generado el código correspondiente (sin problemas)

Problema
No consigo obtener valor alguno de una factura cargada

Código
XMLDocument1.FileName := 'lafactura.xml';
MiFacturaE := GetFacturae(XMLDocument1);

//Por ejemplo he intentado este showmessage y muestra mensaje vacio
ShowMessage(MiFacturaE.FileHeader.SchemaVersion)


¿Cómo accedo a los textos? ¿Que estoy haciendo mal?

movorack 18-01-2017 20:15:22

A lo mejor te hace el active

Código Delphi [-]
    XMlDomFacturaE.FileName := FFileName;
    XMlDomFacturaE.Active := True;
    XMlDomFacturaE.Options := [doNodeAutoCreate, doAttrNull, doAutoPrefix, doNamespaceDecl, doAutoSave];
    FFacturaE := GetFacturaE(XMlDomFacturaE);

raul_toled 19-01-2017 08:39:00

Sin avanzar
 
Gracias Movorack, si el active del XMLDocument lo probé y tampoco funcionó.

En cambio si he conseguido hacer Showmessage(FFacturaE.XML) y mostraba todo el XML por tanto entiendo que carga el XML correctamente, por lo que tiene que ser un problema mío de no saber como hacer mostrar la información.

Os pongo mas código por si doy alguna pista mas

{ Global Functions }

function GetFacturae(Doc: IXMLDocument): IXMLFacturae;
begin
Result := Doc.GetDocBinding('Facturae', TXMLFacturae, TargetNamespace) as IXMLFacturae;
end;


{ IXMLFacturae }

IXMLFacturae = interface(IXMLNode)
['{6F9F0711-849B-41AD-A9AE-BE8355D58E50}']
{ Property Accessors }
function Get_FileHeader: IXMLFileHeaderType;
function Get_Parties: IXMLPartiesType;
function Get_Invoices: IXMLInvoicesType;
function Get_Extensions: IXMLExtensionsType;
function Get_Signature: IXMLSignatureType_ds;
{ Methods & Properties }
property FileHeader: IXMLFileHeaderType read Get_FileHeader;
property Parties: IXMLPartiesType read Get_Parties;
property Invoices: IXMLInvoicesType read Get_Invoices;
property Extensions: IXMLExtensionsType read Get_Extensions;
property Signature: IXMLSignatureType_ds read Get_Signature;
end;


{ IXMLFileHeaderType }

IXMLFileHeaderType = interface(IXMLNode)
['{ED6AF63B-460A-49AB-B347-3218C6C7CEBB}']
{ Property Accessors }
function Get_SchemaVersion: UnicodeString;
function Get_Modality: UnicodeString;
function Get_InvoiceIssuerType: UnicodeString;
function Get_ThirdParty: IXMLThirdPartyType;
function Get_Batch: IXMLBatchType;
function Get_FactoringAssignmentData: IXMLFactoringAssignmentDataType;
procedure Set_SchemaVersion(Value: UnicodeString);
procedure Set_Modality(Value: UnicodeString);
procedure Set_InvoiceIssuerType(Value: UnicodeString);
{ Methods & Properties }
property SchemaVersion: UnicodeString read Get_SchemaVersion write Set_SchemaVersion;
property Modality: UnicodeString read Get_Modality write Set_Modality;
property InvoiceIssuerType: UnicodeString read Get_InvoiceIssuerType write Set_InvoiceIssuerType;
property ThirdParty: IXMLThirdPartyType read Get_ThirdParty;
property Batch: IXMLBatchType read Get_Batch;
property FactoringAssignmentData: IXMLFactoringAssignmentDataType read Get_FactoringAssignmentData;
end;



Cita:

Empezado por movorack (Mensaje 512439)
A lo mejor te hace el active

Código Delphi [-]
    XMlDomFacturaE.FileName := FFileName;
    XMlDomFacturaE.Active := True;
    XMlDomFacturaE.Options := [doNodeAutoCreate, doAttrNull, doAutoPrefix, doNamespaceDecl, doAutoSave];
    FFacturaE := GetFacturaE(XMlDomFacturaE);



La franja horaria es GMT +2. Ahora son las 12:41:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi