Private Sub CmdGenerarXML_Click()
Set objDom = New DOMDocument
Set objModule = New DOMDocument
Set XMLInstruccion = objDom.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
objDom.appendChild XMLInstruccion
Set objRootElem = objDom.createElement("BCE:Balanza")
objRootElem.setAttribute "xmlns:BCE", "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion"
objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"
objRootElem.setAttribute "xsi:schemaLocation", "www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion http://www.sat.gob.mx/esquemas/ContabilidadE/1_1/BalanzaComprobacion/BalanzaComprobacion_1_1.xsd"
objDom.appendChild objRootElem
Call XMLHeader
Fila = 1
With MSHFlexGrid1
Do While .TextMatrix(Fila, 0) <> vbNullString
'create new element and attribute by calling to CreateXMLBalanza function.
objModule.loadXML (CreateXMLBalanza(.TextMatrix(Fila, 0), .TextMatrix(Fila, 1), .TextMatrix(Fila, 2), .TextMatrix(Fila, 3), .TextMatrix(Fila, 4)))
Set objNode = objModule.firstChild
objDom.documentElement.appendChild objNode
Fila = Fila + 1
Loop
'Saves the xml document in c:\temp directory
NombreBalanza = "XXAX010101X01" + Combo2.Text + Combo1.Text + "B" + Combo3.Text + ".XML"
objDom.Save (NombreBalanza)
MsgBox " SE HA GENERADO EXISTODAMENTE EL ARCHIVO EN: " & NombreBalanza, vbInformation, "GENERAR BALANZA XML"
End Sub
Public Function XMLHeader()
Set objDocAttribute = objDom.createAttribute("Version")
objDocAttribute.nodeValue = "1.1"
objRootElem.setAttributeNode objDocAttribute
Set objDocAttribute = objDom.createAttribute("RFC")
objDocAttribute.nodeValue = "XXAX010101X01"
objRootElem.setAttributeNode objDocAttribute
Set objDocAttribute = objDom.createAttribute("Mes")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo1.Text
objRootElem.setAttributeNode objDocAttribute
Set objDocAttribute = objDom.createAttribute("Anio")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo2.Text
objRootElem.setAttributeNode objDocAttribute
If OptionXML = 1 Then
Set objDocAttribute = objDom.createAttribute("TipoEnvio")
objDocAttribute.nodeValue = FrmBalanzaXML.Combo3.Text
objRootElem.setAttributeNode objDocAttribute
Set objDocAttribute = objDom.createAttribute("FechaModBal")
objDocAttribute.nodeValue = "2015-04-30" 'FrmBalanzaXML.Combo3.Text
objRootElem.setAttributeNode objDocAttribute
End If
End Function
' ----------------------------------------------------------------------------------
Public Function CreateXMLBalanza(strNumCta As String, strSaldoIni As String, _
strDebe As String, strHaber As String, strSaldoFin As String) As String
Set objDomBal = New DOMDocument
Set objRootElem = objDomBal.createElement("Ctas")
objDomBal.appendChild objRootElem
Set objMbrAttribute = objDomBal.createAttribute("NumCta")
objMbrAttribute.nodeValue = strNumCta
objRootElem.setAttributeNode objMbrAttribute
Set objMbrAttribute = objDomBal.createAttribute("SaldoIni")
objMbrAttribute.nodeValue = strSaldoIni
objRootElem.setAttributeNode objMbrAttribute
Set objMbrAttribute = objDomBal.createAttribute("Debe")
objMbrAttribute.nodeValue = strDebe
objRootElem.setAttributeNode objMbrAttribute
Set objMbrAttribute = objDomBal.createAttribute("Haber")
objMbrAttribute.nodeValue = strHaber
objRootElem.setAttributeNode objMbrAttribute
Set objMbrAttribute = objDomBal.createAttribute("SaldoFin")
objMbrAttribute.nodeValue = strSaldoFin
objRootElem.setAttributeNode objMbrAttribute
CreateXMLBalanza = objDomBal.xml
End Function