 FACTXML V. 1.4 


 El programa lo puedes usar de dos formas:

 1.- En modo diseņo: corres el programa FactXML y desde ahi puedes crear o modificar los diseņos de la impresion de
     la representacion impresa de un documento electronico para que incluyas tus logos, etc.

 2.- En modo impresion: mediante una aplicacion o en modo consola corres el programa FactXML y envias como
     parametro el nombre y ubicacion de un archivo ini que contiene los parametros de impresion. 


     FACTXML PUEDE USARSE DESDE CUALQUIER LENGUAJE DE PROGRAMACION.

     Ejemplo del envio de impresion de una factura electronica usando una plantilla creada con FactXML

     * En Viusual Basic 6: SHELL "FactXml.Exe  c:\FactXML\params.ini"

     * En [x]Harbour:  waitrun('FactXml.Exe  c:\FactXML\params.ini',1)

     * En CLipper: RUN('FactXml.Exe  c:\FactXML\params.ini') 

     * En Modo Consola o simbolo del sistema (MS-DOS): FACTXML C:\FACTXML\PARAMS.INI


    NOTA: Siempre es importante indicar la ruta completa del archivo INI y no debe de contener espacios

    Ejemplo:
    Correcto: SHELL "FactXml.Exe  c:\misdisenos\FactXML\params.ini"
    Incorrecto: SHELL "FactXml.Exe  c:\mis disenos\FactXML\params.ini"

  La estructura del archivo INI seria la siguiente:

[Parametros]
ArchivoXML=        //Nombre y ubicacion del XML
NomReport=         //Nombre y ubicacion del la plantilla del formato de impresion
CadenaOriginal=    //Nombre y ubicacion del archivo de texto con la cadena original del XML
Texto1=            //Archivo con un texto opcional para imprimir
.
.
Texto10=           //Archivo con un texto opcional para imprimir
Visualizar=        //(SI/NO)Inidica si se previsualizara
Imprimir=          //(SI/NO)Indica si se imprimira automaticamente
GenPDF=            //(SI/NO)Indica si se generara el archivo pdf automaticamente
                   .....El archivo se generara en la misma ubicacion del documento XML y con el mismo

EnviarCorreo=      //(SI/NO): Indica si el archivo XML y el PDF se enviaran por correo electronico automaticamente
MailServer=        //Nombre del servidor de correo
Remitente=         //Correo del remitente
CorreoDestino=     //Correio del destinatario 
Usuario=           //Usuario de la cuanta de donde se enviara el correo (normalmente es el mismo correo del remitente)
Password=          //Clave de la cuenta de correo del remitente
Puerto=            //Puerto por el que se accedera al servidor de correos (en gmail el puerto es el 465)


     Un ejemplo de la estructura del archivo ini seria la siguiente:

[Parametros]
ArchivoXML=C:\FactXML\xmltest\Fact20.xml         
NomReport=C:\FactXML\disenos\FacturaCFD20.fr3   
CadenaOriginal=C:\FactXML\cadena.txt    
Texto1=C:\FactXML\texto1.txt            
Texto2=C:\FactXML\texto2.txt
Texto3=C:\FactXML\texto3.txt
Texto4=C:\FactXML\texto4.txt
Texto5=C:\FactXML\texto4.txt 
Visualizar=SI                           
Imprimir=NO                             
GenPDF=SI                                                                      
EnviarCorreo=SI
MailServer=smtp.gmail.com
Remitente=micorreoabc@gmail.com
CorreoDestino=elcorreodestino123@hotmail.com
Usuario=micorreoabc@gmail.com
Password=laclavedemicorreo
Puerto=465

     SI SE DESEA USAR LA FUNCION DE ENVIO AUTOMATICO DE CORREO ES IMPORTARTE SABER QUE HOTMAIL Y YAHOO EN SUS
     CUENTAS GRATUITAS NO PERMITEN QUE UNA APLICACION INDEPENDIENTE SE CONECTE A SUS SERVIDORES PARA EL ENVIO
     AUTOMATICO DE CORREOS. CON GMAIL SI SE PUEDE Y TAMBIEN CON EL CORREO QUE INCLUYEN LOS WEBHOSTINGS EN LOS
     PLANES DE ALOJAMIENTO DE PAGINAS WEB.   


     Las siguientes funciones estan disponibles para el diseņo de una plantilla nueva de impresion de un
     documento electronico. ES IMPORTANTE SABER QUE LAS CERCA DE 20 PLANTILLAS INCLUIDAS CON FACTXML YA VIENEN
     DISEŅADAS CON LOS DATOS NECESARIOS E INDISPENSABLES QUE PIDE EL SAT EN LAS IMPRESION DE LAS FACTURAS 
     ELECTRONICAS, POR LO QUE ES MAS FACIL USAR UNA DE LAS PLANTILLAS QUE VIENEN EL SISTEMA Y MODIFICARLA QUE 
     CREAR UNA COMPLETAMENTE NUEVA. Las plantillas incluidas  hacen las llamadas a las funciones funciones
     para la impresion de los datos.

     
 Funciones para la inclusion de los datos de un documento electronico en una plantilla de impresion.


1.-  [CallHbFunc('LeeXML',[cNodo,cAtributo])]: Da el valor del atributo de un nodo del XML

     Ej.  [CallHbFunc('LeeXML',['cfdi:Emisor','rfc'])]

2.-  [CallHbFunc('DevuelveCadena']: Da el valor de la cadena original contenida en el archvivo
                                    de texto referenciado por CadenaOriginal en el archivo ini

3.-  [CallHbFunc('FechaXML']: Da la fecha de emision de la factura en el formato DD de MMMMMM de AAAA

4.-  [CallHbFunc('NumLetraXML']: Da el valor de neto del XML en letras

5.-  [CallHbFunc('MonedaXML']: Da el valor de la moneda en el XML, si es que esta definido 

6.-  [CallHbFunc('ParidadXML']: Da el valor del tipo de cambio en el XML, si es que esta definido

7.-  [CallHbFunc('IVARetenido']: Da el importe del IVA retenido

8.-  [CallHbFunc('ISRRetenido']: Da el importe del ISR retenido

9.-  [CallHbFunc('SacaTasaIVA',[cTasa])]: Regresa un valor (el de la tasa) si existe en el XML un IVA con la tasa indicada
                                          Si no existe regresa una cadena vacia

     Ej. [CallHbFunc('SacaTasaIVA','11')], regresara el valor '11' si el xml tiene definido un iva con tasa del 11%,
                                           si no existe regresa ''

10.- [CallHbFunc('SacaImporteIVA',[cTasa])]: Regresa el importe del IVA si existe en el XML un IVA con la tasa indicada
                                             Si no existe regresa una cadena vacia

11.- [CallHbFunc('DaTexto1']: Da el texto refrenciado por Texto1 en el archivo ini
     ..
     ..
     [CallHbFunc('DaTexto10']: Da el texto refrenciado por Texto10 en el archivo ini


12.-  [CallHbFunc('LocalNomRet',[nRet])]: Regresa el nombre de la retencion de impuesto local referenciado por nRet
                                          de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalNomRet',[1])]: regresara en nombre del primer impuesto local que aparece en el XML



13.-  [CallHbFunc('LocalTasaRet',[nRet])]: Regresa la tasa de la retencion de impuesto local referenciado por nRet
                                           de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalTasaRet',[1])]: regresara la tasa del primer impuesto local que aparece en el XML



14.-  [CallHbFunc('LocalImporteRet',[nRet])]: Regresa el importe de la retencion de impuesto local referenciado por nRet
                                              de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalImporteRet',[1])]: regresara el importe del primer impuesto local que aparece en el XML



15.-  [CallHbFunc('LocalNomTras',[nTras])]: Regresa el nombre del impuesto local trasladado referenciado por nTras
                                            de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalNomTras',[1])]: regresara en nombre del primer impuesto local trasladado que aparece en el XML



16.-  [CallHbFunc('LocalTasaTras',[nTras])]: Regresa la tasa del impuesto local trasladado referenciado por nTras
                                             de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalTasaTras',[1])]: regresara la tasa del primer impuesto local trasladado que aparece en el XML



17.-  [CallHbFunc('LocalImporteTras',[nTras])]: Regresa el importe del impuesto local trasladado referenciado por nTras
                                              de acuerdo al orden en que aparece en el XML

     Ej [CallHbFunc('LocalImporteTras',[1])]: regresara el importe del primer impuesto local trasladado que aparece en
                                              el XML


18.-  [CallHbFunc('ListaLocalRet')]: Da un texto conteniendo todos los datos de los impuestos locales retenidos de la sig.
                                    forma:

                                    impuesto 1              9.99%    $   99,999.99
                                    impuesto 2              9.99%    $   99,999.99
                                                                     -------------
                                    Total                            $   99,999.99


19.-  [CallHbFunc('ListaLocalTras')]: Da un texto conteniendo todos los datos de los impuestos locales trasladados de la
                                     sig. forma:

                                    impuesto 1              9.99%    $   99,999.99  
                                    impuesto 2              9.99%    $   99,999.99
                                                                     -------------
                                    Total                            $   99,999.99

                                                                                                                    