primer commit subida

This commit is contained in:
Luis
2026-09-22 20:38:51 -04:00
commit 07649704b1
10247 changed files with 3271751 additions and 0 deletions
File diff suppressed because it is too large Load Diff
Binary file not shown.
+137
View File
@@ -0,0 +1,137 @@
IMPORT OS
GLOBALS "prprgb000.4gl"
DEFINE d_tipos,mensaje,f_tipos,filepath,extension,xdestino,l_file,tmpdir_file STRING
FUNCTION busca_dibujos(xnum_oc)
DEFINE nombre_cliente,vendedor CHAR(60),
documentos DYNAMIC ARRAY OF RECORD
idx INT,
tipo_file CHAR(20),
bodega SMALLINT,
num_doc INT,
nombre_file VARCHAR(100),
filedestino BYTE,
envio_correo CHAR(10)
END RECORD,
p_res,i SMALLINT,
xnum_oc,cuenta INT
LET i = 1
LET prtb08.num_oc = xnum_oc
# VERIFICA QUE LA ORDEN TENGA DIBUJOS
SELECT ISNULL(COUNT(*),0) INTO cuenta FROM prtb00029 a WHERE a.num_oc = prtb08.num_oc AND a.tipo_file = 'DI'
IF cuenta = 0 THEN
CALL fgl_winmessage("info","ORDEN NO TIENE DIBUJO","INFO")
RETURN
END IF
OPEN WINDOW w1 WITH FORM "prfmwd012"
CALL documentos.clear()
DECLARE busca_dibujo CURSOR FOR
SELECT a.id,a.tipo_file,a.bodega,a.num_doc,a.nombre_file,
a.documento,a.envio_notificacion
FROM prtb00029 a
WHERE a.num_oc = prtb08.num_oc
ORDER BY a.id
LET idx = 1
LOCATE documentos[idx].filedestino IN MEMORY
FOREACH busca_dibujo INTO documentos[idx].*
LET idx = idx + 1
LOCATE documentos[idx].filedestino IN MEMORY
END FOREACH
DISPLAY ARRAY documentos TO sdibujo.*
BEFORE DISPLAY
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' '),
a.tipo_cliente,a.sec_cliente
INTO prtb08.cotizacion_no,nombre_cliente,prtb08.sec_vend,vendedor,
prtb08.tipo_cliente,prtb08.sec_cliente
FROM prtb00012 a,vetb00004 b,adtb00003 c
WHERE a.num_oc = prtb08.num_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
a.sec_vend = c.num_emp
DISPLAY BY NAME prtb08.num_oc,prtb08.cotizacion_no,nombre_cliente,vendedor
ON ACTION abrir
WHENEVER ERROR CONTINUE
TRY
LET tmpdir_file = "tmp\\",usuarios CLIPPED,documentos[arr_curr()].nombre_file
CALL documentos[arr_curr()].filedestino.writeFile(tmpdir_file)
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
LET l_file = l_file CLIPPED,"\\",documentos[arr_curr()].nombre_file
CALL fgl_putfile(tmpdir_file,l_file)
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
CATCH
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
END TRY
AFTER DISPLAY
IF INT_FLAG THEN
EXIT DISPLAY
END IF
EXIT DISPLAY
END DISPLAY
LET INT_FLAG = FALSE
CLOSE WINDOW w1
END FUNCTION
FUNCTION showDir(path)
DEFINE path STRING
DEFINE child STRING
DEFINE h INTEGER,
contenido DYNAMIC ARRAY OF STRING,
exito BOOLEAN
OPEN WINDOW w2 WITH FORM "prtest"
IF NOT os.Path.exists(path) THEN
CALL fgl_winmessage("NO",path,"info")
RETURN
END IF
IF NOT os.Path.isdirectory(path) THEN
DISPLAY " ", os.Path.basename(path)
RETURN
END IF
LET contenido[1]="[",path,"]"
LET idx = 1
CALL os.Path.dirsort("name", 1)
LET h = os.Path.diropen(path)
WHILE h > 0
LET child = os.Path.dirnext(h)
IF child IS NULL THEN EXIT WHILE END IF
IF child == "." OR child == ".." THEN CONTINUE WHILE END IF
LET contenido[idx] = os.Path.join( path, child )
LET idx = idx + 1
END WHILE
CALL os.Path.dirclose(h)
DISPLAY ARRAY contenido TO scontenido.*
ON ACTION borrar
CALL os.Path.delete(contenido[arr_curr()]) RETURNING exito
IF NOT exito THEN
CALL fgl_winmessage("E","NO BORRE EL FILE","INFO")
CONTINUE DISPLAY
END IF
AFTER DISPLAY
IF INT_FLAG THEN
EXIT PROGRAM
END IF
EXIT DISPLAY
END DISPLAY
CLOSE WINDOW w2
END FUNCTION
Binary file not shown.
+33
View File
@@ -0,0 +1,33 @@
FUNCTION existenciaalmacenes(codn,codgrupo,codtipo,codsec,producto)
DEFINE codn,codgrupo,codtipo,codsec,i INT,
arr_existencias DYNAMIC ARRAY OF RECORD
almacen VARCHAR(50),
fisico DEC(12,5)
END RECORD,
cantidad_ordenes,pcantidadConduce,transito,pexistencia,reservado,disponible,pcantidad_ordenes DEC(12,5),
producto VARCHAR(100)
OPEN WINDOW w1 WITH FORM 'existenciaalmacenes'
CALL disponibles(codn,codgrupo,codtipo,codsec,TODAY)
RETURNING cantidad_ordenes,pcantidadConduce,transito,pexistencia,reservado
LET pcantidad_ordenes = cantidad_ordenes -pcantidadConduce
LET disponible = pexistencia - pcantidad_ordenes - reservado
DISPLAY BY NAME producto,disponible,pcantidad_ordenes,pexistencia,pcantidadConduce
DECLARE buscaExistencias CURSOR FOR
SELECT '('||CAST(a.cod_bodega AS VARCHAR(5))||')'||a.descripcion,SUM(b.cantidad_2) FROM
intb00009 a INNER JOIN iptb00006 b ON b.bodega = a.cod_bodega AND b.cod_n = codn AND
b.cod_grupo = codgrupo AND
b.cod_tipo = codtipo AND
b.cod_sec = codsec AND
b.status_t IS NULL
GROUP BY a.cod_bodega,a.descripcion
LET i = 1
FOREACH buscaExistencias INTO arr_existencias[i].*
LET i = i + 1
END FOREACH
DISPLAY ARRAY arr_existencias TO s_existencia.*
CLOSE WINDOW w1
END FUNCTION
+250
View File
@@ -0,0 +1,250 @@
GLOBALS "prprgb000.4gl"
DEFINE psimbolo CHAR(10),
instalador,soportes,xsoportes,vendedor_aux VARCHAR(200),
err char(30),
xtipo_tarjeta,xtarjeta VARCHAR(50),
kvendedor INT,
ximagen BYTE
DEFINE condicion RECORD LIKE vetb00012.*, descrip2 CHAR(80), medida CHAR(3),
nombre_ciudad CHAR(30),
nombre_vend CHAR(70)
FUNCTION impresion(data_imp,r_filename,r_output,xcuenta_item,etiqueta_cotiza)
DEFINE data_imp RECORD
cotizacion_no,tipo_cliente,sec_cliente INT,
fecha DATE,
sec_Vend INT,
direccion_cliente,nombre,contacto,nombre_proyecto,direccion_proyecto,nombre_ciudad,
nombre_vend,nombre_cliente VARCHAR(100),
rnc VARCHAR(11),
telefono_o,telefono_r,celular,celular1 VARCHAR(25),
email VARCHAR(100),
orden,cond_pago INT,
soportes,instalador,plazo_Entrega VARCHAR(100),
comentario VARCHAR(250),
sub_total,monto_desc,porc_itbis,neto,total_bruto,monto_itbis,total_neto DEC(12,2),
num_emp_int,vendedor_aux,bodega INT,
tbodega VARCHAR(100)
END RECORD
DEFINE detalle RECORD
area VARCHAR (60),
cod_n INT,
cod_grupo INT,
cod_tipo INT,
cod_sec INT,
descripcion CHAR(80),
cantidad_1 DEC(12,5),
cantidad DEC(12,5),
precio DEC(12,2),
porc_desc DEC(12,2),
nombre_file CHAR(50)
END RECORD,
fila smallint
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER, -- TRUE/FALSE, to set preview option
pvetb51 RECORD LIKE vetb00051.*,
historico CHAR(1),
xcuenta_item smallint,
etiqueta_cotiza CHAR(30)
SET CONNECTION "MSSQL"
LET preview = TRUE
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
CALL fgl_report_selectDevice(r_output) -- changing default
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
# BODEGA
SELECT a.descripcion INTO data_imp.tbodega FROM intb00009 a WHERE a.cod_bodega = data_imp.bodega
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT imprimeO TO XML HANDLER handler
SELECT RTRIM(a.nom1_emp)+' '+RTRIM(ISNULL(a.apell1_emp,' ')) INTO instalador FROM adtb00003 a
WHERE a.num_emp = data_imp.num_emp_int
# Vendedor Auxiliar
SELECT RTRIM(a.nom1_emp)+' '+RTRIM(ISNULL(a.apell1_emp,' ')) INTO vendedor_aux FROM adtb00003 a
WHERE a.num_emp = data_imp.vendedor_aux
SELECT a.descrip INTO condicion.descrip FROM vetb00012 a WHERE a.cond_pago = data_imp.cond_pago
DECLARE soporte CURSOR FOR
SELECT RTRIM(a.nom1_emp)||' '||a.apell1_emp FROM adtb00003 a,vetb00093 b
WHERE b.cotizacion_no = data_imp.cotizacion_no AND a.num_emp = b.sec_vend
LET soportes = NULL
LET idx = 1
FOREACH soporte INTO xsoportes
LET soportes = xsoportes CLIPPED
IF idx > 1 THEN
LET soportes = xsoportes CLIPPED,", ",soportes CLIPPED
END IF
LET idx = idx+1
END FOREACH
# START REPORT otroimp TO XML HANDLER HANDLER #"temporal.txt"
LET selec =
"SELECT a.descripcion_area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec ",
" ,a.cantidad_1,a.cantidad, ",
" a.precio,a.porc_Desc,a.descripcion,c.unidad_med,a.foto_producto,a.secuencia ",
"FROM vetb00051 a,iptb00002 c ",
"WHERE a.cotizacion_no = ",data_imp.cotizacion_no," AND ",
" a.cod_n = c.cod_n AND ",
" a.cod_grupo = c.cod_grupo AND ",
" a.cod_tipo = c.cod_tipo AND ",
" a.cod_Sec = c.cod_sec ",
" ORDER BY a.secuencia "
PREPARE comando1 FROM selec
DECLARE busca_cot CURSOR FOR comando1
LOCATE ximagen IN MEMORY
FOREACH busca_cot INTO detalle.area,detalle.cod_n,detalle.cod_grupo,
detalle.cod_tipo,detalle.cod_sec,detalle.cantidad_1,
detalle.cantidad,detalle.precio,detalle.porc_desc,
descrip2,medida,ximagen,fila
IF descrip2 IS NULL THEN
SELECT a.descrip_esp INTO descrip2
FROM iptb00002 a
WHERE a.cod_n = pvetb51.cod_n AND
a.cod_grupo = pvetb51.cod_grupo AND
a.cod_tipo = pvetb51.cod_tipo AND
a.cod_sec = pvetb51.cod_sec
END IF
IF ximagen IS NULL OR LENGTH(ximagen) < 4 THEN
LET err = "imagen en blanco ",detalle.cod_sec USING "&&&&&"
# CALL fgl_winmessage("info",err,"info")
CALL ximagen.readFile("fotodefault.jpg")
END IF
OUTPUT TO REPORT imprimeO(data_imp.*,detalle.*,descrip2,medida,etiqueta_cotiza,fila)
# OUTPUT TO REPORT otroimp(data_imp.*,detalle.*,descrip2,medida,etiqueta_cotiza,imagen,fila)
END FOREACH
FINISH REPORT imprimeO
# FINISH REPORT otroimp
ELSE
EXIT PROGRAM
END IF
RETURN r_output
END FUNCTION
REPORT imprimeO(y,z,xnombre_p,xmedida,xetiqueta,xfila)
DEFINE z RECORD
area VARCHAR (60),
cod_n INT,
cod_grupo INT,
cod_tipo INT,
cod_sec INT,
descripcion CHAR(80),
cantidad_1 DEC(12,5),
cantidad DEC(12,5),
precio DEC(12,2),
porc_desc DEC(12,2),
nombre_file CHAR(50)
END RECORD,
xfila smallint,
y RECORD
cotizacion_no,tipo_cliente,sec_cliente INT,
fecha DATE,
sec_vend INT,
direccion_cliente,nombre,contacto,nombre_proyecto,direccion_proyecto,nombre_ciudad,
nombre_vend,nombre_cliente VARCHAR(100),
rnc VARCHAR(11),
telefono_o,telefono_r,celular,celular1 VARCHAR(25),
email VARCHAR(100),
orden,cond_pago INT,
soportes,instalador,plazo_entrega VARCHAR(100),
comentario VARCHAR(250),
sub_total,monto_desc,porc_itbis,neto,total_bruto,monto_itbis,total_neto DEC(12,2),
num_emp_int,vendedor_aux,bodega INT,
tbodega VARCHAR(100)
END RECORD,
xnombre_a,xetiqueta CHAR(30),
xnombre_p CHAR(50),
xmedida CHAR(3),
xtotal_p,bruto,descuento,neto,total_area DEC(12,2),
parea,pfecha,hora,etiqueta,etiqueta1,etiqueta2,etiqueta3,etiqueta4,etiqueta5 CHAR(100),
xorden INT
OUTPUT
LEFT MARGIN 0
ORDER BY z.area,xfila,z.cod_n,z.cod_grupo,z.cod_tipo,z.cod_sec
FORMAT
PAGE HEADER
LET pfecha = TODAY USING "DD/MM/YYYY"
LET hora = TIME
LET etiqueta = "FORMA DE PAGO: ",condicion.descrip
LET etiqueta3 = "PLAZO ENTREGA: ",y.plazo_entrega
LET etiqueta4 = "COMENTARIO: "
LET etiqueta5 = "Entre la empresa ",p_compania.nombre CLIPPED," de una parte y de la otra parte:"
LET etiqueta1 = "Las variaciones en las tonalidades y vetas se entienden como parte de la naturaleza de las piedras naturales."
LET etiqueta2 = " No somos responsables en las tardanzas en la entrega cuando esten sujetas a especificaciones de medidas y/o terminaciones. "
BEFORE GROUP OF z.area
LET total_area = 0
ON EVERY ROW
# BUSCA ORDEN
LET xorden = NULL
SELECT a.simbolo INTO psimbolo FROM vetb00061 a,vetb00060 b WHERE a.ventas = b.ventas
AND b.tipo_cliente = y.tipo_cliente
SELECT a.num_oc INTO xorden
FROM prtb00012 a
WHERE a.cotizacion_no = y.cotizacion_no AND a.status_t IS NULL
LET bruto = 0
LET descuento = 0
LET bruto = z.cantidad * z.precio
LET descuento = (z.cantidad*z.precio*(z.porc_Desc/100))
LET xtotal_p = bruto - descuento
LET y.sub_total = y.sub_total + y.monto_desc
IF instalador IS NULL THEN
LET instalador='NO TIENE'
END IF
PRINTX p_compania.*,y.*,z.*,bruto,descuento,neto,
etiqueta,etiqueta2,etiqueta3,etiqueta4,etiqueta5,nombre_ciudad,
nombre_vend,xnombre_p,xmedida,xtotal_p,
condicion.descrip,psimbolo,xorden,xetiqueta,soportes,ximagen,
instalador,xtipo_tarjeta,xtarjeta,vendedor_aux
AFTER GROUP OF z.area
# LET total_area = GROUP SUM(z.cantidad*z.precio)
LET total_area = GROUP SUM (z.cantidad*z.precio) -GROUP SUM(z.cantidad*z.precio*(z.porc_Desc/100))
PRINTX total_area
END REPORT
+62
View File
@@ -0,0 +1,62 @@
FUNCTION mercancia_transito(pcodn,pcodgrupo,pcodtipo,pcodsec,fecha_transito,cod_inventario)
DEFINE pcodn,pcodgrupo,pcodtipo,pcodsec,cod_inventario SMALLINT,
cantidad_ordenada, cantidad_recibida,transito DEC(12,5),
fecha_transito,fecha_ordenada,fecha_recibida DATE
# CANTIDAD ORDENADA
LET transito = 0
LET fecha_ordenada=NULL
LET fecha_recibida=NULL
IF cod_inventario ='02' THEN
SELECT SUM(a.cantidad) INTO cantidad_ordenada
FROM cotb00015 a,cotb00014 b
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
(a.num_oc = b.num_oc) AND (b.fech_oc <= fecha_transito) AND
a.status_t IS NULL
SELECT SUM(a.cantidad_2) INTO cantidad_recibida
FROM iptb00006 a
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
(a.fecha <= fecha_transito) AND a.cod_mov IN (10) and
a.status_t IS NULL
LET transito = cantidad_ordenada - cantidad_recibida
SELECT CONVERT(CHAR(10),MAX(b.fech_oc),103) INTO fecha_ordenada FROM cotb00014 b,cotb00015 a
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
(a.num_oc = b.num_oc) AND (b.fech_oc <= fecha_transito) AND
a.status_t IS NULL
SELECT CONVERT(CHAR(10),MAX(a.fecha),103) INTO fecha_recibida
FROM iptb00006 a
WHERE (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND a.cod_Sec = pcodsec) AND
(a.fecha <= fecha_transito) AND a.cod_mov IN (10) and
a.status_t IS NULL
END IF
RETURN transito,fecha_ordenada,fecha_recibida
END FUNCTION
FUNCTION fechas_llegadas(pcodn,pcodgrupo,pcodtipo,pcodsec,fecha_transito)
DEFINE idx,pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
fecha_transito DATE
DEFINE busca_parcial DYNAMIC ARRAY OF RECORD
secuencia INT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
cantidad DEC(12,5),
fech_emb DATE,
fech_ent DATE
END RECORD
OPEN WINDOW w1 WITH FORM "cofmfu009"
DECLARE b_fecha_parcial CURSOR FOR
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.cantidad,a.fech_emb,a.fech_ent
FROM cotb00025 a WHERE a.cod_n = pcodn AND a.cod_grupo = pcodgrupo AND a.cod_tipo = pcodtipo AND
a.cod_Sec = pcodsec AND a.fech_ent <= fecha_transito AND a.status_t IS NULL
LET idx = 1
FOREACH b_fecha_parcial INTO busca_parcial[idx].*
LET idx = idx + 1
END FOREACH
DISPLAY ARRAY busca_parcial TO s_parcial.*
CLOSE WINDOW w1
END FUNCTION
Binary file not shown.
+127
View File
@@ -0,0 +1,127 @@
DEFINE arr_operaciones DYNAMIC ARRAY OF RECORD
orden_etapa SMALLINT,
id_etapa INT,
nombre_etapa VARCHAR(50),
id_maquina INT,
nombre_maquina VARCHAR(50),
operario INT,
nombre_operario VARCHAR(50),
fecha_inicio DATE,
fecha_fin DATE,
estado VARCHAR(50)
END RECORD
FUNCTION crear_orden_produccion(p_orden_pedido , p_cod_n, p_cod_grupo, p_cod_tipo , p_cod_sec )
DEFINE p_orden_pedido, p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec INT
DEFINE v_id_produccion INT,
mensajes STRING
-- Verifica si esta orden de pedidos ya tiene una orden de produccion
SELECT DISTINCT a.num_oc FROM prtb00007 a
WHERE a.num_oc = p_orden_pedido AND
a.cod_n = v_cod_n AND
a.cod_grupo = v_cod_grupo AND
a.cod_tipo = v_cod_tipo AND
a.cod_Sec = v_cod_sec
IF STATUS <> NOTFOUND THEN
LET mensajes = 'ORDEN YA TIENE ORDEN DE PRODUCCION'
RETURN FALSE, mensajes
END IF
SELECT NEXT VALUE for seq_prtb00007 INTO v_id_produccion
INSERT INTO prtb00007 (
id_produccion, fecha, tipo_cliente, sec_cliente,
sec_vend, orden_pedido, cod_n, cod_grupo,
cod_tipo, cod_sec, cantidad, us_crea, fech_crea
) VALUES (
v_id_produccion, CURRENT,
1, 1, NULL, p_orden_pedido, p_cod_n, p_cod_grupo,
p_cod_tipo, p_cod_sec, 0, USER, CURRENT
)
CALL cargar_etapas_para_planificar(v_id_produccion, p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec)
OPEN FORM f_planificar FROM "planificar_operaciones.per"
INPUT ARRAY arr_operaciones WITHOUT DEFAULTS ATTRIBUTES(UNBUFFERED)
ON CHANGE operario
CALL cargar_nombre_operario(CURRENT operario, CURRENT nombre_operario)
ON CHANGE id_maquina
CALL cargar_nombre_maquina(CURRENT id_maquina, CURRENT nombre_maquina)
ON CHANGE id_etapa
CALL cargar_nombre_etapa(CURRENT id_etapa, CURRENT nombre_etapa)
END INPUT
CALL guardar_operaciones(v_id_produccion, p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec)
END FUNCTION
FUNCTION cargar_etapas_para_planificar(p_id_produccion INT, p_cod_n INT, p_cod_grupo INT, p_cod_tipo INT, p_cod_sec INT)
DEFINE p_id_produccion, p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec INT
DEFINE i INT
DECLARE c_hist CURSOR FOR
SELECT etapa, codigo, num_emp, estado, orden_etapa
FROM prtb00008
WHERE cod_n = p_cod_n AND cod_grupo = p_cod_grupo
AND cod_tipo = p_cod_tipo AND cod_sec = p_cod_sec
ORDER BY orden_etapa
LET i = 1
CALL arr_operaciones.clear()
FOREACH c_hist INTO arr_operaciones[i].id_etapa,
arr_operaciones[i].id_maquina,
arr_operaciones[i].operario,
arr_operaciones[i].estado,
arr_operaciones[i].orden_etapa
CALL cargar_nombre_etapa(arr_operaciones[i].id_etapa, arr_operaciones[i].nombre_etapa)
CALL cargar_nombre_maquina(arr_operaciones[i].id_maquina, arr_operaciones[i].nombre_maquina)
CALL cargar_nombre_operario(arr_operaciones[i].operario, arr_operaciones[i].nombre_operario)
LET i = i + 1
END FOREACH
END FUNCTION
FUNCTION guardar_operaciones(p_id_produccion INT, p_cod_n INT, p_cod_grupo INT, p_cod_tipo INT, p_cod_sec INT)
DEFINE p_id_produccion, p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec INT
DEFINE i INT
FOR i = 1 TO arr_operaciones.getLength()
INSERT INTO prtb00008 (
id_produccion, etapa, codigo, num_emp, estado,
fecha_inicio, fecha_fin, orden_etapa,
us_crea, fech_crea, cod_n, cod_grupo, cod_tipo, cod_sec
) VALUES (
p_id_produccion, arr_operaciones[i].id_etapa,
arr_operaciones[i].id_maquina,
arr_operaciones[i].operario,
arr_operaciones[i].estado,
arr_operaciones[i].fecha_inicio,
arr_operaciones[i].fecha_fin,
arr_operaciones[i].orden_etapa,
USER, CURRENT,
p_cod_n, p_cod_grupo, p_cod_tipo, p_cod_sec
)
END FOR
END FUNCTION
FUNCTION cargar_nombre_etapa(p_id INT, p_nombre OUT VARCHAR(50))
DEFINE p_id INT
DEFINE p_nombre VARCHAR(50)
SELECT titulo INTO p_nombre FROM prtb00036 WHERE id_etapa = p_id
END FUNCTION
FUNCTION cargar_nombre_maquina(p_id INT, p_nombre OUT VARCHAR(50))
DEFINE p_id INT
DEFINE p_nombre VARCHAR(50)
SELECT nombre INTO p_nombre FROM irtb00009 WHERE id_codigo = p_id
END FUNCTION
FUNCTION cargar_nombre_operario(p_id INT, p_nombre OUT VARCHAR(50))
DEFINE p_id INT
DEFINE p_nombre VARCHAR(50)
SELECT nom1_emp || ' ' || apell1_emp INTO p_nombre FROM adtb00003 WHERE num_emp = p_id
END FUNCTION
+351
View File
@@ -0,0 +1,351 @@
SCHEMA smarmotech
DEFINE p_companias RECORD LIKE companias.*
DEFINE arr_detalle DYNAMIC ARRAY OF RECORD
area,codn,codgrupo,codtipo,codsec INT,
descripcion STRING,
cantidad,pendiente,precio FLOAT
END RECORD,
gnumreq,idx,pcodn,pcodgrupo,pcodtipo,pcodsec,parea INT,
gdespachada FLOAT
FUNCTION buscareq(pnumoc)
DEFINE pnumoc INT,
arr_req DYNAMIC ARRAY OF RECORD
num_req INT,
fecha VARCHAR(10),
nombre STRING,
precio FLOAT,
estado STRING
END RECORD
DEFINE encabezado STRING
CALL ui.Interface.loadStyles("formularios")
OPEN WINDOW w1 WITH FORM "prfmwd013"
LET encabezado = "BUSQUEDA REQUISICIONES DE LA ORDEN ",pnumoc using "&&&&&&&&"
DECLARE busca_req1 CURSOR FOR
SELECT a.num_req,CONVERT(CHAR(10),a.fecha,103),b.nombre,SUM(c.valor),a.estado FROM cctb00025 a,vetb00004 b,cctb00026 c,prtb00012 d
WHERE a.num_req = c.num_req AND c.num_oc = pnumoc AND c.num_oc = d.num_oc AND
d.tipo_cliente = b.tipo_cliente AND d.sec_cliente = b.sec_cliente AND
a.status_t IS NULL
GROUP BY a.num_req,b.nombre,a.estado,a.fecha
ORDER BY a.num_req
LET idx = 1
FOREACH busca_req1 INTO arr_req[idx].*
LET idx = idx +1
END FOREACH
DIALOG ATTRIBUTE(UNBUFFERED)
DISPLAY ARRAY arr_req TO sreq.*
BEFORE DISPLAY
CALL arr_detalle.clear()
DISPLAY encabezado TO encabezado
BEFORE FIELD num_req
LET gnumreq = arr_req[arr_curr()].num_req
CALL llenadetalle()
AFTER DISPLAY
LET gnumreq = arr_req[arr_curr()].num_req
CALL llenadetalle()
END DISPLAY
DISPLAY ARRAY arr_detalle TO sreq_det.*
ON ACTION imprimir ATTRIBUTE (TEXT="",IMAGE="printer")
CALL imprime_Req(gnumreq)
END DISPLAY
ON ACTION CANCEL ATTRIBUTE(TEXT="Salir",IMAGE="quit")
LET int_flag = FALSE
RETURN
CLOSE WINDOW w1
END DIALOG
END FUNCTION
FUNCTION llenadetalle()
DECLARE busca_detalle CURSOR FOR
SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,b.descrip_esp,SUM(a.cantidad),'0',a.precio
FROM cctb00026 a,iptb00002 b
WHERE a.num_req = gnumreq AND
a.cod_n = b.cod_n AND
a.cod_grupo = b.cod_grupo AND
a.cod_tipo = b.cod_tipo AND
a.cod_sec = b.cod_sec
GROUP BY a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,b.descrip_esp,a.precio,a.area
LET idx = 1
FOREACH busca_detalle INTO arr_Detalle[idx].*
LET pcodn = arr_detalle[idx].codn
LET pcodgrupo = arr_detalle[idx].codgrupo
LET pcodtipo = arr_detalle[idx].codtipo
LET pcodsec = arr_detalle[idx].codsec
LET parea = arr_detalle[idx].area
CALL pendienteReq()
LET arr_detalle[idx].pendiente = arr_detalle[idx].cantidad - gdespachada
LET idx = idx + 1
END FOREACH
END FUNCTION
FUNCTION pendientereq()
LET gdespachada=0
SELECT ISNULL(SUM(a.cantidad_2),0) INTO gdespachada FROM iptb00006 a
WHERE (a.num_req = gnumreq) AND (a.cod_n = pcodn AND a.cod_grupo = pcodgrupo
AND a.cod_tipo = pcodtipo AND a.cod_sec = pcodsec) AND
a.area = parea AND a.status_t IS NULL
END FUNCTION
FUNCTION imprime_req(xnumreq)
DEFINE xnumreq INT,
handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
DEFINE mrequisicion RECORD
numreq INT,
numoc INT,
nombre VARCHAR(80),
vendedor VARCHAR(80),
fecha VARCHAR(10),
estatus_req VARCHAR(50),
direccion VARCHAR(100),
telefono_r VARCHAR(20),
telefono_o VARCHAR(20),
celular VARCHAR(20),
celular1 VARCHAR(20),
contacto VARCHAR(60),
usuario_autoriza VARCHAR(50),
fecha_autorizacion CHAR(16),
estado_despacho VARCHAR(50),
area SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descripcion VARCHAR(80),
cantidad DEC(12,4),
aarea SMALLINT,
codn SMALLINT,
codgrupo SMALLINT,
codtipo SMALLINT,
codsec SMALLINT,
descripcion1 VARCHAR(60),
kit INT,
observacion VARCHAR(180),
cantidad_1 FLOAT,
cantidad_despachada_req DEC(12,4),
cantidad_despachada_ord DEC(12,4),
cantidad_pendiente_ord DEC(12,4),
cantidad_pendiente_req DEC(12,4),
cantidad_ord DEC(12,4),
codigo CHAR(30)
END RECORD
DECLARE busca_req CURSOR FOR
SELECT b.num_req,c.num_oc, CAST (a.tipo_cliente AS varchar(2))+'-'+CAST(a.sec_cliente AS varchar(6))+' '+ISNULL(a.nombre,' ') AS cliente,
CAST(e.num_emp AS varchar(5))+' '+ISNULL(RTRIM(e.nom1_emp),' ')+' '+ISNULL(e.apell1_emp,' ') AS vendedor,
CONVERT(CHAR(10),b.fecha,103) AS fecha,b.estado,
RTRIM(d.direccion_proyecto)+ '-'+ISNULL(x2.mensaje,' ') AS direccion,d.telefono_r,d.telefono_o,d.celular,
d.celular1,d.contacto,
(SELECT isnull(adtb00003.nom1_emp,' ')+' '+isnull(adtb00003.apell1_Emp,' ') FROM adtb00003 WHERE adtb00003.num_emp = b.sec_vend_aprobado),
CONVERT(CHAR(10),b.fecha_autorizacion,103),
b.estado_despacho,
c.area, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp,
sum(c.cantidad),
c.area, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,(SELECT k1.descrip_esp FROM iptb00002 k1
WHERE k1.cod_n = c.cod_n AND k1.cod_grupo = c.cod_grupo AND k1.cod_tipo = c.cod_tipo AND
k1.cod_sec = c.cod_sec),c.id_kit,x3.observacion,SUM(c.cantidad_1)
FROM vetb00004 a,cctb00025 b LEFT OUTER JOIN cctb00029 x2 ON b.num_req = x2.num_req,
cctb00026 c,
vetb00050 d,adtb00003 e,iptb00002 f,prtb00014 x3
WHERE a.tipo_cliente = d.tipo_cliente AND b.num_req = c.num_req AND
a.sec_cliente = d.sec_cliente AND
c.cotizacion_no = d.cotizacion_no AND
c.cod_n = f.cod_n AND c.cod_grupo =f.cod_grupo AND c.cod_tipo=f.cod_tipo AND
c.cod_sec = f.cod_Sec AND c.status_t IS NULL AND
b.num_req = xnumreq AND d.sec_vend = e.num_emp AND
c.num_oc = x3.num_oc
GROUP BY b.num_req,a.tipo_cliente,a.sec_cliente,a.nombre, e.num_emp,e.nom1_emp,e.apell1_emp,c.num_oc,
b.fecha,b.estado,
c.area,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp,b.sec_vend_aprobado,
b.fecha_autorizacion,b.estado_despacho,
d.direccion_proyecto,x2.mensaje,
d.telefono_r,d.telefono_o,d.celular,
c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,
c.id_kit,x3.observacion,d.celular1,d.contacto
ORDER BY b.num_req, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
LET r_output="SVG"
LET r_filename = "ccprmt010.4rp"
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
START REPORT CCRP10 TO XML HANDLER HANDLER
LET idx = 1
FOREACH busca_req INTO mrequisicion.*
LET mrequisicion.codigo =mrequisicion.kit USING "<<<<","/", mrequisicion.cod_n USING "&&&&","-",
mrequisicion.cod_grupo USING "&&&&","-",
mrequisicion.cod_tipo USING "&&&&","-",
mrequisicion.cod_sec USING "&&&&&&"
OUTPUT TO REPORT ccrp10(mrequisicion.*)
LET idx = idx + 1
END FOREACH
DISPLAY "idx ",idx
FINISH REPORT ccrp10
END IF
END FUNCTION
REPORT ccrp10(x)
DEFINE X RECORD
numreq INT,
numoc INT,
nombre VARCHAR(80),
vendedor VARCHAR(80),
fecha VARCHAR(10),
estatus_req VARCHAR(50),
direccion VARCHAR(100),
telefono_r VARCHAR(20),
telefono_o VARCHAR(20),
celular VARCHAR(20),
celular1 VARCHAR(20),
contacto VARCHAR(60),
usuario_autoriza VARCHAR(50),
fecha_autorizacion CHAR(16),
estado_despacho VARCHAR(50),
area SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descripcion VARCHAR(80),
cantidad DEC(12,4),
aarea SMALLINT,
codn SMALLINT,
codgrupo SMALLINT,
codtipo SMALLINT,
codsec SMALLINT,
descripcion1 VARCHAR(60),
kit INT,
observacion VARCHAR(180),
cantidad_1 FLOAT,
cantidad_despachada_req DEC(12,4),
cantidad_despachada_ord DEC(12,4),
cantidad_pendiente_ord DEC(12,4),
cantidad_pendiente_req DEC(12,4),
cantidad_ord DEC(12,4),
codigo CHAR(30)
END RECORD,
fecha_imp CHAR(16),
semaforo BOOLEAN,
chkit CHAR(100),
y RECORD
etiqueta CHAR(30),
cod_n,cod_grupo,cod_tipo,cod_sec INT,
lado_1,lado_2,lado_3 FLOAT,
cantidad_r,medida_r FLOAT
END RECORD
DEFINE darea VARCHAR(50)
ORDER BY x.numreq
FORMAT
FIRST PAGE HEADER
SELECT a.nombre INTO p_companias.nombre FROM companias a
LET fecha_imp = TODAY USING "DD/MM/YYYY",":",TIME
BEFORE GROUP OF x.numreq
PRINTX x.numreq,x.estado_despacho,x.estatus_req,x.fecha,x.fecha_autorizacion,p_companias.nombre,
x.nombre,x.usuario_autoriza,x.vendedor,fecha_imp,x.numoc,X.direccion,X.telefono_r,x.telefono_o,
x.celular,x.celular1,x.contacto, x.observacion
IF x.area IS NULL THEN
LET x.area = 1
END IF
BEFORE GROUP OF x.area
SELECT LTRIM(RTRIM(a.nombre_area)) INTO darea FROM prtb00016 a
WHERE a.area_num = x.area
LET darea = "("CLIPPED,x.area CLIPPED,") ", darea CLIPPED
PRINT darea
BEFORE GROUP OF x.codigo
# BUSCA LAS CANTIDADES PENDIENTES
LET x.cantidad_despachada_req=0
SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_req
FROM iptb00006 a
WHERE a.num_req = x.numreq AND a.cod_n = x.cod_n AND
a.cod_grupo = x.cod_grupo AND
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec and
a.area = x.area
AND a.status_t IS NULL
LET x.cantidad_despachada_ord=0
SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_ord
FROM iptb00006 a
WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND
a.cod_grupo = x.cod_grupo AND a.cod_mov IN (30,31,55,56,12,13) AND
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND
a.area = x.area
AND a.status_t IS NULL
SELECT SUM(a.cantidad) INTO x.cantidad_ord
FROM prtb00013 a
WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND
a.cod_grupo = x.cod_grupo AND
a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND
a.area = x.area AND
a.status_t IS NULL
IF x.cantidad_despachada_req IS NULL THEN
LET x.cantidad_despachada_req = 0
END IF
IF x.cantidad_despachada_ord IS NULL THEN
LET x.cantidad_despachada_ord = 0
END IF
IF x.cantidad_ord IS NULL THEN
LET x.cantidad_ord = 0
END IF
# DISPLAY "datos ",x.cantidad_ord,x.cantidad_despachada_ord,x.cantidad,
# x.cantidad_despachada_req
LET x.cantidad_pendiente_ord=x.cantidad_ord+x.cantidad_despachada_ord
LET x.cantidad_pendiente_req=x.cantidad + x.cantidad_despachada_req
{ #BUSCA DESPIECE
DECLARE busca_desp CURSOR FOR
SELECT b.descripcion,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.medida
FROM vetb00026 b,cctb00027 a
WHERE b.codid = a.etiqueta AND
a.cod_n = x.cod_n AND
a.cod_grupo = x.cod_grupo AND
a.cod_tipo = x.cod_tipo AND
a.cod_sec = x.cod_sec
FOREACH busca_desp INTO y.*
END FOREACH
}
PRINTX x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_Sec,x.descripcion,x.cantidad,
x.cantidad_pendiente_req,x.cantidad_pendiente_ord
ON EVERY ROW
# IF x.codn IS NOT NULL THEN
# LET semaforo = TRUE
# LET chkit = x.codn USING "&&&&","-",x.codgrupo USING "&&&&","-",x.codtipo USING "&&&&","-",
# x.codsec USING "&&&&"," ",x.descripcion1
# ELSE
LET semaforo = FALSE
# END IF
PRINTX y.etiqueta,y.lado_1,y.lado_2,y.lado_3,y.cantidad_r,y.medida_r,
chkit,semaforo,x.cantidad_1,x.cantidad
END REPORT
+48
View File
@@ -0,0 +1,48 @@
schema decomarmol
LAYOUT (TEXT="CONSULTA ORDENES", STYLE="basic")
GRID
{
[ :cc :sr ]
Cliente [t1]-[t2 ][c3 ]
Numero de Orden [f000 ] Cotizacion[co ]Fecha [f001 ]
Tipo de Ordenes [pe ]
<t t1 >
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
[n ][g ][t ][s ][des ][c1 ][c2 ][b1 ]
}
END
end
tables
prtb00009
attributes
co = formonly.cotizacion_no;
t1 = formonly.tipo_cliente,noentry,reverse;
t2 = formonly.sec_cliente,noentry,reverse;
c3 = formonly.p_nombre,noentry,reverse;
f000 = prtb00009.num_oc,reverse;
f001 = formonly.fecha,format="dd/mm/yyyy",reverse;
COMBOBOX pe = formonly.tipo_orden,ITEMS=(('N','PENDIENTES'),('S','CERRADAS'),('T','TODAS'));
n = formonly.cod_n,TITLE='CALSE';
g = formonly.cod_grupo,TITLE='GRUPO';
t = formonly.cod_tipo,TITLE='TIPO';
s = formonly.cod_sec,TITLE='SECUENCIA';
des = formonly.descripcion,TITLE='DESCRIPCION';
c1 = formonly.cantidad1,TITLE='CANTIDAD ORDEN';
c2 = formonly.cantidad2,TITLE='CANTIDAD INVENTARIO';
b1 = formonly.balance,TITLE='BALANCE';
BUTTON cc :close, TEXT='CANCEL';
BUTTON sr :ejecuta,TEXT='OK';
instructions delimiters " "
screen record s_orden[7](cod_n,cod_grupo,cod_tipo,cod_Sec,descripcion,cantidad1,cantidad2,balance)
end
+39
View File
@@ -0,0 +1,39 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT001
OBJETIVO : Captura Informacion Rango de Fehca para La Semana (PRPRMT001)
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Sept. 14, 1994
-----------------------------------------------------------------------------
}
database decomarmol
screen size 24 by 80
{
Numero De Semana [n1 ]
Ano [a1 ]
Mes [m1]
Semana Del [f005 ]
Semana Al [f006 ] DESCRIPCION[de ]
[a]
Usuario Creador [b ] Usuario Modificador [c ]
Fecha Creacion [d ] Usuario Modificador [e ]
}
end
tables
prtb00002
attributes
de = prtb00002.descripcion,scroll;
n1 = formonly.num_semana;
f005 = prtb00002.semana_del,format = "dd/mm/yy";
f006 = prtb00002.semana_al,format = "dd/mm/yy";
m1 = prtb00002.mes;
a1 = prtb00002.ano;
a = prtb00002.status_t,noentry;
b = prtb00002.us_crea,noentry;
c = prtb00002.us_mod,noentry;
d = prtb00002.fech_crea,noentry;
e = prtb00002.fech_mod,noentry;
instructions
delimiters " "
end
+45
View File
@@ -0,0 +1,45 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT002
OBJETIVO : Registro de hora personal administratico (PRPRMT002)
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Sept. 14, 1994
-----------------------------------------------------------------------------
}
database decomarmol
screen size 24 by 80
{
Semana No. [n1 ] Rango: Del [f1 ] AL [f2 ]
Departamento [dp ] [ndp ]
Empleado [emp ] [nem ]
\g----------------------------------------------------------------------------\g
Fecha Hora Normal Hora Extra
\g----------------------------------------------------------------------------\g
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
[n ] [f008 ] [f007 ]
}
end
tables
prtb00003,prtb00002
attributes
n1 = prtb00002.num_semana,comments =
"Digite Numero Semana Con El Sigte. Formato mmdd Ej. 9401";
f1 = prtb00002.semana_del,noentry,format = "dd/mm/yy";
f2 = prtb00002.semana_al,noentry,format = "dd/mm/yy";
dp = prtb00003.departamento;
emp = prtb00003.num_emp;
ndp = formonly.nom_dpto,noentry;
nem = formonly.nom_emp,noentry;
n = prtb00003.fecha,format = "dd/mm/yy";
f008 = prtb00003.hn_ind;
f007 = prtb00003.he_ind;
instructions
screen record sc_hora[7] (fecha,hn_ind,he_ind)
delimiters " "
end
+60
View File
@@ -0,0 +1,60 @@
TOOLBAR
ITEM nuevo (TEXT="Produccion", IMAGE="new", COMMENT="Nuevo Documento")
ITEM buscar (TEXT="Buscar Documento", IMAGE="find", COMMENT="Criterio de busqueda")
ITEM anular (TEXT="Anular Registros", IMAGE="cancel",COMMENT="Anula Registro en Screen")
SEPARATOR
ITEM salir (TEXT="Salir", IMAGE="quit")
END
LAYOUT (TEXT="CREACION DOCUMENTO PRODUCCION", STYLE="basic")
GRID
{
<G "General" >
Secuencia [f007 ] Fecha [f005 ]
Factor [f1 ]
Departa. [f2 ] [ce ]
<G "Detalle" >
<t >
[ti ][f11 ][f4 ][f5 ][f6 ][f7 ][f0 ][f002 ][blq ][tr]
[ti ][f11 ][f4 ][f5 ][f6 ][f7 ][f0 ][f002 ][blq ][tr]
[ti ][f11 ][f4 ][f5 ][f6 ][f7 ][f0 ][f002 ][blq ][tr]
[ti ][f11 ][f4 ][f5 ][f6 ][f7 ][f0 ][f002 ][blq ][tr]
[ti ][f11 ][f4 ][f5 ][f6 ][f7 ][f0 ][f002 ][blq ][tr]
<G "INFORMACION" >
Produce : [des ][un ]
Operacion : [pr ]
Empleado : [a ]
TURNO : [trd ]
}
end
attributes
tr = formonly.turno,TITLE="TURNO";
trd = formonly.tdescripcion;
blq = FORMONLY.codigo_bloque,upshift,scroll,TITLE="BLOQUE";
f2 = FORMONLY.departamento,required;
f007 = formonly.num_doc,noentry;
ce = formonly.descrip2,noentry;
f1 = formonly.factor,comments = "Digite factor que desa calcular las horas normales";
DATEEDIT f005 = FORMONLY.fecha TYPE DATE,required,FORMAT="DD/MM/YYYY";
f11 = FORMONLY.emp_no,autonext,TITLE="EMPLEADO";
f0 = formonly.cod_prod,TITLE="CODIGO";
pr = formonly.nombre_mq,upshift,comments = "Digite Descripcion Operacion";
ti = formonly.tipo,comments = "Digite Codigo de la Maquina",TITLE="OPERACION";
f4 = FORMONLY.h_directa,autonext,TITLE="N.DIRECTA";
f5 = FORMONLY.h_indirecta,autonext,TITLE="N.IND.";
f6 = FORMONLY.e_directa,autonext,TITLE="E. DIRECTAS";
f7 = FORMONLY.e_indirecta,autonext,TITLE="E.INDIRECTAS";
un = formonly.medida,noentry;
f002 = FORMONLY.cantidad,comments = "Digite Cantidad Producida",TITLE="CANTIDAD";
des = formonly.descripcion,noentry;
a = formonly.nombre,noentry;
instructions
screen record scr_costos[5] (tipo,emp_no,h_directa,h_indirecta,e_directa,
e_indirecta,cod_prod,cantidad,codigo_bloque,turno)
delimiters " "
end
+36
View File
@@ -0,0 +1,36 @@
{
==============================================================================
FORMULARIO : PRFMMT004
OBJETIVO : CAPTURAR EL CONTROL DE LOS DEPARTAMENTOS
DISENADO : Juan F. Soto
FECHA : Septiembre 14, 1994
==============================================================================
}
database marmotech
screen size 24 by 80
{
\g------------------------------------------------------------------------\g
MANTENIMIENTO CONTROL DEPARTAMENTOS
\g------------------------------------------------------------------------\g
Nomenclatura [a ]
Departamento [f000 ][des1 ]
Usuario Creador [f001 ] Fecha Creadcion [f002 ]
Usuario Modificador [f003 ] Fecha Modificacion [f004 ]
< Esc > Busca y Actualiza Tabla < Ctrl-C > Cancela Operacion
}
end
tables
prtb00004,adtb00001
attributes
a = prtb00004.tipo,include=("A","B+C","D"),comments =
"Valores Permitibles A, B+C, D",upshift;
f000 = prtb00004.departamento, lookup des1=adtb00001.nom_dpto,
joining *adtb00001.departamento;
f001 = prtb00004.us_crea,noentry,default=user;
f002 = prtb00004.fech_crea,default=current,noentry;
f003 = prtb00004.us_mod,noentry;
f004 = prtb00004.fech_mod,noentry;
end
+24
View File
@@ -0,0 +1,24 @@
database decomarmol
screen size 24 by 80
{
Codigo [b ]
Descripcion [f004 ]
[j]
Usuario Creador [f006 ] Usuario Modificador [f008 ]
Fecha Creacion [f007 ] Fecha Modificacion [f009 ]
}
end
tables
prtb00005
attributes
b =prtb00005.codigo, autonext,comments = "Digite el Codigo de Operacion";
f004=prtb00005.descripcion,upshift,comments="Digite el nombre de la Operacion";
f006=prtb00005.us_crea, noentry;
f007=prtb00005.fech_crea, noentry;
f008=prtb00005.us_mod, noentry;
f009=prtb00005.fech_mod, noentry;
j =prtb00005.status_t, noentry;
instructions
delimiters " "
end
+50
View File
@@ -0,0 +1,50 @@
database decomarmol
screen size 24 by 80
{
Orden No. [f000 ] Fecha: [f001 ] Tipo Producto [p ]
Cliente [f0][f003] [b1 ]
Vendedor [v1 ] [ve ]Orden Pedido[or1 ]
Producto A Producir: [a][b][c ][d ][a1 ]
Unidad de Medida : [und ] Cantidad [f008 ]Fecha Termina[fe ]
\g--------------------------------------------------------------------------\g
COMPOSICION PRODUCTO...
\g--------------------------------------------------------------------------\g
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
}
end
tables
prtb00007,prtb00008,vetb00004,iptb00002
attributes
v1 = prtb00007.sec_vend,comments = "Control-W Para Buscar Vendedores";
ve = formonly.nombre_vend,reverse,noentry;
f000 = prtb00007.num_oc;
f001 = prtb00007.fecha,required,format="dd/mm/yyyy";
or1 = prtb00007.orden_pedido,comments = "Introduzca Numero Orden Pedido";
f0 = prtb00007.tipo_cliente,required,comments = "Control-W Busca CLientes";
f003 = prtb00007.sec_cliente,required,comments = "Control-W Busca CLientes";
b1 = vetb00004.nombre,reverse;
a = prtb00007.cod_n,required,comments="Control-W Busca Producto";
b = prtb00007.cod_grupo,required,comments="Control-W Busca Producto";
c = prtb00007.cod_tipo,required,comments="Control-W Busca Producto";
d = prtb00007.cod_sec,required,comments="Control-W Busca Producto";
a1 = iptb00002.descrip_esp,reverse;
fe = prtb00007.fecha_termina,format = "dd/mm/yyyy";
und=formonly.unidad,reverse;
f008 = prtb00007.cantidad,required;
p = formonly.descrip,noentry,reverse;
e = formonly.cod_n_c,comments = "Digite Materia Prima";
f = formonly.cod_grupo_c,comments = "Digite Materia Prima";
g = formonly.cod_tipo_c,comments = "Digite Materia Prima";
h = formonly.cod_sec_c,comments = "Digite Materia Prima";
a2=formonly.descrip_esp_c,reverse,noentry;
f9= formonly.cantidad_c type decimal(12,3),comments= "Cantidad de Material A Usarse";
f10 = formonly.unidad_c type CHAR,reverse,noentry;
instructions
screen record s_orden[5]
(cod_n_c,cod_grupo_c,cod_tipo_c,cod_sec_c,cantidad_c,descrip_esp_c,unidad_c)
end
+38
View File
@@ -0,0 +1,38 @@
database decomarmol
screen size 24 by 80
{
Numero de Orden [f000 ]
Cliente [c1]-[c2 ][c3 ]
Fecha de Status [f001 ] Cerrada [pe ]
Fecha Fabricacion[f2 ]
Status de Orden [f002 ]
[f002 ]
[f002 ]
[f002 ]
[f002 ]
[a]
Usuario Creador [f005 ] Usuario Modificador [f007 ]
Fecha Creacion [f006 ] Fecha Modificacion [f008 ]
}
end
tables
prtb00009
attributes
f2 = prtb00009.fecha_fabricacion, format = "dd/mm/yyyy";
f000 = prtb00009.num_oc,reverse;
f001 = prtb00009.fecha,format="dd/mm/yyyy",reverse;
f002 = prtb00009.detalle,wordwrap,upshift,reverse;
pe = prtb00009.pendiente
--# ,widget="RADIO", class="key", default="S"
--# ,config="S Si N No",comments = "Si Esta Pendiente No Esta Pendiente";
a = prtb00009.status_t,noentry;
f005 = prtb00009.us_crea,noentry,reverse;
f006 = prtb00009.fech_crea,noentry,reverse;
f007 = prtb00009.us_mod,noentry,reverse;
f008 = prtb00009.fech_mod,noentry,reverse;
c1 = formonly.tipo_cliente,noentry,reverse;
c2 = formonly.sec_cliente,noentry,reverse;
c3 = formonly.p_nombre,noentry,reverse;
instructions delimiters " "
end
File diff suppressed because one or more lines are too long
+100
View File
@@ -0,0 +1,100 @@
TOOLBAR
ITEM nuevo (TEXT="Orden", IMAGE="new", COMMENT="Nueva Orden")
ITEM buscar (TEXT="Buscar Orden", IMAGE="find", COMMENT="Criterio de busqueda")
SEPARATOR
ITEM salir (TEXT="Salir", IMAGE="quit")
END
LAYOUT(TEXT="Ordenes Pedidos",STYLE="basic")
GRID
{<G "Generales" >
Cotizacion [cot ]Documento Referencia[x10 ]
Orden No. [f000 ] Fecha Oc.:[f001 ] Ventas[ar1 ]
Cliente [f0|f003 ] [b1 ]
Vendedor [v1 ] [ve ]Rec. Pago: [re ]
Direccion [a ]
Telefono [b ]Fax [c ] Fecha de Entrega [fe ]
Condiciones [d ] Balance [f09 ]
Ubicacion [ubic ]
<G "Detalle Orden" >
<t t1 >
[va][ar ][e |f |g |h ][a2 ][un ][alt ][k][b2 ][f40 ][f22 ][f10 ][f9 ][f11 ]
[va][ar ][e |f |g |h ][a2 ][un ][alt ][k][b2 ][f40 ][f22 ][f10 ][f9 ][f11 ]
[va][ar ][e |f |g |h ][a2 ][un ][alt ][k][b2 ][f40 ][f22 ][f10 ][f9 ][f11 ]
[va][ar ][e |f |g |h ][a2 ][un ][alt ][k][b2 ][f40 ][f22 ][f10 ][f9 ][f11 ]
[va][ar ][e |f |g |h ][a2 ][un ][alt ][k][b2 ][f40 ][f22 ][f10 ][f9 ][f11 ]
Total de Material [f12 ]
Instalacion Tope Cantidad [f13 ] Precio [f14 ]
Mano Obra Cantidad [f15 ] Precio [f16 ]
Transporte [f17 ] Itbis [f18 ]
Total Ventas [f19 ]
}
end
end
attributes
x10 = formonly.documento_ref,comments="Documento Referencia Cliente";
re = formonly.rec_pago;
ar1 = formonly.descrip_ventas;
f000 = formonly.num_oc,noentry;
f001 = formonly.fecha_oc,required;
cot = formonly.cotizacion_no;
f0 = formonly.tipo_cliente;
f003 = formonly.sec_cliente;
b1 = formonly.nombre,reverse,noentry;
a = formonly.direccion,upshift,noentry,
comments = "Digite la DIRECCION correcta del cliente";
b = formonly.telefono,picture = "###-###-####",noentry,
comments = "Digite el numero de TELEFONO con su codigo de Area";
c = formonly.fax,picture = "###-###-####",noentry,
comments = "Digite el numero de FAX con su codigo de Area";
d = formonly.cond_pago,noentry;
fe = formonly.fecha_entrega,
comments = "Digite la FECHA DE ENTREGA de la Orden";
f09 = formonly.balance,noentry;
ubic = formonly.ubicacion, upshift,SCROLL,
comments = "Digite la ubicacion del proyecto ";
v1 = formonly.sec_vend,required,noentry;
ve = formonly.nombre_vend,reverse,noentry;
EDIT va = formonly.fila,noentry,TITLE="Secuencia";
ar = formonly.area, TITLE="AREA";
e = formonly.cod_n,TITLE="Clase",widget="FIELD_BMP", config="combo.bmp F10";
f = formonly.cod_grupo,TITLE="Grupo",widget="FIELD_BMP", config="combo.bmp F10";
g = formonly.cod_tipo,TITLE="Tipo",widget="FIELD_BMP", config="combo.bmp F10";
h = formonly.cod_sec,TITLE="Secuencia",widget="FIELD_BMP", config="combo.bmp F10";
a2 = formonly.descrip_esp,noentry,TITLE="Descripcion";
un = formonly.unidad_med,noentry,TITLE="Unidad Med";
EDIT k = formonly.terminacion,noentry,TITLE="Terminacion",
comments = "Digite P=Pulido R=Rustico B=Brushed A=Acido";
EDIT alt = formonly.altura_zocalo,TITLE="Zocalo";
EDIT b2 = formonly.bisel,UPSHIFT,TITLE="Bisel",
comments = "Digite DBN - SDN - FBN - MBM - P.P. - C.R. DBPP BY5";
EDIT f40 = formonly.cantidad_1,TITLE="Unidades";
EDIT f22 = formonly.cantidad,noentry,TITLE="Medida";
EDIT f10 = formonly.precio,TITLE="Precio",noentry;
EDIT f9 = formonly.descuento,TITLE="Descuento",noentry;
EDIT f11 = formonly.total_p ,noentry,TITLE="Total";
f12 = formonly.sub_total,noentry;
f13 = formonly.cantidad_i,comments =
"Digite la cantidad de Metros en Instalacion de Topes";
f14 = formonly.precio_i,comments =
"Digite el precio de Instalacion de Tope";
f15 = formonly.cantidad_mo,comments =
"Digite la cantidad de Metro a instalar";
f16 = formonly.precio_mo,comments =
"Digite el precio por Metro de Instalacion";
f17 = formonly.transporte,noentry;
f18 = formonly.itbis,noentry;
f19 = formonly.total_v,noentry;
instructions
screen record s_pedido[4]
(fila,area,cod_n, cod_grupo, cod_tipo, cod_sec, descrip_esp,unidad_med,altura_zocalo, terminacion,bisel,
cantidad_1,cantidad, precio, descuento, total_p)
end
+81
View File
@@ -0,0 +1,81 @@
database marmotech
screen size 24 by 80
{
Orden No. [f000 ] Fecha Oc.: [f001 ]
Cliente [f0|f003] [b1 ]
Vendedor [v1 ] [ve ]
Direccion [a ]
Telefono [b ] Fax [c ] Fecha de Entrega [fe ]
Condiciones [d ] [f20 ] Balance [f09 ]
Ubicación [ubic ]
Codigo Alt. Zocalo Term. Bisel Cant. Precio Desc. Total
[e|f|g |h ][alt ] [k] [b2 ][f22 |f10 |f9][f11 ]
Total de Material [f12 ]
Instalacion Tope Cantidad [f13 ] Precio [f14 ]
Descripcion Mano Obra [un ] Cantidad [f15 ] Precio [f16 ]
[a2 ] Transporte [f17 ] Itbis [f18 ]
Total Ventas [f19 ]
}
end
tables
prtb00012,vetb00004,prtb00013
attributes
f000 = prtb00012.num_oc,noentry;
f001 = prtb00012.fecha_oc,required,format="dd/mm/yyyy";
f0 = prtb00012.tipo_cliente,required,autonext,comments = "Control-W Busca CLientes";
f003 = vetb00004.sec_cliente,required,comments = "Control-W Busca CLientes";
b1 = vetb00004.nombre,reverse,noentry;
a = prtb00012.direccion,upshift,noentry,
comments = "Digite la DIRECCION correcta del cliente";
b = prtb00012.telefono,picture = "###-###-####",noentry,
comments = "Digite el numero de TELEFONO con su codigo de Area";
c = prtb00012.fax,picture = "###-###-####",noentry,
comments = "Digite el numero de FAX con su codigo de Area";
d = prtb00012.cond_pago,comments =
"Digite la CONDICION de Pago";
alt = prtb00013.altura_zocalo;
f20 = formonly.descrip_p,noentry;
fe = prtb00012.fecha_entrega,format = "dd/mm/yyyy",
comments = "Digite la FECHA DE ENTREGA de la Orden";
f09 = formonly.balance,noentry;
ubic = prtb00012.ubicacion, upshift,SCROLL,
comments = "Digite la ubicacion del proyecto ";
v1 = prtb00012.sec_vend,comments = "Control-W Para Buscar Vendedores";
ve = formonly.nombre_vend,reverse,noentry;
e = prtb00013.cod_n,autonext;
f = prtb00013.cod_grupo,autonext;
g = prtb00013.cod_tipo,autonext;
h = prtb00013.cod_sec,
comments = "Digite el Codigo del Producto";
a2 = formonly.descrip_esp,noentry;
k = formonly.terminacion,upshift,
comments = "Digite P=Pulido R=Rustico o dejar el campor en blanco";
b2 = prtb00013.bisel,UPSHIFT,
comments = "Digite DBN o SDN";
f22 = prtb00013.cantidad,
comments = "Digite la Cantidad ";
f10 = prtb00013.precio,
comments = "Digite el Precio";
f9 = prtb00013.descuento;
f11 = formonly.total_p type Decimal(8,2),noentry;
f12 = formonly.sub_total,noentry;
f13 = prtb00012.cantidad_i,comments =
"Digite la cantidad de Metros en Instalacion de Topes";
f14 = prtb00012.precio_i,comments =
"Digite el precio de Instalacion de Tope";
un = formonly.unidad_med,noentry;
f15 = prtb00012.cantidad_mo,comments =
"Digite la cantidad de Metro a instalar";
f16 = prtb00012.precio_mo,comments =
"Digite el precio por Metro de Instalacion";
f17 = prtb00012.transporte,comments =
"Digite el Costo del Transporte del Producto";
f18 = prtb00012.itbis,noentry;
f19 = formonly.total_v,noentry;
instructions
screen record s_pedido[1]
(cod_n, cod_grupo, cod_tipo, cod_sec, altura_zocalo, terminacion,bisel,
cantidad, precio, descuento, total_p)
end
+76
View File
@@ -0,0 +1,76 @@
database marmotech
screen size 24 by 80
{
Orden No. [f000 ] Fecha Oc.: [f001 ]
Cliente [f0|f003] [b1 ]
Vendedor [v1 ] [ve ]
Direccion [a ]
Telefono [b ] Fax [c ] Fecha de Entrega [fe ]
Condiciones [d ] [f20 ] Balance [f09 ]
\g--------------------------------------------------------------------------\g
Codigo Descripcion Bisel Cant. Precio Desc. Total
[e|f|g |h ][a2 ][b2 ][f22 ][f10 ][f9 ] [f11 ]
Total de Material [f12 ]
Instalacion Tope Cantidad [f13 ] Precio [f14 ]
Mano Obra [un ] Cantidad [f15 ] Precio [f16 ]
Transporte [f17 ] Itbis [f18 ]
Total Ventas [f19 ]
}
end
tables
prtb00012,vetb00004,prtb00013
attributes
f000 = prtb00012.num_oc,noentry;
f001 = prtb00012.fecha_oc,required,format="dd/mm/yyyy";
f0 = prtb00012.tipo_cliente,required,autonext,comments = "Control-W Busca CLientes";
f003 = vetb00004.sec_cliente,required,comments = "Control-W Busca CLientes";
b1 = vetb00004.nombre,reverse,noentry;
a = prtb00012.direccion,upshift,
comments = "Digite la DIRECCION correcta del cliente";
b = prtb00012.telefono,picture = "###-###-####",autonext,
comments = "Digite el numero de TELEFONO con su codigo de Area";
c = prtb00012.fax,picture = "###-###-####,autonext",
comments = "Digite el numero de FAX con su codigo de Area";
d = prtb00012.cond_pago,comments =
"Digite la CONDICION de Pago";
f20 = formonly.descrip_p,noentry;
fe = prtb00012.fecha_entrega,format = "dd/mm/yyyy",
comments = "Digite la FECHA DE ENTREGA de la Orden";
f09 = formonly.balance,noentry;
v1 = prtb00012.sec_vend,comments = "Control-W Para Buscar Vendedores";
ve = formonly.nombre_vend,reverse,noentry;
e = prtb00013.cod_n,autonext;
f = prtb00013.cod_grupo,autonext;
g = prtb00013.cod_tipo;
h = prtb00013.cod_sec,
comments = "Digite el Codigo del Producto";
a2 = formonly.descrip_esp,noentry;
b2 = prtb00013.bisel,UPSHIFT,INCLUDE = ("DBN","SDN"),comments =
"Digite DBN o SDN";
f22 = prtb00013.cantidad,
comments = "Digite la Cantidad ";
f10 = prtb00013.precio,
comments = "Digite el Precio";
f9 = prtb00013.descuento;
f11 = formonly.total_p type Decimal(8,2),noentry;
f12 = formonly.sub_total,noentry;
f13 = prtb00012.cantidad_i,comments =
"Digite la cantidad de Metros en Instalacion de Topes";
f14 = prtb00012.precio_i,comments =
"Digite el precio de Instalacion de Tope";
un = formonly.unidad_med,noentry;
f15 = prtb00012.cantidad_mo,comments =
"Digite la cantidad de Metro a instalar";
f16 = prtb00012.precio_mo,comments =
"Digite el precio por Metro de Instalacion";
f17 = prtb00012.transporte,comments =
"Digite el Costo del Transporte del Producto";
f18 = prtb00012.itbis,noentry;
f19 = formonly.total_v,noentry;
instructions
screen record s_pedido[1]
(cod_n, cod_grupo, cod_tipo, cod_sec, descrip_esp, bisel,
cantidad, precio, descuento, total_p)
end
+35
View File
@@ -0,0 +1,35 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT010
OBJETIVO : Captura Informacion de las areas de instalacion
REALIZADO POR : Victor Gomez C.
FECHA : Friday, October 05, 2001
-----------------------------------------------------------------------------
}
schema decomarmol
screen size 24 by 80
{
Area [n1 ]
Descripcion Area [a1 ]
Status [a]
Usuario Creador [b ] Usuario Modificador [c ]
Fecha Creacion [d ] Usuario Modificador [e ]
}
end
tables
prtb00016
attributes
n1 = prtb00016.area_num,required,comments =
"Digite el Numero del Area";
a1 = prtb00016.nombre_area,upshift,required,comments =
"Digite la descripcion del Area";
a = prtb00016.status_t,noentry;
b = prtb00016.us_crea,noentry;
c = prtb00016.us_mod,noentry;
d = prtb00016.fech_crea,noentry;
e = prtb00016.fech_mod,noentry;
instructions
delimiters " "
end
+95
View File
@@ -0,0 +1,95 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT012
OBJETIVO : ADMINISTRACION ORDENES PEDIDOS
REALIZADO POR : Ing. Juan Soto
FECHA : Marzo 4, 2010
-----------------------------------------------------------------------------
}
SCHEMA decomarmol
ACTION DEFAULTS
ACTION cancel (TEXT="Cancela Operacion",IMAGE="stop")
ACTION procesar (TEXT="Busca Requisicion",IMAGE="buscar")
ACTION buscamensaje (TEXT="Mensajes",IMAGE="message")
END
LAYOUT (TEXT="Administracion Ordenes Pedidos",STYLE="basic")
GRID
{
<G ><G "LEYENDA" >
[lb1 ] [l1 ]
NUMERO DE REGISTROS ENCONTRADOS:[no1 ] [l2 ]
Fecha Inicial [f4 ] Fecha Final [f5 ] [l3 ]
[l4 ]
<G "Ordenes" >
<t t1 >
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
}
end
tables
cctb00001
ATTRIBUTES
CHECKBOX ac = formonly.actualiza TYPE CHAR,NOT NULL,VALUECHECKED="S",VALUEUNCHECKED="N",DEFAULT="N";
DATEEDIT f4 = formonly.fecha1,FORMAT="dd/mm/yyyy";
DATEEDIT f5 = formonly.fecha2,FORMAT="dd/mm/yyyy";
COMBOBOX ck1=formonly.cerrada,ITEMS=(("S","CERRADAS"),("N","ABIERTAS")),TITLE="ESTADO ORDEN";
no1 = formonly.registros;
LABEL lb1:text="ORDENES PEDIDOS", STYLE="title";
LABEL l1:TEXT="ORDENES ENTRE 2 A 5 DIAS POR VENCER",COLOR=MAGENTA;
LABEL l2:TEXT="ORDENES MAS DE 5 DIAS VENCIDAS",COLOR=RED;
LABEL l3:TEXT="ORDENES NORMALES";
LABEL l4:TEXT="LAS ORDENES EN COLOR AZUL TIENEN VARIAS FECHAS DE LLEGADA";
DATEEDIT f1 = formonly.fecha_compromiso,TITLE="FECHA PRODUCCION";
fe1= formonly.fecha_llegada,TITLE="FECHA LLEGADA",FORMAT="dd/mm/yyyy",
widget="FIELD_BMP", config="combo.bmp control-w";
COMBOBOX es = formonly.estado_produccion, ITEMS=("LISTA PARA DESPACHO","EN PRODUCCION"),TITLE="ESTADO PRODUCCION";
x10 = formonly.vendedor,TITLE="VENDEDOR";
LABEL z1 = formonly.fecha TYPE DATE,TITLE="FECHA ORDEN";
x3 = formonly.cotizacion_no,TITLE="COTIZACION";
x9 = formonly.num_oc,TITLE="ORDEN",
widget="FIELD_BMP", config="combo.bmp control-w";
obs = formonly.observacion,TITLE="OBSERVACION",SCROLL;
LABEL x4 = formonly.tipo_venta,TITLE="MONEDA";
LABEL x5 = formonly.nombre,TITLE="CLIENTE";
LABEL x7 = formonly.producto,TITLE="PRODUCTO";
LABEL x13 = formonly.cantidad_ord,TITLE="CANTIDAD ORD";
LABEL x14 = formonly.cantidad_desp,TITLE="CANTIDAD DESP";
LABEL x11 = formonly.cantidad_Dev,TITLE="DEVOLUCION";
LABEL x12 = formonly.pendiente,TITLE="PENDIENTE";
jj = formonly.sec_vend,HIDDEN;
a = formonly.cod_n,HIDDEN;
b = formonly.cod_grupo,HIDDEN;
c = formonly.cod_tipo,HIDDEN;
d = formonly.cod_sec,HIDDEN;
tp= formonly.tipo_cliente,HIDDEN;
sec=formonly.sec_cliente,HIDDEN;
bce = formonly.balance,HIDDEN;
instructions
screen record s_ordenes (actualiza,cerrada,estado_produccion,vendedor,fecha,fecha_compromiso,fecha_llegada,cotizacion_no,
num_oc,observacion,tipo_venta,nombre,producto,cantidad_ord,cantidad_desp,cantidad_dev,pendiente,
sec_vend,cod_n,cod_grupo,cod_tipo,cod_sec,tipo_cliente,sec_cliente,balance)
delimiters " "
end
+194
View File
@@ -0,0 +1,194 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm databaseName="decomarmol" fileVersion="31400" gstVersion="31405" name="ManagedForm" uid="{969c4ceb-b930-4058-9d6b-0fdd0ca4c55d}">
<AGSettings>
<DynamicProperties version="2"/>
</AGSettings>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="s_ordenes" order="" uid="{e828e771-e8f8-4e50-8551-9c54991b5fac}" where="">
<RecordField colName="actualiza" defaultValue="N" fieldIdRef="0" name="actualiza" sqlTabName="formonly" sqlType="CHAR" table_alias_name="" uid="{e33fd1a5-bafe-4f22-8c52-504f2bb25a44}"/>
<RecordField colName="cerrada" fieldIdRef="3" name="cerrada" sqlTabName="formonly" table_alias_name="" uid="{3a43a1f3-16fd-4d81-a7f3-4980a5ef0f02}"/>
<RecordField colName="estado_produccion" fieldIdRef="7" name="estado_produccion" sqlTabName="formonly" sqlType="CHAR" table_alias_name="" uid="{7c32324b-ef48-49db-9ec8-21181460441f}"/>
<RecordField fieldIdRef="45" name="estado_producto" uid="{9cfdf876-9e30-46c5-a960-0efc5d25d7ef}"/>
<RecordField colName="" fieldIdRef="29" name="departamento" sqlTabName="" table_alias_name="" uid="{871a19dd-7e8b-4a23-9ade-38a2a0c692e1}"/>
<RecordField colName="" fieldIdRef="30" name="descripcion_dpto" sqlTabName="" table_alias_name="" uid="{98e1d7af-8c66-4cb5-beda-c24c5af18acf}"/>
<RecordField colName="vendedor" fieldIdRef="8" name="vendedor" sqlTabName="formonly" table_alias_name="" uid="{d9f96f97-d33a-4e9b-8cba-6e70d183f575}"/>
<RecordField colName="" fieldIdRef="28" name="apell1_emp" sqlTabName="" table_alias_name="" uid="{e7d12a14-9049-4cf8-a7e4-3ea72efd2c23}"/>
<RecordField colName="fecha" fieldIdRef="9" name="fecha" sqlTabName="formonly" sqlType="DATE" table_alias_name="" uid="{69beda10-bfd5-4657-b4b4-8bf830a3d102}"/>
<RecordField colName="fecha_compromiso" fieldIdRef="5" name="fecha_compromiso" sqlTabName="formonly" sqlType="DATE" table_alias_name="" uid="{66124361-5065-4c59-a00e-eef3253aea57}"/>
<RecordField colName="fecha_llegada" fieldIdRef="6" name="fecha_llegada" sqlTabName="formonly" table_alias_name="" uid="{dd70ee8e-7c7f-4e8a-b0f4-ad068d806c66}"/>
<RecordField colName="" fieldIdRef="43" name="fechaDispEntrega" sqlTabName="" table_alias_name="" uid="{66be3775-3a83-4527-8a37-b081a95b3347}"/>
<RecordField colName="" fieldIdRef="42" name="fechaSolDespacho" sqlTabName="" table_alias_name="" uid="{71d44e51-04e5-402a-85cc-b4e920a87def}"/>
<RecordField colName="" fieldIdRef="44" name="fechaInstalacion" sqlTabName="" table_alias_name="" uid="{4f6d3396-09ee-4efc-86e0-72ba9b2bcffe}"/>
<RecordField colName="cotizacion_no" fieldIdRef="10" name="cotizacion_no" sqlTabName="formonly" table_alias_name="" uid="{7ebe4023-be9c-40bd-bedd-b9c325251d8d}"/>
<RecordField colName="num_oc" fieldIdRef="11" name="num_oc" sqlTabName="formonly" table_alias_name="" uid="{51d6de53-0788-4e0c-822a-42d7acfe7710}"/>
<RecordField colName="" fieldIdRef="39" name="orden_compra" sqlTabName="" table_alias_name="" uid="{caacb061-4c07-432a-a337-a15334868376}"/>
<RecordField colName="observacion" fieldIdRef="12" name="observacion" sqlTabName="formonly" table_alias_name="" uid="{db0d3550-884d-4a67-b071-f60d05df0df1}"/>
<RecordField colName="tipo_venta" fieldIdRef="13" name="tipo_venta" sqlTabName="formonly" table_alias_name="" uid="{cbefa022-77ad-45bc-ac00-701b470d1f15}"/>
<RecordField colName="nombre" fieldIdRef="14" name="nombre" sqlTabName="formonly" table_alias_name="" uid="{948ab7fb-1978-46fb-9e93-0fde848b7bd2}"/>
<RecordField colName="" fieldIdRef="35" name="origen" sqlTabName="" table_alias_name="" uid="{b025338f-ed65-4f48-84e3-128e7cafd2b2}"/>
<RecordField colName="producto" fieldIdRef="15" name="producto" sqlTabName="formonly" table_alias_name="" uid="{b5e609d2-386b-4ca9-bc6e-388995c8384c}"/>
<RecordField colName="cantidad_ord" fieldIdRef="16" name="cantidad_ord" sqlTabName="formonly" table_alias_name="" uid="{44d8bbd8-1c96-491d-ae68-1a02aef11cb3}"/>
<RecordField colName="cantidad_desp" fieldIdRef="17" name="cantidad_desp" sqlTabName="formonly" table_alias_name="" uid="{14e381d1-76ac-4eff-a00a-59fc25a5cd65}"/>
<RecordField colName="cantidad_dev" fieldIdRef="18" name="cantidad_dev" sqlTabName="formonly" table_alias_name="" uid="{f612abe8-0db5-4943-9eb5-9403b51d3be9}"/>
<RecordField colName="pendiente" fieldIdRef="19" name="pendiente" sqlTabName="formonly" table_alias_name="" uid="{9ff984f9-19af-4945-8eb1-93e0590a86ab}"/>
<RecordField colName="sec_vend" fieldIdRef="20" name="sec_vend" sqlTabName="formonly" table_alias_name="" uid="{87e83ac1-8619-4d7e-a194-5403267a8a2a}"/>
<RecordField colName="cod_n" fieldIdRef="21" name="cod_n" sqlTabName="formonly" table_alias_name="" uid="{20fd2cd5-6770-4c49-a62a-446c9a56d140}"/>
<RecordField colName="cod_grupo" fieldIdRef="22" name="cod_grupo" sqlTabName="formonly" table_alias_name="" uid="{f157d478-fdd9-4a0a-8771-b66437a1428a}"/>
<RecordField colName="cod_tipo" fieldIdRef="23" name="cod_tipo" sqlTabName="formonly" table_alias_name="" uid="{e79e0e70-1995-455d-867d-93199d254ec6}"/>
<RecordField colName="cod_sec" fieldIdRef="24" name="cod_sec" sqlTabName="formonly" table_alias_name="" uid="{9c18a160-221c-4b3b-8114-5edd31dd2f99}"/>
<RecordField colName="tipo_cliente" fieldIdRef="25" name="tipo_cliente" sqlTabName="formonly" table_alias_name="" uid="{187643bf-9703-4870-bd85-7ba2648cae67}"/>
<RecordField colName="sec_cliente" fieldIdRef="26" name="sec_cliente" sqlTabName="formonly" table_alias_name="" uid="{6952aebd-38ff-445b-9c1a-32294ccf96cd}"/>
<RecordField colName="balance" fieldIdRef="27" name="balance" sqlTabName="formonly" table_alias_name="" uid="{be933850-4a2e-4067-bfa8-7a59d189310b}"/>
<RecordField colName="" fieldIdRef="37" name="id_kit" sqlTabName="" table_alias_name="" uid="{11082a4a-c34c-4478-b62e-28e54e73c455}"/>
<RecordField colName="" fieldIdRef="38" name="area" sqlTabName="" table_alias_name="" uid="{d1e7114c-723c-4b37-bcba-7ba2e3227ceb}"/>
<RecordField colName="" fieldIdRef="40" name="instalador" sqlTabName="" table_alias_name="" uid="{2207b9d2-9716-47a8-985a-04035108f8af}"/>
<RecordField fieldIdRef="49" name="equipo" uid="{a51a68d6-e150-43ef-b2eb-01ebac08198b}"/>
<RecordField colName="" fieldIdRef="41" name="costo" sqlTabName="" table_alias_name="" uid="{bfa9f7fd-04b1-403f-a58d-70c51b3ff11c}"/>
</Record>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="Undefined" order="" uid="{66e54cc9-7462-489d-9aa7-e63ab5cf6190}" where="">
<RecordField colName="registros" fieldIdRef="4" name="registros" sqlTabName="formonly" table_alias_name="" uid="{556b2375-9ba8-483a-b0bf-370fe0311208}"/>
<RecordField colName="fecha1" fieldIdRef="1" name="fecha1" sqlTabName="formonly" table_alias_name="" uid="{326b5339-2e50-45d7-896d-dd64fbf009a8}"/>
<RecordField colName="fecha2" fieldIdRef="2" name="fecha2" sqlTabName="formonly" table_alias_name="" uid="{57f59195-e262-4c55-947a-2fc41f720b9a}"/>
<RecordField colName="" fieldIdRef="31" name="pcod10" sqlTabName="" table_alias_name="" uid="{721cca80-dd0a-4a1c-8fe0-60775bb91365}"/>
<RecordField colName="" fieldIdRef="32" name="pcod11" sqlTabName="" table_alias_name="" uid="{d6732024-78c4-408c-a015-d7ac6f7b74bf}"/>
<RecordField colName="" fieldIdRef="33" name="pcod12" sqlTabName="" table_alias_name="" uid="{8f756ca3-cdd6-4fd1-b555-7480188cb91d}"/>
<RecordField colName="" fieldIdRef="34" name="pcod13" sqlTabName="" table_alias_name="" uid="{ed0c6474-b51c-4b24-ba6c-90e1edfa336a}"/>
<RecordField colName="" defaultValue="1" fieldIdRef="36" name="xorigen" sqlTabName="" table_alias_name="" uid="{49bc4cf3-87bc-4000-b842-d09e0bb4c950}"/>
<RecordField fieldIdRef="46" name="tipo_orden" uid="{76ce0e75-36d5-4127-9bc8-ccdcfaa60306}"/>
<RecordField fieldIdRef="47" name="descripcionprod" uid="{8bc457f9-6013-48c0-a2c8-a999094958b0}"/>
<RecordField fieldIdRef="48" name="equipos" uid="{1151fcc4-88a3-4fab-bbf5-ef72f91f9e6a}"/>
</Record>
<Form gridHeight="22" gridWidth="681" name="prfmmt011" style="basic" text="Administracion Ordenes Pedidos">
<Grid gridHeight="22" gridWidth="681" name="Grid1" posX="0" posY="0">
<Group gridHeight="10" gridWidth="76" name="Group1" posX="2" posY="1">
<Label gridHeight="1" gridWidth="48" name="Label1" posX="4" posY="1" style="title" text="ORDENES PEDIDOS"/>
<Label posX="4" posY="2" text="NUMERO DE REGISTROS ENCONTRADOS:"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="registros" fieldId="4" gridHeight="1" gridWidth="10" name="registros" posX="37" posY="2" sqlTabName="formonly" tabIndex="1" table_alias_name="" widget="Edit"/>
<Label posX="4" posY="3" text="Fecha Inicial"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fecha1" fieldId="1" format="dd/mm/yyyy" gridHeight="1" gridWidth="10" name="fecha1" posX="37" posY="3" sqlTabName="formonly" tabIndex="2" table_alias_name="" widget="DateEdit"/>
<Label posX="49" posY="3" text="Fecha Final"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fecha2" fieldId="2" format="dd/mm/yyyy" gridHeight="1" gridWidth="10" name="fecha2" posX="62" posY="3" sqlTabName="formonly" tabIndex="3" table_alias_name="" widget="DateEdit"/>
<Label gridHeight="1" gridWidth="10" name="Label8" posX="3" posY="4" text="ORIGEN"/>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" defaultValue="1" fieldId="36" gridHeight="1" gridWidth="19" items="PRODUCTOS LOCALES, PRODUCTOS IMPORTADOS, PTOS. MAT. IMPORTADOS" name="xorigen" posX="16" posY="4" sqlTabName="" tabIndex="38" table_alias_name="" title="ComboBox1" widget="ComboBox">
<Item lstrtext="false" name="1" text="PRODUCTOS LOCALES"/>
<Item lstrtext="false" name="2" text="PRODUCTOS IMPORTADOS"/>
<Item lstrtext="false" name="3" text="PTOS. MAT. IMPORTADOS"/>
</ComboBox>
<Label gridHeight="1" gridWidth="10" name="Label7" posX="3" posY="5" text="Codigo"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="31" gridHeight="1" gridWidth="6" name="pcod10" posX="16" posY="5" sqlTabName="" tabIndex="33" table_alias_name="" title="Edit1" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="32" gridHeight="1" gridWidth="6" name="pcod11" posX="26" posY="5" sqlTabName="" tabIndex="34" table_alias_name="" title="Edit2" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="33" gridHeight="1" gridWidth="6" name="pcod12" posX="34" posY="5" sqlTabName="" tabIndex="35" table_alias_name="" title="Edit3" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="34" gridHeight="1" gridWidth="6" name="pcod13" posX="42" posY="5" sqlTabName="" tabIndex="36" table_alias_name="" title="Edit4" widget="Edit"/>
<Label gridHeight="1" gridWidth="10" name="label15" posX="3" posY="6" text="Descripcion Producto"/>
<Edit fieldId="47" gridHeight="1" gridWidth="32" name="descripcionprod" posX="16" posY="6" scroll="true" tabIndex="-1" title="edit1" widget="Edit"/>
<Label gridHeight="1" gridWidth="10" name="label14" posX="3" posY="7" text="Tipo Orden"/>
<ComboBox fieldId="46" gridHeight="1" gridWidth="10" items="GENERAL, ECOMMERCE" name="tipo_orden" posX="16" posY="7" tabIndex="-1" title="combobox1" widget="ComboBox">
<Item lstrtext="false" name="GENERAL" text="GENERAL"/>
<Item lstrtext="false" name="ECOMMERCE" text="ECOMMERCE"/>
</ComboBox>
<Label gridHeight="1" gridWidth="10" name="label16" posX="3" posY="8" text="Equipo Ventas"/>
<ComboBox fieldId="48" gridHeight="1" gridWidth="32" items="" name="equipos" posX="16" posY="8" tabIndex="-1" title="combobox1" widget="ComboBox"/>
</Group>
<Group gridHeight="10" gridWidth="48" name="Group2" posX="80" posY="1">
<Label color="magenta" gridHeight="1" gridWidth="40" name="Label2" posX="2" posY="1" text="ORDENES TRES DIAS PROXIMO A VENCER"/>
<Label color="red" gridHeight="1" gridWidth="40" name="Label3" posX="2" posY="2" text="ORDENES MAS DE 5 DIAS VENCIDAS"/>
<Label gridHeight="1" gridWidth="40" name="Label4" posX="2" posY="3" text="ORDENES NORMALES"/>
<Label color="blue" gridHeight="1" gridWidth="40" name="Label6" posX="2" posY="4" text="LAS ORDENES EN COLOR AZUL TIENEN VARIAS FECHAS DE LLEGADA"/>
<Label color="green" gridHeight="1" gridWidth="40" name="Label5" posX="2" posY="5" text="LAS ORDENES EN COLOR VERDE TIENEN VARIAS FECHAS PRODUCCION"/>
<Label color="yellow" gridHeight="1" gridWidth="40" name="Label9" posX="2" posY="6" text="ORDEN CON DIBUJOS, ESTADO ORDEN EN COLOR AMARILLO"/>
<Label color="black" gridHeight="1" gridWidth="20" name="label10" posX="2" posY="7" text="ORDENES CON REQ. AUTORIZADAS"/>
<Label color="magenta" gridHeight="1" gridWidth="10" name="label11" posX="23" posY="7" reverse="true" text="SOMBREADAS"/>
<Label color="black" gridHeight="1" gridWidth="20" name="label12" posX="2" posY="8" text="ORDENES CON REQ. NO AUTORIZADAS"/>
<Label color="yellow" gridHeight="1" gridWidth="10" name="label13" posX="23" posY="8" reverse="true" text="SOMBREADAS"/>
</Group>
<Group gridHeight="10" gridWidth="680" name="Group3" posX="1" posY="12" text="Ordenes">
<Table gridHeight="6" gridWidth="677" name="Table1" posX="2" posY="3" style="" totalRows="5" unitWidth="characters" width="389">
<CheckBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="actualiza" defaultValue="N" fieldId="0" gridHeight="1" gridWidth="2" name="actualiza" notNull="true" posX="0" posY="0" required="true" sqlTabName="formonly" sqlType="CHAR" tabIndex="4" table_alias_name="" valueChecked="S" valueUnchecked="N" widget="CheckBox"/>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cerrada" fieldId="3" gridHeight="1" gridWidth="16" items="CERRADAS, NULAS, ABIERTAS" name="cerrada" posX="2" posY="0" sqlTabName="formonly" tabIndex="5" table_alias_name="" title="ESTADO ORDEN" widget="ComboBox">
<Item name="S" text="CERRADAS"/>
<Item lstrtext="false" name="E" text="NULAS"/>
<Item lstrtext="true" name="N" text="ABIERTAS"/>
</ComboBox>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="estado_produccion" fieldId="7" gridHeight="1" gridWidth="19" items="CLIENTE RECOGE EN PC, CLIENTE RECOGE EN SC, CLIENTE RECOGE EN DCM, CLIENTE RECOGE EN STGO, DESPACHO COORDINADO, DETENIDA INSTALACION, DETENIDA VENTAS, DETENIDA CLIENTE, LISTO CARIBBEAN, REVISION DISEÑO, PROCESO REPOSICION, PRODUCTO NO DISPONIBLE, PROCESO LAVADO, RECIBIDO EN DCM, RECIBIDO EN PC, RECIBIDO EN STGO, REQUIERE ENVIO A DCM, REQUIERE ENVIO A PC, REQUIERE ENVIO A STGO, EN PRODUCCION MARMOTECH, EN PRODUCCION CARIBBEAN, FALTA DIBUJO, DETENIDA PRODUCCION, DETENIDA ALMACEN, OTROS INCONVENIENTES" name="estado_produccion" posX="18" posY="0" scroll="true" sqlTabName="formonly" sqlType="CHAR" tabIndex="6" table_alias_name="" title="ESTADO PROCESOS" widget="ComboBox">
<Item lstrtext="false" name="CLIENTE RECOGE EN PC" text="CLIENTE RECOGE EN PC"/>
<Item lstrtext="false" name="CLIENTE RECOGE EN SC" text="CLIENTE RECOGE EN SC"/>
<Item lstrtext="false" name="CLIENTE RECOGE EN DCM" text="CLIENTE RECOGE EN DCM"/>
<Item lstrtext="false" name="CLIENTE RECOGE EN STGO" text="CLIENTE RECOGE EN STGO"/>
<Item lstrtext="false" name="DESPACHO COORDINADO" text="DESPACHO COORDINADO"/>
<Item lstrtext="false" name="DETENIDA INSTALACION" text="DETENIDA INSTALACION"/>
<Item lstrtext="false" name="DETENIDA VENTAS" text="DETENIDA VENTAS"/>
<Item lstrtext="false" name="DETENIDA CLIENTE" text="DETENIDA CLIENTE"/>
<Item lstrtext="false" name="LISTO CARIBBEAN" text="LISTO CARIBBEAN"/>
<Item lstrtext="false" name="REVISION DISEÑO" text="REVISION DISEÑO"/>
<Item lstrtext="false" name="PROCESO REPOSICION" text="PROCESO REPOSICION"/>
<Item lstrtext="false" name="PRODUCTO NO DISPONIBLE" text="PRODUCTO NO DISPONIBLE"/>
<Item lstrtext="false" name="PROCESO LAVADO" text="PROCESO LAVADO"/>
<Item lstrtext="false" name="RECIBIDO EN DCM" text="RECIBIDO EN DCM"/>
<Item lstrtext="false" name="RECIBIDO EN PC" text="RECIBIDO EN PC"/>
<Item lstrtext="false" name="RECIBIDO EN STGO" text="RECIBIDO EN STGO"/>
<Item lstrtext="false" name="REQUIERE ENVIO A DCM" text="REQUIERE ENVIO A DCM"/>
<Item lstrtext="false" name="REQUIERE ENVIO A PC" text="REQUIERE ENVIO A PC"/>
<Item lstrtext="false" name="REQUIERE ENVIO A STGO" text="REQUIERE ENVIO A STGO"/>
<Item lstrtext="false" name="EN PRODUCCION MARMOTECH" text="EN PRODUCCION MARMOTECH"/>
<Item lstrtext="false" name="EN PRODUCCION CARIBBEAN" text="EN PRODUCCION CARIBBEAN"/>
<Item lstrtext="false" name="FALTA DIBUJO" text="FALTA DIBUJO"/>
<Item lstrtext="false" name="DETENIDA PRODUCCION" text="DETENIDA PRODUCCION"/>
<Item lstrtext="false" name="DETENIDA ALMACEN" text="DETENIDA ALMACEN"/>
<Item lstrtext="false" name="OTROS INCONVENIENTES" text="OTROS INCONVENIENTES"/>
</ComboBox>
<ComboBox fieldId="45" gridHeight="1" gridWidth="17" items="LISTA PARA DESPACHO, EN PLANIFICACION, DESPACHO PARCIAL, REQUIERE PRODUCCION, REQUIERE COMPRAS, REQUIERE INSTALACION, PRODUCCION PARCIAL, PRODUCTO NO DISPONIBLE, SOLO SEPARACION, SOLO FACTURACION" name="estado_producto" posX="37" posY="0" tabIndex="-1" title="ESTADO PRODUCTOS" widget="ComboBox">
<Item lstrtext="false" name="LISTA PARA DESPACHO" text="LISTA PARA DESPACHO"/>
<Item lstrtext="false" name="EN PLANIFICACION" text="EN PLANIFICACION"/>
<Item lstrtext="false" name="DESPACHO PARCIAL" text="DESPACHO PARCIAL"/>
<Item lstrtext="false" name="REQUIERE PRODUCCION" text="REQUIERE PRODUCCION"/>
<Item lstrtext="false" name="REQUIERE COMPRAS" text="REQUIERE COMPRAS"/>
<Item lstrtext="false" name="REQUIERE INSTALACION" text="REQUIERE INSTALACION"/>
<Item lstrtext="false" name="PRODUCCION PARCIAL" text="PRODUCCION PARCIAL"/>
<Item lstrtext="false" name="PRODUCTO NO DISPONIBLE" text="PRODUCTO NO DISPONIBLE"/>
<Item lstrtext="false" name="SOLO SEPARACION" text="SOLO SEPARACION"/>
<Item lstrtext="false" name="SOLO FACTURACION" text="SOLO FACTURACION"/>
</ComboBox>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="29" gridHeight="1" gridWidth="8" name="departamento" posX="54" posY="0" sqlTabName="" tabIndex="31" table_alias_name="" title="Departamento" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="30" gridHeight="1" gridWidth="8" name="descripcion_dpto" posX="62" posY="0" scroll="true" sqlTabName="" tabIndex="32" table_alias_name="" title="Nombre Dpto" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="vendedor" fieldId="8" gridHeight="1" gridWidth="19" name="vendedor" posX="70" posY="0" sqlTabName="formonly" tabIndex="7" table_alias_name="" title="NOMBRE VENDEDOR" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="28" gridHeight="1" gridWidth="20" name="apell1_emp" posX="89" posY="0" sizePolicy="dynamic" sqlTabName="" tabIndex="30" table_alias_name="" title="APELLIDO VENDEDOR" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fecha" fieldId="9" gridHeight="1" gridWidth="19" name="fecha" posX="109" posY="0" sqlTabName="formonly" sqlType="DATE" table_alias_name="" title="FECHA ORDEN" widget="FFLabel"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fecha_compromiso" fieldId="5" gridHeight="1" gridWidth="29" name="fecha_compromiso" posX="128" posY="0" sqlTabName="formonly" sqlType="DATE" tabIndex="9" table_alias_name="" title="FECHA LISTA PRODUCCION" widget="DateEdit"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="fecha_llegada" fieldId="6" format="dd/mm/yyyy" gridHeight="1" gridWidth="19" name="fecha_llegada" posX="157" posY="0" sqlTabName="formonly" tabIndex="10" table_alias_name="" title="FECHA LLEGADA" widget="DateEdit"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="43" gridHeight="1" gridWidth="30" name="fechaDispEntrega" posX="176" posY="0" sqlTabName="" tabIndex="44" table_alias_name="" title="FECHA DISPONIBLE ENTREGA" widget="DateEdit"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="42" gridHeight="1" gridWidth="33" name="fechaSolDespacho" noEntry="false" posX="206" posY="0" sqlTabName="" tabIndex="45" table_alias_name="" title="FECHA SOLICITADA DESPACHO" widget="DateEdit"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="44" gridHeight="1" gridWidth="28" name="fechaInstalacion" posX="239" posY="0" sqlTabName="" tabIndex="46" table_alias_name="" title="FECHA INICIO INSTALACION" widget="DateEdit"/>
<ButtonEdit action="cotizacion_detalle" aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cotizacion_no" fieldId="10" gridHeight="1" gridWidth="10" image="tilehorz" name="cotizacion_no" posX="267" posY="0" sqlTabName="formonly" tabIndex="11" table_alias_name="" title="COTIZACION" widget="ButtonEdit">
<Initializer action="cotizacion_detalle"/>
</ButtonEdit>
<ButtonEdit action="forden" aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="num_oc" fieldId="11" gridHeight="1" gridWidth="8" image="find.bmp" name="num_oc" posX="277" posY="0" sqlTabName="formonly" style="requisi" tabIndex="12" table_alias_name="" title="ORDEN" widget="ButtonEdit"/>
<ButtonEdit action="btransito" aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="39" gridHeight="1" gridWidth="8" image="lingua.png" name="orden_compra" posX="285" posY="0" sqlTabName="" tabIndex="41" table_alias_name="" title="ORDEN COMPRAS" widget="ButtonEdit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="observacion" fieldId="12" gridHeight="1" gridWidth="58" name="observacion" posX="293" posY="0" scroll="true" sqlTabName="formonly" tabIndex="13" table_alias_name="" title="OBSERVACION" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="tipo_venta" fieldId="13" gridHeight="1" gridWidth="17" name="tipo_venta" posX="351" posY="0" sqlTabName="formonly" table_alias_name="" title="MONEDA" widget="FFLabel"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="nombre" fieldId="14" gridHeight="1" gridWidth="28" name="nombre" posX="368" posY="0" sqlTabName="formonly" tabIndex="29" table_alias_name="" title="CLIENTE" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="35" gridHeight="1" gridWidth="30" name="origen" posX="396" posY="0" sqlTabName="" tabIndex="37" table_alias_name="" title="ORIGEN" widget="Edit"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="producto" fieldId="15" gridHeight="1" gridWidth="48" name="producto" posX="426" posY="0" sqlTabName="formonly" table_alias_name="" title="PRODUCTO" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cantidad_ord" fieldId="16" gridHeight="1" gridWidth="13" name="cantidad_ord" posX="474" posY="0" sqlTabName="formonly" table_alias_name="" title="CANTIDAD ORD" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cantidad_desp" fieldId="17" gridHeight="1" gridWidth="13" name="cantidad_desp" posX="487" posY="0" sqlTabName="formonly" table_alias_name="" title="CANTIDAD DESP" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cantidad_dev" fieldId="18" gridHeight="1" gridWidth="13" name="cantidad_dev" posX="500" posY="0" sqlTabName="formonly" table_alias_name="" title="DEVOLUCION" widget="FFLabel"/>
<FFLabel aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="pendiente" fieldId="19" gridHeight="1" gridWidth="13" name="pendiente" posX="513" posY="0" sqlTabName="formonly" table_alias_name="" title="PENDIENTE" widget="FFLabel"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="sec_vend" fieldId="20" gridHeight="1" gridWidth="4" hidden="true" name="sec_vend" posX="526" posY="0" sqlTabName="formonly" tabIndex="21" table_alias_name="" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cod_n" fieldId="21" gridHeight="1" gridWidth="10" hidden="false" name="cod_n" posX="530" posY="0" sqlTabName="formonly" tabIndex="22" table_alias_name="" title="Clase" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cod_grupo" fieldId="22" gridHeight="1" gridWidth="10" hidden="false" name="cod_grupo" posX="540" posY="0" sqlTabName="formonly" tabIndex="23" table_alias_name="" title="Grupo" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cod_tipo" fieldId="23" gridHeight="1" gridWidth="10" hidden="false" name="cod_tipo" posX="550" posY="0" sqlTabName="formonly" tabIndex="24" table_alias_name="" title="Tipo" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cod_sec" fieldId="24" gridHeight="1" gridWidth="10" hidden="false" name="cod_sec" posX="560" posY="0" sqlTabName="formonly" tabIndex="25" table_alias_name="" title="Medida" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="tipo_cliente" fieldId="25" gridHeight="1" gridWidth="2" hidden="false" name="tipo_cliente" posX="570" posY="0" sqlTabName="formonly" tabIndex="26" table_alias_name="" title="Tipo Cliente" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="sec_cliente" fieldId="26" gridHeight="1" gridWidth="6" hidden="false" name="sec_cliente" posX="572" posY="0" sqlTabName="formonly" tabIndex="27" table_alias_name="" title="Codigo Cliente" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="balance" fieldId="27" gridHeight="1" gridWidth="7" hidden="true" name="balance" posX="578" posY="0" sqlTabName="formonly" tabIndex="28" table_alias_name="" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="37" gridHeight="1" gridWidth="8" hidden="true" name="id_kit" posX="585" posY="0" sqlTabName="" tabIndex="39" table_alias_name="" title="Edit1" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="38" gridHeight="1" gridWidth="8" hidden="true" name="area" posX="593" posY="0" sqlTabName="" tabIndex="40" table_alias_name="" title="Edit1" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="40" gridHeight="1" gridWidth="20" name="instalador" posX="601" posY="0" scroll="true" sqlTabName="" tabIndex="42" table_alias_name="" title="Supervisor Obras" widget="Edit"/>
<Edit fieldId="49" gridHeight="1" gridWidth="8" name="equipo" posX="621" posY="0" tabIndex="-1" title="Equipo" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" fieldId="41" gridHeight="1" gridWidth="8" name="costo" posX="629" posY="0" sqlTabName="" tabIndex="43" table_alias_name="" title="Monto" widget="Edit"/>
</Table>
</Group>
</Grid>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewBlADgAMgA4AGUANwA3ADEALQBlADgAZgA4AC0ANABlADUAMAAtADgANQA1ADEALQA5AGMANQA0ADkAOQAxAGIANQBmAGEAYwB9v+mZmhmZmsgAAAAAAAAAAD+EeuFHrhR8AQAAAEwAewA2ADYAZQA1ADQAYwBjADkALQA3ADQANgAyAC0ANAA4ADkAZAAtADkAYQBhADcALQBlADYAMwBhAGIANQBjAGYANgAxADkAMAB9QGjAAIKgAVpALZmam5meOD9QYk3S8an8AQ==]]>
</DiagramLayout>
</ManagedForm>
+95
View File
@@ -0,0 +1,95 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT012
OBJETIVO : ADMINISTRACION ORDENES PEDIDOS
REALIZADO POR : Ing. Juan Soto
FECHA : Marzo 4, 2010
-----------------------------------------------------------------------------
}
SCHEMA decomarmol
ACTION DEFAULTS
ACTION cancel (TEXT="Cancela Operacion",IMAGE="stop")
ACTION procesar (TEXT="Busca Requisicion",IMAGE="buscar")
ACTION buscamensaje (TEXT="Mensajes",IMAGE="message")
END
LAYOUT (TEXT="Administracion Ordenes Pedidos",STYLE="basic")
GRID
{
<G ><G "LEYENDA" >
[lb1 ] [l1 ]
NUMERO DE REGISTROS ENCONTRADOS:[no1 ] [l2 ]
Fecha Inicial [f4 ] Fecha Final [f5 ] [l3 ]
[l4 ]
<G "Ordenes" >
<t t1 >
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
[ac][ck1 ][es ][x10 ][Z1 ][f1 ][fe1 ][x3 ][x9 ][obs ][x4 ][x5 ][x7 ][x13 ][x14 ][x11 ][x12 ][jj ][a ][b ][c ][d ][tp][sec ][bce ]
}
end
tables
cctb00001
ATTRIBUTES
CHECKBOX ac = formonly.actualiza TYPE CHAR,NOT NULL,VALUECHECKED="S",VALUEUNCHECKED="N",DEFAULT="N";
DATEEDIT f4 = formonly.fecha1,FORMAT="dd/mm/yyyy";
DATEEDIT f5 = formonly.fecha2,FORMAT="dd/mm/yyyy";
COMBOBOX ck1=formonly.cerrada,ITEMS=(("S","CERRADAS"),("N","ABIERTAS")),TITLE="ESTADO ORDEN";
no1 = formonly.registros;
LABEL lb1:text="ORDENES PEDIDOS", STYLE="title";
LABEL l1:TEXT="ORDENES ENTRE 2 A 5 DIAS POR VENCER",COLOR=MAGENTA;
LABEL l2:TEXT="ORDENES MAS DE 5 DIAS VENCIDAS",COLOR=RED;
LABEL l3:TEXT="ORDENES NORMALES";
LABEL l4:TEXT="LAS ORDENES EN COLOR AZUL TIENEN VARIAS FECHAS DE LLEGADA";
DATEEDIT f1 = formonly.fecha_compromiso,TITLE="FECHA PRODUCCION";
fe1= formonly.fecha_llegada,TITLE="FECHA LLEGADA",FORMAT="dd/mm/yyyy",
widget="FIELD_BMP", config="combo.bmp control-w";
COMBOBOX es = formonly.estado_produccion, ITEMS=("LISTA PARA DESPACHO","EN PRODUCCION"),TITLE="ESTADO PRODUCCION";
x10 = formonly.vendedor,TITLE="VENDEDOR";
LABEL z1 = formonly.fecha TYPE DATE,TITLE="FECHA ORDEN";
x3 = formonly.cotizacion_no,TITLE="COTIZACION";
x9 = formonly.num_oc,TITLE="ORDEN",
widget="FIELD_BMP", config="combo.bmp control-w";
obs = formonly.observacion,TITLE="OBSERVACION",SCROLL;
LABEL x4 = formonly.tipo_venta,TITLE="MONEDA";
LABEL x5 = formonly.nombre,TITLE="CLIENTE";
LABEL x7 = formonly.producto,TITLE="PRODUCTO";
LABEL x13 = formonly.cantidad_ord,TITLE="CANTIDAD ORD";
LABEL x14 = formonly.cantidad_desp,TITLE="CANTIDAD DESP";
LABEL x11 = formonly.cantidad_Dev,TITLE="DEVOLUCION";
LABEL x12 = formonly.pendiente,TITLE="PENDIENTE";
jj = formonly.sec_vend,HIDDEN;
a = formonly.cod_n,HIDDEN;
b = formonly.cod_grupo,HIDDEN;
c = formonly.cod_tipo,HIDDEN;
d = formonly.cod_sec,HIDDEN;
tp= formonly.tipo_cliente,HIDDEN;
sec=formonly.sec_cliente,HIDDEN;
bce = formonly.balance,HIDDEN;
instructions
screen record s_ordenes (actualiza,cerrada,estado_produccion,vendedor,fecha,fecha_compromiso,fecha_llegada,cotizacion_no,
num_oc,observacion,tipo_venta,nombre,producto,cantidad_ord,cantidad_desp,cantidad_dev,pendiente,
sec_vend,cod_n,cod_grupo,cod_tipo,cod_sec,tipo_cliente,sec_cliente,balance)
delimiters " "
end
+25
View File
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm gstVersion="22800" name="ManagedForm" uid="{0cb6251e-bac9-420d-857e-830db6e96a9e}">
<AGSettings/>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="slog" order="" uid="{9a4a312c-a871-40e4-80f0-137cbfcd3ea1}" where="">
<RecordField colName="" fieldIdRef="1" name="fecha" sqlTabName="" table_alias_name="" uid="{5659ee77-8030-47b7-bde8-f3af72528944}"/>
<RecordField colName="" fieldIdRef="2" name="num_oc" sqlTabName="" table_alias_name="" uid="{f348ab2b-b29d-485d-ab7c-120eb45c6b8f}"/>
<RecordField colName="" fieldIdRef="3" name="observaciones" sqlTabName="" table_alias_name="" uid="{320e9aa9-ab7d-4777-996f-b563b69befb7}"/>
<RecordField colName="" fieldIdRef="4" name="fecha_compromiso" sqlTabName="" table_alias_name="" uid="{afe654d2-93be-4699-81d2-eee5c4a84f6f}"/>
<RecordField colName="" fieldIdRef="5" name="usuario" sqlTabName="" table_alias_name="" uid="{dab904d2-38f9-45e0-99b0-40d77ffce196}"/>
</Record>
<Form gridHeight="18" gridWidth="77" name="vefmmt011b" text="Visualizacion Log Ordenes">
<Group gridHeight="14" gridWidth="68" name="Group1" posX="3" posY="2">
<Table gridHeight="7" gridWidth="55" name="Table1" posX="3" posY="2" totalRows="5">
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="1" gridHeight="1" gridWidth="8" name="fecha" posX="0" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="1" table_alias_name="" title="Fecha" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="2" gridHeight="1" gridWidth="8" name="num_oc" posX="8" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="2" table_alias_name="" title="Orden" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="3" gridHeight="1" gridWidth="10" name="observaciones" posX="16" posY="0" rowCount="" scroll="true" sqlTabName="" stepX="" stepY="" tabIndex="3" table_alias_name="" title="Observaciones" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="4" gridHeight="1" gridWidth="8" name="fecha_compromiso" posX="26" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="4" table_alias_name="" title="Fecha Compromiso" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="5" gridHeight="1" gridWidth="8" name="usuario" posX="34" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="Usuario" widget="Edit"/>
</Table>
</Group>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewA1ADYANQA5AGUAZQA3ADcALQA4ADAAMwAwAC0ANAA3AGIANwAtAGIAZABlADgALQBmADMAYQBmADcAMgA1ADIAOAA5ADQANAB9QCAAAAQAAABAPZmZoQAAAAAAAAAAAAAAAQAAAEwAewBkAGEAYgA5ADAANABkADIALQAzADgAZgA5AC0ANAA1AGUAMAAtADkAOQBiADAALQA0ADAAZAA3ADcAZgBmAGMAZQAxADkANgB9QCAAAAQAAABAWQAABkAAAAAAAAAAAAAAAQAAAEwAewBhAGYAZQA2ADUANABkADIALQA5ADMAYgBlAC0ANAA2ADkAOQAtADgAMQBkADIALQBlAGUAZQA1AGMANABhADgANABmADYAZgB9QCAAAAQAAABAVJmZnsAAAAAAAAAAAAAAAQAAAEwAewBmADMANAA4AGEAYgAyAGIALQBiADIAOQBkAC0ANAA4ADUAZAAtAGEAYgA3AGMALQAxADIAMABlAGIANAA1AGMANgBiADgAZgB9QCAAAAQAAABAR5mZn4AAAAAAAAAAAAAAAQAAAEwAewAzADIAMABlADkAYQBhADkALQBhAGIANwBkAC0ANAA3ADcANwAtADkAOQA2AGYALQBiADUANgAzAGIANgA5AGIAZQBmAGIANwB9QCAAAAQAAABAUDMzN0AAAAAAAAAAAAAAAQAAAEwAewA5AGEANABhADMAMQAyAGMALQBhADgANwAxAC0ANAAwAGUANAAtADgAMABmADAALQAxADMANwBjAGIAZgBjAGQAMwBlAGEAMQB9AAAAAAAAAAAAAAAAAAAAAD9QYk3S8an8AQ==]]>
</DiagramLayout>
</ManagedForm>
+29
View File
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm gstVersion="22800" name="ManagedForm" uid="{f53bceca-0057-485f-ba3d-c81302373aff}">
<AGSettings/>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="sflujo" order="" uid="{52c14c29-90cd-49bb-bcfb-3e1f4616df12}" where="">
<RecordField colName="" fieldIdRef="4" name="actualiza" sqlTabName="" table_alias_name="" uid="{540bf58f-02d9-43db-ba3a-35ee0ec0e960}"/>
<RecordField colName="" fieldIdRef="1" name="fecha_trx" sqlTabName="" table_alias_name="" uid="{7f4e6e3e-c2a9-479c-b702-b7e8f79f84ae}"/>
<RecordField colName="" fieldIdRef="2" name="departamento" sqlTabName="" table_alias_name="" uid="{944867c2-ea72-4d5e-b1cc-6f4dc511a9aa}"/>
<RecordField colName="" fieldIdRef="5" name="nombre" sqlTabName="" table_alias_name="" uid="{7a9ab90e-e3ea-428a-8ddc-9798fd23be81}"/>
<RecordField colName="" fieldIdRef="3" name="comentario" sqlTabName="" table_alias_name="" uid="{00ac9341-6f3b-43a1-846a-08d77958b978}"/>
<RecordField colName="" fieldIdRef="7" name="fecha_compromiso" sqlTabName="" table_alias_name="" uid="{2ef4c74d-ad35-4881-a643-97fc2e86c994}"/>
<RecordField colName="" fieldIdRef="6" name="id" sqlTabName="" table_alias_name="" uid="{93d53017-52c7-44e6-8b9f-0d8f7ac772ff}"/>
</Record>
<Form gridHeight="15" gridWidth="91" name="Form" text="Flujo Comentarios">
<Group gridHeight="11" gridWidth="90" name="Group1" posX="1" posY="2" text="">
<Table gridHeight="8" gridWidth="87" name="Table1" posX="2" posY="1" totalRows="5">
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="4" gridHeight="1" gridWidth="8" name="actualiza" noEntry="true" posX="0" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="4" table_alias_name="" title="actualiza" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="1" gridHeight="1" gridWidth="16" name="fecha_trx" noEntry="true" posX="8" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="1" table_alias_name="" title="Fecha" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="2" gridHeight="1" gridWidth="12" name="departamento" posX="24" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="2" table_alias_name="" title="Departamento" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="5" gridHeight="1" gridWidth="12" name="nombre" noEntry="true" posX="36" posY="0" rowCount="" scroll="true" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="Descripcion" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="3" gridHeight="1" gridWidth="15" name="comentario" posX="48" posY="0" rowCount="" scroll="true" sqlTabName="" stepX="" stepY="" tabIndex="3" table_alias_name="" title="Comentarios" widget="Edit"/>
<DateEdit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="7" gridHeight="1" gridWidth="8" name="fecha_compromiso" posX="63" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="7" table_alias_name="" title="Fecha Compromiso" widget="DateEdit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="6" gridHeight="1" gridWidth="8" name="id" noEntry="true" posX="71" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="6" table_alias_name="" title="ID" widget="Edit"/>
</Table>
</Group>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewA3AGYANABlADYAZQAzAGUALQBjADIAYQA5AC0ANAA3ADkAYwAtAGIANwAwADIALQBiADcAZQA4AGYANwA5AGYAOAA0AGEAZQB9QCAAAAgAAAFAR5mZpWZmaAAAAAAAAAAAAQAAAEwAewA3AGEAOQBhAGIAOQAwAGUALQBlADMAZQBhAC0ANAAyADgAYQAtADgAZABkAGMALQA5ADcAOQA4AGYAZAAyADMAYgBlADgAMQB9QCAAAAgAAAFAVJmZo+ZmaAAAAAAAAAAAAQAAAEwAewAwADAAYQBjADkAMwA0ADEALQA2AGYAMwBiAC0ANAAzAGEAMQAtADgANAA2AGEALQAwADgAZAA3ADcAOQA1ADgAYgA5ADcAOAB9QCAAAAgAAAFAWQAADIAAAgAAAAAAAAAAAQAAAEwAewA1ADIAYwAxADQAYwAyADkALQA5ADAAYwBkAC0ANAA5AGIAYgAtAGIAYwBmAGIALQAzAGUAMQBmADQANgAxADYAZABmADEAMgB9AAAAAAAAAAAAAAAAAAAAAD9QYk3S8an8AQAAAEwAewA5ADMAZAA1ADMAMAAxADcALQA1ADIAYwA3AC0ANAA0AGUANgAtADgAYgA5AGYALQAwAGQAOABmADcAYQBjADcANwAyAGYAZgB9QCAAAAgAAAFAYOZmbtmZmwAAAAAAAAAAAQAAAEwAewA1ADQAMABiAGYANQA4AGYALQAwADIAZAA5AC0ANAAzAGQAYgAtAGIAYQAzAGEALQAzADUAZQBlADAAZQBjADAAZQA5ADYAMAB9QCAAAAgAAAFAPZmZqGZmaAAAAAAAAAAAAQAAAEwAewAyAGUAZgA0AGMANwA0AGQALQBhAGQAMwA1AC0ANAA4ADgAMQAtAGEANgA0ADMALQA5ADcAZgBjADIAZQA4ADYAYwA5ADkANAB9QCAAAAgAAAFAXWZmdRmZmwAAAAAAAAAAAQAAAEwAewA5ADQANAA4ADYANwBjADIALQBlAGEANwAyAC0ANABkADUAZQAtAGIAMQBjAGMALQA2AGYANABkAGMANQAxADEAYQA5AGEAYQB9QCAAAAgAAAFAUDMzO0zMzgAAAAAAAAAAAQ==]]>
</DiagramLayout>
</ManagedForm>
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm databaseName="smarmotech" gstVersion="22800" name="ManagedForm" uid="{acf2463f-2aa7-4e31-97bb-7f592bc198cc}">
<AGSettings/>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="sdibujo" order="" uid="{28825822-02dc-409f-a6cc-58f3963b3a5c}" where="">
<RecordField colName="" fieldIdRef="11" name="idx" sqlTabName="" table_alias_name="" uid="{b6a8e718-cf1b-4a00-9a4c-abbf4b74483c}"/>
<RecordField colName="" fieldIdRef="14" name="tipo_file" sqlTabName="" table_alias_name="" uid="{2625d166-8ae4-40ba-8c98-b63959226091}"/>
<RecordField colName="" fieldIdRef="13" name="bodega" sqlTabName="" table_alias_name="" uid="{7259791e-22b5-4ad9-af0d-5c1a15431884}"/>
<RecordField colName="" fieldIdRef="9" name="num_doc" sqlTabName="" table_alias_name="" uid="{e07c2ca3-f189-460f-bca2-4160aeaf3603}"/>
<RecordField colName="" fieldIdRef="10" name="nombre_file" sqlTabName="" table_alias_name="" uid="{da86dc36-f8f4-49d6-98da-9a5dbfebc122}"/>
<RecordField colName="" fieldIdRef="5" name="filedestino" sqlTabName="" table_alias_name="" uid="{0824abdb-aad8-42df-a551-498e071972e3}"/>
</Record>
<Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="Undefined" order="" uid="{e2779447-0bf3-4d41-a635-723e9b60ef9e}" where="">
<RecordField colName="num_oc" fieldIdRef="0" name="num_oc" sqlTabName="formonly" table_alias_name="" uid="{45b05c08-b034-442d-b38e-a2de4dfcd2f2}"/>
<RecordField colName="nombre_cliente" fieldIdRef="2" name="nombre_cliente" sqlTabName="formonly" table_alias_name="" uid="{404b2478-4170-40a3-89bb-b14254bf77ab}"/>
<RecordField colName="cotizacion_no" fieldIdRef="1" name="cotizacion_no" sqlTabName="formonly" table_alias_name="" uid="{ec988639-4079-46a2-8092-585ff3b738e0}"/>
<RecordField colName="vendedor" fieldIdRef="3" name="vendedor" sqlTabName="formonly" table_alias_name="" uid="{9ca1cf9f-8e2f-4212-bfe7-a8d332c15d3f}"/>
<RecordField colName="" fieldIdRef="4" name="ruta_file" sqlTabName="" table_alias_name="" uid="{7c810627-5919-499f-b195-d9734f2c59cf}"/>
</Record>
<Form gridHeight="35" gridWidth="127" name="prfmmt012" text="DIBUJOS">
<VBox gridHeight="32" gridWidth="124" name="VBox1" posX="3" posY="0">
<Grid gridHeight="12" gridWidth="124" name="Grid1" posX="0" posY="1">
<Group gridHeight="7" gridWidth="80" name="Group1" posX="1" posY="1">
<Label posX="2" posY="1" text="ORDEN"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="num_oc" columnCount="" fieldId="0" gridHeight="1" gridWidth="7" name="num_oc" posX="15" posY="1" rowCount="" sqlTabName="formonly" stepX="" stepY="" tabIndex="1" table_alias_name="" widget="Edit"/>
<Label posX="26" posY="1" text="CLIENTE"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="nombre_cliente" columnCount="" fieldId="2" gridHeight="1" gridWidth="42" name="nombre_cliente" posX="35" posY="1" rowCount="" sqlTabName="formonly" stepX="" stepY="" tabIndex="2" table_alias_name="" widget="Edit"/>
<Label posX="2" posY="2" text="COTIZACION"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="cotizacion_no" columnCount="" fieldId="1" gridHeight="1" gridWidth="7" name="cotizacion_no" posX="15" posY="2" rowCount="" sqlTabName="formonly" stepX="" stepY="" tabIndex="3" table_alias_name="" widget="Edit"/>
<Label posX="26" posY="2" text="VENEDOR"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="vendedor" columnCount="" fieldId="3" gridHeight="1" gridWidth="42" name="vendedor" posX="35" posY="2" rowCount="" sqlTabName="formonly" stepX="" stepY="" tabIndex="4" table_alias_name="" widget="Edit"/>
<Button gridHeight="1" gridWidth="10" image="fileopen" name="dibujo" posX="2" posY="4" tabIndex="7"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="4" gridHeight="1" gridWidth="64" name="ruta_file" noEntry="true" posX="2" posY="5" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="8" table_alias_name="" title="Edit1" widget="Edit"/>
</Group>
</Grid>
<Group gridHeight="18" gridWidth="124" name="Group2" posX="0" posY="13" text="Documentos">
<Grid gridHeight="7" gridWidth="89" name="Grid2" posX="4" posY="2">
<Button gridHeight="1" gridWidth="10" image="diropen" name="abrir" posX="39" posY="1" tabIndex="13"/>
<Table gridHeight="5" gridWidth="88" name="Table1" posX="1" posY="2" totalRows="4" unitWidth="characters" width="25">
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="11" gridHeight="1" gridWidth="8" name="idx" noEntry="true" posX="0" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="6" table_alias_name="" title="ID" widget="Edit"/>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="14" gridHeight="1" gridWidth="8" items="CONDUCES, FACTURA, OTROS, DEVOLUCIONES, DIBUJOS" name="tipo_file" posX="8" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="11" table_alias_name="" title="Tipo File" widget="ComboBox">
<Item lstrtext="false" name="CO" text="CONDUCES"/>
<Item lstrtext="false" name="FT" text="FACTURA"/>
<Item lstrtext="false" name="OT" text="OTROS"/>
<Item lstrtext="false" name="DE" text="DEVOLUCIONES"/>
<Item lstrtext="false" name="DI" text="DIBUJOS"/>
</ComboBox>
<ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="13" gridHeight="1" gridWidth="8" items="" name="bodega" posX="16" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="10" table_alias_name="" title="bodega" widget="ComboBox"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="9" gridHeight="1" gridWidth="8" name="num_doc" posX="24" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="9" table_alias_name="" title="Numero Documento" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="10" gridHeight="1" gridWidth="20" name="nombre_file" noEntry="true" posX="32" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="12" table_alias_name="" title="Nombre Archivo" widget="Edit"/>
<Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="5" gridHeight="1" gridWidth="20" name="filedestino" noEntry="true" posX="52" posY="0" rowCount="" scroll="true" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="File Servidor" widget="Edit"/>
</Table>
</Grid>
</Group>
</VBox>
</Form>
<DiagramLayout>
<![CDATA[AAAAAgAAAEwAewA5AGMAYQAxAGMAZgA5AGYALQA4AGUAMgBmAC0ANAAyADEAMgAtAGIAZgBlADcALQBhADgAZAAzADMAMgBjADEANQBkADMAZgB9QCAAAAgAAAFAVJmZo+ZmaAAAAAAAAAAAAQAAAEwAewA0ADAANABiADIANAA3ADgALQA0ADEANwAwAC0ANAAwAGEAMwAtADgAOQBiAGIALQBiADEANAAyADUANABiAGYANwA3AGEAYgB9QCAAAAgAAAFAR5mZpWZmaAAAAAAAAAAAAQAAAEwAewBlAGMAOQA4ADgANgAzADkALQA0ADAANwA5AC0ANAA2AGEAMgAtADgAMAA5ADIALQA1ADgANQBmAGYAMwBiADcAMwA4AGUAMAB9QCAAAAgAAAFAUDMzO0zMzgAAAAAAAAAAAQAAAEwAewAyADYAMgA1AGQAMQA2ADYALQA4AGEAZQA0AC0ANAAwAGIAYQAtADgAYwA5ADgALQBiADYAMwA5ADUAOQAyADIANgAwADkAMQB9QCAAAAgAAAFAR5mZpWZmaAAAAAAAAAAAAQAAAEwAewA0ADUAYgAwADUAYwAwADgALQBiADAAMwA0AC0ANAA0ADIAZAAtAGIAMwA4AGUALQBhADIAZABlADQAZABmAGMAZAAyAGYAMgB9QCAAAAgAAAFAPZmZqGZmaAAAAAAAAAAAAQAAAEwAewBkAGEAOAA2AGQAYwAzADYALQBmADgAZgA0AC0ANAA5AGQANgAtADkAOABkAGEALQA5AGEANQBkAGIAZgBlAGIAYwAxADIAMgB9QCAAAAgAAAFAWQAADIAAAgAAAAAAAAAAAQAAAEwAewAyADgAOAAyADUAOAAyADIALQAwADIAZABjAC0ANAAwADkAZgAtAGEANgBjAGMALQA1ADgAZgAzADkANgAzAGIAMwBhADUAYwB9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAEwAewA3ADIANQA5ADcAOQAxAGUALQAyADIAYgA1AC0ANABhAGQAOQAtAGEAZgAwAGQALQA1AGMAMQBhADEANQA0ADMAMQA4ADgANAB9QCAAAAgAAAFAUDMzO0zMzgAAAAAAAAAAAQAAAEwAewBlADIANwA3ADkANAA0ADcALQAwAGIAZgAzAC0ANABkADQAMQAtAGEANgAzADUALQA3ADIAMwBlADkAYgA2ADAAZQBmADkAZQB9QCAAACQAACRAIAAAJAAAJAAAAAAAAAAAAQAAAEwAewBiADYAYQA4AGUANwAxADgALQBjAGYAMQBiAC0ANABhADAAMAAtADkAYQA0AGMALQBhAGIAYgBmADQAYgA3ADQANAA4ADMAYwB9QCAAAAgAAAFAPZmZqGZmaAAAAAAAAAAAAQAAAEwAewA3AGMAOAAxADAANgAyADcALQA1ADkAMQA5AC0ANAA5ADkAZgAtAGIAMQA5ADUALQBkADkANwAzADQAZgAyAGMANQA5AGMAZgB9QCAAAAgAAAFAWQAADIAAAgAAAAAAAAAAAQAAAEwAewBlADAANwBjADIAYwBhADMALQBmADEAOAA5AC0ANAA2ADAAZgAtAGIAYwBhADIALQA0ADEANgAwAGEAZQBhAGYAMwA2ADAAMwB9QCAAAAgAAAFAVJmZo+ZmaAAAAAAAAAAAAQAAAEwAewAwADgAMgA0AGEAYgBkAGIALQBhAGEAZAA4AC0ANAAyAGQAZgAtAGEANQA1ADEALQA0ADkAOABlADAANwAxADkANwAyAGUAMwB9QCAAAAgAAAFAXWZmdRmZmwAAAAAAAAAAAQ==]]>
</DiagramLayout>
</ManagedForm>
+30
View File
@@ -0,0 +1,30 @@
SCHEMA decomarmol
LAYOUT (TEXT="DIBUJOS")
GRID
{
<G >
ORDEN [f1 ] CLIENTE [f3 ]
COTIZACION [f2 ] VENEDOR [f4 ]
<t > <G "Archivos" >
[f5 ]
[f5 ] [f6 ]
[f5 ]
[f5 ]
}
END
ATTRIBUTES
f1 = formonly.num_oc;
f2 = formonly.cotizacion_no;
f3 = formonly.nombre_cliente;
f4 = formonly.vendedor;
BUTTONEDIT f5 = formonly.ruta,SCROLL,IMAGE="open",ACTION=dibujo;
IMAGE f6 = formonly.imagen,STRETCH = BOTH,AUTOSCALE;
instructions
SCREEN RECORD sdibujo (ruta)
END
+30
View File
@@ -0,0 +1,30 @@
SCHEMA decomarmol
LAYOUT (TEXT="DIBUJOS")
GRID
{
<G >
ORDEN [f1 ] CLIENTE [f3 ]
COTIZACION [f2 ] VENEDOR [f4 ]
<t > <G "Dibujos" >
[f5 ]
[f5 ] [f6 ]
[f5 ]
[f5 ]
}
END
ATTRIBUTES
f1 = formonly.num_oc;
f2 = formonly.cotizacion_no;
f3 = formonly.nombre_cliente;
f4 = formonly.vendedor;
BUTTONEDIT f5 = formonly.ruta,SCROLL,IMAGE="open",ACTION=dibujo;
IMAGE f6 = formonly.imagen,STRETCH = BOTH,AUTOSCALE;
instructions
SCREEN RECORD sdibujo (ruta)
END
+29
View File
@@ -0,0 +1,29 @@
database marmotech
screen size 24 by 80
{
num_oc [f000 ]
cod_n [f001 ]
cod_grupo [f002 ]
cod_tipo [f003 ]
cod_sec [f004 ]
cantidad [f005 ]
us_crea [f006 ]
fech_crea [f007 ]
us_mod [f008 ]
fech_mod [f009 ]
}
end
tables
prtb00008
attributes
f000 = prtb00008.num_oc;
f001 = prtb00008.cod_n;
f002 = prtb00008.cod_grupo;
f003 = prtb00008.cod_tipo;
f004 = prtb00008.cod_sec;
f005 = prtb00008.cantidad;
f006 = prtb00008.us_crea;
f007 = prtb00008.fech_crea;
f008 = prtb00008.us_mod;
f009 = prtb00008.fech_mod;
end
+50
View File
@@ -0,0 +1,50 @@
database marmotech
screen size 24 by 80
{
Orden No. [f000 ] Fecha: [f001 ] Tipo Producto [p ]
Cliente [f0][f003] [b1 ]
Vendedor [v1 ] [ve ]Orden Pedido[or1 ]
Producto A Producir: [a][b][c ][d ][a1 ]
Unidad de Medida : [und ] Cantidad [f008 ]Fecha Termina[fe ]
\g--------------------------------------------------------------------------\g
COMPOSICION PRODUCTO...
\g--------------------------------------------------------------------------\g
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
[e][f][g ][h ][a2 ][f10 ][f9 ]
}
end
tables
prtb00007,prtb00008,vetb00004,iptb00002
attributes
v1 = prtb00007.sec_vend,comments = "Control-W Para Buscar Vendedores";
ve = formonly.nombre_vend,reverse,noentry;
f000 = prtb00007.num_oc;
f001 = prtb00007.fecha,required,format="dd/mm/yyyy";
or1 = prtb00007.orden_pedido,comments = "Introduzca Numero Orden Pedido";
f0 = prtb00007.tipo_cliente,required,comments = "Control-W Busca CLientes";
f003 = prtb00007.sec_cliente,required,comments = "Control-W Busca CLientes";
b1 = vetb00004.nombre,reverse;
a = prtb00007.cod_n,required,comments="Control-W Busca Producto";
b = prtb00007.cod_grupo,required,comments="Control-W Busca Producto";
c = prtb00007.cod_tipo,required,comments="Control-W Busca Producto";
d = prtb00007.cod_sec,required,comments="Control-W Busca Producto";
a1 = iptb00002.descrip_esp,reverse;
fe = prtb00007.fecha_termina,format = "dd/mm/yyyy";
und=formonly.unidad,reverse;
f008 = prtb00007.cantidad,required;
p = formonly.descrip,noentry,reverse;
e = formonly.cod_n_c,comments = "Digite Materia Prima";
f = formonly.cod_grupo_c,comments = "Digite Materia Prima";
g = formonly.cod_tipo_c,comments = "Digite Materia Prima";
h = formonly.cod_sec_c,comments = "Digite Materia Prima";
a2=formonly.descrip_esp_c,reverse,noentry;
f9= formonly.cantidad_c type decimal(12,3),comments= "Cantidad de Material A Usarse";
f10 = formonly.unidad_c type CHAR,reverse,noentry;
instructions
screen record s_orden[5]
(cod_n_c,cod_grupo_c,cod_tipo_c,cod_sec_c,cantidad_c,descrip_esp_c,unidad_c)
end
+68
View File
@@ -0,0 +1,68 @@
database marmotech
screen size 24 by 80
{
Orden No. [f000 ] Fecha Oc.: [f001 ]
Cliente [f0|f003] [b1 ]
Vendedor [v1 ] [ve ]
Direccion [a ]
Telefono [b ] Fax [c ] Fecha de Entrega [fe ]
Condiciones [d ] [f20 ] Balance [f09 ]
\g--------------------------------------------------------------------------\g
Codigo Descripcion Bisel Cant. Precio Desc. Total
\g--------------------------------------------------------------------------\g
[e|f|g |h ] [a2 ][b ][f22 ][f10 ][f9 ] [f11 ]
Total de Material [f12 ]
Instalacion Tope Cantidad [f13 ] Precio [f14 ]
Mano Obra [un ] Cantidad [f15 ] Precio [f16 ]
Transporte [f17 ] Itbis [f18 ]
}
end
tables
prtb00012,vetb00004,prtb00013
attributes
f000 = prtb00012.num_oc,noentry;
f001 = prtb00012.fecha_oc,required,format="dd/mm/yyyy";
f0 = prtb00012.tipo_cliente,required,comments = "Control-W Busca CLientes";
f003 = vetb00004.sec_cliente,required,comments = "Control-W Busca CLientes";
b1 = vetb00004.nombre,reverse,noentry;
a = prtb00012.direccion,upshift;
b = prtb00012.telefono;
c = prtb00012.fax;
d = prtb00012.cond_pago,comments =
"Digite la Condicion de Pago";
f20 = formonly.descrip_p,noentry;
fe = prtb00012.fecha_entrega,format = "dd/mm/yyyy";
f09 = formonly.balance,noentry;
v1 = prtb00012.sec_vend,comments = "Control-W Para Buscar Vendedores";
ve = formonly.nombre_vend,reverse,noentry;
e = prtb00013.cod_n;
f = prtb00013.cod_grupo;
g = prtb00013.cod_tipo;
h = prtb00013.cod_sec;
a2 = formonly.descrip_esp,noentry;
b = prtb00013.bisel,UPSHIFT,INCLUDE = ("DBN","SDN"),comments =
"Digite DBN o SDN";
f22 = formonly.cantidad type Decimal(5,2);
f10 = formonly.precio type Decimal(5,2);
f9 = formonly.descuento type Decimal(3,2);
f11 = formonly.total_p type Decimal(8,2),noentry;
f12 = formonly.sub_total,noentry;
f13 = prtb00013.cantidad_i,comments =
"Digite la cantidad de Metros en Instalacion de Topes";
f14 = prtb00013.precio_i,comments =
"Digite el precio de Instalacion de Tope";
un = formonly.unidad_med,noentry;
f15 = prtb00013.cantidad_mo,comments =
"Digite la cantidad de Metro a instalar";
f16 = prtb00013.precio_mo,comments =
"Digite el precio por Metro de Instalacion";
f17 = prtb00012.transporte,comments =
"Digite el Costo del Transporte del Producto";
f18 = prtb00012.itbis,noentry;
instructions
screen record s_pedido[1]
(cod_n, cod_grupo, cod_tipo, cod_sec, descrip_esp, bisel,
cantidad, precio, descuento, total_p)
end
+27
View File
@@ -0,0 +1,27 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT001
OBJETIVO : Captura Informacion Rango de Fehca para La Semana (PRPRMT001)
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Sept. 14, 1994
-----------------------------------------------------------------------------
}
database decomarmol
screen size 24 by 80
{
No. Semana [n1 ]
Del [f005 ] Al [f006 ]
}
end
tables
prtb00002
attributes
n1 = formonly.num_semana;
f005 = prtb00002.semana_del,format = "dd/mm/yy";
f006 = prtb00002.semana_al,format = "dd/mm/yy";
instructions
delimiters " "
end
+26
View File
@@ -0,0 +1,26 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT001
OBJETIVO : Captura Informacion Rango de Fehca para La Semana (PRPRMT001)
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Sept. 14, 1994
-----------------------------------------------------------------------------
}
database marmotech
screen size 24 by 80
{
No. Semana [n1 ]
Del [f005 ] Al [f006 ]
}
end
tables
prtb00002
attributes
n1 = formonly.no_semana;
f005 = formonly.fecha1 type date,format = "dd/mm/yy";
f006 = formonly.fecha2 type date,format = "dd/mm/yy";
instructions
delimiters " "
end
+15
View File
@@ -0,0 +1,15 @@
database marmotech
screen
{
fecha Inicial [k ]
fecha Final [p ]
}
end
tables
intb00006
attributes
k = formonly.fecha_inicial type date,format = "dd/mm/yy";
p = formonly.fecha_final type date, format = "dd/mm/yy";
instructions
delimiters " "
end
+24
View File
@@ -0,0 +1,24 @@
{
# SISTEMA : SISTEMA DE PRODUCCION
# FORMULARIO : PRFMRP006.PER
# PROCESO : CAPTURA DE PARAMENTROS PARA IMPRESION DEL PROGRMA
# PRPRRP006.4GL (PROD./HORA TOTALES COMPARATIVO)
# AUTOR : TADEO A. FERRERAS
# FECHA : NOVIEMBRE 02, 1994
}
database marmotech
screen
{
Ano [k ]
Mes [p ]
}
end
tables
intb00006
attributes
k = formonly.ano type smallint,autonext,
comments = "Digite el ano para impresion";
p = formonly.mes type smallint,comments = "Digite el mes para impresion";
instructions
delimiters " "
end
+28
View File
@@ -0,0 +1,28 @@
{
# SISTEMA : SISTEMA DE PRODUCCION
# FORMULARIO : PRFMRP007.PER
# PROCESO : CAPTURA DE PARAMENTROS PARA IMPRESION DEL PROGRAMA
# PRPRRP007.4GL (PROD. ACUMULADA EN RANGO DE ANOS)
# AUTOR : TADEO A. FERRERAS
# FECHA : NOVIEMBRE 02, 1994
}
database marmotech
screen
{
Ano Inicial[k ]
Ano Final [k1 ]
Mes Final [p ]
}
end
tables
intb00006
attributes
k = formonly.ano type smallint,autonext,
comments = "Digite el Ano Inicial Para Impresion";
k1 = formonly.ano_f type smallint,autonext,
comments = "Digite el Ano Final Para Impresion";
p = formonly.mes type smallint,comments = "Digite el mes para impresion";
instructions
delimiters " "
end
+15
View File
@@ -0,0 +1,15 @@
{
}
database marmotech
screen
{
Fecha [k ]
}
end
tables
intb00006
attributes
k = formonly.fecha type date,format="dd/mm/yy",
comments = "Digite fecha de corte para impresion";
end
+25
View File
@@ -0,0 +1,25 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT011
OBJETIVO : Controlar informacion para el reporte de RESUEM MENSUAL DE
PRODUCCION.
PROGRAMA UTILI. : PRPRRP011
REALIZADO POR : Juan F. Soto
FECHA : Noviembre 7, 1994.
-----------------------------------------------------------------------------
}
database marmotech
screen size 24 by 80
{
Ano Requerido [a1 ]
}
end
tables
prtb00002
attributes
a1 = formonly.k_ano,required;
instructions
delimiters " "
end
+23
View File
@@ -0,0 +1,23 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT013
OBJETIVO : Validacion de Maestra de Operacion
PROGRAMA UTILI. : PRPRRP013
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Noviembre 7, 1994.
-----------------------------------------------------------------------------
}
database marmotech
screen size 24 by 80
{
Operacion(es) [a1 ]
}
end
tables
prtb00005
attributes
a1 = prtb00005.codigo,comments = "Digite el (los) codigo(s) de Operacion(es)";
instructions
delimiters " "
end
+54
View File
@@ -0,0 +1,54 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT016
OBJETIVO : ORDENES DE PRODUCCION
PROGRAMA UTILI. : PRPRRP016
REALIZADO POR : Juan F. Soto
FECHA : Noviembre 7, 1998.
-----------------------------------------------------------------------------
}
database decomarmol
ACTION DEFAULTS
ACTION ejecutar (TEXT ="Genera Reporte",IMAGE="print")
END
LAYOUT (TEXT='STATUS ORDENES PEDIDOS')
GRID
{
Cotizacion [c ]
Orden [o1 ] Status Orden[st ]
Vendedor [v1 ] [hh ]
Fecha [f1 ]
Codigo Cliente [c2 ]-[c3 ]
Nombre Cliente [n ]
Telefono Res. [t ]
Producto [x1 ][x2 ][x3 ][x4 ]
Salida Reporte [s ]
Visualizacion [v ]
}
END
END
tables
prtb00007
ATTRIBUTES
RADIOGROUP hh = formonly.historico, ITEMS=(('H','HISTORICO'),('N','ACTUAL')),DEFAULT='N';
x1 = formonly.cod_n;
x2 = formonly.cod_grupo;
x3 = formonly.cod_tipo;
x4 = formonly.cod_Sec;
c = formonly.cotizacion_no,comments="Digite un numero de cotizacion o deje en blanco para todas";
n = formonly.nombre_cliente,comments="Utilice el simbolo (*) para buscar nombres similares al que desea";
c2 = formonly.tipo_cliente;
c3 = formonly.sec_cliente;
t = formonly.telefono_r;
COMBOBOX st = formonly.cerrada,ITEMS=(("S","Cerrada"),("N","Abiertas"));
DATEEDIT f1 = formonly.fecha type date,format = "dd/mm/yyyy";
o1 = formonly.num_oc,comments="Digite un numero de orden o deje en blanco para todas";
v1 = formonly.sec_vend,comments="Digite un numero de vendedor o deje en blanco para todos";
COMBOBOX s=formonly.salida,ITEMS=(("prprrp016.4rp","Detallado"),("prprrp016a.4rp","Resumido")),default="Detallado";
COMBOBOX v=formonly.visualiza,ITEMS=(("SVG","PANTALLA"),("PDF","ACROBAT READER")),default="PANTALLA";
instructions
delimiters " "
end
+32
View File
@@ -0,0 +1,32 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT016
OBJETIVO : ORDENES DE PRODUCCION
PROGRAMA UTILI. : PRPRRP016
REALIZADO POR : Juan F. Soto
FECHA : Noviembre 7, 1998.
-----------------------------------------------------------------------------
}
database marmotech
screen size 24 by 80
{
Fecha Inicial [f1 ]
Fecha Final [f2 ]
Orden [o1 ]
Vendedor [v1 ]
Pendiente [pe]
}
end
tables
prtb00007,prtb00009
attributes
pe = prtb00009.pendiente;
f1 = formonly.fecha_inicial type date,format = "dd/mm/yyyy";
f2 = formonly.fecha_final type date,format = "dd/mm/yyyy";
o1 = prtb00007.num_oc;
v1 = formonly.sec_vend;
instructions
delimiters " "
end
+34
View File
@@ -0,0 +1,34 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT018
OBJETIVO : ORDENES DE PRODUCCION
PROGRAMA UTILI. : PRPRRP016
REALIZADO POR : Juan F. Soto
FECHA : Noviembre 7, 1998.
-----------------------------------------------------------------------------
}
database marmotech
LAYOUT (TEXT="INFORME ORDENES PEDIDOS",STYLE="BASIC")
GRID
{
<G >
Fecha Inicial [f1 ]
Fecha Final [f2 ]
<G >
Orden [o1 ]
Vendedor [v1 ]
}
end
end
tables
prtb00007,prtb00009
attributes
DATEEDIT f1 = formonly.fecha_inicial type date,format = "dd/mm/yyyy";
DATEEDIT f2 = formonly.fecha_final type date,format = "dd/mm/yyyy";
o1 = prtb00007.num_oc;
v1 = formonly.sec_vend;
instructions
delimiters " "
end
+28
View File
@@ -0,0 +1,28 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT019
OBJETIVO : ORDENES DE PRODUCCION PENDIENTES
PROGRAMA UTILI. : PRPRRP019
REALIZADO POR : Victor Gomez C.
FECHA : Saturday, April 07, 2001
-----------------------------------------------------------------------------
}
database marmotech
screen size 24 by 80
{
Fecha Corte [f2 ]
Orden [o1 ]
Vendedor [v1 ]
}
end
tables
prtb00007
attributes
f2 = formonly.fecha_final type date,format = "dd/mm/yyyy";
o1 = prtb00007.num_oc;
v1 = formonly.sec_vend;
instructions
delimiters " "
end
+54
View File
@@ -0,0 +1,54 @@
{
-----------------------------------------------------------------------------
FORMULARIO : PRFMMT016
OBJETIVO : ORDENES DE PRODUCCION
PROGRAMA UTILI. : PRPRRP016
REALIZADO POR : Juan F. Soto
FECHA : Noviembre 7, 1998.
-----------------------------------------------------------------------------
}
database decomarmol
ACTION DEFAULTS
ACTION ejecutar (TEXT ="Genera Reporte",IMAGE="print")
END
LAYOUT (TEXT='STATUS ORDENES PEDIDOS')
GRID
{
Cotizacion [c ]
Orden [o1 ] Status Orden[st ]
Vendedor [v1 ] [hh ]
Fecha [f1 ]
Codigo Cliente [c2 ]-[c3 ]
Nombre Cliente [n ]
Telefono Res. [t ]
Producto [x1 ][x2 ][x3 ][x4 ]
Salida Reporte [s ]
Visualizacion [v ]
}
END
END
tables
prtb00007
ATTRIBUTES
RADIOGROUP hh = formonly.historico, ITEMS=(('H','HISTORICO'),('N','ACTUAL')),DEFAULT='N';
x1 = formonly.cod_n;
x2 = formonly.cod_grupo;
x3 = formonly.cod_tipo;
x4 = formonly.cod_Sec;
c = formonly.cotizacion_no,comments="Digite un numero de cotizacion o deje en blanco para todas";
n = formonly.nombre_cliente,comments="Utilice el simbolo (*) para buscar nombres similares al que desea";
c2 = formonly.tipo_cliente;
c3 = formonly.sec_cliente;
t = formonly.telefono_r;
COMBOBOX st = formonly.cerrada,ITEMS=(("S","Cerrada"),("N","Abiertas"));
DATEEDIT f1 = formonly.fecha type date,format = "dd/mm/yyyy";
o1 = formonly.num_oc,comments="Digite un numero de orden o deje en blanco para todas";
v1 = formonly.sec_vend,comments="Digite un numero de vendedor o deje en blanco para todos";
COMBOBOX s=formonly.salida,ITEMS=(("prprrp116.4rp","Detallado"),("prprrp016a.4rp","Resumido")),default="Detallado";
COMBOBOX v=formonly.visualiza,ITEMS=(("SVG","PANTALLA"),("PDF","ACROBAT READER")),default="PANTALLA";
instructions
delimiters " "
end
+31
View File
@@ -0,0 +1,31 @@
DATABASE marmotech
SCREEN SIZE 24 by 80
{
Busqueda de Composicion Producto
\g-----------------------------------------------------\g
Codigo Descripcion
\g-----------------------------------------------------\g
[f]-[g]-[h ]-[i ] [f2 ]
[f]-[g]-[h ]-[i ] [f2 ]
[f]-[g]-[h ]-[i ] [f2 ]
[f]-[g]-[h ]-[i ] [f2 ]
[f]-[g]-[h ]-[i ] [f2 ]
}
end
tables
intb00001
attributes
f = formonly.cod_n,noentry;
g = formonly.cod_grupo,noentry;
h = formonly.cod_tipo,noentry;
i = formonly.cod_sec,noentry;
f2 = intb00001.descrip_esp, upshift,
comments = " <Esc> Busca todos los Productos Terminados ";
instructions
screen record s_pilas[5] (cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp)
delimiters " "
end
+18
View File
@@ -0,0 +1,18 @@
database decomarmol
screen size 24 by 80
{
OBSERVACIONES DE ORDENES
\g-----------------------------------------------------\g
[a ]
[a ]
[a ]
[a ]
}
end
tables
prtb00014
attributes
a = prtb00014.observacion, WORDWRAP;
end
+30
View File
@@ -0,0 +1,30 @@
DATABASE marmotech
SCREEN SIZE 24 by 80
{
Despachos Parciales
\g-----------------------------------------------------\g
Numero Codigo Cantidad Fecha
\g-----------------------------------------------------\g
[nc ][f]-[g]-[h ]-[i ][ca ][fe ]
[nc ][f]-[g]-[h ]-[i ][ca ][fe ]
[nc ][f]-[g]-[h ]-[i ][ca ][fe ]
[nc ][f]-[g]-[h ]-[i ][ca ][fe ]
[nc ][f]-[g]-[h ]-[i ][ca ][fe ]
}
end
tables
prtb00015
attributes
nc = prtb00015.num_oc,noentry;
f = prtb00015.cod_n,autonext;
g = prtb00015.cod_grupo,autonext;
h = prtb00015.cod_tipo,autonext;
i = prtb00015.cod_sec,autonext;
ca = prtb00015.cantidad;
fe = prtb00015.fecha, format = "dd/mm/yyyy";
instructions
screen record sprtb15[5] (num_oc,cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,fecha)
delimiters " "
end
+54
View File
@@ -0,0 +1,54 @@
{
=============================================================================
FORMULARIO : PRFMWD004
OBJETIVO : DESPIECE PRODUCTOS
PROGRAMA Q. LO USA : PRPRMT008
AUTOR : JUAN F. SOTO
FECHA : JUNIO 16, 2008
=============================================================================
}
DATABASE decomarmol
LAYOUT (TEXT="DESPIECE")
GRID
{
DESCRIPCION:[des ][und ]
<G "Despiece" >
<t >
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][a1 ][a ][b ][c ][d ][l1 ][l2 ][l3 ][c1 ][m ]
============
[t1 ]
}
end
end
tables
vetb00004
attributes
et = formonly.etiqueta,upshift,scroll,TITLE="ETIQUETA";
t1 = formonly.total_medida;
des = formonly.descrip_esp;
und = formonly.unidad_med;
a1 = formonly.area,TITLE="AREA";
a = formonly.cod_n,noentry,TITLE="CODIGO";
b = formonly.cod_grupo,noentry;
c = formonly.cod_tipo,noentry;
d = formonly.cod_sec,noentry;
l1 = formonly.lado_1,TITLE="LADO1";
l2 = formonly.lado_2,TITLE="LADO2";
l3 = formonly.lado_3,TITLE="LADO3";
c1 = formonly.cantidad,TITLE="CANTIDAD";
m = formonly.medida,TITLE="MEDIDA";
instructions delimiters " "
screen record sdespiece[8](etiqueta,area,cod_n,cod_grupo,cod_tipo,cod_sec,lado_1,lado_2,lado_3,cantidad,medida)
end
+27
View File
@@ -0,0 +1,27 @@
database decomarmol
screen size 24 by 80
{
BUSQUEDA SEMI-ELABORADOS
\g----------------------------------------------\g
CODIGO DESCRIPCION MEDIDA
\g---------------------------------------------\g
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
}
end
tables
cttb00001
attributes
a = formonly.cod_prod;
d = formonly.descripcion;
d1 = formonly.unidad_med;
instructions
screen record sprod[7] (cod_prod,descripcion,unidad_med)
delimiters " "
end
+27
View File
@@ -0,0 +1,27 @@
database decomarmol
screen size 24 by 80
{
BUSQUEDA EMPLEADOS
\g---------------------------------------------------\g
Ficha Nombre Apellido
\g---------------------------------------------------\g
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
[a ][d ][d1 ]
}
end
tables
cttb00001
attributes
a = formonly.num_emp;
d = formonly.nom1_emp,upshift;
d1 = formonly.apell1_emp;
instructions
screen record sficha[7] (num_emp,nom1_emp,apell1_emp)
delimiters " "
end
+57
View File
@@ -0,0 +1,57 @@
{
=============================================================================
FORMULARIO : IPFMWD009
OBJETIVO : Desplegar los codigos y nombres de la maestra de
clientes
PROGRAMA Q. LO USA : IPPRMT044
AUTOR : JUAN F. SOTO
FECHA : FEBRERO 6, 1999
=============================================================================
}
DATABASE decomarmol
SCREEN
{
DESCRIPCION:[cod ][des ][und ]
\g------------------------------------------------------------------------------\g
--MEDIDA RECIBIDAS---
Bloque Lado 1 Lado 2 Lado 3 Cantidad Medidas
\g------------------------------------------------------------------------------\g
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
[et ][b ] [c ] [d ][l1 ][l2 ][l3 ][c1 ][m ]
============
[t1 ]
}
end
tables
vetb00004
attributes
cod = formonly.cod_prod;
et = formonly.codigo_bloque,noentry;
t1 = formonly.total_medida;
des = formonly.descripcion;
und = formonly.medida;
b = formonly. ancho1;
c = formonly.largo1;
d = formonly.espesor1;
l1 = formonly.medida1;
l2 = formonly.ancho2;
l3 = formonly.largo2;
c1 = formonly.espesor2;
m = formonly.medida2;
m1 = formonly.cantidad;
instructions delimiters " "
screen record sdespiece[8](codigo_bloque,cod_,ancho1,largo1,espesor1,medida1,ancho2,largo2,
espesor2,medida2,cantidad)
end
+106
View File
@@ -0,0 +1,106 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRMN00000
OBJETIVO : Menu Principal del Sistema de Produccion
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Sept. 14,1994.
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
# WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL pantalla()
CALL opciones_prmn00000()
END MAIN
FUNCTION opciones_prmn00000()
DEFINE luz CHAR(5)
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
DISPLAY " Menu Principal " AT 6,22
DISPLAY "prmn00000" AT 4,3 ATTRIBUTE(blue)
DISPLAY "1- Mantenimientos prmnmt000" AT 10,6
DISPLAY "2- Consultas prmncs000" AT 11,6
DISPLAY "3- Reportes prmnrp000" AT 12,6
DISPLAY "S- Retorna Menu Anterior " AT 14,6
ATTRIBUTE (BOLD)
LET opcion = " "
LABEL vuelve:
PROMPT " OPCION: " FOR opcion HELP 1
LET opcion = upshift(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(p_user,opcion,"prmn00000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
RUN "fglrun %FGLPROG%\\prmnmt000"
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmn00000()
WHEN opcion = "2"
RUN "fglrun %FGLPROG%\\prmncs000"
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmn00000()
WHEN opcion = "3"
RUN "fglrun %FGLPROG%\\prmnrp000"
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmn00000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL opciones_prmn00000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5)
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l
ATTRIBUTE (REVERSE,blue)
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY fecha AT 4,70 ATTRIBUTE (blue)
DISPLAY "Sistema de Produccion" AT 5,29
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
+94
View File
@@ -0,0 +1,94 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRMNCS000
OBJETIVO : Menu de Consultas del Sistema de Produccion
PROGRAMADOR : Victor Gomez
FECHA REALIZACION : Wednesday, 28 February, 2001
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL pantalla()
CALL opciones_prmncs000()
END MAIN
FUNCTION opciones_prmncs000()
DEFINE luz CHAR(5)
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
CALL pantalla()
DISPLAY " CONSULTAS " AT 6,22
DISPLAY "prmnmt000" AT 4,3 ATTRIBUTE(blue)
DISPLAY "1- Consulta de Ordenes prprcs001" AT 10,6
DISPLAY "S- Retorna Menu Anterior " AT 20,6
ATTRIBUTE (BOLD)
LET opcion = " "
LABEL vuelve:
PROMPT " OPCION: " FOR opcion HELP 1
LET opcion = upshift(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(p_user,opcion,"prmnmt000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL prprcs001()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmncs000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL opciones_prmncs000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY fecha AT 4,68 ATTRIBUTE (blue)
DISPLAY "Sistema de Produccion" AT 5,29
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
+157
View File
@@ -0,0 +1,157 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRMNmt000
OBJETIVO : Menu de Mantenimiento del Sistema de Produccion
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Sept. 14,1994.
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
# WHENEVER ERROR CONTINUE
DEFER INTERRUPT
CALL pantalla()
CALL opciones_prmnmt000()
END MAIN
FUNCTION opciones_prmnmt000()
DEFINE p_user CHAR(9),
i smallint
DEFINE luz CHAR(5),
arrmenu dynamic array of record
chopciones CHAR(30),
programas CHAR(15),
imagenes CHAR(80)
END RECORD
OPEN WINDOW w1 WITH FORM "menuform"
DECLARE cmenu CURSOR FOR
SELECT descripcion,programa from dstb00001
LET i = 1
FOREACH cmenu INTO arrmenu[i].*
LET i = i +1
END FOREACH
DISPLAY ARRAY arrmenu TO smenu.*
CLOSE WINDOW w1
{
DISPLAY " Mantenimiento " AT 6,22
DISPLAY "prmnmt000" AT 4,3 ATTRIBUTE(blue)
DISPLAY "1- Maestra de Periodo de Semana prprmt001" AT 10,6
DISPLAY "2- Prod. Diaria Personal no Prod. prprmt002" AT 11,6
DISPLAY "3- Prod. Diaria Personal Product. prprmt003" AT 12,6
DISPLAY "4- Maestra de Operacion prprmt004" AT 13,6
DISPLAY "5- Departamentos de Planta prfmmt007" AT 14,6
DISPLAY "6- Orden De Produccion prprmt006" AT 15,6
DISPLAY "7- Monitoreo Status de la Orden prprmt007" AT 16,6
DISPLAY "8- Orden de Pedidos prprmt008" AT 17,6
DISPLAY "9- Maestra Areas prprmt010" AT 18,6
DISPLAY "S- Retorna Menu Anterior " AT 20,6
ATTRIBUTE (BOLD)
LET opcion = " "
LABEL vuelve:
PROMPT " OPCION: " FOR opcion HELP 1
LET opcion = upshift(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
CALL seg000(p_user,opcion,"prmnmt000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
# GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL prprmt001()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnmt000()
WHEN opcion = "2"
CALL prprmt002()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnmt000()
WHEN opcion = "3"
CALL prprmt003()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnmt000()
WHEN opcion = "4"
CALL prprmt004()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnmt000()
WHEN opcion = "5"
RUN "isql -fr prfmmt007"
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnmt000()
WHEN opcion = "6"
CALL prprmt006()
CLEAR SCREEN
CALL opciones_prmnmt000()
WHEN opcion = "7"
CALL prprmt007()
CLEAR SCREEN
CALL opciones_prmnmt000()
WHEN opcion = "8"
CALL prprmt008()
CLEAR SCREEN
CALL opciones_prmnmt000()
WHEN opcion = "9"
RUN "fglrun %FGLPROG%\\prprmt010"
CLEAR SCREEN
CALL opciones_prmnmt000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL opciones_prmnmt000()
END CASE
}
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l
ATTRIBUTE (REVERSE,blue)
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY fecha AT 4,68 ATTRIBUTE (blue)
DISPLAY "Sistema de Produccion" AT 5,29
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
+113
View File
@@ -0,0 +1,113 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRMNRP000
OBJETIVO : Menu de Reportes del Sistema de Produccion
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Sept. 14,1994.
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL pantalla()
CALL opciones_prmnrp000()
END MAIN
FUNCTION opciones_prmnrp000()
DEFINE luz CHAR(5)
OPTIONS
PROMPT LINE 8,
MESSAGE LINE 24
DISPLAY " Reportes " AT 6,22
DISPLAY "prmnrp000" AT 4,3 ATTRIBUTE(blue)
DISPLAY " 1-Ordenes De Produccion prprrp016" AT 10,1
DISPLAY " 2-Monitoreo de las Ordenes prprrp017" AT 11,1
DISPLAY " 3-Control Ordenes Pedido prprrp018" AT 12,1
DISPLAY " 4-Control Ordenes Pendientes prprrp019" AT 13,1
DISPLAY " 5-Validacion Produccion Diariaprprrp004" AT 14,1
DISPLAY " S-Retorna Menu Anterior " AT 21,20
ATTRIBUTE (BOLD)
LET opcion = " "
LABEL vuelve:
PROMPT " OPCION: " FOR opcion HELP 1
LET opcion = upshift(opcion)
IF opcion != "S" THEN
SELECT unique usuario INTO p_user FROM seg0001
WHERE usuario = user
#CALL seg000(p_user,opcion,"prmnrp000") RETURNING luz
IF luz = "roja" THEN
ERROR "NO TIENE PERMISO PARA UTILIZAR OPCION"
GOTO vuelve
END IF
END IF
CASE
WHEN opcion = "1"
CALL prprrp016()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnrp000()
WHEN opcion = "2"
CALL prprrp017()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnrp000()
WHEN opcion = "3"
CALL prprrp018()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnrp000()
WHEN opcion = "4"
CALL prprrp019()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnrp000()
WHEN opcion = "5"
CALL prprrp004()
CLEAR SCREEN
CALL pantalla()
CALL opciones_prmnrp000()
WHEN opcion = "S" or opcion = "s"
RETURN
OTHERWISE
CALL opciones_prmnrp000()
END CASE
END FUNCTION
FUNCTION pantalla()
DEFINE fecha CHAR(10),
hora char(5)
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED)) / 2
LET fecha = today USING "dd/mm/yyyy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,blue)
LET fecha = today USING "dd/mm/yyyy"
DISPLAY fecha AT 4,68 ATTRIBUTE (blue)
DISPLAY "Sistema de Produccion" AT 5,29
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION integridad()
IF sqlca.sqlcode < 0 THEN
LET numero_msg = sqlca.sqlcode
CALL msg(numero_msg)
DISPLAY numero_msg AT 23,70
LET bandera = 1
LET status = 0
SLEEP 2
RETURN
END IF
RETURN
END FUNCTION
+230
View File
@@ -0,0 +1,230 @@
{
-----------------------------------------------------------------------------
PROGRAMA : prprcs001
OBJETIVO : Consulta de Ordenes
REALIZADO POR : Lic. Oscar Castillo
FECHA : Saturday, July 22, 2000
-----------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE balance2 DECIMAL(12,2),
tipo_orden STRING
DEFINE g_prtb09 RECORD
tipo_cliente LIKE vetb00004.tipo_cliente,
sec_cliente LIKE vetb00004.sec_cliente,
num_oc LIKE prtb00009.num_oc,
fecha LIKE prtb00009.fecha,
pendiente LIKE prtb00009.pendiente
END RECORD
DEFINE p_nombre LIKE vetb00004.nombre,
descrip_pend CHAR(10),
detalle LIKE prtb00009.detalle
DEFINE arr_prtb09 ARRAY[100] OF RECORD
m_fecha LIKE prtb00009.fecha,
hora LIKE prtb00009.fech_crea
END RECORD
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
CALL prprcs001()
END MAIN
###### Funcion que adiciona informacion referente a la aplicacion de un pago
FUNCTION prprcs001()
DEFINE porc_p DECIMAL(10,2)
DEFINE emp SMALLINT
DEFINE hoy DATE
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 22,
PROMPT LINE 23
# CALL pantalla()
OPEN FORM prfmcs001 FROM "prfmcs001"
DISPLAY FORM prfmcs001
DISPLAY "prprcs001" AT 4,3
DISPLAY "Ordenes de Compra" AT 6,33
DISPLAY "<CTRL-C> CANCELA OPERACION" AT 2,5 ATTRIBUTE (BOLD)
LET int_flag = FALSE
DIALOG ATTRIBUTES(UNBUFFERED)
INPUT BY NAME tipo_orden
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
END INPUT
CONSTRUCT BY NAME criterio ON a.tipo_cliente,a.sec_cliente,
a.num_oc,a.fecha
AFTER CONSTRUCT
IF tipo_orden = 'N' THEN
LET selec =
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
" a.fecha_oc,c.nombre,a.cotizacion_no ",
" FROM prtb00012 a,vetb00004 c ",
" WHERE a.tipo_cliente = c.tipo_cliente and ",
" a.sec_cliente = c.sec_cliente AND a.cerrada ='N'",
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
END IF
IF tipo_orden = 'S' THEN
LET selec =
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
" a.fecha_oc,c.nombre,a.cotizacion_no ",
" FROM prtb00012 a,vetb00004 c ",
" WHERE a.tipo_cliente = c.tipo_cliente and ",
" a.sec_cliente = c.sec_cliente AND a.cerrada ='N'",
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
END IF
IF tipo_orden = 'T' THEN
LET selec =
" SELECT a.tipo_cliente,a.sec_cliente,a.num_oc, ",
" a.fecha_oc,c.nombre,a.cotizacion_no ",
" FROM prtb00012 a,vetb00004 c ",
" WHERE a.tipo_cliente = c.tipo_cliente and ",
" a.sec_cliente = c.sec_cliente ",
" AND ",criterio CLIPPED, " ORDER BY a.num_oc "
END IF
END CONSTRUCT
ON ACTION close
RETURN
EXIT DIALOG
ON ACTION ejecuta
PREPARE comando FROM selec
DECLARE busca SCROLL CURSOR FOR comando
OPEN busca
END DIALOG
FETCH FIRST busca INTO g_prtb09.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
CALL buscando()
MENU "Opcion"
COMMAND "Siguiente"
FETCH NEXT busca INTO g_prtb09.*
IF STATUS = NOTFOUND THEN
FETCH LAST busca INTO g_prtb09.*
CALL buscando()
LET numero_msg = 5
CALL msg(numero_msg)
END IF
CALL buscando()
COMMAND "Anterior"
FETCH PREVIOUS busca INTO g_prtb09.*
IF STATUS = NOTFOUND THEN
FETCH FIRST busca INTO g_prtb09.*
CALL buscando()
LET numero_msg = 5
CALL msg(numero_msg)
END IF
CALL buscando()
COMMAND "Primero"
FETCH FIRST busca INTO g_prtb09.*
CALL buscando()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Ultimo"
FETCH LAST busca INTO g_prtb09.*
CALL buscando()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Ver"
DECLARE busca1 SCROLL CURSOR FOR
SELECT a.fecha,a.fech_crea
FROM prtb00009 a
WHERE a.num_oc = g_prtb09.num_oc
AND a.status_t IS NULL
ORDER BY 1
OPEN busca1
LET idx = 1
WHILE STATUS != NOTFOUND
FETCH ABSOLUTE idx busca1 INTO arr_prtb09[idx].*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET idx = idx + 1
END WHILE
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY arr_prtb09 TO s_orden.*
AFTER ROW
LET curr = arr_curr()
SELECT a.detalle INTO detalle
FROM prtb00009 a
WHERE a.fecha = arr_prtb09[curr].m_fecha
AND a.num_oc = g_prtb09.num_oc
AND a.fech_crea = arr_prtb09[curr].hora
DISPLAY BY NAME detalle
AFTER DISPLAY
EXIT DISPLAY
END DISPLAY
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
COMMAND "Retornar"
EXIT MENU
END MENU
END FUNCTION
FUNCTION buscando()
SELECT a.nombre INTO p_nombre FROM vetb00004 a
WHERE a.tipo_cliente = g_prtb09.tipo_cliente
AND a.sec_cliente = g_prtb09.sec_cliente
AND a.status_t IS NULL
IF g_prtb09.pendiente = "S" THEN
LET descrip_pend = "ABIERTA"
ELSE
LET descrip_pend = "CERRADA"
END IF
DISPLAY BY NAME g_prtb09.*,p_nombre,descrip_pend
END FUNCTION
+121
View File
@@ -0,0 +1,121 @@
{
==============================================================================
PROGRAMA : PRGBRP000
SISTEMA : SISTEMA DE PRODUCCION
PROCESO : DEFINICION DE VARIABLES GLOBALES
AUTOR : TADEO A. FERRERAS F.
FECHA : SEPT. 14, 1994.
==============================================================================
}
SCHEMA decomarmol
GLOBALS
DEFINE cttb01 RECORD LIKE cttb00001.*,
p_compania RECORD LIKE companias.*
DEFINE prtb02 RECORD LIKE prtb00002.*
DEFINE prtb03 RECORD LIKE prtb00003.*
DEFINE prtb05 RECORD LIKE prtb00005.*
DEFINE prtb06 RECORD LIKE prtb00006.*
DEFINE prtb07 RECORD LIKE prtb00007.*
DEFINE prtb08 RECORD LIKE prtb00012.*,
historico CHAR(1),
actualiza_log_produccion,actualiza_produccion VARCHAR(10)
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
DEFINE prtb09 RECORD
num_oc INT,
fecha CHAR(10),
fecha_fabricacion CHAR(10),
pendiente char(1),
detalle char(300),
status_t CHAR(1),
us_crea CHAR(50),
fech_crea DATETIME YEAR TO MINUTE,
us_mod CHAR(50),
fech_mod DATETIME YEAR TO MINUTE
END RECORD
DEFINE prtb16 RECORD LIKE prtb00016.*,
pcosto_labor ARRAY[50] OF DEC(12,5),pcosto_gasto ARRAY[50] OF DEC(12,5),
cmd,imprime,copia,copia1 CHAR(150),archivo1,archivo CHAR(80),
impresor SMALLINT,
copiacorreo DYNAMIC ARRAY OF CHAR(200),
copiaemail CHAR(500)
DEFINE cliente_dir RECORD LIKE vetb00005.*,
usuarios,clave CHAR(50)
DEFINE arr_clientes DYNAMIC ARRAY OF RECORD
tipo_cliente LIKE vetb00004.tipo_cliente,
sec_cliente LIKE vetb00004.sec_cliente,
nombre LIKE vetb00004.nombre
END RECORD
DEFINE arrprtb08 ARRAY[30] OF RECORD
cod_n_c LIKE prtb00008.cod_n,
cod_grupo_c LIKE prtb00008.cod_grupo,
cod_tipo_c LIKE prtb00008.cod_tipo,
cod_sec_c LIKE prtb00008.cod_sec,
cantidad_c LIKE prtb00008.cantidad ,
descrip_esp_c LIKE intb00001.descrip_esp,
unidad_c LIKE intb00001.unidad_med
END RECORD
DEFINE nombre_dia ARRAY[7] OF char(10)
DEFINE empleados ARRAY [200] OF RECORD
cod_emp_sec LIKE adtb00003.num_emp,
descrip6 CHAR(65)
END RECORD
DEFINE arr_hora ARRAY[8] OF RECORD
fecha DATE,
hn_ind DECIMAL(5,2),
he_ind DECIMAL(5,2)
END RECORD
DEFINE arr_empleados ARRAY [200] OF RECORD
num_emp LIKE adtb00003.num_emp,
nom1_emp LIKE adtb00003.nom1_emp,
apell1_emp LIKE adtb00003.apell1_emp
END RECORD
DEFINE pilas ARRAY [200] OF RECORD
cod_n LIKE intb00001.cod_n,
cod_grupo LIKE intb00001.cod_grupo,
cod_tipo LIKE intb00001.cod_tipo,
cod_sec LIKE intb00001.cod_sec,
descrip_esp LIKE intb00001.descrip_esp
END RECORD
DEFINE nom_dpto,nom_emp CHAR(30)
DEFINE nom1_emp,apell1_emp CHAR(14)
DEFINE tipo_papel,curr,curr1,fila,scr_l,idx,idx1,idx2,j,k INTEGER
DEFINE salir,salir1,salir2,sali3 CHAR(1),
opt,opt1 CHAR(3)
DEFINE opcion,respuesta CHAR(3)
DEFINE opcion1,impresion,verdad,identifica,existe CHAR(1)
DEFINE criterio,selec2,selec3,selec,selec1 STRING
DEFINE normal,negrilla_on,negrillas_of,comp_on,comp_off,doce,doble_on,doble_off
CHAR(3)
DEFINE hora CHAR(5),
l SMALLINT
DEFINE numero_msg LIKE msgtable.cod_msg
DEFINE bandera,otrab SMALLINT
DEFINE p_fechas,comp_fech,comp_fech1 DATE
DEFINE mes_control CHAR(2)
DEFINE mes_calc,dia SMALLINT
DEFINE fecha_c DATE
DEFINE c_ano,a_ano CHAR(4)
DEFINE p_user CHAR(9)
END GLOBALS
+366
View File
@@ -0,0 +1,366 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT001
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Periodo de Semana
PROGRAMPROR : Tpreo A. Ferreras F.
FECHA REALIZACION : Sept., 14, 1994.
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE dia_sem SMALLINT
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "decomarmol" USER usuarios USING clave
CALL prprmt001()
END MAIN
FUNCTION prprmt001()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmmt001 FROM "prfmmt001"
DISPLAY FORM prfmmt001
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
let int_flag = false
CLEAR FORM
CALL prpcpr001()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
let int_flag = false
CALL prpcmf001()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcpr001()
# WHENEVER ERROR CONTINUE
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME prtb02.*
## VERIFICA QUE EL CODIGO NO EXISTA EN EL CATALOGO DE DEPARTAMENTO. SI EXISTE,
## ENTONCES DESPLEGA LOS DATOS DEL REGISTRO EXISTENTE.
BEFORE FIELD num_semana
SELECT MAX(num_semana) + 1 INTO prtb02.num_semana FROM prtb00002
DISPLAY BY NAME prtb02.num_semana
AFTER FIELD ano
IF LENGTH(prtb02.ano) <> 4 THEN
CALL msg(77)
NEXT FIELD ano
END IF
AFTER FIELD num_semana
IF prtb02.num_semana IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_semana
ELSE
SELECT a.* INTO prtb02.* FROM prtb00002 a
WHERE a.num_semana = prtb02.num_semana
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF prtb02.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
DISPLAY BY NAME prtb02.*
LET numero_msg = 12
CALL msg(numero_msg)
LET prtb02.semana_del = NULL
NEXT FIELD num_semana
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
END IF
AFTER FIELD mes
IF prtb02.mes is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD mes
END IF
BEFORE FIELD semana_del
SELECT MAX(a.semana_al) + 1 INTO prtb02.semana_del FROM prtb00002 a
DISPLAY BY NAME prtb02.semana_del
AFTER FIELD semana_del
IF prtb02.semana_del IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
SELECT MAX(a.semana_del) INTO fecha_c FROM prtb00002 a
WHERE a.num_semana < prtb02.num_semana AND
a.status_t IS NULL
IF fecha_c > prtb02.semana_del THEN
LET numero_msg = 300
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
{
LET dia_sem = WEEKDAY(prtb02.semana_del)
IF dia_sem != 6 THEN
LET numero_msg = 220
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
}
BEFORE FIELD semana_al
LET prtb02.semana_al = prtb02.semana_del + 6
DISPLAY BY NAME prtb02.semana_al
AFTER FIELD semana_al
IF prtb02.semana_al IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD semana_al
END IF
IF prtb02.semana_del > prtb02.semana_al THEN
LET numero_msg = 53
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
LET fecha_c = NULL
SELECT MAX(a.semana_al) INTO fecha_c FROM prtb00002 a
WHERE a.num_semana < prtb02.num_semana AND
a.status_t IS NULL
IF fecha_c > prtb02.semana_al THEN
LET numero_msg = 300
CALL msg(numero_msg)
NEXT FIELD semana_al
END IF
LET dia_sem = WEEKDAY(prtb02.semana_al)
{ IF dia_sem != 5 THEN
LET numero_msg = 221
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF}
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INSERT INTO prtb00002 VALUES (prtb02.*)
UPDATE prtb00002 SET (us_crea,fech_crea) = (SUSER_SNAME(),GETDATE())
WHERE @num_semana = prtb02.num_semana
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
END FUNCTION
FUNCTION prpcmf001()
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
## MODIFICACION DE REGISTROS
# WHENEVER ERROR CONTINUE
CONSTRUCT BY NAME criterio ON a.num_semana,a.ano,a.mes,a.semana_del,
a.semana_al
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.* FROM prtb00002 a ",
" WHERE a.status_t is null and ",criterio clipped," ORDER BY a.num_semana"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
DECLARE dato SCROLL CURSOR FOR busca
OPEN dato
FETCH FIRST dato INTO prtb02.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
DISPLAY BY NAME prtb02.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrpro"
FETCH NEXT dato INTO prtb02.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb02.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrpro"
FETCH PREVIOUS dato INTO prtb02.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb02.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrpro"
FETCH FIRST dato INTO prtb02.*
DISPLAY BY NAME prtb02.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrpro"
FETCH LAST dato INTO prtb02.*
DISPLAY BY NAME prtb02.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF prtb02.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
INPUT BY NAME prtb02.ano,
prtb02.mes,
prtb02.semana_del,
prtb02.semana_al,
prtb02.descripcion,
prtb02.status_t,
prtb02.us_crea,
prtb02.fech_crea,
prtb02.us_mod,
prtb02.fech_mod WITHOUT DEFAULTS
AFTER FIELD semana_del
IF prtb02.semana_del IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
{
LET dia_sem = WEEKDAY(prtb02.semana_del)
IF dia_sem != 6 THEN
LET numero_msg = 220
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
}
BEFORE FIELD semana_al
LET prtb02.semana_al = prtb02.semana_del + 6
DISPLAY BY NAME prtb02.semana_al
AFTER FIELD semana_al
IF prtb02.semana_al IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD semana_al
END IF
IF prtb02.semana_del > prtb02.semana_al THEN
LET numero_msg = 53
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF
LET dia_sem = WEEKDAY(prtb02.semana_al)
{
IF dia_sem != 5 THEN
LET numero_msg = 221
CALL msg(numero_msg)
NEXT FIELD semana_del
END IF}
#### Verifica si el usuario presiono la tecla <Supr>
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
## AQUI SE ACTUALIZA EL REGISTRO
UPDATE prtb00002 SET mes = prtb02.mes,
ano = prtb02.ano,
semana_del = prtb02.semana_del,
semana_al = prtb02.semana_al,
descripcion = prtb02.descripcion,
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE @num_semana = prtb02.num_semana
LET numero_msg = 13
CALL msg(numero_msg)
## AQUI SE ELIMINAN LOS REGISTROS
COMMAND KEY ("L") "eLiminar"
UPDATE prtb00002 SET status_t = "E"
WHERE a.num_semana = prtb02.num_semana
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
+386
View File
@@ -0,0 +1,386 @@
{
-----------------------------------------------------------------------------
PROGRAMA : PRPRMT002
OBJETIVO : Registro de Horas en Personal Administrativo
REALIZADO POR : Tadeo A. Ferreras F.
FECHA : Sept. 14, 1994
-----------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE i,valor_cheque1,p_num_doc,aplicar INTEGER
DEFINE valor_nc,nc_pend,valor_ctrl,p_total,val_pen,valor2 DECIMAL(12,2)
DEFINE fecha1 DATE
DEFINE nombre_cta CHAR(30)
DEFINE tipo_doc1 CHAR(2)
DEFINE opc CHAR(1)
####### Funcion para agregar un recibo de pago
FUNCTION prprmt002()
OPTIONS
FORM LINE 8,
ERROR LINE 24,
COMMENT LINE 22,
PROMPT LINE 23
CALL pantalla()
OPEN FORM prfmmt002 FROM "prfmmt002"
DISPLAY FORM prfmmt002
DISPLAY "prprmt002" AT 4,3
DISPLAY "Registro Horas del Personal No Prod." AT 6,22
MENU "OPCION"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
CLEAR FORM
CALL prpcad002()
COMMAND "Consultar-modificar"
"<Esc> Busca Registro <Supr> Cancela Operacion"
CALL prpcmf002()
COMMAND "Salir"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad002()
INPUT BY NAME prtb03.num_semana,prtb03.departamento,prtb03.num_emp
BEFORE FIELD num_semana
LET prtb03.num_semana = prtb02.num_semana
DISPLAY BY NAME prtb03.num_semana
AFTER FIELD num_semana
IF prtb02.num_semana IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
SELECT a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
FROM prtb00002 a
WHERE a.status_t IS NULL AND a.num_semana = prtb03.num_semana
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
LET prtb02.num_semana = prtb03.num_semana
NEXT FIELD num_emp
AFTER FIELD num_emp
IF prtb03.num_emp IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
SELECT a.nom1_emp,a.apell1_emp,a.departamento,b.nom_dpto
INTO nom1_emp,apell1_emp,prtb03.departamento,nom_dpto
FROM adtb00003 a,adtb00001 b
WHERE a.num_emp=prtb03.num_emp AND (a.status_t IS NULL OR
a.status_t IN("T","I")) AND a.departamento = b.departamento
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_emp
END IF
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME nom_emp,prtb03.departamento,nom_dpto
SELECT UNIQUE a.num_semana,a.departamento,a.num_emp,b.nom_dpto
FROM prtb00003 a,adtb00001 b
WHERE a.departamento=b.departamento AND a.departamento=prtb03.departamento AND
a.num_emp = prtb03.num_emp AND a.num_semana = prtb03.num_semana AND
a.status_t IS NULL
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
RETURN
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET fecha1 = prtb02.semana_del
FOR i = 1 TO 7
LET arr_hora[i].fecha = fecha1
LET arr_hora[i].hn_ind= 0
LET arr_hora[i].he_ind= 0
LET fecha1 = fecha1 + 1
END FOR
CALL SET_COUNT(i)
INPUT ARRAY arr_hora WITHOUT DEFAULTS FROM sc_hora.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD fecha
IF arr_hora[curr].fecha > prtb02.semana_al OR
arr_hora[curr].fecha < prtb02.semana_del OR
arr_hora[curr].fecha > today THEN
LET numero_msg = 99
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
DELETE FROM prtb00003
WHERE @num_semana = prtb03.num_semana AND
@departamento= prtb03.departamento AND
@num_emp = prtb03.num_emp
FOR j = 1 TO 7
IF arr_hora[j].hn_ind IS NULL THEN
LET arr_hora[curr].hn_ind = 0
END IF
IF arr_hora[j].he_ind IS NULL THEN
LET arr_hora[curr].he_ind = 0
END IF
IF arr_hora[j].hn_ind > 0 OR arr_hora[j].he_ind > 0 THEN
INSERT INTO prtb00003 VALUES(prtb03.num_semana,prtb03.departamento,
prtb03.num_emp,arr_hora[j].fecha,
arr_hora[j].hn_ind,arr_hora[j].he_ind,
NULL,USER,CURRENT,NULL,NULL)
END IF
END FOR
LET numero_msg = 1
CALL msg(numero_msg)
FOR j = 1 TO 7
LET arr_hora[j].fecha = NULL
LET arr_hora[j].hn_ind = NULL
LET arr_hora[j].he_ind = NULL
END FOR
END FUNCTION
FUNCTION prpcmf002()
INPUT BY NAME prtb03.num_semana
AFTER FIELD num_semana
IF prtb02.num_semana IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
SELECT a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
FROM prtb00002 a
WHERE a.status_t IS NULL AND a.num_semana = prtb03.num_semana
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
END INPUT
CONSTRUCT CRITERIO ON a.departamento,a.num_emp FROM departamento,num_emp
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET selec =
"SELECT UNIQUE a.departamento,a.num_emp,b.nom_dpto,c.nom1_emp,c.apell1_emp ",
"FROM prtb00003 a,adtb00001 b,adtb00003 c ",
"WHERE a.departamento = b.departamento AND a.num_emp = c.num_emp AND ",
" a.status_t IS NULL AND a.num_semana = ? AND ",criterio CLIPPED,
" ORDER BY 1,2 "
PREPARE comando FROM selec
DECLARE busco SCROLL CURSOR FOR comando
OPEN busco USING prtb03.num_semana
FETCH FIRST busco INTO prtb03.departamento,prtb03.num_emp,nom_dpto,
nom1_emp,apell1_emp
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME prtb03.departamento,prtb03.num_emp,nom_dpto,nom_emp
MENU "Mant."
COMMAND "Siguiente"
"Ver Proximo registro que satisface condicion"
FETCH NEXT busco INTO prtb03.departamento,prtb03.num_emp,nom_dpto,
nom1_emp,apell1_emp
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME prtb03.departamento,prtb03.num_emp,nom_dpto,nom_emp
COMMAND "Anterior"
"Ver registro anterior que satisface condicion"
FETCH PREVIOUS busco INTO prtb03.departamento,prtb03.num_emp,nom_dpto,
nom1_emp,apell1_emp
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME prtb03.departamento,prtb03.num_emp,nom_dpto,nom_emp
COMMAND "Primero"
"Ver Primer registro que satisface condicion"
FETCH FIRST busco INTO prtb03.departamento,prtb03.num_emp,nom_dpto,
nom1_emp,apell1_emp
LET numero_msg = 5
CALL msg(numero_msg)
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME prtb03.departamento,prtb03.num_emp,nom_dpto,nom_emp
COMMAND "Ultimo"
"Ver Ultimo registro que satisface condicion"
FETCH LAST busco INTO prtb03.departamento,prtb03.num_emp,nom_dpto,
nom1_emp,apell1_emp
LET numero_msg = 4
CALL msg(numero_msg)
LET nom_emp = nom1_emp CLIPPED," ",apell1_emp CLIPPED
DISPLAY BY NAME prtb03.departamento,prtb03.num_emp,nom_dpto,nom_emp
COMMAND "Escoger"
"Ver y/o registro que satisface condicion"
DECLARE busca2 CURSOR FOR
SELECT a.fecha,a.hn_ind,a.he_ind FROM prtb00003 a
WHERE a.num_semana = prtb03.num_semana AND
a.departamento = prtb03.departamento AND
a.num_emp = prtb03.num_emp AND
a.status_t IS NULL ORDER BY 1
LET idx = 1
LET idx1 = 0
FOREACH busca2 INTO arr_hora[idx].*
LET idx = idx + 1
LET idx1= idx1+ 1
END FOREACH
CALL SET_COUNT(idx -1)
INPUT ARRAY arr_hora WITHOUT DEFAULTS FROM sc_hora.*
BEFORE ROW
LET curr = ARR_CURR()
LET fila = SCR_LINE()
AFTER FIELD fecha
IF arr_hora[curr].fecha > prtb02.semana_al OR
arr_hora[curr].fecha < prtb02.semana_del OR
arr_hora[curr].fecha > today THEN
LET numero_msg = 99
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
PROMPT "Toda La Informacion Esta Correcta [S/N]...?" FOR CHAR opcion1
LET opcion1 = UPSHIFT(opcion1)
IF opcion1 = "S" THEN
DELETE FROM prtb00003
WHERE @num_semana = prtb03.num_semana AND
@departamento= prtb03.departamento AND
@num_emp = prtb03.num_emp
FOR j = 1 TO 7
IF arr_hora[j].hn_ind IS NULL THEN
LET arr_hora[curr].hn_ind = 0
END IF
IF arr_hora[j].he_ind IS NULL THEN
LET arr_hora[curr].he_ind = 0
END IF
IF arr_hora[j].hn_ind > 0 OR arr_hora[j].he_ind > 0 THEN
INSERT INTO prtb00003 VALUES(prtb03.num_semana,prtb03.departamento,
prtb03.num_emp,arr_hora[j].fecha,
arr_hora[j].hn_ind, arr_hora[j].he_ind,
NULL,USER,CURRENT,NULL,NULL)
END IF
END FOR
END IF
FOR j = 1 TO 7
LET arr_hora[j].fecha = NULL
LET arr_hora[j].hn_ind = NULL
LET arr_hora[j].he_ind = NULL
END FOR
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
"Opcion para eliminar registro que satisface condicion"
UPDATE prtb00003 SET (status_t,us_mod,fech_mod) = ("E",USER,CURRENT)
WHERE @num_semana = prtb03.num_semana AND
@departamento= prtb03.departamento AND
@num_emp = prtb03.num_emp
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
File diff suppressed because it is too large Load Diff
+257
View File
@@ -0,0 +1,257 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT004
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Operacion.
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Junio 14, 1993.
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
FUNCTION prprmt004()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ctfmmt005 FROM "prfmmt005"
DISPLAY FORM ctfmmt005
CALL pantalla()
DISPLAY "prprmt004" AT 4,3
DISPLAY "Catalogo de Operacion" AT 6,29
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET int_flag = FALSE
CLEAR FORM
CALL prpcad004()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CALL prpcmf004()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad004()
#WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
LET int_flag = false
LABEL vuelve:
INPUT BY NAME prtb05.*
AFTER FIELD codigo
IF prtb05.codigo is null then
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
LET prtb05.descripcion = null
LET prtb05.status_t = null
LET prtb05.us_crea = null
LET prtb05.fech_crea = null
LET prtb05.us_mod = null
LET prtb05.fech_mod = null
DISPLAY BY NAME prtb05.*
SELECT a.* INTO prtb05.* FROM prtb00005 a
WHERE a.codigo = prtb05.codigo
IF prtb05.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
DISPLAY BY NAME prtb05.*
NEXT FIELD codigo
END IF
IF status != notfound THEN
LET numero_msg = 12
CALL msg(numero_msg)
DISPLAY BY NAME prtb05.*
NEXT FIELD codigo
END IF
AFTER FIELD descripcion
IF prtb05.descripcion IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
IF prtb05.codigo is null then
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD codigo
END IF
SELECT a.* INTO prtb05.* FROM prtb00005 a
WHERE a.codigo = prtb05.codigo
IF prtb05.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
DISPLAY BY NAME prtb05.*
NEXT FIELD codigo
END IF
IF status != notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
DISPLAY BY NAME prtb05.*
NEXT FIELD codigo
END IF
EXIT INPUT
END INPUT
INSERT INTO prtb00005 VALUES
(prtb05.codigo,prtb05.descripcion,
null,user,current,null,null)
LET numero_msg = 1
CALL msg(numero_msg)
GOTO vuelve
END FUNCTION
FUNCTION prpcmf004()
#WHENEVER ERROR CONTINUE
LET int_flag = false
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT criterio ON prtb00005.* FROM prtb00005.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE * FROM prtb00005 ",
" WHERE status_t is null and ",
criterio clipped," ORDER BY 1"
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb05.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME prtb05.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO prtb05.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb05.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb05.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb05.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb05.*
DISPLAY BY NAME prtb05.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb05.*
DISPLAY BY NAME prtb05.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF prtb05.status_t="E" THEN
LET numero_msg= 36
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME prtb05.descripcion WITHOUT DEFAULTS
AFTER FIELD descripcion
IF prtb05.descripcion IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
IF prtb05.descripcion IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD descripcion
END IF
EXIT INPUT
END INPUT
#### Verifica si el usuario presiono la tecla <Supr>
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
UPDATE prtb00005 SET descripcion = prtb05.descripcion,
us_mod = USER,
fech_mod = CURRENT
WHERE @codigo = prtb05.codigo
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
UPDATE prtb00005 SET status_t ="E" ,
us_mod = user,
fech_mod = current
WHERE @codigo = prtb05.codigo
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
+225
View File
@@ -0,0 +1,225 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT005
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Factor de Conversion de Semi-Elaborado.
PROGRAMADOR : Tadeo A. Ferreras F.
FECHA REALIZACION : Junio 14, 1993.
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
FUNCTION prprmt005()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ctfmmt005 FROM "prfmmt006"
DISPLAY FORM ctfmmt005
CALL pantalla()
DISPLAY "prprmt005" AT 4,3
DISPLAY "Factor de Conversion Semi-Elaborado" AT 6,22
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET int_flag = FALSE
CLEAR FORM
CALL prpcad005()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CALL prpcmf005()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad005()
#WHENEVER ERROR CONTINUE
## Captura los datos que va a contener el registro
LET int_flag = false
INPUT BY NAME prtb06.*
AFTER FIELD cod_prod
IF prtb06.cod_prod is null then
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cod_prod
END IF
SELECT a.* FROM cttb00001 a
WHERE a.cod_prod = prtb06.cod_prod
IF prtb06.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
DISPLAY BY NAME prtb06.*
NEXT FIELD cod_prod
END IF
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_prod
END IF
SELECT UNIQUE a.cod_prod FROM prtb00006 a
WHERE a.cod_prod = prtb06.cod_prod
IF status != notfound THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cod_prod
END IF
SELECT a.descripcion INTO cttb01.descripcion
FROM cttb00001 a
WHERE a.cod_prod = prtb06.cod_prod
DISPLAY BY NAME cttb01.descripcion
AFTER FIELD fact_conv
IF prtb06.fact_conv IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fact_conv
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INSERT INTO prtb00006 VALUES
(prtb06.cod_prod,prtb06.fact_conv,
null,user,current,null,null)
LET numero_msg = 1
CALL msg(numero_msg)
END FUNCTION
FUNCTION prpcmf005()
#WHENEVER ERROR CONTINUE
LET int_flag = false
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT criterio ON prtb00006.* FROM prtb00006.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE prtb00006.*,cttb00001.descripcion ",
" FROM prtb00006,cttb00001 ",
" WHERE prtb00006.status_t is null and ",
" prtb00006.cod_prod = cttb00001.cod_prod AND ",
criterio clipped," ORDER BY prtb00006.cod_prod "
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb06.*,cttb01.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME prtb06.*,cttb01.descripcion
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrado"
FETCH NEXT datos INTO prtb06.*,cttb01.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb06.*,cttb01.descripcion
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb06.*,cttb01.descripcion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb06.*,cttb01.descripcion
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb06.*,cttb01.descripcion
DISPLAY BY NAME prtb06.*,cttb01.descripcion
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb06.*,cttb01.descripcion
DISPLAY BY NAME prtb06.*,cttb01.descripcion
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF prtb06.status_t="E" THEN
LET numero_msg= 36
CALL msg(numero_msg)
RETURN
END IF
INPUT BY NAME prtb06.fact_conv WITHOUT DEFAULTS
AFTER FIELD fact_conv
IF prtb06.fact_conv IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fact_conv
END IF
END INPUT
#### Verifica si el usuario presiono la tecla <Supr>
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
UPDATE prtb00006 SET (fact_conv,us_mod,fech_mod) =
(prtb06.fact_conv,USER,CURRENT)
WHERE @cod_prod = prtb06.cod_prod
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND KEY ("L") "eLiminar"
UPDATE prtb00006 SET status_t ="E" ,
us_mod = user,
fech_mod = current
WHERE @cod_prod = prtb06.cod_prod
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
+849
View File
@@ -0,0 +1,849 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT006
OBJETIVO : Matenimiento Ordenes Produccion
PROGRAMADOR : JUAN F. SOTO
FECHA REALIZACION : MARZO 09, 1998
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE nombre LIKE vetb00004.nombre,
descrip_esp_c,descrip_esp LIKE iptb00002.descrip_esp,
unidad LIKE iptb00002.unidad_med,
unidad_c LIKE intb00001.unidad_med,
descrip CHAR(20),
esta,opt4 CHAR(1),
nombre_vend,nombres,apellidos CHAR(40)
DEFINE numero_oc INTEGER
DEFINE datos_mt ARRAY[200] OF RECORD
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(30),
unidad_med CHAR(3)
END RECORD
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "decomarmol" USER usuarios USING clave
CALL prprmt006()
END MAIN
FUNCTION prprmt006()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
CALL pantalla()
OPEN FORM ctfmmt006 FROM "prfmmt006"
DISPLAY FORM ctfmmt006
CALL pantalla()
DISPLAY "prprmt006" AT 4,3
DISPLAY "Ordenes De Produccion" AT 6,32
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET int_flag = FALSE
CLEAR FORM
CALL prpcad006()
COMMAND "Consultar"
LET INT_FLAG = FALSE
CALL prpcmf006()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad006()
## Captura los datos que va a contener el registro
LET int_flag = false
SELECT MAX(a.num_oc) INTO prtb07.num_oc FROM prtb00007 a
LET prtb07.num_oc = prtb07.num_oc + 1
INPUT BY NAME prtb07.num_oc THRU prtb07.cantidad WITHOUT DEFAULTS
ON KEY(CONTROL-W)
CASE
WHEN INFIELD(cod_n)
CALL busca_pt()
IF int_flag THEN
LET int_flag = FALSE
RETURN
END IF
DISPLAY BY NAME prtb07.cod_n,prtb07.cod_grupo,prtb07.cod_tipo,prtb07.cod_sec
ATTRIBUTE (BLUE)
EXIT CASE
WHEN INFIELD(cod_grupo)
CALL busca_pt()
IF int_flag THEN
LET int_flag = FALSE
RETURN
END IF
DISPLAY BY NAME prtb07.cod_n,prtb07.cod_grupo,prtb07.cod_tipo,prtb07.cod_sec
ATTRIBUTE (BLUE)
EXIT CASE
WHEN INFIELD(cod_tipo)
CALL busca_pt()
IF int_flag THEN
LET int_flag = FALSE
RETURN
END IF
DISPLAY BY NAME prtb07.cod_n,prtb07.cod_grupo,prtb07.cod_tipo,prtb07.cod_sec
ATTRIBUTE (BLUE)
EXIT CASE
WHEN INFIELD(cod_sec)
CALL busca_pt()
IF int_flag THEN
LET int_flag = FALSE
RETURN
END IF
DISPLAY BY NAME prtb07.cod_n,prtb07.cod_grupo,prtb07.cod_tipo,prtb07.cod_sec
ATTRIBUTE (BLUE)
EXIT CASE
WHEN INFIELD(sec_vend)
CALL vendedores()
DISPLAY BY NAME prtb07.sec_vend,nombre_vend ATTRIBUTE(BLUE)
EXIT CASE
WHEN INFIELD (tipo_cliente)
CALL busca_cliente()
DISPLAY BY NAME prtb07.tipo_cliente,prtb07.sec_cliente,
nombre ATTRIBUTE(BLUE)
EXIT CASE
WHEN INFIELD (sec_cliente)
CALL busca_cliente()
DISPLAY BY NAME prtb07.tipo_cliente,prtb07.sec_cliente,
nombre ATTRIBUTE(BLUE)
EXIT CASE
END CASE
BEFORE FIELD fecha_termina
LET prtb07.fecha_termina = prtb07.fecha + 15
DISPLAY BY NAME prtb07.fecha_termina
AFTER FIELD fecha_termina
IF prtb07.fecha_termina IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_termina
END IF
IF prtb07.fecha_termina < prtb07.fecha THEN
LET numero_msg =51
CALL msg(numero_msg)
NEXT FIELD fecha_termina
END IF
AFTER FIELD orden_pedido
IF prtb07.orden_pedido IS NOT NULL AND prtb07.orden_pedido != 0 THEN
SELECT UNIQUE a.num_oc
FROM prtb00012 a
WHERE a.num_oc = prtb07.orden_pedido
IF STATUS = NOTFOUND THEN
LET numero_msg =3
CALL msg(numero_msg)
NEXT FIELD orden_pedido
END IF
END IF
AFTER FIELD sec_vend
IF prtb07.sec_vend IS NOT NULL THEN
SELECT a.nom1_emp,a.apell1_emp INTO nombres,apellidos
FROM adtb00003 a
WHERE a.num_emp = prtb07.sec_vend
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET nombre_vend = nombres CLIPPED," ",apellidos CLIPPED
DISPLAY BY NAME nombre_vend ATTRIBUTE(BLUE)
END IF
BEFORE FIELD fecha
LET prtb07.fecha = TODAY
DISPLAY BY NAME prtb07.fecha ATTRIBUTE(BLUE)
AFTER FIELD fecha
IF prtb07.fecha > TODAY THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
AFTER FIELD sec_cliente
SELECT a.nombre INTO nombre
FROM vetb00004 a
WHERE a.tipo_cliente = prtb07.tipo_cliente AND
a.sec_cliente = prtb07.sec_cliente AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD tipo_cliente
END IF
DISPLAY BY NAME nombre ATTRIBUTE(BLUE)
AFTER FIELD cod_n
SELECT a.producto INTO descrip
FROM iptb00020 a
WHERE a.cod_n = prtb07.cod_n
DISPLAY BY NAME descrip ATTRIBUTE(BLUE)
AFTER FIELD cod_sec
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp,unidad
FROM iptb00002 a
WHERE a.cod_n = prtb07.cod_n AND
a.cod_grupo = prtb07.cod_grupo AND
a.cod_tipo = prtb07.cod_tipo AND
a.cod_sec = prtb07.cod_sec
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY BY NAME unidad,descrip_esp ATTRIBUTE(BLUE)
SELECT UNIQUE a.num_oc FROM prtb00007 a
WHERE a.num_oc = prtb07.num_oc AND
a.cod_n = prtb07.cod_n AND
a.cod_grupo = prtb07.cod_grupo AND
a.cod_tipo = prtb07.cod_tipo AND
a.cod_sec = prtb07.cod_sec
IF STATUS != NOTFOUND THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
SELECT a.descrip_esp INTO descrip_esp
FROM iptb00002 a
WHERE a.cod_n = prtb07.cod_n AND
a.cod_grupo = prtb07.cod_grupo AND
a.cod_tipo = prtb07.cod_tipo AND
a.cod_sec = prtb07.cod_sec
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
DISPLAY BY NAME unidad,descrip_esp ATTRIBUTE(BLUE)
SELECT UNIQUE a.num_oc FROM prtb00007 a
WHERE a.num_oc = prtb07.num_oc AND
a.cod_n = prtb07.cod_n AND
a.cod_grupo = prtb07.cod_grupo AND
a.cod_tipo = prtb07.cod_tipo AND
a.cod_sec = prtb07.cod_sec
IF STATUS != NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
SELECT a.nombre INTO nombre
FROM vetb00004 a
WHERE a.tipo_cliente = prtb07.tipo_cliente AND
a.sec_cliente = prtb07.sec_cliente AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD tipo_cliente
END IF
DISPLAY BY NAME descrip_esp,nombre ATTRIBUTE(BLUE)
END INPUT
{ ESTE QUERY ES PARA BUSCAR LA COMPOSICION DE LOS PRODUCTOS
DECLARE buscame CURSOR FOR
SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
FROM prtb00008 a,prtb00007 b
WHERE b.cod_n = prtb07.cod_n AND
b.cod_grupo = prtb07.cod_grupo AND
b.cod_tipo = prtb07.cod_tipo AND
b.cod_sec = prtb07.cod_sec AND
a.num_oc = b.num_oc
LET idx = 1
FOREACH buscame INTO prtb08[idx].*
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
}
INPUT ARRAY prtb08 FROM s_orden.*
ON KEY(CONTROL-W)
CALL busca_material()
BEFORE ROW
LET curr = arr_curr()
LET scr_l = scr_line()
AFTER FIELD cod_sec_c
LET descrip_esp_c = NULL
IF prtb08[curr].cod_sec_c IS NOT NULL THEN
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
FROM intb00001 a
WHERE a.cod_n = prtb08[curr].cod_n_c AND
a.cod_grupo = prtb08[curr].cod_grupo_c AND
a.cod_tipo = prtb08[curr].cod_tipo_c AND
a.cod_sec = prtb08[curr].cod_sec_c AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n_c
END IF
END IF
LET prtb08[curr].descrip_esp_c = descrip_esp_c
LET prtb08[curr].unidad_c = unidad_c
DISPLAY prtb08[curr].descrip_esp_c TO s_orden[scr_l].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[curr].unidad_c TO s_orden[scr_l].unidad_c
ATTRIBUTE(BLUE)
AFTER FIELD cantidad_c
IF prtb08[curr].cod_n_c IS NOT NULL THEN
IF prtb08[curr].cantidad_c IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD cantidad_c
END IF
END IF
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
EXIT INPUT
END INPUT
PROMPT "TODA LA INFORMACION ESTA CORRECTA? " FOR opt4
LET opt4 = upshift(opt4)
IF opt4 = "S" THEN
START REPORT ordenes TO "c:\\archivo"
INSERT INTO prtb00007 VALUES (prtb07.*)
UPDATE prtb00007 set us_crea = SUSER_SNAME(),
fech_crea = current
WHERE num_oc = prtb07.num_oc
INSERT INTO prtb00009 VALUES (prtb07.num_oc,prtb07.fecha,"S","INICIO ORDEN...",NULL,SUSER_SNAME(),CURRENT,NULL,NULL)
# SE ESTA VALIDANDO EL PRODUCTO TERMINADO EN EL CODIGO DE LA MATERIA PRIMA
# PARA CUANDO LA ORDEN SEA PARA PRODUCTOS IMPORTADOS QUE NO TIENEN COMPOSICION
IF prtb08[1].cod_n_c IS NULL THEN
LET prtb08[1].cod_n_c = prtb07.cod_n
LET prtb08[1].cod_grupo_c = prtb07.cod_grupo
LET prtb08[1].cod_tipo_c = prtb07.cod_tipo
LET prtb08[1].cod_sec_c = prtb07.cod_Sec
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
END IF
FOR idx = 1 TO arr_count()
IF prtb08[idx].cod_n_c IS NOT NULL THEN
INSERT INTO prtb00008 VALUES (prtb07.num_oc,
prtb08[idx].cod_n_c,
prtb08[idx].cod_grupo_c,
prtb08[idx].cod_tipo_c,
prtb08[idx].cod_sec_c,
prtb08[idx].cantidad_c,
SUSER_SNAME(),current,null,null)
OUTPUT TO REPORT ordenes(prtb07.num_oc,prtb08[idx].*)
END IF
END FOR
FINISH REPORT ordenes
RUN "TYPE c:\\archivo > LPT3"
LET numero_msg = 1
CALL msg(numero_msg)
END IF
CLEAR FORM
END FUNCTION
FUNCTION prpcmf006()
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON a.num_oc,a.tipo_cliente,a.sec_cliente
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.* FROM prtb00007 a ",
" WHERE ",criterio CLIPPED, " AND a.status_t IS NULL"
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
DISPLAY BY NAME prtb07.num_oc THRU prtb07.cantidad ATTRIBUTE(BLUE)
LET numero_oc = prtb07.num_oc
CALL busca_detalle()
CALL busca_clientem()
CALL busca_vendm()
CALL busca_product()
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proprtb07.mo registro encontrado"
FETCH NEXT datos INTO prtb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb07.num_oc THRU prtb07.cantidad ATTRIBUTE(BLUE)
LET numero_oc = prtb07.num_oc
CALL limpia()
CALL busca_detalle()
CALL busca_clientem()
CALL busca_vendm()
CALL busca_product()
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb07.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb07.num_oc THRU prtb07.cantidad ATTRIBUTE(BLUE)
LET numero_oc = prtb07.num_oc
CALL limpia()
CALL busca_detalle()
CALL busca_clientem()
CALL busca_vendm()
CALL busca_product()
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb07.*
DISPLAY BY NAME prtb07.num_oc THRU prtb07.cantidad ATTRIBUTE(BLUE)
LET numero_oc = prtb07.num_oc
CALL limpia()
CALL busca_detalle()
CALL busca_clientem()
CALL busca_vendm()
CALL busca_product()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb07.*
DISPLAY BY NAME prtb07.num_oc THRU prtb07.cantidad
ATTRIBUTE(BLUE)
LET numero_oc = prtb07.num_oc
CALL limpia()
CALL busca_detalle()
CALL busca_clientem()
CALL busca_vendm()
CALL busca_product()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND KEY ("N") "aNular"
PROMPT "Esta seguro?" FOR esta
LET esta = UPSHIFT(esta)
IF esta = "S" THEN
UPDATE prtb00007 set status_t = "E",
us_mod = SUSER_SNAME(),
fech_mod = current
WHERE num_oc = prtb07.num_oc
UPDATE prtb00009 set status_t = "E",
us_mod = SUSER_SNAME(),
fech_mod = current
WHERE num_oc = prtb07.num_oc
LET numero_msg = 39
CALL msg(numero_msg)
END IF
COMMAND "Retornar"
"Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION busca_pt()
OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd003"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.descrip_esp FROM descrip_esp
LET selec2 =
"SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp ",
"FROM iptb00002 a ",
"WHERE a.status_t is null AND ",criterio clipped," ORDER BY 5 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO sale9
END IF
PREPARE busca_pila FROM selec2
DECLARE buscar_pila CURSOR FOR busca_pila
LET idx= 1
FOREACH buscar_pila INTO pilas[idx].*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET idx= idx+ 1
END FOREACH
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GOTO sale9
END IF
CALL set_count(idx -1)
MESSAGE " <Esc> Selecciona Producto Terminado donde esta el cursor"
DISPLAY ARRAY pilas TO s_pilas.*
LET curr1 = arr_curr()
LET prtb07.cod_n = pilas[curr1].cod_n
LET prtb07.cod_grupo = pilas[curr1].cod_grupo
LET prtb07.cod_tipo = pilas[curr1].cod_tipo
LET prtb07.cod_sec = pilas[curr1].cod_sec
LET descrip_esp = pilas[curr1].descrip_esp
LABEL sale9:
CLOSE WINDOW busqueda
END FUNCTION
FUNCTION limpia()
FOR idx = 1 TO 10
LET prtb08[idx].cod_n_c = null
LET prtb08[idx].cod_grupo_c = null
LET prtb08[idx].cod_tipo_c = null
LET prtb08[idx].cod_sec_c = null
LET prtb08[idx].unidad_c = null
LET prtb08[idx].cantidad_c = null
LET prtb08[idx].descrip_esp_c = null
END FOR
FOR idx = 1 TO 5
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
ATTRIBUTE(BLUE)
END FOR
END FUNCTION
FUNCTION busca_detalle()
DECLARE busca_d CURSOR FOR
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad FROM prtb00008 a
WHERE a.num_oc = numero_oc
LET idx = 1
FOREACH busca_d INTO prtb08[idx].*
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp_c,unidad_c
FROM intb00001 a
WHERE a.cod_n = prtb08[idx].cod_n_c AND
a.cod_grupo = prtb08[idx].cod_grupo_c AND
a.cod_tipo = prtb08[idx].cod_tipo_c AND
a.cod_sec = prtb08[idx].cod_sec_c AND
a.status_t IS NULL
IF idx > 5 THEN
EXIT FOREACH
END IF
LET prtb08[idx].descrip_esp_c = descrip_esp_c
LET prtb08[idx].unidad_c = unidad_c
DISPLAY prtb08[idx].cod_n_c TO s_orden[idx].cod_n_c
DISPLAY prtb08[idx].cod_grupo_c TO s_orden[idx].cod_grupo_c
DISPLAY prtb08[idx].cod_tipo_c TO s_orden[idx].cod_tipo_c
DISPLAY prtb08[idx].cod_sec_c TO s_orden[idx].cod_sec_c
DISPLAY prtb08[idx].cantidad_c TO s_orden[idx].cantidad_c
DISPLAY prtb08[idx].descrip_esp_c TO s_orden[idx].descrip_esp_c
ATTRIBUTE(BLUE)
DISPLAY prtb08[idx].unidad_c TO s_orden[idx].unidad_c
ATTRIBUTE(BLUE)
LET idx = idx + 1
END FOREACH
END FUNCTION
REPORT ordenes(xnumero,z)
DEFINE z RECORD
cod_n_c LIKE prtb00008.cod_n,
cod_grupo_c LIKE prtb00008.cod_grupo,
cod_tipo_c LIKE prtb00008.cod_tipo,
cod_sec_c LIKE prtb00008.cod_sec,
cantidad_c LIKE prtb00008.cantidad ,
descrip_esp_c LIKE intb00001.descrip_esp,
unidad_c LIKE intb00001.unidad_med
END RECORD,
i,xnumero INTEGER,
negrillas_on,negrillas_off,doble CHAR(2)
OUTPUT
LEFT MARGIN 0
ORDER BY xnumero
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doble = ASCII 14
LET l = (80 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN l, p_compania.nombre CLIPPED,
COLUMN 70, TODAY USING "DD/MM/YY"
LET l = (80 - LENGTH("ORDEN DE PRODUCCION"))/2
PRINT COLUMN l, "ORDEN DE PRODUCCION",
COLUMN 70, TIME
PRINT COLUMN 1, "NO. ORDEN: ",doble_on,xnumero USING "<<<<<<"
PRINT COLUMN 1, "FECHA : ",negrillas_on,prtb07.fecha
USING "DD/MM/YY",negrillas_off
PRINT COLUMN 1, "VENDEDOR : ",negrillas_on,prtb07.sec_vend USING "<<<<",
" ",nombre_vend,negrillas_off
PRINT COLUMN 1, "CLIENTE : ",negrillas_on,prtb07.tipo_cliente USING "<<",
prtb07.sec_cliente
USING "<<<<"," "," ",
nombre,negrillas_off
PRINT COLUMN 1, "PRODUCTO : ",negrillas_on,prtb07.cod_n USING "&","-",
prtb07.cod_grupo USING "&","-",
prtb07.cod_tipo USING "&&","-",
prtb07.cod_sec
USING "&&&"," ",negrillas_off,descrip_esp," ",
unidad,negrillas_off
PRINT COLUMN 1, "CANTIDAD : ",negrillas_on, prtb07.cantidad USING "<<,<<<",
negrillas_off
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
PRINT "COMPOSICION PRODUCTO..."
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
ON EVERY ROW
PRINT COLUMN 1, z.cod_n_c USING "&","-",
z.cod_grupo_c USING "&","-",
z.cod_tipo_c USING "&&","-",
z.cod_sec_c USING "&&&","-",
" ",z.descrip_esp_c," ",z.unidad_c,
" ",z.cantidad_c USING "###,###.###"
PAGE TRAILER
PRINT COLUMN 10, "-------------------",
COLUMN 35, "-------------------"
PRINT COLUMN 13, "AUTORIZADO POR",
COLUMN 39, "REVISADO POR"
END REPORT
FUNCTION busca_material()
LET int_flag = FALSE
OPEN WINDOW material1 AT 10,9 WITH FORM "infmwd004"
ATTRIBUTE(BORDER,FORM LINE FIRST + 2)
CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp,
a.unidad_med
FROM cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp,
unidad_med
LET selec = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ",
"a.unidad_med FROM intb00001 a ",
"WHERE a.status_t IS NULL AND ",criterio CLIPPED,
"ORDER BY 1,2,3,4"
PREPARE comando4 FROM selec
DECLARE comp4 CURSOR FOR comando4
LET idx = 1
FOREACH comp4 INTO datos_mt[idx].*
LET idx = idx + 1
END FOREACH
CALL SET_COUNT(idx - 1)
DISPLAY ARRAY datos_mt TO datos_mt1.*
LET idx = ARR_CURR()
CLOSE WINDOW material1
END FUNCTION
FUNCTION vendedores()
DEFINE descrip6 LIKE adtb00003.nom1_emp
OPEN WINDOW busqueda2 AT 7,12 WITH FORM "vefmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.nom1_emp FROM descrip6
LET selec2 = "SELECT UNIQUE a.num_emp,a.nom1_emp,a.apell1_emp ",
" FROM adtb00003 a,vetb00028 b",
" WHERE a.num_emp = b.sec_vend AND ",
"a.status_t is null AND ",
criterio clipped,
"ORDER BY 1 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_e
END IF
PREPARE busca_empleados FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_empleados CURSOR FOR busca_empleados
LET idx = 1
FOREACH buscar_empleados INTO arr_empleados[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET empleados[idx].cod_emp_sec = arr_empleados[idx].num_emp
LET empleados[idx].descrip6 =
arr_empleados[idx].nom1_emp clipped," ",arr_empleados[idx].apell1_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Empleado donde esta el cursor"
DISPLAY ARRAY empleados TO s_empleados.*
LET curr1 = scr_line()
LET prtb07.sec_vend = empleados[curr1].cod_emp_sec
LET nombre_vend = empleados[curr1].descrip6
LABEL salir_consulta_e:
CLOSE WINDOW busqueda2
END FUNCTION
FUNCTION busca_cliente()
OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd002"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.nombre FROM nombre
LET selec2 = "SELECT a.tipo_cliente, a.sec_cliente, a.nombre ",
" FROM vetb00004 a",
" WHERE ",
"a.status_t is null AND ",
criterio clipped,
"ORDER BY 1,2 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_c
END IF
PREPARE busca_clientes FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_clientes CURSOR FOR busca_clientes
LET idx = 1
FOREACH buscar_clientes INTO arr_clientes[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Cliente donde esta el cursor"
DISPLAY ARRAY arr_clientes TO s_clientes.*
LET curr1 = arr_curr()
LET prtb07.tipo_cliente = arr_clientes[curr1].tipo_cliente
LET prtb07.sec_cliente = arr_clientes[curr1].sec_cliente
LET nombre = arr_clientes[curr1].nombre
LABEL salir_consulta_c:
CLOSE WINDOW busqueda
END FUNCTION
FUNCTION busca_clientem()
SELECT a.nombre INTO nombre
FROM vetb00004 a
WHERE a.tipo_cliente = prtb07.tipo_cliente AND
a.sec_cliente = prtb07.sec_cliente AND
a.status_t IS NULL
DISPLAY BY NAME nombre ATTRIBUTE(BLUE)
END FUNCTION
FUNCTION busca_vendm()
IF prtb07.sec_vend IS NOT NULL THEN
SELECT a.nom1_emp,a.apell1_emp INTO nombres,apellidos
FROM adtb00003 a
WHERE a.num_emp = prtb07.sec_vend
LET nombre_vend = nombres CLIPPED," ",apellidos CLIPPED
DISPLAY BY NAME nombre_vend ATTRIBUTE(BLUE)
END IF
END FUNCTION
FUNCTION busca_product()
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp,unidad
FROM iptb00002 a
WHERE a.cod_n = prtb07.cod_n AND
a.cod_grupo = prtb07.cod_grupo AND
a.cod_tipo = prtb07.cod_tipo AND
a.cod_sec = prtb07.cod_sec
DISPLAY BY NAME unidad,descrip_esp ATTRIBUTE(BLUE)
END FUNCTION
+239
View File
@@ -0,0 +1,239 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT007
OBJETIVO : Matenimiento de Status de Orden de Produccion
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : MARZO 09, 1998
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE p_nombre CHAR(40),
tipo_p CHAR(1),
pnumreq INT
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "decomarmol" USER usuarios USING clave
CALL prprmt007()
END MAIN
FUNCTION prprmt007()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
#CALL pantalla()
OPEN FORM ctfmmt007 FROM "prfmmt007"
DISPLAY FORM ctfmmt007
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
LET tipo_p = "A"
INITIALIZE prtb09.* TO NULL
INITIALIZE prtb07.* TO NULL
LET p_nombre = NULL
CLEAR FORM
CALL prpcad007()
COMMAND "Consulta/Modificar"
LET INT_FLAG = FALSE
LET tipo_p = "C"
INITIALIZE prtb09.* TO NULL
INITIALIZE prtb07.* TO NULL
LET p_nombre = NULL
CLEAR FORM
CALL prpcmf007()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad007()
## Captura los datos que va a contener el registro
LET INT_FLAG = FALSE
IF tipo_p = "A" THEN
INPUT prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega FROM
num_oc,fecha,fecha_fabricacion
AFTER FIELD num_oc
IF prtb08.num_oc IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,a.fecha_oc
INTO prtb07.tipo_cliente,prtb07.sec_cliente,prtb07.fecha
FROM prtb00012 a WHERE a.num_oc = prtb08.num_oc
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_oc
END IF
SELECT UNIQUE a.nombre INTO p_nombre FROM vetb00004 a
WHERE a.tipo_cliente = prtb07.tipo_cliente AND
a.sec_cliente = prtb07.sec_cliente
DISPLAY BY NAME prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre
AFTER FIELD fecha_oc
IF prtb08.fecha_oc IS NULL OR prtb08.fecha_oc < prtb07.fecha THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_oc
END IF
END INPUT
END IF
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
INPUT prtb08.cerrada,prtb08.fecha_entrega
WITHOUT DEFAULTS FROM
pendiente,fecha_fabricacion
AFTER FIELD pendiente
IF prtb08.cerrada IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD pendiente
END IF
END INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
IF tipo_p = "A" THEN
UPDATE prtb00012 SET fecha_entrega = prtb08.fecha_entrega,
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE @num_oc = prtb08.num_oc
AND @tipo_cliente = prtb07.tipo_cliente
AND @sec_cliente = prtb07.sec_cliente
LET numero_msg = 1
CALL msg(numero_msg)
END IF
END FUNCTION
FUNCTION prpcmf007()
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON a.num_oc #-> vg,a.fecha
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.num_oc,CONVERT(CHAR(10),a.fecha_oc,103),CONVERT(CHAR(10),a.fecha_entrega,103),a.cerrada,a.ubicacion FROM prtb00012 a ",
" WHERE ",criterio CLIPPED #-> vg , " AND a.status_t IS NULL"
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
CALL despl_st()
MENU "OPCIONES "
COMMAND "Siguiente" "Presenta en pantalla el sigte. registro encontrado"
FETCH NEXT datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
CALL despl_st()
COMMAND "Anterior" "Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
CALL despl_st()
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
CALL despl_st()
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb08.num_oc,prtb08.fecha_oc,prtb08.fecha_entrega,
prtb08.cerrada,prtb08.ubicacion
CALL despl_st()
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger" "Modifica el registro presentado en pantalla"
LET tipo_p = "M"
CALL prpcad007()
UPDATE prtb00012 SET cerrada = prtb08.cerrada,fecha_cierre = Today,
us_mod= SUSER_SNAME(),fech_mod = GETDATE()
WHERE num_oc = prtb08.num_oc
IF prtb08.cerrada ='S' THEN
# ACTUALIZACION REQUISICION DESPACHO
DECLARE brequisi CURSOR FOR
SELECT a.num_req FROM cctb00026 a
WHERE a.num_oc = prtb08.num_oc AND status_t IS NULL
FOREACH brequisi INTO pnumreq
UPDATE cctb00025 set estado_despacho = 'DESPACHADA',
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE num_req = pnumreq
END FOREACH
END IF
LET numero_msg = 13
CALL msg(numero_msg)
COMMAND "Retornar" "Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION despl_st()
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,b.nombre ,a.cerrada,CONVERT(char(10),a.fecha_entrega,103)
INTO prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre,prtb09.pendiente,prtb09.fecha_fabricacion
FROM prtb00012 a,vetb00004 b
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente AND
a.num_oc = prtb08.num_oc
LET prtb08.fecha_entrega = prtb09.fecha_fabricacion
LET prtb08.cerrada = prtb09.pendiente
DISPLAY BY NAME prtb09.*,prtb07.tipo_cliente,prtb07.sec_cliente,p_nombre,prtb09.pendiente,
prtb09.fecha_fabricacion
END FUNCTION
File diff suppressed because it is too large Load Diff
+34
View File
@@ -0,0 +1,34 @@
<?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" version="6.00">
<report:Settings>
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report" minOccurs="1" maxOccurs="1">
<MINIPAGE name="Page Root" width="max" length="max">
<LAYOUTNODE name="Page Header" width="max" length="min" port="anyPageHeader">
<MINIPAGE name="StripeLayouter3" width="min" length="max" layoutDirection="leftToRight">
<WORDBOX name="Report Title" x="0" y="max/2" anchorX="0" anchorY="0.5" alignment="baseline" fontSize="25" baselineType="leftleft" floatingBehavior="enclosed" text="Report Title Here"/>
<PAGENOBOX name="PageNoBox" x="1.23857" y="max" anchorX="0" anchorY="1" alignment="baseline" baselineType="leftleft" floatingBehavior="enclosed" textAlignment="right"/>
</MINIPAGE>
<MINIPAGE name="Table Header" width="min" length="max" layoutDirection="leftToRight" class="grwTableHeader">
<WORDBOX name="Spacer" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
</MINIPAGE>
<MINIPAGE name="Separator" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight"/>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="Table Row" width="min" length="max" layoutDirection="leftToRight" class="grwTableRow">
<WORDBOX name="Spacer_1" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
</MINIPAGE>
</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
+885
View File
@@ -0,0 +1,885 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT008
OBJETIVO : Ordenes de Pedidos
PROGRAMADOR : Oscar Castillo
FECHA REALIZACION : Sábado 12 de Agosto de 2000
MODIFICADO POR : Victor Gomez C
FECHA MODIFICACION: Wednesday, 10 January, 2001
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE nombre LIKE vetb00004.nombre,
descrip_esp_c,descrip_esp LIKE iptb00002.descrip_esp,
unidad LIKE iptb00002.unidad_med,
unidad_c LIKE intb00001.unidad_med,
descrip CHAR(20),
esta,opt4 CHAR(1),
nombre_vend,nombres,apellidos CHAR(40),
nombmp CHAR(120),
monto_desc,total1,total_i,total_mo DECIMAL(12,2),
ult_numero INTEGER
DEFINE numero_oc INTEGER,
f_itbis DEC(3,2)
DEFINE total_v,sub_total,sub_total1,sub_total2,balance DECIMAL(10,2),
descrip_p CHAR(30)
DEFINE prtb08 RECORD LIKE prtb00012.*
DEFINE p_totales RECORD
sub_total DEC(8,2), #-> Sub-Total de los Productos menos descuento
unidad_med CHAR(4), #-> Unidad de medida del producto
total_v DEC(10,2) #-> Total de la venta
END RECORD
DEFINE arr_prtb08 ARRAY[200] OF RECORD
cod_n LIKE prtb00013.cod_n,
cod_grupo LIKE prtb00013.cod_grupo,
cod_tipo LIKE prtb00013.cod_tipo,
cod_sec LIKE prtb00013.cod_sec,
descrip_esp LIKE iptb00002.descrip_esp,
bisel LIKE prtb00013.bisel,
cantidad LIKE prtb00013.cantidad,
precio LIKE prtb00013.precio,
descuento LIKE prtb00013.descuento,
total_p DECIMAL(10,2)
END RECORD
FUNCTION prprmt008()
# WHENEVER ERROR CONTINUE
CLEAR SCREEN
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 22
CALL pantalla()
OPEN FORM ctfmmt008 FROM "prfmmt008"
DISPLAY FORM ctfmmt008
CALL pantalla()
DISPLAY "prprmt008" AT 4,3
DISPLAY "Ordene De Pedido" AT 6,32
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
LET INT_FLAG = FALSE
CLEAR FORM
CALL prpcad008()
COMMAND "Consultar"
LET INT_FLAG = FALSE
CALL prpcmf008()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcad008()
## Captura los datos que va a contener el registro
LET INT_FLAG = false
SELECT MAX(num_oc) INTO ult_numero
FROM prtb00012
IF ult_numero IS NULL THEN
LET ult_numero = 0
END IF
LET ult_numero = ult_numero + 1
LET prtb08.num_oc = ult_numero
INPUT BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.sec_vend,prtb08.direccion,
prtb08.telefono,prtb08.fax,prtb08.fecha_entrega,
prtb08.cond_pago WITHOUT DEFAULTS
ON KEY(CONTROL-W)
CASE
WHEN INFIELD(sec_vend)
CALL vendedor8es()
DISPLAY BY NAME prtb07.sec_vend,nombre_vend ATTRIBUTE(BLUE)
EXIT CASE
WHEN INFIELD (tipo_cliente)
CALL busca_cliente8()
DISPLAY BY NAME prtb08.tipo_cliente,prtb08.sec_cliente,
nombre ATTRIBUTE(BLUE)
EXIT CASE
WHEN INFIELD (sec_cliente)
CALL busca_cliente8()
DISPLAY BY NAME prtb08.tipo_cliente,prtb08.sec_cliente,
nombre ATTRIBUTE(BLUE)
EXIT CASE
END CASE
AFTER FIELD fecha_entrega
IF prtb08.fecha_entrega IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_entrega
END IF
IF prtb08.fecha_entrega < prtb08.fecha_oc THEN
LET numero_msg =51
CALL msg(numero_msg)
NEXT FIELD fecha_entrega
END IF
{
AFTER FIELD nombre_file
LET nombmp = FGL_GETENV("FGLBMP")
LET nombmp = nombmp CLIPPED,prtb08.nombre_file CLIPPED,".bmp"
DISPLAY nombmp TO bmpfld
}
AFTER FIELD sec_vend
IF prtb08.sec_vend IS NOT NULL THEN
SELECT a.nom1_emp,a.apell1_emp INTO nombres,apellidos
FROM adtb00003 a
WHERE a.num_emp = prtb08.sec_vend
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD sec_vend
END IF
LET nombre_vend = nombres CLIPPED," ",apellidos CLIPPED
DISPLAY BY NAME nombre_vend ATTRIBUTE(BLUE)
END IF
BEFORE FIELD fecha_oc
LET prtb08.fecha_oc = TODAY
DISPLAY BY NAME prtb08.fecha_oc ATTRIBUTE(BLUE)
AFTER FIELD fecha_oc
IF prtb08.fecha_oc > TODAY THEN
LET numero_msg = 189
CALL msg(numero_msg)
NEXT FIELD fecha_oc
END IF
AFTER FIELD cond_pago
IF prtb08.cond_pago IS NULL THEN
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
SELECT a.descrip INTO descrip_p
FROM vetb00012 a
WHERE a.cond_pago = prtb08.cond_pago AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cond_pago
END IF
DISPLAY BY NAME descrip_p ATTRIBUTE(BLUE)
AFTER FIELD sec_cliente
SELECT a.nombre INTO nombre
FROM vetb00004 a
WHERE a.tipo_cliente = prtb08.tipo_cliente AND
a.sec_cliente = prtb08.sec_cliente AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD tipo_cliente
END IF
DISPLAY BY NAME nombre ATTRIBUTE(BLUE)
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
DISPLAY BY NAME balance
AFTER INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
END INPUT
LET p_totales.sub_total = 0
LET prtb08.cantidad_i = 0
LET prtb08.precio_i = 0
LET prtb08.cantidad_mo = 0
LET prtb08.precio_mo = 0
LET prtb08.transporte = 0
LET prtb08.itbis = 0
LET p_totales.total_v = 0
INPUT ARRAY arr_prtb08 FROM s_pedido.*
BEFORE ROW
LET curr = arr_curr()
LET scr_l = scr_line()
LET sub_total = 0
AFTER FIELD cod_sec
LET descrip_esp = NULL
LET p_totales.unidad_med = NULL
IF arr_prtb08[curr].cod_sec IS NOT NULL THEN
SELECT a.descrip_esp, a.unidad_med INTO descrip_esp,p_totales.unidad_med
FROM iptb00002 a
WHERE a.cod_n = arr_prtb08[curr].cod_n AND
a.cod_grupo = arr_prtb08[curr].cod_grupo AND
a.cod_tipo = arr_prtb08[curr].cod_tipo AND
a.cod_sec = arr_prtb08[curr].cod_sec AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD cod_n
END IF
END IF
LET arr_prtb08[curr].descrip_esp = descrip_esp
DISPLAY arr_prtb08[curr].descrip_esp TO s_pedido[scr_l].descrip_esp ATTRIBUTE(BLUE)
DISPLAY BY NAME p_totales.unidad_med
AFTER FIELD cantidad
IF arr_prtb08[curr].cantidad IS NULL OR
arr_prtb08[curr].cantidad < 0 THEN
LET arr_prtb08[curr].descuento = 0
END IF
AFTER FIELD precio
IF arr_prtb08[curr].precio IS NULL OR
arr_prtb08[curr].precio < 0 THEN
LET arr_prtb08[curr].descuento = 0
END IF
BEFORE FIELD descuento
LET monto_desc = 0
LET total1 = 0
AFTER FIELD descuento
IF arr_prtb08[curr].descuento IS NULL THEN
LET arr_prtb08[curr].descuento = 0
END IF
LET monto_desc = (arr_prtb08[curr].precio * arr_prtb08[curr].cantidad) *
(arr_prtb08[curr].descuento /100)
LET total1 = (arr_prtb08[curr].precio * arr_prtb08[curr].cantidad) - monto_desc
LET arr_prtb08[curr].total_p = total1
LET p_totales.sub_total = p_totales.sub_total + arr_prtb08[curr].total_p
DISPLAY arr_prtb08[curr].total_p TO s_pedido[scr_l].total_p
DISPLAY BY NAME p_totales.sub_total
AFTER INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
LET p_totales.sub_total = 0
FOR idx = 1 TO arr_count()
LET p_totales.sub_total = p_totales.sub_total + arr_prtb08[idx].total_p
END FOR
EXIT INPUT
END INPUT
DISPLAY BY NAME p_totales.sub_total
INPUT BY NAME prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis WITHOUT DEFAULTS
AFTER FIELD cantidad_i
IF prtb08.cantidad_i IS NULL THEN
LET prtb08.cantidad_i = 0
END IF
AFTER FIELD precio_i
IF prtb08.precio_i IS NULL THEN
LET prtb08.precio_i = 0
END IF
LET total_i = (prtb08.cantidad_i * prtb08.precio_i)
AFTER FIELD cantidad_mo
IF prtb08.cantidad_mo IS NULL THEN
LET prtb08.cantidad_mo = 0
END IF
AFTER FIELD precio_mo
IF prtb08.precio_mo IS NULL THEN
LET prtb08.precio_mo = 0
END IF
LET total_mo = (prtb08.cantidad_mo * prtb08.precio_mo)
AFTER FIELD transporte
LET sub_total = (total_i + total_mo)+ p_totales.sub_total
LET sub_total1 = sub_total + prtb08.transporte
#-> Bsuca el itbis disponible para la fecha actual vg
SELECT i.itbi/100 INTO f_itbis FROM vetb00019 i
WHERE i.disponible = "S"
LET prtb08.itbis = (sub_total1 * f_itbis)
DISPLAY BY NAME prtb08.itbis
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
AFTER INPUT
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
EXIT INPUT
END INPUT
PROMPT "TODA LA INFORMACION ESTA CORRECTA? " FOR opt4
LET opt4 = upshift(opt4)
IF opt4 = "S" THEN
#START REPORT ordenes TO "c:\\archivo"
#-> LET prtb08.nombre_file = prtb08.nombre_file CLIPPED, ".BMP"
INSERT INTO prtb00012 VALUES (prtb08.*)
UPDATE prtb00012
SET us_crea = user,
fech_crea = current
WHERE @num_oc = prtb08.num_oc
# SE ESTA VALIDANDO EL PRODUCTO TERMINADO EN EL CODIGO DE LA MATERIA PRIMA
# PARA CUANDO LA ORDEN SEA PARA PRODUCTOS IMPORTADOS QUE NO TIENEN COMPOSICION
FOR idx = 1 TO arr_count()
IF arr_prtb08[idx].cod_n IS NOT NULL THEN
INSERT INTO prtb00013 VALUES (prtb08.num_oc,
arr_prtb08[idx].cod_n,
arr_prtb08[idx].cod_grupo,
arr_prtb08[idx].cod_tipo,
arr_prtb08[idx].cod_sec,
arr_prtb08[idx].bisel,
arr_prtb08[idx].precio,
arr_prtb08[idx].cantidad,
arr_prtb08[idx].descuento,
null,user,current,null,null)
#OUTPUT TO REPORT ordenes(prtb08.num_oc,arr_prtb08[idx].*)
END IF
END FOR
#FINISH REPORT ordenes
#RUN "TYPE c:\\archivo > LPT3"
LET numero_msg = 1
CALL msg(numero_msg)
END IF
CLEAR FORM
END FUNCTION
FUNCTION prpcmf008()
## Aqui se prepara para la captura del criterio de seleccion
CONSTRUCT BY NAME criterio ON a.num_oc
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET INT_FLAG = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.* FROM prtb00012 a ",
" WHERE ",criterio CLIPPED, " AND a.status_t IS NULL "
PREPARE busca FROM selec
DECLARE datos SCROLL CURSOR FOR busca
OPEN datos
FETCH FIRST datos INTO prtb08.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
DISPLAY BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.direccion,prtb08.telefono,
prtb08.fax,prtb08.fecha_entrega,prtb08.cond_pago,
balance,prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis,prtb08.sec_vend ATTRIBUTE(BLUE)
CALL busca_cliente8m()
CALL busca_vendm8()
#CALL limpia8()
CALL busca_detalle8()
LET sub_total1 = sub_total + (prtb08.cantidad_i * prtb08.precio_i) + (prtb08.cantidad_mo * prtb08.precio_mo) +
prtb08.transporte
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proprtb08.mo registro encontrado"
FETCH NEXT datos INTO prtb08.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
NEXT OPTION "anterior"
END IF
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
DISPLAY BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.direccion,prtb08.telefono,
prtb08.fax,prtb08.fecha_entrega,prtb08.cond_pago,
balance,prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis,prtb08.sec_vend ATTRIBUTE(BLUE)
CALL busca_cliente8m()
CALL busca_vendm8()
#CALL limpia8()
CALL busca_detalle8()
LET sub_total1 = sub_total + (prtb08.cantidad_i * prtb08.precio_i) + (prtb08.cantidad_mo * prtb08.precio_mo) +
prtb08.transporte
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrado"
FETCH PREVIOUS datos INTO prtb08.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
NEXT OPTION "siguiente"
END IF
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
DISPLAY BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.direccion,prtb08.telefono,
prtb08.fax,prtb08.fecha_entrega,prtb08.cond_pago,
balance,prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis,prtb08.sec_vend ATTRIBUTE(BLUE)
CALL busca_cliente8m()
CALL busca_vendm8()
#CALL limpia8()
CALL busca_detalle8()
LET sub_total1 = sub_total + (prtb08.cantidad_i * prtb08.precio_i) + (prtb08.cantidad_mo * prtb08.precio_mo) +
prtb08.transporte
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrado"
FETCH FIRST datos INTO prtb08.*
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
DISPLAY BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.direccion,prtb08.telefono,
prtb08.fax,prtb08.fecha_entrega,prtb08.cond_pago,
balance,prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis,prtb08.sec_vend ATTRIBUTE(BLUE)
CALL busca_cliente8m()
CALL busca_vendm8()
#CALL limpia8()
CALL busca_detalle8()
LET sub_total1 = sub_total + (prtb08.cantidad_i * prtb08.precio_i) + (prtb08.cantidad_mo * prtb08.precio_mo) +
prtb08.transporte
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
NEXT OPTION "primero"
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrado"
FETCH LAST datos INTO prtb08.*
SELECT SUM(a.valor) INTO balance
FROM cctb00001 a
WHERE a.tipo_cliente = prtb08.tipo_cliente
AND a.sec_cliente = prtb08.sec_cliente
AND a.status_t IS NULL
IF balance IS NULL THEN
LET balance = 0
END IF
DISPLAY BY NAME prtb08.num_oc,prtb08.fecha_oc,prtb08.tipo_cliente,
prtb08.sec_cliente,prtb08.direccion,prtb08.telefono,
prtb08.fax,prtb08.fecha_entrega,prtb08.cond_pago,
balance,prtb08.cantidad_i,prtb08.precio_i,prtb08.cantidad_mo,
prtb08.precio_mo,prtb08.transporte,prtb08.itbis,prtb08.sec_vend ATTRIBUTE(BLUE)
CALL busca_cliente8m()
CALL busca_vendm8()
#CALL limpia8()
CALL busca_detalle8()
NEXT OPTION "anterior"
COMMAND KEY ("N") "aNular"
PROMPT "Esta seguro?" FOR esta
LET esta = UPSHIFT(esta)
IF esta = "S" THEN
UPDATE prtb00012 set status_t = "E",
us_mod = user,
fech_mod = current
WHERE num_oc = prtb08.num_oc
UPDATE prtb00012 set status_t = "E",
us_mod = user,
fech_mod = current
WHERE num_oc = prtb08.num_oc
LET numero_msg = 39
CALL msg(numero_msg)
END IF
COMMAND "Retornar"
"Retorna al menu anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION limpia8()
FOR idx = 1 TO 10
LET arr_prtb08[idx].cod_n = NULL
LET arr_prtb08[idx].cod_grupo = NULL
LET arr_prtb08[idx].cod_tipo = NULL
LET arr_prtb08[idx].cod_sec = NULL
LET arr_prtb08[idx].descrip_esp = NULL
LET arr_prtb08[idx].bisel = NULL
LET arr_prtb08[idx].cantidad = NULL
LET arr_prtb08[idx].precio = NULL
LET arr_prtb08[idx].descuento = NULL
END FOR
FOR idx = 1 TO 5
DISPLAY arr_prtb08[idx].cod_n TO s_pedido[idx].cod_n
DISPLAY arr_prtb08[idx].cod_grupo TO s_pedido[idx].cod_grupo
DISPLAY arr_prtb08[idx].cod_tipo TO s_pedido[idx].cod_tipo
DISPLAY arr_prtb08[idx].cod_sec TO s_pedido[idx].cod_sec
DISPLAY arr_prtb08[idx].descrip_esp TO s_pedido[idx].descrip_esp
DISPLAY arr_prtb08[idx].bisel TO s_pedido[idx].bisel
DISPLAY arr_prtb08[idx].cantidad TO s_pedido[idx].cantidad
DISPLAY arr_prtb08[idx].precio TO s_pedido[idx].precio
DISPLAY arr_prtb08[idx].descuento TO s_pedido[idx].descuento
DISPLAY arr_prtb08[idx].total_p TO s_pedido[idx].total_p
END FOR
END FUNCTION
FUNCTION busca_detalle8()
DECLARE busca_d CURSOR FOR
SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec," ",a.bisel,a.cantidad,a.precio,a.descuento
FROM prtb00013 a
WHERE a.num_oc = prtb08.num_oc
LET idx = 1
FOREACH busca_d INTO arr_prtb08[idx].*
SELECT a.descrip_esp,a.unidad_med INTO arr_prtb08[idx].descrip_esp,p_totales.unidad_med
FROM iptb00002 a
WHERE a.cod_n = arr_prtb08[idx].cod_n AND
a.cod_grupo = arr_prtb08[idx].cod_grupo AND
a.cod_tipo = arr_prtb08[idx].cod_tipo AND
a.cod_sec = arr_prtb08[idx].cod_sec AND
a.status_t IS NULL
LET monto_desc = 0
LET total1 = 0
LET monto_desc = (arr_prtb08[idx].precio * arr_prtb08[idx].cantidad) * (arr_prtb08[idx].descuento /100)
LET total1 = (arr_prtb08[idx].precio * arr_prtb08[idx].cantidad) - monto_desc
LET arr_prtb08[idx].total_p = total1
DISPLAY arr_prtb08[idx].cod_n TO s_pedido[idx].cod_n
DISPLAY arr_prtb08[idx].cod_grupo TO s_pedido[idx].cod_grupo
DISPLAY arr_prtb08[idx].cod_tipo TO s_pedido[idx].cod_tipo
DISPLAY arr_prtb08[idx].cod_sec TO s_pedido[idx].cod_sec
DISPLAY arr_prtb08[idx].descrip_esp TO s_pedido[idx].descrip_esp ATTRIBUTE(BLUE)
DISPLAY arr_prtb08[idx].bisel TO s_pedido[idx].bisel ATTRIBUTE(BLUE)
DISPLAY arr_prtb08[idx].cantidad TO s_pedido[idx].cantidad
DISPLAY arr_prtb08[idx].precio TO s_pedido[idx].precio ATTRIBUTE(BLUE)
DISPLAY arr_prtb08[idx].descuento TO s_pedido[idx].descuento
DISPLAY arr_prtb08[idx].total_p TO s_pedido[idx].total_p
LET p_totales.sub_total = p_totales.sub_total + arr_prtb08[idx].total_p
LET idx = idx + 1
END FOREACH
DISPLAY BY NAME p_totales.sub_total,p_totales.unidad_med
LET total_i = (prtb08.cantidad_i * prtb08.precio_i)
LET total_mo = (prtb08.cantidad_mo * prtb08.precio_mo)
LET sub_total = (total_i + total_mo)+ p_totales.sub_total
LET sub_total1 = sub_total + prtb08.transporte
DISPLAY BY NAME prtb08.itbis
LET p_totales.total_v = sub_total1 + prtb08.itbis
DISPLAY BY NAME p_totales.total_v
END FUNCTION
{
REPORT pedido(xnumero,z)
DEFINE z RECORD
cod_n_c LIKE prtb00008.cod_n,
cod_grupo_c LIKE prtb00008.cod_grupo,
cod_tipo_c LIKE prtb00008.cod_tipo,
cod_sec_c LIKE prtb00008.cod_sec,
cantidad_c LIKE prtb00008.cantidad ,
descrip_esp_c LIKE intb00001.descrip_esp,
unidad_c LIKE intb00001.unidad_med
END RECORD,
i,xnumero INTEGER,
negrillas_on,negrillas_off,doble CHAR(2)
OUTPUT
LEFT MARGIN 0
ORDER BY xnumero
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doble = ASCII 14
LET l = (80 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN l, p_compania.nombre CLIPPED,
COLUMN 70, TODAY USING "DD/MM/YY"
LET l = (80 - LENGTH("ORDEN DE PRODUCCION"))/2
PRINT COLUMN l, "ORDEN DE PRODUCCION",
COLUMN 70, TIME
PRINT COLUMN 1, "NO. ORDEN: ",doble_on,xnumero USING "<<<<<<"
PRINT COLUMN 1, "FECHA : ",negrillas_on,prtb08.fecha
USING "DD/MM/YY",negrillas_off
PRINT COLUMN 1, "vendedor8 : ",negrillas_on,prtb08.sec_vend USING "<<<<",
" ",nombre_vend,negrillas_off
PRINT COLUMN 1, "CLIENTE : ",negrillas_on,prtb08.tipo_cliente USING "<<",
prtb08.sec_cliente
USING "<<<<"," "," ",
nombre,negrillas_off
PRINT COLUMN 1, "PRODUCTO : ",negrillas_on,prtb08.cod_n USING "&","-",
prtb08.cod_grupo USING "&","-",
prtb08.cod_tipo USING "&&","-",
prtb08.cod_sec
USING "&&&"," ",negrillas_off,descrip_esp," ",
unidad,negrillas_off
PRINT COLUMN 1, "CANTIDAD : ",negrillas_on, prtb08.cantidad USING "<<,<<<",
negrillas_off
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
PRINT "COMPOSICION PRODUCTO..."
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
ON EVERY ROW
PRINT COLUMN 1, z.cod_n_c USING "&","-",
z.cod_grupo_c USING "&","-",
z.cod_tipo_c USING "&&","-",
z.cod_sec_c USING "&&&","-",
" ",z.descrip_esp_c," ",z.unidad_c,
" ",z.cantidad_c USING "###,###.###"
PAGE TRAILER
PRINT COLUMN 10, "-------------------",
COLUMN 35, "-------------------"
PRINT COLUMN 13, "AUTORIZADO POR",
COLUMN 39, "REVISADO POR"
END REPORT
}
FUNCTION busca_cliente8()
OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd002"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET INT_FLAG = false
CONSTRUCT criterio ON a.nombre FROM nombre
LET selec2 = "SELECT a.tipo_cliente, a.sec_cliente, a.nombre ",
" FROM vetb00004 a",
" WHERE ",
"a.status_t is NULL AND ",
criterio clipped,
"ORDER BY 1,2 "
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_c
END IF
PREPARE busca_cliente8s FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_clientes CURSOR FOR busca_cliente8s
LET idx = 1
FOREACH buscar_clientes INTO arr_clientes[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Cliente donde esta el cursor"
DISPLAY ARRAY arr_clientes TO s_clientes.*
LET curr1 = arr_curr()
LET prtb08.tipo_cliente = arr_clientes[curr1].tipo_cliente
LET prtb08.sec_cliente = arr_clientes[curr1].sec_cliente
LET nombre = arr_clientes[curr1].nombre
LABEL salir_consulta_c:
CLOSE WINDOW busqueda
END FUNCTION
FUNCTION busca_cliente8m()
SELECT a.nombre INTO nombre
FROM vetb00004 a
WHERE a.tipo_cliente = prtb08.tipo_cliente AND
a.sec_cliente = prtb08.sec_cliente AND
a.status_t IS NULL
SELECT a.descrip INTO descrip_p
FROM vetb00012 a
WHERE a.cond_pago = prtb08.cond_pago AND
a.status_t IS NULL
DISPLAY BY NAME nombre,descrip_p ATTRIBUTE(BLUE)
END FUNCTION
FUNCTION busca_product8()
SELECT a.descrip_esp,a.unidad_med INTO descrip_esp,unidad
FROM iptb00002 a
WHERE a.cod_n = prtb08.cod_n AND
a.cod_grupo = prtb08.cod_grupo AND
a.cod_tipo = prtb08.cod_tipo AND
a.cod_sec = prtb08.cod_sec
DISPLAY BY NAME unidad,descrip_esp ATTRIBUTE(BLUE)
END FUNCTION
FUNCTION vendedor8es()
DEFINE descrip6 LIKE adtb00003.nom1_emp
OPEN WINDOW busqueda2 AT 7,12 WITH FORM "vefmwd001"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET INT_FLAG = false
CONSTRUCT criterio ON a.nom1_emp FROM descrip6
LET selec2 = "SELECT UNIQUE a.num_emp,a.nom1_emp,a.apell1_emp ",
" FROM adtb00003 a,vetb00028 b",
" WHERE a.num_emp = b.sec_vend AND ",
"a.status_t is NULL AND ",
criterio clipped,
"ORDER BY 1 "
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_e
END IF
PREPARE busca_empleados FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
LET bandera = 0
END IF
END IF
DECLARE buscar_empleados CURSOR FOR busca_empleados
LET idx = 1
FOREACH buscar_empleados INTO arr_empleados[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF INT_FLAG THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET empleados[idx].cod_emp_sec = arr_empleados[idx].num_emp
LET empleados[idx].descrip6 =
arr_empleados[idx].nom1_emp clipped," ",arr_empleados[idx].apell1_emp clipped
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Empleado donde esta el cursor"
DISPLAY ARRAY empleados TO s_empleados.*
LET curr1 = scr_line()
LET prtb08.sec_vend = empleados[curr1].cod_emp_sec
LET nombre_vend = empleados[curr1].descrip6
LABEL salir_consulta_e:
CLOSE WINDOW busqueda2
END FUNCTION
FUNCTION busca_vendm8()
IF prtb08.sec_vend IS NOT NULL THEN
SELECT a.nom1_emp,a.apell1_emp INTO nombres,apellidos
FROM adtb00003 a
WHERE a.num_emp = prtb08.sec_vend
LET nombre_vend = nombres CLIPPED," ",apellidos CLIPPED
DISPLAY BY NAME nombre_vend ATTRIBUTE(BLUE)
END IF
END FUNCTION
+324
View File
@@ -0,0 +1,324 @@
{
------------------------------------------------------------------
PROGRAMA : PRPRMT010
OBJETIVO : Capturar, Modificar, Eliminar registros de la
Tabla de Areas de Instalacion.
PROGRAMPROR : Victor Gomez C.
FECHA REALIZACION : Friday, October 05, 2001
------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "decomarmol" USER usuarios USING clave
CALL prprmt010()
END MAIN
FUNCTION prprmt010()
CLEAR SCREEN
OPTIONS
FORM LINE 9,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmmt010 FROM "prfmmt010"
DISPLAY FORM prfmmt010
MENU "OPCIONES"
COMMAND "Adicionar"
"<Esc> Adiciona Registro <Supr> Cancela Operacion"
let int_flag = false
CLEAR FORM
CALL prpcpr010()
COMMAND "Consultar-modificar"
"<Esc> Realiza Busqueda <Supr> Cancela Operacion"
let int_flag = false
CALL prpcmf010()
COMMAND "Imprimir"
let int_flag = false
CALL primp010()
COMMAND "Salir" "Retorna Menu Anterior"
EXIT MENU
END MENU
END FUNCTION
FUNCTION prpcpr010()
# WHENEVER ERROR CONTINUE
## CAPTURA LOS DATOS QUE VA A CONTENER EL REGISTRO
INPUT BY NAME prtb16.*
BEFORE FIELD area_num
SELECT MAX(area_num) INTO prtb16.area_num FROM prtb00016
IF prtb16.area_num IS NULL THEN
LET prtb16.area_num = 0
END IF
LET prtb16.area_num = prtb16.area_num + 1
DISPLAY BY NAME prtb16.area_num
NEXT FIELD nombre_area
{
AFTER FIELD area_num
IF prtb16.area_num IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD area_num
ELSE
SELECT a.* INTO prtb16.* FROM prtb00006 a
WHERE a.area_num = prtb16.area_num
IF status >= 0 THEN
IF status != NOTFOUND THEN
IF prtb16.status_t = "E" THEN
LET numero_msg = 36
CALL msg(numero_msg)
NEXT FIELD area_num
END IF
DISPLAY BY NAME prtb16.*
LET numero_msg = 12
CALL msg(numero_msg)
NEXT FIELD area_num
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
END IF
}
AFTER FIELD nombre_area
IF prtb16.nombre_area is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nombre_area
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
INSERT INTO prtb00016 VALUES (prtb16.*)
UPDATE prtb00016 SET (us_crea,fech_crea) = (SUSER_SNAME(),GETDATE())
WHERE @area_num = prtb16.area_num
LET numero_msg = 1
CALL msg(numero_msg)
CLEAR FORM
END FUNCTION
FUNCTION prpcmf010()
## AQUI SE PREPARA PARA LA CAPTURA DEL CRITERIO DE SELECCION PARA LA
## MODIFICACION DE REGISTROS
# WHENEVER ERROR CONTINUE
CONSTRUCT BY NAME criterio ON a.area_num,a.nombre_area
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
LET SELEC = " SELECT UNIQUE a.* FROM prtb00016 a ",
" WHERE a.status_t is null and ",criterio clipped," ORDER BY a.area_num"
PREPARE busca FROM selec
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
DECLARE dato SCROLL CURSOR FOR busca
OPEN dato
FETCH FIRST dato INTO prtb16.*
IF status >= 0 THEN
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
RETURN
END IF
ELSE
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
END IF
DISPLAY BY NAME prtb16.*
MENU "OPCIONES "
COMMAND "Siguiente"
"Presenta en pantalla el proximo registro encontrpro"
FETCH NEXT dato INTO prtb16.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 4
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb16.*
COMMAND "Anterior"
"Presenta en pantalla el registro anterior encontrpro"
FETCH PREVIOUS dato INTO prtb16.*
IF STATUS = NOTFOUND THEN
LET numero_msg = 5
CALL msg(numero_msg)
END IF
DISPLAY BY NAME prtb16.*
COMMAND "Primero"
"Presenta en pantalla el primer registro encontrpro"
FETCH FIRST dato INTO prtb16.*
DISPLAY BY NAME prtb16.*
LET numero_msg = 5
CALL msg(numero_msg)
COMMAND "Ultimo"
"Presenta en pantalla el ultimo registro encontrpro"
FETCH LAST dato INTO prtb16.*
DISPLAY BY NAME prtb16.*
LET numero_msg = 4
CALL msg(numero_msg)
COMMAND "Escoger"
"<Esc> Actualiza Registro <Supr> Cancela Operacion"
IF prtb16.status_t = "E" THEN
LET numero_msg = 39
CALL msg(numero_msg)
RETURN
END IF
## SE SELECCIONAN LOS CAMPOS QUE SON MODIFICABLES
INPUT BY NAME prtb16.nombre_area,
prtb16.us_crea,
prtb16.fech_crea,
prtb16.us_mod,
prtb16.fech_mod WITHOUT DEFAULTS
AFTER FIELD nombre_area
IF prtb16.nombre_area is null THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD nombre_area
END IF
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
CLEAR FORM
RETURN
END IF
CALL integridad()
IF bandera = 1 THEN
CLEAR SCREEN
RETURN
END IF
## AQUI SE ACTUALIZA EL REGISTRO
UPDATE prtb00016 SET nombre_area = prtb16.nombre_area,
us_mod = SUSER_SNAME(),
fech_mod = GETDATE()
WHERE @area_num = prtb16.area_num
LET numero_msg = 13
CALL msg(numero_msg)
## AQUI SE ELIMINAN LOS REGISTROS
COMMAND KEY ("L") "eLiminar"
UPDATE prtb00016 SET status_t = "E"
WHERE a.area_num = prtb16.area_num
LET numero_msg = 39
CALL msg(numero_msg)
COMMAND "Retornar"
"Retorna al menu anterior"
CLEAR FORM
EXIT MENU
END MENU
END FUNCTION
FUNCTION primp010()
DEFINE pprtb16 RECORD LIKE prtb00016.*
DISPLAY "IMPRESION EN PROCESO...." AT 20,1
DECLARE busca_area CURSOR FOR
SELECT a.* FROM prtb00016 a
WHERE a.status_t IS NULL
ORDER BY 2
START REPORT imparea TO "c:\\archivo"
FOREACH busca_area INTO pprtb16.*
OUTPUT TO REPORT imparea(pprtb16.*)
END FOREACH
FINISH REPORT imparea
RUN "type c:\\archivo > %USPRINT%"
DISPLAY " " AT 20,1
END FUNCTION
REPORT imparea(x)
DEFINE x RECORD LIKE prtb00016.*,
normal,comp_on,comp_off,doce,negrillas_on,negrillas_off,
doble_on,doble_off CHAR(2),
l SMALLINT
FORMAT
PAGE HEADER
LET normal = ASCII 27, ASCII 80
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ascii 77
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doble_on = ASCII 14
LET doble_off = ASCII 20
PRINT COLUMN 1, normal
LET l = (60 - LENGTH(p_compania.nombre))/2
PRINT COLUMN l,doce,doble_on, p_compania.nombre CLIPPED,doble_off,
COLUMN 52,TODAY USING "DD/MM/YYYY"
LET l = (74- LENGTH("MAESTRA DE AREAS"))/2
PRINT COLUMN l, "MAESTRA DE AREAS",
COLUMN 70, "Pagina: ",pageno USING "<<<"
PRINT COLUMN 1, "-----------------------------------------------------------------"
PRINT COLUMN 1, "AREAS........."
PRINT COLUMN 1, "-----------------------------------------------------------------"
ON EVERY ROW
PRINT COLUMN 1, x.area_num USING "<<<<",
COLUMN 10, x.nombre_area
ON LAST ROW
SKIP 1 LINE
PRINT COLUMN 1,"Total Registros: ",COUNT(*) USING "<<<<"
END REPORT
File diff suppressed because it is too large Load Diff
+57
View File
@@ -0,0 +1,57 @@
<?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="31405" version="6.00">
<report:Settings RWPageWidth="letterlength" RWPageLength="letterwidth" RWLeftMargin="0.5inch" RWTopMargin="0.5inch" RWRightMargin="0.5inch" RWBottomMargin="0.5inch">
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../PRDIR/prprmt011.rdd" RWFglReportName="rdibujo"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="Page Root" width="max" length="max">
<LAYOUTNODE name="Page Header" width="max" length="min" port="anyPageHeader">
<MINIPAGE name="StripeLayouter3" width="min" length="max" layoutDirection="leftToRight">
<WORDBOX name="Report Title" x="0" y="max/2" anchorX="0" anchorY="0.5" alignment="baseline" fontSize="25" baselineType="leftleft" floatingBehavior="enclosed" text="MARMOTECH, S. A."/>
<WORDBOX name="txtpagina" x="2.2" y="max-2cm" floatingBehavior="enclosed" text="PAGINA"/>
<PAGENOBOX name="PageNoBox" x="1.23857" y="max" anchorX="0" anchorY="1" alignment="baseline" baselineType="leftleft" floatingBehavior="enclosed" textAlignment="right"/>
</MINIPAGE>
<MINIPAGE name="Table Header" width="min" length="max" layoutDirection="leftToRight">
<WORDBOX name="Spacer" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
<WORDBOX name="WordBox" width="3cm" floatingBehavior="enclosed" text="ORDEN"/>
<WORDBOX name="WordBox1" width="3cm" floatingBehavior="enclosed" text="FECHA"/>
<WORDBOX name="WordBox2" width="8cm" floatingBehavior="enclosed" text="CLIENTE"/>
<WORDBOX name="WordBox3" width="6cm" floatingBehavior="enclosed" text="COTIZACION"/>
<rtl:input-variable name="tiempo" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="hora" width="4.2cm" floatingBehavior="enclosed" text="{{tiempo.trim()}}"/>
</MINIPAGE>
<MINIPAGE name="Separator" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight"/>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="Table Row" width="min" length="max" layoutDirection="leftToRight">
<WORDBOX name="Spacer_1" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
<rtl:input-variable name="znumero" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox4" width="3cm" floatingBehavior="enclosed" text="{{znumero.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="xfecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox5" width="3cm" floatingBehavior="enclosed" text="{{xfecha}}"/>
<rtl:input-variable name="xtipo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="xsec" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="xcliente" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox6" width="6cm" floatingBehavior="enclosed" text="{{xtipo.toString()+&quot;-&quot;+xsec.toString()+&quot; &quot;+xcliente.trim()}}"/>
<rtl:input-variable name="xcotiza" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox7" width="4cm" floatingBehavior="enclosed" textAlignment="right" text="{{xcotiza.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
</MINIPAGE>
</rtl:match>
<LAYOUTNODE name="LayoutNode" width="min" length="min" floatingBehavior="enclosed">
<WORDBOX name="Spacer_1_1" length="2cm" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
<rtl:input-variable name="xruta" type="FGLString" expectedLocation="expectedBefore"/>
<IMAGEBOX name="ImageBox" width="700" floatingBehavior="enclosed" url="{{xruta.trim()}}" intendedResolution="96"/>
</LAYOUTNODE>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
File diff suppressed because it is too large Load Diff
+368
View File
@@ -0,0 +1,368 @@
{
==============================================================================
PROGRAMA : PRPRRP116
SISTEMA : PRODUCCION
OBJETIVO : LISTAR ORDENES DE PRODUCCION
AUTOR : JUAN F. SOTO
FECHA : SEPTIEMBRE 9, 2010
==============================================================================
}
GLOBALS
"prprgb000.4gl"
DEFINE rango RECORD
fecha_inicial DATE,
fecha_final DATE
END RECORD,
porpantalla CHAR(1)
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CALL ARG_VAL(4) RETURNING copia
CONNECT to "decomarmol" USER usuarios USING clave
SELECT a.* INTO p_compania.* FROM companias a
CALL prprrp016()
END MAIN
FUNCTION prprrp016()
DEFINE opcion CHAR(1),
cantidad_f,cantidad_o DECIMAL(12,2),cant_orden INTEGER
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
DEFINE busqueda RECORD
cotizacion_no INT,
fecha CHAR(10),
tipo_cliente SMALLINT,
sec_cliente INT,
nombre_proyecto CHAR(40),
direccion_proyecto CHAR(40),
telefono_r CHAR(15),
nombre CHAR(40),
num_oc INT,
fecha_oc CHAR(10),
fecha_entrega CHAR(10),
fecha_cierre CHAR(10),
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(40),
unidad_med CHAR(4),
cantidad DEC(12,3),
precio DEC(12,2),
cantidad_2 DEC(12,3),
cod_mov CHAR(60),
fecha_doc CHAR(10),
documento INT,
status_mov SMALLINT,
simbolo CHAR(6),
vendedor CHAR(50),
monto_cotizacion DEC(12,2),
condicion CHAR(30),
estado_orden CHAR(20),
avance CHAR(20),
monto_avance DEC(12,2),
fecha_avance CHAR(10),
codigo CHAR(25),
telefono VARCHAR(15),
celular VARCHAR(15),
email VARCHAR(80) ,
contacto LIKE vetb00050.contacto
END RECORD,
salida,visualiza CHAR(20)
OPTIONS
PROMPT LINE 23,
FORM LINE 8,
ERROR LINE 23
OPEN FORM prfmrp016 FROM "prfmrp116"
DISPLAY FORM prfmrp016
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
CONSTRUCT BY NAME criterio ON a.cotizacion_no,c.num_oc,c.cerrada,a.sec_vend,a.fecha,a.tipo_cliente,a.sec_cliente,
a.nombre_cliente,a.telefono_r,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec
END CONSTRUCT
INPUT BY NAME salida,visualiza,historico
END INPUT
ON ACTION ejecutar
IF historico = 'N' THEN
LET selec =
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),a.tipo_cliente,a.sec_cliente,a.nombre_proyecto,",
"a.direccion_proyecto,a.telefono_r, ",
"b.nombre,c.num_oc,CONVERT(CHAR(10),c.fecha_oc,103),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad_2,g.descrip_mov + '('+ cast(g.cod_mov as char(3))+')', ",
" CONVERT(CHAR(10),f.fecha,103),f.num_doc,g.status_mov,i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
"FROM vetb00050 a inner join ",
" seg0007 l on l.usuario = SUSER_SNAME() AND a.sec_vend = l.sec_vend inner join ",
"vetb00012 k on a.cond_pago = k.cond_pago inner join ",
"vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
"vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
" inner join vetb00061 i on a.ventas = i.ventas ",
"inner join adtb00003 j on a.sec_vend = j.num_emp ",
"left outer join ",
"prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
"a.cotizacion_no = c.cotizacion_no and c.status_t is null left outer join ",
"iptb00006 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
"cast(c.num_oc as char(6)) = f.conduce_no and f.cod_mov in (30,31,55,12,13) inner join ",
"iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
"left outer join ",
"iptb00005 g on f.cod_mov = g.cod_mov ",
"WHERE ",criterio clipped,
" and a.status_t is null and f.status_t is null ",
# "ORDER BY a.cotizacion_no,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec,f.fecha,f.cod_mov,f.num_doc",
" UNION ",
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),a.tipo_cliente,a.sec_cliente,a.nombre_proyecto,",
"a.direccion_proyecto,a.telefono_r, ",
"b.nombre,c.num_oc,CONVERT(CHAR(10),c.fecha_oc,103),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad,'FACTURA VENTA', ",
" CONVERT(CHAR(10),g.fecha_factura,103),f.factura,'3',i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
"FROM vetb00050 a inner join ",
" seg0007 l on l.usuario = SUSER_SNAME() AND a.sec_vend = l.sec_vend inner join ",
"vetb00012 k on a.cond_pago = k.cond_pago inner join ",
"vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
"vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
" inner join vetb00061 i on a.ventas = i.ventas ",
"inner join adtb00003 j on a.sec_vend = j.num_emp ",
"left outer join ",
"prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
"a.cotizacion_no = c.cotizacion_no left outer join ",
"vetb00002 g on ",
" g.orden = c.num_oc inner join ",
"vetb00003 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
" f.factura = g.factura inner join ",
"iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
"WHERE ",criterio clipped,
" and a.status_t is null and f.status_t is null "
# "ORDER BY a.cotizacion_no,d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_Sec,f.fecha,f.cod_mov,f.num_doc"
ELSE
LET selec =
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),a.tipo_cliente,a.sec_cliente,a.nombre_proyecto,",
"a.direccion_proyecto,a.telefono_r, ",
"b.nombre,c.num_oc,CONVERT(CHAR(10),c.fecha_oc,103),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad_2,g.descrip_mov + '('+ cast(g.cod_mov as char(3))+')', ",
" CONVERT(CHAR(10),f.fecha,103),f.num_doc,g.status_mov,i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
"FROM historicoMTECH.dbo.vetb00050 a inner join ",
" historicoMTECH.dbo.vetb00012 k on a.cond_pago = k.cond_pago inner join ",
"historicoMTECH.dbo.vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
"historicoMTECH.dbo.vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
" inner join historicoMTECH.dbo.vetb00061 i on a.ventas = i.ventas ",
"inner join historicoMTECH.dbo.adtb00003 j on a.sec_vend = j.num_emp ",
"left outer join ",
"historicoMTECH.dbo.prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
"a.cotizacion_no = c.cotizacion_no and c.status_t is null left outer join ",
"historicoMTECH.dbo.iptb00006 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
"cast(c.num_oc as char(6)) = f.conduce_no and f.cod_mov in (30,31,55,12,13) inner join ",
"historicoMTECH.dbo.iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
"left outer join ",
"historicoMTECH.dbo.iptb00005 g on f.cod_mov = g.cod_mov ",
"WHERE ",criterio clipped,
" and a.status_t is null and f.status_t is null ",
" UNION ",
"SELECT a.cotizacion_no,CONVERT(CHAR(10),a.fecha,103),a.tipo_cliente,a.sec_cliente,a.nombre_proyecto,",
"a.direccion_proyecto,a.telefono_r, ",
"b.nombre,c.num_oc,CONVERT(CHAR(10),c.fecha_oc,103),CONVERT(CHAR(10),c.fecha_entrega,103),CONVERT(CHAR(10),c.fecha_cierre,103),d.cod_n,d.cod_grupo,d.cod_tipo,d.cod_sec,",
"e.descrip_esp,e.unidad_med, d.cantidad,d.precio,f.cantidad,'FACTURA VENTA', ",
" CONVERT(CHAR(10),g.fecha_factura,103),f.factura,'3',i.simbolo,'('+CAST(a.sec_vend as char(7))+')'+RTRIM(j.nom1_emp)+' '+RTRIM(j.nom2_emp)+' '+RTRIM(j.apell1_emp), ",
" a.total_neto, k.descrip,c.cerrada,a.telefono_o,a.celular,a.email,a.contacto ",
"FROM historicoMTECH.dbo.vetb00050 a inner join ",
"historicoMTECH.dbo.vetb00012 k on a.cond_pago = k.cond_pago inner join ",
"historicoMTECH.dbo.vetb00004 b on a.tipo_cliente = b.tipo_cliente and a.sec_cliente = b.sec_cliente inner join ",
"historicoMTECH.dbo.vetb00051 d on a.cotizacion_no = d.cotizacion_no ",
" inner join historicoMTECH.dbo.vetb00061 i on a.ventas = i.ventas ",
"inner join historicoMTECH.dbo.adtb00003 j on a.sec_vend = j.num_emp ",
"left outer join ",
"historicoMTECH.dbo.prtb00012 c on a.cotizacion_no = c.cotizacion_no and b.tipo_cliente = c.tipo_cliente and b.sec_cliente = c.sec_cliente and ",
"a.cotizacion_no = c.cotizacion_no left outer join ",
"historicoMTECH.dbo.vetb00002 g on ",
" g.orden = c.num_oc inner join ",
"historicoMTECH.dbo.vetb00003 f on d.cod_n = f.cod_n and d.cod_grupo = f.cod_grupo and d.cod_tipo = f.cod_tipo and d.cod_Sec = f.cod_Sec and ",
" f.factura = g.factura inner join ",
"historicoMTECH.dbo.iptb00002 e on d.cod_n = e.cod_n and d.cod_grupo = e.cod_grupo and d.cod_tipo = e.cod_tipo and d.cod_Sec = e.cod_Sec ",
"WHERE ",criterio clipped,
" and a.status_t is null and f.status_t is null "
END IF
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
LET r_filename = salida CLIPPED
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET r_output=visualiza CLIPPED
LET preview=1
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 handler IS NOT NULL THEN -- report engine was configured ok
START REPORT reporte_16 TO XML HANDLER handler
FOREACH busca INTO busqueda.cotizacion_no,busqueda.fecha,busqueda.tipo_cliente,
busqueda.sec_cliente,busqueda.nombre_proyecto,busqueda.direccion_proyecto,
busqueda.telefono_r,busqueda.nombre,busqueda.num_oc,busqueda.fecha_oc,
busqueda.fecha_entrega,busqueda.fecha_cierre,busqueda.cod_n,
busqueda.cod_grupo,busqueda.cod_tipo,busqueda.cod_sec,
busqueda.descrip_esp,busqueda.unidad_med,busqueda.cantidad,
busqueda.precio,busqueda.cantidad_2,busqueda.cod_mov,
busqueda.fecha_doc,busqueda.documento,busqueda.status_mov,
busqueda.simbolo,busqueda.vendedor,busqueda.monto_cotizacion,
busqueda.condicion,busqueda.estado_orden,busqueda.telefono,
busqueda.celular,busqueda.email,busqueda.contacto
IF STATUS = NOTFOUND THEN
CALL fgl_winmessage("WARNING","NO EXISTEN REGISTROS CON ESA CONDICION","SOP")
EXIT FOREACH
END IF
IF busqueda.cantidad_2 IS NULL THEN
LET busqueda.cantidad_2 = 0
END IF
LET busqueda.avance = null
LET busqueda.fecha_avance= NULL
LET busqueda.monto_avance = NULL
SELECT MAX(a.num_doc),MAX(a.fecha_orig)
INTO busqueda.avance,busqueda.fecha_avance,
busqueda.monto_avance
FROM cctb00001 a
WHERE a.num_cheque = busqueda.cotizacion_no and
a.tipo_Doc = 'AV' and a.tipo_cliente = busqueda.tipo_cliente and
a.sec_cliente = busqueda.sec_cliente and a.status_t is null and
a.fecha_orig > '08/01/2009'
LET busqueda.codigo = busqueda.cod_n using "&&&&","-",
busqueda.cod_grupo USING "&&&&","-",
busqueda.cod_tipo USING "&&&&","-",
busqueda.cod_Sec USING "&&&"
IF busqueda.estado_orden = "N" THEN
LET busqueda.estado_orden = "ABIERTA"
END IF
IF busqueda.estado_orden = "S" THEN
LET busqueda.estado_orden = "CERRADA"
END IF
OUTPUT TO REPORT reporte_16(busqueda.*)
END FOREACH
FINISH REPORT reporte_16
END IF
AFTER DIALOG
IF int_flag THEN
CALL msg(2)
LET int_flag = false
RETURN
END IF
IF salida IS NULL THEN
CALL msg(16)
NEXT FIELD salida
END IF
IF visualiza IS NULL THEN
CALL msg(16)
NEXT FIELD visualiza
END IF
ON ACTION CANCEL
LET INT_FLAG = FALSE
EXIT DIALOG
END DIALOG
END FUNCTION
REPORT reporte_16(x)
DEFINE x RECORD
cotizacion_no INT,
fecha CHAR(10),
tipo_cliente SMALLINT,
sec_cliente INT,
nombre_proyecto CHAR(40),
direccion_proyecto CHAR(40),
telefono_r CHAR(15),
nombre CHAR(40),
num_oc INT,
fecha_oc CHAR(10),
fecha_entrega CHAR(10),
fecha_cierre CHAR(10),
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
descrip_esp CHAR(40),
unidad_med CHAR(4),
cantidad DEC(12,3),
precio DEC(12,2),
cantidad_2 DEC(12,3),
cod_mov CHAR(60),
fecha_doc CHAR(10),
documento INT,
status_mov SMALLINT,
simbolo CHAR(6),
vendedor CHAR(50),
monto_cotizacion DEC(12,2),
condicion CHAR(30),
estado_orden CHAR(20),
avance CHAR(20),
monto_avance DEC(12,2),
fecha_avance CHAR(10),
codigo CHAR(25),
telefono VARCHAR(15),
celular VARCHAR(15),
email VARCHAR(80),
contacto LIKE vetb00050.contacto
END RECORD,
balance DEC(12,3),
v CHAR(1)
ORDER BY x.cotizacion_no,x.num_oc,x.codigo
FORMAT
BEFORE GROUP OF x.cotizacion_no
PRINTX x.cotizacion_no,x.direccion_proyecto,x.nombre_proyecto,
x.tipo_cliente,x.sec_cliente,x.telefono_r,x.num_oc,x.fecha,x.fecha_cierre,
x.fecha_entrega,x.fecha_oc
BEFORE GROUP OF x.codigo
PRINTX x.codigo,x.descrip_esp,x.unidad_med
LET balance = x.cantidad
ON EVERY ROW
IF x.status_mov <> 3 THEN
LET balance = balance + x.cantidad_2
END IF
PRINTX x.nombre,x.cantidad,x.cantidad_2,x.cod_mov,x.fecha_Doc,p_compania.nombre,
x.documento,balance,x.precio,x.simbolo,v,x.avance,x.fecha_avance,
x.monto_avance,x.vendedor,x.monto_cotizacion,x.condicion,x.status_mov,
x.estado_orden,x.telefono,x.celular,x.email,x.contacto
LET x.cantidad = 0
END REPORT
+175
View File
@@ -0,0 +1,175 @@
<?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="31405" version="6.00">
<report:Settings RWPageWidth="letterlength" RWPageLength="letterwidth" RWLeftMargin="0.5inch" RWTopMargin="0.5inch" RWRightMargin="0.5inch" RWBottomMargin="0.5inch">
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../PRDIR/prprmt011.rdd" RWFglReportName="reporte_16a"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="Page Root" width="max" length="max" layoutDirection="topToBottom" swapX="false">
<LAYOUTNODE name="Page Header" width="max" length="min" port="anyPageHeader">
<MINIPAGE name="StripeLayouter3" width="min" length="max" layoutDirection="leftToRight" swapX="false">
<WORDBOX name="Report Title" x="0" y="max/2" anchorX="0" anchorY="0.5" alignment="baseline" fontSize="25" layoutDirection="topToBottom" swapX="false" baselineType="leftleft" floatingBehavior="enclosed" text="{{&quot;MARMOTECH, S. A.&quot;}}"/>
<PAGENOBOX name="PageNoBox" x="1.23857" y="max" anchorX="0" anchorY="1" alignment="baseline" layoutDirection="topToBottom" swapX="false" baselineType="leftleft" floatingBehavior="enclosed" textAlignment="right"/>
<WORDBOX name="WordBox86" y="max-90" width="50" alignment="baseline" baselineType="leftleft" text="PAGINA"/>
</MINIPAGE>
<MINIPAGE name="MiniPage16" width="min" length="min" alignment="center" fontBold="true">
<WORDBOX name="WordBox85" alignment="baseline" baselineType="leftleft" text="ANALISIS COTIZACIONES, ORDENES PEDIDOS"/>
</MINIPAGE>
<MINIPAGE name="Separator" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<rtl:match name="Group cotizacion_no" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="Layout Node2" width="min" length="min" fontSize="10" layoutDirection="topToBottom">
<MINIPAGE name="Separator1" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
<MINIPAGE name="GENERAL" width="min" length="min" layoutDirection="leftToRight">
<WORDBOX name="WordBox4" width="110" alignment="baseline" fontBold="true" baselineType="leftleft" text="COTIZACION NO.:"/>
<WORDBOX name="WordBox5" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.cotizacion_no" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox6" width="40" alignment="baseline" fontSize="12" baselineType="leftleft" text="{{x.cotizacion_no.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<WORDBOX name="WordBox7" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox68" width="107" alignment="baseline" fontBold="true" baselineType="leftleft" text="MONTO COTIZACION"/>
<WORDBOX name="WordBox69" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.monto_cotizacion" type="FGLNumeric" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox70" width="40" alignment="baseline" baselineType="leftleft" text="{{x.monto_cotizacion.format(&quot;###,###,###.##&quot;)}}"/>
<WORDBOX name="WordBox75" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox8" width="103" alignment="baseline" fontBold="true" baselineType="leftleft" text="FECHA COTIZACION"/>
<WORDBOX name="WordBox9" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.fecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox10" width="40" alignment="baseline" baselineType="leftleft" text="{{x.fecha.value}}"/>
<WORDBOX name="WordBox11" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox12" width="105" alignment="baseline" fontBold="true" baselineType="leftleft" text="FECHA COMPRIMISO"/>
<WORDBOX name="WordBox13" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.fecha_entrega" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox14" width="30" alignment="baseline" baselineType="leftleft" text="{{x.fecha_entrega.value}}"/>
<WORDBOX name="WordBox65" width="80" alignment="baseline" fontBold="true" baselineType="leftleft" textAlignment="right" text="MONEDA"/>
<WORDBOX name="WordBox66" width="10" alignment="baseline" baselineType="leftleft"/>
<rtl:input-variable name="x.simbolo" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox67" width="30" alignment="baseline" baselineType="leftleft" text="{{x.simbolo.value}}"/>
</MINIPAGE>
<MINIPAGE name="Separator2" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<LAYOUTNODE name="Layout Node4" width="min" length="min">
<MINIPAGE name="MiniPage13" width="min" length="min" layoutDirection="leftToRight">
<WORDBOX name="WordBox15" width="110" alignment="baseline" fontBold="true" baselineType="leftleft" text="NOMBRE CLIENTE"/>
<WORDBOX name="WordBox16" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.nombre" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox17" width="167" alignment="baseline" baselineType="leftleft" text="{{x.nombre.value}}"/>
<WORDBOX name="WordBox83" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox76" width="70" alignment="baseline" fontBold="true" baselineType="leftleft" text="VENDEDOR"/>
<WORDBOX name="WordBox77" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.vendedor" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox78" width="120" alignment="baseline" baselineType="leftleft" text="{{x.vendedor}}"/>
<WORDBOX name="WordBox87" width="125" alignment="baseline" baselineType="leftleft"/>
<WORDBOX name="WordBox79" width="105" alignment="baseline" fontBold="true" baselineType="leftleft" text="ESTADO ORDEN"/>
<WORDBOX name="WordBox80" width="10" alignment="baseline" baselineType="leftleft"/>
<rtl:input-variable name="x.estado_orden" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox81" width="3cm" alignment="baseline" baselineType="leftleft" text="{{x.estado_orden}}"/>
<WORDBOX name="WordBox" width="2.5cm" fontBold="true" floatingBehavior="enclosed" text="TELEFONO"/>
<rtl:input-variable name="x.telefono_r" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox101" width="3cm" floatingBehavior="enclosed" text="{{x.telefono_r}}"/>
</MINIPAGE>
<MINIPAGE name="Separator3" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<LAYOUTNODE name="Layout Node3" width="min" length="min" fontSize="10" layoutDirection="topToBottom">
<MINIPAGE name="CLIENTE" width="min" length="min" layoutDirection="leftToRight">
<WORDBOX name="WordBox50" width="77" alignment="baseline" fontBold="true" baselineType="leftleft" text="ORDEN"/>
<WORDBOX name="WordBox51" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.num_oc" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox53" width="40" alignment="baseline" fontSize="12" baselineType="leftleft" text="{{x.num_oc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<WORDBOX name="WordBox54" width="20" alignment="baseline" baselineType="leftleft"/>
<WORDBOX name="WordBox55" width="103" alignment="baseline" fontBold="true" baselineType="leftleft" text="AVANCE"/>
<WORDBOX name="WordBox56" width="10" alignment="baseline" baselineType="leftleft"/>
<rtl:input-variable name="x.avance" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox57" width="40" alignment="baseline" baselineType="leftleft" text="{{x.avance.value}}"/>
<WORDBOX name="WordBox58" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox59" width="103" alignment="baseline" fontBold="true" baselineType="leftleft" text="FECHA AVANCE"/>
<WORDBOX name="WordBox60" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.fecha_avance" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox61" width="30" alignment="baseline" baselineType="leftleft" text="{{x.fecha_avance.value}}"/>
<WORDBOX name="WordBox62" width="83" alignment="baseline" fontBold="true" baselineType="leftleft" text="MONTO AVANCE"/>
<WORDBOX name="WordBox63" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.monto_avance" type="FGLNumeric" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox64" width="30" alignment="baseline" baselineType="leftleft" text="{{x.monto_avance.format(&quot;###,###,###.##&quot;)}}"/>
</MINIPAGE>
<MINIPAGE name="INFORMACION" width="min" length="min" layoutDirection="leftToRight">
<WORDBOX name="WordBox22" width="77" alignment="baseline" fontBold="true" baselineType="leftleft" text="FECHA ORDEN"/>
<WORDBOX name="WordBox24" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.fecha_oc" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox25" width="40" alignment="baseline" baselineType="leftleft" text="{{x.fecha_oc.value}}"/>
<WORDBOX name="WordBox74" width="20" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox71" width="103" alignment="baseline" fontBold="true" baselineType="leftleft" text="CONDICION"/>
<WORDBOX name="WordBox72" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.condicion" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox73" alignment="baseline" baselineType="leftleft" text="{{x.condicion}}"/>
</MINIPAGE>
<MINIPAGE name="Separator5" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<rtl:match name="Group num_oc" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<rtl:match name="Group codigo" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="LayoutNode1" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<MINIPAGE name="Separator3_1" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<LAYOUTNODE name="LayoutNode" width="min" length="min" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="x.descrip_esp" type="FGLString" expectedLocation="expectedHere"/>
<rtl:input-variable name="x.unidad_med" type="FGLString" expectedLocation="expectedHere"/>
<rtl:input-variable name="x.codigo" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox2" width="width(&quot;M&quot;)*30" alignment="near" baselineType="leftleft" text="{{x.descrip_esp.value+&quot; &quot;+x.unidad_med.value+&quot; &quot;+x.codigo.value}}"/>
<WORDBOX name="WordBox96" width="1.5cm" alignment="far" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.cantidad" type="FGLNumeric" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox95" width="6cm" alignment="baseline" baselineType="leftleft" text="{{&quot;Balance Inicial: &quot;+x.cantidad.format(&quot;###,###.#####&quot;)}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="Layout Node5" width="min" length="min">
<MINIPAGE name="Separator6" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<MINIPAGE name="ENCABEZADO DETALLE" width="min" length="max" fontSize="8" layoutDirection="leftToRight" swapX="false">
<WORDBOX name="WordBox28" width="70" alignment="baseline" baselineType="leftleft" text="DOCUMENTO(S)"/>
<WORDBOX name="WordBox29" width="2cm" alignment="baseline" baselineType="leftleft" textAlignment="center" text="FACTURA"/>
<WORDBOX name="WordBox30" width="60" alignment="baseline" baselineType="leftleft" text="TRANSACCION"/>
<WORDBOX name="WordBox32" width="2cm" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox33" width="30" alignment="baseline" baselineType="leftleft" text="FECHA"/>
<WORDBOX name="WordBox36" width="129" alignment="baseline" baselineType="leftleft" text=""/>
<WORDWRAPBOX name="WordWrapBox3" width="width(&quot;M&quot;)*10" alignment="baseline" baselineType="leftleft" text="CANTIDAD TRANSACCION"/>
<WORDBOX name="WordBox41" width="2.5cm" alignment="baseline" baselineType="leftleft" text=""/>
<WORDBOX name="WordBox42" width="40" alignment="baseline" baselineType="leftleft" text="BALANCE"/>
<MINIPAGE name="Separator4" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</MINIPAGE>
<LAYOUTNODE name="Layout Node5_1" width="min" length="min">
<MINIPAGE name="Separator7" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<rtl:input-variable name="x.status_mov" type="FGLNumeric" expectedLocation="expectedHere"/>
<MINIPAGE name="Table Row" width="min" length="max" color="{{x.status_mov.value==3?Color.BLUE:Color.BLACK}}" fontSize="10" layoutDirection="leftToRight" swapX="false">
<rtl:input-variable name="x.documento" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox89" width="40" alignment="baseline" baselineType="leftleft" text="{{x.documento.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="x.factura" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox90" width="2.5cm" alignment="baseline" baselineType="leftleft" textAlignment="center" text="{{x.factura.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="x.cod_mov" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox1" width="width(&quot;M&quot;)*15" alignment="baseline" baselineType="leftleft" text="{{x.cod_mov.value}}"/>
<WORDBOX name="WordBox91" width="10" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.fecha_doc" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox92" width="70" alignment="baseline" baselineType="leftleft" text="{{x.fecha_doc.value}}"/>
<WORDBOX name="WordBox93" width="3.5cm" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="x.cantidad_2" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox39" width="2.5cm" alignment="baseline" color="{{x.cantidad_2&lt;0?Color.RED:Color.BLACK}}" baselineType="leftleft" text="{{x.cantidad_2.format(&quot;###,###.#####&quot;)}}"/>
<WORDBOX name="WordBox97" width="2cm" alignment="baseline" baselineType="leftleft" text=""/>
<rtl:input-variable name="balance" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox98" width="40" alignment="baseline" color="{{balance&lt;0?Color.RED:Color.BLACK}}" baselineType="leftleft" text="{{balance.format(&quot;###,###.#####&quot;)}}"/>
</MINIPAGE>
</rtl:match>
</rtl:match>
</rtl:match>
<LAYOUTNODE name="FINAL" width="min" length="min">
<MINIPAGE name="MiniPage18" width="min" length="min"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+191
View File
@@ -0,0 +1,191 @@
GLOBALS
DEFINE ptasa DEC(12,4)
END GLOBALS
FUNCTION prprmt011b(x)
DEFINE x DYNAMIC ARRAY OF RECORD
actualiza VARCHAR(1),
cerrada VARCHAR(1),
estado_produccion VARCHAR(100),
estado_producto VARCHAR(100),
departamento SMALLINT,
descripcion_dpto VARCHAR(30),
vendedor VARCHAR(50),
apell1_emp VARCHAR(50),
fecha DATE,
fecha_compromiso DATE,
fecha_llegada DATE,
fechaDispEntrega DATE,
fechaSolDespacho DATE,
fechaInstalacion DATE,
cotizacion_no INT,
num_oc INT,
orden_compra INT,
observacion VARCHAR(250),
tipo_venta VARCHAR(30),
cliente VARCHAR(60),
origen VARCHAR(30),
producto VARCHAR(100),
cantidad_ord DEC(12,5),
cantidad_desp DEC(12,5),
cantidad_dev DEC(12,5),
pendiente DEC(12,5),
sec_vend SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
tipo_cliente SMALLINT,
sec_cliente INT,
balance DEC(12,5),
id_kit INT ,
area SMALLINT,
instalador,equipo VARCHAR(100),
costo NUMERIC(12,2)
END RECORD,
i SMALLINT
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
LET r_filename = "prprmt011b.4rp"
CALL seleccionarSalida() RETURNING r_output
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
# LET r_output='SVG' CLIPPED
LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default
CALL fgl_report_configurexlsxdevice(null,null,null,false,false,null,1)
LET handler = fgl_report_commitCurrentSettings() -- commit changes
END IF
IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT reporte_rp11b TO XML HANDLER HANDLER
END IF
FOR i = 1 TO x.getLength()
IF x[i].num_oc IS NOT NULL THEN
OUTPUT TO REPORT reporte_rp11b(x[i].*)
END IF
END FOR
FINISH REPORT reporte_rp11b
END FUNCTION
REPORT reporte_rp11b(y)
DEFINE y RECORD
actualiza VARCHAR(1),
cerrada VARCHAR(1),
estado_produccion VARCHAR(100),
estado_producto VARCHAR(100),
departamento SMALLINT,
descripcion_dpto VARCHAR(30),
vendedor VARCHAR(50),
apell1_emp VARCHAR(50),
fecha DATE,
fecha_compromiso DATE,
fecha_llegada DATE,
fechaDispEntrega DATE,
fechaSolDespacho DATE,
fechaInstalacion DATE,
cotizacion_no INT,
num_oc INT,
orden_compra INT,
observacion VARCHAR(250),
tipo_venta VARCHAR(30),
cliente VARCHAR(60),
origen VARCHAR(30),
producto VARCHAR(100),
cantidad_ord DEC(12,5),
cantidad_desp DEC(12,5),
cantidad_dev DEC(12,5),
pendiente DEC(12,5),
sec_vend SMALLINT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
tipo_cliente SMALLINT,
sec_cliente INT,
balance DEC(12,5),
id_kit INT ,
area SMALLINT,
instalador,equipo VARCHAR(100),
costo NUMERIC(12,2)
END RECORD,
nombre_cia CHAR(50),
pprecio,ttotal,vtotal,valor_orden,vvalor_orden,tvalor_orden,valor_avance DEC(12,2),
psimbolo CHAR(4),
numero_recibo INT,
valor,ototal DEC(12,4)
ORDER BY y.vendedor,y.num_oc
FORMAT
FIRST PAGE HEADER
SELECT a.nombre INTO nombre_cia FROM companias a
LET ttotal = 0
LET tvalor_orden = 0
BEFORE GROUP OF y.vendedor
LET vtotal = 0
LET vvalor_orden=0
BEFORE GROUP OF y.num_oc
LET ototal = 0
SELECT a.simbolo INTO psimbolo FROM vetb00061 a,vetb00050 b
WHERE a.ventas = b.ventas AND b.cotizacion_no = y.cotizacion_no
ON EVERY ROW
SELECT AVG(a.precio-(a.precio*(a.porc_desc/100)))
INTO pprecio FROM vetb00051 a
WHERE a.cotizacion_no = y.cotizacion_no AND
a.area = y.area AND
a.cod_n = y.cod_n AND
a.cod_grupo = y.cod_grupo AND
a.cod_tipo = y.cod_tipo AND
a.cod_Sec = y.cod_sec
# BUSCA AVANCE A COTIZACION
SELECT SUM(a.valor) INTO valor_avance FROM cctb00001 a
WHERE a.banco = y.cotizacion_no AND a.num_doc = a.aplica_a AND a.status_t IS NULL AND
a.tipo_cliente = y.tipo_cliente AND a.sec_cliente = y.sec_cliente AND a.tipo_doc = 'AV'
#DISPLAY "codigo ",y.cotizacion_no," ",y.area," ",y.cod_n,"-",y.cod_grupo,"-",y.cod_tipo,"-",y.cod_sec," p ",pprecio
IF pprecio IS NULL THEN
SELECT AVG(a.precio-(a.precio*(a.porc_desc/100)))
INTO pprecio FROM vetb00031 a
WHERE a.cotizacion_no = y.cotizacion_no AND
a.id_kit = y.id_kit AND
a.area = y.area AND
a.cod_n = y.cod_n AND
a.cod_grupo = y.cod_grupo AND
a.cod_tipo = y.cod_tipo AND
a.cod_Sec = y.cod_sec
END IF
SELECT AVG(a.tasa) INTO ptasa
FROM cgtb00084 a
WHERE a.tipo_cliente = y.tipo_cliente AND
a.ano = YEAR(TODAY) AND
a.mes = MONTH(TODAY)
IF ptasa IS NULL THEN
LET ptasa = 1
END IF
IF pprecio IS NULL THEN
LET pprecio = 0
END IF
LET pprecio = pprecio * ptasa
LET valor_avance=valor_avance * ptasa
LET valor = pprecio * y.pendiente
LET ttotal = ttotal + valor
LET ototal = ototal + valor
LET vtotal = valor + vtotal
LET valor_orden = pprecio * y.cantidad_ord
LET tvalor_orden = valor_orden + tvalor_orden
LET vvalor_orden = vvalor_orden + valor_orden
PRINTX y.*,nombre_cia,pprecio,valor,ttotal,ototal,psimbolo,vtotal,valor_orden,tvalor_orden,vvalor_orden,
numero_recibo,valor_avance
END REPORT
+104
View File
@@ -0,0 +1,104 @@
<?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="letterlength" RWPageLength="letterwidth" RWLeftMargin="0.5inch" RWTopMargin="0.5inch" RWRightMargin="0.5inch" RWBottomMargin="0.5inch">
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../PRDIR/prprmt011b.rdd" RWFglReportName="reporte_rp11b"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="Page Root" width="max" length="max">
<LAYOUTNODE name="PageHeader" width="min" length="min" port="anyPageHeader" floatingBehavior="enclosed">
<LAYOUTNODE name="encabezado" width="min" length="max" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="nombre_cia" type="FGLString" expectedLocation="expectedAhead"/>
<WORDWRAPBOX name="nombre_cia Value" width="max-2.8cm" floatingBehavior="enclosed" text="{{nombre_cia}}" textAlignment="center"/>
<WORDBOX name="WordBox2" floatingBehavior="enclosed" text="PAGINA NO:"/>
<PAGENOBOX name="PageNoBox" floatingBehavior="enclosed"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezado1" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox" width="max-2.8cm" fontBold="true" floatingBehavior="enclosed" textAlignment="center" text="RESUMEN ORDENES"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezadoDetalle" width="min" length="min" fontSize="7" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="chorden" width="1.6cm" floatingBehavior="enclosed" text="ORDEN"/>
<WORDBOX name="chfecha" width="1.6cm" floatingBehavior="enclosed" text="FECHA"/>
<WORDBOX name="chcliente" width="4.5cm" floatingBehavior="enclosed" text="CLIENTE"/>
<WORDBOX name="chcotizacion" width="1.6cm" floatingBehavior="enclosed" text="COTIZACION"/>
<WORDBOX name="chproducto" width="4.8cm" floatingBehavior="enclosed" text="PRODUCTO"/>
<WORDBOX name="chcantidadorden" width="2.8cm" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD O"/>
<WORDBOX name="chcantidaddespachada" width="2.5cm" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD DESP."/>
<WORDBOX name="chcantidadpendiente" width="2.5cm" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD P"/>
<WORDBOX name="chprecio" width="1.3cm" floatingBehavior="enclosed" textAlignment="right" text="PRECIO"/>
<WORDBOX name="chvalor" width="2cm" floatingBehavior="enclosed" textAlignment="right" text="V. PENDIENTE"/>
</LAYOUTNODE>
</LAYOUTNODE>
<rtl:match name="Group vendedor" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="MiniPage" width="min" length="min" layoutDirection="topToBottom">
<rtl:input-variable name="y.vendedor" type="FGLString" expectedLocation="expectedAhead"/>
<rtl:input-variable name="y.apell1_emp" type="FGLString" expectedLocation="expectedAhead"/>
<WORDWRAPBOX name="y.vendedor Value" width="max" fontBold="true" floatingBehavior="enclosed" text="{{&quot;VENDEDOR: &quot;+y.vendedor.value+&quot; &quot;+y.apell1_emp.value}}"/>
<rtl:match name="Group num_oc" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="detalle" width="min" length="min" fontSize="7" fontBold="false" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="y.num_oc" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="y.num_oc Value" width="1.7cm" anchorX="1" floatingBehavior="enclosed" textAlignment="left" format="&amp;&amp;&amp;&amp;&amp;&amp;" value="{{y.num_oc}}"/>
<rtl:input-variable name="y.fecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="y.fecha Value" width="1.7cm" floatingBehavior="enclosed" text="{{y.fecha}}"/>
<rtl:input-variable name="y.cliente" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox" width="width(&quot;M&quot;)*25" floatingBehavior="enclosed" text="{{y.cliente.trim()}}"/>
<rtl:input-variable name="y.cotizacion_no" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="y.cotizacion_no Value" width="1.3cm" anchorX="1" floatingBehavior="enclosed" textAlignment="left" format="&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;" value="{{y.cotizacion_no}}"/>
<rtl:input-variable name="y.producto" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="y.producto Value" width="width(&quot;M&quot;)*25" floatingBehavior="enclosed" text="{{y.producto}}"/>
<rtl:input-variable name="y.cantidad_ord" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="y.cantidad_ord Value" width="1.8cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{y.cantidad_ord}}"/>
<rtl:input-variable name="y.cantidad_desp" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="y.cantidad_desp Value" width="2.7cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{y.cantidad_desp}}"/>
<rtl:input-variable name="y.pendiente" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="y.pendiente Value" width="2.3cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;&amp;&amp;" value="{{y.pendiente}}"/>
<rtl:input-variable name="pprecio" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="pprecio Value" width="1.5cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,--&amp;.&amp;&amp;&amp;&amp;" value="{{pprecio}}"/>
<rtl:input-variable name="valor" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="valor Value" width="2cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{valor}}"/>
</LAYOUTNODE>
</rtl:match>
<LAYOUTNODE name="avance" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="valor_avance" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox7" width="7cm" fontBold="true" floatingBehavior="enclosed" text="{{&quot;MONTO AVANCE: &quot;+valor_avance.format(&quot;###,###,###.##&quot;)}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="totalOrden" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="y.num_oc" type="FGLNumeric" expectedLocation="expectedBefore"/>
<rtl:input-variable name="ototal" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox1" width="max" floatingBehavior="enclosed" text="{{&quot;TOTAL PENDIENTE ORDEN &quot;+y.num_oc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)+ototal.format(&quot;---,---,--#.##&quot;)}}"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
<LAYOUTNODE name="totalVendedor" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="y.vendedor" type="FGLString" expectedLocation="expectedBefore"/>
<rtl:input-variable name="vtotal" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox3" width="max" floatingBehavior="enclosed" text="{{&quot;TOTAL PENDIENTE VENDEDOR &quot;+y.vendedor.trim()+&quot; &quot;+vtotal.format(&quot;---,---,--#.##&quot;)}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="totalordenVendedor" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="vvalor_orden" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox6" width="max" length="1cm" floatingBehavior="enclosed" text="{{&quot;TOTAL ORDEN VENDEDOR &quot;+vvalor_orden.format(&quot;###,###,###.##&quot;)}}"/>
</LAYOUTNODE>
</rtl:match>
<LAYOUTNODE name="TOTAL PENDIENTE" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox4" width="7cm" floatingBehavior="enclosed" text="TOTAL GENERAL PENDIENTE"/>
<rtl:input-variable name="ttotal" type="FGLNumeric" expectedLocation="expectedBefore"/>
<DECIMALFORMATBOX name="ttotal Value" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{ttotal}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="TOTAL ORDENES" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox5" width="7cm" floatingBehavior="enclosed" text="TOTAL GENERAL ORDENES"/>
<rtl:input-variable name="tvalor_orden" type="FGLNumeric" expectedLocation="expectedBefore"/>
<DECIMALFORMATBOX name="tvalor_orden Value" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{tvalor_orden}}"/>
</LAYOUTNODE>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+457
View File
@@ -0,0 +1,457 @@
S^1^0^M^prprmt011b^MODULE^^
S^2^1^R^reporte_rp11b^^^public
F^0^C:\Users\luis_\Documents\fuentes\decomarmol\PROYECTO\PRDIR\prprmt011b.4gl
D^2^75^191^8^0^0
X^2^c^73^20^0^finish
X^2^c^70^30^0^output
X^2^c^66^22^0^start
X^2^D^75^8^0^
S^3^2^P^y^RECORD^^
D^3^76^116^9^0^0
X^3^r^188^13^0^
X^3^r^185^34^0^
X^3^r^181^28^0^
X^3^r^170^28^0^
X^3^r^165^24^0^
X^3^r^164^25^0^
X^3^r^163^26^0^
X^3^r^162^22^0^
X^3^r^161^21^0^
X^3^r^160^23^0^
X^3^r^159^33^0^
X^3^r^153^64^0^
X^3^r^153^29^0^
X^3^r^152^22^0^
X^3^r^149^24^0^
X^3^r^148^25^0^
X^3^r^147^26^0^
X^3^r^146^22^0^
X^3^r^145^21^0^
X^3^r^143^30^0^
X^3^r^138^54^0^
X^3^l^135^22^0^
X^3^l^131^22^0^
X^3^l^123^22^0^
X^3^l^123^11^0^
X^3^l^75^22^0^
X^3^D^76^9^0^
S^4^3^P^actualiza^VARCHAR(1)^^
D^4^77^77^9^0^0
X^4^D^77^9^0^
S^5^3^P^cerrada^VARCHAR(1)^^
D^5^78^78^9^0^0
X^5^D^78^9^0^
S^6^3^P^estado_produccion^VARCHAR(100)^^
D^6^79^79^9^0^0
X^6^D^79^9^0^
S^7^3^P^estado_producto^VARCHAR(100)^^
D^7^80^80^9^0^0
X^7^D^80^9^0^
S^8^3^P^departamento^SMALLINT^^
D^8^81^81^9^0^0
X^8^D^81^9^0^
S^9^3^P^descripcion_dpto^VARCHAR(30)^^
D^9^82^82^9^0^0
X^9^D^82^9^0^
S^10^3^P^vendedor^VARCHAR(50)^^
D^10^83^83^9^0^0
X^10^D^83^9^0^
S^11^3^P^apell1_emp^VARCHAR(50)^^
D^11^84^84^9^0^0
X^11^D^84^9^0^
S^12^3^P^fecha^DATE^^
D^12^85^85^9^0^0
X^12^D^85^9^0^
S^13^3^P^fecha_compromiso^DATE^^
D^13^86^86^9^0^0
X^13^D^86^9^0^
S^14^3^P^fecha_llegada^DATE^^
D^14^87^87^9^0^0
X^14^D^87^9^0^
S^15^3^P^fechaDispEntrega^DATE^^
D^15^88^88^9^0^0
X^15^D^88^9^0^
S^16^3^P^fechaSolDespacho^DATE^^
D^16^89^89^9^0^0
X^16^D^89^9^0^
S^17^3^P^fechaInstalacion^DATE^^
D^17^90^90^9^0^0
X^17^D^90^9^0^
S^18^3^P^cotizacion_no^INTEGER^^
D^18^91^91^9^0^0
X^18^D^91^9^0^
S^19^3^P^num_oc^INTEGER^^
D^19^92^92^9^0^0
X^19^D^92^9^0^
S^20^3^P^orden_compra^INTEGER^^
D^20^93^93^9^0^0
X^20^D^93^9^0^
S^21^3^P^observacion^VARCHAR(250)^^
D^21^94^94^9^0^0
X^21^D^94^9^0^
S^22^3^P^tipo_venta^VARCHAR(30)^^
D^22^95^95^9^0^0
X^22^D^95^9^0^
S^23^3^P^cliente^VARCHAR(60)^^
D^23^96^96^9^0^0
X^23^D^96^9^0^
S^24^3^P^origen^VARCHAR(30)^^
D^24^97^97^9^0^0
X^24^D^97^9^0^
S^25^3^P^producto^VARCHAR(100)^^
D^25^98^98^9^0^0
X^25^D^98^9^0^
S^26^3^P^cantidad_ord^DECIMAL(12,5)^^
D^26^99^99^9^0^0
X^26^D^99^9^0^
S^27^3^P^cantidad_desp^DECIMAL(12,5)^^
D^27^100^100^9^0^0
X^27^D^100^9^0^
S^28^3^P^cantidad_dev^DECIMAL(12,5)^^
D^28^101^101^9^0^0
X^28^D^101^9^0^
S^29^3^P^pendiente^DECIMAL(12,5)^^
D^29^102^102^9^0^0
X^29^D^102^9^0^
S^30^3^P^sec_vend^SMALLINT^^
D^30^103^103^9^0^0
X^30^D^103^9^0^
S^31^3^P^cod_n^SMALLINT^^
D^31^104^104^9^0^0
X^31^D^104^9^0^
S^32^3^P^cod_grupo^SMALLINT^^
D^32^105^105^9^0^0
X^32^D^105^9^0^
S^33^3^P^cod_tipo^SMALLINT^^
D^33^106^106^9^0^0
X^33^D^106^9^0^
S^34^3^P^cod_sec^SMALLINT^^
D^34^107^107^9^0^0
X^34^D^107^9^0^
S^35^3^P^tipo_cliente^SMALLINT^^
D^35^108^108^9^0^0
X^35^D^108^9^0^
S^36^3^P^sec_cliente^INTEGER^^
D^36^109^109^9^0^0
X^36^D^109^9^0^
S^37^3^P^balance^DECIMAL(12,5)^^
D^37^110^110^9^0^0
X^37^D^110^9^0^
S^38^3^P^id_kit^INTEGER^^
D^38^111^111^9^0^0
X^38^D^111^9^0^
S^39^3^P^area^SMALLINT^^
D^39^112^112^9^0^0
X^39^D^112^9^0^
S^40^3^P^instalador^VARCHAR(100)^^
D^40^113^113^9^0^0
X^40^D^113^9^0^
S^41^3^P^equipo^VARCHAR(100)^^
D^41^113^113^20^0^0
X^41^D^113^20^0^
S^42^3^P^costo^DECIMAL(12,2)^^
D^42^114^114^9^0^0
X^42^D^114^9^0^
S^43^2^V^nombre_cia^CHAR(50)^^
D^43^117^117^9^0^0
X^43^r^188^17^0^
X^43^l^127^27^0^
X^43^D^117^9^0^
S^44^2^V^pprecio^DECIMAL(12,2)^^
D^44^118^118^9^0^0
X^44^r^188^28^0^
X^44^r^185^24^0^
X^44^r^181^18^0^
X^44^r^179^19^0^
X^44^l^179^9^0^
X^44^l^177^12^0^
X^44^r^176^8^0^
X^44^l^158^14^0^
X^44^r^156^9^0^
X^44^l^142^11^0^
X^44^D^118^9^0^
S^45^2^V^ttotal^DECIMAL(12,2)^^
D^45^118^118^17^0^0
X^45^r^188^42^0^
X^45^r^182^19^0^
X^45^l^182^10^0^
X^45^l^128^10^0^
X^45^D^118^17^0^
S^46^2^V^vtotal^DECIMAL(12,2)^^
D^46^118^118^24^0^0
X^46^r^188^65^0^
X^46^r^184^27^0^
X^46^l^184^10^0^
X^46^l^132^12^0^
X^46^D^118^24^0^
S^47^2^V^valor_orden^DECIMAL(12,2)^^
D^47^118^118^31^0^0
X^47^r^188^72^0^
X^47^r^187^40^0^
X^47^r^186^25^0^
X^47^l^185^10^0^
X^47^D^118^31^0^
S^48^2^V^vvalor_orden^DECIMAL(12,2)^^
D^48^118^118^43^0^0
X^48^r^188^97^0^
X^48^r^187^25^0^
X^48^l^187^10^0^
X^48^l^133^12^0^
X^48^D^118^43^0^
S^49^2^V^tvalor_orden^DECIMAL(12,2)^^
D^49^118^118^56^0^0
X^49^r^188^84^0^
X^49^r^186^39^0^
X^49^l^186^10^0^
X^49^l^129^10^0^
X^49^D^118^56^0^
S^50^2^V^valor_avance^DECIMAL(12,2)^^
D^50^118^118^69^0^0
X^50^r^189^20^0^
X^50^r^180^22^0^
X^50^l^180^9^0^
X^50^l^151^31^0^
X^50^D^118^69^0^
S^51^2^V^psimbolo^CHAR(4)^^
D^51^119^119^9^0^0
X^51^r^188^56^0^
X^51^l^137^28^0^
X^51^D^119^9^0^
S^52^2^V^numero_recibo^INTEGER^^
D^52^120^120^9^0^0
X^52^r^189^6^0^
X^52^D^120^9^0^
S^53^2^V^valor^DECIMAL(12,4)^^
D^53^121^121^9^0^0
X^53^r^188^36^0^
X^53^r^184^19^0^
X^53^r^183^28^0^
X^53^r^182^28^0^
X^53^l^181^10^0^
X^53^D^121^9^0^
S^54^2^V^ototal^DECIMAL(12,4)^^
D^54^121^121^15^0^0
X^54^r^188^49^0^
X^54^r^183^19^0^
X^54^l^183^10^0^
X^54^l^136^10^0^
X^54^D^121^15^0^
S^55^2^V^reportDef^base.Report^^
D^55^0^0^0^0^0
S^56^1^F^prprmt011b^^^public
D^56^4^74^10^0^0
X^56^D^4^10^0^
S^57^56^P^x^DYNAMIC ARRAY OF RECORD^^
D^57^5^44^9^0^0
X^57^r^70^44^0^
X^57^r^69^13^0^
X^57^r^68^19^0^
X^57^l^4^21^0^
X^57^D^5^9^0^
S^58^57^P^actualiza^VARCHAR(1)^^
D^58^6^6^13^0^0
X^58^D^6^13^0^
S^59^57^P^cerrada^VARCHAR(1)^^
D^59^7^7^9^0^0
X^59^D^7^9^0^
S^60^57^P^estado_produccion^VARCHAR(100)^^
D^60^8^8^9^0^0
X^60^D^8^9^0^
S^61^57^P^estado_producto^VARCHAR(100)^^
D^61^9^9^9^0^0
X^61^D^9^9^0^
S^62^57^P^departamento^SMALLINT^^
D^62^10^10^9^0^0
X^62^D^10^9^0^
S^63^57^P^descripcion_dpto^VARCHAR(30)^^
D^63^11^11^9^0^0
X^63^D^11^9^0^
S^64^57^P^vendedor^VARCHAR(50)^^
D^64^12^12^9^0^0
X^64^D^12^9^0^
S^65^57^P^apell1_emp^VARCHAR(50)^^
D^65^13^13^9^0^0
X^65^D^13^9^0^
S^66^57^P^fecha^DATE^^
D^66^14^14^9^0^0
X^66^D^14^9^0^
S^67^57^P^fecha_compromiso^DATE^^
D^67^15^15^9^0^0
X^67^D^15^9^0^
S^68^57^P^fecha_llegada^DATE^^
D^68^16^16^9^0^0
X^68^D^16^9^0^
S^69^57^P^fechaDispEntrega^DATE^^
D^69^17^17^9^0^0
X^69^D^17^9^0^
S^70^57^P^fechaSolDespacho^DATE^^
D^70^18^18^9^0^0
X^70^D^18^9^0^
S^71^57^P^fechaInstalacion^DATE^^
D^71^19^19^9^0^0
X^71^D^19^9^0^
S^72^57^P^cotizacion_no^INTEGER^^
D^72^20^20^9^0^0
X^72^D^20^9^0^
S^73^57^P^num_oc^INTEGER^^
D^73^21^21^9^0^0
X^73^D^21^9^0^
S^74^57^P^orden_compra^INTEGER^^
D^74^22^22^9^0^0
X^74^D^22^9^0^
S^75^57^P^observacion^VARCHAR(250)^^
D^75^23^23^9^0^0
X^75^D^23^9^0^
S^76^57^P^tipo_venta^VARCHAR(30)^^
D^76^24^24^9^0^0
X^76^D^24^9^0^
S^77^57^P^cliente^VARCHAR(60)^^
D^77^25^25^9^0^0
X^77^D^25^9^0^
S^78^57^P^origen^VARCHAR(30)^^
D^78^26^26^9^0^0
X^78^D^26^9^0^
S^79^57^P^producto^VARCHAR(100)^^
D^79^27^27^9^0^0
X^79^D^27^9^0^
S^80^57^P^cantidad_ord^DECIMAL(12,5)^^
D^80^28^28^9^0^0
X^80^D^28^9^0^
S^81^57^P^cantidad_desp^DECIMAL(12,5)^^
D^81^29^29^9^0^0
X^81^D^29^9^0^
S^82^57^P^cantidad_dev^DECIMAL(12,5)^^
D^82^30^30^9^0^0
X^82^D^30^9^0^
S^83^57^P^pendiente^DECIMAL(12,5)^^
D^83^31^31^9^0^0
X^83^D^31^9^0^
S^84^57^P^sec_vend^SMALLINT^^
D^84^32^32^9^0^0
X^84^D^32^9^0^
S^85^57^P^cod_n^SMALLINT^^
D^85^33^33^9^0^0
X^85^D^33^9^0^
S^86^57^P^cod_grupo^SMALLINT^^
D^86^34^34^9^0^0
X^86^D^34^9^0^
S^87^57^P^cod_tipo^SMALLINT^^
D^87^35^35^9^0^0
X^87^D^35^9^0^
S^88^57^P^cod_sec^SMALLINT^^
D^88^36^36^9^0^0
X^88^D^36^9^0^
S^89^57^P^tipo_cliente^SMALLINT^^
D^89^37^37^9^0^0
X^89^D^37^9^0^
S^90^57^P^sec_cliente^INTEGER^^
D^90^38^38^9^0^0
X^90^D^38^9^0^
S^91^57^P^balance^DECIMAL(12,5)^^
D^91^39^39^9^0^0
X^91^D^39^9^0^
S^92^57^P^id_kit^INTEGER^^
D^92^40^40^9^0^0
X^92^D^40^9^0^
S^93^57^P^area^SMALLINT^^
D^93^41^41^9^0^0
X^93^D^41^9^0^
S^94^57^P^instalador^VARCHAR(100)^^
D^94^42^42^9^0^0
X^94^D^42^9^0^
S^95^57^P^equipo^VARCHAR(100)^^
D^95^42^42^20^0^0
X^95^D^42^20^0^
S^96^57^P^costo^DECIMAL(12,2)^^
D^96^43^43^9^0^0
X^96^D^43^9^0^
S^97^56^V^i^SMALLINT^^
D^97^45^45^3^0^0
X^97^r^70^46^0^
X^97^r^69^15^0^
X^97^l^68^10^0^
X^97^D^45^3^0^
S^98^56^V^handler^om.SaxDocumentHandler^^
D^98^47^47^10^0^0
X^98^r^66^51^0^
X^98^r^65^9^0^
X^98^l^62^19^0^
X^98^D^47^10^0^
S^99^56^V^r_filename^STRING^^
D^99^48^48^9^0^0
X^99^r^56^46^0^
X^99^l^52^16^0^
X^99^D^48^9^0^
S^100^56^V^r_output^STRING^^
D^100^49^49^9^0^0
X^100^r^59^44^0^
X^100^l^54^48^0^
X^100^D^49^9^0^
S^101^56^V^preview^INTEGER^^
D^101^50^50^9^0^0
X^101^r^60^45^0^
X^101^l^58^19^0^
X^101^D^50^9^0^
S^102^0^V^ptasa^DECIMAL(12,4)^^global
D^102^2^2^9^0^0
X^102^r^180^37^0^
X^102^r^179^29^0^
X^102^l^174^12^0^
X^102^r^173^8^0^
X^102^l^168^29^0^
X^102^D^2^9^0^
S^103^0^F^fgl_report_commitCurrentSettings^^^extern
X^103^c^62^29^0^
S^104^0^F^fgl_report_configurexlsxdevice^^^extern
X^104^c^61^20^0^
S^105^0^F^fgl_report_selectPreview^^^extern
X^105^c^60^20^0^
S^106^0^F^fgl_report_selectDevice^^^extern
X^106^c^59^20^0^
S^107^0^F^fgl_report_loadCurrentSettings^^^extern
X^107^c^56^15^0^
S^108^0^F^seleccionarSalida^^^extern
X^108^c^54^17^0^
T^1^3^d^0^0^DEFINE
T^1^3^d^0^0^GLOBALS DEFINE
T^2^2^d^0^0^DEFINE
T^4^74^f^0^0^FUNCTION
T^5^50^d^0^0^DEFINE
T^5^44^d^0^0^RECORD
T^56^63^c^0^0^IF
T^58^62^c^0^0^THEN
T^65^67^c^0^0^IF
T^66^66^c^0^0^THEN
T^68^72^l^0^0^FOR
T^69^71^c^0^0^IF
T^70^70^c^0^0^THEN
T^75^191^f^0^0^REPORT
T^76^121^d^0^0^DEFINE
T^76^116^d^0^0^RECORD
r^2^ORDER EXTERNAL^0
o^2^10^1
o^2^19^1
T^125^129^a^0^0^FIRST PAGE HEADER
T^131^133^a^0^0^BEFORE GROUP OF 10
T^135^138^a^0^0^BEFORE GROUP OF 19
T^140^189^a^0^0^ON EVERY ROW
T^156^166^c^0^0^IF
T^157^165^c^0^0^THEN
T^173^175^c^0^0^IF
T^174^174^c^0^0^THEN
T^176^178^c^0^0^IF
T^177^177^c^0^0^THEN
x^188^0^
p^r^3
p^v^43
p^v^44
p^v^53
p^v^45
p^v^54
p^v^51
p^v^46
p^v^47
p^v^49
p^v^48
p^v^52
p^v^50
+134
View File
@@ -0,0 +1,134 @@
{
NOMBRE FUNCION: prprmt011c.4gl
OBJETIVO : Administratar el flujo comentarios
FECHA : 28/1/2016
DESARROLLADO : ING. JUAN SOTO
}
FUNCTION prprmt011c(xnum_oc,pcodn,pcodgrupo,pcodtipo,pcodsec,xusuario,xactualiza,xdepartamento)
DEFINE xnum_oc,xdepartamento INT,
idx,pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
opt,xactualiza VARCHAR(3),
arr_flujo DYNAMIC ARRAY OF RECORD
actualiza CHAR(2),
fecha_trx DATETIME YEAR TO MINUTE,
departamento SMALLINT,
nombre VARCHAR(60),
comentario VARCHAR(100),
fecha_compromiso DATE,
id INT
END RECORD,
xusuario VARCHAR(50)
DECLARE busca_flujo CURSOR FOR
SELECT a.actualiza,a.fecha_trx,a.departamento,b.nom_dpto,a.comentario,CONVERT(CHAR(10),a.fecha_compromiso,103),a.id
FROM prtb00033 a,adtb00001 b
WHERE a.num_oc = xnum_oc AND
a.cod_n = pcodn AND
a.cod_grupo = pcodgrupo AND
a.cod_tipo = pcodtipo AND
a.cod_sec = pcodsec AND
a.departamento = b.departamento
ORDER BY a.id
LET idx = 1
FOREACH busca_flujo INTO arr_flujo[idx].*
LET idx = idx + 1
END FOREACH
OPEN WINDOW w1 WITH FORM "prfmmt011c"
INPUT ARRAY arr_flujo FROM sflujo.* ATTRIBUTE(WITHOUT DEFAULTS)
BEFORE INPUT
FOR idx = 1 TO arr_flujo.getLength()
IF arr_flujo[idx].actualiza = 'N' THEN
DISPLAY arr_flujo[idx].* TO sflujo[scr_line()].* ATTRIBUTE(reverse)
END IF
END FOR
AFTER FIELD departamento
IF arr_flujo[arr_curr()].departamento IS NOT NULL THEN
SELECT a.nom_dpto INTO arr_flujo[arr_curr()].nombre FROM adtb00001 a
WHERE a.departamento = arr_flujo[arr_curr()].departamento
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD departamento
END IF
IF arr_flujo[arr_curr()].fecha_compromiso IS NULL THEN
LET arr_flujo[arr_curr()].fecha_compromiso =TODAY
DISPLAY arr_flujo[arr_curr()].fecha_compromiso TO sflujo[scr_line()].fecha_compromiso
END IF
DISPLAY arr_flujo[arr_curr()].nombre TO sflujo[scr_line()].nombre
END IF
AFTER INPUT
IF INT_FLAG THEN
EXIT INPUT
END IF
IF xactualiza = "SI" THEN
LET opt = fgl_winquestion("Atencion","Desea Actualizar estos registros?","NO","NO|YES","QUESTION",0)
IF opt = "YES" THEN
BEGIN WORK
FOR idx = 1 TO arr_flujo.getLength()
IF arr_flujo[idx].departamento IS NOT NULL THEN
IF arr_flujo[idx].actualiza IS NULL THEN
INSERT INTO prtb00033 (fecha_trx,num_oc,cod_n,cod_grupo,cod_tipo,cod_sec,comentario,departamento,actualiza,
id,fecha_compromiso,usuario)
VALUES (GETDATE(),xnum_oc,pcodn,pcodgrupo,pcodtipo,pcodsec,
arr_flujo[idx].comentario,arr_flujo[idx].departamento,'N',idx,arr_flujo[idx].fecha_compromiso,
xusuario)
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR EL LOG","INFO")
EXIT FOR
END IF
IF arr_flujo[idx].fecha_compromiso IS NOT NULL THEN
UPDATE prtb00012 SET fecha_entrega = arr_flujo[idx].fecha_compromiso,
us_mod = xusuario,
fech_mod = getdate()
WHERE num_oc = xnum_oc
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR MAESTRA ORDENES","INFO")
EXIT FOR
END IF
UPDATE prtb00013 SET departamento = arr_flujo[idx].departamento,
us_mod = xusuario,
fech_mod = getdate()
WHERE num_oc = xnum_oc AND
cod_n = pcodn AND cod_grupo = pcodgrupo AND cod_tipo = pcodtipo AND
cod_sec = pcodsec
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","OCURRIO UN ERROR AL ACTUALIZAR DETALLE ORDENES","INFO")
EXIT FOR
END IF
END IF
INSERT INTO prordenstatus(fecha_trx,num_oc,observacion,fecha_compromiso,usuario)
VALUES (GETDATE(),xnum_oc,arr_flujo[idx].comentario,arr_flujo[idx].fecha_compromiso,xusuario)
END IF
END IF
END FOR
COMMIT WORK
CALL fgl_winmessage("Atencion","Registro(s) Actualizado(s)","info")
ELSE
CALL fgl_winmessage("Atencion","Registro(s) NO Actualizado(s)","info")
END IF
END IF
END INPUT
IF INT_FLAG THEN
LET INT_FLAG = FALSE
CLOSE WINDOW w1
RETURN
END IF
CLOSE WINDOW w1
END FUNCTION
+81
View File
@@ -0,0 +1,81 @@
<?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="31405" version="6.00">
<report:Settings RWPageWidth="letterlength" RWPageLength="letterwidth" RWLeftMargin="0.5inch" RWTopMargin="0.5inch" RWRightMargin="0.5inch" RWBottomMargin="0.5inch">
<report:FormatList>
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../PRDIR/prprmt011.rdd" RWFglReportName="rordenes"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="Page Root" width="max" length="max" alignment="near">
<LAYOUTNODE name="Page Header" width="max" length="min" port="anyPageHeader">
<MINIPAGE name="StripeLayouter3" width="min" length="max" layoutDirection="leftToRight">
<WORDBOX name="Report Title" x="0" y="max/2" anchorX="0" anchorY="0.5" alignment="baseline" fontSize="25" baselineType="leftleft" floatingBehavior="enclosed" text="MARMOTECH, S. A."/>
<WORDBOX name="txtpagina" x="2.2" y="max-2cm" floatingBehavior="enclosed" text="PAGINA"/>
<PAGENOBOX name="PageNoBox" x="1.23857" y="max" anchorX="0" anchorY="1" alignment="baseline" baselineType="leftleft" floatingBehavior="enclosed" textAlignment="right"/>
</MINIPAGE>
<LAYOUTNODE name="LayoutNode1" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox8" width="max" fontBold="true" floatingBehavior="enclosed" textAlignment="center" text="REPORTE ORDENES" roundedCorners="true" borderWidth="1" borderStyle="solid"/>
<rtl:input-variable name="tiempo" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="hora" y="max-4cm" floatingBehavior="enclosed" text="{{tiempo.trim()}}"/>
</LAYOUTNODE>
<MINIPAGE name="Table Header" width="min" length="max" alignment="near" fontSize="6" fontBold="true" layoutDirection="leftToRight">
<WORDBOX name="Spacer" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
<WORDBOX name="WordBox9" width=".8inch" alignment="near" floatingBehavior="enclosed" text="ESTATUS"/>
<WORDBOX name="WordBox" width=".5inch" floatingBehavior="enclosed" text="ORDEN"/>
<WORDBOX name="WordBox1" width=".7inch" floatingBehavior="enclosed" text="FECHA"/>
<WORDBOX name="WordBox2" width=".8inch" floatingBehavior="enclosed" text="ESTADO ORDEN"/>
<WORDBOX name="WordBox3" width="1inch" floatingBehavior="enclosed" text="FECHA PROD"/>
<WORDBOX name="WordBox10" width="2inch" alignment="baseline" floatingBehavior="enclosed" text="CLIENTE"/>
<WORDBOX name="WordBox11" width="1inch" floatingBehavior="enclosed" text="VENDEDOR"/>
<WORDBOX name="WordBox12" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="PRODUCTO"/>
<WORDBOX name="WordBox13" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD"/>
<WORDBOX name="WordBox14" width=".8inch" floatingBehavior="enclosed" textAlignment="right" text="PENDIENTE"/>
</MINIPAGE>
<MINIPAGE name="Separator" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight"/>
</LAYOUTNODE>
<rtl:match name="Group znumero" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="Table Row" width="min" length="max" fontSize="6" layoutDirection="leftToRight">
<WORDBOX name="Spacer_1" alignment="baseline" baselineType="leftleft" port="itemSeparator" text=" "/>
<rtl:input-variable name="estado" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="estado Value" width=".8inch" alignment="center" floatingBehavior="enclosed" text="{{estado}}"/>
<rtl:input-variable name="znumero" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox4" width=".5inch" floatingBehavior="enclosed" text="{{znumero.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="xfecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox5" width=".6inch" floatingBehavior="enclosed" text="{{xfecha}}"/>
<rtl:input-variable name="estado_prod" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="estado_prod Value" width="1inch" floatingBehavior="enclosed" text="{{estado_prod}}"/>
<rtl:input-variable name="xfecha_prod" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="xfecha_prod Value" width=".6inch" floatingBehavior="enclosed" text="{{xfecha_prod}}"/>
<rtl:input-variable name="xcliente" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="xcliente Value" width="2inch" alignment="far" floatingBehavior="enclosed" text="{{xcliente}}"/>
<rtl:input-variable name="vendedor" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="vendedor Value" width=".9inch" floatingBehavior="enclosed" text="{{vendedor}}"/>
<rtl:input-variable name="xproducto" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="xproducto Value" width="width(&quot;M&quot;)*25" floatingBehavior="enclosed" text="{{xproducto}}"/>
<rtl:input-variable name="xcantidad_ord" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="xcantidad_ord Value" width=".6inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xcantidad_ord}}"/>
<rtl:input-variable name="xpendiente" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="xpendiente Value" width=".8inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xpendiente}}"/>
</MINIPAGE>
</rtl:match>
<LAYOUTNODE name="LayoutNode2" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed">
<MINIPAGE name="Separator1" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight"/>
</LAYOUTNODE>
</rtl:match>
<LAYOUTNODE name="LayoutNode" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<rtl:input-variable name="total_reg" type="FGLNumeric" expectedLocation="expectedAhead"/>
<WORDBOX name="total_reg" width="4inch" floatingBehavior="enclosed" text="{{&quot;TOTAL ORDENES: &quot;+total_reg.format(&quot;&amp;&amp;&amp;&amp;&quot;)}}"/>
</LAYOUTNODE>
</MINIPAGE>
<rtl:match name="OnLastRow" nameConstraint="OnLastRow" minOccurs="0" maxOccurs="1"/>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+69
View File
@@ -0,0 +1,69 @@
<?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="31408" version="6.00">
<report:Settings RWPageWidth="3.37inch" RWPageLength="3.40inch" RWLeftMargin="0.30inch" RWTopMargin="0.12inch" RWRightMargin="0.00inch" RWBottomMargin="0.00inch">
<report:FormatList RWDefaultFormat="Image">
<report:Format-SVG/>
<report:Format-PDF/>
<report:Format-image RWPageRange="all" RWFileType="png" RWResolution="96"/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../acdir/acprrp010.rdd" RWFglReportName="activos"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="Page Root" width="min" length="min" layoutDirection="topToBottom">
<rtl:match name="Group xcodigo" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="Layout Node2" width="min" length="min">
<IMAGEBOX name="ImageBox3" width="5cm" length="1cm" alignment="near" url="Logo.png" intendedResolution="111"/>
<MINIPAGE name="Separator" width="1" length="max" bgColor="#000000" layoutDirection="leftToRight" swapX="false"/>
</LAYOUTNODE>
<LAYOUTNODE name="Layout Node3" width="max" length="min" fontSize="10">
<MINIPAGE name="MiniPage3" width="min" length="min" layoutDirection="leftToRight">
<rtl:input-variable name="descripcion" type="FGLString" expectedLocation="expectedHere"/>
<rtl:input-variable name="xunidadmed" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox1" width="width(&quot;M&quot;)*24" length=".4inch" alignment="baseline" fontSize="10" fontBold="true" baselineType="leftleft" text="{{&quot;(&quot;+descripcion.trim()+&quot; &quot;+xunidadmed}}"/>
</MINIPAGE>
</LAYOUTNODE>
<MINIPAGE name="MiniPage5" width="min" length="min" alignment="near" fontSize="9" layoutDirection="leftToRight">
<LAYOUTNODE name="LayoutNode4" width="1inch" length="min" alignment="near" fontSize="8" floatingBehavior="enclosed" roundedCorners="true" paddingWidth="0" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox7_1" width="1inch" alignment="baseline" floatingBehavior="enclosed" text="Medidas"/>
<WORDBOX name="WordBox8" width="1inch" alignment="baseline" floatingBehavior="enclosed" text="Cantidad"/>
<WORDBOX name="WordBox9" width="1inch" alignment="baseline" floatingBehavior="enclosed" text="Valor Medida"/>
</LAYOUTNODE>
<LAYOUTNODE name="LayoutNode5" width="min" length="min" fontSize="8" floatingBehavior="enclosed" showFirstRepetitionOnPage="false" roundedCorners="true" borderWidth="1" borderStyle="solid">
<rtl:input-variable name="xlado1" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="xlado2" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="xlado3" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox11" width="1.5inch" alignment="baseline" floatingBehavior="enclosed" text="{{xlado1.format(&quot;###.####&quot;)+&quot; x &quot;+xlado2.format(&quot;###.####&quot;)+&quot; x &quot;+xlado3.format(&quot;###.####&quot;)}}"/>
<rtl:input-variable name="xcantidad" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox13" width="1.5inch" alignment="baseline" floatingBehavior="enclosed" text="{{xcantidad.format(&quot;##,###.####&quot;)}}"/>
<rtl:input-variable name="xvalor_medida" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox14" width="1.5inch" floatingBehavior="enclosed" text="{{xvalor_medida.format(&quot;##,###.####&quot;)}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="fecha" width="min" length="min" fontSize="8" layoutDirection="topToBottom" floatingBehavior="enclosed">
<rtl:input-variable name="fecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox10" width="2inch" alignment="baseline" fontBold="true" floatingBehavior="enclosed" showFirstRepetitionOnPage="false" textAlignment="left" text="{{&quot;FECHA: &quot;+fecha.value}}"/>
<rtl:input-variable name="xnum_oc" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="cliente" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox15" width="2inch" alignment="baseline" fontBold="true" floatingBehavior="enclosed" showFirstRepetitionOnPage="false" text="{{&quot;ORDEN:&quot;+xnum_oc.format(&quot;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&quot;)+&quot; &quot;+cliente.trim()}}"/>
<rtl:input-variable name="x" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox" width="1.5inch" floatingBehavior="enclosed" showFirstRepetitionOnPage="false" text="{{&quot;Numero Doc: &quot;+x.num_doc}}"/>
</LAYOUTNODE>
</MINIPAGE>
</rtl:match>
<LAYOUTNODE name="LayoutNode6" width="min" length="min" floatingBehavior="enclosed">
<LAYOUTNODE name="LayoutNode" width="min" length="min" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<rtl:input-variable name="x" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox16" width="2inch" alignment="baseline" floatingBehavior="enclosed" showFirstRepetitionOnPage="false" text="{{&quot;D: &quot;+x.departamento}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="lbarcode" width="min" length="min" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="false" borderWidth="1" borderStyle="none">
<rtl:input-variable name="barcodigo_act" type="FGLString" expectedLocation="expectedBefore"/>
<BARCODEBOX name="BarCodeBox1" width="2.7inch" length=".8inch" anchorX="0" anchorY="0" alignment="near" fontBold="true" codeType="code-128" codeValue="{{barcodigo_act.value}}" noText="false"/>
</LAYOUTNODE>
</LAYOUTNODE>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+36
View File
@@ -0,0 +1,36 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRPRMT012
OBJETIVO : ACTUALIZACION TABLA VWPRODUCCION, ESTO ES PARA ANALISIS
DE LAS ORDENES DE PRODUCCION DIARIA.
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : JUNIO 3, 2008
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL prprmt011()
END MAIN
FUNCTION prprmt011()
DISPLAY "EN PROCESO PRODUCCION DIARIA, FAVOR ESPERE...." AT 10,10
INSERT INTO prtb00021
SELECT f.ano,h.descripcion,k.descrip,p.descripcion,C.FECHA,c.num_doc,a.cod_prod,a.descripcion,
a.unidad_med,b.departamento,b.nom_dpto,d.num_emp,d.nom1_emp,apell1_emp,c.h_directa,h_indirecta,
e_directa,e_indirecta,c.cantidad,c.codigo_bloque, '0',s.nom_dpto,'0'
FROM cttb00001 a,adtb00001 b,adtb00003 d,cttb00003 c,prdtable f,mestable k,diatable h,prtb00002 p,chequeo s
WHERE a.cod_prod = c.cod_prod AND
c.departamento = b.departamento AND
c.departamento = s.departamento AND
c.emp_no = d.num_emp AND
c.fecha BETWEEN f.fecha_inicio AND f.fecha_corte AND
f.mes = k.mes AND F.ANO > "2007" AND
p.ano = f.ano and p.mes = f.mes AND
WEEKDAY(c.fecha) = h.dia AND
c.status_t IS NULL
DECLARE
END FUNCTION
+285
View File
@@ -0,0 +1,285 @@
{
PROGRAMA : prprmt020
OBJETIVO : Administrar los documentos de las ordenes
PROGRAMADOR : ING. JUAN SOTO
FECHA : 10/1/2013
ACTUALIZACION: SE CAMBIO DE SOLO ADMINISTRAR LOS DIBUJOS A MANEJAR TODOS LOS DOCUMENTOS RELACIONADOS A LA ORDEN
FECHA ACTUALIZACION: 1/12/2015
}
IMPORT os
GLOBALS "prprgb000.4gl"
DEFINE d_tipos,mensaje,f_tipos,filepath,extension,xdestino,l_file,tmpdir_file STRING
MAIN
DEFER INTERRUPT
CALL STARTLOG("prmt020.log")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
# CALL showDir("F:\\MASTER\\DOCUMENTOS_ORDENES")
CONNECT to "marmotech_t" AS "IFMX" USER 'jsoto' USING 'lmmjvsd2014'
CONNECT to "decomarmol_te" AS "MSSQL" USER usuarios USING clave
DECLARE buscacorreo CURSOR FOR
SELECT a.correo FROM seg0003 a
WHERE a.controldibujo = 'SI'
LET idx = 1
FOREACH buscacorreo INTO copiacorreo[idx]
LET copiaemail = copiaemail CLIPPED,";",copiacorreo[idx]
LET idx = idx + 1
END FOREACH
CALL prprmt020()
END MAIN
FUNCTION prprmt020()
DEFINE nombre_cliente,email,emailsubject,emailbody,procedimiento,vendedor,dir_file CHAR(60),
url,filedestino VARCHAR(200),
documentos DYNAMIC ARRAY OF RECORD
idx INT,
tipo_file CHAR(20),
bodega SMALLINT,
num_doc INT,
nombre_file VARCHAR(100),
filedestino BYTE
END RECORD,
p_res,i SMALLINT,
chpath VARCHAR(1),
cmd VARCHAR(200),
exito BOOLEAN,
tipo_file CHAR(20),
bodega SMALLINT,
num_doc INT
# Busca correo usuario
SELECT a.email INTO email FROM seg0001 a
WHERE a.usuario = usuarios
LET i = 1
OPEN WINDOW w1 WITH FORM "prfmmt012"
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
INPUT BY NAME prtb08.num_oc
BEFORE INPUT
LET d_tipos="PDF"
LET f_tipos="*.pdf *.jpg *.png"
LET mensaje=%"Elige Documento"
AFTER FIELD num_oc
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' '),
a.tipo_cliente,a.sec_cliente
INTO prtb08.cotizacion_no,nombre_cliente,prtb08.sec_vend,vendedor,
prtb08.tipo_cliente,prtb08.sec_cliente
FROM prtb00012 a,vetb00004 b,adtb00003 c
WHERE a.num_oc = prtb08.num_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
a.sec_vend = c.num_emp
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD num_oc
ELSE
CALL documentos.clear()
DECLARE busca_dibujo CURSOR FOR
SELECT a.id,a.tipo_file,a.bodega,a.num_doc,a.nombre_file,
a.documento
FROM prtb00029 a
WHERE a.num_oc = prtb08.num_oc
ORDER BY a.id
LET idx = 1
LOCATE documentos[idx].filedestino IN MEMORY
FOREACH busca_dibujo INTO documentos[idx].*
LET idx = idx + 1
LOCATE documentos[idx].filedestino IN MEMORY
END FOREACH
END IF
SELECT MAX(a.id) INTO i FROM prtb00029 a
WHERE a.num_oc = prtb08.num_oc
SELECT a.path_documentos_ordenes,a.url_file_destino INTO filedestino,url
FROM companias a
DISPLAY BY NAME prtb08.cotizacion_no,nombre_cliente,vendedor
NEXT FIELD tipo_file
AFTER INPUT
END INPUT
INPUT ARRAY documentos FROM sdibujo.* ATTRIBUTE(WITHOUT DEFAULTS)
ON ACTION dibujo
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
IF filepath IS NOT NULL THEN
IF downshift(os.Path.extension(filepath)) = "pdf" OR
downshift(os.Path.extension(filepath)) = "jpg" OR
downshift(os.Path.extension(filepath)) = "png" THEN
DISPLAY filepath TO ruta_file
CALL documentos.appendElement()
IF idx IS NULL THEN
LET idx = 1
END IF
LOCATE documentos[idx].filedestino IN MEMORY
CALL documentos[idx].filedestino.readFile(filepath)
LET documentos[idx].nombre_file=os.Path.basename(filepath)
LET idx = idx + 1
ELSE
CALL fgl_winmessage("ERROR","EL FILE DEBE SER PDF, JPG, PNG","INFO")
END IF
END IF
AFTER FIELD num_doc
IF num_doc IS NOT NULL AND tipo_file = "CO" THEN
CASE
WHEN tipo_file = "CO"
IF bodega IS NULL THEN
NEXT FIELD bodega
END IF
SELECT DISTINCT a.num_doc FROM iptb00006 a,iptb00005 b
WHERE a.bodega = documentos[arr_curr()].bodega AND
a.num_doc = documentos[arr_curr()].num_doc AND
a.cod_mov = b.cod_mov AND b.control_despacho ="SI" AND
a.num_oc = prtb08.num_oc AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
CALL fgl_Winmessage("ERROR","DOCUMENTO NO EXISTE o NO PERTENECE A ESTA ORDEN","INFO")
NEXT FIELD num_doc
END IF
WHEN tipo_file="DE"
SET CONNECTION "IFMX"
SELECT DISTINCT a.num_doc FROM cctb00001 a
WHERE a.num_doc = documentos[arr_curr()].num_doc AND
a.tipo_doc = "NC" AND
a.tipo_cliente = prtb08.tipo_cliente AND
a.sec_cliente = prtb08.sec_cliente AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
CALL fgl_Winmessage("ERROR","DOCUMENTO NO EXISTE","INFO")
NEXT FIELD num_doc
END IF
END CASE
END IF
BEFORE INPUT
CALL bodegas("1")
ON ACTION abrir
TRY
LET tmpdir_file = "tmp\\",usuarios CLIPPED,documentos[arr_curr()].nombre_file
CALL documentos[arr_curr()].filedestino.writeFile(tmpdir_file)
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
LET l_file = l_file CLIPPED,"\\",documentos[arr_curr()].nombre_file
CALL fgl_putfile(tmpdir_file,l_file)
DISPLAY "l_file ",l_file
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
CATCH
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
END TRY
ON ACTION actualiza
# WHENEVER ERROR CONTINUE
BEGIN WORK
DELETE FROM prtb00029 WHERE num_oc = prtb08.num_oc
FOR idx = 1 TO documentos.getLength()
IF documentos[idx].nombre_file IS NOT NULL THEN
INSERT INTO prtb00029 (num_oc,documento,
tipo_file,
nombre_file,num_doc,bodega,id,us_crea,fech_crea)
VALUES (prtb08.num_oc,documentos[idx].filedestino,
documentos[idx].tipo_file,
documentos[idx].nombre_file,
documentos[idx].num_doc,documentos[idx].bodega, idx,usuarios,getdate())
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","NO INSERTE DOCUMENTO EN LA ORDEN","INFO")
EXIT PROGRAM
END IF
IF tipo_file= 'DI' THEN
LET emailsubject = "ACTUALIZACION DIBUJO ORDEN ",prtb08.num_oc USING "&&&&&&"
LET emailbody = "El usuario ",usuarios," Adiciono un dibujo a la orden ",prtb08.num_oc USING "&&&&&&"
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
CALL envia_correo(email,copiaemail,emailbody,emailsubject,procedimiento)
END IF
END IF
END FOR
COMMIT WORK
CALL fgl_winmessage("ACTUALIZACION","ACTUALIZACION EXITOSA","INFO")
NEXT FIELD num_oc
END INPUT
ON ACTION CANCEL
LET INT_FLAG = FALSE
CALL msg(2)
EXIT DIALOG
CLOSE WINDOW w1
END DIALOG
END FUNCTION
FUNCTION showDir(path)
DEFINE path STRING
DEFINE child STRING
DEFINE h INTEGER,
contenido DYNAMIC ARRAY OF STRING,
exito BOOLEAN
OPEN WINDOW w2 WITH FORM "prtest"
IF NOT os.Path.exists(path) THEN
CALL fgl_winmessage("NO",path,"info")
RETURN
END IF
IF NOT os.Path.isdirectory(path) THEN
DISPLAY " ", os.Path.basename(path)
RETURN
END IF
LET contenido[1]="[",path,"]"
LET idx = 1
CALL os.Path.dirsort("name", 1)
LET h = os.Path.diropen(path)
WHILE h > 0
LET child = os.Path.dirnext(h)
IF child IS NULL THEN EXIT WHILE END IF
IF child == "." OR child == ".." THEN CONTINUE WHILE END IF
LET contenido[idx] = os.Path.join( path, child )
LET idx = idx + 1
END WHILE
CALL os.Path.dirclose(h)
DISPLAY ARRAY contenido TO scontenido.*
ON ACTION borrar
CALL os.Path.delete(contenido[arr_curr()]) RETURNING exito
IF NOT exito THEN
CALL fgl_winmessage("E","NO BORRE EL FILE","INFO")
CONTINUE DISPLAY
END IF
AFTER DISPLAY
IF INT_FLAG THEN
EXIT PROGRAM
END IF
EXIT DISPLAY
END DISPLAY
CLOSE WINDOW w2
END FUNCTION
+145
View File
@@ -0,0 +1,145 @@
{
PROGRAMA : prprmt020
OBJETIVO : Administrar los dibujos de las ordenes
PROGRAMADOR : ING. JUAN SOTO
}
GLOBALS "prprgb000.4gl"
DEFINE d_tipos,mensaje,f_tipos,imagen,filepath STRING,
inserte_dibujo BOOLEAN
MAIN
DEFER INTERRUPT
CALL STARTLOG("prmt020.log")
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "decomarmol" USER usuarios USING clave
DECLARE buscacorreo CURSOR FOR
SELECT a.correo FROM seg0003 a
WHERE a.controldibujo = 'SI'
LET idx = 1
FOREACH buscacorreo INTO copiacorreo[idx]
LET copiaemail = copiaemail CLIPPED,";",copiacorreo[idx]
LET idx = idx + 1
END FOREACH
CALL prprmt020()
END MAIN
FUNCTION prprmt020()
DEFINE nombre_cliente,email,emailsubject,emailbody,procedimiento,vendedor,dir_file CHAR(60),
filedestino CHAR(100),
ruta DYNAMIC ARRAY OF CHAR(150)
OPEN WINDOW w1 WITH FORM "prfmmt012"
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
INPUT BY NAME prtb08.num_oc
AFTER INPUT
LET d_tipos="Images"
LET f_tipos="*.jpg *.png *.gif"
LET mensaje=%"Elige Imagen"
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' ')
INTO prtb08.cotizacion_no,nombre_cliente,prtb08.sec_vend,vendedor
FROM prtb00012 a,vetb00004 b,adtb00003 c
WHERE a.num_oc = prtb08.num_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
a.sec_vend = c.num_emp
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD num_oc
ELSE
DECLARE busca_dibujo CURSOR FOR
SELECT a.ruta_file FROM prtb00029 a
WHERE a.num_oc = prtb08.num_oc
LET idx = 1
FOREACH busca_dibujo INTO ruta[idx]
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
END IF
DISPLAY BY NAME prtb08.cotizacion_no,nombre_cliente,vendedor
END INPUT
INPUT ARRAY ruta FROM sdibujo.* ATTRIBUTE(WITHOUT DEFAULTS)
BEFORE ROW
LET curr = arr_curr()
DISPLAY ruta[curr] TO imagen
ON ACTION actualiza
WHENEVER ERROR CONTINUE
BEGIN WORK
DELETE FROM prtb00029 WHERE num_oc = prtb08.num_oc
LET inserte_dibujo = FALSE
FOR idx = 1 TO arr_count()
IF ruta[idx] IS NOT NULL THEN
LET filedestino = FGL_GETENV("IMAGENNOMINA")
LET filedestino = filedestino CLIPPED,"\\DIBUJOSORDENES\\",idx USING "&&&","-",prtb08.num_oc USING "&&&&&&",".jpg"
# CALL fgl_winmessage("2",filedestino,"info")
# CALL fgl_winmessage("3",ruta[idx],"info")
CALL fgl_getfile(ruta[idx],filedestino)
INSERT INTO prtb00029 (num_oc,ruta_file,id)
VALUES (prtb08.num_oc,filedestino,idx)
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("ERROR","NO ACTUALICE DIBUJO EN LA ORDEN","INFO")
EXIT FOR
ELSE
COMMIT WORK
END IF
LET inserte_dibujo = TRUE
LET filedestino = NULL
END IF
END FOR
IF inserte_dibujo THEN
SELECT a.email INTO email FROM seg0000 a
WHERE a.sec_vend = prtb08.sec_vend
LET emailsubject = "ACTUALIZACION DIBUJO ORDEN"
LET emailbody = " LA ORDEN ",prtb08.num_oc USING "&&&&&&"," TIENE EL DIBUJO DISPONIBLE PARA VERIFICAR"
LET procedimiento = "{ call cc_avisadespacho(?,?,?,?) }" CLIPPED
CALL envia_correo(email,copiaemail,emailbody,emailsubject,procedimiento)
CALL fgl_winmessage("Warning","Actualizacion Exitosa","info")
END IF
ON ACTION dibujo
LET curr = arr_curr()
CALL ui.Interface.frontCall("standard","openfile", [dir_file,d_tipos,f_tipos,mensaje], [filepath] )
IF filepath IS NOT NULL THEN
DISPLAY "filepath ",filepath
LET ruta[curr]= filepath CLIPPED
DISPLAY ruta[curr] TO imagen
END IF
AFTER ROW
LET curr = arr_curr()
IF ruta[curr] IS NOT NULL THEN
DISPLAY ruta[curr] TO imagen
END IF
END INPUT
ON ACTION CANCEL
LET INT_FLAG = FALSE
CALL msg(2)
EXIT DIALOG
CLOSE WINDOW w1
END DIALOG
END FUNCTION
+67
View File
@@ -0,0 +1,67 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRPRMT011
OBJETIVO : ACTUALIZACION TABLA VWORDENS, ESTO ES PARA ANALISIS
DE LAS ORDENES DE PEDIDOS.
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : MAYO 9, 2008
-----------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL prprmt011()
END MAIN
FUNCTION prprmt011()
DISPLAY "EN PROCESO, FAVOR ESPERE...." AT 10,10
DELETE FROM vwordenes;
INSERT INTO vwordenes
SELECT
e.ano,f.descrip,a.fecha_oc,a.fecha_entrega,g.num_doc,a.num_oc,L.PRODUCTO,m.descripcion,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,n.descrip_esp,n.unidad_med,
SUM(b.cantidad),g.cantidad_2,g.cantidad_1,a.tipo_cliente,a.sec_cliente,c.nombre,k.nom1_emp,k.apell1_emp,g.fecha,o.descrip_mov,a.cerrada,' '
FROM prtb00012 a,prtb00013 b,vetb00004 c,vetb00028 d,prdtable e,mestable f,adtb00003 k,iptb00020 L,iptb00022 m,iptb00002 n,
OUTER (iptb00006 g, iptb00005 o)
WHERE
(a.num_oc =b.num_oc) and
a.fecha_oc BETWEEN e.fecha_inicio AND e.fecha_corte AND
e.mes = f.mes and
(a.tipo_cliente = c.tipo_cliente) AND
(a.sec_cliente = c.sec_cliente) AND
(c.tipo_cliente = d.tipo_cliente) AND
(c.sec_cliente = d.sec_cliente) AND
(d.sec_vend = k.num_emp) AND
(b.cod_n = n.cod_n) AND
(b.cod_grupo = n.cod_grupo) AND
(b.cod_tipo = n.cod_tipo) AND
(b.cod_sec = n.cod_sec) AND
(n.cod_cia = m.cod_cia) AND
(L.COD_N = N.COD_N) AND
e.ano > "2005" and
(n.cod_n = G.cod_n) AND
(n.cod_grupo = G.cod_grupo) AND
(n.cod_tipo = G.cod_tipo) AND
(n.cod_sec = G.cod_sec) AND
(b.cod_n = G.cod_n) AND
(b.cod_grupo = G.cod_grupo) AND
(b.cod_tipo = G.cod_tipo) AND
(b.cod_sec = G.cod_sec) AND
(g.conduce_no = a.num_oc) and
(g.cod_mov = o.cod_mov) and g.cod_mov in (30,31,55,70,71,72,12,13,43) and
(g.cod_sp = c.tipo_cliente and g.cod_sp_sec = c.sec_cliente) and
g.status_t is null and
a.status_t is null
GROUP BY e.ano,f.descrip,a.fecha_oc,a.fecha_entrega,g.num_doc,a.num_oc,L.PRODUCTO,m.descripcion,b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,n.descrip_esp,n.unidad_med,
g.cantidad_2,g.cantidad_1,a.tipo_cliente,a.sec_cliente,c.nombre,k.nom1_emp,k.apell1_emp,g.fecha,o.descrip_mov,a.cerrada
UPDATE vwordenes SET estado = "CERRADA" WHERE estado = "S"
UPDATE vwordenes SET estado = "ABIERTA" WHERE estado = "N"
UPDATE vwordenes SET fechaActualizacion = current
END FUNCTION
+203
View File
@@ -0,0 +1,203 @@
{
-----------------------------------------------------------------------
PROGRAMA : PRPRMTORDEN
OBJETIVO : ACTUALIZACION TABLA STATUS ORDEN
PROGRAMADOR : JUAN SOTO
FECHA REALIZACION : NOVIEMBRE 5, 2008
-----------------------------------------------------------------------
}
SCHEMA decomarmol
MAIN
DEFINE usuarios,clave CHAR(50)
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT TO "decomarmol" USER usuarios USING clave
CALL prprmtorden()
END MAIN
FUNCTION prprmtorden()
DEFINE pcodn,pcodgrupo,pcodtipo,pcodsec SMALLINT,
pexiste DEC(12,3),pcosto DEC(12,4)
DISPLAY "PROCESO STATUS ORDEN..., FAVOR ESPERE...."
DELETE FROM ptordenesgral
INSERT INTO ptordenesgral
SELECT e.ano, f.descrip, a.fecha_oc, a.fecha_entrega, '0' AS Expr1, a.num_oc, '01/01/2001' AS Expr2, '0' AS Expr3, '01/01/2001' AS Expr4, L.producto, m.descripcion, b.cod_n, b.cod_grupo,
b.cod_tipo, b.cod_sec, n.descrip_esp, n.unidad_med, '0' AS Expr5, SUM(b.cantidad) AS Expr6, '0' AS Expr7, x.cantidad_1, b.precio, SUM((b.cantidad * b.precio)
* (b.descuento / 100)) AS Expr8, SUM(b.cantidad * b.precio) AS Expr9, '0' AS Expr10, '0' AS Expr11, '0' AS Expr12, a.tipo_cliente, a.sec_cliente, c.nombre, k.num_emp,
k.nom1_emp, k.apell1_emp, '01/01/2001' AS Expr13, 'ORDEN DE PEDIDOS' AS Expr14, a.cerrada, P1.observacion, '0' AS Expr15, '01/01/2001' AS Expr16
FROM vetb00028 AS d INNER JOIN
prtb00012 AS a INNER JOIN
prtb00013 AS b ON a.num_oc = b.num_oc INNER JOIN
prtb00014 AS P1 ON a.num_oc = P1.num_oc INNER JOIN
vetb00004 AS c ON a.tipo_cliente = c.tipo_cliente AND
a.sec_cliente = c.sec_cliente ON
d.tipo_cliente = c.tipo_cliente AND
d.sec_cliente = c.sec_cliente
INNER JOIN
adtb00003 AS k ON d.sec_vend = k.num_emp
INNER JOIN
iptb00002 AS n ON b.cod_n = n.cod_n AND b.cod_grupo = n.cod_grupo AND
b.cod_tipo = n.cod_tipo AND b.cod_sec = n.cod_sec
INNER JOIN
iptb00022 AS m ON n.cod_cia = m.cod_cia INNER JOIN
iptb00020 AS L ON n.cod_n = L.cod_n LEFT OUTER JOIN
prtb00023 AS x ON b.num_oc = x.num_oc AND b.cod_n = x.cod_grupo AND
b.cod_grupo = x.cod_grupo AND b.cod_tipo = x.cod_tipo AND
b.cod_sec = x.cod_sec,
mestable AS f
INNER JOIN
prdtable AS e ON f.mes = e.mes
WHERE (a.fecha_oc BETWEEN e.fecha_inicio AND e.fecha_corte) AND
(e.ano > 2006) AND (a.status_t IS NULL)
GROUP BY e.ano, f.descrip, a.fecha_oc, a.fecha_entrega, a.num_oc, L.producto, m.descripcion, b.cod_n, b.cod_grupo, b.cod_tipo, b.cod_sec, n.descrip_esp, n.unidad_med,
x.cantidad_1, a.tipo_cliente, a.sec_cliente, c.nombre, k.nom1_emp, k.apell1_emp, a.cerrada, P1.observacion, b.precio, k.num_emp
#INSERTA DOCUMENTOS DE LA ORDEN
INSERT INTO ptordenesgral
SELECT
e.ano,f.descrip,p2.fecha_oc,p2.fecha_entrega,g.num_doc,g.conduce_no,'01/01/2001','0','01/01/2009',L.PRODUCTO,m.descripcion,
g.cod_n,g.cod_grupo,g.cod_tipo,g.cod_sec,n.descrip_esp,n.unidad_med,'0',
'0',g.cantidad_2,g.cantidad_1,'0','0','0','0','0','0',c.tipo_cliente,c.sec_cliente,c.nombre,k.num_emp,k.nom1_emp,k.apell1_emp,
g.fecha,o.descrip_mov,p2.cerrada,p1.observacion,' ','01/01/2001'
FROM vetb00004 c,vetb00028 d,prdtable e,mestable f,adtb00003 k,iptb00020 L,iptb00022 m,
iptb00002 n, iptb00006 g, iptb00005 o,PRTB00014 P1,prtb00012 p2
WHERE
g.fecha BETWEEN e.fecha_inicio AND e.fecha_corte AND
e.mes = f.mes and
c.tipo_cliente = p2.tipo_cliente and
c.sec_cliente = p2.sec_cliente and
g.conduce_no = convert(char,p2.num_oc) AND
(c.tipo_cliente = d.tipo_cliente) AND
(c.sec_cliente = d.sec_cliente) AND
(d.sec_vend = k.num_emp) AND
(n.cod_cia = m.cod_cia) AND
(L.COD_N = N.COD_N) AND
e.ano > "2006" and
p1.num_oc = p2.num_oc and
(n.cod_n = G.cod_n) AND
(n.cod_grupo = G.cod_grupo) AND
(n.cod_tipo = G.cod_tipo) AND
(n.cod_sec = G.cod_sec) AND
(g.cod_mov = o.cod_mov) and g.cod_mov in (30,31,55,70,71,72,12,13) and
(g.cod_sp = c.tipo_cliente and g.cod_sp_sec = c.sec_cliente) and
g.status_t is null
DISPLAY "PROCESO DOCUMENTOS FACTURAS..., FAVOR ESPERE...."
# INSERTA FACTURA DE VENTAS
INSERT INTO ptordenesgral
SELECT
e.ano,f.descrip,x.fecha_oc,x.fecha_entrega,a.factura,a.orden,'01/01/2001','0',a.fecha_factura,
L.PRODUCTO,m.descripcion,
b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_sec,n.descrip_esp,n.unidad_med,'0',
'0',b.cantidad,'0',b.precio,(b.cantidad_2*b.precio)*(b.cantidad_2/100),b.precio*b.cantidad,'0','0','0',a.tipo_cliente,a.sec_cliente,c.nombre,k.num_emp,k.nom1_emp,
k.apell1_emp,' ','FACTURA VENTAS', x.cerrada,p1.observacion,' ','01/01/2001'
FROM VETB00002 a,VETB00003 b,vetb00004 c,vetb00028 d,prdtable e,mestable f,adtb00003 k,iptb00020 L,iptb00022 m,iptb00002 n,
PRTB00014 P1,prtb00012 x
WHERE
(a.factura =b.factura) and
(a.orden = p1.num_oc) and
(a.orden = x.num_oc) and
a.fecha_factura BETWEEN e.fecha_inicio AND e.fecha_corte AND
e.mes = f.mes and
(a.tipo_cliente = c.tipo_cliente) AND
(a.sec_cliente = c.sec_cliente) AND
(c.tipo_cliente = d.tipo_cliente) AND
(c.sec_cliente = d.sec_cliente) AND
(d.sec_vend = k.num_emp) AND
(b.cod_n = n.cod_n) AND
(b.cod_grupo = n.cod_grupo) AND
(b.cod_tipo = n.cod_tipo) AND
(b.cod_sec = n.cod_sec) AND
(n.cod_cia = m.cod_cia) AND
(L.COD_N = N.COD_N) AND
e.ano > "2006" and
a.status_t is null
# PROCESO INSERTA DESPIECE
# PROCESO PARA INSERTA AVANCES
DISPLAY "PROCESO AVANCES..., FAVOR ESPERE...."
INSERT INTO ptordenesgral
SELECT
e.ano,f.descrip,'01/01/2001','01/01/2001',a.num_doc,a.num_cheque,a.fecha_orig,a.valor,'01/01/2001',
'0','0', '0','0','0','0','0','0','0',
'0','0','0','0','0','0','0','0','0',a.tipo_cliente,a.sec_cliente,c.nombre,k.num_emp,k.nom1_emp,k.apell1_emp,'01/01/2001','AVANCE A ORDEN',
p2.cerrada,' ',' ','01/01/2001'
FROM cctb00001 a,vetb00004 c,vetb00028 d,prdtable e,mestable f,adtb00003 k,prtb00012 p2
WHERE
a.fecha_orig BETWEEN e.fecha_inicio AND e.fecha_corte AND
e.mes = f.mes and
(a.tipo_cliente = c.tipo_cliente) AND
(a.sec_cliente = c.sec_cliente) AND
(c.tipo_cliente = d.tipo_cliente) AND
(c.sec_cliente = d.sec_cliente) AND
c.tipo_cliente = p2.tipo_cliente and
c.sec_cliente = p2.sec_cliente and
a.num_cheque = p2.num_oc and
(d.sec_vend = k.num_emp) AND
(a.tipo_Doc = "AV") AND a.num_doc = a.aplica_a AND a.valor > 0 and
e.ano > "2006" and
a.status_t is null
DISPLAY "PROCESO CERRADA-ABIERTAS..., FAVOR ESPERE...."
update ptordenesgral set estado = "ABIERTA" where estado = "N"
update ptordenesgral set estado = "CERRADA" where estado = "S"
update ptordenesgral set estado = (select cerrada from prtb00012 where ptordenesgral.orden = num_oc and
tipo_cliente = ptordenesgral.tipo_cliente and sec_cliente = ptordenesgral.sec_cliente)
where estado not in ("CERRADA","ABIERTA")
update ptordenesgral set estado = "ABIERTA" where estado = "N"
update ptordenesgral set estado = "CERRADA" where estado = "S"
update ptordenesgral set estado = "NO TIENE" where estado IS NULL
update ptordenesgral set fechaactualizacion = GETDATE()
{
DISPLAY "PROCESO EXISTENCIAS..., FAVOR ESPERE...."
DECLARE existe CURSOR FOR
SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,sum(b.cantidad_2) FROM ptordenesgral a,iptb00006 b
WHERE a.cod_n = b.cod_n and a.cod_grupo = b.cod_grupo and a.cod_tipo = b.cod_tipo and
a.cod_sec = b.cod_Sec and b.status_t is null
GROUP BY 1,2,3,4
FOREACH existe INTO pcodn,pcodgrupo,pcodtipo,pcodsec,pcosto,pexiste
UPDATE ptordenesgral SET existencia = pexiste
WHERE cod_n = pcodn and cod_grupo = pcodgrupo and
cod_tipo = pcodtipo and cod_sec = pcodsec
END FOREACH
DISPLAY "PROCESO COSTOS..., FAVOR ESPERE...."
DECLARE costos CURSOR FOR
SELECT UNIQUE a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_Sec,a.material+a.gastos+a.labor FROM iptb00004 a
WHERE a.ano = 2008 and a.mes_fin = "12" and a.status_t is null
FOREACH costos INTO pcodn,pcodgrupo,pcodtipo,pcodsec,pcosto
UPDATE ptordenesgral SET costo_std= pcosto
WHERE cod_n = pcodn and cod_grupo = pcodgrupo and
cod_tipo = pcodtipo and cod_sec = pcodsec
END FOREACH
UPDATE ptordenesgral SET valorcostostd = cantidadorden * costo_std
}
END FUNCTION
+75
View File
@@ -0,0 +1,75 @@
DATABASE marmotech
GLOBALS "prprgb000.4gl"
DEFINE unidad,nombre,nombre_vend,descrip_esp CHAR(40)
REPORT ordenes(xnumero,z)
DEFINE z RECORD
cod_n_c LIKE prtb00008.cod_n,
cod_grupo_c LIKE prtb00008.cod_grupo,
cod_tipo_c LIKE prtb00008.cod_tipo,
cod_sec_c LIKE prtb00008.cod_sec,
cantidad_c LIKE prtb00008.cantidad ,
descrip_esp_c LIKE intb00001.descrip_esp,
unidad_c LIKE intb00001.unidad_med
END RECORD,
xnumero INTEGER,
negrillas_on,negrillas_off,doble CHAR(2)
OUTPUT
LEFT MARGIN 0
ORDER BY xnumero
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doble = ASCII 14
LET l = (80 - LENGTH(p_compania.nombre CLIPPED))/2
PRINT COLUMN l, p_compania.nombre CLIPPED,
COLUMN 70, TODAY USING "DD/MM/YY"
LET l = (80 - LENGTH("ORDEN DE PRODUCCION"))/2
PRINT COLUMN l, "ORDEN DE PRODUCCION",
COLUMN 70, TIME
PRINT COLUMN 1, "NO. ORDEN: ",doble_on,xnumero USING "<<<<<<"
PRINT COLUMN 1, "FECHA : ",negrillas_on,prtb07.fecha
USING "DD/MM/YY",negrillas_off
PRINT COLUMN 1, "VENDEDOR : ",negrillas_on,prtb07.sec_vend USING "<<<<",
nombre_vend,negrillas_off
PRINT COLUMN 1, "CLIENTE : ",negrillas_on,prtb07.tipo_cliente USING "<<",
prtb07.sec_cliente
USING "<<<<"," ",
nombre,negrillas_off
PRINT COLUMN 1, "PRODUCTO : ",negrillas_on,prtb07.cod_n USING "&","-",
prtb07.cod_grupo USING "&",
prtb07.cod_tipo USING "&&","-",
prtb07.cod_sec
USING "&&&",negrillas_off,descrip_esp," ",
unidad,negrillas_off
PRINT COLUMN 1, "CANTIDAD : ",negrillas_on, prtb07.cantidad USING "<<,<<<",
negrillas_off
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
PRINT "COMPOSICION PRODUCTO..."
FOR i = 1 TO 70
PRINT "-";
END FOR
PRINT "-"
ON EVERY ROW
PRINT COLUMN 1, z.cod_n_c USING "&","-",
z.cod_grupo_c USING "&","-",
z.cod_tipo_c USING "&&","-",
z.cod_sec_c USING "&&&","-",
" ",z.descrip_esp_c," ",z.unidad_c,
" ",z.cantidad_c USING "###,###.###"
PAGE TRAILER
PRINT COLUMN 10, "-------------------",
COLUMN 35, "-------------------"
PRINT COLUMN 13, "AUTORIZADO POR",
COLUMN 39, "REVISADO POR"
END REPORT
+418
View File
@@ -0,0 +1,418 @@
{
===========================================================================
PROGRAMA : PRPRRP001
SISTEMA : PRODUCCION
OBJETIVO : LISTAR FORMULARIO PARA REGISTRAR HORAS PERSONAL NO
PRODUCTIVO.
AUTOR : Tadeo. A. Ferreras F.
FECHA : SEPT. 15, 1994
===========================================================================
}
GLOBALS
"prprgb000.4gl"
DEFINE repor_1 RECORD
num_emp SMALLINT,
departamento SMALLINT,
nom1_emp CHAR(14),
nom2_emp CHAR(14),
apell1_emp CHAR(14),
apell2_emp CHAR(14),
nom_dpto CHAR(30),
nom_puesto CHAR(28),
cod_puesto SMALLINT
END RECORD
MAIN
DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings()
r_filename STRING, -- filename of Report Design Document including .4rp extension
r_output STRING, -- output format option
preview INTEGER -- TRUE/FALSE, to set preview option
DEFER INTERRUPT
-- prompt user for report settings to replace defaults
CALL selectOutput() RETURNING r_filename, r_output, preview
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
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
ELSE
EXIT PROGRAM
END IF
--run the report
IF handler IS NOT NULL THEN -- report engine was configured ok
CALL prprrp001()
ELSE
EXIT PROGRAM
END IF
END MAIN
FUNCTION prprrp001()
DEFINE opcion CHAR(1)
OPTIONS
PROMPT LINE 23,
FORM LINE 8,
ERROR LINE 23
OPEN FORM prfmrp001 FROM "prfmrp001"
DISPLAY FORM prfmrp001
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
CONNECT TO "decomarmol" USER "jsoto" USING "lmmjvsd2009"
INPUT BY NAME prtb02.num_semana
AFTER FIELD num_semana
IF prtb02.num_semana IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
SELECT UNIQUE a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
FROM prtb00002 a
WHERE a.num_semana = prtb02.num_semana AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
PROMPT "Es el rango de fecha deseado [S/N]?..." FOR CHAR opcion
LET opcion = UPSHIFT(opcion)
IF opcion = "S" THEN
SELECT UNIQUE a.num_semana FROM prtb00003 a
WHERE a.num_semana = prtb02.num_semana AND a.status_t IS NULL
IF STATUS != NOTFOUND THEN
PROMPT
"LISTADO EXISTE, SI DESEAS IMPRIMIRLO BORRARA INFORMACION DE LA SEMANA [S/N]"
FOR CHAR opcion1
LET opcion1 = UPSHIFT(opcion1)
IF opcion1 != "S" THEN
RETURN
END IF
ELSE
LET opcion1 = "S"
END IF
IF opcion1 = "S" THEN
DECLARE busca CURSOR FOR
SELECT a.num_emp,a.departamento,a.nom1_emp,a.nom2_emp,a.apell1_emp,
a.apell2_emp,b.nom_dpto,c.nom_puesto,a.cod_puesto
FROM adtb00003 a,adtb00001 b,adtb00004 c
WHERE a.departamento = b.departamento and
a.nivel_emp != 2 and
a.cod_puesto = c.cod_puesto and
a.status_t is null and a.departamento between 6000 and 6500
ORDER BY 2,9,1
DISPLAY "Buscando Informacion... Espere Por Favor" AT 17,14
START REPORT reporte_1 TO "C:\\archivo"
DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14
FOREACH busca INTO repor_1.*
OUTPUT TO REPORT reporte_1(repor_1.*)
END FOREACH
DECLARE busca1 CURSOR FOR
SELECT a.num_emp,'6199',a.nom1_emp,a.nom2_emp,a.apell1_emp,
a.apell2_emp,b.nom_dpto,c.nom_puesto,a.cod_puesto
FROM adtb00003 a,adtb00001 b,adtb00004 c
WHERE a.departamento = b.departamento and
a.nivel_emp = 2 and
a.cod_puesto = c.cod_puesto and
a.status_t is null and a.departamento between 6000 and 6500
ORDER BY 2,9,1
FOREACH busca1 INTO repor_1.*
OUTPUT TO REPORT reporte_1(repor_1.*)
END FOREACH
FINISH REPORT reporte_1
END IF
END IF
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_1(x)
DEFINE x RECORD
num_emp SMALLINT,
departamento SMALLINT,
nom1_emp CHAR(14),
nom2_emp CHAR(14),
apell1_emp CHAR(14),
apell2_emp CHAR(14),
nom_dpto CHAR(30),
nom_puesto CHAR(28),
cod_puesto SMALLINT
END RECORD
OUTPUT
LEFT MARGIN 0
ORDER BY x.departamento,x.cod_puesto,x.num_emp
format
page header
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ascii 77
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET hora = time
PRINT comp_on
PRINT COLUMN 1, "prprrp001",
COLUMN 49, " R A Y .O. V A C D O M I N I C A N A, S. A. ",
COLUMN 141, "Pag. ",pageno USING "###"
PRINT COLUMN 49, " SISTEMA DE PRODUCCION ",
COLUMN 141, today using "dd/mm/yy"
PRINT COLUMN 49, "REGISTRO HORAS DIARIAS Y PERSONAL NO DE PRODUCCION",
COLUMN 144, hora
skip 1 line
PRINT COLUMN 1, "NUMERO SEMANA: ",prtb02.num_semana USING "&&&&"," ",
": DEL ",prtb02.semana_del USING "dd/mm/yy",
" AL ",prtb02.semana_al USING "dd/mm/yy"
PRINT "====================================================================",
"====================================================================",
"============"
PRINT COLUMN 64,
"| H O R A S I N D I R E C T A S ",
" |"
PRINT COLUMN 64, "| NORMALES |",
COLUMN 120, " EXTRAS |"
PRINT COLUMN 64,"|",
COLUMN 67, "S",
5 spaces, "D",
5 spaces, "L",
5 spaces, "M",
5 spaces, "M",
5 spaces, "J",
5 spaces, "V |",
2 spaces, "S",
5 spaces, "D",
5 spaces, "L",
5 spaces, "M",
5 spaces, "M",
5 spaces, "J",
5 spaces, "V |"
PRINT "====================================================================",
"====================================================================",
"============"
BEFORE GROUP OF x.departamento
LET idx = 0
BEFORE GROUP OF x.cod_puesto
IF x.departamento >= 6000 and
x.departamento <= 6199 THEN
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
LET idx = idx + 1
IF idx = 1 THEN
PRINT doble_on,x.nom_dpto clipped,doble_off
SKIP 1 LINE
END IF
END IF
END IF
IF x.departamento >= 6199 THEN
LET idx = idx + 1
IF idx = 1 THEN
PRINT doble_on,x.nom_dpto clipped,doble_off
SKIP 1 LINE
END IF
{PRINT COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"}
END IF
ON EVERY ROW
IF x.departamento >= 6000 and
x.departamento <= 6199 THEN
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
LET prtb03.fecha = prtb02.semana_del
PRINT COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped,
" ",x.apell1_emp CLIPPED,
COLUMN 35, x.nom_puesto CLIPPED,
COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"-----------"
END IF
END IF
IF x.departamento >= 6199 THEN
LET prtb03.fecha = prtb02.semana_del
PRINT COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped," ",x.apell1_emp,
COLUMN 35, x.nom_puesto CLIPPED,
COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"-----------"
END IF
AFTER GROUP OF x.departamento
IF x.departamento >= 6000 AND
x.departamento <= 6199 THEN
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"-----------"
END IF
END IF
IF x.departamento >= 6199 THEN
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"-----------"
END IF
ON LAST ROW
SKIP 1 LINE
PRINT "Total Registros Impresos===> ",COUNT(*) USING "####"
PRINT comp_off
END REPORT
FUNCTION selectOutput()
DEFINE
r_output STRING, -- output format option
r_action STRING, -- used to set preview option
r_filename STRING, -- filename of Report Design document (the .4rp filename)
preview INTEGER -- preview option TRUE/FALSE, to display report in Report Viewer
-- display form allowing user to select the .4rp filename and output options
CLOSE WINDOW SCREEN
OPTIONS INPUT WRAP
OPEN WINDOW f_configuration WITH FORM "Configuration"
LET INT_FLAG=FALSE
LET preview = FALSE
INPUT BY NAME r_filename,r_output,r_action
ON ACTION CANCEL
EXIT PROGRAM
ON ACTION CLOSE
EXIT PROGRAM
END INPUT
CLOSE WINDOW f_configuration
CALL ui.interface.refresh()
-- set preview variable to match output option r_action
IF r_action IS NOT NULL THEN
IF r_action == "preview" THEN
LET preview = TRUE
END IF
END IF
--return report name (filename of Report Design Document) and output option variables to be used to configure the report engine
RETURN r_filename||".4rp", r_output, preview
END FUNCTION
File diff suppressed because it is too large Load Diff
+435
View File
@@ -0,0 +1,435 @@
{
===========================================================================
PROGRAMA : PRPRRP002
SISTEMA : PRODUCCION
OBJETIVO : VALIDACION REGISTRO HORAS PERSONAL NO PRODUCTIVO.
AUTOR : Tadeo. A. Ferreras F.
FECHA : SEPT. 15, 1994
===========================================================================
}
GLOBALS
"prprgb000.4gl"
DEFINE t_hn_dir,t_hn_ind,t_he_dir,t_he_ind DECIMAL(10,2)
DEFINE tt_hn_dir,tt_hn_ind,tt_he_dir,tt_he_ind DECIMAL(10,2)
DEFINE repor_2 RECORD
num_emp SMALLINT,
departamento SMALLINT,
nom1_emp CHAR(10),
nom2_emp CHAR(14),
apell1_emp CHAR(14),
apell2_emp CHAR(14),
nom_puesto CHAR(28),
cod_puesto SMALLINT
END RECORD
FUNCTION prprrp002()
DEFINE opcion CHAR(1)
OPTIONS
PROMPT LINE 23,
FORM LINE 8,
ERROR LINE 23
OPEN FORM prfmrp002 FROM "prfmrp001"
DISPLAY FORM prfmrp002
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
INPUT BY NAME prtb02.num_semana
AFTER FIELD num_semana
IF prtb02.num_semana IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
SELECT UNIQUE a.semana_del,a.semana_al INTO prtb02.semana_del,prtb02.semana_al
FROM prtb00002 a
WHERE a.num_semana = prtb02.num_semana AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD num_semana
END IF
DISPLAY BY NAME prtb02.semana_del,prtb02.semana_al
END INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
PROMPT "Es el rango de fecha deseado [S/N]...? " FOR CHAR opcion
LET opcion = UPSHIFT(opcion)
IF opcion = "S" THEN
START REPORT reporte_2 TO "C:\\archivo"
DECLARE busca CURSOR FOR
SELECT UNIQUE a.num_emp,a.departamento,b.nom1_emp,b.nom2_emp,b.apell1_emp,
b.apell2_emp,c.nom_puesto,b.cod_puesto
FROM prtb00003 a,adtb00003 b,adtb00004 c
WHERE (a.num_semana = prtb02.num_semana and
a.departamento between 6000 and 6500 and
a.num_emp = b.num_emp and
b.nivel_emp != 2 and
a.status_t is null) and
b.cod_puesto = c.cod_puesto
DISPLAY "Buscando Informacion... Espere Por Favor" AT 17,14
DISPLAY "Reporte Generandose ... Espere Por Favor" AT 17,14
FOREACH busca INTO repor_2.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT reporte_2(repor_2.*)
END FOREACH
DECLARE busca1 CURSOR FOR
SELECT UNIQUE a.num_emp,'6199',b.nom1_emp,b.nom2_emp,b.apell1_emp,
b.apell2_emp,c.nom_puesto,b.cod_puesto
FROM prtb00003 a,adtb00003 b,adtb00004 c
WHERE (a.num_semana = prtb02.num_semana and
a.departamento between 6000 and 6500 and
a.num_emp = b.num_emp and
b.nivel_emp = 2 and
a.status_t is null) and
b.cod_puesto = c.cod_puesto
FOREACH busca1 INTO repor_2.*
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT reporte_2(repor_2.*)
END FOREACH
FINISH REPORT reporte_2
END IF
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
REPORT reporte_2(x)
DEFINE x RECORD
num_emp SMALLINT,
departamento SMALLINT,
nom1_emp CHAR(10),
nom2_emp CHAR(14),
apell1_emp CHAR(14),
apell2_emp CHAR(14),
nom_puesto CHAR(28),
cod_puesto SMALLINT
END RECORD,
id SMALLINT
OUTPUT
LEFT MARGIN 0
ORDER BY x.departamento,x.cod_puesto
format
page header
let comp_on = ascii 15
let comp_off = ascii 18
let doce = ascii 27, ascii 77
let doble_on = ascii 14
let doble_off = ascii 20
let hora = time
PRINT comp_on
PRINT COLUMN 1, "prprrp002",
COLUMN 49, " R A Y .O. V A C D O M I N I C A N A, S. A.",
COLUMN 141, "Pag. ",pageno USING "###"
PRINT COLUMN 49, " SISTEMA DE PRODUCCION ",
COLUMN 141, today using "dd/mm/yy"
PRINT COLUMN 49, "VALIDACION HORAS DIARIAS ADM Y PERSONAL NO DE PRODUCCION",
COLUMN 144, hora
PRINT COLUMN 1, "NUMERO SEMANA: ",prtb02.num_semana USING "&&&&"," ",
": DEL ",prtb02.semana_del USING "dd/mm/yy",
" AL ",prtb02.semana_al USING "dd/mm/yy"
PRINT "====================================================================",
"====================================================================",
"============"
PRINT COLUMN 64,
"| H O R A S I N D I R E C T A S ",
" |"
PRINT COLUMN 64, "| NORMALES |",
COLUMN 120, " EXTRAS |"
PRINT COLUMN 64,"|",
COLUMN 67, "S",
5 spaces, "D",
5 spaces, "L",
5 spaces, "M",
5 spaces, "M",
5 spaces, "J",
5 spaces, "V |",
2 spaces, "S",
5 spaces, "D",
5 spaces, "L",
5 spaces, "M",
5 spaces, "M",
5 spaces, "J",
5 spaces, "V |"
PRINT "====================================================================",
"====================================================================",
"============"
BEFORE GROUP OF x.departamento
IF x.departamento != 6199 THEN
SELECT a.nom_dpto INTO nom_dpto FROM adtb00001 a
WHERE a.departamento = x.departamento AND a.status_t IS NULL
END IF
IF x.departamento = 6199 THEN
LET nom_dpto = "SUPERVISORES"
END IF
LET t_hn_ind = 0
LET t_he_ind = 0
LET idx = 0
BEFORE GROUP OF x.cod_puesto
IF x.departamento >= 6000 and
x.departamento <= 6199 THEN
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
LET idx = idx + 1
IF idx = 1 THEN
PRINT doble_on,nom_dpto clipped,doble_off
SKIP 1 LINE
END IF
END IF
END IF
IF x.departamento >= 6199 THEN
LET idx = idx + 1
IF idx = 1 THEN
PRINT doble_on,nom_dpto clipped,doble_off
SKIP 1 LINE
END IF
END IF
ON EVERY ROW
IF x.departamento >= 6000 AND
x.departamento < 6199 THEN
PRINT COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
PRINT COLUMN 1,x.num_emp using "&&&"," ",x.nom1_emp clipped,
" ",x.apell1_emp CLIPPED,
COLUMN 35, x.nom_puesto CLIPPED,
COLUMN 64, "|";
LET t_hn_ind = 0
LET t_he_ind = 0
LET prtb03.fecha = prtb02.semana_del
LET l = 65
LET prtb03.fecha = prtb02.semana_del
FOR j = 1 TO 7
LET prtb03.hn_ind = 0
IF x.departamento != 6199 THEN
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF x.departamento = 6199 THEN
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
WHERE a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF prtb03.hn_ind IS NULL THEN
LET prtb03.hn_ind = 0
END IF
PRINT COLUMN l, prtb03.hn_ind USING "##.##","|";
LET l = l + 6
LET t_hn_ind = t_hn_ind + prtb03.hn_ind
LET tt_hn_ind = tt_hn_ind + prtb03.hn_ind
LET prtb03.fecha = prtb03.fecha + 1
END FOR
LET prtb03.fecha = prtb02.semana_del
FOR j = 1 TO 7
LET prtb03.he_ind = 0
IF x.departamento != 6199 THEN
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF x.departamento = 6199 THEN
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
WHERE a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF prtb03.he_ind IS NULL THEN
LET prtb03.he_ind = 0
END IF
PRINT COLUMN l, prtb03.he_ind USING "##.##","|";
LET l = l + 6
LET t_he_ind = t_he_ind + prtb03.he_ind
LET tt_he_ind = tt_he_ind + prtb03.he_ind
LET prtb03.fecha = prtb03.fecha + 1
END FOR
PRINT COLUMN l," "
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"------------"
END IF
END IF
IF x.departamento >= 6199 THEN
PRINT COLUMN 64, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|",
5 spaces, "|"
PRINT COLUMN 1,x.num_emp using "&&&&"," ",x.nom1_emp clipped,", ",x.apell1_emp,
COLUMN 35, x.nom_puesto CLIPPED,
COLUMN 64, "|";
LET t_hn_ind = 0
LET t_he_ind = 0
LET prtb03.fecha = prtb02.semana_del
LET l = 65
LET prtb03.fecha = prtb02.semana_del
FOR j = 1 TO 7
LET prtb03.hn_ind = 0
IF x.departamento != 6199 THEN
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF x.departamento = 6199 THEN
SELECT a.hn_ind INTO prtb03.hn_ind FROM prtb00003 a
WHERE a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF prtb03.hn_ind IS NULL THEN
LET prtb03.hn_ind = 0
END IF
PRINT COLUMN l, prtb03.hn_ind USING "##.##","|";
LET l = l + 6
LET t_hn_ind = t_hn_ind + prtb03.hn_ind
LET tt_hn_ind = tt_hn_ind + prtb03.hn_ind
LET prtb03.fecha = prtb03.fecha + 1
END FOR
LET prtb03.fecha = prtb02.semana_del
FOR j = 1 TO 7
LET prtb03.he_ind = 0
IF x.departamento != 6199 THEN
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
WHERE a.departamento = x.departamento AND a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF x.departamento = 6199 THEN
SELECT a.he_ind INTO prtb03.he_ind FROM prtb00003 a
WHERE a.num_emp = x.num_emp AND
a.fecha = prtb03.fecha AND a.status_t IS NULL
END IF
IF prtb03.he_ind IS NULL THEN
LET prtb03.he_ind = 0
END IF
PRINT COLUMN l, prtb03.he_ind USING "##.##","|";
LET l = l + 6
LET t_he_ind = t_he_ind + prtb03.he_ind
LET tt_he_ind = tt_he_ind + prtb03.he_ind
LET prtb03.fecha = prtb03.fecha + 1
END FOR
PRINT COLUMN l," "
PRINT "--------------------------------------------------------------------",
"--------------------------------------------------------------------",
"------------"
END IF
AFTER GROUP OF x.departamento
IF x.departamento >= 6000 AND
x.departamento <= 6199 THEN
IF x.cod_puesto = 3 OR x.cod_puesto = 27 OR x.cod_puesto = 13 OR
x.cod_puesto = 14 THEN
PRINT "-----------------------------------------------------------------",
"-----------------------------------------------------------------",
"------------------"
END IF
END IF
IF x.departamento >= 6199 THEN
PRINT "-----------------------------------------------------------------",
"-----------------------------------------------------------------",
"------------------"
END IF
ON LAST ROW
SKIP 1 LINE
PRINT "Total Registros Impresos===> ",COUNT(*) USING "####"
print comp_off
END REPORT
File diff suppressed because it is too large Load Diff
+228
View File
@@ -0,0 +1,228 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP004
OBJETIVO : Validacion Diario de produccion
PROGRAMADOR : Juan F. Soto
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE fecha_inicial,fecha_final DATE
DEFINE factor DECIMAL(12,2)
FUNCTION prprrp004()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos4 RECORD
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
detalle LIKE cttb00003.detalle,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp004 FROM "prfmrp005"
DISPLAY FORM prfmrp004
CALL pantalla()
DISPLAY "prprrp004" AT 4,3
DISPLAY "Validacion Produccion Diaria" AT 6,27
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME fecha_inicial,fecha_final
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE busca CURSOR FOR
SELECT a.num_doc,a.fecha,a.departamento,b.nom_dpto,a.emp_no,
c.nom1_emp,c.apell1_emp,a.cod_mq,a.detalle,a.h_directa,
a.h_indirecta,a.e_directa,a.e_indirecta,a.cod_prod,
d.descripcion,a.cantidad,a.rowid
FROM cttb00003 a,adtb00001 b,adtb00003 c,outer cttb00001 d
WHERE a.fecha between fecha_inicial and fecha_final and
a.departamento=b.departamento AND a.emp_no = c.num_emp and
a.cod_prod = d.cod_prod and a.status_t is null
ORDER BY 2,1,3,17
DISPLAY "Reporte Generandose... Espere Por Favor" AT 19,14
START REPORT reporte_4 TO "C:\\archivo"
FOREACH busca INTO prt_datos4.*
OUTPUT TO REPORT reporte_4(prt_datos4.*)
END FOREACH
FINISH REPORT reporte_4
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_4(x)
# Variable para tomar las informaciones
DEFINE x RECORD
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
detalle LIKE cttb00003.detalle,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
# Validacion de los caracteres ascii
LET doble_on = ASCII 014
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 3, "prprrp004",
COLUMN 46, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 120, "Pag. ",
pageno using "###"
PRINT COLUMN 46, " Sistema de Produccion",
COLUMN 120, today using "dd/mm/yy"
PRINT COLUMN 46, " Validacion Produccion Diaria x Departamento",
COLUMN 123, hora
SKIP 1 LINE
PRINT COLUMN 3,"Periodo: ",fecha_inicial USING "dd/mm/yy",
" AL ",fecha_final USING "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------------------"
PRINT COLUMN 65, "Horas |",
COLUMN 85, "Horas |"
PRINT COLUMN 65, "Normal |",
COLUMN 85, "Extras |"
PRINT COLUMN 3, "Departamento",
COLUMN 33, " Empleados ",
COLUMN 60, "Directa",
COLUMN 70, "Indirec |",
COLUMN 80, "Directa",
COLUMN 88, "Indirec|",
COLUMN 96, "Semi-elaborados",
COLUMN 137, "Cantidad"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"----------------------------------"
BEFORE GROUP OF x.fecha
PRINT COLUMN 3, "Fecha de Este Reporte: ",x.fecha using "dd/mm/yy"
SKIP 1 LINE
BEFORE GROUP OF x.departamento
SKIP 1 LINE
PRINT COLUMN 3, "SECUENCIA: ",x.num_doc USING "&&&&&&"
PRINT COLUMN 3, "DEPARTAMENTO ",x.departamento using "####"," ",
x.nombre_d
SKIP 1 LINE
ON EVERY ROW
LET factor = 1
SELECT a.fact_conv INTO factor FROM prtb00006 a
WHERE a.cod_prod = x.cod_prod
IF factor IS NULL THEN
LET factor = 1
END IF
PRINT COLUMN 1, x.cod_mq using "###"," ",x.detalle,
COLUMN 33, x.emp_no using "####"," ",x.nom1 clipped,", ",
x.nom2 clipped,
COLUMN 60, x.h_directa using "##.##",
COLUMN 70, x.h_indirecta using "##.##",
COLUMN 80, x.e_directa using "##.##",
COLUMN 90, x.e_indirecta using "##.##",
COLUMN 96, x.cod_prod using "&&&&"," ",x.descripcion CLIPPED,
COLUMN 133, (x.cantidad*factor) using "###,###,###.##"
AFTER GROUP OF x.fecha
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT comp_off
END REPORT
+258
View File
@@ -0,0 +1,258 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP005
OBJETIVO : Reporte de Reporte Diario de produccion
PROGRAMADOR : Juan F. Soto
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE fecha_inicial,fecha_final DATE
DEFINE factor DECIMAL(12,2)
FUNCTION prprrp005()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos RECORD
depto CHAR(3),
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad,
no_reg INTEGER,
fnom1_emp LIKE adtb00036.nom1_emp,
fapell1_emp LIKE adtb00036.apell1_emp
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp005 FROM "prfmrp005"
DISPLAY FORM prfmrp005
CALL pantalla()
DISPLAY "prprrp005" AT 4,3
DISPLAY "Reporte de Produccion Diaria" AT 6,27
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME fecha_inicial,fecha_final
AFTER FIELD fecha_inicial
IF fecha_inicial IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_inicial
END IF
AFTER FIELD fecha_final
IF fecha_final IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
IF fecha_final < fecha_inicial THEN
LET numero_msg = 86
CALL msg(numero_msg)
NEXT FIELD fecha_final
END IF
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
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
DECLARE busca CURSOR FOR
SELECT e.tipo,a.num_doc,a.fecha,a.departamento,b.nom_dpto,a.emp_no,
c.nom1_emp,c.apell1_emp,a.cod_mq,a.h_directa,
a.h_indirecta,a.e_directa,a.e_indirecta,a.cod_prod,
d.descripcion,a.cantidad,a.rowid,f.nom1_emp,f.apell1_emp
FROM cttb00003 a,adtb00001 b,outer adtb00003 c,prtb00004 e,
outer cttb00001 d, outer adtb00036 f
WHERE a.fecha between fecha_inicial and fecha_final and
a.departamento=b.departamento and a.departamento=e.departamento AND
a.emp_no = c.num_emp and a.cod_prod = d.cod_prod and
a.emp_no = f.num_emp and
a.status_t is null
ORDER BY 3,1,4,17
START REPORT reporte_5 TO "C:\\archivo"
FOREACH busca INTO prt_datos.*
IF int_flag THEN
LET int_flag = FALSE
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
DISPLAY "Reporte Generandose... Espere Por Favor" AT 19,14
OUTPUT TO REPORT reporte_5(prt_datos.*)
END FOREACH
FINISH REPORT reporte_5
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_5(x)
# Variable para tomar las informaciones
DEFINE x RECORD
depto CHAR(3),
num_doc LIKE cttb00003.num_doc,
fecha LIKE cttb00003.fecha,
departamento LIKE cttb00003.departamento,
nombre_d CHAR(30),
emp_no LIKE cttb00003.emp_no,
nom1 LIKE adtb00003.nom1_emp,
nom2 LIKE adtb00003.apell1_emp,
cod_mq LIKE cttb00003.cod_mq,
h_directa LIKE cttb00003.h_directa,
h_indirecta LIKE cttb00003.h_indirecta,
e_directa LIKE cttb00003.e_directa,
e_indirecta LIKE cttb00003.e_indirecta,
cod_prod LIKE cttb00003.cod_prod,
descripcion LIKE cttb00001.descripcion,
cantidad LIKE cttb00003.cantidad,
no_reg INTEGER,
fnom1_emp LIKE adtb00036.nom1_emp,
fapell1_emp LIKE adtb00036.apell1_emp
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
DEFINE detalle CHAR(30)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
FORMAT
PAGE HEADER
# Reporte de de los caracteres ascii
LET doble_on = ASCII 014
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 3, "prprrp005",
COLUMN 46, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 120, "Pag. ",
pageno using "###"
PRINT COLUMN 46, " Sistema de Produccion",
COLUMN 120, today using "dd/mm/yy"
PRINT COLUMN 46, " Reporte de Produccion Diaria x Departamento",
COLUMN 123, hora
SKIP 1 LINE
PRINT COLUMN 3,"Periodo: ",fecha_inicial USING "dd/mm/yy",
" AL ",fecha_final USING "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------------------"
PRINT COLUMN 65, "Horas |",
COLUMN 85, "Horas |"
PRINT COLUMN 65, "Normal |",
COLUMN 85, "Extras |"
PRINT COLUMN 3, "Departamento",
COLUMN 33, " Empleados ",
COLUMN 60, "Directa",
COLUMN 70, "Indirec |",
COLUMN 80, "Directa",
COLUMN 88, "Indirec|",
COLUMN 96, "Semi-elaborados",
COLUMN 137, "Cantidad"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"----------------------------------"
BEFORE GROUP OF x.fecha
PRINT COLUMN 3, "Fecha de Este Reporte: ",x.fecha using "dd/mm/yy"
SKIP 1 LINE
BEFORE GROUP OF x.depto
PRINT COLUMN 3, doble_on,"Departamento ",x.depto
BEFORE GROUP OF x.departamento
SKIP 1 LINE
PRINT COLUMN 3, x.departamento using "####"," ",x.nombre_d
SKIP 1 LINE
ON EVERY ROW
LET factor = 1
SELECT a.fact_conv INTO factor FROM prtb00006 a
WHERE a.cod_prod = x.cod_prod
IF factor IS NULL THEN
LET factor = 1
END IF
LET detalle = " "
SELECT a.descripcion INTO detalle FROM prtb00005 a
WHERE a.codigo = x.cod_mq AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET detalle = "SIN DESCRIPCION"
END IF
PRINT COLUMN 1, x.cod_mq using "###"," ",detalle,
COLUMN 33, x.emp_no using "####"," ";
IF x.nom1 IS NOT NULL THEN
PRINT x.nom1 clipped,", ", x.nom2 clipped;
ELSE
PRINT x.fnom1_emp clipped,", ",
x.fapell1_emp clipped;
END IF
PRINT COLUMN 60, x.h_directa using "##.##",
COLUMN 70, x.h_indirecta using "##.##",
COLUMN 80, x.e_directa using "##.##",
COLUMN 90, x.e_indirecta using "##.##",
COLUMN 96, x.cod_prod using "&&&&"," ",x.descripcion CLIPPED,
COLUMN 133, (x.cantidad*factor) using "###,###,###.##"
AFTER GROUP OF x.depto
SKIP TO TOP OF PAGE
ON LAST ROW
PRINT comp_off
END REPORT
+359
View File
@@ -0,0 +1,359 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP006
OBJETIVO : Pilas Prod./Horas Totales VS Ano Anterior
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE mes_d CHAR(10)
DEFINE ano,mes INTEGER
DEFINE ano1,ano2,ano3 CHAR(4)
DEFINE fecha3,fecha4,fecha5,fecha6 DATE
DEFINE total DECIMAL(12,2)
DEFINE fecha_inicial,fecha_final DATE
FUNCTION prprrp006()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos6 RECORD
mes INTEGER,
fecha1 DATE,
fecha2 DATE,
cantidad INTEGER,
cantidad1 INTEGER,
cantidad2 INTEGER,
total_act DECIMAL(12,2),
total_ant DECIMAL(12,2),
total_ant1 DECIMAL(12,2),
prod_act DECIMAL(12,3),
prod_ant DECIMAL(12,3),
prod_ant1 DECIMAL(12,3)
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp006 FROM "prfmrp006"
DISPLAY FORM prfmrp006
CALL pantalla()
DISPLAY "prprrp006" AT 4,3
DISPLAY "Pilas Producidas Por Horas Totales" AT 6,23
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME ano,mes
AFTER FIELD ano
IF ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
LET ano1 = ano USING "&&&&"
LET ano2 = ano - 1 USING "&&&&"
LET ano3 = ano - 2 USING "&&&&"
AFTER FIELD mes
IF mes IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD mes
END IF
SELECT UNIQUE a.mes FROM prdtable a WHERE a.mes = mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE busca CURSOR FOR
SELECT a.mes,a.fecha_inicio,a.fecha_corte,SUM(b.cantidad_2/1000)
FROM prdtable a,iptb00006 b
WHERE a.ano = ano1 AND a.mes <= mes AND b.status_t IS NULL AND
b.fecha BETWEEN a.fecha_inicio AND a.fecha_corte AND
b.cod_n = 3 AND b.cod_mov = 20 GROUP BY 1,2,3
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT reporte_6 TO "C:\\archivo"
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
FOREACH busca INTO prt_datos6.*
LET prt_datos6.cantidad1 = 0
LET prt_datos6.cantidad2 = 0
LET prt_datos6.total_act = 0
LET prt_datos6.total_ant = 0
LET prt_datos6.total_ant1= 0
LET prt_datos6.prod_act = 0
LET prt_datos6.prod_ant = 0
LET prt_datos6.prod_ant1 = 0
SELECT UNIQUE a.fecha_inicio,a.fecha_corte INTO fecha3,fecha4
FROM prdtable a
WHERE a.ano = ano2 AND a.mes = prt_datos6.mes
SELECT UNIQUE a.fecha_inicio,a.fecha_corte INTO fecha5,fecha6
FROM prdtable a
WHERE a.ano = ano3 AND a.mes = prt_datos6.mes
SELECT SUM(cantidad_2/1000) INTO prt_datos6.cantidad1
FROM iptb00006
WHERE fecha BETWEEN fecha3 AND fecha4 AND status_t IS NULL AND
cod_n = 3 AND cod_mov = 20 AND status_t IS NULL
SELECT SUM(cantidad_2/1000) INTO prt_datos6.cantidad2
FROM iptb00006
WHERE fecha BETWEEN fecha5 AND fecha6 AND status_t IS NULL AND
cod_n = 3 AND cod_mov = 20 AND status_t IS NULL
LET total = 0
SELECT SUM(h_directa+h_indirecta+e_directa+e_indirecta) INTO total
FROM cttb00003
WHERE fecha BETWEEN prt_datos6.fecha1 AND prt_datos6.fecha2 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos6.total_act = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003
WHERE fecha BETWEEN prt_datos6.fecha1 AND prt_datos6.fecha2 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos6.total_act = prt_datos6.total_act + total
LET total = 0
SELECT SUM(h_directa+h_indirecta+e_directa+e_indirecta) INTO total
FROM cttb00003 WHERE fecha BETWEEN fecha3 AND fecha4 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos6.total_ant = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003 WHERE fecha BETWEEN fecha3 AND fecha4 AND
status_t IS NULL
LET total = 0
SELECT SUM(h_directa+h_indirecta+e_directa+e_indirecta) INTO total
FROM cttb00003 WHERE fecha BETWEEN fecha5 AND fecha6 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos6.total_ant1 = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003 WHERE fecha BETWEEN fecha5 AND fecha6 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos6.total_ant1 = prt_datos6.total_ant1 + total
IF prt_datos6.total_act > 0 THEN
LET prt_datos6.prod_act =
(prt_datos6.cantidad/prt_datos6.total_act)*1000
ELSE
LET prt_datos6.prod_act = 0
END IF
IF prt_datos6.total_ant > 0 AND prt_datos6.cantidad1 > 0 THEN
LET prt_datos6.prod_ant =
(prt_datos6.cantidad1/prt_datos6.total_ant)*1000
ELSE
LET prt_datos6.prod_ant = 0
END IF
IF prt_datos6.total_ant1 > 0 AND prt_datos6.cantidad2 > 0 THEN
LET prt_datos6.prod_ant1 =
(prt_datos6.cantidad2/prt_datos6.total_ant1)*1000
ELSE
LET prt_datos6.prod_ant1 = 0
END IF
OUTPUT TO REPORT reporte_6(prt_datos6.*)
END FOREACH
FINISH REPORT reporte_6
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_6(x)
# Variable para tomar las informaciones
DEFINE x RECORD
mes INTEGER,
fecha1 DATE,
fecha2 DATE,
cantidad INTEGER,
cantidad1 INTEGER,
cantidad2 INTEGER,
total_act DECIMAL(12,2),
total_ant DECIMAL(12,2),
total_ant1 DECIMAL(12,2),
prod_act DECIMAL(12,3),
prod_ant DECIMAL(12,3),
prod_ant1 DECIMAL(12,3)
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.mes
FORMAT
PAGE HEADER
# Validacion de los caracteres ascii
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 1, "prprrp006",
COLUMN 77, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 182, "Pag. ",pageno using "###"
PRINT COLUMN 77, " Sistema de Produccion",
COLUMN 182, today using "dd/mm/yy"
PRINT COLUMN 77, " Pilas Producidas Por Horas Totales ",
COLUMN 185, hora
SKIP 1 LINE
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 23, "--------------- ", ano1, " ---------------",
COLUMN 77, "--------------- ", ano2, " ---------------",
COLUMN 131, "--------------- ", ano3, " ---------------"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 1, "Mes ",
COLUMN 20, "PROD. X 1000",
COLUMN 39, " HORAS ",
COLUMN 57, "PRODUCTIVIDAD",
COLUMN 74, "PROD. X 1000",
COLUMN 93, " HORAS ",
COLUMN 111, "PRODUCTIVIDAD",
COLUMN 128, "PROD. X 1000",
COLUMN 147, " HORAS ",
COLUMN 165, "PRODUCTIVIDAD"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
ON EVERY ROW
CASE
WHEN x.mes = 1 LET mes_d = "ENERO" EXIT CASE
WHEN x.mes = 2 LET mes_d = "FEBRERO" EXIT CASE
WHEN x.mes = 3 LET mes_d = "MARZO" EXIT CASE
WHEN x.mes = 4 LET mes_d = "ABRIL" EXIT CASE
WHEN x.mes = 5 LET mes_d = "MAYO" EXIT CASE
WHEN x.mes = 6 LET mes_d = "JUNIO" EXIT CASE
WHEN x.mes = 7 LET mes_d = "JULIO" EXIT CASE
WHEN x.mes = 8 LET mes_d = "AGOSTO" EXIT CASE
WHEN x.mes = 9 LET mes_d = "SEPTIEMBRE" EXIT CASE
WHEN x.mes = 10 LET mes_d = "OCTUBRE" EXIT CASE
WHEN x.mes = 11 LET mes_d = "NOVIEMBRE" EXIT CASE
WHEN x.mes = 12 LET mes_d = "DICIEMBRE" EXIT CASE
END CASE
PRINT COLUMN 1, mes_d,
COLUMN 21, x.cantidad USING "###,###,###",
COLUMN 41, x.total_act USING "###,###.##",
COLUMN 60, x.prod_act USING "##,###.###",
COLUMN 75, x.cantidad1 USING "###,###,###",
COLUMN 95, x.total_ant USING "###,###.##",
COLUMN 114, x.prod_ant USING "##,###.###",
COLUMN 129, x.cantidad2 USING "###,###,###",
COLUMN 149, x.total_ant1 USING "###,###.##",
COLUMN 168, x.prod_ant1 USING "##,###.###"
ON LAST ROW
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 1, "TOTALES ---> ",
COLUMN 21, sum(x.cantidad) USING "###,###,###",
COLUMN 41, sum(x.total_act) USING "###,###.##",
COLUMN 60, sum(x.prod_act) USING "##,###.###",
COLUMN 75, sum(x.cantidad1) USING "###,###,###",
COLUMN 95, sum(x.total_ant) USING "###,###.##",
COLUMN 114, sum(x.prod_ant) USING "##,###.###",
COLUMN 129, sum(x.cantidad2) USING "###,###,###",
COLUMN 149, sum(x.total_ant1) USING "###,###.##",
COLUMN 168, sum(x.prod_ant1) USING "##,###.###"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT comp_off
END REPORT
+464
View File
@@ -0,0 +1,464 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP007
OBJETIVO : Poduccion Acumulada en un rango de anos
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE jb ARRAY[10000] OF RECORD
cantidad1 DECIMAL(12,2),
cantidad2 DECIMAL(12,2),
cantidad3 DECIMAL(12,2)
END RECORD
DEFINE mes_d CHAR(10)
DEFINE a,ano_i,ano_f,ano,mes INTEGER
DEFINE mes_b,ano1,ano2,ano3 CHAR(4)
DEFINE fecha3,fecha4 DATE
DEFINE cant_p1,cant_p2,cant_p3,cant_pres1,cant_pres2,cant_pres3,total,
cantidad1_1,cantidad1_2,cantidad1_3 DECIMAL(12,2)
DEFINE fecha_inicial,fecha_final DATE
FUNCTION prprrp007()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos7 RECORD
ano CHAR(4),
mes SMALLINT,
fecha1 DATE,
fecha2 DATE,
cantidad1 INTEGER,
cantidad2 INTEGER,
cantidad3 INTEGER,
clave CHAR(1)
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp007 FROM "prfmrp007"
DISPLAY FORM prfmrp007
CALL pantalla()
DISPLAY "prprrp007" AT 4,3
DISPLAY "Produccion Acumulada en Rango de Anos" AT 6,21
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME ano,ano_f,mes
AFTER FIELD ano
IF ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
SELECT MIN(b.ano) INTO ano1 FROM prdtable b
LET ano_i = ano1
LET ano1 = NULL
IF ano_i > ano THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD ano
END IF
LET ano_i = NULL
AFTER FIELD ano_f
IF ano_f IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano_f
END IF
IF (ano_f - ano) > 5 THEN
LET numero_msg = 5
CALL msg(numero_msg)
NEXT FIELD ano
END IF
SELECT MAX(b.ano) INTO ano_i FROM prdtable b
IF ano_f > ano_i THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD ano_f
END IF
IF (ano - ano_f) > 5 THEN
LET numero_msg = 64
CALL msg(numero_msg)
NEXT FIELD ano
END IF
LET ano1 = ano USING "&&&&"
LET ano2 = ano_f USING "&&&&"
AFTER FIELD mes
IF mes IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD mes
END IF
SELECT UNIQUE b.mes FROM prdtable b WHERE b.mes = mes AND
b.ano = ano
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
FOR a = ano TO ano_f
LET jb[a].cantidad1 = 0
LET jb[a].cantidad2 = 0
LET jb[a].cantidad3 = 0
END FOR
DECLARE busca CURSOR FOR
SELECT b.ano,b.mes,b.fecha_inicio,b.fecha_corte
FROM prdtable b
WHERE (b.ano BETWEEN ano1 AND ano2) AND b.mes <= mes
ORDER BY 1,2
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT reporte_7 TO "C:\\archivo"
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
FOREACH busca INTO prt_datos7.*
LET prt_datos7.cantidad1 = 0
LET prt_datos7.cantidad2 = 0
LET prt_datos7.cantidad3 = 0
LET prt_datos7.clave = "a"
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad1
FROM iptb00006
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
status_t IS NULL AND cod_n = 3 AND cod_grupo = 1 AND
cod_mov = 20
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad2
FROM iptb00006
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
status_t IS NULL AND cod_n = 3 AND cod_grupo = 2 AND
cod_mov = 20
SELECT SUM(cantidad_2) INTO prt_datos7.cantidad3
FROM iptb00006
WHERE fecha BETWEEN prt_datos7.fecha1 AND prt_datos7.fecha2 AND
status_t IS NULL AND cod_n = 3 AND cod_grupo = 3 AND
cod_mov = 20
IF prt_datos7.cantidad1 IS NULL THEN
LET prt_datos7.cantidad1 = 0
END IF
IF prt_datos7.cantidad2 IS NULL THEN
LET prt_datos7.cantidad2 = 0
END IF
IF prt_datos7.cantidad3 IS NULL THEN
LET prt_datos7.cantidad3 = 0
END IF
OUTPUT TO REPORT reporte_7(prt_datos7.*)
END FOREACH
FINISH REPORT reporte_7
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_7(x)
# Variable para tomar las informaciones
DEFINE x RECORD
ano CHAR(4),
mes SMALLINT,
fecha1 DATE,
fecha2 DATE,
cantidad1 INTEGER,
cantidad2 INTEGER,
cantidad3 INTEGER,
clave CHAR(1)
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.clave,x.mes,x.ano DESC
FORMAT
PAGE HEADER
# Validacion de los caracteres ascii
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
LET l = 15
FOR a = ano TO ano_f
LET l = l + 36
IF a = ano THEN
LET l = l + 36
END IF
END FOR
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 1, "prprrp007",
COLUMN ((l-45)/2)+1,
"R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN l-7, "Pag. ",
pageno using "###"
PRINT COLUMN ((l-45)/2)+1,
" Sistema de Produccion",
COLUMN l-7, today using "dd/mm/yy"
PRINT COLUMN ((l-45)/2)+1,
" Produccion Acumulada Del Ano ",ano1," AL ",ano2,
COLUMN l-5, hora
SKIP 1 LINE
PRINT COLUMN 1, "--------------";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l,"-"
LET l = 32
LET j = ano_f - ano
FOR a = ano TO ano_f
LET k = ano + j
LET j = j - 1
PRINT COLUMN l, "-- ",k USING "&&&&"," --";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "PRES. ",k USING "&&&&";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l, " "
PRINT COLUMN 1, "--------------";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l,"-"
{ PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------------------"
}
PRINT COLUMN 1, "Mes ";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, " D C AA";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, " D C AA";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l," "
PRINT COLUMN 1, "--------------";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l,"-"
BEFORE GROUP OF x.mes
CASE
WHEN x.mes = 1 LET mes_d = "ENERO" EXIT CASE
WHEN x.mes = 2 LET mes_d = "FEBRERO" EXIT CASE
WHEN x.mes = 3 LET mes_d = "MARZO" EXIT CASE
WHEN x.mes = 4 LET mes_d = "ABRIL" EXIT CASE
WHEN x.mes = 5 LET mes_d = "MAYO" EXIT CASE
WHEN x.mes = 6 LET mes_d = "JUNIO" EXIT CASE
WHEN x.mes = 7 LET mes_d = "JULIO" EXIT CASE
WHEN x.mes = 8 LET mes_d = "AGOSTO" EXIT CASE
WHEN x.mes = 9 LET mes_d = "SEPTIEMBRE" EXIT CASE
WHEN x.mes = 10 LET mes_d = "OCTUBRE" EXIT CASE
WHEN x.mes = 11 LET mes_d = "NOVIEMBRE" EXIT CASE
WHEN x.mes = 12 LET mes_d = "DICIEMBRE" EXIT CASE
END CASE
LET l = 15
PRINT COLUMN 1, mes_d;
ON EVERY ROW
PRINT COLUMN l, x.cantidad1 USING "###,###,###",
COLUMN l+12, x.cantidad2 USING "###,###,###",
COLUMN l+24, x.cantidad3 USING "###,###,###";
LET l= l + 36
IF x.ano = ano_f THEN
LET mes_b = ano2[3,4],x.mes USING "&&"
LET cant_p1 = 0
LET cant_p2 = 0
LET cant_p3 = 0
SELECT SUM(b.cantidad) INTO cant_p1 FROM vetb00017 b
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 1
SELECT SUM(b.cantidad) INTO cant_p2 FROM vetb00017 b
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 2
SELECT SUM(b.cantidad) INTO cant_p3 FROM vetb00017 b
WHERE b.ano = ano_f AND b.mes = mes_b AND b.cod_grupo = 3
IF cant_p1 IS NULL THEN
LET cant_p1 = 0
END IF
IF cant_p2 IS NULL THEN
LET cant_p2 = 0
END IF
IF cant_p3 IS NULL THEN
LET cant_p3 = 0
END IF
IF cant_pres1 IS NULL THEN
LET cant_pres1 = 0
END IF
IF cant_pres2 IS NULL THEN
LET cant_pres2 = 0
END IF
IF cant_pres3 IS NULL THEN
LET cant_pres3 = 0
END IF
LET cant_pres1 = cant_pres1 + cant_p1
LET cant_pres2 = cant_pres2 + cant_p3
LET cant_pres3 = cant_pres2 + cant_p3
PRINT COLUMN l, cant_p1 USING "###,###,###",
COLUMN l+12, cant_p2 USING "###,###,###",
COLUMN l+24, cant_p3 USING "###,###,###";
LET l = l + 36
END IF
LET a = x.ano
LET jb[a].cantidad1 = jb[a].cantidad1 + x.cantidad1
LET jb[a].cantidad2 = jb[a].cantidad2 + x.cantidad2
LET jb[a].cantidad3 = jb[a].cantidad3 + x.cantidad3
AFTER GROUP OF x.mes
PRINT COLUMN l," "
ON LAST ROW
PRINT COLUMN 1, "--------------";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l,"-"
PRINT COLUMN 1, "TOTALES ---> ";
LET l = 15
LET j = 0
FOR a = ano TO ano_f
LET k = ano_f - j
PRINT COLUMN l,jb[k].cantidad1 USING "###,###,###",
COLUMN l+12,jb[k].cantidad2 USING "###,###,###",
COLUMN l+24,jb[k].cantidad3 USING "###,###,###";
LET l = l + 36
IF ano_f = ano_f-j THEN
PRINT COLUMN l, cant_pres1 USING "###,###,###",
COLUMN l+12, cant_pres2 USING "###,###,###",
COLUMN l+24, cant_pres3 USING "###,###,###";
LET l = l + 36
END IF
LET j = j + 1
END FOR
PRINT COLUMN l," "
PRINT COLUMN 1, "--------------";
LET l = 15
FOR a = ano TO ano_f
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
IF a = ano THEN
PRINT COLUMN l, "------------------------------------";
LET l = l + 36
END IF
END FOR
PRINT COLUMN l,"-"
PRINT comp_off
LET cant_pres1 = 0
LET cant_pres2 = 0
LET cant_pres3 = 0
END REPORT
+354
View File
@@ -0,0 +1,354 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP008
OBJETIVO : Pilas Prod./Horas Directas VS Ano Anterior
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Junio 22, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE mes_d CHAR(10)
DEFINE ano,mes SMALLINT
DEFINE ano1,ano2,ano3 CHAR(4)
DEFINE fecha3,fecha4,fecha5,fecha6 DATE
DEFINE total DECIMAL(12,2)
DEFINE fecha_inicial,fecha_final DATE
FUNCTION prprrp008()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos8 RECORD
mes SMALLINT,
fecha1 DATE,
fecha2 DATE,
cantidad INTEGER,
cantidad1 INTEGER,
cantidad2 INTEGER,
total_act DECIMAL(12,2),
total_ant DECIMAL(12,2),
total_ant1 DECIMAL(12,2),
prod_act DECIMAL(12,3),
prod_ant DECIMAL(12,3),
prod_ant1 DECIMAL(12,3)
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp008 FROM "prfmrp006"
DISPLAY FORM prfmrp008
CALL pantalla()
DISPLAY "prprrp008" AT 4,3
DISPLAY "Pilas Producidas Por Horas directas" AT 6,23
LET tipo_papel = 2
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME ano,mes
AFTER FIELD ano
IF ano IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD ano
END IF
LET ano1 = ano USING "&&&&"
LET ano2 = ano - 1 USING "&&&&"
LET ano3 = ano - 2 USING "&&&&"
AFTER FIELD mes
IF mes IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD mes
END IF
SELECT UNIQUE a.mes FROM prdtable a WHERE a.mes = mes
IF STATUS = NOTFOUND THEN
LET numero_msg = 3
CALL msg(numero_msg)
NEXT FIELD mes
END IF
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE busca CURSOR FOR
SELECT a.mes,a.fecha_inicio,a.fecha_corte,SUM(b.cantidad_2/1000)
FROM prdtable a,iptb00006 b
WHERE a.ano = ano1 AND a.mes <= mes AND b.status_t IS NULL AND
b.fecha BETWEEN a.fecha_inicio AND a.fecha_corte AND
b.cod_n = 3 AND b.cod_mov = 20 GROUP BY 1,2,3
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT reporte_8 TO "C:\\archivo"
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
FOREACH busca INTO prt_datos8.*
LET prt_datos8.total_act = 0
LET prt_datos8.total_ant = 0
LET prt_datos8.cantidad1 = 0
LET prt_datos8.prod_act = 0
LET prt_datos8.prod_ant = 0
SELECT UNIQUE a.fecha_inicio,a.fecha_corte INTO fecha3,fecha4
FROM prdtable a
WHERE a.ano = ano2 AND a.mes = prt_datos8.mes
SELECT UNIQUE a.fecha_inicio,a.fecha_corte INTO fecha5,fecha6
FROM prdtable a
WHERE a.ano = ano3 AND a.mes = prt_datos8.mes
SELECT SUM(cantidad_2/1000) INTO prt_datos8.cantidad1
FROM iptb00006
WHERE fecha BETWEEN fecha3 AND fecha4 AND status_t IS NULL AND
cod_n = 3 AND cod_mov = 20 AND status_t IS NULL
SELECT SUM(cantidad_2/1000) INTO prt_datos8.cantidad2
FROM iptb00006
WHERE fecha BETWEEN fecha5 AND fecha6 AND status_t IS NULL AND
cod_n = 3 AND cod_mov = 20 AND status_t IS NULL
LET total = 0
SELECT SUM(h_directa+e_directa) INTO total
FROM cttb00003
WHERE fecha BETWEEN prt_datos8.fecha1 AND prt_datos8.fecha2 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos8.total_act = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003
WHERE fecha BETWEEN prt_datos8.fecha1 AND prt_datos8.fecha2 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos8.total_act = prt_datos8.total_act + total
LET total = 0
SELECT SUM(h_directa+e_directa) INTO total
FROM cttb00003 WHERE fecha BETWEEN fecha3 AND fecha4 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos8.total_ant = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003 WHERE fecha BETWEEN fecha3 AND fecha4 AND
status_t IS NULL
LET total = 0
SELECT SUM(h_directa+e_directa) INTO total
FROM cttb00003 WHERE fecha BETWEEN fecha5 AND fecha6 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos8.total_ant1 = total
LET total = 0
SELECT SUM(hn_ind+he_ind) INTO total
FROM prtb00003 WHERE fecha BETWEEN fecha5 AND fecha6 AND
status_t IS NULL
IF total IS NULL THEN
LET total = 0
END IF
LET prt_datos8.total_ant1 = prt_datos8.total_ant1 + total
IF prt_datos8.total_act > 0 THEN
LET prt_datos8.prod_act =
(prt_datos8.cantidad/prt_datos8.total_act)*1000
ELSE
LET prt_datos8.prod_act = 0
END IF
IF prt_datos8.total_ant > 0 AND prt_datos8.cantidad1 > 0 THEN
LET prt_datos8.prod_ant =
(prt_datos8.cantidad1/prt_datos8.total_ant)*1000
ELSE
LET prt_datos8.prod_ant = 0
END IF
IF prt_datos8.total_ant1 > 0 AND prt_datos8.cantidad2 > 0 THEN
LET prt_datos8.prod_ant1 =
(prt_datos8.cantidad2/prt_datos8.total_ant1)*1000
ELSE
LET prt_datos8.prod_ant1 = 0
END IF
OUTPUT TO REPORT reporte_8(prt_datos8.*)
END FOREACH
FINISH REPORT reporte_8
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_8(x)
# Variable para tomar las informaciones
DEFINE x RECORD
mes SMALLINT,
fecha1 DATE,
fecha2 DATE,
cantidad INTEGER,
cantidad1 INTEGER,
cantidad2 INTEGER,
total_act DECIMAL(12,2),
total_ant DECIMAL(12,2),
total_ant1 DECIMAL(12,2),
prod_act DECIMAL(12,3),
prod_ant DECIMAL(12,3),
prod_ant1 DECIMAL(12,3)
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.mes
FORMAT
PAGE HEADER
# Validacion de los caracteres ascii
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 1, "prprrp008",
COLUMN 77, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 182, "Pag. ",pageno using "###"
PRINT COLUMN 77, " Sistema de Produccion",
COLUMN 182, today using "dd/mm/yy"
PRINT COLUMN 77, " Pilas Producidas Por Horas Directas ",
COLUMN 185, hora
SKIP 1 LINE
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 23, "--------------- ", ano1, " ---------------",
COLUMN 77, "--------------- ", ano2, " ---------------",
COLUMN 131, "--------------- ", ano3, " ---------------"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 1, "Mes ",
COLUMN 20, "PROD. X 1000",
COLUMN 39, " HORAS ",
COLUMN 57, "PRODUCTIVIDAD",
COLUMN 74, "PROD. X 1000",
COLUMN 93, " HORAS ",
COLUMN 111, "PRODUCTIVIDAD",
COLUMN 128, "PROD. X 1000",
COLUMN 147, " HORAS ",
COLUMN 165, "PRODUCTIVIDAD"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
ON EVERY ROW
CASE
WHEN x.mes = 1 LET mes_d = "ENERO" EXIT CASE
WHEN x.mes = 2 LET mes_d = "FEBRERO" EXIT CASE
WHEN x.mes = 3 LET mes_d = "MARZO" EXIT CASE
WHEN x.mes = 4 LET mes_d = "ABRIL" EXIT CASE
WHEN x.mes = 5 LET mes_d = "MAYO" EXIT CASE
WHEN x.mes = 6 LET mes_d = "JUNIO" EXIT CASE
WHEN x.mes = 7 LET mes_d = "JULIO" EXIT CASE
WHEN x.mes = 8 LET mes_d = "AGOSTO" EXIT CASE
WHEN x.mes = 9 LET mes_d = "SEPTIEMBRE" EXIT CASE
WHEN x.mes = 10 LET mes_d = "OCTUBRE" EXIT CASE
WHEN x.mes = 11 LET mes_d = "NOVIEMBRE" EXIT CASE
WHEN x.mes = 12 LET mes_d = "DICIEMBRE" EXIT CASE
END CASE
PRINT COLUMN 1, mes_d,
COLUMN 21, x.cantidad USING "###,###,###",
COLUMN 41, x.total_act USING "###,###.##",
COLUMN 60, x.prod_act USING "##,###.###",
COLUMN 75, x.cantidad1 USING "###,###,###",
COLUMN 95, x.total_ant USING "###,###.##",
COLUMN 114, x.prod_ant USING "##,###.###",
COLUMN 129, x.cantidad2 USING "###,###,###",
COLUMN 149, x.total_ant1 USING "###,###.##",
COLUMN 168, x.prod_ant1 USING "##,###.###"
ON LAST ROW
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT COLUMN 1, "TOTALES ---> ",
COLUMN 21, sum(x.cantidad) USING "###,###,###",
COLUMN 41, sum(x.total_act) USING "###,###.##",
COLUMN 60, sum(x.prod_act) USING "##,###.###",
COLUMN 75, sum(x.cantidad1) USING "###,###,###",
COLUMN 95, sum(x.total_ant) USING "###,###.##",
COLUMN 114, sum(x.prod_ant) USING "##,###.###",
COLUMN 129, sum(x.cantidad2) USING "###,###,###",
COLUMN 149, sum(x.total_ant1) USING "###,###.##",
COLUMN 168, sum(x.prod_ant1) USING "##,###.###"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------",
"--------------------------------------------------------",
"---------------------"
PRINT comp_off
END REPORT
+257
View File
@@ -0,0 +1,257 @@
{
-------------------------------------------------------------------------------
PROGRAMA : PRPRRP009
OBJETIVO : Reporte Diario de Manofactura
PROGRAMADOR : Tadeo A. Ferreras
FECHA REALIZACION : Oct. 04, 1994
-------------------------------------------------------------------------------
}
GLOBALS "prprgb000.4gl"
DEFINE mes_d CHAR(10)
DEFINE ano,mes SMALLINT
DEFINE ano1,ano2 CHAR(4)
DEFINE fecha,fecha1,fecha3,fecha4 DATE
DEFINE cantidad2,cantidad3,cantidad4,total DECIMAL(12,2)
DEFINE fecha_inicial,fecha_final DATE
FUNCTION prprrp009()
#WHENEVER ERROR CONTINUE
DEFINE prt_datos9 RECORD
nomenclatura CHAR(10),
cod_prod LIKE cttb00001.cod_prod,
factor LIKE prtb00006.fact_conv,
fecha DATE,
cantidad INTEGER
END RECORD
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM prfmrp009 FROM "prfmrp009"
DISPLAY FORM prfmrp009
CALL pantalla()
DISPLAY "prprrp009" AT 4,3
DISPLAY "Reporte Diario de Manofactura" AT 6,25
LET tipo_papel = 1
CALL msgrp000(tipo_papel)
########### Captura de valores para el criterio de busqueda ############
INPUT BY NAME fecha
AFTER FIELD fecha
IF fecha IS NULL THEN
LET numero_msg = 16
CALL msg(numero_msg)
NEXT FIELD fecha
END IF
LET mes = MONTH(fecha)
LET ano1 = YEAR(fecha) USING "&&&&"
SELECT a.fecha_inicio INTO fecha1 FROM prdtable a
WHERE a.mes = mes AND a.ano = ano1
END INPUT
########### Facilidad para cancelar la variacioncon la tecla DELETE ####
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = false
RETURN
END IF
DECLARE busca CURSOR FOR
SELECT c.nomenclatura,b.cod_prod,a.fact_conv,b.fecha,SUM(b.cantidad)
FROM cttb00003 b,cttb00001 c,OUTER prtb00006 a
WHERE b.cod_prod = c.cod_prod AND b.cod_prod = a.cod_prod AND
YEAR(b.fecha) = YEAR(fecha) AND b.fecha <= fecha AND
b.status_t IS NULL AND b.cod_prod BETWEEN 700 AND 1399
GROUP BY 1,2,3,4
DISPLAY "Buscando Informacion... Espere Por Favor" AT 19,14
START REPORT reporte_9 TO "C:\\archivo"
DISPLAY "Impresion En Proceso... Espere Por Favor" AT 19,14
FOREACH busca INTO prt_datos9.*
IF prt_datos9.factor IS NULL THEN
LET prt_datos9.factor = 1
END IF
IF prt_datos9.cantidad <> 0 THEN
LET prt_datos9.cantidad = prt_datos9.cantidad*prt_datos9.factor
END IF
DISPLAY " " AT 20,14
DISPLAY prt_datos9.nomenclatura AT 20,14
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
END IF
OUTPUT TO REPORT reporte_9(prt_datos9.*)
END FOREACH
FINISH REPORT reporte_9
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
# Rutina de Impresion de las informaciones
REPORT reporte_9(x)
# Variable para tomar las informaciones
DEFINE x RECORD
nomenclatura CHAR(10),
cod_prod LIKE cttb00001.cod_prod,
factor LIKE prtb00006.fact_conv,
fecha DATE,
cantidad INTEGER
END RECORD
DEFINE doble_on CHAR(3)
DEFINE doble_off CHAR(3)
DEFINE negrillas_on CHAR(6)
DEFINE negrillas_off CHAR(6)
DEFINE comp_on CHAR(2)
DEFINE comp_off CHAR(2)
DEFINE doce CHAR(2)
DEFINE normal CHAR(3)
DEFINE hora CHAR(5)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
ORDER BY x.nomenclatura,x.cod_prod,x.fecha
FORMAT
PAGE HEADER
# Validacion de los caracteres ascii
LET doble_on = ASCII 001
LET doble_off = ASCII 002
LET negrillas_on = ASCII 27, ASCII 098
LET negrillas_off = ASCII 27, ASCII 099
LET comp_on = ASCII 15
LET comp_off = ASCII 18
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 029
LET hora = time
# Impresion de los encabezados
PRINT comp_on
PRINT COLUMN 1, "prprrp009",
COLUMN 33, "R A Y . O . V A C D O M I N I C A N A, S. A.",
COLUMN 103, "Pag. ", pageno using "###"
PRINT COLUMN 33, " Sistema de Produccion",
COLUMN 103, today using "dd/mm/yy"
PRINT COLUMN 33, " Reporte Diario de Manofactura",
COLUMN 106, hora
SKIP 1 LINE
PRINT COLUMN 1, "FECHA: ",fecha USING "dd/mm/yy"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT COLUMN 18, "| PILAS PRODUCIDAS ",
COLUMN 54, "| PILAS CERRADAS ",
COLUMN 90, "| PROM. DIA PROD. |"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT COLUMN 1, "TIPO",
COLUMN 18, "| DIARIO | ACUM. MES | ACUM. ANO ",
COLUMN 54, "| DIARIO | ACUM. MES | ACUM. ANO ",
COLUMN 90, "|ACUM. MES.|ACUM. ANO.|"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
AFTER GROUP OF x.nomenclatura
LET cantidad2 = GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
LET cantidad3 = GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
LET cantidad4 = GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
PRINT COLUMN 1, x.nomenclatura CLIPPED,
COLUMN 18, "|",GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.cod_prod >= 1100
AND x.fecha <= fecha USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
USING "###,###,###",
COLUMN 54, "|",GROUP SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod <= 999
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha
AND x.cod_prod <= 999
USING "###,###,###",
"|",GROUP SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod <= 999
USING "###,###,###",
COLUMN 90, "|",(cantidad2/cantidad3)*100 USING "###,###.##",
"|",(cantidad2/cantidad4)*100 USING "###,###.##","|"
ON LAST ROW
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
LET cantidad2 = SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
LET cantidad3 = SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
LET cantidad4 = SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
PRINT COLUMN 1, "TOTAL --->",
COLUMN 18, "|",SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod >= 1100
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod >= 1100
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod >= 1100
USING "###,###,###",
COLUMN 54, "|",SUM(x.cantidad)
WHERE x.fecha = fecha AND x.cod_prod <= 999
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha >= fecha1 AND x.fecha <= fecha AND
x.cod_prod <= 999
USING "###,###,###",
"|",SUM(x.cantidad)
WHERE x.fecha <= fecha AND x.cod_prod <= 999
USING "###,###,###",
COLUMN 90, "|",(cantidad2/cantidad3)*100 USING "###,###.##",
"|",(cantidad2/cantidad4)*100 USING "###,###.##","|"
PRINT COLUMN 1,
"--------------------------------------------------------",
"--------------------------------------------------------"
PRINT comp_off
END REPORT

Some files were not shown because too many files have changed in this diff Show More