Actualización 2014
Enero
08/01/2014
1471 Nueva funcionalidad en DATAPRO.INI, mediante la variable:
LBTNOFF :=.F.
Cuando su valor es .f., no serán mostrados los botones negados en caso que el botón no posea el archivo de imagen en color gris, ejemplo:
XEDIT.BMP (Representa el botón en colores)
XEDITG.BMP (Representa el botón en color Gris), en el caso que el archivo que representa el botón en color gris no existe; no será mostrado el botón, así se evita mostrar un recuadro gris en la barra de botones.
Si el valor de “LBTNOFF”, sea Verdadero, será mostrado un recuadro gris en la barra de botones
LBTNOFF :=.T.
08/01/2014
1472 Mejora en programa DPDOCCLIREP, incluida cláusula GROUP BY DOC_NUMERO para emitir un solo documento “caso de documentos repetidos”, tabla DPDOCCLI debe poseer como primary key:
DOC_CODSUC,DOC_TIPDOC,DOC_NUMERO,DOC_TIPTRA,DOC_RECNUM
Asimismo el programa DPFACTURAV, Revisa si existen unidades de medida para evitar incidencias por la carencia de Unidad de medida en MOV_UNDMED
10/01/2014
1473 Nuevo Programa DpXbase “RUNCRYSTAL”, solicita al OS la apertura de un archivo de extensión RPT (Crystal report). Es ejecutado desde el generador de reportes, desde la opción “Asociar Archivos crystal, se presenta un nuevo botón con el logo de crystal report para ejecutar el programa RUNCRYSTAL según el nombre del archivo RPT que esté focalizado en el browser.
Febrero
07/02/2014
1474 Mejora en programa DPCLIENTES, reactivado botón para consultar los datos del Seniat del Cliente. Programa: VALRIFSENIAT, incluye 4to parámetro lView, si es .T. Muestra en browser de internet los datos del contribuyente según los datos del Seniat.
07/02/2014
1475 Nuevo Programa DPCLIENTESBRW, Solicita los datos Iniciales del cliente cuando se ejecuta “Listar/browser” desde la ficha del cliente, esta funcionalidad si activa “Buscador Inicial” Definiciones de la Empresa, Procesos, Asignación de Buscador Inicial
09/02/2014
1476 Nuevo reporte: INVEXIFISLOTSUC, muestra la existencia física por cada sucursal, el resumen agrupado por producto, lote y fecha. Se accede desde: Inventarios, Informes, Existencia. Criterio por Sucursal, se puede indicar la sucursal.
09/02/2014
1477 Mejora en reporte: INVEXIFISLOTES , muestra la existencia física de los productos según método de costo lote, ahora puede indicar criterio por sucursal o todas las sucursales.
09/02/2014
1478 Nuevo reporte: INVEXIFISLOTGRP, muestra la existencia física por cada Grupo de Producto, el resumen agrupado por producto, lote y fecha. Se accede desde: Inventarios, Informes, Existencia. Rango por Grupo, se puede indicar el grupo.
12/02/2014
1479 Nuevo programa y reporte :BRW_LOTESDIS, muestra de manera resumida los productos según lotes y fechas de vencimiento, se accede desde “Inventarios”, Otros “Consultas de Lotes”.
13/02/2014
1480 Nuevo programa DPSUCCON, se ejecuta desde DPSUCURSAL.LBX, presenta un menú contentivos de opciones vinculadas exclusivamente a las consultas relacionadas con la sucursal, incluye consulta ficha de la sucursal y muestra los productos según de costo lotes vinculados con la sucursal.
13/02/2014
1481 Mejora en BRWMAKER, la línea inicio de controles costo lotes vinculados con la sucursal.
17/02/2014
1482 Mejoras en Privilegios del Usuario, cualquier usuario que requiera utilizar un documento de venta necesita definir cada uno de sus privilegios según el tipo de documento, esta funcionalidad tiene como objetivo mejorar los niveles de seguridad operativa donde se requiere que el usuario solo posea las opciones necesarias para crear, modificar un documento de venta. A partir de esta revisión todas las opciones de un documento están definidas en negación, es decir el usuario debe habilitar cada una de las funcionalidades.
Cuando el usuario selecciona desde el menú del sistema, el uso de un tipo de documento, y este no posee definiciones, se mostrará un mensaje indicando que el usuario no posee privilegios y negara el uso del documento. Si el usuario actual posee acceso a la opción “modificar Usuario”, el sistema mostrará inmediatamente el formulario de privilegios del documento.
17/02/2014
1483 Mejoras en Programa: DPTIPDOCCLIMNU, “menú tipo de documentos del cliente”, incluye nueva opción “Privilegios del Usuario” que presenta lista de usuarios activos para seleccionar un registro y aplicar los privilegios según el usuario y tipo de documento indicado.
18/02/2014
1484 Mejoras en Documentos del Cliente (Código del Cliente). Mediante el nuevo programa “DPCREACLI”, creación rápida de Clientes, se aplica cuando se incluye un nuevo documento, y es introducida la cédula del comprador, el sistema complementa la creación del número del RIF mediante el prefijo “V” o “G”, ocho dígitos con cero hacia la izquierda, el sistema busca cíclicamente el RIF del clientes hasta su ubicación y presenta un formulario los datos del “contribuyente”, solicita, dirección y teléfono, al seleccionar el botón “Aceptar” es creado el registro en la tabla del cliente, asigna el número del RIF como código en el documento de venta facilitando la creación automática del cliente. Si el cliente ya existe buscando el RIF mediante “V” o “E” más numero de cedula con ocho dígitos y recupera los datos del cliente, el sistema presenta los datos del cliente en el formulario para lograr editar los datos del cliente.
20/02/2014
1485 Nuevo programa DPFOCUSWHEN, Evalúa los controles de un formulario y posiciona El foco es el primer control activo superior al control que lo solicita.
Ejemplo al validar código del clientes, el foco se ubica en el primer control disponible. Aplicado en función VALCODCLI, en programa DPFACTURAV
20/02/2014
1486 Nuevo programa LIBVTARES, genera libro de ventas para puntos de venta con impresora fiscal, se muestran las facturas resumidas desde-hasta para ventas no personalizadas (Sin RIF de comprador). Se ejecuta desde Tributación, Procesos, Libro de venta Resumido.
22/02/2014
1487 Mejora en programa DPFACTURAV, campo DOC_PLAZO es asignado según valor de condición de la tabla : DPCONDPAGO
24/02/2014
1488 Nueva Tabla DPTABXSUC, creada para asignar las restricciones de tablas por sucursal. Mediante el programa DPTABXSUC, llamado desde consultar sucursal, se pueden restringir los productos por sucursal, logrando solo mostrar el las consultas SQL “mediante formularios LBX”, exclusivamente los productos de cada sucursal. Restricción Clientes y Proveedores.
24/02/2014
1489 Mejoras en programa: DPBUILDWHERE, realiza los filtros según las definiciones o restricciones por sucursal aplicadas a las tablas DPINV,DPCLIENTES y DPPROVEEDOR
28/02/2014
1490 Nuevo programa DPSUCMNU, Menú de Opciones de la Sucursal, permite acceder a las restricciones por: Producto, Cliente y Proveedor en modo edición. Incluye en nuevo reporte “DPTABXSUC”, emite listado de Restricciones por Sucursal y Tabla. El programa DPTABXSUC, incluye funcionalidad “Consultar” que permite acceder al menú de consulta de cliente, producto y proveedor. El archivo dpsucursal.lbx incluye nuevo botón para acceder al nuevo programa de Menú de la sucursal.
28/02/2014
1491 Mejora en Programa DPLINK, valida que el enlace entre dos tablas correspondan a la misma base de datos y permite filtrar en la lista de tablas para enlazar las tablas que corresponden a la misma base de datos de la tabla que solicita el enlace.
28/02/2014
1492 Mejora en Programa DPVISTAS, Obtiene el nombre de la Base de datos de la tabla de la consulta SQL y la asigna en la campo VIS_DSN, necesario para validar en enlace entre tablas con Vistas.
28/02/2014
1493 Mejora en Programa DPLINK, Mediante el nuevo campo lógico LNK_VIEWD, que permite indicar si la relación entre las tabla con otra tabla o con una vista.
Marzo
01/03/2014
1494 Nuevo programa: BRW_DCANANUA, Resumen Anual de Documentos Anulados de Clientes. Creado mediante BRWMAKER, se ejecuta mediante “Macros”, “Ejecutar consulta Browse “,”Clientes “.
03/03/2014
1495 Mejora en programa BRWMAKER, Código fue ampliado a 13 caracteres, los programas y reportes se generan mediante el prefijo “BR”, logrando hasta 15 caracteres el nombre del programa y nombre del reporte. El nuevo programa BRWRUN ejecuta desde el browser “Ejecutar Consultas Browser”, logrando ejecutar programas que inicien mediante BRW_ o BR
04/03/2014
1496 Nuevo parámetro BTNDBLCLIC:=01 en archivos .LBX, permite indicar cual de las acciones de los botones será ejecutada mediante Doble Clic. Su valor por defecto es 0 mediante el classdata “::nbtnDblClic”, Ejemplo:
// TABLAS DE DATAOS
//
TITLE :={oDp:DPBRW}
TABLE :=DPBRW
SELECT :=BRW_TITULO,BRW_CODIGO,BRW_TABLE,BRW_FECHA,BRW_NUMPOS
WHERE :=BRW_MENU=1
ORDER BY :=BRW_NUMPOS
GROUP BY :=
WIDTH :=900
HEIGHT :=430
APLICACION:=
TOPIC :=
FILECHM :=
BTNDBLCLIC:=01
04/03/2014
1497 Nuevo proceso automático: DOCCLIFISANULADOS, muestra la cantidad de documentos fiscales (Facturas) anulados, base imponible y monto neto. Mediante Clic, muestra una nueva consulta browser “Programa BRTIPDOCANUL” contentiva del resumen por tipo de documento, luego mediante clic muestra en detalle “Programa BRTIPDOCANULDET” los documentos anulados y en color azul los documentos sin movimiento de productos.
04/03/2014
1498 Mejoras en programa DPCONFIG “Configurar la empresa”, valida el RIF de la empresa en el portal del Seniat.
05/03/2014
1499 Nueva Tabla “DPIMPRXLS”, permite definir los diversos modelos para la importación de datos desde archivo Excel hacia las tablas maestras del sistema. El objetivo de esta tabla es lograr realizar funciones que puedan ser exportados con facilidad para la importación de datos desde el sistema. Se accede desde “Administración del Sistema”, ficheros, “Definición desde Importación desde Excel”.
06/03/2014
1500 Mejora en programa “DPDOCCXP”, Documentos de CxP, al modificar ya no es necesario presionar enter en “Número fiscal”, fue agregada una nueva columna “CCD_TIPIVA” Tipo de IVA y “CCD_PORIVA”, facilitando el uso de dos tasas de IVA con la misma alícuota. Así mismo el área visual del formulario fue ampliado.
07/03/2014
1501 Corrección en Binario CLASE TDOCGRID, cuando se relaciona la tabla de encabezado “campo carácter” con tabla de Grid tabla con campo numérico. Caso de registro de promociones. Otra opción es cambiar el tipo de campo PRO_CANREQ hacia carácter y convertirlo en numérico en los procesos donde se aplica.
07/03/2014
1502 Mejoras en programa “DPINVPROMOCION”, solo aplica a productos de método de costo “Promedio” y valida que el registro de promoción no aceptes (Cantidad oProcentajes) en monto cero.
07/03/2014
1503 Nuevo Programa “DPSUCXTAB”, permite definir la relación de restricción entre un producto, cliente o proveedor con una o diversas sucursales. Se accede desde el menú del Producto, Cliente y Proveedor.
07/03/2014
1504 Mejora en programa: DPPRIVVTA , A partir de la versión 6.0, todos los privilegios por documento deben estar definidos por el usuario con el objetivo de no facilitar todas las funcionalidades que pueda utilizar el usuario y afectar los resultados generados. El formulario incluye dos nuevos botones: Privilegios Mínimos, Activa parcialmente las funcionalidades mínimas para generar un documento de cliente. Botón: Todos los privilegios “Asigna todos los privilegios del documento”.
08/03/2014
1505 Mejora en programa: DPPRIVCOM, A partir de la versión 6.0, todos los privilegios por documento deben estar definidos por el usuario con el objetivo de no facilitar todas las funcionalidades que pueda utilizar el usuario y afectar los resultados generados. El formulario incluye dos nuevos botones: Privilegios Mínimos, Activa parcialmente las funcionalidades mínimas para generar un documento de Compra. Botón: Todos los privilegios “Asigna todos los privilegios del documento”.
08/03/2014
1506 Corrección en clase TDOCENC, uso de teclas I,M,C,E, evalúa la condición del Botón asociado con cada función.
08/03/2014
1507 Mejora en programa DPCLIENTESCERO, fue removido campo NIT, es incluye botón para buscar los datos del cliente en la página Web del seniat, también busca los datos en las tabla DPCLIENTES.
10/03/2014
1508 Nuevo proceso automático: PEDIDOSXFACTURAR , muestra en el Panel ERP la cantidad de pedidos pendientes por facturar, además indica: Cantidad de Unidades, Monto por facturar, fecha del primero y última fecha de entrega del pedido. Cuando el usuario presione Enter en el panel ERP, será mostrado el nuevo programa BRPEDXFACT creado mediante BRWMAKER y la vista:
BRW_PEDIDOSXFACTURAR quien se genera de los movimientos de inventario según tipo de documento PED.
11/03/2014
1509 Nueva Opción “Importar Datos desde Excel”, ubicado en Definiciones de la empresa, permite ejecutar las diversas opciones predefinidas para la importación de datos desde Excel, logrando migrar de manera rápida y fácil, datos desde excel como: Inventario Iniciar, Clientes, Proveedores, Cuentas por Pagar y Cuentas por Pagar. Las anteriores opciones del menú del sistema para importar datos fueron removidas.
11/03/2014
1510 Nuevo Programa DPIMPRXLSINV, realiza la importación de Productos desde Excel, previa definición en la tabla DPIMPRXLS filtrada por “Productos”.
11/03/2014
1511 Nuevo Programa DPIMPRXLSPRO, realiza la importación de Proveedores desde Excel, previa definición en la tabla DPIMPRXLS filtrada por “Proveedores”.
11/03/2014
1512 Nuevo Programa DPIMPRXLSCXP, realiza la importación de Cuentas por Pagar, el proveedor debe estar registrado previamente en la tabla dpproveedores. El código del proveedor y número de documento es llegando con ceros hacia la izquierda. Mediante la Variable @PRO_RIF, puede ubicar el código del Proveedor en caso que el código del proveedor esté vacío. El nuevo Programa DPCREAPROVEEC, crear un proveedor indicando Código y Nombre. Si el código del proveedor no existe y la variable @PRO_CODIGO y @PRO_NOMBRE se obtienen desde la hoja de Excel , será creado automáticamente el código de proveedor. Si el código del proveedor no existe y el RIF pertenece a un proveedor será asumido el código del proveedor según el rif encontrado.
11/03/2014
1513 Nuevo Programa DPIMPXLSEXP, Permite seleccionar la definiciones de Excel que serán exportadas mediante una archivo de formato DBF encapsulado en un archivo comprimido de formato ZIP. Mediante la variable oEdit:lXls :=.T., permite indicar si se incluye en el archivo DPIMPXLSEXP.ZIP los archivos XLS vinculados con las definiciones seleccionadas para exportar.
11/03/2014
1514 IXLCNuevo Programa IXLCREATE, incluye botón de consulta de la tabla en definición, se erradica el uso de archivo forms\*.ixl y reemplazado por el campo IXL_MEMO de la tabla DPIMPRXLS
12/03/2014
1515 Nuevo Programa DPIMPRXLSCXC, realiza la importación de Cuentas por Cobrar, El cliente debe estar registrado previamente en la tabla dpclientes. El código del cliente y número de documento es rellenando con ceros hacia la izquierda en caso de ser numéricos. Mediante la Variable @CLI_RIF, puede ubicar el código del Cliente en caso que el código del cliente esté vacío o el cliente este registrado mediante el número del RIF. El nuevo Programa DPCREACLIENTECC, crear un registro en la de clientes indicando Código, Nombre y Rif. Si el código del cliente no existe y la variable @CLI_CODIGO y @CLI_NOMBRE se obtienen desde la hoja de excel , será creado automáticamente según el código del cliente. Si el código del cliente no existe y el RIF pertenece a un cliente ya registrado será asumido su código.
12/03/2014
1516 Nuevo Programa CHKINTREF, mediante el diccionario de datos, revisa la integridad referencia de un cursor SQL generado para la inserción o modificación de registros evitando complejos procesos de programación en la Validación de las referencias entre las tablas. La clase Ttable incluye dos nuevos métodos:
IsChkIntRef(lSay), devuelve verdadero si la integridad fue evaluada con éxito (todos los campos corresponden a registros existentes en otras tablas relacionadas). El parámetro lSay, si es verdadero muestra en mensaje el resultado de la revisión de integridad referencial.
ViewIntRef(), Muestra en una ventana, el resultado de los campos que no cumplen con la integridad referencial, cada línea, muestra: Campo, valor, tabla enlazada y resultado de la relación “no Existe” o “Está omitido”.
Así mismo, se incluyen dos Datos en la clase:
cMsgInt INIT “Requiere Ejecutar método IsChkIntRef()”
aIntRef Contiene la información que será mostrado mediante el método ViewIntRef()
Toda la implementación de del método IsChkIntRef, es ejecutado mediante el programa CHKINTREF ,
Ejemplo:
LOCAL oTable
oTable:=Opentable(“SELECT * FROM DPDOCCLI”,.F.)
oTable:REPLACE(“DOC_TIPDOC”,”ZZZ”) // Existe en DPTIPDOCCLI?
oTable:REPLACE(“DOC_CODIGO”,STRZERO(1,10))
//
// Verificará que todos los Campos Vinculados con Otras Tablas sean
// válidos
IF oTable:ISCHKINTREF(.T.)
oTable:Commit()
ENDIF
// Otra Forma de Implementarlo es:
IF EJECUTAR(“CHKINTREF”,oTable,.T.)
oTable:Commit()
ENDIF
oTable:End()
RETURN NIL
14/03/2014
1517 Nuevo Programa DPCREASUCCLI, es llamado desde DPIMPRXLSCXC “Importar Cuentas por Cobrar”, crea automáticamente un registro en la tabla “DPCLIENTESSUC”
“Sucursales del cliente” según parámetro: cCodCli,cSucCod, cSucNombre y cCliNombre.
14/03/2014
1516 Tabla DPLINK (Relaciones entre tablas) Nuevo Campo LNK_DISDEL (Disparador o TRIGGER para sentencia DELETE) y LNK_DISUPD (Disparador TRIGGER para sentencia UPDATE). Estos campos solo estarán disponibles para relaciones virtuales en el diccionario de datos (Sin integridad referencial) y tiene como objetivo crear de manera automática la sentencia SQL para la creación de Disparadores
(TRIGGER) en aquellas tablas donde no existe integridad referencia, caso
DPCLIENTES.CLI_CODIGO) o (DPPROVEEDOR.PRO_CODIGO) con (DPMOVINV) campo
MOV_CODCTA donde se actualiza a nivel de DpXBase y con esta funcionalidad se le asigna mayor seguridad a las Bases de datos. Igualmente con las cuentas contables vinculadas con varios campos en Grupos (DPGRU).
Sentencia Modelo:
CREATE TRIGGER BEFORE UPDATE ON
FOR EACH ROW
BEGIN
UPDATE SET =NEW. WHERE =;
END
15/03/2014
1517 Replanteamiento de programa DPTRIGGERS “Formulario para Disparadores”, se remueve el campo TRG_CODIGO por el campo TRG_NOMBRE (clave primaria), incluye un combobox que permite seleccionar el objetivo del disparador “Insert,Update o Delete”, según sea la opción mediante el botón “Crear Sintaxis” genera la sintaxis básica del disparador, incluye un browser contentivo de todos los campos de la tabla seleccionada para que el usuario conozca cada uno de la tabla. El nombre y sintaxis del disparo se conforma por la concatenación del nombre de la tabla con la acción del disparador (TRG_ACCION), “Insert-Update-Delete”. Si el usuario cambia el nombre de la tabla o acción, el nombre del disparador será sustituido en el campo TRG_NOMBRE y Sintaxis de Disparador TRG_TEXTO.
16/03/2014
1518 Mejora en Programa DPTABINTREF, incluye consulta hacia las tablas relacionadas y consulta relaciones virtuales mediante el nuevo programa BRTABRELVIR “Creado mediante BRWMAKER”.
16/03/2014
1519 Nuevo programa DPIMPRXIMPORT, presenta formulario para indicar la carpeta Contentiva de las definiciones “para la importación de Datos desde Excel”. Se accede desde
16/03/2014
1520 Nuevo programa EXPORTFORMS, exportar archivos de formularios de la carpeta FORMS\. Mediante un formulario, muestra la lista de archivos ordenados por fecha, mediante CLIC, se pueden marcar los archivos que serán comprimidos en formato ZIP. Mediante el botón calendario, permite seleccionar archivos según rango de fecha. Luego mediante el botón exportar solicita carpeta destino y el sistema genera el archivo DPFORMS.ZIP para que el usuario pueda extraer y enviar su contenido. Se accede desde Programación
16/03/2014
1521 Nuevo programa DPCLISETCOND, realiza la creación de registros en la tabla DPCONDPAGO según el contenido de los campos CLI_CONDIC y CLI_DIAS de la tabla DPCLIENTES. La tabla DPCLIENTES será vinculada con cada unos de los registros de la tabla DPCONDPAGO que será utilizada para asignar el valor del campo CLI_CONDIC en el campo DOC_CONDIC de la tabla DPDOCCLI , así mismo obteniendo el valor de los días de plazo desde la tabla “DPCONDPAGO”- Este programa es ejecutado desde el programa SQLDB_UPDATE
16/03/2014
1522 Mejora en programa DPDOCCLIVALCLI, valida el código del cliente en documentos de ventas (Programa DPFACTURAV), obtiene el valor del campo CLI_CONDIC y busca en la tabla DPCONDPAGO, obtiene los días de plazo para ser asignado en el campo DOC_PLAZO.
16/03/2014
1523 Nuevo Programa “DPINVMEDCREAR”, determina los productos sin unidad de medida vinculada. Los productos determinados, generan de manera automática las unidades de medida mediante el programa: DPINVCREAUND
18/03/2014
1524 Nuevo Programa “DPTRIGGERSGET”, parámetros cTable,cName, Según la Base de datos vinculada con la tabla, se obtiene lista de Disparadores (TRIGGERS) vinculados con la tabla. Si es enviado el nombre del TRIGGER, solo se obtiene el TRIGGER vinculado con la tabla.
18/03/2014
1525 Nuevo Programa “DPTRIGGERSDEL”, parámetros cTable y cName. Elimina de la Base de datos todos los disparadores o el disparador “según cName”, vinculado con la tabla. Esta funcionalidad es necesaria para el replanteamiento de disparadores cuando se utiliza la opción “Modificar Disparador” o “se replantea la relación virtual entre tablas.
18/03/2014
1526 Nuevo Programa “DPTRIGGERSCRE”, crea la sintaxis para la creación de Disparador “TRIGGER” para la sentencia UPDATE y DELETE mediante la relación entre dos tablas registradas en el diccionario de datos tabla “DPLINK”
18/03/2014
1527 Nuevo Programa “DPTRIGGERSDELA”, remueve de la Base de datos todos los trigger, requiere parámetro (cBD), donde:
< se refiere a multiple (BD de la Empresas)
– Configuración (ADMCONFIG)
. Diccionario de datos.
Mejora en el programa DPTRIGGERSGET, realiza lectura de datos sin necesidad de utilizar la clase TMSTable()
18/03/2014
1527 Mejora en programa “DPTRIGGERSCRE”, genera por cada tabla, vínculo y acción las sentencias de los disparadores y son almacenados en la tabla DPTRIGGER, ejemplo:
DPCLIENTES_DPMOVINV_DELETE
19/03/2014
1528 Nueva función AQUERY(), realiza una consulta SQL Directamente sobre la base de datos sin la intervención del diccionario de datos del Sistema ni la función
OpenTable(). Sus parámetros:
cSql = Sentencia SQL
oDb = Objeto de conectividad de la BD, en caso de ser omito, es empleado el diccionario de datos para saber en cual base de datos está relacionada con la tabla indicada en la sentencia.
lXbase = Su valor por defecto es .T. indica si los datos será convertidos al léxico xBase. La conectividad nativa solo devuelve datos en formato Carácter. En caso de ser .F. todos los datos son devueltos en formato nativo “Carácter”.
aFields= Parámetro para ser utilizado por defecto @aFields, con el objetivo de contener los datos de la estructura de la tabla.
Sintaxis: AQUERY(cSql,oDb,lXbase,@aFields)
Ejemplos:
/*
// Lectura de Disparadores TRIGGER
*/
LOCAL aData:={}
LOCAL oDb :=OpenOdbc(oDp:cDsnData)
aData:=AQUERY(“SHOW TRIGGERS”,oDb)
ViewArray(aData)
/*
// Lectura de DPINV
*/
LOCAL aData:={}
LOCAL cSql :=”SELECT INV_CODIGO,INV_DESCRI FROM DPINV”
LOCAL aData:=AQUERY(cSql)
ViewArray(aData)
/*
// Lectura de estructura
*/
LOCAL cSql :=”SELECT INV_CODIGO,INV_DESCRI FROM DPINV”
LOCAL aFields:={}
LOCAL aData:=AQUERY(cSql,NIL,.F.,@aFields)
ViewArray(aData) // Muestra los Datos
ViewArray(aFields) // Muestra la Estructura de los Datos
21/03/2014
1529 Mejora en Programa DPIMPRXLSINV, incluye nueva variable @cCodAlm para indicar el código del almacén donde será registra la transacción de Inventario en la tabla DPMOVINV mediante el campo MOV_CODALM, si el valor de la variable @cCodAlm está vacío será asumido el valor de la variable oDp:cAlmacen. Si el almacén no existe, será creado según el valor de cCodAlm. Así mismo el programa: DPINVEXIINI, recibe el parámetro cCodAlm y valida la integridad referencia (Incluir Movimientos), mediante en programa: “CHKINTRE”
25/03/2014
1530 Mejora en Procesos de importación desde Excel, en el archivo DPIMPRXLS.LBX, incluye noveno botón que permite acceder directamente hacia la configuración de proceso de definición de columnas desde Excel.
// Configuración
BTN09_BMP :=CONFIG.BMP
BTN09_ACTION :=EJECUTAR(“DPIMPRXLSDEF”,oCursor:IXL_CODIGO)
BTN09_WHEN :=!oCursor:Eof() .AND. ISTABMOD(“DPIMPRXLS”)
BTN09_TOOLTIP:=Configuración
BTN09_MESSAGE:=Configuración
BTN09_TYPE :=OTHER
Formulario DPIMPRXLS, en modo modificación permite acceder al formulario “definición de columnas desde Excel”, mediante el botón configuración ubicado en la barra de botones.
25/03/2014
1531 Nuevo Programa XLEDITMEMO, Permite editar el contenido del campo IXL_MEMO “contentivo de las definiciones entre campos y columnas de Excel” con el objetivo de copiar y pegar entre diferentes definiciones, así mismo como duplicar el contenido desde otro modelo de definición o definición enviada por correo en formato texto. Este programa se accede desde el formulario “Definir campos con columnas desde Excel”.
26/03/2014
1531 Implementación de Unidades de medidas para Peso Variable, mediante el Campo UND_PESADO en tabla DPUNDMED, permite indicar si la unidad de medida es dual, requiere (Peso y Cantidad) en todas las transacciones de inventario donde se afecte el inventario físico. Así mismo el campo UND_MAXDIF permite limitar la proporción entre (Peso y Cantidad), debido a que en algunos productos el peso y la unidad no son simétricos permitiéndole al usuario ajustar el peso con margen de discrecionalidad limitado. Ejemplo: 5 barras de queso de un 1 kilo (Aproximado) cada uno, podrá pesar entre 980 gramos o 1.
Kilo 100 Gramos, generando como total peso 5 Kilos 150 Gramos y no 5 kilos exactos.
El monto del ítem en la factura de venta del producto será calculado entre el precio multiplicado por peso (y no por cantidad). El programa DPFACTURAV, fue adaptado para calcular total ítem según precio*peso según la variable oGrid:lPesado obtenida desde el programa VTAGRIDEXISTE. El programa DPDOCPRO “Facturas de Compra”, fue reajustado tamaño del formulario, se incluye la edición del campo MOV_CXUND para aceptar el peso de productos de peso variable.
Abril
03/04/2014
1532 Mejora en método ListBox() clase TDOCGRID, permite indicar el archivo LBX de Listado Browser para visualizar una consulta SQL vinculada con la columna del Grid. Sintaxis:
FUNCTION INVLOTES()
LOCAL cWhere:=”MOV_CODSUC”+GetWhere(“=”,oDp:cSucursal)
oGrid:GetCol(“MOV_CODIGO”):ListBox(.F.,”DPINVLOTES.LBX”,cWhere)
RETURN .T.
03/04/2014
1533 Nuevo archivo DPINVLOTES.LBX, se ejecutan desde el grid de documentos de ventas mediante el botón “Lotes” y muestra todos los productos con sus respectivos lotes,fecha de vencimiento, existencia y precio.
03/04/2014
1534 Nueva vista LOTESPRECIOS, contiene consulta de precio por lote generando la
siguiente tabla:
LOT_CODSUC,LOT_CODIGO,LOT_LOTE,LOT_CAPAC ,LOT_COSTO,LOT_PRECIO y LOT_FCHVEN, esta consulta es utilizada para obtener el precio del Lote durante el proceso de facturación.
04/04/2014
1535 Nuevo programa BRINVLOTES, consulta de lotes del producto (Todas las sucursales). Muestra lote,fecha,Existencia, Costo y Precio. Se ejecuta desde el programa DPINVCON (Consultar Productos), solo disponible método de costo “Capas”.
04/04/2014
1536 Mejora en BRWMAKER, la creación de reportes mediante BRWMAKER incluye condición para evitar la emisión de reportes de manera directa mediante las sentencias:
IF Empty(CTABLE(cSql))
MensajeErr(“Este Reporte requiere ser Ejecutado desde la Consulta “)
RETURN .F.
ENDIF
Evitando los reportes de incidencias cuando se ejecuta el informe de manera directa, debido a que los informes creados por BRWMAKER están diseñados para ejecutar la sentencia SQL de la consulta mostrada en el formulario. Así mismo solicita confirmación para reemplazar un reportes previamente creado con el mismo código.
04/04/2014
1537 Nuevo grupo de reportes 0000113, agrupa todos los reportes vinculados con productos mediante método de costo (Lotes y Capas) se accede mediante la nueva opción “Capas de Lotes” desde la aplicación “Inventario”, sección Informes.
04/04/2014
1538 Mejoras en programas DPIMPRXLSCXC y DPIMPRXLSCXP (Importar Cuentas por Cobrar desde Excel) incluye la inserción de registros en la tabla DPDOCCLICTA y DPDOCPROCTA necesario para la aplicación de retenciones de IVA.
07/04/2014
1539 Nuevo reporte INVEXILOTSUCGRU, Muestra un listado de productos, agrupados por lote, fecha de vencimiento, costo, existencia , valor total. Se presenta seccionado por Sucursal y Grupo.
07/04/2014
1539 Nuevo proceso Automático: LOTESVENCE, determina un periodo de seis meses a partir de la fecha del sistema y obtiene la cantidad de productos que serán vencidos durante este periodo y muestra en el Panel ERP, la cantidad de Lotes, Unidades, Valor del inventario, fecha del primer y último vencimiento. Si el usuario presiona click en el registro de vencimientos, será ejecutado el programa “BRW_LOTESVNC”, contentivo del resumen anual y mensual de productos que serán vencidos durante el periodo detectado.
07/04/2014
1539 Mejora en Programa VTAGRIDLOAD (Asume el centro de costos) desde el valor del centro de costos indicado en campo DOC_CENCOS tabla DPDOCCLICLI, si el usuario selecciona otro centro de costos el programa VTAGRIDPRESAVE, no asumen el centro de costos del documento.
08/04/2014
1540 Mejora en Programa facturas de venta y Compra, incluye nuevo botón en el área del Grid que permite seleccionar el centro del costo de cada Ítem.
08/04/2014
1541 Mejora en DPBRWSELEXP (Exportar Browser) incluye exportar reportes creados por BRWMAKER y archivo de formato crystal con el mismo nombre del Browser.
08/04/2014
1542 Nuevo programa “DPCENCOSUPD”, replantea la relación con la tabla DPCENCOS, ahora mediante Primary Key “CEN_CODSUC,CEN_CODIGO”, es ejecutado desde el programa SQL_DBUPDATE. Así mismo desde el programa DPSUCFILXUSU “Filtrar registros por sucursales” ejecuta el programa “DPCREACENCOS” y filtra el centro de costo por sucursal. Esta implementación requiere la Base de datos sin integridad (Generada por un Respaldo) debido a que no se puede remover una clave primaria con Integridad referencial
08/04/2014
1543 Mejora en programa “BRW_LOTESVNC”, ver Resumen (Año y Mes) de productos con lotes y fechas de vencimiento, nuevo botón Browser, muestra todos los productos mediante el programa “BRLOTESDIS Lotes Disponibles”, según todas las fechas indicadas en la consulta Browser.
09/04/2014
1544 Mejora en Programa “BGCALCULAR” y reporte Balance general, incluye dos nuevos valores en el criterio: Trimestre y valor anterior. Permite generar una nueva columna VALORANT en la tabla BALANCEGEN.DBF para ser impresa mediante crystal report. Esta nueva columna, incluye el valor acumulado de la cuenta según el periodo anterior según el trimestre seleccionado. Si el usuario selecciona el trimestre 2, el valor anterior se obtiene del trimestre 1 .
09/04/2014
1545 Nuevo programa DPCTACAJAAHORRO importa en DPCTA el plan de cuentas para caja de ahorros según plan de cuentas indicada en ejemplo\dpctacajadeahorro.txt, el nuevo programa DELETEDPCTA elimina las cuentas contables. La tabla DPCTA incluye un nuevo campo CTA_PRESEN contentiva del modelo de código de cuenta para la presentación del balance para cajas de ahorro.
1545 Nuevo Índice (DPASIENTOS4) en tabla DPASIENTOS Clave:
MOC_CODSUC,MOC_CUENTA,MOC_ACTUAL,MOC_FECHA, optimiza el calculo del balance General.
11/04/2014
1546 Nuevo Programa DPCLIBUSCAR, permite realizar búsquedas de clientes “repetidos” o con nombre similares según programa SOUNDFIND, muestra lista de clientes encontrados mediante browser DPLBX(“DPCLIENTESBUSCAR”). Este formulario se ejecuta desde el menú de consulta del cliente y aporta el nombre del cliente, mediante un browser es separados por palabras para que el usuario marque los textos que desea buscar.
14/04/2014
1547 Nuevo Programa DPCLIBUSCAR, permite realizar búsquedas de clientes “repetidos” o con nombre similares según programa SOUNDFIND, muestra lista de clientes
14/04/2014
1548 Nueva función DPBUILDPICTURE(nInt,nDec), genera un formato numérico con división de comas por unidades de mil, en caso de valor decimal agrega y decimales según (nDec).
14/04/2014
1549 Nuevo método CTOHTML(cFile) en la clase TTable, genera un archivo plano de formato html, según la ejecución de programa TABLETOHTML, quien determina la estructura del objeto o cursor table y genera el arreglo contentivo de la consulta SQL. El programa CTOTOHTML genera la sentencia HTML desde el arreglo contentivo la consulta SQL, ejemplo:
PROCE MAIN()
LOCAL oTable,cSql
cSql:=” SELECT CLI_CODIGO,CLI_NOMBRE,MAX(DOC_FECHA) AS DOC_FECHA,”
” SUM(DOC_NETO*DOC_NETO) AS SALDO FROM DPCLIENTES “+;
” INNER JOIN DPDOCCLI ON CLI_CODIGO=DOC_CODIGO “+;
” GROUP BY CLI_CODIGO”
oTable:=OpenTable(cSql,.T.)
oTable:CTOHTML(“TEMP\DPCLIENTES.HTML”)
oTable:End()
RETURN NIL
14/04/2014
1550 Mejora en BRWMAKER, genera código fuente dpxbase que incluye nuevo botón HTML.BMP que permite generar la consulta browser en formato html
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\html.BMP”;
ACTION (EJECUTAR(“BRWTOHTML”,:oBrw))
oBtn:cToolTip:=”Generar Archivo html”
:oBtnHtml:=oBtn
14/04/2014
1551 Nuevo programa BRWTOHTML, obtiene los datos de las columnas de un browse y ejecuta el programa CTOHTML(cFile) creando un archivo en formato HTML
16/04/2014
1552 Mejora en impresión plana o LPT, mediante el programa FMTRUN, Desde windows 7, no hay soporte para puertos paralelos remotos mediante asignación de NET USE, el formulario de impresión incluye en en los dispositivos de salida las impresoras registradas en el sistema operativo aGetPrinters() y mediante el nuevo programa PRNTEXTO() realiza la impresión del formato (previamente creado en formato texto) y luego convertidos en arreglos para ser impreso mediante el API de impresión del sistema Operativo. El formulario incluye un nuevo checklist para indicar si desea o no previsualizar la impresión.
16/04/2014
1553 Mejora en configuración de la empresa, incluye funcionalidad para personalizar el color de fondo del menú del sistema con el objetivo que el usuario también pueda ubicar visualmente la empresa de trabajo.
16/04/2014
1554 Mejora en Programa BRWTOHTML, Genera última línea con totales, en caso que el browser posea condición de totales oBrw:lFooter:=.T.
17/04/2014
1555 Nuevo campo de tipo Memo PC_PRNLIST en tabla DPPCLOG, contiene lista de las impresoras detectadas en el PC local, y tiene como objetivo de ejecutar el comando NET USE con las impresoras relacionadas con el PC o IP, evitando depender de personal técnico para compartir la impresora de otro usuario. Este valor se guarda cuando se ejecuta el programa DPINI
17/04/2014
1556 Nuevo campo de tipo Memo PC_APLLIST en tabla DPPCLOG, contiene lista de las aplicaciones que están en uso en el sistema operativo cuando se inicia la ejecución del sistema para que el usuario decida las aplicaciones que desea auditar mediante el programa DPGETTASK, caso Facebook, twitter
17/04/2014
1557 Nuevo campo lógico CMT_QUERY en tabla DPMAPTABCPO, permite indicar los permisos del usuario para ejecutar la opción Query en los browse “DPLBX”
17/04/2014
1558 Activada funcionalidad Query en formularios de browser de tipo LBX, quien ejecuta el programa BRWMAKERRUN, permitiendo ejecutar las consultas diseñadas mediante BRWMAKER y asociadas con la tabla del Query y con opción BRW_MENU=1, Las consultas se muestran mediante el programa BRDPBRWQUERY.
17/04/2014
1559 Mejora BRWMAKER, incluye el uso de campos memos en la consulta, limitando la expresión de datos hasta 250 caracteres, incluye la cláusula.
:oBrw:bChange:={||:BRWCHANGE()} y function:
FUNCTION BRWCHANGE()
RETURN NIL
También, Genera código fuente del informe indicando la impresión de los campos memos.
FUNCTION ONCHANGE()
nLineas:=nLineas+1 // Es Posible Aplicar Fórmulas
PrintMemo(,1,.F.,1)
RETURN .T.
17/04/2014
1560 Nueva funcionalidad “Buscar en Contenido”, se accede desde el menú de macros, ejecuta el programa BRBUSCARCONT “Buscar Contenidos”, presenta un formulario contentivo de dos controles que solicitan textos necesarios para realizar las búsquedas en la tabla DPCNTEMAS, Adicionalmente incluye un browser para indicar en cuál de los contenidos desea realizar las búsquedas. Luego de ejecutar el botón “Buscar”, presenta el formulario BRBUSCARTEMAS contentivo de todos los temas involucrados en los textos solicitados, presenta en un campo memo el contenido del tema. Incluye reporte de los temas encontrados.
19/04/2014
1561 Nuevo programa DPRICHEDIT, editor de texto enriquecido (RICHEDIT) permite crear, pegar, importar contenidos textos o memos con fuentes de letras, colores, imágenes y demás atributos indicados en archivo de biblioteca de vínculos dinámicos Riched20.dll. Su principal función es lograr almacenar los datos en el formato RTF mediante digitalización y su contenido texto que permita realizar búsquedas futuras.
19/04/2014
1562 Mejora en Programa DPLOTE_SAL, Permite editar cantidad y Precio, según privilegios del usuario la cantidad solicitada podrá ser superior que la existencia y el usuario podrá modificar el precio de venta y debe ser superior que el costo o precio de venta indicado en el lote.
lSupExi:=oGridL:oHead:lPar_Existe // Cantidad Supera Existencia
lPrecio:=oGridL:oHead:lPar_Precio // Modificar Precio
19/04/2014
1563 Optimización clase TDPCLASS, Hereda a DPLBX y DPGENREP, le permite a las classes poder crecer mediante asignación de nuevas class data (Variables) a traves del metodo ::Set(cVarname,uValue), asimismo permite asignar un Objeto script (Programa escrito en DpXbase) que permite agregar nuevos métodos mediante la definición de funciones FUNCTION XFUNCION(), ejemplo: Se construyó una clase dinámica que permite generar código HTML
// Programa : DPHTMLCLASS
PROCE MAIN(cFile)
LOCAL o
DEFAULT cFile :=”TEMP\”+LSTR(SECONDS())+”.HTML”
o:=TDpClass():New(“DPHTML”,”oHTML”)
RETURN o
// Programa : HTMLEDOCTACLI
PROCE MAIN()
LOCAL oH
oH:=EJECUTAR(“DPHTMLCLASS”)
RETURN NIL
22/04/2014
1564 Mejora en Programa DPDOCCLIVIEW, incluye nuevo botón “html” que genera el estado de cuenta en formato HTML y se presenta mediante el browser (definido por defecto), genera en la carpeta temp\ un archivo de uso temporal. El botón Enviar por correo, ejecuta el programa blat contentivo del código HTML generado por el programa HTMLEDOCTACLI
22/04/2014
1565 Nuevo Programa “DPSCRIMPORT”, se ejecuta desde la function EJECUTAR() y mediante la variable:
oDp:cFileSource:=”C:\DPADMWIN\”
DATAPRO.INI
FILESOURCE :=C:\DPADMWIN\
Permite copiar programas fuentes desde el diccionario de datos indicado en la ruta indicada, con el objetivo de facilitar el desarrollo de otros productos donde se requiere componente de otro programa, evitando mensajes de incidencias y labores de exportación e importación de programas, ejemplo: Se requiere implementar en nómina el envió masivo de correos lo cual requiere de diversos programas DpXbase ubicados en C:\dpadmwin\datadbf\dpprogra.dbf
Programa DPSCRIMPORT genera traza de programas copiados en el archivo dpxbase\dpxbase.txt
22/04/2014
1566 +Nuevo Programa “DPTABLAIMPORT”, es ejecutado desde la función OpenTable() Y se ejecuta cuando las tablas indicadas en la sentencia SQL no se encuentran en el Diccionario de datos. Su objetivo es copiar las tablas y campos del Diccionario de datos desde otra aplicación AdaptaPro. Esta funcionalidad permite crear otras aplicaciones utilizando componentes del diccionario de datos sin necesidad de utilizar exportar ni importar. Requiere la declaración de la variable: oDp:cFileSource, ejemplo: Desde el SGE se requiere ejecutar una sentencia SQL de la Tabla NMTRABAJADOR
PROCE MAIN()
LOCAL oTable
LOCAL cSql:=”SELECT * FROM NMTRABAJADOR”
oDp:cFileSource:=”C:\DPNMWIN\”
oTable:=OpenTable(cSql,.T.)
ViewArray(oTable:aFields)
oTable:End()
RETURN
22/04/2014
1567 Nuevo Programa “DPREPORTIMPORT””, es ejecutado desde la función REPORTE() cuando el reporte solicitado no existe. Según valor de la variable oDp:cFileSource, obtiene del diccionario de datos copia del reporte solicitado con su respectivo grupo.
23/04/2014
1568 Nueva Vista DOCPRORTI, contiene consulta de retenciones de IVA aplicadas a un documento de compra y tiene como objetivo facilitar en enlace con la tabla DPDOCPRO Y Generar consultas contentivas de documentos conjuntamente con retenciones de IVA, ejemplo:
SELECT DOC_TIPDOC,DOC_CODIGO,PRO_NOMBRE,DOC_NUMERO,DOC_BASNET,DOC_MTOIVA,
RTI_PORCEN,
RTI_MONTO,
DOC_NETO,
DOC_NETO-IF(RTI_MONTO IS NULL,0,RTI_MONTO) AS SALDO FROM DPDOCPRO
INNER JOIN DPTIPDOCPRO ON DOC_TIPDOC=TDC_TIPO AND TDC_LIBCOM=1
INNER JOIN DPPROVEEDOR ON DOC_CODIGO=PRO_CODIGO
LEFT JOIN VIEW_DOCPRORTI ON DOC_CODSUC=RTI_CODSUC AND
DOC_TIPDOC=RTI_TIPDOC AND
DOC_CODIGO=RTI_CODIGO AND
DOC_NUMERO=RTI_NUMDOC
WHERE DOC_TIPTRA=’D’ AND DOC_CXP<>0
23/04/2014
1569 Nueva Vista DOCPRORRET, contiene consulta contentiva de retenciones de ISLR aplicadas a un documento de compra y tiene como objetivo de lograr el vínculo con la tabla DPDOCPRO Y Generar consultas contentivas de retenciones de ISLR, ejemplo:
SELECT DOC_TIPDOC,DOC_CODIGO,PRO_NOMBRE,DOC_NUMERO,DOC_BASNET,DOC_MTOIVA,
RET_PORCEN/RET_CUANTOS,
RET_CUANTOS,
RET_MONTO,
DOC_NETO,
DOC_NETO-IF(RET_MONTO IS NULL,0,RET_MONTO) AS SALDO FROM DPDOCPRO
INNER JOIN DPTIPDOCPRO ON DOC_TIPDOC=TDC_TIPO AND TDC_LIBCOM=1
INNER JOIN DPPROVEEDOR ON DOC_CODIGO=PRO_CODIGO
LEFT JOIN VIEW_DOCPROISLR ON DOC_CODSUC=RET_CODSUC AND
DOC_TIPDOC=RET_TIPDOC AND
DOC_CODIGO=RET_CODIGO AND
DOC_NUMERO=RET_NUMERO
WHERE DOC_TIPTRA=’D’ AND DOC_CXP<>0
Es importante destacar que un documento de compra puede tener asociadas más de una retenciones por esto la ponderación de RET_PORCEN/RET_CUANTOS que muestra la media entre la sumatoria porcentual de las retenciones entre la cantidad de retenciones vinculadas.
23/04/2014
1569 Nueva Consulta Brw “DPDOCPRORET”, Contiene listado de documentos fiscales con sus respectivas retenciones de IVA e ISLR. Se accede desde Macros, consultas Browser, proveedor
23/04/2014
1570 Nueva Vista “DOCPROPAG”, consulta contentiva del total de pagos por cada documento de la tabla DPDOCPROPAG. Esta consulta es utilizada para generar consultas de documento del proveedor con columnas contentivas de pagos.
28/04/2014
1571 Nuevo campo CTA_UTILIZ en DPCTA, de uso para realizar el cálculo del ajuste por inflación. Sus opciones son definibles por el usuario mediante la opción “Opciones para Utilización de Cuentas”, ubicado en el menú “Otros” de la aplicación Contabilidad.
28/04/2014
1572 Nuevo programa DpxBase ACHOICE, recibe parámetros:
aData := Lista de Arreglo
uValue := Valor por defecto de la búsqueda en el Arreglo
cTitle := Título para la ventana de Diálogo.
nTop := Posición Alto de la ventana
nLeft := Posición Izquierda
nWidth := Ancho
nHight := Alto
oGet := Objeto Get que recibirá el valor y proporciona las coordenadas de nTop y nLeft
Esta función es utilizada mediante el programa : DPBALGETPERIODO , quien es llamado desde balance General Comparativo, criterio 9, para solicitar el periodo que sea comparado.
PROCE MAIN(cPeriodo)
LOCAL aPeriodo:={“Anual”,;
“Semestral”,;
“Cuatrimestral”,;
“Trimestral”,;
“Bimensual”,;
“Mensual”}
DEFAULT cPeriodo:=aPeriodo[1]
cPeriodo:=EJECUTAR(“ACHOICE”,aPeriodo,cPeriodo,”Seleccionar Periodo”)
RETURN cPeriodo
28/04/2014
1573 Nuevo informe BALANCEGENCOM, mediante el criterio RGO_C9 solicita el periodo a través del arreglo indicado en el programa DPBALGETPERIODO, y mediante el Criterio RGO_C10, solicita el número del periodo anterior excepto “Anual” donde se asume el año del ejercicio en curso. Si se trata del comparativo trimestral, solicita cual es el número del trimestre:1,2,3 o 4. En caso de ser omitido se asume el trimestre en curso. El programa que genera el balance es : BGCALCULAR quien recibe los parámetros cPeriodo y nPeriodo, ahora genera una nueva columna para la generación del formato mediante crystal report.
Mayo
01/05/2014
1574 Nuevo Método GETWHERERECORD(cFields,lAll) en clase TTABLE, llama al programa DpXbase GETWHERERECORD y genera la sentencia WHERE de SQL contentiva con todos los datos del registro. Necesario cuando se necesita realizar una sentencia UPDATE según todos los campos del registro.
Ejemplo
oTable:=OpenTable(“SELECT * FROM DPTABLAS LIMIT 1”,.T.)
oTable:GETWHERERECORD(“TAB_NUMERO”)
SQLUPDATE(“DPTABLAS”,”TAB_NUMERO”,”0000″,oTable:cWhereRecord)
oTable:End()
// Si envía la lista de campos mediante cFields, se realizará la cláusula
// where según el contenido de los campos
// Cuando se utilizan todos los campo (cFields) solo aplica con valores
// que NO estén nulos
// lAll, Indica si lee todos los campos o solo los que no estan vacios, por
// defecto su valor es .t.
01/05/2014
1575 Nuevo programa DpXbase SETRECNULOS, cambia hacia valor vacío todos los campos de la tabla, necesario cuando se requiere utilizar el método GETWHERERECORD()
02/05/2014
1576 Nuevo programa DPTABLASCHK, Revisa la estructura de DPTABLAS, en caso de estar vacía la importa desde el diccionario de datos.
02/05/2014
1577 Nueva Pestaña “Sucursales” en formulario “Configurar Empresa”, contiene los checkBox para indicar la restricción o no restricción de tablas con posibles vínculos con Sucursales.
oDp:lInvXSuc // Productos Vinculados con Sucursales
oDp:lProXSuc // Proveedores Vinculados con Sucursales
oDp:lCliXSuc // Clientes Vinculados con Sucursales
03/05/2014
1578 Mejora en función Checktable(), si la tabla realizó algún cambio, ejecuta el programa SETRECNULOS(cTable) con el objetivo de asignar valores vacíos en los campos con valor NULL.
03/05/2014
1578 Asignación de valores por defecto por Campo, en la tabla DPCAMPOS fue incluido el nuevo campo CAM_DEFAUL, permite indicar en cada campo su valor por defecto, con el objetivo optimizar el tiempo de programación y procesos de importación de datos desde el uso de la clase TTABLE y método commit().
Cuando se realiza la actualización o inclusión de un registro el sistema busca los valores por defecto y los campos con valores vacíos para asignar el valor indicado por defecto en cada tabla.
En el caso que se requiera emplear una variable del sistema para evitar incidencias por integridad referencial se debe indicar el símbolo &, ejemplo:
&oDp:cSucursal. No es necesario indicar cadenas en comillas, caso de la tabla de vendedores VEN_SITUAC, se debe indicar el valor A sin comillas, o en la tabla DPCLIENTES CLI_ESTADO, sólo es necesario indicar la letra A. En algunos casos tablas con la condición NNN_ACTIVO campo lógico, se debe indicar .T.. el método commit ejecuta el programa DPTABLESETDEF.
Si el valor por defecto requiere algún proceso de mayor complejidad se puede ejecutar o invocar un programa DpXbase con la siguiente sintaxis:
&EJECUTAR(“PROGRAMA”)
También se puede ejecutar una función
&SQLGET(“DPIVATIP”,”TIP_CODIGO”)
03/05/2014
1579 Mejora en Clase DPEDIT (Formularios), mediante el método SETTABLE(), ejecuta el programa DPEDITSETDEF, asigna al objeto oTable y al formulario los valores por defecto cuando está en modo “Incluir” o el cursor no posee registros.
Tiene como objetivo presentar los controles contentivos de valores por defecto.
03/05/2014
1580 Mejora en Clase DPDOCCENC (Formularios de documentos con Grid), mediante el programa DPEDITSETDEF, asigna los valores por defecto en el formulario cuando Se ejecuta la opción incluir.
05/05/2014
1581 Nuevo Programa BRWPREVIEW (obtenido del método print de clase XBROWSE). genera un reporte dinámico en modo de pre visualización según el contenido (Arreglo) del Browser, disponible para ser enviado por impresora. el programa BRWMAKER genera nuevos programas con un nuevo botón denominado pre visualización.
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\PREVIEW.BMP”;
ACTION EJECUTAR(“BRWPREVIEW”,oPEDXFACT:oBrw,oPEDXFACT:cTitle)
oBtn:cToolTip:=”Previsualización”
El objetivo de esta funcionalidad es evitar crear reportes innecesario mediante el generador de reportes para imprimir el contenido mostrado en el browser.
05/05/2014
1582 Nuevo Programa BRWDINAMICO, presenta un browser mediante la clase TMDI() que muestra el contenido de una consulta SQL obtenida mediante la clase TTABLE, ejemplo:
OpenTable(” SELECT * FROM DPCLIENTES”,.T.):BRW()
También
LOCAL lOrder:=.T.
LOCAL oTable:=OpenTable(” SELECT * FROM DPCLIENTES”,.T.)
EJECUTAR(“BRWDINAMICO”,oTable,”Mi Titulo”,lOrder)
oTable:End()
La ventaja de usar la clase TMDI es el uso total del browser dentro del MDI y asume su dimensión de manera dinámica, es decir el Browser utiliza todo el espacio de la ventana MDI, en caso de ser re-dimensionado el MDI también es afectado el Browser. Esta nueva consulta incluye pre-visualización y generación de archivo HTML. Una de sus ventajas es crear consultas Browser con sus respectivos pre-visualización con posibilidad de impresión y sin la necesidad de crear un nuevo programa DpXbase mediante BRWMAKER. Caso de consultas que no requieren vínculos con otras consultas ni otras funcionalidades.
05/05/2014
1583 Mejora en BRWMAKER, si la consulta no posee un reporte registrado en el generador de reportes, no será mostrado en la barra de opciones del formulario. El usuario dispone de la opción Pre visualizar para visualizar e imprimir.
IF ISSQLGET(“DPREPORTES”,”REP_CODIGO”,””)
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\XPRINT.BMP”;
ACTION :IMPRIMIR()
oBtn:cToolTip:=”Imprimir”
:oBtnPrint:=oBtn
ENDIF
05/05/2014
1584 Nuevo proceso automático “INVXSUC”, determina cuántos productos no están vinculados con sucursales “Si la configuración de la empresa se requiere productos exclusivos por sucursal”. Indica en el Panel ERP la cantidad de productos. Si el usuario, presiona Clic, se muestra una consulta browser mediante el programa “BRDPINVSINSUC”, que muestra los productos (Código y Nombre). El browser proporcional el botón “Sucursal” para que el usuario Seleccione la o las sucursales asociadas con cada producto.
06/05/2014
1585 Nueva Variable oDp:aExcluye, contiene en arreglar todas las definiciones de exclusión de registros indicadas en SETEXCLUYE(cTable,cWhere) para la clase ttable. Esta implementación se utiliza para filtrar registros por Sucursal.
Para visualizar su contenido ViewArray(oDp:aExcluye).
06/05/2014
1586 Nuevo programa SETFIELDDEF, lee el diccionario de Datos “tabla DPLINK” y busca las tablas relacionadas y asigna en el campo CAM_DEFAUL en la tabla DPCAMPOS las variables vinculadas con las tablas maestras y registros previamente seleccionado por el usuario, ejemplo: Sucursal por defecto se refiere a oDp:cSucursal. Este programa se ejecuta desde SQLDB_UPPOST, utilizando cuando realiza revisión de la estructura de datos.
06/05/2014
1587 Nuevo proceso automático “CREARSERDECO”, evalúa si en la tabla de proveedores está registrada PRO_RIF=”J002407034″. En caso de no estar registrado muestra En el panel ERP “Proveedor Administradora Serdeco no está registrado”. Si el usuario presiona Click, se muestra el formulario de proveedores en modo inclusión con datos parciales del proveedor “Administradora Serdeco”. Mediante este proveedor se implementó la opción “Cuentas a Pagar de Terceros” donde se solicitan los datos de las facturas de los demás proveedores (Agua, Electricidad y Aseo Urbano)con sus respectivas retenciones para que el usuario realice el pago de estos servicios a nombre de Administradora Serdeco.
06/05/2014
1588 Nuevo programa TIPDOCPROCPT, crea un nuevo registro en tabla DPTIPDOCPRO, necesario para el traslado de Cuentas por Pagar hacia CPT (Cuentas por Pagar de Terceros). Este programa se ejecuta desde SQLDB_UPDATE
06/05/2014
1588 Nueva Tabla DPPROVEEDORCXPT, creada para registrar los códigos de los proveedores con sus respectivas cuentas contables que van a transferir las cuentas hacia el proveedor vinculado. El formulario DPPROVEEDORCXPT, es llamado desde la ficha de proveedor y solicita código del proveedor y cuenta contable asociada a cada factura de compra.
07/05/2014
1589 Programa : DPLOADCNF Retención de ISLR con Cero, se inicia con valor .T., Debe generar retención de ISLR con valor cero cuando el ítem de compra este asociado con una cuenta contable y la cuenta con un concepto de Retención.
Variables:
oDp:lRetIslr_Cer :=oData:Get(“lRetIslr_Cer” ,.T. )
oDp:nRTIUT :=oData:Get(“nRTIUT”,20 ) // Valor Inicia con 20 Unidades tributarias.
oDp:lRTItodos=.T // Inicia con valor .T. Aplica retenciones de IVA a todas las compras sin tomar en cuenta la unidad tributaria mínima. En algunos casos, el usuario es sancionado por no aplicar RTI en compras menores cuando hace pagos mediante reintegros a terceros.
Mejora en programa DPCONFIG, se incluye la nueva variable oCnf:lRTItodos, se separan en dos grupos visuales las retenciones de IVA y Retenciones de ISRL
07/05/2014
1590 Programa : DPINVSETSUC, es ejecutado desde grabar producto y asigna la sucursal por defecto cuando el valor oDp:lInvXSuc es .t. (Definido en Configuración de la Empresa).
07/05/2014
1591 Nuevo Programa DPINVSETALLSUC, Si la variable oDp:lInvXSuc es .T. (Productos por Sucursal), Verifica los productos que no están asignado a una sucursal y procede a asignarlos con la sucursal activo (oDp:cSucursal).Este programa es ejecutado desde SQLDB_UPDATE y Desde Configurar Empresa.
07/05/2014
1592 Implementan de la función DO(bWhile,bFor,bRun), necesario para realizar un proceso cíclico en una sola línea de instrucción mediante bloques de código:
bWhile Contiene la condición del proceso cíclico
bFor Bifurca la ejecución de bRun
bRun Contiene la instrucción que será ejecutada. Ejemplo:
LOCAL oTable:=OpenTable(“SELECT INV_CODIGO”+;
” FROM DPINV “+;
” LEFT JOIN DPTABXSUC ON RXS_TABLA=’DPINV’ AND “+;
” RXS_CLAVE=INV_CODIGO “+;
” WHERE RXS_CLAVE IS NULL”,.T.)
DO({||!oTable:Eof()},NIL,{||EJECUTAR(“DPINVSETSUC”,oTable:INV_CODIGO),;
oTable:DbSkip()}) })
// reemplaza a
WHILE oTable:Eof()
IF .T.
EJECUTAR(“DPINVSETSUC”,oTable:INV_CODIGO)
ENDIF
oTable:DbSkip()
ENDDO
Los parámetros también puede ser enviados en cadenas y no en bloques de código:
DO(“!oTable:Eof()”,NIL,
[EJECUTAR(“DPINVSETSUC”,oTable:INV_CODIGO),oTable:DbSkip()])
07/05/2014
1593 Nuevo programa GETDEFAULTALL, obtiene todos los valores por defecto en cada campo, se ejecuta desde el programa DPINI. Esta funcionalidad evita la lectura del diccionario de datos por cada tabla
07/05/2014
1594 Nuevo programa GETFIELDZEROALL, Realiza lectura de la tabla DPCAMPOS de los campos que requieren ser rellenados de cero hacia la izquierda con el propósito de ser evaluados mediante el método commit() de la clase ttable logrado validar esta condición y rellenar cero hacia la izquierda los campos omitidos por el usuario en la edición de formularios. Este programa es llamado desde DPINI y DPTABLASGRID. La variable oDp:lRunZero:=.T., indica la ejecución de esta validación evitando incidencias durante el proceso de instalación.
08/05/2014
1595 Nuevo campo lógico CAM_MILES en tabla DPCAMPOS, sólo disponibles para campos de tipo numérico con longitud entera mayor que 4 con el objetivo de generar formato para números cuando se genera código fuente de formularios, browser o reportes. Cuando el usuario presiona click en este campo, se genera el formato numérico en el campo CAM_FORMAT. Igualmente fue ampliado el espacio visual del formulario y grid. También se validan la longitud y enteros de los campos.
Campo de tipo carácter su longitud no puede superar 250.
Campo de tipo numérico su longitud no puede superar 19, valor entero no puede superar seis
08/05/2014
1596 Mejora en clase TDOCGRID, cuando el campo del grid es lógico y el usuario presiona clic invirtiendo su valor se ejecuta de inmediato la validación del campo (Sin necesidad de presionar la tecla ENTER)
08/05/2014
1597 Replanteamiento relación tabla DPTABLAS y DPCAMPOS, mediante TAB_NOMBRE y CAM_TABLE. El campo TAB_NUMERO es desincorporado funcionalmente debido a que puede causar colisión de tablas cuando se importan tablas con el mismo nombre y diferentes números. Caso DPSUCURSAL y DPCENCOS cuando fueron importadas hacía nómina.
08/05/2014
1598 Tabla DPCAMPOS, mediante índice DPCAMPOS2, clave: CAM_TABLE,CAM_NAME, Optimiza las búsqueda de funcionalidades por tabla, casó: Campos Zero hacia la Izquierda y Valores por defecto.
08/05/2014
1599 Mejoras en programa DPTABIMPORT (Importar Tablas) no se utiliza el campo TAB_NUMERO
08/05/2014
1600 Mejora en función Checktable(cNumTab,lDrop), el parámetro cNumTab, puede recibir el nombre de la tabla por el Número de la tabla.
08/05/2014
1601 Nueva Variable !oDp:lSpanish por defecto su valor es .F. y mediante la La configuración de la empresa se puede cambiar a .T.. Este valor es utilizado mediante la función FDP(uValue,cFormat), para presentar valores numéricos en formato ingles o Español, ejemplo:
oDp:lSpanish:=.F.
? FDP(123456.78,”999,999,999.99″) // Muestra 123.456.78
oDp:lSpanish:=.T.
? FDP(123456.78,”999,999,999.99″) // Muestra 123,456,78
Los nuevos programas generados mediante BRWMAKER y Reportes creados mediante el generador de Reportes incluyen esta funcionalidad que permite presentar los resultados en formato Ingles o Español. Para el caso de los imput mediante GET aún no ha sido implementados con esta definición debido a que requiere la expresión “@E999.999.999,99”
08/05/2014
1602 Nuevo campo CAM_AFECTA en tabla DPCAMPOS, permite indicar si el campo afecta a otros campos con respecto a su longitud. Ejemplo: Se requiere ampliar el campo DOC_NUMERO en la tabla DPDOCPRO, así mismo reajustar con la misma longitud los demás campos de otras tablas vinculadas con este campo. Mediante el programa SETFIELDLEN(cTable,cField) se realiza el proceso de actualización de las demás tablas y regeneración de su estructura. Igualmente el sistema queda listo para otros posibles cambios futuros:
- Ampliar el código de cuenta en plan de cuentas.
- Ampliar el código del cliente.
- Ampliar el campo código del vendedor, entre otros.
1603 Mejora en programa: SETFIELDDEF, asigna “.T”. valor por defecto en campo CAM_DEFAUL a todos los campos Lógicos “%ACTIVO%”y sin definición.
09/05/2014
1603 Mejoras en Browser MENUA.LBX (Aplicaciones del Sistema), incluye dos botones:
- Tablas, llama DPTABLAS.LBX filtrando solo las tablas vinculadas con la aplicación focalizada.
- Programas, llama DPPROGRAMA.LBX filtrando solo los programas vinculados con la aplicación focalizada.
1604 Mejora en programa: DPTABLASGRID, cuando se crea un campo de tipo fecha, el valor por defecto es &DPFECHA() quien devuelve la fecha según definición de la empresa. De igual manera, el campo de tipo carácter de 8 caracteres de longitud y texto”HORA” incluido en el nombre, asume: &DPHORA() como valor por defecto.
1605 Nuevo método PRINT() en clase TDPLBX(), permite ejecutar el reporte según Nombre por defecto del archivo LBX. Si el reporte no existe, se ejecuta el programa LBXTOREPORT quién se encarga de generar el código fuente del reporte y dejarlo listo para su ejecución.
1606 Nuevo método PREVIEW() en clase TDPLBX(), realiza la pre visualización impresa del contenido del Browser. Si la tabla no posee permiso para impresión, esta opción estará restringida.
1607 Cambio en el método REPORTE() ejecuta el reporte según el nombre de la tabla y no del archivo LBX, en caso que el reporte no existe, será creado de la misma forma que se indica en el método PRINT()
1608 Nueva función ISREPORT(cCodigo) , devuelve verdadero cuando el reporte indicado en cCodigo si está registrado, caso contrario devuelve .f.
Esta funcionalidad puede ser aplicado en una condición de botón, ejemplo:
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\XPRINT.BMP”,NIL,”BITMAPS\XPRONTG.BMP”;
ACTION oVTAGRU:IMPRIMIR();
WHEN ISREPORTE(“BWVTAGRU”)
oBtn:cToolTip:=”Imprimir”
1609 Mejora en programa LBXCREATE, Genera código LBX, según las nuevas funcionalidades, incluye botón y método Preview(), Método PRINT() , reubicación de los botones de desplazamiento desde la posición 16-20, dejando espacio para agregar más funcionalidades.
1610 Nuevo Botón BTN05_*, Opciones del Menú, ejecuta el programa LBXMENU() para ejecutar un programa de formulario MDI() contentivo de opciones: 1. Consultar, 2 Ficha del registro. Si el programa MNU no existe el sistema genera el código fuente del programa de consultas contentivo de dos opciones. El objetivo de esta funcionalidad es facilitar la creación de programas fuentes y parámetros en el archivo LBX.
1611 Nueva funcionalidad, Importar Libro de Compras, creada para que el usuario defina las relación de columnas y campos de un libro de compras y lograr generar documentos de compras para luego generar asientos contables. Esta implementación facilita la labores a prestadores de servicios contables para simplificar y precisar tareas. Programa: DPIMPXLSLIBC
1612 Mejora el libro de inventario “Programa INVLIBRO”, solicita un nuevo parámetro “Todas las sucursales”, en caso de ser .F. (Falso), solicita el código de la sucursal y genera los resultados y lectura de costos, así mismo fue modificado el programa INVGETCOSTO (Omite filtros por Unidades de medida indefinidas y sucursal indefinida). Los valores del archivo de datos encabezado para crystal LIBROINV_.DBF es creado mediante el programa “CREATEHEAD”
1613 Nuevos campos CAM_FECHA, CAM_HORA y CAM_UPDATE en tablas DPCAMPOS, sus valores se asignan por defecto según Fecha DPFECHA() y hora DPHORA(), estos valores son necesario para realizar los procesos de actualización automática o mediante PLUGIN o Actualización Vía Internet. Formulario DPTABLAS.LBX no utiliza el campo TAB_NUMERO.
El nuevo campo CAM_UPDATE, si es .T. asigna el valor por defecto en todos los casos de inclusión o modificación. Si el programador desea cambiar este valor deberá utilizar la sentencia SQLUPDATE luego de ejecutar function post grabar en el formulario.
12/05/2014
1613 Replanteamiento del programa “EXPORTEJM”, exportar datos para ejemplos, incluye la generación de las tablas DBF en la carpeta EJEMPLO\ contentiva de todas las tablas de base de datos copiadas hacia tablas *.dbf y relacionada con oDp:cDsnData. Este programa es llamado desde EXPORTDSN
12/05/2014
1614 Replanteamiento del programa “EXPORTDSN”, exportar todas las tablas vinculadas con el diccionario de datos y tablas de configuración hacia la carpeta DATADBF\, luego de concluir, ejecuta el programa EXPORTEJM (Exportar Ejemplo). Los programas EXPORTDSN y EXPORTEJM son estándar para todas las aplicaciones. PREPARADBF es propio en cada aplicación. Programa create CREAUPDATE queda sin efecto.
13/05/2014
1615 Máscara Numérica en Formato Español. Formulario configurar empresa, solicita mediante un chekBox el valor de la variable oDp:lSpanish utilizada por la función FDP(nValue,cFormat) para presentar valores numéricos en formato Ingles o español. En la clase TRColumn, fue reemplazado TRAN( por FDP)
13/05/2014
1616 Clase TDPEDIT y TDOCCEN, implementado asignación de Cero hacia la izquierda en campos alfanuméricos vinculados con la tabla de formulario.
13/05/2014
1617 Implementación de encriptamiento de clave, cargo y usuario en la tabla usuarios, la clave y nombre debe poseer más de seis dígitos. El campo OPE_ENCRIP, contiene .T. para los usuarios encriptados y .f. para los usuarios no encriptados. El el usuario no encriptado ingresa al sistema, será enviado hacia el formulario cambio de clave donde será encriptada la clave por razones de incrementar los niveles de seguridad en el sistema. La variable oDp:lUsEncript se inicia con .F. en el programa DPINI, luego que el usuario ingresa determina si la clave está encriptada o no.
14/05/2014
1618 Nuevo programa GETUSERNCRIP(cLogin,cClave), es llamado desde la función ValidUsuario(), ubicada dpwin32.hrb. Este programa se encarga de devolver el número del usuario que está ingresando en el sistema mediante la forma clásica en registros no encriptados, en caso de no se encontrados realiza el desencriptamiento del cursor SQL y realice la búsqueda, devolviendo el número del usuario encontrado según campo “OPE_NUMERO”
14/05/2014
1619 Mejora en programa DPCAMBIOUS, realiza el cambio de clave encriptadas, y registra en la pista de auditorias todas las claves cambiadas por el usuario con el objetivo de no repetir claves, mediante el nuevo campo OPE_FCHCLA se registra la fecha del último cambio de clave para ser evaluados para solicitar Cambios de clave de manera periódica. Las nuevas claves se almacenan en la tabla de DPAUDITORIA y se obtienen mediante la siguiente consulta:
SELECT AUD_CLAVE,AUD_FECHAS,AUD_ESTACI,AUD_IP FROM DPAUDITORIA WHERE
AUD_TIPO=”CCLA”
GROUP BY AUD_CLAVE,AUD_FECHAS
14/05/2014
1620 Nuevo Campo Lógico OPE_ALLPC, en tabla DPUSUARIOS, permite indicar si el usuario accede a todos los PC, en caso de ser negativo, al finalizar el formulario se ejecuta el la opción “Autorizar PC para el Usuario”, donde se muestra todos los PC conocidos por sistema mediante la tabla “DPPCLOG” para que el usuario seleccione los PC donde el usuario creado puede acceder al sistema.
El programa de menú “privilegios de usuarios”, incluye dos nuevas opciones: Empresa de acceso al usuario y PC de acceso al usuario.
14/05/2014
1621 Nueva función OPE NOMBRE(Número) en dp win32.hrb., devuelve el nombre del usuario desencriptado. Logra simplifica la implementación de encriptación de claves y nombre de usuarios.
// Código Clasico
AADD(aClasifica,{oTable:OPE_NUMERO,IF(otable:OPE_ENCRIP,;
ENCRIPT(oTable:OPE_NOMBRE,.F.),oTable:OPE_NOMBRE) ,;
oEmpXusu:EXU_SELECT})
// Código con función OPE_NOMBRE()
AADD(aClasifica,{oTable:OPE_NUMERO,OPE_NOMBRE(oTable:OPE_NUMERO),;
oEmpXusu:EXU_SELECT})
15/05/2014
1622 Nuevo método ShowMsg(cToolTip) ,en clase TCONTROL, permite indicar un mensaje al estilo tooltip en la parte inferior de cada control. Esta funcionalidad permite indicar un mensaje temporal cuando se realiza una validación y cuando su valor es negado, mostrar en mensaje directamente sobre el control facilitando la ubicación visual por parte del usuario y evitando utilizar la función MensajeErr() que requiere cambiar visualmente la orientación del usuario sin indicar el control que realiza la validación. Su aplicación se realiza mediante el siguiente ejemplo:
@ 04,01 SAY “Clave”
@ 05,01 GET oCamUsu:oClaveNue VAR oCamUsu:cClaveNue PASS
@ 6,07 BUTTON oCamUsu:oRun PROMPT “Cambiar “;
ACTION oCamUsu:USCAMBIAR(oCamUsu)
RETURN
*/
// Cambiar
*/
FUNCTION USCAMBIAR(oCamUsu)
LOCAL cNumero:=””
cNumero:=EJECUTAR(“GETUSERNCRIP”,oDp:cUsNombre,oCamUsu:cClaveAnt)
IF Empty(cNumero)
oCamUsu:oClaveAnt:ShowMsg(“Clave no Corresponde al Usuario “+CRLF+;
oDp:cUsNombre,oCamUsu:oClaveAnt)
RETURN .F.
ENDIF
RETURN .F.
15/05/2014
1623 Mejora en programa DPCAMBIOUS, cambio de clave, incluya funcionalidad de lograr cambiar claves de los usuarios encriptadas y validar que las claves no sean repetidas.
15/05/2014
1623 Nuevo método ShowMsg(cToolTip) ,en clase TDPEDIT, permite indicar un mensaje de tipo tooltips en un control cuando se aplica la cláusula VALID en un control. Muestra el mensaje en la parte inferior del control y su contenido es removido cuando se focaliza cualquier control del formulario. Para remover el mensaje es necesario utilizar en método oFrm:DestroyToolTip()
@ 02,01 SAY “Clave Actual”
@ 03,01 GET oNewCla:oClaveAnt VAR oNewCla:cClaveAnt PASS;
VALID oNewCla:VALCLAVE()
FUNCTION VALCLAVE()
LOCAL cNumero:=””,
cNumero:=EJECUTAR(“GETUSERNCRIP”,oDp:cUsNombre,oNewCla:cClaveAnt)
IF Empty(cNumero)
oNewCla:ShowMsg(“Clave no Corresponde al Usuario “+CRLF+oDp:cUsNombre,;
oNewCla:oClaveAnt)
RETURN .F.
ENDIF
oNewCla:DestroyMsg() // Si el programador no lo cierra, el formulario los
// cierra al finalizar.
RETURN .T.
La ventaja entre el método ShowMsg() en el formulario es su aplicación en la clausula VALID, y cuando se aplica directamente sobre el control es para procesos de programar derivado de un botón.
15/05/2014
1624 Nuevo método DestroyMsg() ,en clase TDPEDIT, permite remover el mensaje previamente creado mediante oNewCla:ShowMsg
15/05/2014
1625 Definición de Colores para ShowMsg(), en el programa DPINI
oDp:nMsgToolClrText :=CLR_WHITE
oDp:nMsgToolClrPane :=9984315
16/05/2014
1626 Asignación de horarios de los accesos al sistema desde el diccionario de datos y removido del programa DPUSUARIOS. Cuando se ingrese un nuevo usuario asumirá el horario desde el diccionario de datos. Para realizar un cambio directo desde la base de datos, se debe utilizar esta instrucción:
// Ingreso AM
UPDATE DPCAMPOS SET CAM_DEFAUL=”00:00″
WHERE CAM_NAME LIKE “%OPE_%” AND CAM_NAME LIKE “%AIN%” AND CAM_TYPE=”C”
// Ingreso PM
UPDATE DPCAMPOS SET CAM_DEFAUL=”01:00″
WHERE CAM_NAME LIKE “%OPE_%” AND CAM_NAME LIKE “%PIN%” AND CAM_TYPE=”C”
// Salida PM
UPDATE DPCAMPOS SET CAM_DEFAUL=”12:59″
WHERE CAM_NAME LIKE “%OPE_%” AND CAM_NAME LIKE “%AFI%” AND CAM_TYPE=”C”
// Salida PM
UPDATE DPCAMPOS SET CAM_DEFAUL=”12:59″
WHERE CAM_NAME LIKE “%OPE_%” AND CAM_NAME LIKE “%PFI%” AND CAM_TYPE=”C”
16/05/2014
1627 Nuevo Campo lógico PRC_ALLUSE “Todos los usuarios”, en tabla DPPROCESOS, se debe indicar cuando el proceso debe ser ejecutado para todos los usuarios y sin necesidad de activar el proceso por usuarios.
17/05/2014
1627 Nuevo proceso automático “USUARIOCLAVEVENC”, determina el tiempo de vigencia del ultimo fecha de cambio de clave del usuario según el campo OPE_FCHACT y la variable nDias. Si la fecha de clave supera el tiempo indicado en nDias, emite un mensaje de advertencia indicando que la clave ha concluido, Se ejecuta el programa cambio de usuario en forma MODAL para que el usuario realice el cambio de clave, en caso de no realizarlo el sistema será cerrado. Este proceso se incluye en condición Inactiva.
// Proceso USUARIOCLAVEVENC
#INCLUDE “DPXBASE.CH”
PROCE MAIN(uPar)
LOCAL nDias :=30
LOCAL dFecha:=DPFECHA()-nDias
IF COUNT(“DPUSUARIOS”,”OPE_NUMERO”+GetWhere(“= “,oDp:cUsuario)+” AND “+;
“OPE_FCHACT”+GetWhere(“>=”,dFecha))>0
MensajeErr(“la Clave de Acceso ha concluido, es necesaria una nueva Clave”)
EJECUTAR(“DPCAMBIOUS”,.T.)
ENDIF
RETURN .T.
18/05/2014
1628 Nuevo programa BROPECLAVES, ejecutado desde el Menú consultar Usuario, muestra todas las claves que ha registrado el usuario.
18/05/2014
1629 Nueva función WHEREGET(uValue,cOperator), construye una sentencia Where usando un valor y un operador, cuando el operador es omitido se asume el operador “=”, si el operador es LIKE se agrega los símbolos % antes de después del valor “uValue”.
Con WHEREGET
aCampos:=ASQL(” SELECT CAM_NAME,CAM_DEFAUL FROM DPCAMPOS “+;
” WHERE CAM_NAME” +WhereGet(“OPE_”,”LIKE”)+;
” AND CAM_TYPE” +Whereget(“C” )+;
” AND CAM_TABLE” +WhereGet(“DPUSUARIOS” )+;
” AND CAM_DEFAUL”+WhereGet(“”,”<>” ))
CoN GETWERE
aCampos:=ASQL(” SELECT CAM_NAME,CAM_DEFAUL FROM DPCAMPOS “+;
” WHERE CAM_NAME” +GetWhere(” LIKE”,”%OPE_%” )+;
” AND CAM_TYPE” +GetWhere(“=” ,”C” )+;
” AND CAM_TABLE” +GetWhere(“=” ,”DPUSUARIOS” )+;
” AND CAM_DEFAUL”+GetWhere(“<>” ,”” ))
18/05/2014
1630 Nuevo campo lógico OPE_FILTRO, en tabla DPUSUARIOS, indica si para el usuario aplica los filtros por sucursal. En caso que sea .F. (No aplica filtros) , podrá acceder a toda los registros que están filtrados por sucursal y registrados previamente en la tabla DPTABXSUC. Caso de usuarios con clientes, proveedores y productos asignados por sucursal y deseas acceder a toda la información sin necesidad de seleccionar sucursal por sucursal.
19/05/2014
1631 Nueva variable oDp:aMySql, contiene lista de todos los objetos de conexión MySQL abiertos mediante el programa MYSQLSTART. La función SALIR() utilizada por el sistema cuando se finalizar su ejecución por cualquier motivo realiza el cierre de las conexiones abiertas con la base de datos.
20/05/2014
1632 Nueva variable oDp:aMySql, contiene lista de todos los objetos de conexión utilizados mediante el programa MYSQLSTART
20/05/2014
1633 Mejora en programa MYSQLSTART, se incluye en el arreglo oDp:aMySql un tercer elemento “Tiempo” medido en segundos, en caso que la conexión está paralizada por cinco minutos, la Conexion MySQL será borrada y será recolectada debido a que los servidores MYSQL remotos desconectan a los usuarios fríos.
22/05/2014
1633 Nuevo archivo de programas dpwin32v5x.hrb contiene funciones extraídas de la versión 6.0 necesarias para la recopilación de la versión 5.x. Caso de las claves encriptados en el modulo dpwin32.hrb
27/05/2014
1634 Nuevo programa VALCLAVE, ejecutado desde DPUSUARIOS “Crear Usuarios” y DPCAMBIOUS “Cambio de Usuarios”, Valida el usuario y clave del usuario mediante las siguientes condiciones:
- Usuario y Clave no pueden ser iguales
- Clave no puede ser totalmente numérica (1234) ni totalmente alfabética (ABCD), deben ser la combinación de números y caracteres.
Junio
06/06/2014
1635 Nuevo Programa BRSERXCLI (Seriales por Cliente)creado mediante BRWMAKER, incluya las funcionalidades de rango por fecha, consulta de documento de venta, ficha del cliente y ficha del producto. Reemplaza al Programa DPSERXLI.
Este programa es ejecutado desde Inventario, Otros, Seriales Egresados.
13/06/2014
1636 Nueva tabla DPDOCCLINUM, fue creada para generar los documentos correlativos por sucursal y tipo de documento. Se ejecuta desde el Menú de tipo de documentos del clientes y su objetivo es la relación con la tabla DPDOCCLI para determinar registros faltantes en la tabla DPDOCCLI. Esto con la finalidad de determinar remoción de registros intencionales en esta tabla.
Mediante el programa BRDOCNUM, se muestran todos los registros faltantes.
SELECT DCN_NUMERO FROM DPDOCCLINUM
LEFT JOIN DPDOCCLI ON DCN_CODSUC=DOC_CODSUC AND
DCN_TIPDOC=DOC_TIPDOC AND
DCN_NUMERO=DOC_NUMERO AND
DOC_TIPTRA=”D”
WHERE DOC_NUMERO IS NULL
ORDER BY DOC_NUMERO
23/06/2014
1636 Nueva Carpeta DPSTD contiene lista de los archivos de los componentes estándar del sistema. Esta funcionalidad es exclusiva para licencias en modo estándar “Sin arquitectura abierta”, lo cual no requiere el uso de las carpetas: DPXBASE,SCRIPT ni FORMS.
dpbrw.brwi
dpbrw.brwx
dpdxb.dxbi
dpdxb.dxbx
dpedt.edti
dpedt.edtx
dplbx.lbxi
dplbx.lbxx
dpscg.scgi
dpscg.scgx
24/06/2014
1637 Migración del plan de cuentas hacia las NIFF.
- Se creó la variable oDp:cCtaTip que indica si el plan de cuentas que será utilizado es Clásico o NIFF-VEN. El sistema obtiene este valor del campo EJE_TIPO de la tabla DPEJERCIOS.
- En la Tabla DPCTA se creó el campo CTA_TIPO que indica el tipo Clásico o NIFF. Mediante el programa SQLDBUPDATE Se asigna por defecto el valor “C” de clásico.
- En la tabla DPEJERCICIOS se creó el campo EJE_TIPO, con la misma Funcionalidad Clásico o NIFF.
- El plan de cuentas se mantiene en la misma Tabla para mantener los resultados contables de los ejercicios anteriores que fueron realizados mediante las Cuentas clásicas. El plan de cuentas se presentará mediante la condición CTA_TIPO=oDp:cCtaTip, variable que lee de la tabla DPEJERCICIOS y este valor se genera mediante proceso de Conversión DPCTASETNIFF
- El nuevo campo CTA_NOMBRE contiene el nombre de la cuenta clásica copiada del campo CTA_DESCRI. Así se mantienen los nombres de las cuentas en los estados financieros Clásicos o Antes de la migración hacia las NIFF
Julio
03/07/2014
1638 Removidos las tablas DP\DPCTA*.* hacia DPCTAS\, con el objetivo de dejar la carpeta dp\ exclusivamente para datos del sistema. El programa DPCTAIMPORT, utiliza esta nueva carpeta y valida la existencia de los archivos.
03/07/2014
1638 Removidos las tablas DP\DPCTA*.* hacia DPCTAS\, con el objetivo de dejar la
06/07/2014
1639 Nueva función GETLIMITREC(cSql), devuelva en número referente a cantidad de registro limitados previamente por la función SETLIMITREC(cTable,nLimit).
06/07/2014
1640 Nueva función SETLIMITREC(cTable,nLimit), asigna la cantidad de registro que serán obtenidos desde una consulta SQL mediante la clase ttable, ejemplo:
SETLIMIT(“DPUSUARIOS”,1)
? GETLIMITREC(“DPUSUARIOS”) // Muestra 1
OpenTable(“SELECT * FROM DPUSUARIOS”:BROWSE() // Solo Muestra un Registro
? oDp:cSql // Muestra : SELECT * FROM DPUSUARIOS LIMIT 1
08/07/2014
1641 Limitaciones en tipo de documentos de cliente y proveedores, los formularios LBX limitan el uso del botón incluir debido a que no se puede crear modelos de documentos que requieren formularios disponibles o clonados desde DPDOCPROFAC.EDT y DPDOCPROFAC.BRW
08/07/2014
1642 Unificación del nombre de los formularios en documentos (Facturas) del cliente (DPDOCCLI), desde la versión 6.0 , todos los formularios se denominan DPDOCCLI_.EXT, ejemplo:
DPDOCCLI_FAV.EDT
DPDOCCLI_FAV.SCG
DPDOCCLI_FAV.BRW
08/07/2014
1643 Muestra en documentos de ventas y documentos vinculados con libros de venta, visualiza el número de control fiscal, campo
DOC_NUMFIS
IF oDocCli:lPar_LibVta
@ 1,60 SAY “# Fiscal:” RIGHT
@ 3,80 SAY oDocCli:oDOC_NUMFIS PROMPT oDocCli:DOC_NUMFIS
ENDIF
10/07/2014
1644 Nuevo modelo de archivos para factura de compras
cFileEdt:=”DPDOCPRO_FAC.EDT”
cFileScg:=”DPDOCPRO_FAC.SCG”
cFileBrw:=”DPDOCPRO_FAC.BRW”
A partir de estos archivos se utilizarán para copiar el modelo hacia un nuevo tipo de documento de compra. Cuando el sistema se instala solo provee estos archivos para documentos de compras. Para las licencia estándar, sólo será utilizado la lista de archivos DPDOCPRO_FAC.EDT,DPDOCPRO_FAC.SCG y DPDOCPRO_FAC.BRW para todos los tipos de documentos.
10/07/2014
1645 Nuevo modelo de archivos para factura de ventas
cFileEdt:=”DPDOCCLI_FAV.EDT”
cFileScg:=”DPDOCCLI_FAV.SCG”
cFileBrw:=”DPDOCCLI_FAV.BRW”
A partir de estos archivos se utilizarán para copiar el modelo hacia un nuevo tipo de documento de ventas. Cuando el sistema se instala solo provee estos archivos para documentos de ventas. Para la licencia estándar, solo será utilizado la lista de archivos DPDOCCLI_FAV.EDT,DPDOCCLI_FAV.SCG y DPDOCCLI_FAC.BRW para todos los tipos de documentos.
24/07/2014
1646 Mejora en Programa “ADJCONTROL”, incluye nuevo parámetro lógico lAll, si es .t. permite desplazar todos los controles indicados dentro del diálogo Contentivo del formulario de extensión .EDT.
24/07/2014
1647 Mejora en Programa “DPDOCCLIMNUIMP” Importar Documentos del Cliente, al finalizar el proceso de importación, busca en la tabla dpdocclidir los “otros datos del documento Original” y los duplica en el documento destino”, ejemplo: logrando clonar en la factura de venta los datos del pedido.
27/07/2014
1648 Mejora en Clase tRddArray():New(aData,cTitle,lMdi), incluye nuevo parametros:
Título y Tipo de ventana MDI (.t.) o Dialogo (.f.). Igualmente el método Browse() de la clase ttable: lOrder,cTitle,lMdi. ejemplo:
OpenTable(“SELECT * FROM DPCTA”):Browse(.F.,”Vista de Cuentas”,.T.)
27/07/2014
1649 Nuevo Programa: VIEWVISTA, permite visualizar desde una ventana MDI la consulta del contenido de una vista. Es llamado desde el botón browser del archivo dpvistas.lbx.
27/07/2014
1650 Mejora en método browser() de la Clase tRddArray(), incluye barra de botones con las funcionalidades: Preview, Buscar, Salida hacia Excel, Salida hacia HTML. Además presentación al estilo Cebra color intercalado mediante la definición de las variables:
DEFAULT oDp:nClrPane1:=15790320,;
oDp:nClrPane2:=14671839
27/07/2014
1651 Nuevo Índice DPDOCPRO6 en tabla DPDOCPRO, Optimiza el cálculo de las Cuentas por pagar siempre y cuando las condiciones del Where se indique según la secuencia de los siguientes campos:
Optimiza CxP por Documento
DOC_CODSUC,DOC_CODIGO,DOC_CXP,DOC_ACT,DOC_FECHA
Optimiza CxP por Proveedor
DOC_CODSUC,DOC_CODIGO,DOC_CXP,DOC_ACT
27/07/2014
1652 Nueva Vista: DE DOCPROC XP, contiene el resumen del saldo pendiente de cada documento del Proveedor según su último estado conocido. Esta vista permite ser enlazada con la consulta SQL utilizada por el programa DPCBTEPAGOX para solo presentar documentos pendientes cuando el usuario realiza cambio de fecha del sistema hacia períodos anteriores
27/07/2014
1653 Mejora en Comprobante de Pago, en el folder “Documentos” incluye cuatro nuevas columnas informativas por cada documento:
- Base Imponible
- Monto del IVA
- Retención de IVA
- Retención de ISLR
Agosto
09/08/2014
1654 Nueva tabla DPCTAMODCREA, contiene los diferentes modelos de plan de cuentas, su acceso se realiza mediante la aplicación de contabilidad, ficheros, “Modelos de plan de cuentas”. mediante el programa DPCTAMODCREA se crean dos modelos de plan de cuentas
000000 Se refiere al plan de cuentas clásico y se genera en caso que en la tabla DPCTA estén registrados más de dos cuentas contables.
000001 Referencia al plan de cuentas NIF-VEN
El sistema asume como modelo de plan de cuentas en valor menor indicado en esta tabla mediante la variable: oDp:cCtaMod Seguidamente asigna este valor en las siguientes relaciones DPEJERCICIOS mediante el campo EJE_CTAMOD
DPCTA mediante el campo CTA_CODMOD
DPASIENTOS mediante el campo MOC_CTAMOD
Luego de este proceso de asignación, se generan las condiciones para la integridad referencial de la tabla DPCTAMODCREA con todas las demás tablas vinculadas al plan de cuentas.
El programa FCH_EJERGET, lee el tipo de modelo de cuenta que corresponde al ejercicio según la fecha (desde y Hasta del Ejercicio)
09/08/2014
1655 Nuevo method GetWhere() en clase ttable, devuelve la cláusula where según todos los campos y valor del registro focalizado. Esta funcionalidad permite ejecutar la función UPDATE(,,,otable:GetWhere())
10/08/2014
1656 Nuevo programa DPMODCTALNK, realiza el replanteamiento de las relación entre la tabla DPCTAMODELO con DPCTA con las tablas relacionadas con DPCTA, ahora la relación queda:
DPCTA (CTA_CODMOD,CTA_CODIGO) con las demás tablas de movimientos, ejemplo:
Asientos Contables se relacionan mediante MOC_CTAMOD,MOC_CUENTA Las demás tablas maestras se relacionan mediante nueva tabla asociada.
DPCLIENTESCTA con DPCTA
Realiza el cambio de estructura de la tabla y asigna el valor oDp:cCtaMod en el nuevo campo (nnn_CTAMOD)
10/08/2014
1657 Nuevo campo EMP_MYSQLV, en tabla DPEMPRESA, contiene la versión de MySQL cuando fue creada el registro, si el valor de este campo está vacío, es ejecutado el programa DPSQLBINTONUM, para convertir los campos lógicos.
12/08/2014
1658 Nueva función DPTRUNCATE(nValor,nDec) en dpwin32.hrb, trunca los decimales según posición indicada en nDec, su valor por defecto es 2. Ejemplo:
DPTRUNCAR(100.123,2), Resultado es 100.12
Aplicación en el recibo de ingreso para evitar las incidencias por fracciones no visibles o -0.00
// 12/08/2014
oCliRecX:REC_PAGOS:=DPTRUNCATE(oCliRecX:REC_PAGOS,2)
oCliRecX:REC_MONTO:=DPTRUNCATE(oCliRecX:REC_MONTO,2)
15/08/2014
1659 Nuevo programa BCVINPCFORM, contiene el formulario que solicita la dirección URL del archivo Excel desde la pagina web del www.bcv.gov.ve y la carpeta
local de descarga. Mediante el programa BCVINPC se realiza la ejecución URL
del archivo Excel, el sistema busca el archivo en la carpeta de descargas y
finalmente realiza la lectura y actualización de registros en la tabla DPIPC.
Al finalizar el proceso se muestra el formulario DPIPC.LBX
15/08/2014
1660 Nuevo parámetro lógico GOBOTTOM en archivo LBX, permite indicarle al formulario que muestre el browser con los datos finales de la tabla. Ejemplo:
GOBOTTOM:=.T.
Referencia DPIPC.LBX
17/08/2014
1661 Mejora en ingreso al sistema mediante usuario y Clave. El sistema validará mayúsculas y Minúsculas, el usuario debe ingresar con los datos de manera exactamente como están registrados en la tabla dpusuarios.
19/08/2014
1662 Implementación de Macro Ejecución en cláusula Where en formularios *.LBX, Ejemplo: Enlazar código de integración contable con código de transacciones
DPINVTRAN
TITLE :={oDp:DPINVTRAN}
TABLE :=DPINVTRAN
SELECT :=TAB_CODIGO,TAB_DESCRI,CIC_CUENTA
INNER :=”LEFT JOIN DPINVTRANCTA ON TAB_CODIGO=CIC_CODIGO AND CIC_CTAMOD”+GetWhere(“=”,oDp:cCtaMod)
20/08/2014
1663 Tabla DPFERIADOS, se crea en la Base de datos .CONFIGURACION (Configuración del Sistema)
21/08/2014
1664 Nuevo tipo de documento para Compras “CPT” Cuentas por Pagar a Terceros, este documento aplica el mismo procedimiento que los reintegros de compra, solicita los datos de las diferente facturas de compra, aplica para los casos de pagos a terceros como por ejemplo: CORPOELEC quien realiza el cobro de diferentes servicios de varios proveedores.
22/08/2014
1665 Nuevo campo RTI_RIF en tabla DPDOCPRORTI, utilizado en el programa DPDOCPRORTISAV para calcular retención de IVA en proveedores de código cero, necesario para el incrementador exclusivo por proveedor. En la tabla DPDOCPRO el campo DOC_FACAFE es utilizado para guardar el RIF necesario para diferenciar los documentos proveedores de código Cero.
24/08/2014
1666 Nuevo programa “TXTTOTABLAS”, actualiza el diccionario de datos (DPCAMPOS) mediante la estructura indicada en el archivo ubicado en struct\ con el objetivo de facilitar la instalación de programas de tipo PLUG-IN contentivo de nuevos componentes que requiere nuevos campos, evitando que el usuario realice reinstalación del sistema o importación de tablas. Este programa es utilizado en el programa SETCODPROREINT que se encarga de migrar los reintegros de compras hacia documentos de compras y cuentas por pagar en la tabla “DPDOCPRO”, sintaxis:
EJECUTAR(“TXTTOTABLAS”,)
Ejemplo:
EJECUTAR(“TXTTOTABLAS”,”DPDOCPROCTA”)
27/08/2014
1667 Nuevo parámetro oControl en programa REPBDLIST(), permite ajustar visualmente la ventana de diálogo y Browser debajo del control “GET/BMPGET”, además asigna el valor seleccionado a la variable del Control. Ver programa TEST2
27/08/2014
1668 Mejora en Programa REPBDLIST, Cuando la Cláusula lGroup, es .T. asume como campo de agrupación el campo indicado en el parámetro cOrderBy, su el campo cOrderBy es omitido asume el primer campo de la lista. Este requerimiento se aplica cuando la consulta SQL requiere la Sentencia GROUP BY, ejemplo:
SELECT CCD_CODCTA,CTA_DESCRI,CCD_TIPIVA,SUM(CCD_MONTO) AS CCD_MONTO,COUNT(*)
FROM DPDOCPROCTA
INNER JOIN DPCTA ON CCD_CODCTA=CTA_CODIGO
WHERE CCD_CODSUC=’000001′
GROUP BY CCD_CODCTA ORDER BY CCD_CODCTA
27/08/2014
1669 Mejora en Programa “DPDOCPROREIN” quien solicita los datos RIF y nombre de proveedor del reintegro. Si el RIF es numérico, complementará con cifra de 8 dígitos precedidos de la letra V, con el objetivo de hacer búsqueda LIKE% en la tabla dpproveedorcero y dpproveedor evitando recurrir al portal del Seniat.
Igualmente valida que el número de factura y Número fiscal (No estén registrados en otro reintegro), ni registrado en una factura de compra.
27/08/2014
1670 Mejora en Programa “LBXINIGET” posiciona el formulario, debajo el control GET/BMPGET, necesario para introducir las iniciales de búsqueda según la tabla asociada al formulario DPLBX. Requiere Binario V6.0
28/08/2014
1671 Nuevo Programa DPEDITPROVCERO, edita los datos del proveedor de código cero y solicita RIF,NOMBRE y DIRECCION validado en el portal del Seniat. Este programa se ejecuta desde el programa DPDOCCXP y DPDOCPRO cuando se solicita el código del proveedor. Al finalizar el documento FUNCTION POSTGRABAR se ejecuta el programa DPPROCEROGRAB quien realiza el registro en la tabla DPPROVEEDORCERO
29/08/2014
1672 Nuevo campo DOC_RIF en tablas DPDOCPRO, necesario para registrar el número del proveedor (cero) y validar que no pueda incluir más de un documento de compra.
30/08/2014
1673 Nueva función ADEPURA(aArray,bBlq), remueve del arreglo los elementos vacíos o el arreglo multidimensional cuyo elemento (1) está vacío.
Si el valor de bBlq es omitido, será asumido:
Si el arreglo es unidimensional: {|a,n| Empty(a)}
Si es multidimensional : {|a,n| Empty(a[1])}
Según sea el caso el usuario podrá modificar las condiciones del bloque de código como por ejemplo remover los elementos según valor, ejemplo:
LOCAL aLista:=ARRAY(20)
AEVAL(aLista,{|a,n| aLista[n]:=n })
ViewArray(aLista) // Muestra 20 elementos
ADEPURA(aLista,{|a,n| a>10})
ViewArray(aLista) // Muestra 10 elementos.
Septiembre
01/09/2014
1674 Nuevo programa DPAUDITAEMC, es ejecutado desde las opciones de consulta de las tablas DPINVCON (Productos) y presenta lista de todos los campos de la tabla y marca los campos que son editables según el formulario de edición (Caso programas DPINV mediante el Objeto oDPINV y campos indicados en el formulario DPINV.SCG utilizado por la clase TSCROLLGET). El formulario cuenta con el botón browser que ejecuta el programa BRDPAUDITAEMC que se encarga de mostrar todos los cambios registrados en la tabla DPUADITAELIMOD y vinculados con la Tabla DPINV y el registro que está en consulta. El programa DPAUDITAEM realiza el proceso de lectura de registros y búsqueda de los cambios en cada Transacción.
Re requiere optimizar la tabla DPAUDITAELIMOD mediante el índice:
AEM_TABLA,AEM_CLAVE,AEM_FECHA
Forma de Implementación
DEFINE BITMAP OF OUTLOOK oMdiCli:oOut ;
BITMAP “BITMAPS\AUDITORIA.BMP” ;
PROMPT “Auditoría por Campo” ;
ACTION
EJECUTAR(“DPAUDITAEMC”,oMdiCli:oFrm,”DPCLIENTES”,;
“DPCLIENTES.SCG”,oMdiCli:cCodCli,oMdiCli:cNombre)
01/09/2014
1675 Mejora en BRWMAKER, incluye nuevo botón “crystal”, mediante el nuevo programa “BRWTODBF” genera un archivo temporal de formato DBF contentivo de todos los datos del Browser. El nombre del archivo DBF temporal y formato crystal es asumido según el nombre del archivo de controles (.EDT), Ejemplo:
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\CRYSTAL.BMP”;
ACTION EJECUTAR(“BRWTODBF”,oDPAUDITAEMC)
oBtn:cToolTip:=”Visualizar Mediante Crystal Report”
Así mismo genera tabla contentiva del entorno de la empresa mediante el archivo de cabecera y ejecución del programa
EJECUTAR(“CREATEHEAD”,cFileHead,{},cTitle)
cFileHead contiene el mismo nombre de la tabla DBF con el sufijo “_” que permite asociar los nombres de ambos archivos para el diseño y ejecución del Archivo Crystal “Extensión CRP”.
Parámetros:
BRWTODBF(oFrm,oBrw,cTitle,cFileDbf,cFileCrp)
Obtiene del formulario dos variables cCodigo y cNombre, (condicionadas), con el objetivo de indicar el formato el código y nombre del registro (Encabezado) que hace mención al browser, ejemplo:
Código del producto y Nombre del producto.
03/09/2014
1676 Replanteamiento en programa VIEWAUDITOR, ahora ejecuta el programa BRDPAUDITOR creado mediante BRWMAKER incrementando sus funcionalidades (Salida XML, Crystal, Pre visualización) y mayor uso del Filtro por Fecha.
03/09/2014
1677 Implementación de registro de pista de auditoría en formulario DPCONFIG (Configurar la empresa), debido a que este formulario no está vinculado ninguna tabla específica , sus valores se almacenan en la tabla DPDATASET. Los cambios de valores se obtienen directamente de la tabla DPDATASET y se guardan en la tabla DPAUDITAELIMOD mediante la denominación CONFIGEMP. Así mismo debido a la carencia de campos, el nombre de los mismos se obtienen del archivo DP\CONFIGEMP.TXT
15/09/2014
1678 Asignación del Valor por defecto “&oDp:cSucursal” en todos los campos “%_CODSUC%” tabla dpcampos, mediante programa “SQLDB_UPDATE”, tablas DPACTIVOS y DPDEPRECIAACT, ya incluyen campo ATV_CODSUC y DEP_CODSUC, el programa SQLDB_UPDATE, asigna el valor de la sucursal activa por defecto. De esta manera cada sucursal podrá registrar activos de manera independiente, calcular: Depreciación y Ajuste por Inflación, logrando la funcionalidad del sistema “Multiempresa Consolidada”.
15/09/2014
1679 Nuevo programa “DPSETLINKSUC”, facilita la implementación de sucursal en cualquier tabla mediante la siguiente declaración :
AADD(aTablas,{“DPACTIVOS” ,”ATV_CODSUC”,.T.})
AADD(aTablas,{“DPDEPRECIAACT”,”DEP_CODSUC”,.T.})
Actualiza el diccionario de datos y los vínculos entre las tablas con DPSUCURSAL. Este programa es ejecutado desde : SQLDB_UPDATE
16/09/2014
1680 Nueva funcionalidad Consultar Archivos adjuntos desde las opciones de Consulta en todas las tablas vinculadas con Digitalización.
Octubre
05/10/2014
1681 Nuevo campo LNK_VIRTUA, permite indicar si la relación entre las tablas es Virtual o sin integridad referencial. Las relaciones virtuales son utilizadas por el diccionario de datos para generar código fuente de formularios y relaciones de tablas en los reportes.
06/10/2014
1682 Nuevo Programa DPOPTIMIZARFCH , Lee el diccionario de datos (DPCAMPOS) ubica los campos con denominación %FECHA y de Tipo Fecha y crea una nueva tabla de índices denominada FECHA. Este índice es necesario para optimizar los procesos de obtención de datos mediante el intervalo de fechas. El acceso de Este programa se realiza desde el botón INDICE del formulario DPMODSOLRUN.
Este programa agrega tres nuevos campos en cada tabla con el objetivo de conocer cuales son las transacciones nativas del sistema y las originadas o creadas mediante un proceso de transferencia de datos:
AADD(aFields,{“FECHA”,”D”,8,”Fecha de Registro/Actualización”,”&DPFECHA()”})
AADD(aFields,{“HORA” ,”C”,8,”Hora de Registro/Actualización” ,”&DPHORA()”})
AADD(aFields,{“ORGRMT”,”L”,1,”Origen Remoto” ,”.F.” })
Para garantizar las consistencia de los resultados derivados de las transacciones, el proceso de importación de datos debe remover todos los registros de transacciones previamente importadas en el mismo periodo. Para evitar inconsistencia según el siguiente caso:
Se ejecuta el proceso de importación de factura de venta de una semana, el usuario podrá modificar la factura “00001”, agregando nuevos ítems, eliminando o modificando los existentes. Si el usuario ejecuta nuevamente el proceso de importación del mismo periodo, la factura “00001” estará compuesta por transacciones nativas e importadas y su resultado será inconsistente.
09/10/2014
1682 Cambio de nombre SQLDB_UPDATE por SQLDB_PREUPDATE, se ejecuta previamente al procesos de actualización de estructura de dato, mediante:
DsnCheckTable(cDsn,oMeter,aDsn,lIntRef)
Recibe dos parámetros:
cDsn : (Nombre de la Base de datos)
lTablesNew:(Indica si se inicia con o sin tablas, cuando su valor es verdadero, se refiere a la creación de una Base de datos y no requiere la Ejecución de procesos de actualización.)
09/10/2014
1682- Cambio de nombre SQLDB_UPPOST por SQLDB_POSTUDAT, se ejecuta luego que el sistema ha creado la estructura de las tablas, mediante:
DsnCheckTable(cDsn,oMeter,aDsn,lIntRef)
Recibe dos parámetros:
cDsn : (Nombre de la Base de datos)
lTablesNew:(Indica si se inicia con o sin tablas, cuando su valor es verdadero, se refiere a la creación de una Base de datos y requiere requiere la ejecución de procesos de inserción de registros necesarios para la ejecución financiera.)
13/10/2014
1683 Nuevo programa BRCXCSUCCLI, presenta resumen de CxC por Sucursal del Cliente.
Es llamado desde consultar clientes, incluye dos botones:
- Consultar el estado de cuenta según sucursal localizada.
- Crear recibo de ingreso, ejecuta el programa DPRECIBOSCLI en modo de inclusión, carga los documentos del cliente vinculados según la sucursal del cliente focalizado.
13/10/2014
1684 Nuevo campo “DEP_TIPTRA”, tabla DPDEPRECIAACT, “Depreciacion de Activos”, su El valor por defecto es “D” de depreciación. Se incluye una nuevas transacciones:
“V” valor del Activo donde se incluye “El Valor del Activo” según la fecha de adquisición. Valor Positivo.
“I” Datos iniciales donde se almacenan el valor de la depreciación acumulada, el monto de Ajuste por Inflación Fiscal y el monto del Ajuste por inflación Financiera con su respectiva fecha. Con el objetivo que el sistema inicie los cálculos de Depreciación, Ajuste Fiscal y Ajustes Financiero utilizando una sola tabla y el proceso se realicen mediante barrida o ejecución cronológica y que se permita obtener el valor según fecha de un activo con tan solo una consulta SQL.
Nuevo campo : DEP_SIGNO, indica si el valor del registro es positivo 1 o negativo -1.
Valor Histórico
SELECT DEP_CODACT,
SUM(DEP_MONTO*DEP_SIGNO) AS DEP_MONTO
FROM DPDEPRECIAACT
INNER JOIN DPACTIVOS ON ATV_CODIGO=DEP_CODACT
GROUP BY DEP_CODACT
Valor con re-expresiones
SELECT DEP_CODACT,ATV_DESCRI,
SUM(DEP_MONTO*DEP_SIGNO) AS DEP_MONTO,
SUM(DEP_MTOFIS) AS DEP_MTOFIS,
SUM(DEP_MTOFIN) AS DEP_MTOFIN
FROM DPDEPRECIAACT
INNER JOIN DPACTIVOS ON ATV_CODIGO=DEP_CODACT
GROUP BY DEP_CODACT
14/10/2014
1685 Mejora en Programa ACTIVOS
Se creó una nueva pestaña denominada “Datos Iniciales” donde se incluyen los valores del Activo que fueron calculados antes de ser ingresados en AdaptaPro.
Meses Depreciados: Indica la cantidad de meses que ya fueron calculados desde la fecha de la primera deprecación.
Depreciación Acumulada: Acepta el monto de la depreciación que ya fue calculada antes de ser ingresada en el sistema. El campo ATV_DEPACU es removido físicamente de la tabla DPACTIVOS (desde la nueva versión 6.) y sigue siendo utilizando desde formulario de Activos como un campo virtual y su contenido se almacenan en la tabla de depreciaciones identificado mediante tipo de transacción “Inicial”.
Re expresión fiscal: es el monto calculado previamente para el ajuste fiscal financiero. Campo Virtual en el formulario ATV_MTOFIS
Re expresión financiero: Se refiere al monto de re expresión calculado para el ajuste por inflación financiero. Campo Virtual en el formulario
ATV_MTOFIN
Igualmente los campos derivado de cálculos (Depreciación mensual y meses depreciados)quedan inhabilitados para la edición evitando la introducción de datos inconsistentes en la tabla. Se agregó un nuevo campo virtual para uso visual “oACTIVOS:dFechaMax” que contiene la fecha máxima o ultima depreciación que valide que la fecha de inicio sea inferior a esta fecha.
14/10/2014
1685 Mejora en Programa ACTIVOS, en el último control al presionar ENTER, ejecuta Cargar formulario.
FUNCTION ATVGUARDAR(oControl)
IF oControl:nLastkey=13
oACTIVOS:SAVE(.T.) // Ejecuta guardar
ENDIF
RETURN .T.
21/10/2014
1686 Mejora en Programa DPFECHA “Cambio de Fecha”, presenta un browser contentivo de todos los ejercicios creados con el sistema “tabla DPEJERCICIOS”, permite hacer el cambio de fecha según la fecha final del ejercicio presionando doble clic en la línea seleccionada. Así mismo incluye en la parte superior una barra de botones con las opciones Guardar y Salir.
22/10/2014
1687 Nuevo Programa GETNUMEJE, obtiene numero del ejercicio contable según la fecha indicada en el parámetro dFecha. El valor del campo EJE_NUMERO ha sido replanteado para ser creado de manera incremental y no según la fecha del ejercicio debido a que el usuario podrá realizar cambios en la fecha del ejercicio. De igual manera el programa FCH_EJERGET, crear los periodos de manera incremental.
22/10/2014
1688 Nuevo Programa DPEJERCIPSBUG, Remueve de la tabla DPEJERCICIOS los registros sin ningún vinculo con otras tablas según el diccionario de datos (Tabla LINKLINK). El replanteamiento de los ejercicios se requiere para crear depreciaciones de activos o ajuste por inflación mensual o según fecha del ejercicio y las fechas del ejercicio podrán ser cambiadas según necesidad del usuarios sin la necesidad de rehacer las depreciaciones. La tabla depreciación de activos “DPDEPRECIAACT” se vincula con la tabla de Ejercicios, mediante el campo “DEP_NUMEJE”, así se pueden obtener consultas SQL por cada ejercicio fiscal.
22/10/2014
1689 Nuevo Programa DPDEPRECIA_EJE, se ejecuta antes de crear la nueva integridad referencial con la tabla de ejercicios EJE_CODSUC,EJE_NUMERO con DEP_CODSUC,DEP_NUMEJE, mediante el campo DEP_FECHA, determina el ejercicio y lo asigna en el campo DEP_NUMEJE.
22/10/2014
1690 Nuevo programa DEPAXIFECHAS, genera el periodo de la depreciación por mes o por ejercicio. Según la variable: oDp:lActMensual:=.T. es mensual, caso contrario por ejercicio.
22/10/2014
1691 Nueva variable oDp:lActMensual, configurable mediante el formulario “Configuración de la Empresa”, Pestaña de Activos, incluye checkbox para indicar el valor de esta variable. Si el sistema detecta depreciaciones contabilizadas no será posible cambiar este valor.
23/10/2014
1692 Mejora programa “DPDEPREC”, incluye nuevas columnas. Fecha Desde y Cantidad de meses. Para el caso de las depreciaciones por ejercicio es necesario al visualización de estas columnas.
24/10/2014
1693 Se realiza mejora en el programa para que ejecute el formato matriz del cliente motivado a que cuando se configuraba el formato de factura de venta y luego se venia a documentos no impreso ejecutaba otro formato ahora realizará la llamada al reporte DOCCLI + Tipo de documento, realizando más simple y sencillo el trabajo a los técnicos
24/10/2014
1694 Nuevo Programa SCRDELETE, ejecutado desde DPPROGRA.LBX, realiza un copia del programa que será eliminado en la carpeta SCRIPTDELETE, remueve el programa fuente en SCRIPT y compilado en DPXBASE, logrando remover de estas carpetas programas innecesarios.
24/10/2014
1695 Nueva función DPSQLROW(nCol,uValue). devuelve el valor del campo “n” en de la consulta SQL solicitada por la función SQLGET(,,) Tiene como objetivo reemplazar el uso de la variable oDp:aRow, mediante:
dFecha:=IIF(!Empty(oDp:aRow),oDp:aRow[2],CTOD(“”))
POR
dFecha:=DPSQLROW(2)
24/10/2014
1696 Nuevo proceso automático: ACTIVOSXAXIFIS, muestra en el panel de tareas la cantidad de registros de depreciación que no se calculado el ajuste por inflación fiscal. Sin embargo el sistema calcula el ajuste fiscal desde que se incluye o modifica un activo según el último estado conocido del IPC. Luego que el usuario actualice el IPC, el Panel ERP le indicar la cantidad de registros, periodo desde y hasta. Luego de presionar CLIC el sistema presenta el formulario BRACTXAXIFIS contentivo del detalle de cada activo, luego que el usuario presione el botón “Run” el se realizará el cálculo de Ajuste de todos los activos hasta la última fecha conocida del IPC.
26/10/2014
1697 Mejoras en ejercicios contables. Desde la opción Ficheros de Contabilidad, se presenta un formulario LBX contentivo de todos los ejercicios contables registrados en la tabla DPEJERCICIOS y está provisto de las opciones “Incluir”, “Modificar” y “Eliminar” permitiéndole al usuario crear los ejercicios de manera discrecional con respecto a los meses de duración (Máximo hasta doce meses) por razones fiscales. La numeración del ejercicio se inicia desde el primer ejercicio según el año de la fecha (Desde), generando los ejercicios con fecha 2010, 2012, 2013. De igual forma el usuario podrá modificar el numero del ejercicio por 0001,0002,0004…0010, cuando sea requerido por necesidades de cambio de fecha del ejercicio o empresas que realizan cierres definitivos antes de la fecha del ejercicio. El proceso de eliminación es validado por la base de datos debido a la integridad referencial entre ejercicios con Comprobantes contables y depreciación de activos. Se incluye el campo EJE_AXIINI para indicar que en este “Ejercicio” se realiza el ajuste inicial de activos y permite validar que el usuario no incluya activos con fecha de adquisición con fecha inferior a la fecha del ajuste inicial.
26/10/2014
1698 Definición de Propiedades de las Cuentas Contables, presenta un Formulario contentivo de todas las cuentas contables mediante un browser compuesto de líneas y columnas. La tercera columna representa un Nuevo campo “Propiedad de la Cuenta” que permite precisar el uso de la Cuenta “Activo, Depreciación, Revalorización, entre otros”. Esta definición Permite limitar al usuario en las asignaciones de cuentas contables evitando Discrecionalidades. Por ejemplo: La asignación de las contables para los Activos serán las cuentas de uso exclusivo para activo y el usuario no podrá Indicar otra cuenta diferente al grupo de cuentas definidas como activos y Tampoco podrá ser utilizado para “realizar registrar asientos contables de Manera discrecional para garantizar la integridad o conciliación Contable Financiera. Las cuentas definidas con “Propiedades” no podrán ser utilizadas para que el usuario registre asientos contables. Solo podrán ser utilizadas para introducir el balance Inicial.
27/10/2014
1699 Limitación de asignación de cuentas en formulario Activo. Mediante el nuevo campo “CTA_PROPIE”, Propiedad de la Cuenta el usuario solo podrá asignar las cuentas contables específicas para cada funcionalidad: Activo, Depreciación Activo, Depreciación Gasto y Revalorización. Esta validación es necesario para generar resultados consistentes.
Noviembre
01/11/2014
1700 Nueva clase SETAUDITORIA() en clase TTABLE, realiza una copia del registro focalizado ::aRecClone, mediante el método commit(cWhere), ejecuta el programa DPAUDELIMODTAB y realiza la comparación entre el contenido de los campos que serán actualizados vs el contenido de los campos almacenados ::aRecClonee. Esta funcionalidad está implementada en el programa BRDPCTAPROP “Propiedades de las cuentas” necesario para conocer las modificación del contenido del campo CTA_PROPIE.oTabl Ejemplo:
oTable:=OpenTable(“SELECT CTA_CODIGO,CTA_PROPIE FROM DPCTA WHERE
” CTA_CODMOD”+GetWhere(“=”,oDp:cCtaMod)+” AND “+;
” CTA_CODIGO”+GetWhere(“=”,aCta[I]),.T.)
oTable:cPrimary:=”CTA_CODIGO” // Valor Requerido
oTable:SetAuditar()
oTable:Replace(“CTA_PROPIE”,uValue)
oTable:Commit(oTable:cWhere)
oTable:End()
01/11/2014
1701 Mejoras en programa “Propiedades de las cuentas”, incluye control comboBox que permite presentar las cuentas exclusivas para “Activo,Pasivo,..” según las definiciones de uso de las cuentas. De igual manera, incluye “Botón” para ejecutar formulario de Diálogo para filtrar las cuentas según su descripción, ejemplo: “Solo las cuentas de depreciación”. La cuarta columna permite indicar el concepto de retención de ISRL que deberá aplicarse a todo documento de compra vinculado con la cuenta.
03/11/2014
1702 Nuevo programa BRDEPCONTAB, genera los asientos contables: Históricos, Fiscal y financiero en tres comprobantes contables con el mismo número y cada uno identificado para: Contabilidad, Ajustes Fiscal y Ajuste Financiero. El nuevo programa verifica el contenido de los código de integración:
// Verifica si la cuenta de Utilidad, está Indefinida o está vacío. Esta Esta funcionalidad evita generar asientos con cuentas indefinidas.
IF !EJECUTAR(“ISCTAINDEF”,”UTILIDAD”)
RETURN .F.
ENDIF
// Obtiene la cuenta Contable de la cuenta de utilidad.
cCtaUtil:=EJECUTAR(“GETCODINT”,”UTILIDAD”)
Consulta para Obtener los resultados Contables
SELECT MOC_CUENTA,
CTA_DESCRI,
SUM(IF(MOC_ACTUAL=”N”,MOC_MONTO,0)) AS PORACTUALIZAR,
SUM(IF(MOC_ACTUAL=”S”,MOC_MONTO,0)) AS ACTUALIZADOS,
SUM(IF(MOC_ACTUAL=”A”,MOC_MONTO,0)) AS AUDITORIA,
SUM(IF(MOC_ACTUAL=”X”,MOC_MONTO,0)) AS AJUSTEFISCAL,
SUM(IF(MOC_ACTUAL=”F”,MOC_MONTO,0)) AS AJUSTEFINANCIERO
FROM DPASIENTOS
INNER JOIN DPCTA ON MOC_CTAMOD=CTA_CODMOD AND MOC_CUENTA=CTA_CODIGO
GROUP BY MOC_CUENTA
05/11/2014
1703 Nuevo programa DPCBTEAXI, muestra los asientos de ajuste por inflación fiscal o financiero, según parámetro “cActual, si es X es ajuste fiscal. Si es F se refiere a asientos financieros”. Este programa no permite alterar ningún resultado debido a que los mismos se derivan de cálculos sobre resultados históricos.
09/11/2014
1704 Nueva funcionalidad “Filtrar” en clase DPLBX(), mediante el nuevo método oDpLbx:SetFilter(), activa el modo de edición del browser y permite mediante el programa “LBXFILTER” filtrar según la columna o campo focalizada en el Browser. Todos los datos coincidentes para el campo de tipo carácter y igualdad para los campos de tipo fecha y numérico formarán parte del contenido del browser. Para recuperar el contenido inicial del browser es necesario seleccionar nuevamente filtrar y dejar el campo vacío (presionar Enter) y se mostrará el contenido inicial. Esta funcionalidad se creó para ubicar las cuentas contables con la misma descripción. Ejemplo: Buscar todas las cuentas asociados con la denominación “EDIFICIO” Forma de implementarse:
BTN13_BMP :=FILTRAR.BMP
BTN13_ACTION :=oDpLbx:SetFilter()
BTN13_WHEN :=!oCursor:Eof()
BTN13_TOOLTIP:=Filtrar Registros
BTN13_MESSAGE:=Filtrar Registros
BTN13_TYPE :=FILTER
09/11/2014
1705 Nueva funcionalidad “Filtrar” en clase XBROWSE(), mediante los formularios ejecutados con la clase TDPEDIT() y mediante un botón que ejecute el programa BRWSETFILTER se activa el modo de edición del browser para que el usuario introduzca el datos que desea filtrar con respecto a la columna que está focalizada. Se mostrarán solo los registros que cumplieron con la condición del filtro mediante el programa BRWFILTER. Para desactivar el filtro es necesario seleccionar el botón “Filtrar” para activar el modo de edición para que el usuario deje el campo vacío y será restaurada los datos iniciales del browser. En el caso que se requiere los datos iniciales del contenido de un campo, ejemplo plan de cuenta debe indicar el signo “%1.1.1.” mostrará todas las cuentas contables que se inicia con “1.1.1.”. Los programas fuentes Creados a través de BRWMAKER incluyen esta funcionalidad.
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\FILTRAR.BMP”;
ACTION EJECUTAR(“BRWSETFILTER”,:oBrw)
oBtn:cToolTip:=”Filtrar Registros”
09/11/2014
1705 Nueva funcionalidad “Filtro Dinámico” mediante la implementación
DEFINE BUTTON oBtn;
OF oBar;
NOBORDER;
FONT oFont;
FILENAME “BITMAPS\OPTIONS.BMP”,NIL,”BITMAPS\OPTIONSG.BMP”;
ACTION EJECUTAR(“BRWSETOPTIONS”,:oBrw);
WHEN LEN(:oBrw:aArrayData)>1
oBtn:cToolTip:=”Filtrar según Valores Comunes”
El programa “BRWSETOPTIONS”, evalúa el contenido de la columna focalizada del browser, y presenta un selector de tipo ComboBox que permite seleccionar las diversas opciones mediante (Valores Comunes) del contenido de la columna focalizada para que el usuario seleccione una de ellas y realice el filtro sobre el browser para que muestre solo los registros vinculados con la opción seleccionada. Ejemplo: Seleccionar las cuentas contables según su propiedad “Activos”, ejecuta el programa “BRWFILTER”
10/11/2014
1706 Nueva funcionalidad “Filtro Dinámico” en formularios LBX mediante la siguiente implementación:
BTN04_BMP :=OPTIONS.BMP
BTN04_ACTION :=EJECUTAR(“LBXSETOPTIONS”,oDpLbx)
BTN04_WHEN :=.T.
BTN04_TOOLTIP:=Opciones de Contenidos Comunes
BTN04_MESSAGE:=Opciones de Contenidos Comunes
BTN04_TYPE :=OTHER
En programas DPXBASE se desea filtrar los programas modificados o creados durante la última fecha o según determinada aplicación, el usuario debe focalizar la columna fecha, presionar el botón OPTIONS.BMP y se presenta una lista contentiva de todas las fechas de manera ascendente, el usuario presiona la tecla fin y obtiene la última fecha, presiona click y se filtran y muestran solo los programas vinculados con la fecha indicada.
13/11/2014
1707 Nuevo campo GAC_CTAFIJ en tabla DPGRUACTIVOS “Grupo de Activos”, permite indicar si los activos relacionados con este grupo utilizan las mismas cuentas contables de manera permanente. En la ficha del activo se incluyeron los campos para indicar el tiempo de garantía en Años y Meses, Calculando el tiempo de culminación de la Garantía. Se implementó la auto codificación del código de activo según los parámetros indicados en el formulario Configuración de la empresa.
13/11/2014
1708 Nueva funcionalidad de Consultas definidas mediante BRWMAKER en todas las aplicaciones, donde se muestra mediante el formulario LBX todas funciones vinculadas exclusivamente con la aplicación en uso, evitando así que el usuario se ubique en macros y luego las opción de consulta por cada aplicación. Forma de implementarse en el menú y/o barra de botones.
EJECUTAR(“DPBRWRUNLBX”,”Activo”)
13/11/2014
1709 Programa DPFIELDBUG, depura los campos sin integridad con la tabla DPTABLAS. Se ejecuta antes de crear la integridad referencial entre Tablas y Campos.
13/11/2014
1710 Programa DPGRUACTMNU, Menú de opciones para grupo de activos, incluye opción que permite editar las cuentas contables. Incluye la funcionalidad que permite realizar la contabilización del grupo de activos, si los asientos contables se realizan por grupo ejecuta el procesos que genera los asientos por grupo de productos, sino ejecuta el formulario que contabiliza todos los activos relacionados con el grupo.
13/11/2014
1711 Nueva funcionalidad “Consultas” en todas las aplicaciones del sistema que presenta todas las opciones diseñadas mediante BRWMAKER, facilitando al usuario acceder desde la misma aplicación a las diversas consultas vinculadas con “Activos”.
17/11/2014
1712 Nueva variable Global, oDp:cNumEje, se obtiene desde el programa DPLOADCNF e indicar el numero del ejercicio actual, ejemplo: 2009, o 2010, 2014. Este valor es utilizado para la auto marcación de la depreciación que será contabilizada según el número de ejercicio activo.
18/11/2014
1713 Nuevo programa DPCHKISINTREF, se ejecuta al finalizar la ejecución del programa SQLDB_PREUPDATE y determina la fiabilidad de la integridad referencial de los datos utilizando el diccionario de datos. También se puede ejecutar de manera directa en versiones anteriores de AdaptaPro para verificar los registros antes de realizar el respaldo de datos que será utilizado para actualizar a la nueva versión. Si el programa detecta registros con campos (claves) con valores nulos, los elimina y previamente realiza copia en el directorio RECORDNULL”+DTOS(oDp:dFecha) en tablas de formato DBF. Si el programa detecta inconsistencia en la integridad presentará la sentencia SQL en el arreglo de bitácora proporcionada al finalizar el proceso y un archivo log.txt ubicado en la carpeta “RECORDNULL”+DTOS(oDp:dFecha). por cada tabla ejecuta el programa DpXbase indicado en el campo LNK_PRGPRE quien se encarga de recuperar (Crear) o remover los registros inconsistentes.
18/11/2014
1714 Nuevo programa DPINDEXADD(cTable,cKey), Busca en el diccionario de Datos tabla DPINDEX si existe la tabla de Índices con su respectiva clave, en caso de no ser encontrado se realiza la inclusión del índice en la tabla DPINDEX y se genera la nueva tabla índice que permite optimizar la búsqueda en las tablas. Este programa es ejecutado desde el programa DPINDEXOPTMZ quien contiene todas las peticiones de optimización y el mismo es ejecutado desde el programa SQLDB_POSTUPDAT.
19/11/2014
1715 Nuevo programa TESTSQLWHERE, presenta un formulario contentivo de dos campos memos, el primero permite indicar (Pegar) el comando SQL contentivo de la cláusula WHERE mediante campos y operadores relacionales. Mediante el botón Ejecutar se ejecuta el programa WHEREOPTMZ quien separa la sentencia WHERE y busca en el diccionario de datos los diversas claves que conforman cada índice y sugiere mediante el orden de clave más coincidente la nueva cláusula WHERE, logrando presentar en el segundo campo MEMO la sentencia SQL optimizada según la cláusula WHERE. En la parte superior de cada campo memo se indica el texto “SQL Original” acompañada del tiempo de ejecución medido en segundos.
20/11/2014
1716 Nuevo programa SQLWHEREOPTMZ, Optimiza una sentencia SQL mediante la la ejecución del programa WHEREOPTMZm, solo requiere el parámetro de la sentencia SQL y devuelve una nueva consulta de manera optimizada. Esta sentencia podrá ser utilizada en el código fuente de cualquier reporte que requiere optimizar la sentencia SQL mediante la evaluación de los claves indicadas en las tablas índices.
Ejemplo para ser implementado en reportes,
cSql :=oGenRep:BuildSql() // Genera Código SQL
cSql :=EJECUTAR(“SQLWHEREOPTMZ”,cSql)
21/11/2014
1717 Nuevo programa DPCHKINTREFTAB, Presenta un formulario que permite seleccionar la base de datos para la gestión de negocios (DPADMWIN o Similar) o las bases de datos de configuración o Diccionario de datos. Mediante el botón Ejecutar, realiza el procesos de verificación de la consistencia de tablas con sus respectivas tablas vinculadas mediante el programa “DPCHKISINTREF”
24/11/2014
1718 Nueva Vista DPCBTCANT, contiene la cantidad de Comprobantes (Históricos, Ajuste Financieros y Ajuste Fiscal) por cada ejercicio. Esta vista es enlazada desde el formulario DPEJERCICIOS.LBX y muestra en la 8tva Columna (Cant.Cbte) la cantidad de registros de comprobantes.
24/11/2014
1719 Nuevo campo CMT_TABLE en Tabla DPMAPTABCPO (Cuerpo del mapa por tablas), ahora tiene integridad referencial con la tabla DPTABLAS mediante el campo (CMT_TABLE on TAB_NOMBRE). El campo CMT_NUMTAB fue removido. Este Replanteamiento es necesario para implementar las restricciones por campos. El proceso de Integridad ejecuta el programa DPTABLASFIX quien realiza el proceso de actualización del contenido del campo CMT_TABLE
25/11/2014
1720 Nueva funcionalidad “Mapa por campos”, incluye la nueva tabla DPMAPACAM que contiene el registro de mapas que debe ser vinculada con la tabla “DPUSUARIOS” mediante el campo OPE_MAPCAM. La nueva tabla DPMAPACAMCPO, contiene el cuerpo de detalle del mapa donde se registra: Nombre de la tabla, código de mapa y los permisos para : Editar (Formulario en modo Inclusión), modificar o consultar (Cuando el formulario está en modo de Consulta) asigna valor “vacío” en el contenido del campo que no permita su visualización. La implementación de esta limitación se agrega en la cláusula WHEN en el control que permite la edición del campo en el formulario.
@ 1,1 GET oFrm:OPE_CLAVE ;
WHEN AccessField(“DPUSUARIOS”,”OPE_CLAVE”,oFrm:nOption)
nOption=1 (Incluir/Editar)
nOption=2 (Consultar/Visualizar)
nOption=3 (Modificar)
Implementación en formularios scrollGet y clase TGRIDCOL
Diciembre
02/12/2014
1721 Campo FIM_NUMERO tabla DPFILEEMPMAIN requiere ser numérico, para ser convertido requiere que su contenidos sean dígitos o no vacíos. Programa SQLDB_PREUPDATE, Incluye las siguientes instrucciones.
IF OpenTable(“SELECT FROM DPFILEEMPMAIN”,.F.):aFields[1,2]=”C”
SQLUPDATE(“DPFILEEMPMAIN”,”FIM_NUMERO”,”0″,”FIM_NUMERO”+GetWhere(“=”,””))
ENDIF
04/12/2014
1722 Implementación de efecto (Apagado) en clase scrollget según campos con restricciones mediante mapa de campos. Los campos restringidos serán pintados con el texto según el color indicado en la variable:
DEFAULT oDp:nClrScrollOff:=CLR_GRAY
06/12/2014
1723 Obtener cuentas contables desde tablas maestras relacionada con tablas exclusivas para vinculación contable.
// Cuentas de Egresos
SQLGET(“DPCTAEGRESO”,”CEG_CUENTA”,”CEG_CODIGO=’Indefinida'”)
Cambiar por:
SQLGET(“DPCTAEGRESO”,” CIC_CUENTA AS CEG_CUENTA”,;
” LEFT JOIN DPCTAEGRESO_CTA ON CEG_CODIGO=CIC_CODIGO
” AND CIC_CTAMOD”+GetWhere(“=”,oDp:cCtaMod)+;
” WHERE CEG_CODIGO”+GetWhere(“=”,’Indefinida’))
// Tipo de Documento
SQLGET(“DPTIPDOCCLI”,”TDC_CODCTA”,”TDC_TIPO”+GetWhere(“=”,cTipDoc))
Cambiar por:
SQLGET(“DPTIPDOCCLI”,”CIC_CUENTA AS TDC_CODCTA”,
” LEFT JOIN DPTIPDOCCLI_CTA ON TDC_TIPO=CIC_CODIGO “+;
” AND CIC_CTAMOD”+GetWhere(“=”,oDp:cCtaMod) +;
” WHERE TDC_TIPO”+GetWhere(“=”,cTipDoc)))
08/12/2014
1724 Nuevo programa GETCLICUENTA(cCodigo,cTipDoc), obtiene la cuenta contable de CXC del cliente registrada en DPCLIENTE_CTA, en el caso de solicitar el tipo de documento, devuelve la cuenta contable asociada con el tipo de documento tabla DPCLIENTECTA. El programa GETPROCUENTA(cCodigo,cTipDoc), de De igual manera obtiene las cuentas del proveedor.
10/12/2014
1725 Mejoras en clase DPBRWPAG(), el archivo de parámetros .brw, incluye nuevo parámetro: HEADERLINES:=1, líneas del encabezado del browser. para indicar más de una línea en el encabezado de título de la columna mediante “;”, ejemplo en archivo dpreciboscli.brw
COL08_HEADER:=Cbte;Contable
COL08_FIELD :=REC_NUMCBT
COL08_WIDTH :=55
COL09_HEADER:=Num;Partida.
COL09_FIELD :=REC_NUMPAR
COL09_WIDTH :=40
En la barra de botones, se incluye la funcionalidad: Opciones según contenido de las columnas, Pre visualización, Exportar a Excel, Exportar a HTML y Filtrar registros.
10/12/2014
1726 Nuevo campo REC_NUMPAR en DPRECIBOSCLI y PAG_NUMPAR en DPCBTEPAGO, utilizado en el proceso de contabilización para guardar el número de partida contable.
10/12/2014
1727 Mejora en programa CSRANGOFCH, recibe parámetro: cTable,cWhere,cField, Obtiene la último registro según campo , calcula la fecha 01 de mes y fin de mes (Logrando presentar el browser con fechas detectadas).
Incluye control checklist “Omitir” para inhabilitar el filtro por fecha.
En el archivo
WHERE :=&”DOC_CODSUC”+GetWhere(“=”,oDp:cSucursal) + ” AND DOC_TIPDOC”+;
GetWhere(“=”,oDoc:DOC_TIPDOC)+” AND DOC_TIPTRA=’D’ AND
(DOC_FECHA”+GetWhere(“>=”,oDp:dFchIniDoc)+” AND
DOC_FECHA”+GetWhere(“<=”,oDp:dFchFinDoc)+”)”
Por
WHERE :=&”DOC_CODSUC”+GetWhere(“=”,oDp:cSucursal) + ” AND DOC_TIPDOC”+
GetWhere(“=”,oDoc:DOC_TIPDOC)+” AND DOC_TIPTRA=’D’ “
14/12/2014
1728 Filtrado de Cuenta Modelo para todas las Tablas Vinculadas con Cuentas Contables “utilizando el diccionario de datos”.
Implementación:
aTablasCta:=ASQL([SELECT LNK_TABLED FROM DPLINK WHERE LNK_FIELDD LIKE;
“%CIC_CODIGO%” AND LNK_TABLED LIKE “%_CTA”])
IF oDp:cCtaMod<>NIL .AND. COUNT(“DPCTAMODELO”)>1
SETEXCLUYE(“DPCTA”,”CTA_CODMOD”+GetWhere(“=”,oDp:cCtaMod ),””)
AEVAL(aTablasCta,{|a,n|SETEXCLUYE(a[1],”CIC_CTAMOD”+GetWhere(“=”,oDp:cCtaMod),””) })
ELSE
SETEXCLUYE(“DPCTA”,””)
AEVAL(aTablasCta,{|a,n|SETEXCLUYE(a[1],””) })
ENDIF
Uso:
Código Anterior
cCuenta:=SQLGET(“DPCTABANCO”,”BCO_CUENTA”,”BCO_CODIGO”+GetWhere(“=”,cCtaBco))
Por:
cCuenta:=SQLGET(“DPCTABANCO_CTA”,”CIC_CUENTA AS BCO_CUENTA”,;
“CIC_CODIGO”+GetWhere(“=”,cCodBco))
14/12/2014
1729 nueva Tabla DPBANCOSPER, permite registrar el personal vinculado con el banco. El nuevo programa DPBANCOSCON presenta un menú de consulta que presenta diversas opciones: Consultar, Cuentas Bancarias y personal del banco.
15/12/2014
1730 Mejoras en clase TDPLBXRUN(), incluye la funcionalidad para la asignación dinámica de variables que serán necesitas posteriormente entre los programas que interactúan con el formulario LBX, ejemplo:
LOCAL oLbx,nId_Top:=100
oLbx:=TDpLbx():New(“DPCNTEMAS.LBX”,cTitle,cWhere,NIL,NIL)
oLbx:nId_Top:=nId_Top // Variable Dinámica
oLbx:Activate()
archivo dpcntemas.lbx
[BOTONES]
BTN01_BMP :=xNEW.BMP
BTN01_ACTION :=SCRRUN(“DPCNTEMAS”,1,oCursor:TCN_TEMA,oDpLbx:nId_Top)
22/12/2014
1731 Nuevo programa ENTGUBTOPROVEE Crear proveedores desde Entes Públicos.
Ejecutado desde DPLOADCNF
24/12/2014
1732 Mejoras en validación de claves primarias múltiples con campos de diversos tipos en formulario de la clase DPEDIT
Definición de la clave primaria
oTable:cPrimary:=”Campo1,campo2,campo3,campo4″
Validación: La clave debe ser Enviada en Tipo Carácter separados por “,”
lResp:=oCNTEMAS:ValUnique(CTOO(oFrm:Campo1,”C”)+”,”+;
CTOO(oFrm:Campo2,”C”)+”,”+;
CTOO(oFrm:Campo3,”C”)+”,”+;
CTOO(oFrm:Campo4,”C”))
31/12/2014
1733 Nuevas vistas derivadas de la tabla DPDIARIO, tiene como objetivo remover complejos algoritmos Dpxbase para calcular fechas de planificación “Caso formalidades y tareas”.
DPDIARIO_ANO
DPDIARIO_BIMEST
DPDIARIO_MES
DPDIARIO_QUINCE
DPDIARIO_SEMANA
DPDIARIO_SEMEST
DPDIARIO_TRIMES
Sintaxis:
SELECT DIA_ANO AS FCH_ANO,DIA_QUINCE AS FCH_QUINCE,MIN(DIA_FECHA) AS FCH_DESDE,
MAX(DIA_FECHA) AS FCH_HASTA
FROM DPDIARIO
GROUP BY DIA_ANO,DIA_QUINCE
ORDER BY DIA_ANO,DIA_QUINCE
Implementación:
LOCAL cField:=”QUINCE”
cVista:=”VIEW_DPDIARIO_”+SUBS(cField,5,LEN(cField))
oDiario:=OpenTable(“SELECT * FROM “+cVista+” WHERE FCH_DESDE”
+GetWhere(“>=”,dDesde)+” AND FCH_HASTA”+GetWhere(“<=”,dhasta),.T.)
31/12/2014
1733 Nuevo programa SETDIAFECHA parámetro dFecha, nDia, permite asignar el día en determinada fecha. Utilizada formalidades y tareas cuando se define el día 31 para actividades cuando hay meses con 30 y 28 días.