De nada Wilson.
Mis estimados, para seleccion de archivos .xml, pongo imagen, y pequeñas modificaciones .
Code: Select all
#include "FiveWin.ch"
#Include "xBrowse.ch"
#include "TArray.ch"
Static oDlg, oSay, oBrw, oDato, aDatos, oFnt1, oBtn
Static cDirec1, cDirec2
//------------------------------------------------------------------------------
FUNCTION PRINCIPAL()
Local aGradBarSelFocus:= {{ 1, RGB(252,232,171) , RGB(248,195, 34) }}
Local aGradBarSel := {{ 1, RGB(252,235, 184), RGB(251,222,88) }}
SET EXCLUSIVE OFF
SET 3DLOOK ON
SET DELETED ON
SET CONFIRM ON
SET EPOCH TO 1969
SET DATE BRITISH
SetResDebug(.T.) // Al inicio ...
oDato := NIL
DEFINE STRUCT oDato
// "Comprobante"
STRUCT FIELD cVersion INIT ""
STRUCT FIELD cSerie INIT ""
STRUCT FIELD cFolio INIT ""
STRUCT FIELD cFecha INIT ""
STRUCT FIELD cfPago INIT ""
STRUCT FIELD cmPago INIT ""
STRUCT FIELD cCtaPago INIT ""
STRUCT FIELD cLugarExp INIT ""
STRUCT FIELD cMoneda INIT ""
STRUCT FIELD cTCambio INIT ""
STRUCT FIELD nSubtot INIT 00.00
STRUCT FIELD nDescto INIT 00.00
STRUCT FIELD nTotal INIT 00.00
// "Emisor"
STRUCT FIELD EcNomb INIT ""
STRUCT FIELD EcRFC INIT ""
STRUCT FIELD EcCalle INIT ""
STRUCT FIELD EcNoExt INIT ""
STRUCT FIELD EcNoInt INIT ""
STRUCT FIELD EcColonia INIT ""
STRUCT FIELD EcLocalid INIT ""
STRUCT FIELD EcMunicip INIT ""
STRUCT FIELD EcEstado INIT ""
STRUCT FIELD EcPais INIT ""
STRUCT FIELD EcCodPos INIT ""
STRUCT FIELD EcRegFisc INIT ""
STRUCT FIELD EcExpedEn INIT ""
// "Receptor"
STRUCT FIELD RcNomb INIT ""
STRUCT FIELD RcRFC INIT ""
STRUCT FIELD RcCalle INIT ""
STRUCT FIELD RcNoExt INIT ""
STRUCT FIELD RcNoInt INIT ""
STRUCT FIELD RcColonia INIT ""
STRUCT FIELD RcLocalid INIT ""
STRUCT FIELD RcMunicip INIT ""
STRUCT FIELD RcEstado INIT ""
STRUCT FIELD RcPais INIT ""
STRUCT FIELD RcCodPos INIT ""
// "Conceptos"
STRUCT FIELD nCantidad INIT 00.00
STRUCT FIELD cDescrip INIT ""
STRUCT FIELD cNoIdentif INIT ""
STRUCT FIELD cUnidad INIT ""
STRUCT FIELD nPrecUnit INIT 00.00
STRUCT FIELD nImporte INIT 00.00
// "Impuestos"
STRUCT FIELD nTImpRet INIT 00.00
STRUCT FIELD nIVA INIT 00.00
STRUCT FIELD cOrden INIT ""
END STRUCT
oDato:Zap()
oSay := ARRAY(22)
aDatos := {{ "","","","","" }}
oBtn := ARRAY(2)
DEFINE FONT oFnt1 NAME "Arial" SIZE 0,-14 BOLD
DEFINE DIALOG oDlg RESOURCE "VISOR_XML" TITLE "Visor XML" // ICON oICON // COLOR CLR_BLUE
REDEFINE SAY oSay[01] PROMPT oDato:EcNomB ID 101 OF oDlg COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[02] PROMPT oDato:EcRFC ID 102 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[03] PROMPT cDirec1 ID 103 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[04] PROMPT oDato:EcExpedEn ID 104 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[05] PROMPT oDato:EcRegFisc ID 105 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[06] PROMPT oDato:cLugarExp ID 106 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[07] PROMPT oDato:cFecha ID 109 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[08] PROMPT oDato:cSerie ID 110 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[09] PROMPT oDato:cFolio ID 111 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[10] PROMPT oDato:cFPago ID 112 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[11] PROMPT oDato:cMPago ID 113 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[12] PROMPT oDato:cCtaPago ID 114 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[13] PROMPT oDato:RcNomb ID 115 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[14] PROMPT oDato:RcRFC ID 116 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[15] PROMPT cDirec2 ID 117 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE XBROWSE oBrw ID 120 OF oDlg ;
HEADERS 'Cantidad','Descripción','Unidad','P. Unitario','Importe' ;
COLSIZES 60,260,85,85,85 ;
PICTURES "999" ,;
"@X" ,;
"@X" ,;
"999,999.99" ,;
"999,999,999.99" ;
ARRAY aDatos FOOTERS AUTOCOLS
WITH OBJECT oBrw
:nMarqueeStyle := MARQSTYLE_HIGHLROW //_HIGHLROWMS
:nColDividerStyle := LINESTYLE_LIGHTGRAY
:nRowDividerStyle := LINESTYLE_LIGHTGRAY
:bClrSel := { || { nRGB( 0, 0,255), aGradBarSel } } // para barra de linea selecc cuando el control no tiene el foco
:bClrSelFocus := { || { CLR_BLACK, aGradBarSelFocus } } // para barra de linea selecc cuando el control tiene el foco
:lKinetic := .F.
:lContrastClr := .F. //para que no cambie color de texto automaticamente segun intensidad del fondo
* :SetArray(aDatos)
* oBrw:Refresh()
END
REDEFINE SAY oSay[16] PROMPT oDato:cMoneda ID 121 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[17] PROMPT oDato:cTCambio ID 122 OF oDlg // COLOR CLR_BLUE Font oFnt1
REDEFINE SAY oSay[18] PROMPT oDato:nSubtot ID 123 OF oDlg pict "999,999.99" // COLOR CLR_BLUE Font oFnt1 // nSubTotal
REDEFINE SAY oSay[19] PROMPT oDato:nDescto ID 124 OF oDlg pict "999,999.99" // COLOR CLR_BLUE Font oFnt1 // nDesCto
REDEFINE SAY oSay[20] PROMPT oDato:nTImpRet ID 125 OF oDlg pict "999,999.99" // COLOR CLR_BLUE Font oFnt1 // nTImpRet
REDEFINE SAY oSay[21] PROMPT oDato:nIVA ID 126 OF oDlg pict "999,999.99" // COLOR CLR_BLUE Font oFnt1 // nIVA
REDEFINE SAY oSay[22] PROMPT oDato:nTotal ID 127 OF oDlg pict "999,999.99" // COLOR CLR_BLUE Font oFnt1 // nTotal
REDEFINE BUTTON oBtn[01] ID 201 OF oDlg ACTION Sel_XML()
REDEFINE BUTTON oBtn[02] ID 202 OF oDlg // ACTION Pendiente opcion de impresion y/o PDF
ACTIVATE DIALOG oDlg CENTER //ON INIT Inicia()
RETURN NIL
//------------------------------------------------------------------------------
STATIC FUNCTION Sel_XML()
LOCAL cFile
Local hFile, oXmlDoc, oXmlIter, oTagActual, cTagname
cFile := cGetFile32("*.xml","Por favor Seleccione archivo XML")
if Empty( cFile )
return nil
endif
if ! "." $ cFile
cFile += ".xml"
endif
if ! File( cFile )
MsgStop( "Archivo no encontrado " + cFile )
return nil
endif
hFile := FOpen( cFile )
oXmlDoc := TXmlDocument():New( hFile )
oXmlIter := TXmlIterator():New( oXmlDoc:oRoot )
oDato:Blank()
aDatos := {}
DO WHILE .T.
oTagActual := oXmlIter:Next()
If oTagActual != nil
HEval( oTagActual:aAttributes, { | cKey, cValue | Guarda_XML_Valores( oDato, cKey, cValue, oTagActual:cName ) } )
Else
Exit
Endif
ENDDO
FClose( hFile )
cDirec1 := oDato:EcCalle+" "+oDato:EcNoExt+" "+oDato:EcColonia+" "+oDato:EcLocalid+" "+oDato:EcMunicip+" "+oDato:EcEstado+" "+oDato:EcPais+" "+oDato:EcCodPos
cDirec2 := oDato:RcCalle+" "+oDato:RcNoExt+" "+oDato:RcColonia+" "+oDato:RcLocalid+" "+oDato:RcMunicip+" "+oDato:RcEstado+" "+oDato:RcPais+" "+oDato:RcCodPos
AEval( oSay,{|o| o:Refresh()} )
oBrw:SetArray(aDatos)
oBrw:Refresh()
RETURN NIL
//------------------------------------------------------------------------------
FUNCTION Guarda_XML_Valores( oDatos, pcKey, pcValue, pcTagName )
//? cTagName, cTagData, pcKey, pcValue
//? pcTagName, pcKey, pcValue
// "COMPROBANTE"
IF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "VERSION"; oDatos:cVersion := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "SERIE"; oDatos:cSerie := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "FOLIO"; oDatos:cFolio := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "FECHA"; oDatos:cFecha := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "FORMADEPAGO"; oDatos:cfPago := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "METODODEPAGO"; oDatos:cmPago := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "NUMCTAPAGO"; oDatos:cCtaPago := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "LUGAREXPEDICION"; oDatos:cLugarExp := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "TIPOCAMBIO"; oDatos:cTCambio := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "MONEDA"; oDatos:cMoneda := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "SUBTOTAL"; oDatos:nSubtot := VAL(pcValue)
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "DESCUENTO"; oDatos:nDesCto := VAL(pcValue)
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:COMPROBANTE" .AND. UPPER(ALLTRIM(pcKey)) = "TOTAL"; oDatos:nTotal := VAL(pcValue)
// "EMISOR"
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EMISOR" .AND. UPPER(ALLTRIM(pcKey)) = "NOMBRE"; oDatos:EcNomb := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EMISOR" .AND. UPPER(ALLTRIM(pcKey)) = "RFC"; oDatos:EcRFC := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "CALLE"; oDatos:EcCalle := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "NOEXTERIOR"; oDatos:EcNoExt := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "COLONIA"; oDatos:EcColonia := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "LOCALIDAD"; oDatos:EcLocalid := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "MUNICIPIO"; oDatos:EcMunicip := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "ESTADO"; oDatos:EcEstado := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "PAIS"; oDatos:EcPais := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIOFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "CODIGOPOSTAL"; oDatos:EcCodPos := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EXPEDIDOEN" .AND. UPPER(ALLTRIM(pcKey)) = "LOCALIDAD"; oDatos:EcLocalid := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EXPEDIDOEN" .AND. UPPER(ALLTRIM(pcKey)) = "MUNICIPIO"; oDatos:EcMunicip := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EXPEDIDOEN" .AND. UPPER(ALLTRIM(pcKey)) = "ESTADO"; oDatos:EcEstado := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:EXPEDIDOEN" .AND. UPPER(ALLTRIM(pcKey)) = "PAIS"; oDatos:EcPais := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:REGIMENFISCAL" .AND. UPPER(ALLTRIM(pcKey)) = "REGIMEN"; oDatos:EcRegFisc := pcValue
// "RECEPTOR"
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:RECEPTOR" .AND. UPPER(ALLTRIM(pcKey)) = "NOMBRE"; oDatos:RcNomb := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:RECEPTOR" .AND. UPPER(ALLTRIM(pcKey)) = "RFC"; oDatos:RcRFC := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "CALLE"; oDatos:RcCalle := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "NOEXTERIOR"; oDatos:RcNoExt := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "NOINTERIOR"; oDatos:RcNoInt := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "COLONIA"; oDatos:RcColonia := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "LOCALIDAD"; oDatos:RcLocalid := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "MUNICIPIO"; oDatos:RcMunicip := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "ESTADO"; oDatos:RcEstado := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "PAIS"; oDatos:RcPais := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:DOMICILIO" .AND. UPPER(ALLTRIM(pcKey)) = "CODIGOPOSTAL"; oDatos:RcCodPos := pcValue
// "Conceptos" Para Browse
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "CANTIDAD"; oDatos:nCantidad := VAL(pcValue)
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "DESCRIPCION"; oDatos:cDescrip := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "NOIDENTIFICACION"; oDatos:cNoIdentif := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "UNIDAD"; oDatos:cUnidad := pcValue
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "VALORUNITARIO"; oDatos:nPrecUnit := VAL(pcValue)
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:CONCEPTO" .AND. UPPER(ALLTRIM(pcKey)) = "IMPORTE"; oDatos:nImporte := VAL(pcValue)
// Carga aDatos en arreglo para TXBrowse \\
AADD(aDatos, { oDatos:nCantidad ,;
oDatos:cDescrip ,;
oDatos:cUnidad ,;
oDatos:nPrecUnit ,;
oDatos:nImporte })
// "IMPUESTOS"
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:IMPUESTOS" .AND. UPPER(ALLTRIM(pcKey)) = "TOTALIMPUESTOSRETENIDOS"; oDatos:nTImpRet := VAL(pcValue)
ELSEIF UPPER(ALLTRIM(pcTagName)) = "CFDI:IMPUESTOS" .AND. UPPER(ALLTRIM(pcKey)) = "TOTALIMPUESTOSTRASLADADOS"; oDatos:nIVA := VAL(pcValue)
ENDIF
RETURN(NIL)
Code: Select all
// RESOURCE SCRIPT generated by "Pelles C for Windows, version 7.00".
#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
VISOR_XML DIALOGEX DISCARDABLE 6, 18, 574, 398
STYLE DS_SHELLFONT|WS_POPUP|DS_MODALFRAME|DS_CONTEXTHELP|DS_3DLOOK|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Dialog"
FONT 8, "Tahoma", 0, 0, 1
{
CONTROL "Datos Emisor y Receptor", 4001, "Button", BS_GROUPBOX, 0, 0, 592, 84
CONTROL "", 4002, "Button", BS_GROUPBOX, 0, 84, 556, 180
CONTROL "RFC:", 4003, "Static", WS_GROUP, 4, 16, 40, 8
CONTROL "Dirección:", 4004, "Static", WS_GROUP, 4, 24, 40, 8
CONTROL "Expedido en:", 4005, "Static", WS_GROUP, 4, 36, 44, 8
CONTROL "Regimen Fiscal:", 4006, "Static", WS_GROUP, 4, 48, 52, 8
CONTROL "Lugar de Expedicion:", 4007, "Static", WS_GROUP, 4, 60, 68, 8
CONTROL "Telefono:", 4008, "Static", WS_GROUP, 4, 72, 40, 8
CONTROL "Correo:", 4009, "Static", WS_GROUP, 128, 72, 40, 8
CONTROL "Fecha:", 4010, "Static", WS_GROUP, 344, 8, 40, 8
CONTROL "Serie:", 4011, "Static", WS_GROUP, 344, 20, 40, 8
CONTROL "Folio:", 4012, "Static", WS_GROUP, 348, 36, 40, 8
CONTROL "Forma de Pago:", 4013, "Static", WS_GROUP, 348, 48, 52, 8
CONTROL "Metodo de Pago:", 4014, "Static", WS_GROUP, 348, 56, 56, 8
CONTROL "No. de Cuenta:", 4015, "Static", WS_GROUP, 348, 68, 52, 8
CONTROL "101", 101, "Static", WS_GROUP, 84, 4, 256, 8
CONTROL "102", 102, "Static", WS_GROUP, 40, 16, 184, 8
CONTROL "103", 103, "Static", WS_GROUP, 44, 24, 296, 8
CONTROL "104", 104, "Static", WS_GROUP, 48, 36, 184, 8
CONTROL "105", 105, "Static", WS_GROUP, 60, 48, 176, 8
CONTROL "106", 106, "Static", WS_GROUP, 72, 60, 164, 8
CONTROL "107", 107, "Static", WS_GROUP, 36, 72, 40, 8
CONTROL "108", 108, "Static", WS_GROUP, 156, 72, 40, 8
CONTROL "109", 109, "Static", WS_GROUP, 388, 8, 188, 8
CONTROL "110", 110, "Static", WS_GROUP, 388, 20, 40, 8
CONTROL "111", 111, "Static", WS_GROUP, 396, 36, 40, 8
CONTROL "112", 112, "Static", WS_GROUP, 404, 48, 156, 8
CONTROL "113", 113, "Static", WS_GROUP, 404, 56, 156, 8
CONTROL "114", 114, "Static", WS_GROUP, 400, 68, 96, 8
CONTROL "120", 120, "TXBrowse", WS_TABSTOP|0x00a00000, 4, 188, 422, 72
CONTROL "", 4016, "Button", BS_GROUPBOX, 4, 260, 524, 72
CONTROL "Moneda:", 4017, "Static", WS_GROUP, 8, 272, 40, 8
CONTROL "Tipo de Cambio:", 4018, "Static", WS_GROUP, 8, 288, 40, 8
CONTROL "SubTotal:", 4019, "Static", WS_GROUP, 312, 272, 40, 8
CONTROL "Descto:", 4020, "Static", WS_GROUP, 312, 284, 40, 8
CONTROL "Impto Retenido:", 4021, "Static", WS_GROUP, 312, 296, 56, 8
CONTROL "I.V.A.:", 4022, "Static", WS_GROUP, 312, 308, 40, 8
CONTROL "Total:", 4023, "Static", WS_GROUP, 312, 320, 40, 8
CONTROL "121", 121, "Static", WS_GROUP, 48, 272, 40, 8
CONTROL "122", 122, "Static", WS_GROUP, 48, 288, 40, 8
CONTROL "123", 123, "Static", SS_RIGHT|WS_GROUP, 368, 272, 40, 8
CONTROL "124", 124, "Static", SS_RIGHT|WS_GROUP, 368, 284, 40, 8
CONTROL "125", 125, "Static", SS_RIGHT|WS_GROUP, 368, 296, 40, 8
CONTROL "126", 126, "Static", SS_RIGHT|WS_GROUP, 368, 308, 40, 8
CONTROL "127", 127, "Static", SS_RIGHT|WS_GROUP, 368, 320, 40, 8
CONTROL "Cliente:", 4024, "Static", WS_GROUP, 4, 92, 40, 8
CONTROL "R.F.C.:", 4025, "Static", WS_GROUP, 4, 108, 40, 8
CONTROL "Dirección:", 4026, "Static", WS_GROUP, 4, 124, 40, 8
CONTROL "115", 115, "Static", WS_GROUP, 40, 92, 272, 8
CONTROL "116", 116, "Static", WS_GROUP, 40, 108, 64, 8
CONTROL "117", 117, "Static", WS_GROUP, 40, 124, 396, 8
CONTROL "XML", 201, "Button", WS_TABSTOP, 40, 356, 50, 14
CONTROL "Imprimir", 202, "Button", WS_TABSTOP, 104, 356, 50, 14
}
Saludos y buen dia.
Atte: Adrian C. C.