ACC69 wrote:ACC69 wrote:karinha wrote:http://fivetechsupport.com/forums/viewtopic.php?f=6&t=25746&start=0
Hola buenas tardes, gracias a ambos,no encuentro en el sample
xmlreader , por tener mi version antigua que es la 10.06 .
Este es archivo de xml, por el quiero que me visualice el formato como una factura .
- Code: Select all Expand view RUN
<?xml version=
"1.0" encoding=
"UTF-8"?>
<cfdi:
Comprobante xmlns:
cfdi=
"http://www.sat.gob.mx/cfd/3" xmlns:
xsi=
"http://www.w3.org/2001/XMLSchema-instance" xsi:
schemaLocation=
"http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd" version=
"3.2" serie=
"A" folio=
"8303" fecha=
"2014-05-06T16:37:03" sello=
"ToFyDe4el7/IRp+0w69m4a02ArMj2mWpOzvNq3KxXmIDrnF3N+hEj/YyyRuaP45Exg9e+scTQ0pEfaD5ejYz823OkryJpDdy0O7k1SizmsumOnfaY7D9uwr8W31fctv7mKISgFVb3WAOqnUezQGz6ONfnfT3zQ7gTiiA+0SwHso=" formaDePago=
"PAGO EN UNA SOLA EXHIBICIÓN" noCertificado=
"00001000000300959274" certificado=
"MIIEdTCCA12gAwIBAgIUMDAwMDEwMDAwMDAzMDA5NTkyNzQwDQYJKoZIhvcNAQEFBQAwggGKMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMR8wHQYJKoZIhvcNAQkBFhBhY29kc0BzYXQuZ29iLm14MSYwJAYDVQQJDB1Bdi4gSGlkYWxnbyA3NywgQ29sLiBHdWVycmVybzEOMAwGA1UEEQwFMDYzMDAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBEaXN0cml0byBGZWRlcmFsMRQwEgYDVQQHDAtDdWF1aHTDqW1vYzEVMBMGA1UELRMMU0FUOTcwNzAxTk4zMTUwMwYJKoZIhvcNAQkCDCZSZXNwb25zYWJsZTogQ2xhdWRpYSBDb3ZhcnJ1YmlhcyBPY2hvYTAeFw0xMzEwMDEyMjU5MzFaFw0xNzEwMDEyMjU5MzFaMIHBMSIwIAYDVQQDExlFU1RSQVRFR0lBIFBVTlRPIEZJTkFMIFNDMSIwIAYDVQQpExlFU1RSQVRFR0lBIFBVTlRPIEZJTkFMIFNDMSIwIAYDVQQKExlFU1RSQVRFR0lBIFBVTlRPIEZJTkFMIFNDMSUwIwYDVQQtExxFUEYxMTA0MDFMMTQgLyBDVVJINzcwNTEyS0I0MR4wHAYDVQQFExUgLyBDVVJINzcwNTEySFBMWkNDMDQxDDAKBgNVBAsTA1NBVDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArBdcMufQBkuLt4HZbdhptENUS+o4vDcRybKf1qnEh52S45KS3VCg1UjICQi81aKN/3Olcch++wXXlw9d+Q+vbYScrZXXGwqCQXET5H7ymP0DbwOEQqXJKuJ8SxGbVhu/EAij7Sx1q+auV1xlQg2IWBXYMPenLU7JfGUmswUIZ4cCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQEFBQADggEBAFLaN3h4RbyzT6BgnaTOP4vncqXTzMIVrBbc+i23zDE8kX3UFitHGJ4Y7oK40UQSQiTZHvqSkAwOtuGvC5A6N0KYs6+lhoe0eiZos9k10s4SvJ5vorFw91JdzvstFEG82by44xxPhctUobU2QXUYPIrO9xuoAavDkcX8alMtPefy1IrQJZHw88crPilXa4uTl/bnptK/AN3g70uuqe/cCRJXDKGDUMUregJBZrkuXRNRs/bD9m8gjCxNylzpvRMAkxbEzxKyUpM1PoNtFutfoGO9goXqmfnM77BgQzSKpXAgWRD1cEhaPveeIe+r1I51p/o772NlGSo/gmEy1Ruvpb0=" condicionesDePago=
"UNA SOLA EXHIBICION" subTotal=
"2027.72" descuento=
"0.00" TipoCambio=
"1.00" Moneda=
"PESOS" total=
"2352.16" metodoDePago=
"CHEQUE" tipoDeComprobante=
"ingreso" NumCtaPago=
"6520" LugarExpedicion=
"BENITO JUAREZ,QUINTANA ROO">
<cfdi:
Emisor rfc=
"EPF110401L14" nombre=
"ESTRATEGIA PUNTO FINAL S. C.">
<cfdi:
DomicilioFiscal calle=
"CHIETLA" noExterior=
"906" colonia=
"LA PAZ HEROICA" municipio=
"PUEBLA DE ZARAGOZA" estado=
"PUEBLA" pais=
"MEXICO" codigoPostal=
"72160" />
<cfdi:
ExpedidoEn calle=
"AV TULUM, INTERIOR 10" noExterior=
"LT 17-19" colonia=
"SM 22" localidad=
"CANCUN" municipio=
"BENITO JUAREZ" estado=
"QUINTANA ROO" pais=
"MEXICO" codigoPostal=
"77500" />
<cfdi:
RegimenFiscal Regimen=
"General de ley Personas Morales" />
</cfdi:
Emisor>
<cfdi:
Receptor rfc=
"CTS070503999" nombre=
"COMERCIALIZADORA TIME SHARE INTERNACIONAL, S. A. DE C. V.">
<cfdi:
Domicilio calle=
"BLVD LUIS DONALDO COLOSIO" noExterior=
"KM 9" noInterior=
"BODEGA 44" colonia=
"CTRA BODEGAS CANCUN" municipio=
"CANCUN; BENITO JUAREZ" estado=
"QUINTANA ROO" pais=
"MEXICO" codigoPostal=
"77560" />
</cfdi:
Receptor>
<cfdi:
Conceptos>
<cfdi:
Concepto cantidad=
"1.00" unidad=
"Servicio" noIdentificacion=
"001" descripcion=
"COMISIONES MERCANTILES" valorUnitario=
"2027.72" importe=
"2027.72" />
</cfdi:
Conceptos>
<cfdi:
Impuestos totalImpuestosTrasladados=
"324.44">
<cfdi:
Traslados>
<cfdi:
Traslado impuesto=
"IVA" tasa=
"16.00" importe=
"324.44" />
</cfdi:
Traslados>
</cfdi:
Impuestos>
<cfdi:
Complemento>
<tfd:
TimbreFiscalDigital xmlns:
tfd=
"http://www.sat.gob.mx/TimbreFiscalDigital" xsi:
schemaLocation=
"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigit ... igital.xsd" version=
"1.0" UUID=
"A05C2BD0-6162-4690-BD53-9876CF51D68F" FechaTimbrado=
"2014-05-06T16:44:26" selloCFD=
"ToFyDe4el7/IRp+0w69m4a02ArMj2mWpOzvNq3KxXmIDrnF3N+hEj/YyyRuaP45Exg9e+scTQ0pEfaD5ejYz823OkryJpDdy0O7k1SizmsumOnfaY7D9uwr8W31fctv7mKISgFVb3WAOqnUezQGz6ONfnfT3zQ7gTiiA+0SwHso=" noCertificadoSAT=
"00001000000202639096" selloSAT=
"ez6xFxA9QqFPF2y0hix3yZvElNeX3EZaT5xOv5DlncB+bMYIps/2sTdoCjhq6U2sKyl03somlItxN/vE8F5I3VNq9P5pirBJ+LxAoBzyWa0ttisqRH3t27EAKD8NOi4Q6E/WM2HozszrRouXEW4TUMhHi5K+b8am/pEtuooWT2U=" />
</cfdi:
Complemento>
</cfdi:
Comprobante>
Estuve averiguando y nada de nada que encontre en el foro.!
Adjunto la imagen, asi como se muestra en el dialogo, extraido los datos asi como al igual se podria ver en imagen antes de imprimir la factura que contiene el archivo xml, es por eso que preguntaba si alguien ya tiene esa herramienta de
Visor xml.
http://s1286.photobucket.com/user/ACC69/media/Visor_xml_zpsb0d15bbc.jpg.htmlSaludos y buen dia.!
Atte: Adrian C. C.
Gracias Karinha por el link, si es compatible con mi version, aunque no tenga el ejemplo de
xmlreader.prgComo yo podre leer o extraer oTagActual:aAttributes de donde viene la variable cValue y como validar desde attributos mi variable Serie y Folio y asignar al get ...
Estoy tratando de entender este codigo:.
- Code: Select all Expand view RUN
local hFile := FOpen( "test.xml" )
Local oXmlDoc := TXmlDocument():New( hFile )
Local oXmlIter := TXmlIterator():New( oXmlDoc:oRoot ), oTagActual
while .T.
oTagActual = oXmlIter:Next()
If oTagActual != nil
*MsgInfo( oTagActual:cName, oTagActual:cData )
HEval( oTagActual:aAttributes, { | cKey, cValue | MsgInfo( cKey, cValue ) } )
Else
Exit
Endif
End
FClose( hFile )
return nil
y este otro :
- Code: Select all Expand view RUN
#include "FiveWin.ch"
#include "Splitter.ch"
static oSplit1, oSplit2, oLbxDatas, oLbxMethods
//----------------------------------------------------------------------------/
function Test()
local oWnd
DEFINE WINDOW oWnd TITLE "XML viewer" ;
MENU BuildMenu()
ACTIVATE WINDOW oWnd ;
ON INIT BuildTree( oWnd ) ;
ON RESIZE ( If( oSplit1 != nil, oSplit1:AdjLeft(),),;
If( oSplit2 != nil, oSplit2:AdjRight(),) )
return nil
//----------------------------------------------------------------------------/
function BuildMenu()
local oMenu
MENU oMenu
MENUITEM "About" ACTION MsgAbout( "XML Viewer", "(c) FiveTech Software 2013" )
ENDMENU
return oMenu
//----------------------------------------------------------------------------/
function BuildTree( oWnd )
local oTree := TTreeView():New( 0, 0, oWnd )
local oClass, cData, cMethod
local hFile, oXmlDoc, oXmlIter, oTagActual
local oTagLast, aRoots := {}
oTree:nWidth = 180
// oTree:SetImageList( oImageList )
oTree:Expand()
@ 0, 186 LISTBOX oLbxDatas VAR cData ITEMS {} ;
SIZE 200, 200 PIXEL OF oWnd
@ 0, 391 LISTBOX oLbxMethods VAR cMethod ITEMS {} ;
SIZE 200, 200 PIXEL OF oWnd
@ 0, 181 SPLITTER oSplit1 ;
VERTICAL ;
PREVIOUS CONTROLS oTree ;
HINDS CONTROLS oLbxDatas ;
LEFT MARGIN 150 ;
RIGHT MARGIN oSplit2:nLast + 100 ;
SIZE 4, 300 PIXEL ;
OF oWnd STYLE
@ 0, 386 SPLITTER oSplit2 ;
VERTICAL ;
PREVIOUS CONTROLS oLbxDatas ;
HINDS CONTROLS oLbxMethods ;
LEFT MARGIN oSplit1:nFirst + 120 ;
RIGHT MARGIN 80 ;
SIZE 4, 300 PIXEL ;
OF oWnd STYLE
hFile = FOpen( "test.xml" )
oXmlDoc = TXmlDocument():New( hFile )
oXmlIter = TXmlIterator():New( oXmlDoc:oRoot )
AAdd( aRoots, oTree )
while ( oTagActual := oXmlIter:Next() ) != nil
if oTagLast != nil
if oTagLast:Depth() < oTagActual:Depth()
ASize( aRoots, Len( aRoots ) + 1 )
aRoots[ oTagActual:Depth() + 1 ] = aRoots[ oTagActual:Depth() ]:Add( oTagActual:cName )
aRoots[ oTagActual:Depth() + 1 ]:Cargo = oTagActual
endif
if oTagLast:Depth() > oTagActual:Depth()
aRoots[ oTagActual:depth() + 1 ] = aRoots[ oTagActual:Depth() ]:Add( oTagActual:cName )
aRoots[ oTagActual:depth() + 1 ]:Cargo = oTagActual
endif
if oTagLast:Depth() == oTagActual:Depth()
aRoots[ Max( oTagLast:Depth(), 1 ) ]:Add( oTagActual:cName ):Cargo = oTagActual
endif
else
AAdd( aRoots, oTree:Add( oTagActual:cName ) )
ATail( aRoots ):Cargo = oTagActual
endif
oTagLast = oTagActual
end
FClose( hFile )
oTree:bChanged = { | oItem | oLbxDatas:SetItems( { oItem:GetSelected():Cargo:cData } ),;
oLbxMethods:Reset(),;
HEval( oItem:GetSelected():Cargo:aAttributes,;
{ | cKey, cData | oLbxMethods:Add( cKey + " : " + cData ) } ) }
return nil
Como puedo extraer los datos y mostrarlos en mi pantalla del dialogo o al igual imprimir.
Que al parecer viene de aAttributes,muestra los valores de datos,pero como traerlo a mi dialogo ya sea get o PROMP var cFolio = FOLIO desde xml.
Ya busque en todos los foros y nada que se menciona de como extraer todos estos datos, como el ejemplo de la imagen que subi. Donde puedo encontrar documentacion y saber mas todo tipo de datos, nodos,etc etc .
Atte: Adrian C. C.
Ya mas o menos le voy entendiendo, aunque me falta muchas cosas mas, he visto mas ejemplos en el foro,pero incluyen este include
hbxml.ch, pero es para xharbour y no harbour .
- Code: Select all Expand view RUN
local hFile := FOpen( "test.xml" )
Local oXmlDoc := TXmlDocument():New( hFile )
Local oXmlIter := TXmlIterator():New( oXmlDoc:oRoot ), oTagActual
while .T.
oTagActual = oXmlIter:Next()
If !oTagActual = nil
*MsgInfo( oTagActual:cName )
*MsgInfo( oTagActual:cData )
*HEval( oTagActual:aAttributes, { | cKey, cValue | MsgInfo( cValue ) } )
MsgInfo( oTagActual:GetAttribute("LugarExpedicion") )
MsgInfo( oTagActual:GetAttribute("metodoDePago") )
MsgInfo( oTagActual:GetAttribute("tipoDeComprobante") )
MsgInfo( oTagActual:GetAttribute("total") )
MsgInfo( oTagActual:GetAttribute("Moneda") )
MsgInfo( oTagActual:GetAttribute("TipoCambio") )
MsgInfo( oTagActual:GetAttribute("subTotal") )
MsgInfo( oTagActual:GetAttribute("certificado") )
MsgInfo( oTagActual:GetAttribute("formaDePago") )
MsgInfo( oTagActual:GetAttribute("sello") )
MsgInfo( oTagActual:GetAttribute("fecha") )
MsgInfo( oTagActual:GetAttribute("folio") )
MsgInfo( oTagActual:GetAttribute("version") )
MsgInfo( oTagActual:GetAttribute("schemalocation") )
MsgInfo( oTagActual:GetAttribute("nombre") )
Else
Exit
Endif
End
FClose( hFile )
return nil
Esta parte de GetAttribute ya me extrae los datos que necesito, segun mas o menos, pero ahora, como lo integro a mi pantalla de dialogo por ejemplo:
Serie : A Folio: 313
Lugar : Cancun Emisor: Caro Services.
Metodo de Pago: No identificado
Alguien alguna idea de como agregarlo a mi say prompt en una pantalla de dialogo?,cualquier sugerencia sera bienvenida, por el momento solo me queda investigar mas oTagActual:cName, oTagActual:cData y HEval( oTagActual:aAttributes, { | cKey, cValue | MsgInfo( cValue ) } ), para extraer como titulo cada parametro del dato de oTagActual:GetAttribute("LugarExpedicion")
Si hubiera una buena documentacion y ejemplos, seria facil entenderle mas a esta clase.
Saludos y buenas noches.!
Atte: Adrian C. C.
acc69@hotmail.com