viernes, 11 de agosto de 2017

De Excel a XML

sCta1 is string
xSaldoinicial is numeric(10,2)
xSaldofinal is numeric(10,2)
xDebe is numeric(10,2)
xHaber is numeric(10,2)
sArchivoXML is string
cInformacion is character = "N"
nRenglones is int
nContador is int
nContador2 is int = 0
sDocName is xmlDocument <description = "BalanzaComprobacion_1_2">
nNameSpace1 is xmlNamespace
nNameSpace2 is xmlNamespace
nNode is dynamic xmlNode
nNode = sDocName.Balanza
IF COMBO_Informacion..DisplayedValue = "Normal" THEN
 cInformacion = "N"
ELSE
 cInformacion = "C"
END

sDocName.Balanza:Version = "1.1"
sDocName.Balanza:RFC = COMBO_RFC..DisplayedValue
sDocName.Balanza:Mes = NumToString(COMBO_Mes..Value,"02d")
sDocName.Balanza:Anio = COMBO_Anio..DisplayedValue
sDocName.Balanza:TipoEnvio = cInformacion
nNameSpace1.Name = "xsi"
nNameSpace1.URI = "http://www.w3.org/2001/XMLSchema-instance"

nNameSpace2..Name= "schemaLocation"
nNameSpace2..URI = "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
sDocName.Balanza..Namespace.Name = "BCE"
Add(nNode..NamespaceDeclared, nNameSpace1)
Add(nNode..NamespaceDeclared, nNameSpace2)
//sDocName..schemaLocation = "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
//nNode:schemaLocation..Name = "xsi"
//nNode:schemaLocation..Value = "http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
MyExcelDoc  is xlsDocument
MyExcelFile is string = EDT_ExcelFile
IF MyExcelFile = "" THEN RETURN
MyExcelDoc = xlsOpen(MyExcelFile,xlsWrite )
IF MyExcelDoc <> -1 THEN

 nRenglones = xlsNbRow(MyExcelDoc)
 FOR nContador = 2 TO nRenglones
  // Retrieve the value of a cell
  sCta1 = xlsData(MyExcelDoc, nContador, 1)
  xSaldoinicial = xlsData(MyExcelDoc, nContador,2)
  xDebe = xlsData(MyExcelDoc, nContador,3)
  xHaber = xlsData(MyExcelDoc, nContador,4)
  xSaldofinal =  xlsData(MyExcelDoc, nContador,5)
  /////////// crea xml
  IF sCta1 <> "" THEN
   nContador2 += 1
   sDocName.Balanza.Ctas[nContador2]:Debe  = xDebe
   sDocName.Balanza.Ctas[nContador2]:Haber = xHaber
   sDocName.Balanza.Ctas[nContador2]:NumCta= sCta1
   sDocName.Balanza.Ctas[nContador2]:SaldoFin = xSaldofinal
   sDocName.Balanza.Ctas[nContador2]:SaldoIni = xSaldoinicial
     END
 END
 

 IF XMLValidDocument(sDocName) = True THEN
        sArchivoXML = COMBO_RFC..DisplayedValue + NumToString(COMBO_Anio..DisplayedValue) + NumToString(COMBO_Mes..Value,"02d") + "B" + cInformacion + ".XML" 
  XMLSave(sDocName, EDT_Destino+ "\" + sArchivoXML)
  IF ErrorOccurred = True THEN
   Error("Unable to save the XML document", ErrorInfo())
  ELSE
   Info("OK")
  END
 ELSE
  Error("The XML document is invalid", ErrorInfo())
 END

END
xlsClose(MyExcelDoc)

No hay comentarios.:

Publicar un comentario

Try catch end

 // -------------------------------------------------- // Procedure principal que executa uma query com tratamento de exceção // -----------...