// <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< // Reporte: clasificaciones // Unidad de medida y peso // caracteristicas // catalogo de monedas. // // // // // // Sistema: ADMINPAQ Versión v1.0 Windows // // Descripcion: // // // // // Consideraciones : // Creación : Luis Palau Castañeda. 12/septiembre/2001 // Revisiones : // // 12/02/2007 ND 4446 El reporte de unidades de medida y peso no presenta decimales. (AMG) // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< // INCLUSION DE ARCHIVOS Incluye LibAdminPaq.rpt // INICIO PARAMETROS Parametro pTabla = '1,2,3,4'// 1 clasificaciones // 2 Unidad de medida y peso // 3 caracteristicas // 4 catalogo de monedas. Parametro pIdMonedaTipocambio = 0 //cuando es cero se ignora el parmetro //<> de cero se depliega los tiposde cambio de dicha moneda // INICIO APERTURA TABLAS UsaEmpresa tEmpresa;'CONTPAQ i FACTURACION' // Parametros de la empresa UsaTabla tParametros = tEmpresa['mgw10000'] //unidades peso y med UsaTabla tUnidadesPM = tEmpresa['mgw10026'] tUnidadesPM.Usaindice['cNombreUnidad'] //EquivalenciasUnidades peso y med UsaTabla tEquivaleUnidadesPM = tEmpresa['mgw10027'] tEquivaleUnidadesPM.Usaindice[''] UsaTabla tUnidadesPM1 = tEmpresa['mgw10026'] Alias 'tUnit1' tUnidadesPM1.Usaindice[''] //monedas UsaTabla tMonedas = tEmpresa['mgw10034'] tMonedas.Usaindice['cNombreMoneda'] // Usa el índice primario, por cIdMoneda //Tipos de cambio UsaTabla tTipoCambio = tEmpresa['mgw10035'] tTipoCambio.Usaindice['iMonedaFecha'] //Carcteristicas UsaTabla tCarcteristicas = tEmpresa['mgw10021'] tCarcteristicas.Usaindice['cNombreCaracteristica'] //Carcteristicas2 UsaTabla tCarcteristicas2 = tEmpresa['mgw10022'] tCarcteristicas2.Usaindice['iPadreValor'] //Clasificaciones UsaTabla tClasificaciones = tEmpresa['mgw10019'] tClasificaciones.Usaindice[''] //Clasificaciones2 UsaTabla tClasificaciones2 = tEmpresa['mgw10020'] tClasificaciones2.Usaindice['iClasifValorClasif'] tParametros.Busca Primero //DEFINICION DE COLUMNAS Columnas 20;2.7,0.15,5.55,0.15,1.5,0.15,0.9,0.15, 0,0 ,1.65,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0 UsaLetra 'Arial' Altura 9 //VARIABLES GLOBALES gDelaFecha = '' gAlaFecha = '' gRenglon = '' kMeses = 'Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic'[C0] gDelaFecha = @str(pMes;0) Mientras @len(gDelaFecha)<2 gDelaFecha = '0' & gDelaFecha FinMientras gDelaFecha = @str(pEjercicio;0) & gDelaFecha & '02' //FUNCIONES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< //*********************************************************************************************** // EditaFec // Descripcion: Esta función recibe una fecha con formato ddmmaaaa y la convierte a formato // dd/mmm/aaaa // Entradas : Fecha : contiene la fecha AAAAMMDD // Salida : regresa una cadena con la fecha en formato DD/MMM/AAAA // Autor : FBCS junio 2001 //*********************************************************************************************** DefFunc fEditaFecha(aFecha) Local lMes Local lRegreso lMes = @INT(@SubStr(aFecha;4;2)) lRegreso[0] = @SubStr(aFecha;6;2) & '/' & @Escoge(kMeses;lMes-1) & '/' & @SubStr(aFecha;0;4) Retorna lRegreso FinFunc ////////////////////////////////////////////////////////////////////////////////// //ENCABEZADO Encab Texto '@TC{156;0;89}@S{8}Factura Electrónica' Hoja '"@TC{0,0,0}@S{8}Página: ' Imprime Texto '@TC{0,0,0}@S{8}Moneda: '& gNombreMoneda Texto '^@TC{0,0,0}@S{22}' & tEmpresa->Nombre Texto '"@TC{0,0,0}@S{8}Fecha: ' & fEditaFecha(@Hoy()) Imprime Texto '^@TC{0,0,0}@S{16}' & 'Tablas de la Empresa' Texto '"@TC{0,0,0}@S{8}Hora: ' & @Hora() Imprime Altura 10 FinEncab //PRINCIPAL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Si @pos(@col(pTabla;0);'1') != -1 Texto ' ' Imprime Texto '^@TC{0,0,0}@S{12}' & ' Listado de Clasificaciones' Imprime //Abreviatura Elementos Columnas 20;2.7,0.15,5.55,0.15,4.35,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0 Texto '@TC{0,0,0}@L{-1}' Imprime Texto C2;'Abreviatura' Texto C4;'Elementos' Imprime Texto '@TC{0,0,0}@L{-1}' Imprime lcontador = 0 gRenglon = '' tClasificaciones.busca primero Mientras tClasificaciones->encontro Si tClasificaciones(cIdClasificacion)=31 tClasificaciones.saltareg[1] continua Finsi negritas true Si lcontador <=6 //agente gRenglon = 'Agente'[c0] Finsi Si lcontador >6 y lcontador <=12 //cliente gRenglon = 'Cliente'[c0] Finsi Si lcontador >12 y lcontador <=18 //prov gRenglon = 'Proveedor'[c0] Finsi Si lcontador >18 y lcontador <=24 //almacen gRenglon = 'Almacen'[c0] Finsi Si lcontador >24 y lcontador <=30 //producto gRenglon = 'Producto'[c0] Finsi Si lcontador >30 gRenglon = 'Otras Clasif.'[c0] Finsi texto @col(gRenglon;0) & ' ' & tClasificaciones(cNombreclasificacion) Imprime gRenglon = '' negritas false tClasificaciones2.busca[@str(tClasificaciones(cIdClasificacion);0)] Mientras tClasificaciones2->encontro si tClasificaciones2(cIdClasificacion)!=tClasificaciones(cIdClasificacion) finciclo Finsi gRenglon = tClasificaciones2(cValorClasificacion)[c4] gRenglon = tClasificaciones2(cCodigoValorClasificacion)[c2] Imprime gRenglon gRenglon = '' tClasificaciones2.saltareg[1] FinMientras Texto ' ' imprime lcontador = lcontador +1 tClasificaciones.saltareg[1] Finmientras Finsi Si @pos(@col(pTabla;0);'2') != -1 Texto ' ' Imprime //Abreviatura Elementos Texto '^@TC{0,0,0}@S{12}' & ' Listado de Unidades de Medida y Peso' Imprime Columnas 20;2.7,0.15,5.55,0.15,4.35,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0 Texto '@TC{0,0,0}@L{-1}' Imprime Texto C2;'Factor' Texto C4;'Unidades' Imprime Texto '@TC{0,0,0}@L{-1}' Imprime gRenglon = '' tUnidadesPM.busca primero Mientras tUnidadesPM->encontro Si tUnidadesPM(cidUnidad)=0 tUnidadesPM.saltareg[1] continua Finsi negritas true texto 'Nombre: ' & tUnidadesPM(cNombreUnidad) Imprime texto 'Abreviatura captura: ' & tUnidadesPM(cAbreviatura) Imprime texto 'Abreviatura despliegue y reportes: ' & tUnidadesPM(cDespliegue) Imprime gRenglon = '' negritas false tEquivaleUnidadesPM.busca[@str(tUnidadesPM(cIdUnidad);0)] Mientras tEquivaleUnidadesPM->encontro si tEquivaleUnidadesPM(cIdUnidad1)!=tUnidadesPM(cIdUnidad) finciclo Finsi // gRenglon = ' ' & tEquivaleUnidadesPM(cFactorConversion)[c2] // ND 4446 Verificar si la unidad tiene o no decimales para enviarlos imprimir al // reporte. lNumero = @fraccion(tEquivaleUnidadesPM(cFactorConversion)) Si lNumero = 0 gRenglon = ' ' & @str(tEquivaleUnidadesPM(cFactorConversion);0)[c2] Sino gRenglon = ' ' & @str(tEquivaleUnidadesPM(cFactorConversion);4)[c2] Finsi tUnidadesPM1.busca[@str(tEquivaleUnidadesPM(cIdUnidad2);0)] Si tUnidadesPM1->encontro gRenglon = tUnidadesPM1(cNombreUnidad)& ' ' & tUnidadesPM(cDespliegue) [c4] Finsi Imprime gRenglon gRenglon = '' tEquivaleUnidadesPM.saltareg[1] FinMientras Texto ' ' imprime tUnidadesPM.saltareg[1] Finmientras Finsi Si @pos(@col(pTabla;0);'3') != -1 Texto ' ' Imprime Texto '^@TC{0,0,0}@S{12}' & ' Listado de Características' Imprime //Abreviatura Elementos Columnas 20;2.7,0.15,5.55,0.15,4.35,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0 Texto '@TC{0,0,0}@L{-1}' Imprime Texto C2;'Abreviatura' Texto C4;'Valor' Imprime Texto '@TC{0,0,0}@L{-1}' Imprime gRenglon = '' tCarcteristicas.busca primero Mientras tCarcteristicas->encontro Si tCarcteristicas(cidpadreCaracteristica)=0 tCarcteristicas.saltareg[1] continua Finsi negritas true texto 'Nombre: ' & tCarcteristicas(cNombreCaracteristica) Imprime gRenglon = '' negritas false tCarcteristicas2.busca[@str(tCarcteristicas(cIdPadreCaracteristica);0)] Mientras tCarcteristicas2->encontro si tCarcteristicas2(cIdPadreCaracteristica)!=tCarcteristicas(cIdPadreCaracteristica) finciclo Finsi gRenglon = tCarcteristicas2(cValorCaracteristica)[c4] gRenglon = tCarcteristicas2(cNemoCaracteristica)[c2] Imprime gRenglon gRenglon = '' tCarcteristicas2.saltareg[1] FinMientras Texto ' ' imprime tCarcteristicas.saltareg[1] Finmientras Finsi Si @pos(@col(pTabla;0);'4') != -1 Texto ' ' Imprime Texto '^@TC{0,0,0}@S{12}' & ' Listado de Monedas y Tipos de Cambio' Imprime //Abreviatura Elementos Columnas 20;2.7,0.15,5.55,0.15,4.35,0.15,1.65,0.15,2.25,1.15,1.05,0.15,0 Texto '@TC{0,0,0}@L{-1}' Imprime Texto C2;'Fecha' Texto C4;'Tipo de Cambio' Imprime Texto '@TC{0,0,0}@L{-1}' Imprime gRenglon = '' tMonedas.busca primero Mientras tMonedas->encontro //si es <>0 se filtra por el id.. //si es = 0 seimprimen todos Si @col(pIdMonedaTipocambio;0) != 0 Si @col(pIdMonedaTipocambio;0) !=tMonedas(cIdMoneda) tMonedas.saltareg[1] continua Finsi Finsi negritas true texto 'Moneda: ' & tMonedas(cNombreMoneda) Imprime Si tMonedas(cPosicionSimbolo) = 0 texto 'Simbolo: ' & tMonedas(cSimboloMoneda) &' Posicion: Antes de la cantidad' Sino texto 'Simbolo: ' & tMonedas(cSimboloMoneda) &' Posicion: Despues de la cantidad' Finsi Imprime texto 'Decimales: ' & tMonedas(cDecimalesMoneda) Imprime texto 'Nombre Singular: ' & tMonedas(cSingular) Imprime texto 'Nombre Plural: ' & tMonedas(cPlural) Imprime texto 'Texto cantidad protegida: ' & tMonedas(cDescripcionProtegida) Imprime gRenglon = '' negritas false // N.D.352 INICIO // Ajustar el número de decimales de la columna de tipos de cambio al numero de decimales // de tipos de cambio de la configuración general de la empresa [C4].DECIMALES tParametros(cDecimalesTiposCambio) // N.D.352 FIN tTipoCambio.busca[@str(tMonedas(cIdMoneda);0)] Mientras tTipoCambio->encontro si tTipoCambio(cIdMoneda)!=tMonedas(cIdMoneda) finciclo Finsi gRenglon = tTipoCambio(cImporte)[c4] gRenglon = fEditaFecha(tTipoCambio(cFecha))[c2] Imprime gRenglon gRenglon = '' tTipoCambio.saltareg[1] FinMientras Texto ' ' imprime tMonedas.saltareg[1] Finmientras Finsi