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: 

  1. Ampliar el código de cuenta en plan de cuentas.
  2. Ampliar el código del cliente.
  3. 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:

  1. Tablas, llama DPTABLAS.LBX filtrando solo las tablas vinculadas con la aplicación focalizada.
  1. 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: 

  1. Usuario y Clave no pueden ser iguales
  2. 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. 

  1. 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. 
  1. 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. 
  1. En la tabla DPEJERCICIOS se creó el campo EJE_TIPO, con la misma Funcionalidad Clásico o NIFF. 
  1. 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 
  1. 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: 

  1. Base Imponible
  2. Monto del IVA
  3. Retención de IVA
  4. 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:

  1. Consultar el estado de cuenta según sucursal localizada.
  2. 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.