Actualizaciones 2015

Enero

01/01/2015

1735 Nuevo programa BRLIBINV, se ejecuta desde el programa INVLIBRO (Libro de inventarios) cuando no recibe el parámetro “Número de registro de proceso”. El programa BRLIBINV presentó el calendario del libro de inventario, indicado:

Periodo (Desde,Hasta, Plazo, fecha de ejecución, estado del registro (Pendiente, Ejecutado, Inactivo). El botón ejecutar llama al programa “INVLIBRO” para calcular y almacenar los datos del libro de ventas,, al finalizar actualiza el estado del registro de planificación del libro de inventario para así conocer que este proceso “fue realizado”.

02/01/2015

1736 Nueva Tabla DPLIBINV, contiene la fecha de proceso del libro de venta y contiene el calendario contable del inventario. Cuando se genera el libro de ventas se almacena en la tabla DPLIBINVDET por cada producto Cantidades y costos según exigencia del libro de inventario, facilitando la integridad de los resultados financieros, fiscales y contables. Además el registro de libro de inventario es utilizado para validar que no se puedan hacer operaciones en meses con libros de inventario registrados. El contenido de la tabla  DPLIBINVDET es utilizada para calcular mensualmente en contabilidad los asientos de costo de venta y según sea el caso (El ajuste fiscal de inventarios Anualmente o mensualmente). Para el ajuste por inflación financiero se utiliza el contenido de la tabla DPLIBINVDETCAP (Capas FIFO de la existencia de cada producto).

02/01/2015

1737 Nuevo programa “BRLIBINVCONTAB”, presenta los registros de la tabla DPLIBINV, mediante un browser, mediante el botón “Contabilizar” realiza los asientos contables, en caso de detectar valores del IPC genera los asientos de ajuste fiscal y/o financiero.

03/01/2015

1738 Mejoras en el Panel ERP, se cambió el uso de la clase TDPEDIT() por TMDI(), todos los controles se ubican en una ventana MDI. Las opciones de las pestañas inferiores se inicia con valor “Todos”, se incluyen dos nuevas variables en el programa DPINI:

AADD(oErp:aColores,{5,oErp:nClrExt,”Extemporáneo”}) // Tareas Extemporáneas

AADD(oErp:aColores,{6,oErp:nClrSus,”Suspendidas” }) // Tareas 

Las tareas extemporáneas se determinan según la fecha plazo vs la fecha de ejecución indicada en la tabla de planificación de formalidades.

04/01/2015

1739 Nueva Tabla DPCTAUSO, (Uso de las cuentas), sustituye el registro de uso de las cuentas en el dataSet, ahora incluye integridad con la cuenta Modelo del plan de cuentas. El cálculo de la planilla DPJ26 requiere por cada cuenta conocer si pertenece al balance o ganancias/Pérdidas.

05/01/2015

1740 Nueva periodo (Ejercicio) en el selector de fechas en formularios creados mediante BRWMAKER. La fecha es calculada por el programa “DPDIARIOGET”.

Requiere las variables (oDp:aPeriodos y oDp:aField_Per) definidas en el programa DPINI

05/01/2015

1741 Nueva Variable oDp:cSucMain, Sucursal Principal, Se refiere al código de sucursal utilizado para registrar los registro de sucursales cuando la empresa está compuesta por diversas sucursales y una de ellas realiza todos los deberes formales.

06/01/2015

1742 Nuevo proceso automático “FORMALIDADESYTAR” obtiene el diagnóstico del calendario del calendario de las formalidades y tareas almacenadas en la tabla “DPFORMYTAREASPROG” hasta la fecha final del ejercicio en curso relacionada con el campo “PFT_FCHPLZ” fecha de plazo. Desde el panel ERP se ejecuta el programa “BRFYTRESUMEN” que muestra de manera resumida por cada código de formalidad, la cantidad de tareas: Planificadas, Ejecutadas, Suspendidas y pendientes por ejecutar.

07/01/2015

1743 Nuevo Variable Objeto ERP.

oErp:nDias := 30                    // Dias de Proyección

oErp:dFecha:= oDp:dFecha+oErp:nDias // Dias en que se Proyecta el ERP

Se generan desde DPLOADCNF Y DPFECHASRV, toda vez que se inicia o cambia de empresa. Permite que el usuario pueda indicar la fecha de proyección para conocer el calendario de formalidades y tareas. Su valores se inician en el programa DPINI.

Las pestañas incluyen la cantidad de actividades vinculadas.

Panel, incluye botón refrescar. Mediante el proceso automático:

DPPANELERPREFRESH, el usuario puede activar el refrescamiento automático del panel ERP e indicar la frecuencia en segundos para su refrescamiento.

Cambio de empresa, cierra el Panel ERP.

07/01/2015

1744 Nuevo programa DPPROCESOSREC, recupera desde “procesos\*.scr” los memos de los procesos automáticos que están vacíos o sin registro. Es ejecutado desde el programa SQLDB_PREUPDATE

09/01/2015

1745 Mejoras en Panel ERP, se incluye la solicitud de fecha (hasta) y días de plazo para conocer las actividades inmediatas. Se incluye nueva pestaña “Plazo” donde se muestran exclusivamente las actividades inmediatas.

De igual manera se muestran las actividades pendientes no realizadas en la fecha pautada.

09/01/2015

1746 Mejora en Plan de cuenta. El campo CTA_ACTIVO ahora es empleado para Activar o Inactivar Cuentas contables. Permitiendo el usuario inactivar una cuenta y el sistema filtra o restringe el uso de todas las cuentas vinculadas. Ejemplo: Si el usuario inactiva la cuenta 3. (Todas las cuentas que inicien con 3.) no podrán ser utilizadas (No serán mostradas en el LBX del plan de cuentas). En el programa DPDOCCXP, evalúa si la cuenta está vinculada a un activo fijo mediante CTA_PROPIE=”Activos”

10/01/2015

1747 Nuevo programa “DPPANELERPCLR”, permite definir los colores del formulario del panel ERP. Donde cada ítem está identificado con un mensaje y un color. Igualmente define el color intercalado en línea Par e Impar. Este programa se ejecuta desde el mismo papel ERP mediante el botón “Color”. El programa. Sus valores son almacenados en el DATASET de la BD y por usuario “Cada usuario puede personalizar el formulario”. El programa “DPP ANELERPCLRL” realiza la lectura de valores desde el programa DPLOADCNF.

12/01/2015

1748 Nueva funcionalidad “Prioridad” en el panel “ERP”. Incluye tres nuevas columnas.

  1. Ubicación: Indica el texto de la actividad: Deberes Formales, Tributario, Otros.
  2. Prioridad. Indica el nivel de prioridad 1,2,3 o 4. Los textos son definidos por el usuario. oErp:nNivPri:=1, Valor 0, Sin Prioridad.
  3. Días por transcurrir: Entre la fecha plazo y la fecha del panel ERP.

Se incluye un nuevo folder selectivo de las tareas por prioridad.

El Nuevo programa “DPPANELERPCLRP”, permite definir los colores del panel ERP cuando se selecciona el botón “Prioridad”, pinta el formulario según los colores definidos por prioridad, fondo y textos (pares e Impares)

12/01/2015

1749 Nueva Opción “Contables” en campo PRC_CLASIF en tabla DPPROCESOS, permite definir en “Formalidades y Tareas” las tareas exclusivas a procesos contables necesarios previamente para certificar el cierre contable. EL cierre debe evaluar que ninguna tarea vinculada con procesos contables estén pendientes por ejecutar para garantizar la consistencia de sus resultados. Ejemplo: No se puede cerrar el ejercicio si hay documentos de CxC sin Contabilizar.

Items4:=GETOPTIONS(“DPPROCESOS”,”PRC_CLASIF”,.T.)

25/01/2015

1750 Nuevo programa CHKTABLNK, revisa las relaciones entre las tabla DPLINK con DPTABLAS y determina las relaciones sin vínculos con tablas. Este proceso se ejecuta desde “ExportDSN” exportar configuración de la empresa.

25/01/2015

1751 Nuevo programa BRINDEX, presenta mediante un formulario Browser el contenido de todos los registros de la tabla DPINDEX facilitando la búsqueda de tablas, índices y claves de los índices. Ejecutado desde el menú de ficheros de programación.

27/01/2015

1752 Nuevo programa “DPASIENTOCENCOSFIX”, Se ejecuta previamente la generación de integridad referencial entre DPASIENTOS con “DPASIENTOCENCOS” y remueve todos los registros de la tabla “DPASIENTOCENCOS” sin consistencia de integridad. Previamente genera respaldo en la tabla

RESPALDO\DPASIENTOSCENCOS.DBF

30/01/2015

1753 Implementación de Compras sin derecho a crédito fiscal.

Nuevo campo DOC_CREFIS, lógico indica si el documento genera crédito fiscal.

UPDATE DPDOCPRO

INNER JOIN DPTIPDOCPRO ON DOC_TIPDOC=TDC_TIPO AND TDC_LIBCOM=1

SET DOC_CREFIS=1

WHERE DOC_CREFIS IS NULL

Nuevo campo PRO_CREFIS, Carácter 1, indica con “S” si aplica crédito fiscal o “N” sin crédito fiscal, necesario para ser utilizado por el programa de DPDOCCXP para obtener el resultado para el campo DOC_CREFIS

Febrebro

01/02/2015

1754 Implementación de Compras sin derecho a crédito fiscal.

Nuevo campo DOC_CREFIS, lógico indica si el documento genera crédito fiscal.

01/02/2015

1755 Nuevo programa EJECUTAR(“LBXSETFILTER”,oDpLbx), Realiza la el filtrado de registros desde el formulario DPLBX, reemplazando el uso del método oDpLbx:SetFilter()

02/02/2015

1756 Nuevo programa LBXSAVEFIND, Guarda en el dataset el registro encontrado mediante la ejecución de la opción “Buscar”.

10/02/2015

1757 Nuevo programa DPDROPALL_FK, ejecutado desde SQLDB_PREUPDATE y DPCHKSTRUCT (Revisar estructura de Datos), remueve de todas las tablas las claves foráneas o (integridad referencial). El programa SETRECNULOS, solicita remover la integridad referencial “DPDROPALL_FK” de reglas exigidas por versiones anteriores.

12/02/2015

1758 Mejora en programa DPIMPRXLS, incluye todas las tablas del diccionario de datos que permita importar desde excel.

13/02/2015

1759 Nuevo Programa “DPIMPRXLSTABLA”, realiza la importación de datos desde EXCEL hacia tablas definidas en el diccionario de datos, previamente definidas mediante “Definición de Importación desde Excel”. Proceso de importación se realiza de manera directa y simple “sin ninguna funcionalidad de verificación de integridad referencial”. Para validar la repetición de registros busca en la estructura de la tabla la clave primaria mediante el programa “DPGET_PK”.

Si la tabla no posee clave primaria, asume todos los campos excepto los campos memos. Mediante la definición del proceso de importación los valores por defecto contentivos del signo “&” utilizaran la macro del sistema o solicitud de respuesta por parte del programa binario, ejemplo: &DPFECHA(), &DPHORA() o cualquier variable &oDp:cSucursal. De igual manera los valores booleanos que inicien con punto ejemplo “.T.” o “.F:”

13/02/2015

1760 Mejoras en “Definición de Importación desde Excel”, incluye lista de todas las tablas registradas en el diccionario de datos y permite al Definición del proceso de importación desde archivo excel.

13/02/2015

1761 Nuevo programa DPMUNICIPIOSFX, genera en la tablas DPESTADOS y DPPAISES los registros sin integridad ubicados en la Tabla DPMUNICIPIOS. Este proceso Se ejecuta desde la creación de integridad referencial.

14/02/2015

1762 Nuevo programa DPPROVEEDORBAN y Tabla DPPROVEEDORBAN, Presenta un formulario que permite registrar las diferentes cuentas bancarias del proveedor con el objetivo de validar los datos bancarios cuando se realiza un pago en forma de pago Depósito o transferencia bancaria.

17/02/2015

1763 Mejora en programa REPWHEREOPTZ, llamado desde el programa REPBUILDWHERE, optimiza la generación dinámica de la cláusula WHERE generada mediante los parámetros de rangos y criterios que no estén vacíos y los compara con los índices de las tablas involucradas en el reporte con el objetivo construir la sentencia clausula WHERE según el orden de los campos encontrados en las tablas índices, logrando generar menor tiempo de respuesta en las consultas SQL.

18/02/2015

1764 Nuevos programas: DPDOCCLIFIX y DPCLIENTESPERFX, Recupera códigos de clientes registrados en las tablas DPDOCCLI y DPCLIENTESPER. Este proceso se genera cuando realiza integridad referencial.

20/02/2015

1765 Nueva función REPFECHA(cTable,cField,cTitle,nPeriodo,cWhere), contenido en el programa REPRGOFECHA, se solicita su ejecución mediante la opción “Ejecución:”

REPFECHA(“DPMOVINV”,”MOV_FECHA”) indicada en los parámetros del rango o Criterio. Incluye funcionalidades que muestra las fechas conocidas en la Tabla . Además incluye un selector de pedidos que generan fecha dDesde y Hasta que podrán ser exportadas hacia el rango o Criterio del Informe.

Marzo

05/03/2015

1766 Nuevo programa DPDOCPRO20D, Asigna 20 Dígitos de longitud a los campos

DOC_NUMERO y DOC_NUMFIS en la tabla DPDOCPRO, crear los nuevos campos TDC_ZERO

t TDC_LEN en tablas DPTIPDOCPRO, con el objetivo de lograr en cada tipo de documento indicar la longitud del documento (Hasta 20 caracteres) e validar el relleno de ceros hacia la izquierda. Se ejecuta desde SQLDB_PREUPDATE.

11/03/2015

1767 Funcionalidad para conexiones remotas, clase TTABLE y función DPMYSQLBD, que permite realizar realizar transacciones para consultar, modificar y agregar registros en una base de datos ubicada en otro servidor. Requiere Binario 11/03/2015

LOCAL oTable,oDb

LOCAL cUrl  :=”dominio.com”,;

  cIp   :=GetHostbyName(cUrl),;

  cLogin:=”root”,;

  cPass :=””,;

  nPort :=3306,;

  cDb   :=”database”

  oDb:=DPMYSQLBD(cDb,cIp,cLogin,cPass,nPort,lError,.F.)

  IF !ValType(oDb)=”O”

     MensajeErr(“No es posible conectar con BD”+cDb+” Servidor “+cUrl)

     RETURN .F.

  ENDIF

  oTable:=OpenTable(“SELECT * FROM WHERE “,.T.,oDb,.F.,NIL,.F.)

  // Se puede utilizar oTable:AppendBlank(),oTable:Commit(oTable:cWhere)

  oTable:Browse()

  oTable:Commit()

  DPCLOSEMYSQL()

RETURN NIL

11/03/2015

1768 Mejoras “Tablas en Minúsculas” en función OpenTable(), mediante el 8tvo parámetro lógico donde .T. es minúscula. Su valor por defecto es .F.. Esta funcionalidad es necesario para acceder a tablas en servidores remotas con bases de datos MySQL en servidores LINUX. Sintaxis:

OpenTable(cSql,lData,oDb,lChecktable,lExcluye,lDicc,lLimit,lLower)

11/03/2015

1769 Nuevo programa “BRCLISINEMAIL”, presenta mediante formulario browser, lista de clientes que no posee correo y la cantidad personal vinculadas sin correo también. Ofrece la funcionalidad para indicar el correo de manera directa sin necesidad de modificar el registro del cliente. Además permite: consultar, modificar, menú y acceder al formulario del personal del cliente.

Esta funcionalidad reemplaza el formulario DPLBX(“DPCLIENT.LBX” ejecutado desde el programa “CLIENTESSINEMAI”

11/03/2015

1770 Nuevo programa “CLIVALRIF”, realiza la validación del RIF del cliente según código. Actualiza el contenido de los campos:

“CLI_NOMBRE”,”CLI_ACTECO”,

“CLI_RIFVAL”,”CLI_RETIVA”,”CLI_CONESP”

En documento de cliente, incluye nuevo botón para validar el RIF cuando se crea o modifica una factura de venta.

También desde la opción “Menú de Clientes” incluye validar RIF del cliente.

12/03/2015

1771 Nuevo programa “PROVALRIF”, realiza la validación del RIF del proveedor según código indicado en la factura de compra. Actualiza el contenido de los campos: “

PRO_NOMBRE”,”PRO_ACTECO”,”PRO_VALRIF”,”PRO_RETIVA”, “PRO_CONESP”.

En documento de proveedor, incluye nuevo botón para validar el RIF cuando se crea o modifica una factura de compra. También desde La opción “Menú de Proveedores” incluye validar RIF del Proveedor. Se incluye nueva funcionalidad en “Otros”, opción: “Proveedores sin RIF validado”, presenta lista de proveedores sin el RIF valido para que el usuario solicite la validación y actualice los datos en el registro del proveedor.

13/03/2015

1772 Nueva función  ALIAS_FIELDPOS(oTable) ubicada en dpwin32.hrb , devuelve un arreglo de dos dimensiones contentivos de la posición de los campos del Objeto TTABLE y el Alias() de la tabla DBF, con el objetivo de solo lograr Reemplazar o insertar exclusivamente los campos existentes en la tabla SQL, Implementada en la función:

UPDATETABLE(cTable,cFile,cClave,cDsn,oSay,cText,lTraza), utilizada para Actualizar el sistema mediante plugin y automática (remota vía internet), evitando con esta funcionalidad Incidencias por diferencias de campos. La clase ttable fue optimizada para trabajar de manera remota por esto se puede indicar si o no revisa estructuras con la finalidad de mejorar el tiempo de respuesta.

Ejemplo:

PROCE MAIN(cTable,cFile,cClave,cDsn,oSay,cText)

    LOCAL aFieldPos:={},oTable,I

    DEFAULT cTable:=”DPBRW”,;

            cFile :=”DATADBF\DPBRW.DBF”

   UPDATETABLE(cTable,cFile,”BRW_CODIGO”)

RETURN NIL

También implementada en la función, quien realiza la importación de ejemplos IMPORTDBF32(cNumTab,cTable,cDsn,oSay,lFromDbf,lCopy)

Ejemplo:

PROCE MAIN(cTable,cFile,cClave,cDsn,oSay,cText)

    LOCAL aFieldPos:={},oTable,I

    DEFAULT cTable:=”DPBRW”,;

            cFile :=”DATADBF\DPBRW.DBF”

    CLOSE ALL

    USE (cFile) VIA “DBFCDX” ALIAS “ORIGEN”

    oTable:=OpenTable(“SELECT * FROM “+cTable,.T.)

    aFieldPos:=ALIAS_FIELDPOS(oTable)  // Arreglo {Table,Alias}

    WHILE !EOF()

      otable:AppendBlank()

      AEVAL( aFieldPos,{|a,n| oTable:FieldPut(a[1],FIELDGET(a[2])) })

      oTable:Commit()

      DBSKIP()

    ENDDO

    oTable:End()

    CLOSE ALL

RETURN NIL

13/03/2015

1773 Nueva Variable oDp:cDpXbaseTraza, se genera cuando la traza de ejecución se activa mediante oDp:lTracer:=.T. , tiene como objetivo conocer los programas, funciones y líneas DpXbase ejecutadas. Su visualización fue implementado en el programa DPERRSQLINSERT y SQLMSGERR cuando se genera una incidencia en las sentencias SQL.

15/03/2015

1774 Nueva función: DPXGETPROCE(), muestra la bitácora de ejecución de programas DpXbase. Requiere previamente la declaración DPXGETPROCE(.T.). El uso de esta función es exclusivamente para labores de programación, revisión  y depuración. En los programas DPERRSQLINSERT y SQLMSGERR, muestra las incidencias de las sentencias SQL, previamente deben estar activadas en DPINI mediante oDp:lTracer según valor indicado en DATAPRO.INI

// DATAPRO.INI

TRACER       :=.F.

Ejemplo para implementar:

FUNCTION MAIN()

   DPXGETPROCE(.T.)  // Inicia Valores en DpXbase para la traza

   EJECUTAR(“DPFACTURAV”)

?  DPXGETPROCE() // Muestra todos los programas, funciones y líneas de

                 // ejecución.

   // oDp:lLines:=.f. // Inactiva acumular procesos

   // oDp:cDpXbaseTraza:=”” // Contenido de la Traza

   DPXGETPROCE(.F.) Inactiva acumular procesos

RETURN NIL

Mediante la nueva función DPXGETPROCE(.T.), se activa la traza de ejecución DpXbase y DPXGETPROCE(.F.), se desactiva. Los mensajes de incidencia de MySQL se mostraba mediante el programa SQLMSGERR quien llama a EJECUTAR(“MSGMEMO”,cSQL,”SQLMSGERR”,800,500) 

Este programa generaba incidencia debido a que FiveWin tiene limites en campos memos para diálogos mediante el control GET . Ahora está limitado a 4096*4 la capacidad visual para este programa.

El programa “BOTBARCHANGE”, quien se ejecuta en cada cambio de aplicación desactiva el acumulador de procesos de ejecución DPXGETPROCE(.F.)

Abril

04/04/2015

1774 Nuevo Programa:

EJECUTAR(“MSGOBJ”,oControl,cMsg,cTitle,nWidth,nHeight), facilita presentar un mensaje de validación en la línea inferior de un control (objeto), permite mostrar mensajes en texto múltiple o (Memo), además indicarle al usuario información más amplia sobre el control. Ejemplo:

  IF !EJECUTAR(“EMAILVALID”,oREGISTRESE:REG_EMAIL)

    EJECUTAR(“MSGOBJ”,oREGISTRESE:oREG_EMAIL,”Correo Incorrecto”)

    RETURN .F.

  ENDIF

Valores por Defecto:

nWidth :=310

nHeight:=200

cMsg   :=oControl:cMsg // Mensaje del Control

10/04/2015

1775 Nueva función:

SQLUPDATE_JOIN(cTable,cJoin,cField,cUpdate,cWhere,lView,oDb)

Ejemplo:

   SQLUPDATE_JOIN(“DPDOCCLI”,;

            “LEFT JOIN DPTABMON ON DOC_CODMON=MON_CODIGO “,;

            “DOC_CODMON”,oDp:cMoneda,;

            “MON_CODIGO IS NULL “)

Sentencia:

UPDATE DPDOCCLI

LEFT JOIN DPTABMON ON DOC_CODMON=MON_CODIGO

SET DOC_CODMON=’Bs’

WHERE  MON_CODIGO IS NULL

10/04/2015

1776 Nuevo programa DPTABMONFIX, se ejecuta previa generación de integridad entre DPTABMON y DPDOCCLI. Asigna moneda en aquellos registros sin relación de moneda.

10/04/2015

1777 Nuevo programa DPTABLECHKINT(cTableA,cTableB,lDelete), permite realizar la revisión de integridad entre dos tablas. En caso de existir datos inconsistentes serán mostrados mediante un formulario de Browser. Este programa es llamado desde el formulario DPLINK

11/04/2015

1778 Nuevas funcionalidades en el programa “Visualizar jerarquía de las tablas”, incluye tres funcionalidades:

  1. Fue removida hacia la aplicación “Administración del Sistema” para lograr ser utilizada sin necesidad de arquitectura abierta.
  2. Se incluye mediante botón la funcionalidad “Revisión de Integridad”.
  3. Se incluye mediante botón la funcionalidad “Remover registros con claves nulas”.

11/04/2015

1779 Importar Tablas: DPPAISES,DPESTADOS,DPMUNICIPIOS,DPPARROQUIAS desde programa “DPESTADOSIMP”, quien se ejecuta desde el programa DPDATACREA, importa los datos desde los archivo *.txt, ubicado en la carpeta “estados\*.txt” y cada archivo contiene el nombre del estado y su contenido se estructura de la siguiente manera:

Archivo: miranda.txt

Municipio Sucre

Leoncio Martínez Caracas

Petare Caracas

Caucagüita Caracas

Filas de Mariche Caracas

La Dolorita Caracas

Desde configurar empresa, guardar, ejecuta el formulario “Definición de Regiones para que el usuario defina los valores por defecto y la denominación de cada región:

Obtenido desde

http://es.wikipedia.org/wiki/Anexo:Parroquias_del_estado_Miranda

14/04/2015

1780 Nueva función/Método HIMAGEN() en clase “DPHTMLCLASS” escrita en DpXbase

oH:=EJECUTAR(“DPHTMLCLASS”,”TITULO”,cFile)

oH:HIMAGEN(cUrlImagen,cAlign,lSalto)

cUrlImagen= Dirección URL de la Imagen

cAlign    = Alineación, por defecto es TOP

lSalto    = Indica si lo siguientes textos se colocan en la misma línea o se presentab en la siguiente línea.

14/04/2015

1781 Nueva función/Método HIMAGEN() en clase “DPHTMLCLASS” escrita en DpXbase

  oCol:=OH:HSETCOL(oTH)

  oCol:cHeader:=”Total Item”

  oCol:bStrData:={||TRAN(oTable:MOV_TOTAL,”999,999.99″)}

  oCOl:cAlign  :=”RIGHT”

  oCOl:cBgColor:=”YELLOW”

  oCol:cTotal  :=TRAN(oTable:DOC_NETO,”999,999.99″)

  oCol:cFont   :=”TOTAL”

18/04/2015

1782 Nuevo programa “LBXSETSIZE”, guarda Alto y Ancho en el archivo de formulario .LBX

18/04/2015

1783 Nuevo programa “LBXTOREPORT”, Cuando el usuario ejecuta la opción “Print” de el browser LBX y el reporte no existe en la tabla de reportes “DPREPORTES”, se ejecuta el programa “LBXTOREPORT” y genera el código fuente del informe según los datos de tablas, campos y sentencia SQL registradas en el archivo .LBX

21/04/2015

1784 Nuevo programa DpXbase “LEEMAPAS”, realiza la lectura de los mapas de Acceso por tablas y por menú. El formulario “Usuario y Clase” guarda el valor “Seleccionar Empresa” se almacena en DPDATACONFIG según PC. El nuevo programa “BRSELEMP” presenta las empresas seleccionadas por el usuario. Este nuevo formulario incluye funcionalidad “Revisar Base de datos” sin necesidad de ingresar a cada empresa.

22/04/2015

1785 Nuevo programa DpXbase

RUNMEMO(cMemo,nPar1,uPar2,uPar3,uPar4,uPar5,uPar6,uPar7,uPar8,uPar9,uPar10)

Ejecuta el contenido de un campo memo contentivo de un programa DpXbase. Esta funcionalidad ha sido implementada para diversos propósitos:

  1. Definición de Fórmulas para Calcular Precios.
  2. Generación de Formatos HTML desde la generación de correspondencia por correo, logrando enviar documentos con presentación gráfica definible.
  3. Definiciones de Procesos para realizar tareas automáticas. Caso Interno, determinar licencias concluidas, crear correspondencia y notificación con el cliente.

22/04/2015

1786 Nuevo programa DpXbase ISRUNMEMO(cMemo), revisa si el contenido del Memo no genera errores de compilación.

22/04/2015

1787 Nuevo programa DpXbase DPCLEARTXT(cMemo), remueve los caracteres ASCII no visuales ingresados mediante (Copiar/Pegar). Ejemplo:

PROCE MAIN(oMemo)

 LOCAL cMemo:=oMemo:GetText(),nResult:=0

 DEFAULT cMemo:=[PROCE MAIN()]+CRLF+[ MsgAlert(“RUNMEMO”) ]+CRLF+”RETURN 0″

 cMemo:=EJECUTAR(“DPCLEARTXT”,cMemo)  // Remueve Carácter no Visuales

 IF EJECUTAR(“ISRUNMEMO”,cMemo)

    nResult:=EJECUTAR(“RUNMEMO”,cMemo)

 ENDIF

 RETURN nResult

22/04/2015

1788 Mejora en function HIMAGEN() clase DPHTMLCLASS, Incluye dos parámetros:

nWidth,nHeight

HIMAGEN(cUrl,cAlign,nWidth,nHeight,lSalto)

Ejemplo:

 oH:HIMAGEN(“http://www.adaptaproyectoserp.com.ve/imagenesweb/AdaptaPro.gif”,; “LEFT”,140,80,.F.)

// EOF

Mayo

05/05/2015

1789 Nuevos campos en el registro del usuario, necesario para incluir firma en documentos generados en formato HTML para ser enviados por Correo.

OPE_EMAIL  (Correo)

OPE_FIRMA  (Firma o Nombre del Usuario)

OPE_TELEFO (Teléfonos)

OPE_EXT    (Extensión de Central Telefónica)

oDp:cCedulaUs:=:=SQLGET(“DPUSUARIOS”,”OPE_CEDULA,OPE_CARGO,OPE_EMAIL,”+;

                 “OPE_FIRMA,OPE_TELEFO,OPE_EXT”,;

                 “OPE_NUMERO”+GetWhere(“=”,oDp:cUsuario))

oDp:cUsCargo  :=DPSQLROW(2,””) // Cargo

oDp:cUsEmail  :=DPSQLROW(3,””) // Correo Electrónico

oDp:cUsFirma  :=DPSQLROW(4,””) // Firma

oDp:cUsTelefo :=DPSQLROW(5,””) // Teléfono

oDp:cUsExt    :=DPSQLROW(6,””) // Extension

08/05/2015

1790 Nuevo método MsgValid(,cMemo,cTitle,nWidth,nHeigh) en clase TCONTROL, Evita crear una función para la validación, muestra en mensaje en formato Memo o Texto, justo en la parte inferior del control, facilitando su visualización Ejemplo:

@1,1 GET oFrm:oValor VAR oFrm:nValor;

     SPINNER;

     PICTURE “9999999” RIGHT;

     VALID oFrm:oValor:MsgValid(oFrm:nValor>0,”Valor debe ser Mayor que Cero”,; “Validación de Valor”)

08/05/2015

1791 Nuevo método MsgErr(cMemo,cTitle,nWidth,nHeigh) en clase TCONTROL, Presenta una ventana contentiva del mensaje y título, en la parte inferior del control, facilitando su visualización

Ejemplo:

@1,1 GET oFrm:oValor VAR oFrm:nValor;

     SPINNER;

     PICTURE “9999999” RIGHT;

     VALID oFrm:VALMONTO();

FUNCTION VALMONTO()

     IF !oFrm:nValor>0

       oFrm:oValor:MsgMemo(“Valor debe ser Mayor que Cero”,;

                           “Validación de Valor”)

       RETURN .F.

    ENDIF

RETURN .F.

25/05/2015

1792 Función para leer desde DpXbase los componente DPSTD GETFILESTD(“FORMS\DPDOCCLI_FAV.EDT”,NIL,.F.,NIL)

Junio

01/06/2015

1793 Mejoras en programa DPTABLASGRID, incluye dos nuevos botones en la edición del grid para incluir campos funcionales:

  1. @@@_FILMAI (File Main DPFILEMAIN para el registro de digitalización de archivos).
  2. @@@_NUMEM (Número de Memo) para vincular con tabla DPMEMO
  3. Opción “Asignar Clave Primaria”

01/06/2015

1794 Nuevo programas DPBUILDMNU, es ejecutado desde el formulario crear programa fuente donde genera un nuevo programa DpXbase contentivo de dos funcionalidades condicionadas a las existencia de los campos @@@_FILMAI y @@@_NUMEM, donde es posible realizar los vínculos con digitalización de archivos y vínculo con memo.

Esta nueva funcionalidad queda sistematizada en el sistema, cuando se utiliza el asistente para crear formularios (LBX) y programas fuentes DpXbase para formularios.

DPBUILDMENU, es llamado desde el formulario que permite crear las plantillas para el browser o lista LBX.

Utiliza la plantilla forms\default_mnu.scr

02/06/2015

1795 Nuevo programas DPMEMOMDIEDIT, Edita un campo MEMO vinculado desde una tabla con la tabla DPMEMO, mediante Formulario MDI. Este programa es llamado desde el programa de menú construido por DPBUILDMNU

Parámetros:

cTable    :=Nombre de la tabla

cFieldKey :=Campo Clave

cFieldMemo:= Campo de dirección MEMO

cCodigo   :=Clave

cTitle    :=Título del formulario

cWhere    :=Condicion de la Tabla para actualizar el registro

DEFAULT cTable    :=”DPINV”,;

        cFieldKey :=”INV_CODIGO”,;

        cFieldMemo:=”INV_NUMMEM”,;

        cCodigo   :=SQLGET(cTable,cFieldKey),;

        cTitle    :=”Editar Memo [“+cCodigo+”] en “+GetFromVar(“{oDp:”+cTable+”}”),;

        cWhere    :=cFieldKey+GetWhere(“=”,cCodigo)

02/06/2015

1796 Nuevo programas DPMEMOSAVE, Almacena el contenido del MEMO en DPMEMO, y Actualiza el registro de la tabla vinculante. Es llamado desde el programa DPMEMOMDIEDIT, mediante el evento (Grabar).

03/06/2015

1797 Nuevo programas DPBUILDCON, es ejecutado desde el formulario crear plantilla

.LBX  para crear el programa fuente donde genera un nuevo programa DpXbase contentivo de las opciones:– Consultar Ficha del Registro– Consultar Auditoria por Registro.– Consultar Auditoria por Campo.– Consultar Campo Memo.– Consultar Digitalización.16/06/20151798 Nuevo programas BRPRGUPDATEDET, Muestras las pistas de auditoría (Fecha,Hora, PC, IP y Usuario) de un programa DpXbase, mediante el botón Visualizar se muestra el código fuente en un formulario de visualización.Permite recuperar programas fuentes mediante copiar y pegar.

Julio

04/07/2015

1799 Nuevo programas DPCTAINTREF, Obtiene del diccionario de datos todas las tablas vinculadas con la tabla DPCTA y evalúa en la tabla DPCTA la existencia de los registros o cuentas inexistentes y crea la cuenta mediante la descripción “Cuenta Recuperada en xTabla”, se ejecuta desde la generación de Integridad referencial de DPCTA con DPASIENTOS.

04/07/2015

1800 Nuevo programas TABLETOINNODB, asigna en cada tabla el tipo de datos INNODB, necesario para generar integridad referencial. Es ejecutado desde el programa DPCHKSTRUCT “Actualizar Estructura de Datos” desde “Procesos” en “Administración del Sistema”.

04/07/2015

1801 Nuevo programa “DPASIENTOCCFIX”, remueve los asientos de centros de costos inconsistentes con la tabla DPASIENTOS. Solo los remueve si existe un solo centro de costos y es ejecutado desde la creación de integridad entre la tabla DPASIENTOS y DPASIENTOSCENCOS.

06/07/2015

1802 Nueva implementación para el uso de etiquetas de campos mediante lectura del diccionario de datos facilitando adaptar el sistema a las denominaciones del usuario u otro idioma. Mediante el programa  DPGETLEVELTABLE, parámetro se realiza la lectura de la descripción de los campos para ser almacenado en la variable oDp:aLevelEn la clase TDPEDIT(), se creo el metodo LEVEL(cField) que devuelve el nombre de la etiqueta del campo . Mediante el método SETLEVEL(cField,cText) Se puede reasignar una nueva descripción a la etiqueta del campo.

Ejemplo:  //  // Campo : OPE_NOMBRE  // Uso   : Nombre o Login  //  @ 2.8, 1.0 GET oUSUARIOS:oOPE_NOMBRE  VAR oUSUARIOS:OPE_NOMBRE ;               WHEN (AccessField(“DPUSUARIOS”,”OPE_NOMBRE”,oUSUARIOS:nOption);                     .AND. oUSUARIOS:nOption!=0);               FONT oFontG  oUSUARIOS:oOPE_NOMBRE:cMsg    :=oUSUARIOS:LEVEL(“OPE_NOMBRE”)+;  “, Formato   [“+ALLTRIM(oDp:cFmtNombre)+”], Longitud [“+LSTR(oDp:nLenNombre)+”]”  oUSUARIOS:oOPE_NOMBRE:cToolTip:=oUSUARIOS:oOPE_NOMBRE:cMsg  @ oUSUARIOS:oOPE_NOMBRE:nTop-08,oUSUARIOS:oOPE_NOMBRE:nLeft;              SAY oUSUARIOS:LEVEL(“OPE_NOMBRE”) PIXEL;              SIZE NIL,7 FONT oFont COLOR nClrText,NIL 

La función LEVELFIELD(cTable,cField), ubicada en DPWIN32.HRB, devuelve el nombre de la etiqueta del campo de la Tabla

12/07/2015

1803 Nueva funciones en programa DpXbase DPHTMLCLASS “Generador Código HTML”HTEXT(cText,cFontName,cRef) // Muestra Texto o presenta referencia de enlace,ejemplo:oH:HTEXT(“Ventajas de Versión 5.1 sobre la versión 5.0″,”AZUL4”,;“http://www.datapronet.com/home/index.php/blog/19-contenido-version-5-1/116-actualizar-a-la-version-5-1-caracteristicas”)HNEWLINE(nLines) // Avance de línea, ejemplo:oH:HNEWLINE(10)

14/07/2015

1804 Implementada funcionalidad para buscar Inicial en Rangos y Criterios en Reportes. Solicitada por usuarios que requiere filtrar datos por Nombre, ejemplo “Nombre del cliente”.La función BDLIST(cTable,aFields,lGroup,cWhere,cFieldFind), mediante el parámetro “cFieldFind”, indica el nombre del campo para “Búsquedas”, ejemplo:

BDLIST(“DPCLIENTES”,{“CLI_CODIGO”,”CLI_NOMBRE”,”CLI_FECHA”},NIL,NIL,”CLI_NOMBRE”)

Presenta un dialogo mediante el programa “REPBDLISTINI”, solicita el nombre del cliente y devuelve la cláusula para la función

BDLIST(cTable,aFields,lGroup,<cWhere<,cFieldFind).

Para la definición del “Action” en el rango se agregó el uso de la Funcionalidad de BRWBROWSE() contentivos de las opciones de Búsqueda. También se puede indicar de manera directa:

EJECUTAR(“REPBDLIST”,”DPCLIENTES”,”CLI_CODIGO,CLI_NOMBRE”,.T.,[CLI_SITUAC=”A”],;NIL,NIL,NIL,NIL,NIL,NIL,NIL,”CLI_NOMBRE”)

14/07/2015

1805 Implementada funcionalidad REPFECHA() de forma asistida en Rango de Reportes. para la cláusula ACTION presenta lista de opciones por campos de fecha y sugiere la función REPFECHA(,) , ejemplo:REPFECHA(“DPCLIENTES”,”CLI_FECHA”)

15/07/2015

1806 Mejora en programa DPVALFECHA(), Valida fecha del Ejercicio y fecha de constitución y finalización de la empresa. Este programa es llamado desde DPDOCCLILOAD Y DPDOCPROLOAD, válida la fecha (Incluir, Modificar y Eliminar) en documentos vinculados con libro de ventas y libro de compras.No se puede Incluir, Modificar o Anular facturas de venta o Compra con fecha fuera del ejercicio económico o fuera del periodo de constitución de la empresa.

20/07/2015

1807 Function SeekTable(), incluye nueva cláusula cWhere, para filtrar el registros solicitados en el scrollget. Ejemplo: Solo seleccionar en proveedores “Tipo de Proveedor Activo”, mediante la sintaxis en la cláusula Validación:

SeekTable(“DPTIPPROVEEDOR”,”TIP_CODIGO”,PRO_TIPO,”DPTIPPROVEEDOR.LBX”,oGet,NIL,NIL,“TIP_ACTIVO=1”)

20/07/2015

1808 Function LbxTable(), incluye nueva cláusula cWhere, para filtrar los registros que serán presentados en el formulario LBX, accionado mediante la clausula “Acción del Botón”

LbxTable(“DPTIPPROVEEDOR”,”TIP_CODIGO”,PRO_TIPO,”DPTIPPROVEEDOR.LBX”,NIL,NIL,“TIP_ACTIVO=1”)

20/07/2015

1809 Nueva Tabla DPTIPPROVEEDOR, incluye el tipo de proveedorProveedorPrestador de ServiciosServicios Públicos” // Este si requiere PlanificaciónAccionistaReceptor TributarioTrabajador”VendedorAcreedorMediante el programa DPTIPROVEE_CREAR, se crean los registros en la tabla DPTIPPROVEEDOR y se ejecuta cuando se genera la integridad referencial. La necesidad de utilizar esta tabla y reemplazar las opciones por campos se debe a la posibilidad de precisar tipos de documentos por Tipo de proveedor como por Por ejemplo, los pagos de IVA son exclusivos para “Receptor Tributario”. Evitando así presentar en la lista de proveedores los “Receptores Tributarios” o “Servicios Públicos”. Además en el caso de los servicios públicos presentar el formulario de planificación y presentar en ERP los deberes “donde se muestran los prestadores de servicios públicos” sin planificación”. Adicionalmente los prestadores de servicios definir el tipo de relación “fija u Ocasional” para también definir la planificación de pagos.

21/07/2015

1810 Tabla DPDIRAPL, se define para almacenar las descargas del sistema y Actualizar los demás PC en la red. La tabla DPFILES queda de uso exclusivo para almacenar los formularios modificados por el usuario. De esta manera se pueden diferenciar las actualizaciones del sistema y las adaptaciones del usuario. DPFILES (No tiene ningún uso en las licencias estándar)

30/07/2015

1811 Nueva carpeta STDSCR, contiene programas dpxbase script en formato TXT, necesarios para actualizar los procesos que ejecutan la actualización remota del sistema. De igual manera los programas DPRECIBOSCLI.TXT y DPCBTEPAGO.TXT son utilizados en la versión estándar para ser ejecutados mediante el programa MEMORUN(cMemo,uPar1,uPar2…)

31/07/2015

1812 parámetro oDb o base de datos en las siguientes funciones:

SqlGetMin(cTabla,cField,cWhere,nLimit,oDb)SqlGetMax(cTabla,cField,cWhere,nLimit,lMax,oDb)DpLbx(cFileLbx,cTitle,cWhere,lPage,cField,uValue,aParam,lDialog,oDb)BDLIST(cTable,aFields,lGroup,cWhere,cFielFind,cOrderBy,oControl,oDb)DPMEMOREAD(nNumMemo,cMemo,cDescri,lMemo,oDb)DPMEMOSAVE(nNumMemo,cMemo,cDescri,oDb )SQLGET(cTable,cField,cWhere,lMsg,oDb)COUNT(cTable,cWhere,oDb)SQLUPDATE(cTable,cWhere,lView,oDb)

Agosto

04/08/2015

1813 Nueva función: RUNSTD(cProgra,p1, p2, p3, p4, p5, p6, p7, p8, p9, p10,,..)

Ejecuta un Programa DPXbase ubicado en DPSTD\dpdxb.dxbxEjemplo:

cCod:=RUNSTD(“REPBDLIST”,”DPCLIENTES”,”CLI_CODIGO,CLI_NOMBRE,CLI_RIF”,.F.,cWhere)

07/08/2015

1814 Nueva programa “DPCONFIGMAIL”, Permite definir la forma de envío de correos por cada usuario. Debido a que los proveedores de ADSL limitan o cierran el envío de correos mediante SMPT o BLAT, hemos logrado implementar con éxito el envío de correos mediante el uso de aplicaciones WEB quien realiza la lectura de registros de la tabla “mails” de MySQL y envía los correos según el contenido registrado en cada campo en cada registro. El programa SENDMAILWEB , realiza la actualización de la tabla “mails” desde el programa BRCLIPERMAIL quien genera archivo HTML desde “Documentos del Cliente o Facturas, Presupuestos”.

Septiembre

03/09/2015

1815 implementación de llave personalizada mediante programa compilado en formato HRB contentivo de datos de la licencia del titulado. Su nombre se Compone del código del producto%licencia.hrb. Solo es válida si no existe conexión a internet. Si luego de la activación el sistema detecta internet, se presenta formulario de activación que solicitará su activación vía internet.

08/09/2015

1816 implementación de funcionalidad “Regístrese”, para quienes desean utiliza el sistema en modo de evaluación por un periodo de 30 días calendario luego de registrarse en el servidor AdaptaPro. Limitaciones:

  • No podrá exceder del periodo ni podrá volver a registrarse con el mismo RIF y el mismo grupo de producto.
  • Al inicio no puede seleccionar empresa.
  • Para cualquiera de los casos el programa HRB no podrá ser utilizado luego del 31/12/2015. Para esta fecha será recopilado. Esto garantiza que el integrador deberá utilizar los últimos instaladores para sus actividades de presentación o demostraciones con clientes.
  • El integrador podrá iniciar proceso de implementación mientras tramita la adquisición de la licencia o actualización. Luego de adquirirla deberá activar la licencia mediante la opción “Activar Licencia” ubicada en “Otros” aplicación “Administración del Sistema”.

09/09/2015

1817 Nuevo programa CONFIGMAIL, permite definir las diversas opciones para el envío de correos. Ahora mediante el programa “SENDMAILWEB”, el sistema genera registros en la tabla “mails”, ubicada en un servidor remoto con servicios para envío Web.

MAIL_HTML”        ,cMemo“MAIL_TITLE”       ,cTitle“MAIL_REMITE”      ,cCorreo“MAIL_TO”          ,Correo destino“MAIL_REMITE_NAME” ,cNombre“MAIL_REMITE_CLAVE”,cClave“MAIL_INTENTOS”   

EL programa de envíos web escrito en PHP será publicado para que el usuario Contrate los servicios de implementación.

16/09/2015

1818 Mejora en programa DPDOCCXP, valida número de facturas con ceros y sin ceros hacia la izquierda, ejemplo: Factura 001010, se valida que no sea incluida la factura 1010 con el mismo proveedor.

21/09/2015

1819 Nuevo programa DPDOCPROFIX, recupera los registros de la tabla DPDOCPRO vinculados con las tablas DPDOCPROCTA,DPDOCPRORTI, DPDOCPROISLR. Esta inconsistencia se genera cuando se pierde la integridad referencial entre las tablas. Los registros recuperados se crean con estado Anulado y de forma Inactiva para no afectar los resultados de CxP, Fiscales no Contables. Este programa se ejecuta cuando se realiza la integridad referencial entre DPDOCPRO con sus tablas relacionadas. Esta anormalidad se detecta cuando se modifica un documento de cuentas por pagar y no se muestran los registros de cuentas contables.

21/09/2015

1820 Nueva función SIN_CEROS(), en DPWIN32.HRB , permite remover los ceros hacia la izquierda de una cadena de caracteres, fue implementado en el programa DPDOCCXP, para validar el registro de documentos sin ceros hacia la izquierda, ejemplo: Validar ingresar dos veces la factura de compra 001010 y 1010.

21/09/2015

1821 Mejoras en Programa DPDOCCXP, Al modificar el documento, se determina si posee retenciones de ISLR y RETENCIONES de IVA, calcula el monto de la retención de IVA según la nueva base imponible. Ejecuta el formulario de retenciones de ISLR para ser modificado por el usuario para lograr recalcular el monto de la retención de ISLR.

21/09/2015

1822 Nuevo browser “CXPVSISLR” que presenta la comparación de los montos de la base imponible de documentos de CxP Vs Retenciones del monto base ISLR.Presenta el botón “ISLR” que facilita modificar la retención, logrando recalcular el monto de la retención.

22/09/2015

1823 Mejora en programa MsgBrowse(),incluye nuevo parámetro oObj que permite indicar la posición donde será presentado el formulario de dialogo y luego de presionar Aceptar o (Si / No), focalizará el control oObjaData,cTitle,aSize,nAlto,nDataLines,aCols,lMsg,oObj

22/09/2015

1824 Nuevo programa ISCONTAB_ACT, determina el asiento contable de una transacción, en el caso que el asiento esté Actualizado, muestra mediante MSGBORWSE detalles del Asiento y niega la ejecución de la opción “Modificar” y “Anular”. El parámetro lDelete=.T., ejecuta la eliminación de los asientos en En el caso que no estén actualizados. La eliminación de Asiento “No actualizados se realiza en el método PRESAVE de cada formulario.Parámetros:

cNumCbt,dFecha,cTipDoc,cNumDoc,cTipTra,cDocPag,cOrg,lDelete,oObj

23/09/2015

1825 Mejora en programa “DPCTABANCOMOV”, Movimientos bancarias, luego de permitir modificar una transacción contabiliza y con asientos por Actualizar, remueve de la tabla DPASIENTOS los asientos contables vinculados con el movimiento bancario. Al finalizar en el método “POSTGRABAR”, realiza nuevamente el proceso de contabilización facilitando modificar, revertir y re contabilizar transacciones bancarias. Opción Consultar muestra los asientos contables del movimiento bancario.

23/09/2015

1826 Nuevo Browser “MOBB_ASIENTOS”, presenta los registros de movimientos Bancarios que no están contabilizados según relación con asientos contables.Solo se muestran los movimientos Bancarios registrados directamente desde el formulario “Movimientos Bancarios”.

24/09/2015

1827 Nuevo Browser “DOCMD”, presenta un formulario contenido de un input para introducir comandos que podrán ejecutar funciones del programa binario. Esta funcionalidad está diseñada específicamente para manipulación de datos de tablas SQL mediante las funciones OpenTable(),SQLUPDATE(),SQLDELETE() también para el uso de tablas DBF mediante el comando USE, DELETE, REPLACEComandos predefinidos

LOCAL <xVar:=uValue>

// Define VariablesCLS 

// EXIT                

// Cierra el formulario

Octubre

01/10/2015

1828 Nueva función URLDownLoad(cUrl,cSaveAs), permite descargar un archivo desde un sitio web.

Ejemplo: 

 LOCAL cUrl:=”http://www.datapronet.com/home/images/cf11.png” LOCAL cTo :=”c:\x\cf11.png”  FERASE(cTo)  URLDownLoad(cUrl,cTo)  IF FILE(cTo) MsgRun(“Mostrando “+cTo,”Por Favor Espere”,; {||SHELLEXECUTE(oDp:oFrameDp:hWND,”open”,cTo)})  ELSE    MsgAlert(“No se pudo descargar “+cTo) ENDIFRETURN NIL// EOF

06/10/2015

1829 Programa DPDOCCONTAB, cuando se contabiliza documento y tiene asientos contables, los mismos son removidos y el proceso de contabilización no se ejecuta.

 IF oTable:DOC_ESTADO=”NU” oTable:End() RETURN .F.  ENDIF

06/10/2015

1830 Mejoras en programa Retenciones de IVA Proveedores. El proceso de anulación de Retención, Revisa si el comprobante contable esta actualizado. En caso que la retención esté contabilizada y en asientos “diferidos”, estos serán removidos. Fue agregado el Botón Consulta que permite acceder a las opciones de consulta del documento y Botón Menú, para acceder a funciones como “Contabilizar, Digitalizar e Imprimir”

06/10/2015

1831 Nuevo Campo TIP_SINCRE en Tabla DPIVATIP (Tipo de IVA) con el objetivo de registrar la cuenta contable para generar el asiento del IVA de las compras sin derecho a crédito fiscal.

07/10/2015

1832 Nuevo Programa “DPTABLEUPLNK(cTable,cField,cNew,cOld)” ejecutado desde post-grabar en programa DPCTA, lee el diccionario de datos y evalúa si cNew es diferente con cOld, realiza la actualización en las demás tablas vinculadas con la tabla principal (DPCTA). Implementado en DPINV,DPCLIENTES y DPPROVEEDOR.Optimizado el 14/10/2015 para evitar recargas del diccionario en cada proceso de modificación. También el diccionario de datos fue actualizado para las relaciones virtuales entre tablas maestras con la tabla DPTABXSUC (Limitan registros por sucursales) facilitando la actualización de códigos en la tabla DPTABSUC cuando se modifica un registro en la tabla maestra.

07/10/2015

1834 Nuevo Método  BtnCancelOff() en Clase TDOCENC (Encabezado de Documentos), inhabilita el Botón Cancelar cuando altera (modifica, Agrega o Elimina) un Registro del Grid. Esta funcionalidad asegura la ejecución de los procesos “POSTGRABAR” del documento. Para ser implementado de manera directa (Caso de retenciones de ISLR) se puede utilizar el siguiente código.

FUNCTION DOCBTNCANCELOFF() LOCAL nAt:=ASCAN(oDpDocIslr:aBtn,{|aBtn,n| aBtn[7]=”CANCEL” }) IF nAt>0 oDpDocIslr:aBtn[nAt,1]:bWhen:={||.F.} oDpDocIslr:aBtn[nAt,1]:ForWhen(.T.) oDpDocIslr:oBar:Refresh(.T.) ENDIFRETURN .T.

08/10/2015

1835 incluido archivo de cabecera include\dpreport.ch en include\dpxbase.ch.Para las licencias estándar la carpeta include solo tendrá declaraciones y archivos necesarios para procesos automáticos y reportes. Los nuevos reportes se crean (según modelo forms\report.rep) con dpxbase.ch y no incluye dpxreport.ch

08/10/2015

1834 Nuevo programa “DPTIPDOCCLICON”. Menú de consulta desde tipo de documento, incluye opción “Documentos” que muestra Browser de registros de documentos. Para el caso de retenciones de ISLR se muestra browser vinculado con la Vista “VIEW_DPDOCCLIRET”.

14/10/2015

1835 Nuevo programa “DPTABSETSUC”, Se ejecuta luego que se crea un registro en la tabla de: Clientes, Productos o Proveedor. Realiza el registro en la tabla DPTABXSUC logrando asignar a la sucursal el vínculo con el registro incluido.

15/10/2015

1836 Nuevo programa “BRDPDOCCLICXC”, Se ejecuta desde consultar tipo de documento solo para documentos que afectan cuentas por cobrar. Utiliza la nueva vista VIEW_DPDOCCLIPAGRES (Resumen de documentos pagados). Esta consulta incluye consulta “Monto Pagado” y determina el monto pendiente por Cobrar en cada documento.16/10/20151837 Nuevo programa “BRTIPDOCCLI”, Se ejecuta desde consultas browser, muestra de manera resumida el total por tipo de documento para clientes. El botón Browser muestra en detalle los registros de la tabla DPDOCCLI.

Noviembre

02/11/2015

1838 Nuevo programa “LBXPRGEXPORT”, es ejecutado desde dpprogra.lbx botón exportar, obtiene los códigos de los programas mostrados en el browser y permite ser exportados mediante el programa “exportar programas fuentes”. Esta funcionalidad permite ubicar todos los programas según el nombre de una tabla, variable, campo o similar para ser exportando facilitando generar nuevas aplicaciones como por ejemplo: Generar DpWinContab según los nombre de las tablas, campos y variables oDp:cCtaMod0

03/11/20151839 Descarga de archivos en formato Excel de factores del IPC mediante la función URLDownloadToFile(). El programa BCVINPC escrito DpXbase se descargan los valores del IPC e INPC para actualizar la tabla DPIPC

03/11/2015

1840 Nuevo campo en tabla DPPCLOG, tiene como objetivo inactivar por PC el proceso de actualización de Base de datos cuando se selecciona empresa. Para usuarios remotos este proceso es muy lento. Nuevo formulario DPPCLOG, permite indicar por PC: Activo, Actualiza el sistema de manera remota y Actualiza Estructura de Datos.

04/11/2015

1841 Nuevo programa “DPDEFUPDATESAV”, autodefine los datos del PC (Según nombre del PC) que realizará la actualización remota del sistema.  Este programa se ejecuta desde el programa DPPCLOG, luego de registrarse. También se ejecuta desde el formulario DPPCLOG cuando de activan/Inactivan PC y se indica si el PC actualizara el sistema de manera remota.

04/11/2015

1842 Implementado, restricción de usuarios en clasificación de Browser y Browser. Con el objetivo de precisar acceso de consultas browser por usuarios.Desde el programa “Privilegios” del formulario de usuarios también se puede Definir los accesos a la clasificación de Browser y Clasificación de Browser.

04/11/2015

1843 Programa BTNCANCELOFF() debe ser llamado desde las funciones :GRIDPOSTSAVE y GRIDPOSTDELETE con el objetivo de inactivar el botón “Cancelar”, luego que ha sido alterado el cuerpo de un documento, asegurando que el usuario concluya el documento mediante el botón “Guardar”, evitando el cierre de documentos no totalizados.

Ejemplo en VTAGRIDPOSTSAVE// No es necesario en Versión 5.1IIF(oDp:nVersion<5.1,EJECUTAR(“DOCBTNCANCELOFF”,oDoc),NIL)

12/11/2015

1844 Nueva función CREATERECORD(cTable,aFields,aValues,aLink) incluida en DPWIN32 crea registros en la Tabla cTable, según la clave aFields y Valores aValues. Utiliza el programa CREATERECORDLNK para obtener los vínculos y mediante el programa CREATERECORD realiza la actualización de los datos en la Tabla. Debido a la necesidad de recursividad está incluido en DPWIN32.HRB.Esta funcionalidad está diseñada específicamente para la transferencia de datos donde no implique la necesidad de cumplir con las reglas de integridad referencial. Caso AdaptaPro Contabilidad importa vía internet los datos mínimos y necesarios desde la BD del SGE para generar libros fiscales y asientos de contables.Ejemplo para crear producto indefinido:

  LOCAL oTable,cWhere:=””,I   DEFAULT cTable :=”DPINV”,; aFields:={“INV_CODIGO”},; aValues:={“INDEFINIDO”}   IF ValType(aFields)=”C” aFields:={aFields}   ENDIF   IF ValType(aValues)=”C” aValues:={aValues} ENDIF CREATERECORD(cTable,aFields,aValues,NIL)

23/11/2015

1845 Tabla DPINV, Campo INV_UTILIZ, Ahora posee 30 caracteres, contentivo del texto de la utilización del producto.V=VentasE=EventosH=HonorariosF=FabricaciónA=AlquilerS=ServiciosR=ReparaciónM=Materia PrimaT=Tareas InternasObjetivos:

  • Indicar por tipo de documento de cliente o Proveedor cuál tipo de producto podrá ser utilizado. Ejemplo: Facturación Ventas, solo productos para la Venta.
  • Precisar códigos de productos para Tareas Internas. En esta funcionalidad Se generan calendarios de actividades de la empresa. Como por ejemplo: gestionar el reclamo de un cliente.
  • Eventos: Implementado internamente en AdaptaPro para la gestión de cursos y eventos. Esta funcionalidad también puede ser aplicada a clientes que realizan actividades donde involucra personal del cliente y Personal interno de la empresa. Para caso de empresas de eventos es necesario vincular con un centro de costo.
  • Servicios: Requiere un formulario específico para productos de servicios.
  • Honorarios: Requiere indicar fecha y Hora del servicio.
  • Alquileres: Para la implementación de servicios de alquiler que requiere la entrega de un producto con el cálculo de alquiler más el retorno del producto.
  • Reparación: Para empresas que prestan servicios de reparación donde recibe un producto con sus descripción, más reporte de falla.

El programa DPINVSETUTILIZ realiza la conversión de datos en este campo y esllamado desde el programa SQLDB_UPDATE

24/11/2015

1846 Nuevas Tablas DPINVUTILIZ y DPTIPDOCCLIUTILIZ contiene vinculo tipo de documento del cliente y mediante el formulario “Utilización de Productos por tipo de documentos” y programa “DPTIPDOCCLIUTILIZ”  se puede indicar por tipo de documento del cliente cuales son los productos según “Utilización” que serán mostrados en el browser para seleccionar productos. El programa “DPDOCCLIPAR” realiza la lectura de utilización por tipo de documento y el programa “DPFACTURAV” incluye condición de filtrado para presentar lista de productos. Si el tipo de documento no posee definiciones, el sistema accede a todos los productos de la tabla

DPINVoCol:cWhereListBox:=”INV_ESTADO”+GetWhere(“=”,”A”)+” AND “+; “(INV_APLICA”+GetWhere(“=”,”V”)+; ” OR INV_APLICA”+GetWhere(“=”,”T”)+”)”+; IIF(!Empty(oDoc:cWhereInv),” AND “,””)+; oDoc:cWhereInv

Necesario revisar el contenido

oDocCli:lDpEquiv oCol:cListBox :=”DPINVEQUIV.LBX”

27/11/2015

1847 Nueva Opción en Otros y Programación “Subir Browser hacia eManager”, permite a desarrolladores de AdaptaPro y Usuarios con licencias Open Source, subir las consultas SQL diseñadas para BRWMAKER hacia la base de datos dpquery de eManager con el objetivo que el afiliado pueda ejecutar las consultas vía internet sobre su base de datos operacional. AdaptaPro Valida que el RIF de la licencia esté afiliado en eManager para lograr subir las consultas personalizadas e identificadas según el RIF de la licencia adquirida por el Usuario.

27/11/2015

1848 Nuevo método ::CreaRegIntRef() en clase ttable para la creación de registros de integridad referencial omitidos. Este método utiliza el programa DPCREAREGINTREF escrito en DpXbase. Esta funcionalidad es necesaria para el proceso de transferencia de datos vía internet e importación de datos desde excel.Ejemplo para su implementación:// Este ejemplo, incluye 10 nuevos clientes sin necesidad de indicar los// campos que requieren integridad referencial

LOCAL oTable,I  FOR I=1 TO 10 oTable:=Opentable(“SELECT * FROM DPCLIENTES”,.F.) oTable:Replace(“CLI_CODIGO”,LSTR(I)+”I”+STRZERO(SECONDS(),10)) oTable:Replace(“CLI_NOMBRE”,”Hoy “+STRZERO(SECONDS(),10)) oTable:CreaRegIntRef() // También EJECUTAR(“DPCREAREGINTREF”,oTable) oTable:Commit() oTable:End()NEXT IRETURN NIL

Mediante la Variable: oDp:lCreaIntRef:=.T. // Valor por defecto Para activar o inactivar este proceso se define en el archivo DATAPRO.INI, y su lectura se realiza mediante :

lCreaIntRef    :=oDp:lCreaIntRefMETHOD Commit( cWhere , lReload , lJoin , lIni , lCreaIntRef) CLASS Ttable  DEFAULT oDp:lCreaIntRef:=GETINI(“DATAPRO.INI”,”CREAINTREF”,.T.),;          lCreaIntRef    :=oDp:lCreaIntRef   // Crea Integridad Referencial   IF lCreaIntRef     ::CreaRegIntRef()   ENDIFRETURN .T.

27/11/2015

1849 Nuevo método ::ISFIELD() en clase ttable determina si existe campo en el cursor SQL según la estructura indicada en ::aStruct()

27/11/2015

1850 Nuevo programa: DPLEELIBVTA, realiza lectura datos desde un servidor MYSQL remoto vía Internet para generar libros de ventas. Obtiene datos básicos de la tabla DPDOCCLI (Sin productos).

30/11/2015

1851 Nueva función SETDBSERVER(oDb), diseñada para asignar a otra base de datos conectada a otro servidor (MySQL Remoto) para acceder a las funcionalidades del sistema sin necesidad de desconectarse del servidor local.La clase DPLBXRUN() obtiene el servidor asignado mediante la función SETDBSERVER() y muestra los datos de la tabla del servidor asignado.Además el formulario de edición de datos, mediante la clase TDPDEDIT() también funciona con el servidor de BD indicado en DPLBXRUN() y mediante la clase ScrollGet() se accede a todos los formularios DPBLX(). Es necesario realizar los siguientes cambios en los programas de los formularios TDPEDIT()oTable:=OpenTable(cSql,!Empty(cCodigo),GETLBXDB())La nueva función GETLBXDB(), obtiene de la base de datos asignada al formulario DPLBX()Aplicaciones:

  • Lograr funcionalidad del sistema multi-servidor de manera simultánea con la base de datos loca.
  • Facilitarle al contador (prestador de Servicios Externo y Remoto) lograr acceder y modificar datos de sus clientes como por ejemplo: Modificar una factura de compra, comprobante de pago, documentos o cualquier dato sin necesidad de su presencia física en las instalaciones de su cliente.

La función SETDBSERVER(), devuelve el objeto de la base de datos.SETDBSERVER(), release del objeto de la base datos.Implementación en clase TDOCENC,TDOCGRID y TGRIDCOL. Toda ejecución de funciones DpXbase llamadas desde estas clases ejecutan SETDBSERVER(::oDb) para que las funciones SQLGET(),COUNT(),SQLGETMIN(),SQLGETMAX() utilicen el valor por defecto de la base de datos remota (oDp:oDbServer) mediante la función GETDBSERVER().Ejemplo:

LOCAL lConectar   DEFAULT cServer:=STRZERO(2,5)   MsgRun(“Conectando con Servidor “+cServer+” [“+ALLTRIM(SQLGET(“DPSERVERBD”,”SBD_DOMINI”,”SBD_CODIGO”+GetWhere(“=”,cServer)))+”]”,;         “Por Favor Espere”,{||lConectar:=EJECUTAR(“DPSERVERDBOPEN”,cServer)})   IF !lConectar      RETURN .F.   ENDIF   SETDBSERVER(oDp:oDb)   DPLBX(“DPCLIENTES.LBX”,”Clientes en servidor “+cServer,NIL,NIL,NIL,NIL,NIL,NIL) // ,oDp:oDb)   SETDBSERVER(oDp:oDb)   EJECUTAR(“DPCLIENTES”)

Diciembre

02/12/2015

1852 Nuevo Programa “DPCLIENTESBUSCAR”, se ejecuta desde la ficha del cliente, Presente formulario que solicita: Nombre, Teléfono y correo para que el sistema realice la búsqueda según nombre del cliente o nombre del personal vinculado con el cliente. Luego de introducir los datos, se presenta browser contentivo de los registros encontrados para que el usuario seleccione un de ellos y se refresque el formulario de compras. También fue ampliado el programa “FINDSOUND” que permite ubicar nombre con acentos y sin acentos.Ejemplo: Buscar a Cesar, incluirá en la búsqueda los siguiente comodines:César,Sesar,Cesar y Kesar. (La C y la K) produce el mismo sonido.

02/12/2015

1853 Nueva funcionalidad en método OpcButtons() en clase tdpedit() que permite agregar en la barra de botones mas botones condicionados según clausula <[cWhere]>Sintaxis:

oFrm:OpcButtons(“ToolTips”,”file.bmp”,<[cAction]>,<[cWhen]>)

Ejemplo: En el formulario del Clientes, se agrega nueva funcionalidad que permite buscar clientes según nombre mediante el programa “DPCLIENTESBUSCAR”. Ahora el botón se activa cuando el formulario no está en edición “oFrm:nOpcion=0” o cuando se activa la opción Buscar “oFrm:nOption=4”. El avance consta en que estas opciones sólo estaban disponibles cuando el formulario no estaba en edición. Ahora se puede agregar más funcionalidades cuando el formulario se activa en modo edición (Incluir o Modificar).

oCLIENTES:OpcButtons(“Buscar Cliente por Nombre, Teléfono y correo”,; “XFINDPRG.BMP” ,;[oCLIENTES:BUSCARXNOMBRE()],[oCLIENTES:nOption=0 .OR. oCLIENTES:nOption=4])

Mediante la siguiente sintaxis se puede conocer el contenido de las botones: 

ViewArray(oFrm:aOpcButtons) ViewArray(oFrm:aButtons)

03/12/2015

1854 Nuevo programa “DPMENURUNSERVER”, presenta formulario contentivo de las opciones del menú local, que permite ejecutar el sistema conectado con la base de datos remota definido en el registro de servidores previamente seleccionado. Desde el formulario “Servidores de bases de Datos”, opción “menú” presenta un formulario de menú contentivo de diversas opciones vinculadas directamente con el Servidor.Todos los formularios diseñados mediante la clase TDPEDIT() y DPDOCENC() requiere la siguiente definición:

oTable:=OpenTable(cSql,.F.,GETDBSERVER())

Mediante el programa:EJECUTAR(“DPSERVERDBOPEN”,cServer) realiza la conexión con la base de datos indicado en el servidor “cServer”La función: GETDBSERVER() obtiene el nombre de la base de datos asignadas previamente mediante la función SETDBSERVER(oDp:oDb), el Objeto: oDp:oDb (Conector con la Base de Datos).

03/12/2015

1855 Mejora en clase ttable(), mediante la función Opentable(cSql,.t.,oDb) para facilitar la implementación del uso de BD vía internet (remoto), el parámetro oDb es asumido por defecto por la Base de datos indicada mediante SETDBSERVER(oDp:oDb), para evitar colisión de tablas con el BD del diccionario de datos y BD de configuración (Empresas, Usuarios, etc)

IF Empty(oDb) .AND. !Empty(cDsn) .AND. cDsn=oDp:cDsnData .AND. !Empty(GETDBSERVER()) oDb:=GETDBSERVER() SETDBSERVER() // Remueve AsignaciónENDIF

Luego que se ejecuta SETDBSERVER(oDp:oDb) desde el menú de ejecución, es heredado por la clase DPLBXRUN() quien le asigna desde esta clase la ejecución:SETDBSERVER(oDpLbx:oDb) desde todos los botones del formulario. Cuando se ejecuta Modificar, Consultar o Incluir, nuevamente es heredado desde OpenTable().

03/12/2015

1856 nueva función SETDIALOG(.T.), indica al sistema que el formulario DPLBX() se presenta como caja de diálogo. Los formularios TDPEDIT() para incluir, modificar, consultar también será presentado en formato de Diálogo.El control BMPGET del formulario que acceder a formularios LBX() requiere las siguiente sintaxis:

@ 4,0 BMPGET oCTABANCO:oBCO_CODMON  VAR oCTABANCO:BCO_CODMON ;      VALID oCTABANCO:oDPTABMON:SeekTable(“MON_CODIGO”,oCTABANCO:oBCO_CODMON,NIL,oCTABANCO:oMON_DESCRI);      NAME “BITMAPS\FIND.BMP”;      ACTION (oDpLbx:=DpLbx(“DPTABMON”,NIL,NIL,NIL,”MON_CODIGO”,NIL,NIL,oCTABANCO:lDialog,oCTABANCO:oDb,oCTABANCO:oBCO_CODMON), oDpLbx:GetValue(“MON_CODIGO”,oCTABANCO:oBCO_CODMON));      WHEN (AccessField(“DPCTABANCO”,”BCO_CODMON”,oCTABANCO:nOption);            .AND. oCTABANCO:nOption!=0);            FONT oFontG;            SIZE 12,10

Ejemplo: SETDIALOG(.T.) // Asigna formularios en Dialog DPLBX(“DPCTABANCO.LBX”) SETDIALOG(.F.)

07/12/2015

1857 nuevas funciones para manipular el acceso a las opciones referentes al mapa de acceso por tablas. Requiere dpwin32.hrb

SETTABINC(cTable,lAccess) // IncluirSETTABCON(cTabla,lAccess) // ConsultarSETTABMOD(cTabla,lAccess) // ModificarSETTABELI(cTabla,lAccess) // EliminarSETTABPRN(cTabla,lAccess) // ImpresiónSETTABAUD(cTabla,lAccess) // Registro de pistas de AuditoríaSETTABQRY(cTabla,lAccess) // Consultras Browse.SETTABMNU(cTabla,lAccess) // Acceso al Menú de OpcionesEjemplo:SETTABINC(“DPCTABANCO”,.T.) // Se puede Incluir   cuentas BancariasSETTABCON(“DPCTABANCO”,.F.) // No puede Consultar cuentas BancariasSETTABMOD(“DPCTABANCO”,.T.) // Se puede Modificar cuentas BancariasSETTABMNU(“DPCTABANCO”,.F.) // No Accede al Menú de Opciones.

07/12/2015

1858 nuevas funcionalidades en el mapa de acceso. Se incluyen dos nuevas opciones para restringir.

  • Acceso a la opción “Menú”.

// Menú de OpcionesBTN06_BMP    :=MENU.bmpBTN06_ACTION :=EJECUTAR(“DPCTABANCOMNU”,oCursor:BAN_CODIGO, oCursor:BCO_CTABAN,oCursor:BAN_NOMBRE)BTN06_WHEN   :=!oCursor:Eof()BTN06_TOOLTIP:=Menú de OpcionesBTN06_MESSAGE:=Menú de OpcionesBTN06_TYPE   :=MENU

  • Acceso a la opción “Consultar Browser”. Ejecuta las consultas Browser vinculadas con la tabla indicada en el formulario .LBX

// Ejecutar QueryBTN07_BMP    :=QUERY.BMPBTN07_ACTION :=oDpLbx:Query()BTN07_WHEN   :=.T.BTN07_TOOLTIP:=Ejecutar Query de BúsquedaBTN07_MESSAGE:=Ejecutar Query de BúsquedaBTN07_TYPE   :=QUERYTabla DPMAPTABCPO, Incluye dos campos lógicos.CMT_MENU  (Restringe menú de opciones en formulario LBX)CMT_QUERY (Restringe Browse de Consultas/Query desde formulario LBX)

Programa: LEEMAPAS, realiza lectura de mapa por tabla, incluye dos columnas nuevas en la variable oDp:aMapaTabNuevas funciones en el programa binario.ISTABMNU(cTable) devuelve .t. si la tabla tiene acceso a la opción “Menú”ISTABQRY(cTable) devuelve .t. si la tabla tiene acceso para acceder a las consultas “Browser” vinculadas.

08/12/2015

1859 Posicionar Formulario DPLBX justo debajo del control BMPGET en formulario TDPEDIT y DPDOCENC. Ejemplo mediante objeto oFrm:oVar:

@ .1,06 BMPGET oFrm:oVar VAR oFrm:cVar; VALID .T.; NAME “BITMAPS\CLIENTE2.BMP”; ACTION (oDpLbx:=DpLbx(“DPCLIENTES”,NIL,”CLI_SITUAC=’A’ OR CLI_SITUAC=’C'”,NIL,NIL,NIL,NIL,NIL,NIL,oFrm:oVar),; oDpLbx:GetValue(“CLI_CODIGO”,oFrm:oVar)); WHEN .T. SIZE 48,10

10/12/2015

1860 Nuevo campo ENT_CODSUC en tabla DPCLIENTEENT con integridad referencial con tabla DPSUCURSAL que permite registrar y conocer las entrevistas realizadas por sucursal. El programa SETSUCCLIENT, asigna por defecto el código de sucursal oDp:cSucursal con contenido NULL

18/12/2015

1860 Nuevo programa DpXbase SETACCESSFIELD(cTable,cField,lNoAccess,nOption) restringe el acceso editar el campo en el formulario de edición de la tabla , la función devuelve el valor Anterior del acceso al campo con el objetivo de luego restaurarlo. Ejemplo:

EJECUTAR(“SETACCESSFIELD”,”DPCTABANCO”,”BCO_CODSUC”,.T.,1)EJECUTAR(“SETACCESSFIELD”,”DPCTABANCO”,”BCO_CUENTA”,.T.,1)EJECUTAR(“SETACCESSFIELD”,”DPCTABANCO”,”BCO_CODSUC”,.T.,3)EJECUTAR(“SETACCESSFIELD”,”DPCTABANCO”,”BCO_CUENTA”,.T.,3)? ACCESSFIELD(“DPCTABANCO”,”BCO_CODSUC”) // Mostrará .f.? ACCESSFIELD(“DPCTABANCO”,”BCO_CUENTA”)ViewArray(oDp:aMapaCampos)

20/12/2015

1861 Nueva opción “Ejercicios contables” en “ficheros” en aplicación contabilidad, permite conocer los ejercicios contables ubicados en la tabla DPEJERCICIOS. Solo esta disponible la opción “Eliminar” que permite remover los ejercicios innecesarios o creados indebidamente por cambio de fecha errónea. El programa DPEJERCIPSBUG, remueve los ejercicios con fechas o número vacío. Este programa se ejecuta cuando se genera la integridad referencial entre la tabla DPEJERCICIOS con DPCBTE. Este formulario fue extraído de la versión 6.0 quien requiere la cuenta DPCTAMODELO y Vistas referenciadas con cierres contables.

22/12/2015

1862 Nueva opción “Utilización de Productos” en “ficheros” en aplicación Inventarios, presenta mediante browser LBX el contenido de la tabla DPINVUTILIZ y vinculada con la tabla DPINV permitiendo conocer la cantidad de productos vinculados por su utilización. El primer botón muestra lista de los productos vinculados.

22/12/2015

1863 Nueva opción “Definición de Tareas Internas”, de definiciones de la empresa, permite crear productos para tareas internas en la tabla DPINV. Posee su propio formulario y no solicita datos de tablas vinculadas como: Grupo, IVA, ni Marca. Esta funcionalidad obedece a necesidad donde las actividades las realiza personal que no es usuario del sistema. Sin embargo está en implementación tareas del usuarios de la misma forma.

26/12/2015

1864 Mejora en programa LOADSTRUCT quien carga la estructura de las Tablas para su creación o Modificación. Ahora incluye la comparación de Longitud de para lograr modificar la nueva estructura según la longitud mayor entre el Diccionario y el campo físico de la BD. Esta funcionalidad evita mostrar el mensaje de incidencia generado por el gestor de BD cuando no puede truncar La longitud de un campo previamente ampliado por el DBA de la Base de datos.

27/12/2015

1865 Nuevo Programa “DPTABLEFIXINT”, repara registros de integridad referencial (Por ahora enlaces con un solo campo), es ejecutado por el programa BUILDINTREF. Determina registros con valores nulos, crea en la tabla origen un nuevo registro con código “Nulo” y luego actualiza a todos registros vinculados con el nuevo valor nulo. Si el vínculo no es nulo, es un código sin vinculo, mediante la función CREATERECORD(), crea el registro en la tabla enlazada.

28/12/2015

1866 Nuevo Programa DPPRIMARYFIX, Revisa si existen registros con duplicidad según la clave PRIMARY KEY, remueve los campos duplicados antes de realizar la ejecución de integridad referencial, previamente realiza copia de registros en la carpeta “RECORDUNIQUE”+DTOS(oDp:dFecha). Este programa es ejecutado desde el programa “DPTABLAPRIMARY” quien genera la integridad referencial.

28/12/2015

1867 Nuevo Programa SETFIELDLONG(cTable,cField), Actualiza de manera directa la longitud de campo según tabla , además actualiza el diccionario de datos. Solo cambia la longitud en caso que sea requerido incrementar el tamaño del campo. Utilizado en el programa  “DPINVSETUTILIZ”.

29/12/2015

1868 Nuevas vistas derivadas de las transacciones de inventarios (DPMOVINV)Existencia Contable VIEW_INVEXICONExistencia Fisica   VIEW_INVEXIFISExistencia Lógica   VIEW_INVEXILOGMedida Presentación VIEW_INVMEDPRESENTACION, se genera desde DPINVMED, contiene un nuevo campo IME_MEDPRE que permite indicar cuál será la medida de presentación cuando se requiere presentar en un Browser la medida en que se comercializa el producto, ejemplo un mayorista que vende productos por cajas, o un minorista que compra por cajas y vende por unidades. 

SELECT INV_CODIGO,INV_DESCRI, EXC_CANTID/IME_CANTID AS CONTABLE,EXF_CANTID/IME_CANTID AS FISICO, EXL_CANTID/IME_CANTID AS LOGICO,IME_UNDMED AS MEDIDA,IME_CANTID AS UNIDADES FROM DPINV LEFT JOIN VIEW_INVEXICON ON INV_CODIGO=EXC_CODIGO LEFT JOIN VIEW_INVEXIFIS ON INV_CODIGO=EXF_CODIGO LEFT JOIN VIEW_INVEXILOG ON INV_CODIGO=EXL_CODIGO LEFT JOIN VIEW_INVMEDPRESENTACION ON INV_CODIGO=IME_CODIGO

29/12/2015

1869 Nuevo programa “DPLISTATOVISTA”, por cada tipo de precio o catálogo de precios genera una nueva vista en la tabla DPVISTAS con el objetivo de contar tablas o vistas contentivas de precios   en forma de columnas. Este programa se genera desde DPLOADCNF o cuando se crea una nueva lista de precios

“DPPRECIOTIP”.SELECTPRE_CODIGO AS CODIGO_,PRE_PRECIO AS PRECIO_,PRE_UNDMED AS MEDIDA_,PRE_MONEDA AS MONEDA_FROM DPPRECIOSWHERE PRE_LISTA=GROUP BY PRE_CODIGO,PRE_MONEDAORDER BY PRE_CODIGO,PRE_MONEDA

Ejemplo:

SELECT  PRE_CODIGO AS CODIGO_A,PRE_PRECIO AS PRECIO_A,PRE_UNDMED AS MEDIDA_AFROM DPPRECIOSWHERE PRE_LISTA=’A’  AND MONEDA_A+GetWhere(“=”,oDp:cMoneda)GROUP BY PRE_CODIGOORDER BY PRE_CODIGOSELECT INV_CODIGO,INV_DESCRI,EXC_CANTID/IME_CANTID AS CONTABLE,EXF_CANTID/IME_CANTID AS FISICO,EXL_CANTID/IME_CANTID AS LOGICO,IME_UNDMED AS MEDIDA,IME_CANTID AS UNIDADES,PRECIO_A,PRECIO_B,PRECIO_C,PRECIO_D,MOV_FECHA AS ULT_FECHA,MOV_HORA  AS ULT_HORA,MOV_CANTID AS ULT_CANTID,MOV_CXUND AS ULT_CXUND,MOV_TOTAL/(MOV_CANTID*MOV_CXUND) AS ULT_COSTO,COM_TOTAL,COM_CANUND,COM_PROMEDIOFROM DPINVLEFT JOIN VIEW_INVEXICON ON INV_CODIGO=EXC_CODIGOLEFT JOIN VIEW_INVEXIFIS ON INV_CODIGO=EXF_CODIGOLEFT JOIN VIEW_INVEXILOG ON INV_CODIGO=EXL_CODIGOLEFT JOIN VIEW_INVMEDPRESENTACION ON INV_CODIGO=IME_CODIGOLEFT JOIN VIEW_DPPRECIO_A ON INV_CODIGO=CODIGO_A AND IME_UNDMED=MEDIDA_ALEFT JOIN VIEW_DPPRECIO_B ON INV_CODIGO=CODIGO_B AND IME_UNDMED=MEDIDA_BLEFT JOIN VIEW_DPPRECIO_C ON INV_CODIGO=CODIGO_C AND IME_UNDMED=MEDIDA_CLEFT JOIN VIEW_DPPRECIO_D ON INV_CODIGO=CODIGO_D AND IME_UNDMED=MEDIDA_DLEFT JOIN VIEW_INVULTIMACOMPRA ON INV_CODIGO=ULT_CODIGOLEFT JOIN DPMOVINV ON ULT_CODSUC=MOV_CODSUC AND ULT_CODIGO=MOV_CODIGO AND ULT_FCHHOR=CONCAT(MOV_FECHA,MOV_HORA)LEFT JOIN VIEW_INVVALCOMPRAS ON ULT_CODSUC=COM_CODSUC AND ULT_CODIGO=COM_CODIGOGROUP BY INV_CODIGO

29/12/2015

1870 Nueva Vista VIEW_INVULTIMACOMPRA, Obtiene por sucursal y código la fecha y hora de la última transacción de compra. Mediante la siguiente consulta se obtiene el último costo

SELECTMOV_CODSUC,MOV_CODIGO,MOV_FECHA,MOV_HORA,MOV_COSTO,MOV_CXUND,MOV_CANTIDFROMVIEW_INVULTIMACOMPRAINNER JOIN DPMOVINV ON ULT_CODSUC=MOV_CODSUC AND ULT_CODIGO=MOV_CODIGO AND ULT_FCHHOR=CONCAT(MOV_FECHA,MOV_HORA)

31/12/2015

1871 Nueva Vista VIEW_INVVALCOMPRAS, Obtiene por sucursal y código de producto el total (Costo y Cantidad) de productos comprados o ingresados, logrando obtener costo promedio según el total de las productos comprados entre la cantidad de unidades compradas. Origen de la Vista:

SELECTMOV_CODSUC AS COM_CODSUC,MOV_CODIGO AS COM_CODIGO,SUM(MOV_TOTAL) AS COM_TOTAL,SUM(MOV_CANTID*MOV_CXUND) AS COM_CANUND,SUM(MOV_TOTAL)/SUM(MOV_CANTID*MOV_CXUND) AS COM_PROMEDIOFROM DPMOVINVWHERE MOV_INVACT=1 AND MOV_CONTAB=1GROUP BY MOV_CODSUC,MOV_CODIGO