Compare commits

...
24 Commits
Author SHA1 Message Date
Abel López 79eff57d70 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-09-10 17:02:44 -04:00
Abel LópezandClaude Sonnet 5 9ac3f70a13 WIP: Agregar noprmt008 (Generacion de Nomina) - en diagnostico
- Registrar noprmt008 en mbsERP.4pw junto con sus 3 formularios
  (nofmmt008.4fd, nofmmt108.per, nofmmt208.per)
- Corregir bug en nofmmt008.4fd: el checkbox opt3 tenia colName="opt2"
  duplicado por error de copiar/pegar, causando "Field (opt3) not
  found in form"
- Quitar CONVERT(CHAR(10),...,103) en 5 SELECTs que alimentaban
  variables DATE (mismo patron de bug ya visto en noprmt003):
  causaba "-1205 Invalid month in date" de forma intermitente
- Agregar funcion debuglog() (escribe a archivo en FGLSPOOL) para
  diagnosticar por que la generacion terminaba sin insertar ningun
  registro; diagnostico aun en curso

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 17:02:39 -04:00
jpeguero 972f2f1f47 Registrar formularios y funciones faltantes para ipprmt005 y ipprmt013
- Registrar ipfmmt019.4fd (formulario real que usa ipprmt005.4gl)
- Migrar categorias.4gl desde PROYECTOS y registrarlo (usaba
  formonly.cod_cat, coincide con ipprmt005; la copia existente en
  PUNTO VENTAS VER2 usaba un nombre de campo distinto)

Pendiente: ipprmt005 (como ipprmt064) requiere una segunda conexion a una
base "marmotech" (alias IFMX) no mapeada en el ambiente, resto de la
epoca Informix. Consultado con Johnny como patron general.
2026-09-10 16:52:45 -04:00
jpeguero d43f2729bd Registrar y corregir ipprmt013 (Costos Estandares Producto Terminado)
- Registrar formulario ipfmmt013.4fd en el proyecto (faltaba)
- Corregir databaseName del formulario (marmotech -> smarmotech, esquema
  viejo que impedia resolver la tabla iptb00004)
- Agregar titulo de ventana (formulario no tenia atributo text, mostraba
  "screen" generico)
2026-09-10 16:42:48 -04:00
jpeguero 987c2c1122 Avanzar en registro y correccion de ipprmt044 (Productos Terminados)
- Registrar 8 archivos faltantes en FUNCIONES_IP (ipautorizareq, codigoModificacion,
  piking, conduces, ubicacionH, ipactualizareqtrx, loadDespiece, LlenarUbicaciones)
- Agregar dependencias FUNCIONESREPORT y FUNCIONESEMAIL a ipprmt044 (defecto,
  configureOutput, enviaemail ya existian en el proyecto)
- Resolver colision de nombres: renombrar REPORT/FUNCTION duplicados en
  ipautorizareq.4gl (requiere->requiereAutoriza, buscadoc->buscadocAutoriza,
  impdocumento->impdocumentoAutoriza) que chocaban con imprequisiciones.4gl
  y buscarequisicion.4gl
- Sincronizar registros locales desactualizados: x RECORD en ipautorizareq.4gl
  (faltaba us_crea) y x/z RECORD del REPORT formu4 en ipprgb000.4gl (faltaban
  bodega_destino, factura, area, descripcion_area, existencia, disponible,
  codigo_bloque, id_kit) respecto a los registros globales reales
- Migrar ipprmt020_1.4rp desde PROYECTOS y corregir su RWFglReportName

Pendiente: funcion 'fotos' (12 parametros) no existe en ningun archivo del
proyecto, consultado con Johnny
2026-09-10 14:15:49 -04:00
jpeguero e414e52523 Registrar y corregir ipprmt021 (Autorizaciones Requisiciones Almacenes)
- Registrar estadosprocesos.4gl y formulario ipfmmt021.4fd en el proyecto
- Corregir columna estado_proceso inexistente por idestado (error SQL -6372)
- Corregir desfase de columnas en SELECT/INTO de buscadoc() que dejaba
  usuario, bodega origen y tipo de movimiento vacios en el reporte impreso,
  y filtraba la descripcion del estado hacia el campo de observacion
2026-09-10 13:03:01 -04:00
jpeguero a3e88776a9 Registrar y corregir ipprmt020 (Requisiciones Productos Almacenes)
- Registrar funciones compartidas faltantes (buscarequisicion, imprequisiciones, funciones_ip) y formularios ipfmmt003/ipfmmt020 en el proyecto
- Agregar usuarioSistema a seg000.4gl
- Ampliar combos Codigo Mov/Bodega/Bodega Destino en ipfmmt020.4fd (texto ilegible)
- Refrescar lista de requisiciones al anular (buscarData + clear del arreglo)
2026-09-09 16:30:34 -04:00
jpeguero 9e70c46451 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-05 12:03:31 -04:00
jpegueroandClaude Sonnet 5 adf5224440 Agrega ipprmt003 (Productos Terminados) y actualiza esquema de BD
- Registra formulario ipfmmt003 en FORMULARIOS_IP con dependencia a
  Database
- Corrige dos bugs reales en ipprmt003.4gl: campo
  control_ubicacion_almacen duplicado en INPUT BY NAME (error -8090),
  y columnas control_produccion/control_ubicacion_almacen duplicadas
  en el INSERT INTO (error SQL -6372). Probado completo: alta,
  consulta, eliminacion, validacion de duplicados
- Actualiza DATABASE/smarmotech.4db con el esquema actual de SQL
  Server (agrega columnas nuevas de iptb00002 y otras tablas)
- ipprmt002 queda pendiente: 5 columnas de iptb00002 no son
  reconocidas por el compilador pese a existir en la BD real,
  requiere revision en vivo con Johnny

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-05 12:03:13 -04:00
Abel López 888a36553e Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-04 16:48:33 -04:00
Abel López 97ef961e13 Revert "Agregar noprmt020 al proyecto (identidad real pendiente de confirmar)"
This reverts commit 77e844390e.
2026-09-04 16:46:09 -04:00
Abel LópezandClaude Sonnet 5 77e844390e Agregar noprmt020 al proyecto (identidad real pendiente de confirmar)
- Registrar noprmt020 en mbsERP.4pw
- Agregar MAIN (faltaba, el archivo era solo funciones para ser
  llamadas desde el menu nomnmt000.4gl) y una funcion pantalla()
  local para el encabezado
- Corregir typo "database marmotech" -> "smarmotech" en nofmmt021.per

NOTA: el usuario identifico este programa como "Calcular Horas
Extras", pero tanto el contenido del .4gl como su propio menu
(nomnmt000.4gl: "19-Porc. Accidente Trabajo noprmt020") indican que
en realidad es la maestra de % de Accidente de Trabajo. Build y
compilacion verificados, prueba funcional pendiente hasta confirmar
el programa correcto para "Calcular Horas Extras" (candidatos:
noprmt030.4gl, noprmt038.4gl, o los reportes noprrp007/011/018/026/034/035).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 16:22:45 -04:00
Abel LópezandClaude Sonnet 5 81182e5ded Agregar noprmt007 (Novedades de la Nomina) al modulo NOMINA
Registrar noprmt007 en mbsERP.4pw usando nofmmt007.4fd (el .per
carece de departamento_afecta, num_trx, sueldo_act y los campos
titulo_dep_act/titulo_dep_afecta que usa el programa). El .4gl
compilo limpio sin cambios de codigo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 13:45:56 -04:00
Abel LópezandClaude Sonnet 5 60e392c033 Agregar noprmt001 (Codigos de Movimientos) al modulo NOMINA
- Registrar noprmt001 en mbsERP.4pw (usa cofmmt001... nofmmt001.4fd,
  el .per carece del grid smovimientos y los campos modifica/vacaciones)
- Reemplazar smarmotech.sch/.42d de nodir por la copia canonica ya
  generada en MBS/DATABASE (orden de columnas correcto, incluye
  telefonoCorporativo/numeroOficina/extension) en vez de regenerar

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 12:12:24 -04:00
jpegueroandClaude Sonnet 5 367f0c4340 Agrega los 34 programas de Productos Terminados al proyecto
Registra las Applications de Productos Terminados (ipprmt/ipprcs/ipprrp)
con dependencias a FUNCIONES_IP, Database y FUNCIONES, y agrega
ipprgb000.4gl como archivo compartido de FUNCIONES_IP. Listo para
compilar/probar programa por programa, igual que se hizo con Materia
Prima.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 09:39:19 -04:00
jpeguero 43aa1c809d Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-04 09:31:18 -04:00
jpegueroandClaude Sonnet 5 b6085d4140 Mueve ipdir (Productos Terminados) de PROYECTOS a PROYECTO
Instruccion de Johnny: todos los directorios de fuentes de inventario
deben migrarse de la carpeta temporal PROYECTOS a la carpeta real
PROYECTO, ya que PROYECTOS sera eliminada.

Se elimino tambien un archivo suelto sin relacion llamado "ipdir"
que existia en PROYECTO (del commit inicial) y bloqueaba el nombre
de la carpeta.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 09:29:01 -04:00
Abel López affc09c3e8 Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-03 16:57:12 -04:00
jpegueroandClaude Sonnet 5 4532d51e4b Prueba inprrp011 (completo) e inprrp028 (matricial completo, PDF pendiente)
- Corrige selectOutput()/seleccionarSalida()/configureOutput() en
  defecto.4gl para usar la API real fgl_report_* (Report Writer 2.0),
  reemplazando los stubs previos. Reutiliza el formulario Configuration
  ya existente en el proyecto (FUNCIONESREPORT)
- inprrp011: quita el START REPORT forzado a XML roto (media migracion
  abandonada), probado completo: filtros, totales/subtotales vs
  produccion, exportacion PDF/Excel/Pantalla funcionando
- inprrp028: mismo patron, restaura Sietesalida) - No/matricial
  como respaldo. Crea bin/inprrp028.4rp (diseno de reporte, no existia)
  para la salida grafica; carga sin error de formato pero la
  generacion no completa en este entorno - pendiente de revisar
  rendimiento/recursos

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 16:52:39 -04:00
Abel LópezandClaude Sonnet 5 ee27da0669 Agregar noprmt003 (Maestra de Empleados) al modulo NOMINA
- Registrar noprmt003 en mbsERP.4pw (FUNCIONES_NO: noprfu000.4gl,
  nocarnet.4gl; FORMULARIOS_NO: nofmmt003.4fd); reutiliza
  otrodir/departamentos.4gl ya presente en FUNCIONES
- Actualizar el diccionario de esquema smarmotech.sch: faltaban las
  columnas telefonoCorporativo/numeroOficina/extension de adtb00003
  (existen en la BD real pero no estaban en el diccionario, .42d se
  regenera solo al recompilar); propagado a todos los directorios
- Desactivar el CONNECT TO "marmotech" AS "IFMX" (Informix ya no
  existe, todo migro a SQL Server) y el INSERT duplicado hacia esa
  conexion en el alta de empleados; sin esto el programa se colgaba
  al iniciar
- Quitar CONVERT(...,103) de fechas en el SELECT/FETCH de empleados:
  se convertian a texto dd/mm/yyyy y luego se reasignaban a variables
  DATE, causando "-1205 Invalid month in date" con dias > 12
- Agregar BEFORE CONSTRUCT/END CONSTRUCT para poblar el combo de
  Departamento en la busqueda (faltaba, quedaba vacio)
- Corregir foto de empleado que no se limpiaba al navegar
  Siguiente/Anterior hacia un empleado sin foto
- nocarnet.4gl: sustituir fgl_report_* (API no disponible) por
  om.XmlWriter.createFileWriter() hacia FGLSPOOL

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 16:51:11 -04:00
Abel LópezandClaude Sonnet 5 b27b20d42d Agregar noprmt002 (Movimientos Fijos Emp.) al modulo NOMINA
- Registrar noprmt002 en mbsERP.4pw junto con noprgb000.4gl
  (FUNCIONES_NO), nofmmt002.per/nofmwd001.per (FORMULARIOS_NO) y
  adfmwd004.per (FORMULARIOS_AD, compartido con ADMINISTRACION)
- Copiar el diccionario de esquema smarmotech.sch a nodir/addir
  (faltaba, igual que en otros directorios ya corregidos)
- Corregir typo "database marmotech" -> "smarmotech" en nofmwd001.per

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-03 12:12:06 -04:00
jsoto 382ec5cd35 JSOTO Se adiciono programa adprmt017 2026-09-03 10:12:37 -04:00
Abel López 4cb8d4c71b Merge branch 'main' of http://192.168.40.251:3000/jsoto/MBS 2026-09-01 16:48:54 -04:00
Abel LópezandClaude Sonnet 5 f216a7acfa Agregar coprrp007 (Cronologico de Requisiciones) al proyecto
- Registrar coprrp007 en mbsERP.4pw, usando cofmrp007.4fd (el .per
  no define el combo de departamento que requiere busca_departamento())
- Enlazar la libreria FUNCIONES_IN (ya contiene departamento.4gl) en
  vez de duplicar el archivo, evitando conflicto de salida .42m
- Agregar guarda NULL en departamento.4gl: ui.combobox.forname()
  puede no encontrar el combo durante el CONSTRUCT y causaba
  "Null pointer exception" al llamar .clear()
- Sustituir seleccionarsalida()/configureoutput() (no definidas,
  API fgl_report_* no disponible) por om.XmlWriter.createFileWriter()
  hacia FGLSPOOL

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 16:48:46 -04:00
386 changed files with 57581 additions and 6133 deletions
File diff suppressed because one or more lines are too long
+3
View File
@@ -1619,6 +1619,9 @@ FUNCTION desplegar()
IF acc_per.estado_civil = "C" THEN
LET estado = "CASADO"
END IF
IF acc_per.estado_civil = "U" THEN
LET estado = "UNION LIBRE"
END IF
IF acc_per.sexo = "M" THEN
LET tipo_sexo = "MASCULINO"
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="60003" version="7.00">
<report:Settings RWPageWidth="tabloidlength" RWPageLength="tabloidwidth" RWLeftMargin="0.5cm" RWTopMargin="0.5cm" RWRightMargin="0.5cm" RWBottomMargin="0.5cm">
<report:FormatList>
<report:Format-PDF/>
<report:Format-image/>
<report:Format-SVG/>
</report:FormatList>
</report:Settings>
<report:Data RWDataLocation="../indir/inprrp028.rdd" RWFglReportName="prt_exist"/>
<report:Conflicts/>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report">
<MINIPAGE name="MiniPage1" width="max" length="max" fontName="Arial" fontSize="8">
<LAYOUTNODE name="HeaderNode" width="min" length="min" swapX="true" port="anyPageHeader">
<MINIPAGE name="HeaderStripe" width="min" length="max" alignment="center" layoutDirection="topToBottom">
<WORDBOX name="WB1" alignment="baseline" fontBold="true" fontSize="12" text="MARMOTECH, S. A."/>
<WORDBOX name="WB2" alignment="baseline" text="Sistema de Inventario de Materia Prima"/>
<WORDBOX name="WB3" alignment="baseline" fontBold="true" text="Existencia con Entrada y Salida"/>
</MINIPAGE>
<LAYOUTNODE name="ColHeader" width="max" length="min" bgColor="#cccccc" fontBold="true" layoutDirection="leftToRight">
<WORDBOX name="WBc1" width="3cm" alignment="baseline" text="Codigo"/>
<WORDWRAPBOX name="WBc2" width="6cm" alignment="baseline" text="Descripcion"/>
<WORDBOX name="WBc3" width="1.5cm" alignment="baseline" text="Unidad"/>
<WORDBOX name="WBc4" width="2.5cm" alignment="baseline" textAlignment="right" text="Existencia Ant."/>
<WORDBOX name="WBc5" width="2.5cm" alignment="baseline" textAlignment="right" text="Entradas"/>
<WORDBOX name="WBc6" width="2.5cm" alignment="baseline" textAlignment="right" text="Salidas"/>
<WORDBOX name="WBc7" width="2.5cm" alignment="baseline" textAlignment="right" text="Existencia Act."/>
</LAYOUTNODE>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<LAYOUTNODE name="RowNode" width="max" length="min" layoutDirection="leftToRight">
<rtl:input-variable name="x.cod_n" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="x.cod_grupo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="x.cod_tipo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="x.cod_sec" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WBcodigo" width="3cm" alignment="baseline" text="{{x.cod_n.format(&quot;&amp;&quot;)+&quot;-&quot;+x.cod_grupo.format(&quot;&amp;&quot;)+&quot;-&quot;+x.cod_tipo.format(&quot;&amp;&amp;&quot;)+&quot;-&quot;+x.cod_sec.format(&quot;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="x.descrip_esp" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WBdesc" width="6cm" alignment="baseline" text="{{x.descrip_esp.trim()}}"/>
<rtl:input-variable name="x.unidad_med" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WBund" width="1.5cm" alignment="baseline" text="{{x.unidad_med.trim()}}"/>
<rtl:input-variable name="x.existe_ant" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="WBant" width="2.5cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---.&amp;&amp;" value="{{x.existe_ant}}"/>
<rtl:input-variable name="entradas" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="WBent" width="2.5cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---.&amp;&amp;" value="{{entradas}}"/>
<rtl:input-variable name="salidas" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="WBsal" width="2.5cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---.&amp;&amp;" value="{{salidas}}"/>
<rtl:input-variable name="x.existe_act" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="WBact" width="2.5cm" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---.&amp;&amp;" value="{{x.existe_act}}"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+120
View File
@@ -0,0 +1,120 @@
<?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="letterwidth" RWPageLength="letterlength" 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="../ipdir/imprequisiciones.rdd" RWFglReportName="requiere"/>
<report:Conflicts>
<report:Conflict nodeName="despiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="detalledespiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="totaldespiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
</report:Conflicts>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report" minOccurs="1" maxOccurs="1">
<MINIPAGE name="Page Root" width="max" length="max">
<LAYOUTNODE name="encabezado" width="min" length="max" alignment="center" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="p_companias.nombre" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox1" width="max-2cm" floatingBehavior="enclosed" textAlignment="center" text="{{p_companias.nombre}}"/>
<WORDBOX name="WordBox" floatingBehavior="enclosed" text="Pagina:"/>
<PAGENOBOX name="PageNoBox" floatingBehavior="enclosed"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezado2" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox2" width="max-2cm" fontBold="true" floatingBehavior="enclosed" textAlignment="center" text="REQUISICION DOCUMENTOS"/>
<rtl:input-variable name="hora" type="FGLString" expectedLocation="expectedAhead"/>
<WORDBOX name="WordBox3" floatingBehavior="enclosed" text="{{hora}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezadomaster" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<LAYOUTNODE name="LayoutNode1" width="3inch" length="min" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<rtl:input-variable name="nombreUsuario" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox4" length="1cm" floatingBehavior="enclosed" text="{{&quot;USUARIO: &quot;+nombreUsuario.trim()}}"/>
<rtl:input-variable name="p_iptb57.numero_doc" type="FGLNumeric" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox5" fontSize="12" fontBold="true" floatingBehavior="enclosed" text="{{&quot;DOCUMENTO: &quot;+p_iptb57.numero_doc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="p_iptb57.cod_mov" type="FGLNumeric" expectedLocation="expectedWayAhead"/>
<rtl:input-variable name="nombreMov" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDWRAPBOX name="WordWrapBox" width="width(&quot;M&quot;)*27" alignment="baseline" floatingBehavior="enclosed" text="{{&quot;TIPO DOCUMENTO: &quot;+&quot;(&quot;+p_iptb57.cod_mov.format(&quot;&lt;&lt;&lt;&quot;)+&quot;)&quot;+nombreMov.trim()}}"/>
<rtl:input-variable name="p_iptb57.fecha" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox6" floatingBehavior="enclosed" text="{{&quot;FECHA: &quot;+p_iptb57.fecha}}"/>
<rtl:input-variable name="nombreBodega" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox8" floatingBehavior="enclosed" text="{{&quot;BODEGA: &quot;+nombreBodega}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="LayoutNode2" width="3inch" length="min" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox12" length="1cm" alignment="baseline" floatingBehavior="enclosed"/>
<rtl:input-variable name="p_iptb57.bodega_destino" type="FGLNumeric" expectedLocation="expectedWayAhead"/>
<rtl:input-variable name="nombreBodegaDestino" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox9" floatingBehavior="enclosed" text="{{&quot;BODEGA DESTINO: &quot;+&quot;(&quot;+p_iptb57.bodega_destino+&quot;)&quot;+nombreBodegaDestino}}"/>
<rtl:input-variable name="p_iptb57.num_oc" type="FGLNumeric" expectedLocation="expectedWayAhead"/>
<WORDBOX name="WordBox10" floatingBehavior="enclosed" text="{{&quot;NUMERO ORDEN:&quot;+p_iptb57.num_oc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="p_iptb57.cliente" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDWRAPBOX name="WordWrapBox1" width="width(&quot;M&quot;)*27" floatingBehavior="enclosed" text="{{&quot;CLIENTE: &quot;+p_iptb57.cliente}}"/>
<rtl:input-variable name="p_iptb57.observacion" type="FGLString" expectedLocation="expectedWayAhead"/>
<WORDWRAPBOX name="WordWrapBox2" width="width(&quot;M&quot;)*20" floatingBehavior="enclosed" text="{{&quot;OBSERVACION: &quot;+p_iptb57.observacion.trim()}}"/>
</LAYOUTNODE>
</LAYOUTNODE>
<LAYOUTNODE name="encabezadodetalle" width="min" length="min" fontSize="8" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox13" width="3.5inch" floatingBehavior="enclosed" text="ITEM(S)" roundedCorners="false" borderWidth="1"/>
<WORDBOX name="WordBox14" width="2.2inch" floatingBehavior="enclosed" textAlignment="right" text="UNIDAD"/>
<WORDBOX name="WordBox15" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD"/>
</LAYOUTNODE>
<rtl:match name="FirstPageHeader" nameConstraint="FirstPageHeader" minOccurs="0" maxOccurs="1"/>
<rtl:match name="Group codigo" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="table" width="min" length="min" fontSize="8" layoutDirection="leftToRight">
<rtl:input-variable name="detalle.cod_n" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_grupo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_tipo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_sec" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.descripcion" type="FGLString" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.unidad_med" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox3" width="width(&quot;M&quot;)*30" length="min" alignment="baseline" floatingBehavior="enclosed" text="{{detalle.cod_n.format(&quot;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_grupo.format(&quot;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_tipo.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_sec.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)+&quot; &quot;+detalle.descripcion.trim()+&quot; &quot;+detalle.unidad_med}}"/>
<rtl:input-variable name="detalle.cantidad_1" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox17" width="2.4inch" floatingBehavior="enclosed" textAlignment="right" text="{{detalle.cantidad_1.format(&quot;###,###.#####&quot;)}}"/>
<rtl:input-variable name="detalle.cantidad" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox18" width="1.5inch" floatingBehavior="enclosed" textAlignment="right" text="{{detalle.cantidad.format(&quot;###,###.#####&quot;)}}"/>
</MINIPAGE>
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedAhead"/>
<LAYOUTNODE name="despiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="topToBottom" floatingBehavior="enclosed">
<WORDBOX name="WordBox20" width="max" floatingBehavior="enclosed" textAlignment="center" text="DESPIECE" roundedCorners="true" borderWidth="1" borderStyle="solid"/>
<LAYOUTNODE name="encabezadodespiece" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox24" width="1.5inch" floatingBehavior="enclosed" text="Etiquetas"/>
<WORDBOX name="WordBox26" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 1"/>
<WORDBOX name="WordBox27" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 2"/>
<WORDBOX name="WordBox28" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 3"/>
<WORDBOX name="WordBox29" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Unidades"/>
<WORDBOX name="WordBox30" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Medida"/>
</LAYOUTNODE>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedHere"/>
<LAYOUTNODE name="detalledespiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="etiqueta" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="etiqueta Value" class="grwStringValue" width="width(&quot;M&quot;)*15" alignment="baseline" floatingBehavior="enclosed" text="{{etiqueta}}"/>
<rtl:input-variable name="xdespiece.lado_1" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_1 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_1}}"/>
<rtl:input-variable name="xdespiece.lado_2" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_2 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_2}}"/>
<rtl:input-variable name="xdespiece.lado_3" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_3 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_3}}"/>
<rtl:input-variable name="xdespiece.cantidad" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.cantidad Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.cantidad}}"/>
<rtl:input-variable name="xdespiece.medida" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.medida Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.medida}}"/>
</LAYOUTNODE>
</rtl:match>
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedBefore"/>
<LAYOUTNODE name="totaldespiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox21" width="4.8inch" floatingBehavior="enclosed" text="TOTALES"/>
<rtl:input-variable name="total_cantidad" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox22" width="1inch" floatingBehavior="enclosed" text="{{total_cantidad.format(&quot;##,###.#####&quot;)}}"/>
<rtl:input-variable name="total_medida" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox23" width="1inch" floatingBehavior="enclosed" text="{{total_medida.format(&quot;##,###.######&quot;)}}"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+126
View File
@@ -0,0 +1,126 @@
<?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="letterwidth" RWPageLength="letterlength" 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="../ipdir/ipautorizareq.rdd" RWFglReportName="requiereAutoriza"/>
<report:Conflicts>
<report:Conflict nodeName="encabezado" message="Node was in trigger &quot;FirstPageHeader [0; 1]&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="encabezado2" message="Node was in trigger &quot;FirstPageHeader [0; 1]&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="encabezadomaster" message="Node was in trigger &quot;FirstPageHeader [0; 1]&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="encabezadodetalle" message="Node was in trigger &quot;FirstPageHeader [0; 1]&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="despiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="detalledespiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
<report:Conflict nodeName="totaldespiece" message="Node was in trigger &quot;AfterGroup codigo&quot;, but trigger was removed during schema update"/>
</report:Conflicts>
<rtl:stylesheet>
<PXML>
<rtl:match name="Report" nameConstraint="Report" minOccurs="1" maxOccurs="1">
<MINIPAGE name="Page Root" width="max" length="max">
<rtl:match name="FirstPageHeader" nameConstraint="FirstPageHeader" minOccurs="0" maxOccurs="1">
<LAYOUTNODE name="encabezado" width="min" length="max" alignment="center" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="p_companias.nombre" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox1" width="max-2cm" floatingBehavior="enclosed" textAlignment="center" text="{{p_companias.nombre}}"/>
<WORDBOX name="WordBox" floatingBehavior="enclosed" text="Pagina:"/>
<PAGENOBOX name="PageNoBox" floatingBehavior="enclosed"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezado2" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox2" width="max-2cm" fontBold="true" floatingBehavior="enclosed" textAlignment="center" text="REQUISICION DOCUMENTOS"/>
<rtl:input-variable name="hora" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox3" floatingBehavior="enclosed" text="{{hora}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="encabezadomaster" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<LAYOUTNODE name="LayoutNode1" width="3inch" length="min" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<rtl:input-variable name="nombreusuario" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox4" length="1cm" floatingBehavior="enclosed" text="{{&quot;USUARIO: &quot;+nombreusuario.trim()}}"/>
<rtl:input-variable name="x.numero_doc" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox5" fontSize="12" fontBold="true" floatingBehavior="enclosed" text="{{&quot;DOCUMENTO: &quot;+x.numero_doc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="x.cod_mov" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="nombreMov" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox" width="width(&quot;M&quot;)*27" alignment="baseline" floatingBehavior="enclosed" text="{{&quot;TIPO DOCUMENTO: &quot;+&quot;(&quot;+x.cod_mov.format(&quot;&lt;&lt;&lt;&quot;)+&quot;)&quot;+nombreMov.trim()}}"/>
<rtl:input-variable name="x.fecha" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox6" floatingBehavior="enclosed" text="{{&quot;FECHA: &quot;+x.fecha}}"/>
<rtl:input-variable name="nombreBodega" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox8" floatingBehavior="enclosed" text="{{&quot;BODEGA: &quot;+nombreBodega}}"/>
</LAYOUTNODE>
<LAYOUTNODE name="LayoutNode2" width="3inch" length="min" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox12" length="1cm" alignment="baseline" floatingBehavior="enclosed"/>
<rtl:input-variable name="nombreBodegaDestino" type="FGLString" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox9" floatingBehavior="enclosed" text="{{&quot;BODEGA DESTINO: &quot;+nombreBodegaDestino}}"/>
<rtl:input-variable name="x.num_oc" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox10" floatingBehavior="enclosed" text="{{&quot;NUMERO ORDEN:&quot;+x.num_oc.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)}}"/>
<rtl:input-variable name="vendedor" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="vendedor Value" class="grwStringValue" width="width(&quot;M&quot;)*25" alignment="baseline" floatingBehavior="enclosed" text="{{&quot;VENDEDOR: &quot;+vendedor.trim()}}"/>
<rtl:input-variable name="x.cliente" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox1" width="width(&quot;M&quot;)*27" floatingBehavior="enclosed" text="{{&quot;CLIENTE: &quot;+x.cliente}}"/>
<rtl:input-variable name="x.observacion" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox2" width="width(&quot;M&quot;)*20" floatingBehavior="enclosed" text="{{&quot;OBSERVACION: &quot;+x.observacion.trim()}}"/>
</LAYOUTNODE>
</LAYOUTNODE>
<LAYOUTNODE name="encabezadodetalle" width="min" length="min" fontSize="8" fontBold="true" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox13" width="3.5inch" floatingBehavior="enclosed" text="ITEM(S)" roundedCorners="false" borderWidth="1"/>
<WORDBOX name="WordBox14" width="2.2inch" floatingBehavior="enclosed" textAlignment="right" text="UNIDAD"/>
<WORDBOX name="WordBox15" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="CANTIDAD"/>
</LAYOUTNODE>
</rtl:match>
<rtl:match name="Group codigo" nameConstraint="Group" minOccurs="0" maxOccurs="unbounded">
<MINIPAGE name="table" width="min" length="min" fontSize="8" layoutDirection="leftToRight">
<rtl:input-variable name="detalle.cod_n" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_grupo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_tipo" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.cod_sec" type="FGLNumeric" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.descripcion" type="FGLString" expectedLocation="expectedHere"/>
<rtl:input-variable name="detalle.unidad_med" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="WordWrapBox3" width="width(&quot;M&quot;)*30" length="min" alignment="baseline" floatingBehavior="enclosed" text="{{detalle.cod_n.format(&quot;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_grupo.format(&quot;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_tipo.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)+&quot;-&quot;+detalle.cod_sec.format(&quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot;)+&quot; &quot;+detalle.descripcion.trim()+&quot; &quot;+detalle.unidad_med}}"/>
<rtl:input-variable name="detalle.cantidad_1" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox17" width="2.4inch" floatingBehavior="enclosed" textAlignment="right" text="{{detalle.cantidad_1.format(&quot;###,###.#####&quot;)}}"/>
<rtl:input-variable name="detalle.cantidad" type="FGLNumeric" expectedLocation="expectedHere"/>
<WORDBOX name="WordBox18" width="1.5inch" floatingBehavior="enclosed" textAlignment="right" text="{{detalle.cantidad.format(&quot;###,###.#####&quot;)}}"/>
</MINIPAGE>
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedAhead"/>
<LAYOUTNODE name="despiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="topToBottom" floatingBehavior="enclosed">
<WORDBOX name="WordBox20" width="max" floatingBehavior="enclosed" textAlignment="center" text="DESPIECE" roundedCorners="true" borderWidth="1" borderStyle="solid"/>
<LAYOUTNODE name="encabezadodespiece" width="min" length="max" layoutDirection="leftToRight" floatingBehavior="enclosed" roundedCorners="true" borderWidth="1" borderStyle="solid">
<WORDBOX name="WordBox24" width="1.5inch" floatingBehavior="enclosed" text="Etiquetas"/>
<WORDBOX name="WordBox26" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 1"/>
<WORDBOX name="WordBox27" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 2"/>
<WORDBOX name="WordBox28" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Lado 3"/>
<WORDBOX name="WordBox29" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Unidades"/>
<WORDBOX name="WordBox30" width="1inch" floatingBehavior="enclosed" textAlignment="right" text="Medida"/>
</LAYOUTNODE>
</LAYOUTNODE>
<rtl:match name="OnEveryRow" nameConstraint="OnEveryRow" minOccurs="0" maxOccurs="unbounded">
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedHere"/>
<LAYOUTNODE name="detalledespiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<rtl:input-variable name="etiqueta" type="FGLString" expectedLocation="expectedHere"/>
<WORDWRAPBOX name="etiqueta Value" class="grwStringValue" width="width(&quot;M&quot;)*15" alignment="baseline" floatingBehavior="enclosed" text="{{etiqueta}}"/>
<rtl:input-variable name="xdespiece.lado_1" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_1 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_1}}"/>
<rtl:input-variable name="xdespiece.lado_2" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_2 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_2}}"/>
<rtl:input-variable name="xdespiece.lado_3" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.lado_3 Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.lado_3}}"/>
<rtl:input-variable name="xdespiece.cantidad" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.cantidad Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.cantidad}}"/>
<rtl:input-variable name="xdespiece.medida" type="FGLNumeric" expectedLocation="expectedHere"/>
<DECIMALFORMATBOX name="despiece.medida Value" class="grwNumericValue" width="1inch" anchorX="1" floatingBehavior="enclosed" textAlignment="right" format="---,---,---,--&amp;.&amp;&amp;" value="{{xdespiece.medida}}"/>
</LAYOUTNODE>
</rtl:match>
<rtl:input-variable name="tienedespiece" type="FGLNumeric" expectedLocation="expectedBefore"/>
<LAYOUTNODE name="totaldespiece" rtl:condition="tienedespiece==1" width="min" length="min" fontSize="8" layoutDirection="leftToRight" floatingBehavior="enclosed">
<WORDBOX name="WordBox21" width="4.8inch" floatingBehavior="enclosed" text="TOTALES"/>
<rtl:input-variable name="total_cantidad" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox22" width="1inch" floatingBehavior="enclosed" text="{{total_cantidad.format(&quot;##,###.#####&quot;)}}"/>
<rtl:input-variable name="total_medida" type="FGLNumeric" expectedLocation="expectedBefore"/>
<WORDBOX name="WordBox23" width="1inch" floatingBehavior="enclosed" text="{{total_medida.format(&quot;##,###.######&quot;)}}"/>
</LAYOUTNODE>
</rtl:match>
</MINIPAGE>
</rtl:match>
</PXML>
</rtl:stylesheet>
</report:Report>
+11 -4
View File
@@ -38,9 +38,11 @@ FUNCTION coprrp007()
uso VARCHAR(100),
descrip_esp VARCHAR(100),
unidad_med LIKE intb00001.unidad_med
END RECORD
DEFINE r_filename STRING
# WHENEVER ERROR CONTINUE
OPTIONS
@@ -161,9 +163,14 @@ LET idx = 1
RETURN
END IF
IF idx = 1 THEN
CALL seleccionarsalida() RETURNING salida
CALL configureoutput(salida) RETURNING HANDLER
-- La API de configuracion de reportes (fgl_report_*) no esta
-- disponible en este FGL; seleccionarsalida()/configureoutput()
-- tampoco estan definidas en este programa. Se escribe el XML
-- directo a un archivo en FGLSPOOL en lugar de usar la plantilla
-- .4rp con vista previa.
LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp007_organiza.xml"
LET handler = om.XmlWriter.createFileWriter(r_filename)
START REPORT organiza TO XML HANDLER handler
END IF
+4 -1
View File
@@ -3,7 +3,10 @@ DEFINE pdepartamento ui.combobox,
kdepartamento SMALLINT,kdescripcion CHAR(30)
LET pdepartamento = ui.combobox.forname("formonly.departamento")
CALL pdepartamento.clear()
IF pdepartamento IS NULL THEN
RETURN
END IF
CALL pdepartamento.clear()
DECLARE pagar CURSOR FOR
SELECT departamento, nom_dpto FROM adtb00001
WHERE status_t is null
+3
View File
@@ -199,6 +199,9 @@ adtb00003^sexo^0^10^67^
adtb00003^email_corporativo^201^100^68^
adtb00003^enviar_encuesta^0^10^69^
adtb00003^enviar_volante^0^10^70^
adtb00003^telefonoCorporativo^0^15^71^
adtb00003^numeroOficina^0^15^72^
adtb00003^extension^0^5^73^
adtb00004^cod_puesto^1^2^1^
adtb00004^nom_puesto^0^180^2^
adtb00004^otra_descripcion^0^180^3^
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+36 -11
View File
@@ -167,22 +167,47 @@ END FUNCTION
FUNCTION configureOutput(tipo_file)
DEFINE tipo_file CHAR(3)
-- La API fgl_report_* (Report Writer 2.0) no esta disponible en este
-- FGL 6.00.01. Esta salida (XML/XLS/PDF por handler) no esta soportada
-- en este entorno; usar r_output = 'MA' (impresion clasica) en su lugar.
IF NOT fgl_report_loadCurrentSettings(NULL) THEN
RETURN NULL
END IF
CALL fgl_report_setPageMargins("0.5cm", "0.5cm", "0.5cm", "0.5cm")
CALL fgl_report_configureCompatibilityOutput(160,"Monospaced",NULL,NULL,NULL,NULL)
CALL fgl_report_selectDevice(tipo_file)
CALL fgl_report_configurexlsxdevice(NULL, NULL, NULL, FALSE, FALSE, NULL, 1)
CALL fgl_report_selectPreview(TRUE)
RETURN fgl_report_commitCurrentSettings()
RETURN NULL
END FUNCTION
FUNCTION selectOutput()
-- El formulario "Configuration" del Report Writer 2.0 no esta disponible
-- en este entorno (ver configureOutput). Se devuelve un valor fijo para
-- que el flujo de "Reporte Grafico" siga y falle de forma consistente
-- con la limitacion ya conocida; usar MATRICIAL en su lugar.
RETURN "PDF"
DEFINE
r_output STRING,
r_action STRING,
preview INTEGER
OPTIONS INPUT WRAP
OPEN WINDOW f_configuration WITH FORM "Configuration"
LET INT_FLAG=FALSE
LET preview = FALSE
INPUT BY NAME r_output
ON ACTION CANCEL
EXIT PROGRAM
ON ACTION CLOSE
EXIT PROGRAM
END INPUT
CLOSE WINDOW f_configuration
CALL ui.interface.refresh()
IF r_action IS NOT NULL THEN
IF r_action == "preview" THEN
LET preview = TRUE
END IF
END IF
RETURN r_output
END FUNCTION
FUNCTION seleccionarSalida()
-- Mismo caso que selectOutput(): el formulario "Configuration" del
-- Report Writer 2.0 no esta disponible en este entorno; usar MATRICIAL.
RETURN "PDF"
RETURN selectOutput()
END FUNCTION
+7 -7
View File
@@ -159,14 +159,11 @@ LET selec =
DISPLAY "<< Reporte Generandose ... Por Favor Espere. >>"
AT 19,14 ATTRIBUTE (REVERSE)
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
LET opt1 = "yes"
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT opera TO XML HANDLER HANDLER
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT opera TO XML HANDLER HANDLER
PREPARE busca_p FROM selec
DECLARE periodo SCROLL CURSOR FOR busca_p
OPEN periodo using ano_act,datos_cons.fech_in,datos_cons.fech_fi
@@ -185,6 +182,9 @@ LET selec =
FINISH REPORT opera
CLEAR SCREEN
IF opt1 <> "yes" THEN
RUN imprime
END IF
END FUNCTION
REPORT opera(x)
+15 -1
View File
@@ -184,7 +184,7 @@ LET select_ant =
IF opt1 = "yes" THEN
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING HANDLER
CALL configureOutputRp028(r_output) RETURNING HANDLER
START REPORT prt_exist TO XML HANDLER handler
ELSE
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
@@ -438,3 +438,17 @@ END FUNCTION
PRINT COLUMN 4, ASCII 27, ASCII 80
END REPORT
FUNCTION configureOutputRp028(tipo_file)
DEFINE tipo_file CHAR(3)
IF NOT fgl_report_loadCurrentSettings("inprrp028.4rp") THEN
RETURN NULL
END IF
CALL fgl_report_setPageMargins("0.5cm", "0.5cm", "0.5cm", "0.5cm")
CALL fgl_report_selectDevice(tipo_file)
CALL fgl_report_configurexlsxdevice(NULL, NULL, NULL, FALSE, FALSE, NULL, 1)
CALL fgl_report_selectPreview(TRUE)
RETURN fgl_report_commitCurrentSettings()
RETURN NULL
END FUNCTION
-3213
View File
File diff suppressed because it is too large Load Diff
@@ -4,10 +4,10 @@ FUNCTION buscadoc(numid,codmov)
DEFINE numid,codmov INT
SELECT a.numero_Doc,a.cod_mov,a.fecha,a.num_oc,a.tipo_cliente,a.sec_cliente,a.nombre,a.bodega,a.bodega_destino,
a.estado,a.url_destino,b.descripcion,a.observacion
a.estado,a.url_destino,b.descripcion,a.observacion,a.us_crea
INTO p_iptb57.numero_doc,p_iptb57.cod_mov,p_iptb57.fecha,p_iptb57.num_oc,p_iptb57.tipo_cliente,p_iptb57.sec_cliente,
p_iptb57.cliente,p_iptb57.bodega,p_iptb57.bodega_destino,p_iptb57.estado,
p_iptb57.url_file,p_iptb57.observacion
p_iptb57.url_file,p_iptb57.idstado,p_iptb57.observacion,p_iptb57.us_crea
FROM iptb00057 a, iptb00061 b
WHERE a.numero_doc = numid AND a.cod_mov = codmov AND
a.idestado = b.idestado
@@ -15,7 +15,20 @@ FUNCTION buscadoc(numid,codmov)
#BODEGA DESTINO
IF p_iptb57.bodega_destino IS NOT NULL THEN
SELECT a.descripcion INTO nombreBodegaDestino FROM intb00009 a WHERE a.cod_bodega = p_iptb57.bodega_destino
END IF
END IF
#BODEGA ORIGEN
IF p_iptb57.bodega IS NOT NULL THEN
SELECT a.descripcion INTO nombreBodega FROM intb00009 a WHERE a.cod_bodega = p_iptb57.bodega
END IF
#TIPO DE MOVIMIENTO
IF p_iptb57.cod_mov IS NOT NULL THEN
SELECT RTRIM(a.descrip_mov) || '(' || CAST(a.cod_mov AS VARCHAR(6)) || ')' INTO nombreMov
FROM iptb00005 a WHERE a.cod_mov = p_iptb57.cod_mov
END IF
#USUARIO QUE CREO EL DOCUMENTO
IF p_iptb57.us_crea IS NOT NULL THEN
CALL usuarioSistema(p_iptb57.us_crea) RETURNING nombreUsuario,email
END IF
DECLARE buscardetalle CURSOR FOR
SELECT a.area,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descripcion,a.unidad_med,
a.cantidad_1,a.cantidad_2,b.factor_conv,
@@ -77,7 +77,7 @@ FUNCTION ipautorizadas(xusuario)
END IF
ON ACTION imprimir ATTRIBUTE(TEXT="Imprimir", IMAGE="printer")
IF arr_busqueda1[arr_curr()].numeroid > 0 THEN
CALL buscadoc(arr_busqueda1[arr_curr()].numeroid,arr_busqueda1[arr_curr()].cod_mov1)
CALL buscadocAutoriza(arr_busqueda1[arr_curr()].numeroid,arr_busqueda1[arr_curr()].cod_mov1)
LET data.rnumeroDoc = arr_busqueda1[arr_curr()].numeroid
LET data.rcodMov = arr_busqueda1[arr_curr()].cod_mov1
LET data.rtipo_cliente = arr_busqueda1[arr_curr()].rtipo_cliente
@@ -88,7 +88,7 @@ FUNCTION ipautorizadas(xusuario)
LET data.bodega_destino = arr_busqueda1[arr_curr()].bodega_destino
LET nombreUsuario = arr_busqueda1[arr_curr()].usuario
CALL impdocumento()
CALL impdocumentoAutoriza()
END IF
ON ACTION procesar ATTRIBUTE(TEXT="Procesa",IMAGE="")
IF arr_busqueda1[arr_curr()].numeroid > 0 THEN
@@ -172,7 +172,7 @@ FUNCTION buscadataReq(pusuario)
END FUNCTION
FUNCTION buscadoc(numid,codmov)
FUNCTION buscadocAutoriza(numid,codmov)
DEFINE numid,codmov INT
LET vendedor = null
@@ -235,7 +235,7 @@ FUNCTION buscadoc(numid,codmov)
LET idx = idx + 1
END FOREACH
END FUNCTION
FUNCTION impdocumento()
FUNCTION impdocumentoAutoriza()
DEFINE idx_l INT,
xcodigo VARCHAR(50)
LET r_filename = "ipprmt020_1.4rp"
@@ -251,7 +251,7 @@ FUNCTION impdocumento()
ELSE
RETURN
END IF
START REPORT requiere TO XML HANDLER HANDLER
START REPORT requiereAutoriza TO XML HANDLER HANDLER
FOR idx = 1 TO arr_iptb58.getLength()
@@ -261,15 +261,15 @@ FUNCTION impdocumento()
arr_iptb58[idx].cod_tipo USING '&&&&&&','-',
arr_iptb58[idx].cod_sec USING '&&&&&&&'
OUTPUT TO REPORT requiere(p_iptb57.*,arr_iptb58[idx].*,despiece1[idx].*, xcodigo)
OUTPUT TO REPORT requiereAutoriza(p_iptb57.*,arr_iptb58[idx].*,despiece1[idx].*, xcodigo)
END IF
END FOR
FINISH REPORT requiere
FINISH REPORT requiereAutoriza
END FUNCTION
REPORT requiere(x,detalle,xdespiece,codigo)
REPORT requiereAutoriza(x,detalle,xdespiece,codigo)
DEFINE hora STRING,
detalle RECORD
area INT,
@@ -308,7 +308,8 @@ REPORT requiere(x,detalle,xdespiece,codigo)
estado VARCHAR(50),
ruta_documento ,
url_file ,
idestado VARCHAR(200)
idestado VARCHAR(200),
us_crea VARCHAR(50)
END RECORD,
etiqueta VARCHAR(100),

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