modificaciones facturacion electronica

This commit is contained in:
Luis
2026-10-15 16:07:57 -04:00
parent 07649704b1
commit ba982b7635
158 changed files with 206301 additions and 27838 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
database marmotech
SCHEMA decomarmol
screen size 24 by 80
{
+305 -183
View File
@@ -2,45 +2,46 @@
-------------------------------------------------------------------------------
PROGRAMA : COPRRP001
OBJETIVO : CATALOGO DE SUPLIDORES
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : AGOSTO 1997
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : AGOSTO 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CALL coprrp001()
CONNECT TO "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL coprrp001()
END MAIN
FUNCTION coprrp001()
#### Registro que almacena la informacion requerida
DEFINE listado RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE
r_filename STRING,
preview INT
# WHENEVER ERROR CONTINUE
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21
CLEAR SCREEN
@@ -48,221 +49,278 @@ FUNCTION coprrp001()
OPEN FORM cofmrp001 FROM "cofmrp001"
DISPLAY FORM cofmrp001
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
##### Entrando el valor por el cual se ordenara la salida
INPUT BY NAME decide
AFTER FIELD decide
IF decide IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD decide
END IF
END INPUT
INPUT BY NAME decide
AFTER FIELD decide
IF decide IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD decide
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio ON a.cod_sp,a.cod_sp_sec,a.nom_sp
FROM cod_sp,cod_sp_sec,nom_sp
CONSTRUCT criterio
ON a.cod_sp, a.cod_sp_sec, a.nom_sp
FROM cod_sp, cod_sp_sec, nom_sp
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
##### Selecionando la informacion ordenado alfabeticamente
IF decide = "A" THEN
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio clipped," ORDER BY a.cod_sp,a.cod_sp_sec"
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio CLIPPED,
" ORDER BY a.cod_sp,a.cod_sp_sec"
ELSE
##### Selecionando la informacion ordenado numericamente
ELSE
##### Selecionando la informacion ordenado numericamente
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio clipped," ORDER BY a.cod_sp,a.cod_sp_sec"
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio CLIPPED,
" ORDER BY a.cod_sp,a.cod_sp_sec"
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor" AT 19,14
ATTRIBUTE (REVERSE,BOLD)
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor"
AT 19, 14
ATTRIBUTE(REVERSE, BOLD)
PREPARE busca FROM selec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DECLARE accion CURSOR FOR busca
DISPLAY " " AT 19,14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
DISPLAY " " AT 19, 14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19, 14
ATTRIBUTE(REVERSE)
CALL defecto(
usuarios, clave, impresor)
RETURNING imprime,
negrilla_on,
negrillas_of,
doble_on,
doble_off,
comp_on,
comp_off,
doce,
normal,
archivo,
copia
START REPORT catalogo TO archivo
#### Enviando la informacion al registro del reporte
LET r_filename = 'coprrp001.4rp'
CALL seleccionarSalida() RETURNING r_output
FOREACH accion INTO listado.*
LET preview = 1
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
OUTPUT TO REPORT catalogo(listado.*)
END IF
START REPORT catalogo2 TO XML HANDLER handler
#### Enviando la informacion al registro del reporte
FOREACH accion INTO listado.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
OUTPUT TO REPORT catalogo2(listado.*)
END IF
END FOREACH
FINISH REPORT catalogo
FINISH REPORT catalogo2
CLEAR SCREEN
RUN imprime
END FUNCTION
#RUN imprime
END FUNCTION
##### Funcion que genera el reporte
REPORT catalogo(x)
DEFINE x RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
REPORT catalogo(x)
DEFINE x RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
DEFINE l SMALLINT
DEFINE varia CHAR(10)
DEFINE vfhoy CHAR(8)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 5
BOTTOM MARGIN 4
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 0
PAGE LENGTH 100
FORMAT
PAGE HEADER
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET hora = time
IF decide = "N" THEN
LET varia = "*Numerico*"
ELSE
LET varia = "Alfabetico"
END IF
LET l = (215 - LENGTH(p_companias.nombre))/2
PAGE HEADER
{ LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
}
LET hora = TIME
IF decide = "N" THEN
LET varia = "*Numerico*"
ELSE
LET varia = "Alfabetico"
END IF
LET l = (215 - LENGTH(p_companias.nombre)) / 2
LET vfhoy = TODAY USING "dd/mm/yy"
PRINT COLUMN 1, comp_on,negrillas_on
PRINT COLUMN 1, "coprrp001",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 208, "Pag. ",pageno using "<<<"
PRINT COLUMN 99, "Sistema de Compras",
COLUMN 208, today using "dd/mm/yy"
PRINT COLUMN 1,
COLUMN 97, "Catalogo de Suplidores",
COLUMN 211, hora
LET l = (215 - LENGTH(varia))/2
PRINT COLUMN L, varia
PRINT COLUMN 1, comp_on, negrillas_on
PRINT COLUMN 1,
"coprrp001",
COLUMN l,
p_companias.nombre CLIPPED,
COLUMN 208,
"Pag. ",
PAGENO
PRINT COLUMN 99,
"Sistema de Compras",
COLUMN 208,
vfhoy
PRINT COLUMN 1,
COLUMN 97,
"Catalogo de Suplidores",
COLUMN 211,
hora
LET l = (215 - LENGTH(varia)) / 2
PRINT COLUMN L, varia
PRINT COLUMN 1, "----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT COLUMN 1,
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT COLUMN 113, "Codigo"
PRINT COLUMN 113, "Codigo"
PRINT COLUMN 2, "Codigo",
COLUMN 15, "Nombre Suplidor",
COLUMN 49, "Direccion",
COLUMN 114, "Area",
COLUMN 121, "Telefono",
COLUMN 132, "Fax",
COLUMN 143, "Persona de Contacto",
COLUMN 177, "Terminos de Pago"
PRINT COLUMN 2,
"Codigo",
COLUMN 15,
"Nombre Suplidor",
COLUMN 49,
"Direccion",
COLUMN 114,
"Area",
COLUMN 121,
"Telefono",
COLUMN 132,
"Fax",
COLUMN 143,
"Persona de Contacto",
COLUMN 177,
"Terminos de Pago"
PRINT COLUMN 1, "----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT COLUMN 1,
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT negrillas_off
BEFORE GROUP OF x.cod_sp
skip 1 line
LET idx = 0
ON EVERY ROW
PRINT COLUMN 2, x.cod_sp USING "&&","-",
COLUMN 5, x.cod_sp_sec USING "&&&&",
COLUMN 15, x.nom_sp,
COLUMN 49, x.dir_sp,
COLUMN 114, x.area_sp,
COLUMN 121, x.tel_sp,
COLUMN 132, x.fax_sp,
COLUMN 143, x.cont_sp,
COLUMN 177, x.descrip_term
LET idx = idx + 1
PRINT negrillas_off
BEFORE GROUP OF x.cod_sp
SKIP 1 LINE
LET idx = 0
AFTER GROUP OF x.cod_sp
SKIP 1 Line
IF x.cod_sp = 10 THEN
PRINT COLUMN 2, "Total Suplidores LOCALES .... ",idx
ELSE
PRINT COLUMN 2, "Total Suplidores del EXTRANJERO... ",idx
END IF
ON LAST ROW
PRINT ASCII 18
ON EVERY ROW
PRINT COLUMN 2,
x.cod_sp USING "&&",
"-",
COLUMN 5,
x.cod_sp_sec USING "&&&&",
COLUMN 15,
x.nom_sp,
COLUMN 49,
x.dir_sp,
COLUMN 114,
x.area_sp,
COLUMN 121,
x.tel_sp,
COLUMN 132,
x.fax_sp,
COLUMN 143,
x.cont_sp,
COLUMN 177,
x.descrip_term
LET idx = idx + 1
AFTER GROUP OF x.cod_sp
SKIP 1 LINE
IF x.cod_sp = 10 THEN
PRINT COLUMN 2, "Total Suplidores LOCALES .... ", idx
ELSE
PRINT COLUMN 2, "Total Suplidores del EXTRANJERO... ", idx
END IF
ON LAST ROW
PRINT ASCII 18
{ ON LAST ROW
SKIP 1 LINE
@@ -273,4 +331,68 @@ SKIP 1 Line
"====================================================",
"====================================================",
"=======" }
END REPORT
END REPORT
REPORT catalogo2(x)
DEFINE x RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE total_suplidores,tipo_reporte,total_registros STRING
DEFINE codigo_sp STRING
DEFINE l SMALLINT
DEFINE varia CHAR(10)
FORMAT
PAGE HEADER
BEFORE GROUP OF x.cod_sp
IF decide = "N" THEN
LET varia = "*Numerico*"
ELSE
LET varia = "Alfabetico"
END IF
LET tipo_reporte = varia
PRINTX tipo_reporte
LET idx = 0
ON EVERY ROW
LET codigo_sp = x.cod_sp CLIPPED,"-",x.cod_sp_sec CLIPPED
PRINTX codigo_sp,
x.nom_sp,
x.dir_sp,
x.area_sp,
x.tel_sp,
x.fax_sp,
x.cont_sp,
x.descrip_term
LET idx = idx + 1
AFTER GROUP OF x.cod_sp
IF x.cod_sp = 10 THEN
LET total_suplidores =
"Total Suplidores LOCALES .... ", idx
ELSE
LET total_suplidores =
"Total Suplidores del EXTRANJERO... ", idx
END IF
PRINTX total_suplidores
ON LAST ROW
LET total_registros =
"Total de Registros Impresos = ", COUNT(*) USING "####"
PRINTX total_registros
END REPORT
@@ -0,0 +1,396 @@
{
-------------------------------------------------------------------------------
PROGRAMA : COPRRP001
OBJETIVO : CATALOGO DE SUPLIDORES
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : AGOSTO 1997
DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO
-------------------------------------------------------------------------------
}
GLOBALS "coprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT TO "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL coprrp001()
END MAIN
FUNCTION coprrp001()
#### Registro que almacena la informacion requerida
DEFINE listado RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE
r_filename STRING,
preview INT
# WHENEVER ERROR CONTINUE
OPTIONS FORM LINE 8, ERROR LINE 23, COMMENT LINE 21
CLEAR SCREEN
##### Abriendo el formulario para captura de datos de la condicion de busqueda
OPEN FORM cofmrp001 FROM "cofmrp001"
DISPLAY FORM cofmrp001
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
##### Entrando el valor por el cual se ordenara la salida
INPUT BY NAME decide
AFTER FIELD decide
IF decide IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD decide
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
CONSTRUCT criterio
ON a.cod_sp, a.cod_sp_sec, a.nom_sp
FROM cod_sp, cod_sp_sec, nom_sp
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
##### Selecionando la informacion ordenado alfabeticamente
IF decide = "A" THEN
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio CLIPPED,
" ORDER BY a.cod_sp,a.cod_sp_sec"
ELSE
##### Selecionando la informacion ordenado numericamente
LET SELEC =
"SELECT a.cod_sp,a.cod_sp_sec,a.nom_sp,a.dir_sp,a.area_sp,a.tel_sp, ",
" a.fax_sp,a.cont_sp,b.descrip_term ",
"FROM cotb00001 a, OUTER cotb00024 b ",
"WHERE a.term_sp = b.term_sp AND a.status_t is null AND ",
criterio CLIPPED,
" ORDER BY a.cod_sp,a.cod_sp_sec"
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DISPLAY "Buscando Informacion ... Espere Por Favor"
AT 19, 14
ATTRIBUTE(REVERSE, BOLD)
PREPARE busca FROM selec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DECLARE accion CURSOR FOR busca
DISPLAY " " AT 19, 14
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19, 14
ATTRIBUTE(REVERSE)
CALL defecto(
usuarios, clave, impresor)
RETURNING imprime,
negrilla_on,
negrillas_of,
doble_on,
doble_off,
comp_on,
comp_off,
doce,
normal,
archivo,
copia
LET r_filename = 'coprrp001.4rp'
CALL seleccionarSalida() RETURNING r_output
LET preview = 1
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
START REPORT catalogo2 TO XML HANDLER handler
#### Enviando la informacion al registro del reporte
FOREACH accion INTO listado.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF status = NOTFOUND THEN
EXIT FOREACH
ELSE
OUTPUT TO REPORT catalogo2(listado.*)
END IF
END FOREACH
FINISH REPORT catalogo2
#RUN imprime
END FUNCTION
##### Funcion que genera el reporte
REPORT catalogo(x)
DEFINE x RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE doble_on CHAR(2)
DEFINE doble_off CHAR(2)
DEFINE negrillas_on CHAR(2)
DEFINE negrillas_off CHAR(2)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE hora CHAR(5)
DEFINE l SMALLINT
DEFINE varia CHAR(10)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 0
PAGE LENGTH 100
FORMAT
PAGE HEADER
{ LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
}
LET hora = TIME
IF decide = "N" THEN
LET varia = "*Numerico*"
ELSE
LET varia = "Alfabetico"
END IF
LET l = (215 - LENGTH(p_companias.nombre)) / 2
PRINT COLUMN 1, comp_on, negrillas_on
PRINT COLUMN 1,
"coprrp001",
COLUMN l,
p_companias.nombre CLIPPED,
COLUMN 208,
"Pag. ",
PAGENO USING "<<<"
PRINT COLUMN 99,
"Sistema de Compras",
COLUMN 208,
TODAY USING "dd/mm/yy"
PRINT COLUMN 1,
COLUMN 97,
"Catalogo de Suplidores",
COLUMN 211,
hora
LET l = (215 - LENGTH(varia)) / 2
PRINT COLUMN L, varia
PRINT COLUMN 1,
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT COLUMN 113, "Codigo"
PRINT COLUMN 2,
"Codigo",
COLUMN 15,
"Nombre Suplidor",
COLUMN 49,
"Direccion",
COLUMN 114,
"Area",
COLUMN 121,
"Telefono",
COLUMN 132,
"Fax",
COLUMN 143,
"Persona de Contacto",
COLUMN 177,
"Terminos de Pago"
PRINT COLUMN 1,
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"----------------------------------------------------",
"-------"
PRINT negrillas_off
BEFORE GROUP OF x.cod_sp
SKIP 1 LINE
LET idx = 0
ON EVERY ROW
PRINT COLUMN 2,
x.cod_sp USING "&&",
"-",
COLUMN 5,
x.cod_sp_sec USING "&&&&",
COLUMN 15,
x.nom_sp,
COLUMN 49,
x.dir_sp,
COLUMN 114,
x.area_sp,
COLUMN 121,
x.tel_sp,
COLUMN 132,
x.fax_sp,
COLUMN 143,
x.cont_sp,
COLUMN 177,
x.descrip_term
LET idx = idx + 1
AFTER GROUP OF x.cod_sp
SKIP 1 LINE
IF x.cod_sp = 10 THEN
PRINT COLUMN 2, "Total Suplidores LOCALES .... ", idx
ELSE
PRINT COLUMN 2, "Total Suplidores del EXTRANJERO... ", idx
END IF
ON LAST ROW
PRINT ASCII 18
{ ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 2, "Total de Registros Impresos = ", count(*) USING "####"
PRINT COLUMN 2, ASCII 27, ASCII 80
PRINT COLUMN 1, "====================================================",
"====================================================",
"====================================================",
"====================================================",
"=======" }
END REPORT
REPORT catalogo2(x)
DEFINE x RECORD
cod_sp LIKE cotb00001.cod_sp,
cod_sp_sec LIKE cotb00001.cod_sp_sec,
nom_sp LIKE cotb00001.nom_sp,
dir_sp LIKE cotb00001.dir_sp,
area_sp LIKE cotb00001.area_sp,
tel_sp LIKE cotb00001.tel_sp,
fax_sp LIKE cotb00001.fax_sp,
cont_sp LIKE cotb00001.cont_sp,
descrip_term LIKE cotb00024.descrip_term
END RECORD
DEFINE total_suplidores,tipo_reporte,total_registros STRING
DEFINE codigo_sp STRING
DEFINE l SMALLINT
DEFINE varia CHAR(10)
FORMAT
PAGE HEADER
BEFORE GROUP OF x.cod_sp
IF decide = "N" THEN
LET varia = "*Numerico*"
ELSE
LET varia = "Alfabetico"
END IF
LET tipo_reporte = varia
PRINTX tipo_reporte
LET idx = 0
ON EVERY ROW
LET codigo_sp = x.cod_sp CLIPPED,"-",x.cod_sp_sec CLIPPED
PRINTX codigo_sp,
x.nom_sp,
x.dir_sp,
x.area_sp,
x.tel_sp,
x.fax_sp,
x.cont_sp,
x.descrip_term
LET idx = idx + 1
AFTER GROUP OF x.cod_sp
IF x.cod_sp = 10 THEN
LET total_suplidores =
"Total Suplidores LOCALES .... ", idx
ELSE
LET total_suplidores =
"Total Suplidores del EXTRANJERO... ", idx
END IF
PRINTX total_suplidores
ON LAST ROW
LET total_registros =
"Total de Registros Impresos = ", COUNT(*) USING "####"
PRINTX total_registros
END REPORT
+89
View File
@@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<report:Report xmlns:rtl="http://www.4js.com/2004/RTL" xmlns:report="http://www.4js.com/2007/REPORT" xmlns="http://www.4js.com/2004/PXML" gstVersion="3140a" version="6.00">
<report:Settings RWPageWidth="28.00cm" RWPageLength="29.70cm" RWLeftMargin="1.30cm" RWTopMargin="1.30cm" RWRightMargin="1.30cm" RWBottomMargin="1.30cm">
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../codir/coprrp001.rdd" RWFglReportName="catalogo2"/>
<report:Conflicts>
<report:Conflict nodeName="Layout Node7" message="Node was in trigger &quot;FirstPageHeader [0; 1]&quot;, but trigger was removed during schema update"/>
</report:Conflicts>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report" minOccurs="1" maxOccurs="1">
<MINIPAGE name="pageRoot" width="max" length="766.687" alignment="near" fontName="Arial">
<LAYOUTNODE name="Layout Node7" width="min" length="min" swapX="true" port="firstPageHeader">
<LAYOUTNODE name="Titulo" width="min" length="max" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed" borderWidth="0">
<WORDBOX name="WordBox159" width="66" alignment="baseline" floatingBehavior="enclosed" text="coprrp001"/>
<WORDWRAPBOX name="p_companias.nombre Value" width="584.749" alignment="baseline" floatingBehavior="enclosed" text="{{&quot;MARMOTECH S.A.&quot;}}" textAlignment="center"/>
</LAYOUTNODE>
<MINIPAGE name="Enc.Secundario" width="min" length="min" alignment="near" layoutDirection="leftToRight" borderWidth="0.2">
<WORDBOX name="WordBox2" width="719" alignment="near" fontBold="true" floatingBehavior="enclosed" textAlignment="center" text="Sistema de Compras" borderWidth="0"/>
</MINIPAGE>
<MINIPAGE name="StripeLayouter14" width="15.7303" length="max" alignment="center" layoutDirection="leftToRight">
<rtl:input-variable name="tipo_reporte" type="FGLString" expectedLocation="expectedAhead"/>
<WORDWRAPBOX name="tipo_reporte Value" class="grwStringValue" width="max" floatingBehavior="enclosed" text="{{tipo_reporte}}" textAlignment="center"/>
</MINIPAGE>
<MINIPAGE name="encabezadod1" width="max" length="min" swapX="true">
<MINIPAGE name="StripeLayouter23" width=".1cm" bgColor="#cc" layoutDirection="leftToRight"/>
<MINIPAGE name="encabezadodetalle" width="min" length="max" bgColor="#cccccc" fontBold="true" layoutDirection="leftToRight">
<WORDBOX name="WordBox44" width="55.7686" length="12.3906" alignment="near" fontSize="9" baselineType="leftleft" textAlignment="center" text="Codigo"/>
<WORDBOX name="WordBox46" width="101.52" alignment="center" fontSize="9" baselineType="leftleft" textAlignment="center" text="Suplidor"/>
<WORDBOX name="WordBox120_1_1" width="110.563" length="12.1628" alignment="center" fontSize="9" baselineType="leftleft" floatingBehavior="enclosed" textAlignment="center" text="Direccion"/>
<WORDBOX name="WordBox120_2" width="41.2111" alignment="center" fontSize="9" floatingBehavior="enclosed" textAlignment="center" text="Codigo Area"/>
<LAYOUTNODE name="espacio5_1_2_2" width="20" length="5" layoutDirection="leftToRight"/>
<WORDBOX name="WordBox120_1" width="92.3465" alignment="center" fontSize="9" floatingBehavior="enclosed" textAlignment="center" text="Telefono"/>
<WORDBOX name="WordBox120_3" width="90.3465" alignment="center" fontSize="9" floatingBehavior="enclosed" textAlignment="center" text="Fax"/>
<WORDBOX name="WordBox120" width="99.346" alignment="center" fontSize="9" floatingBehavior="enclosed" textAlignment="center" text="Persona de Contacto" trimText="both"/>
<WORDBOX name="WordBox120_4" width="107.346" alignment="center" fontSize="9" floatingBehavior="enclosed" textAlignment="center" text="Terminos de Pago" trimText="both"/>
</MINIPAGE>
<MINIPAGE name="StripeLayouter25" width=".1cm" bgColor="#cc" layoutDirection="leftToRight"/>
</MINIPAGE>
</LAYOUTNODE>
<rtl:match name="Group cod_sp" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="LayoutNode31" width="40.4427" length="max" alignment="near" fontSize="9" layoutDirection="leftToRight" borderWidth="1" borderStyle="solid" borderColor="#dfdfdf">
<rtl:input-variable name="codigo_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox4" width="58.1964" length="24.3281" alignment="baseline" fontSize="8" floatingBehavior="enclosed" text="{{codigo_sp}}" trimText="both" textAlignment="center"/>
<LAYOUTNODE name="espacio" width="min" length="3.5197" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.nom_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox5" width="97.197" length="24.2783" alignment="baseline" fontSize="8" baselineType="leftleft" text="{{x.nom_sp}}" trimText="both" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1" width="21" length="5" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.dir_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox4_1" width="104.576" length="24.3281" alignment="baseline" fontSize="8" floatingBehavior="enclosed" text="{{x.dir_sp}}" trimText="both" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1_7" width="21" length="4" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.area_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="karr_ordenes.valor Value1" class="grwNumericValue" width="35.9193" length="25.0469" anchorX="1" alignment="near" fontSize="8" floatingBehavior="enclosed" text="{{x.area_sp}}" trimText="both" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1_1" width="20" length="5" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.tel_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="arr_costos.codigo_bloque Value7" class="grwStringValue" width="88.9844" length="23.0469" floatingBehavior="enclosed" text="{{x.tel_sp}}" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1_2" width="20" length="5" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.fax_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="x.costo_lab4" class="grwStringValue" width="82.9531" length="24.0469" alignment="baseline" floatingBehavior="enclosed" text="{{x.fax_sp}}" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1_2_1" width="22" length="5" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.cont_sp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="arr_costos.codigo_bloque Value8" class="grwStringValue" width="92.9531" length="24.0469" alignment="near" fontBold="false" floatingBehavior="enclosed" text="{{x.cont_sp}}" textAlignment="center"/>
<LAYOUTNODE name="espacio5_1_2_1_1" width="22" length="5" layoutDirection="leftToRight"/>
<rtl:input-variable name="x.descrip_term" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="x.descrip_term Value" class="grwStringValue" width="124.938" length="25.6032" floatingBehavior="enclosed" textAlignment="center" text="{{x.descrip_term}}"/>
</LAYOUTNODE>
</rtl:match>
<LAYOUTNODE name="LayoutNode31_1" width="33.7574" length="max" alignment="near" fontSize="9" layoutDirection="leftToRight" borderWidth="1" borderColor="#000000">
<rtl:input-variable name="total_suplidores" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox9" width="207.562" length="24.3281" alignment="baseline" fontBold="true" floatingBehavior="enclosed" text="{{total_suplidores}}" trimText="both" textAlignment="left"/>
</LAYOUTNODE>
</rtl:match>
<rtl:match name="OnLastRow" nameConstraint="OnLastRow" minOccurs="0" maxOccurs="1">
<LAYOUTNODE name="LayoutNode31_1_1" width="25.433" length="max" alignment="near" fontSize="9" layoutDirection="leftToRight" borderWidth="1" borderStyle="solid" borderColor="#000000">
<rtl:input-variable name="total_registros" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox11" width="205.212" length="24.3281" alignment="center" fontBold="true" floatingBehavior="enclosed" text="{{total_registros}}" trimText="both" textAlignment="left"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff