NEXUS PARA PROGRAMADORES VERSIÓN 8
NEXUS SOFTWARE CONJUNTO DE HERRAMIENTAS PARA PODER ADAPTAR Y MEJORAR LAS FUNCIONALIDADES DE NEXUS SEGÚN LAS NECESIDADES DE CADA EMPRESA. CÓMO DESARROLLAR DLLS, USAR DICCIONARIOS, PROGRAMAR CON NAX, ETC
THIS MANUAL WAS PRODUCED USING COMPONENTONE DOC-TO-HELP.™
CONTENIDO NEXUS PARA PROGRAMADORES
1
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ..................................... .... 1 DICCIONARIO....................................................................................... ........................................................................................................................ ..................................... .... 1 MENUS..................................................... MENUS...................................................................................... .................................................................. ................................................ ............... 1 DLL ................................................................. ................................................................................................. .................................................................. ........................................... ......... 1 NAX ............................................................... ................................................................................................ ................................................................... ........................................... ......... 1
DICCIONARIO
3
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ..................................... .... 3 ESTRUCTURA DE LA APLICACIÓN .................................................. ................................................................................... ..................................................... .................... 3 DIRECTORIO PRINCIPAL DE NEXUS.................................................................. ........................................................................................... ......................... 3 UBICACIÓN DE LAS DEFINICIONES DE LISTADOS Y DOCUMENTOS.......................................... .......................................... 5 CONFIGURACIÓN NEXUS ..................................................................... ...................................................................................................... ..................................... .... 5 NORMATIVA EN LA CREACIÓN DE LIBRERÍAS ............................................................... .................................................................................... ..................... 6 APLICACIÓN DE LOS CAMPOS ADICIONALES................................................................... ADICIONALES............................................................................ ......... 6 VARIOS DICCIONARIOS ............................................. ............................................................................. ................................................................ ................................ 6 USAR MAYÚSCULAS ................................................................. .................................................................................................. ................................................ ............... 6 USAR PREFIJOS ............................................................. .............................................................................................. ............................................................ ........................... 6 DICCIONARIO NEXUS ..................................................................... ....................................................................................................... ........................................... ......... 6 DICCIONARIO EN INSTALACIÓN CLIENTE ................................................................................. ................................................................................. 6 INSTALACIÓN DEL DICCIONARIO............................................................. .............................................................................................. ........................................... .......... 7 REQUISITOS TÉCNICOS PREVIOS A LA INSTALACIÓN ............................................................... ............................................................... 7 INSTALACIÓN DEL DICCIONARIO ................................... ..................................................................... ........................................................... ......................... 7 ÁREA DEL TRABAJO DEL DICCIONARIO ......................................................... .......................................................................................... ..................................... .... 7 MENÚ SUPERIOR ...................................................................... ....................................................................................................... ................................................ ............... 8 MENÚ LATERAL ............................................................ ............................................................................................. ............................................................ ........................... 9 DATOS GENERALES DE NUESTRA LIBRERÍA .............................................. .............................................................................. ................................ 9 CREACIÓN DE UNA TABLA NUEVA .......................................................... ............................................................................................ ......................................... ....... 10 COLUMNAS.................................................................................... ...................................................................................................................... ......................................... ....... 11 CREACIÓN DE ÍNDICES ................................... ................................................................... .................................................................. ......................................... ....... 14 CLAVES FORÁNEAS ................................................................................... ................................................................................................................. .............................. 15 INTEGRIDAD ............................................................ ............................................................................................. ............................................................... .............................. 17 OTRAS RELACIONES ............................................. ............................................................................. ................................................................. ................................... .. 17 NUEVO DICCIONARIO PASO A PASO ....................................... ......................................................................... ......................................................... ....................... 17 GESTIÓN DE PROYECTOS .................................... ..................................................................... .................................................................. ................................... .. 17 CREAR NUEVO DICCIONARIO .............................................................. ............................................................................................... ................................... .. 18 CREACIÓN DE TABLAS NUEVAS ............................................................................ .............................................................................................. .................. 19 VER NUESTRAS TABLAS ....................................................................... ........................................................................................................ ................................... .. 22 AÑADIR SELECCIONES DE NUESTRAS TABLAS............................................................... .................................................................................. ................... 22 SELECCIÓN DE PROYECTOS EN FACTURAS ............................................................... ............................................................................. .............. 23 SELECCIÓN RESPONSABLES EN PROYECTOS ........................................................................ .......................................................................... .. 24
CASO ESPECIAL TABLA CLIENTES............................................................. .............................................................................................. ......................................... ........ 24 ACTIVACIÓN Y DISEÑO DEL DICCIONARIO ..................................................................... ....................................................................................... .................. 25 TRASLADO, ELIMINACIÓN DEL DICCIONARIO ............................................... ................................................................................ ................................... .. 27 TRASLADO BASE DE DATOS Y DICCIONARIO A OTRO SERVIDOR ........................................... ........................................... 27 TRASLADO BASE DE DATOS (SIN DICCIONARIO) A OTRO SERVIDOR .................................... .................................... 28 ELIMINAR EL DICCIONARIO DE UNA BASE DE DATOS ............................................................ ............................................................ 28
MENÚS EXTERNOS
31
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ................................... .. 31 QUE ES XML .................................................. ................................................................................... ................................................................... ......................................... ....... 31 CREACIÓN DEL FICHERO DE MENÚ ..................................................... ...................................................................................... ................................... .. 31 ESTRUCTURA XML ......................................................................................... .......................................................................................................................... ................................... .. 32 MENÚ LATERAL ............................................................ ............................................................................................. .......................................................... ......................... 33 BARRAS DE MENÚS ....................................................................................... ................................................................................................................ ......................... 35 IMÁGENES .............................................................. ............................................................................................... ................................................................... ......................................... ....... 36
NAX
37 ¿QUÉ ES NAX (NEXUS ACTIVEX)? ............................................................ .............................................................................................. ......................................... ....... 37 INSTALACIÓN DE NAX ............................................................ ............................................................................................. .......................................................... ......................... 39 LICENCIAS NAX RUNTIME / NEXUS ................................................................................ .................................................................................................. .................. 39 ORGANIZACIÓN DE NAX ......................................... .......................................................................... ................................................................... ......................................... ....... 40 RELACIÓN DE OBJETOS DE NAX........................................................... NAX............................................................................................ ................................... .. 40 EJEMPLO DEL USO DE UN OBJETO NAX EN DELPHI ............................................. ............................................................... .................. 41 EJEMPLO DEL USO DE UN OBJETO EN VISUAL BASIC............................................................. ............................................................. 41 ENLACE (CONEXIÓN) .......................................................................... ........................................................................................................... .............................................. ............. 42 NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIÓN................. 42 MÉTODOS Y FUNCIONES DEL ENLACE.................................................................. .................................................................................... .................. 42 EJEMPLOS EN DELPHI ............................................................... ............................................................................................... .............................................. .............. 43 EJEMPLOS EN VISUAL BASIC................................................................. ................................................................................................. .................................. .. 44 EJEMPLO TRATAMIENTO DE EXCEPCIONES ........................................................ ........................................................................... ................... 44 OPCION (LLAMADA A OPCIONES VISUALES).................................................................. .................................................................................... .................. 45 EJEMPLO 1: MANTENIMIENTO MANTENIMIENTO DE CLIENTES SIN PARÁMETROS ........................................... 45 EJEMPLO 2: EDICIÓN DE LA FICHA CON PARÁMETOS............................................................ PARÁMETOS............................................................ 46 LISTADO (IMPRESIÓN DE INFORMES) ..................................................... ....................................................................................... ......................................... ....... 47 EJEMPLO 1: PRESENTACIÓN P RESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI................. 47 EJEMPLO 2: FICHERO PDF CON EL LISTADO DE CLIENTES EN DELPHI .................................... .................................... 47 EJEMPLO 3: PRESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN VB........................ 48 EJEMPLO 4: IMPRIMIR UN EFECTO FORMATO RECIBO EN DELPHI........................................ DELPHI........................................ 48 VARIOS (CONSULTAS)................................... .................................................................... .................................................................. ................................................... .................. 49 CONSULTAS SEGÚN CRITERIOS DE NEXUS .......................................... ........................................................................... ................................... .. 49 EJEMPLO 1: CONSULTAS SEGÚN LOS CRITERIOS DE NEXUS. ................................................. ................................................. 50 EJEMPLO 2: USO DE LOS IDENTIFICADORES DE NEXUS PARA OBTENER UN IDENTIFICADOR PROPIO ................................................................ .................................................................................................. ......................................... ....... 50 MAESTROS..................................................................................... ..................................................................................................................... ................................................... ................... 51 OPERACIONES MÁS IMPORTANTES .......................................................................... ....................................................................................... ............. 53 DOCUMENTOS.............................................. DOCUMENTOS............................................................................... .................................................................. ................................................... .................. 55 EJEMPLO EN DELPHI DE LA CREACIÓN DE UNA NUEVA FACTURA ........................................ 55 APUNTES ................................................................. ................................................................................................. .................................................................. ......................................... ....... 57 DOS FORMAS DE TRABAJAR CON ASIENTOS............................................................ .......................................................................... .............. 59
CARTERA............................................................................................. ............................................................................................................................. .............................................. .............. 61 CREACIÓN, MODIFICACIÓN Y BORRADO DE VENCIMIENTOS VENCIMIENTOS .............................................. ................................................ .. 61 EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AÑADIR UN NUEVO VENCIMIENTO EN CARTERA ..................................................... ...................................................................................... .............................................. ............. 62 REALIZAR OPERACIONES CON VENCIMIENTOS EXISTENTES .................................................. .................................................. 63 EJEMPLO1 : COBRO DE UN VENCIMIENTO ............................................................................ ............................................................................ 64 STOCKS .............................................................. ............................................................................................... ................................................................. .............................................. .............. 64 EJEMPLO 1: MOVIMIENTOS EN STOCK EXTERNOS ......................................................... ................................................................ ....... 64 FILTRO ............................................................... ................................................................................................ .................................................................. .............................................. ............. 65 EJEMPLO 1: LLAMADA A LA PANTALLA DE FILTROS ............................................................. ............................................................... .. 65 EXPEDIENTE............................................................................................. .............................................................................................................................. ......................................... ........ 66 EJEMPLO 1: UTILIZACIÓN GENÉRICA DEL OBJETO O BJETO EXPEDIENTES........................................... ........................................... 66 COBRO/ANULACIÓN COBRO/ANULACIÓN PARCIAL DE REMESAS ....................................................................... .................................................................................... ............. 67 EJEMPLO 1: UTILIZACIÓN U TILIZACIÓN COBRO PARCIAL DE REMESAS ...................................................... ...................................................... 67 EJEMPLO 2: UTILIZACIÓN U TILIZACIÓN DE ANULAR COBRO PARCIAL DE REMESAS................................... REMESAS................................... 67
OBJETOS NAX
69
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ................................... .. 69 OBJETO ENLACE...................................... ....................................................................... ................................................................... ......................................................... ....................... 70 OBJETO VARIOS ....................................................................... ......................................................................................................... ......................................................... ....................... 74 OBJETO MAESTRO ............................................................. .............................................................................................. ............................................................... .............................. 80 OBJETO SELECCION ....................................................................................... ........................................................................................................................ ................................... .. 88 OBJETO FACTURA .............................................................. ............................................................................................... ............................................................... .............................. 89 OBJETO ALBARAN ................................... .................................................................... ................................................................... ....................................................... ..................... 105 OBJETO PEDIDO ............................................ ............................................................................. .................................................................. ................................................. ................ 120 OBJETO DEPÓSITO ............................................. .............................................................................. .................................................................. ............................................ ........... 135 OBJETO OFERTA ................................................................. .................................................................................................. ............................................................ ........................... 150 OBJETO REGULARIZACION REGULARIZACION ................................................................. .................................................................................................. ............................................ ........... 163 1 63 OBJETO TRASPASO ............................................................................. .............................................................................................................. ............................................ ........... 171 OBJETO INVENTARIO ......................................... .......................................................................... .................................................................. ............................................ ........... 180 OBJETO MOVIMIENTOSTOCK MOVIMIENTOSTOCK ............................................................. ............................................................................................. ............................................ ............ 188 OBJETO RESERVASTOCK ............................................... ................................................................................ .................................................................. ................................. 194 OBJETO ASIENTO ............................................................... ................................................................................................. ............................................................. ........................... 1 99 OBJETO CARTERA ............................................................................... ................................................................................................................ ............................................ ........... 205 OBJETO OPERACIONESCARTERA OPERACIONESCARTERA ................................................................... .................................................................................................... ................................. 213 OBJETO AGRUPACION ....................................................... ........................................................................................ ............................................................. ............................ 2 28 OBJETO REMESA................................................ REMESA................................................................................. .................................................................. ............................................ ........... 231 OBJETO OPERACIONESINMOVILIZADO OPERACIONESINMOVILIZADO .......................................................................... .......................................................................................... ................ 234 OBJETO PRESUPUESTO................................. PRESUPUESTO.................................................................. .................................................................. ................................................. ................ 236 OBJETO OPCION ................................................................................. .................................................................................................................. ............................................ ........... 239 OBJETO LISTADO ............................................................... ................................................................................................. ............................................................. ........................... 239 OBJETO ESTRUCTURA............................................................. .............................................................................................. ........................................................ ....................... 242 OBJETO ORDENPRODUCCION ORDENPRODUCCION ................................................................................. ........................................................................................................ ....................... 2 47 OBJETO EXPEDIENTES ............................................................ ............................................................................................. ........................................................ ....................... 267 OBJETO CUOTAS ..................................................... ...................................................................................... ................................................................... ....................................... ..... 274 OBJETO COBROPARCIALREMESA COBROPARCIALREMESA ........................................................................................ ................................................................................................... ........... 277 OBJETO ANULARCOBROPARCIALREMESA ANULARCOBROPARCIALREMESA .............................................................. ..................................................................................... ....................... 279
PROGRAMACIÓN DLLS
281
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ................................. 281 INSTALACIÓN...................................................................................... ....................................................................................................................... ............................................ ........... 281 EVENTOS................................................. EVENTOS.................................................................................. ................................................................. ....................................................... ....................... 281 SISTEMA.................................................................................... ..................................................................................................................... ............................................ ........... 281 DOCUMENTOS............................................................................... ................................................................................................................. ....................................... ..... 281 CARTERA.............................................................................................. ............................................................................................................................... ................................. 282 MAESTROS........................................................................................... ............................................................................................................................ ................................. 283 APUNTES................................................................................... .................................................................................................................... ............................................ ........... 283 PRODUCCION ............................................................... .................................................................................................. ........................................................ ..................... 283 LISTADOS .................................................................. ................................................................................................... ............................................................ ........................... 284 EJEMPLOS ............................................................... ................................................................................................ ................................................................... ....................................... ..... 284 COMO LLAMAR A UNA DLL DESDE MIMENU.MENU (V2.0) ........................................................... ........................................................... 284 LLAMANDO A UNA DLL WIN32 ....................................................................................... ............................................................................................ ..... 285 LLAMANDO A UNA DLL ACTIVEX .............................................................. .......................................................................................... ............................ 285 PARÁMETROS EN PROGRAMA EXTERNOS .............................................................. ..................................................................................... ....................... 286 SIGNIFICADO DE CADA PARÁMETRO .............................................................................. ................................................................................... ..... 287
PARÁMETROS EN EJECUTABLES EXTERNOS
289
INTRODUCCIÓN............................................................................................. .............................................................................................................................. ................................. 289 LLAMADA DESDE EL MENÚ ..................................................... ..................................................................................... ....................................................... ....................... 290 FORMATO V7 ...................................................... ....................................................................................... .................................................................. ................................. 2 90 FORMATO V8 ...................................................... ....................................................................................... .................................................................. ................................. 2 90 LLAMADAS A PROGRAMAS EXTERNOS .......................................................................... .......................................................................................... ................ 290 SIGNIFICADO DE CADA PARÁMETRO .............................................................................. ................................................................................... ..... 290
ÍNDICE
293
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 1
NEXUS PARA PROGRAMADORES INTRODUCCIÓN Este manual, pretende recoger todas las opciones que un programador puede realizar con Nexus.
DICCIONARIO Aplicación que permite poder acceder a la base de datos y cambiar o ampliar la estructura, ya sea añadiendo tablas, campos, etc.
MENUS Permite poder editar los menús de Nexus. Por ejemplo añadir opciones, por ejemplo los menús para acceder a las aplicaciones externas, para un acceso directo, cambiar organización, quitar, etc.
DLL Permite realizar pequeñas programaciones para que Nexus cambie alguna o peración, por ejemplo añadir un cálculo distinto al guardar un documento.
NAX NAX es una librería ActiveX que permite a terceros conectarse con Nexus. Los objetivos de la librería NAX entre otros: Simplificar la tarea de utilizar la lógica de negocio de la aplicación Nexus a través de una serie de objetos con métodos y propiedades que permiten manejar esa lógica. Poder llamar a cualquiera de las opciones visuales de Nexus desde la aplicación desarrollada.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 3
DICCIONARIO INTRODUCCIÓN El diccionario es un metadatos creado por SIE cuya finalidad es centralizar la extensibilidad de una base de datos. Es decir, nos permite crear tablas nuevas y añadir campos a las tablas ya existentes a una base de datos gestionada por el ERP Nexus. Una de las ventajas de esta herramienta junto con el ERP Nexus, es la posibilidad de adaptar una aplicación en un principio estándar, a diversas necesidades que pueda plantear el cliente en la fase de preventa como postventa. Otra ventaja, es que ya no es necesario generarse varios scripts, ni guardarlos en diferentes carpetas ya que usando esta herramienta, todo queda centralizado y gestionado por varios xml. Otra ventaja es que la actualización o llamémoslo así, la gestión de nuestros “scripts” queda
delegado al ERP Nexus, que es el encargado de realizar los cambios pertinentes sin necesidad de hacerlo nosotros manualmente.
ESTRUCTURA DE LA APLICACIÓN En primer lugar, antes de iniciarnos en la aplicación del diccionario, es necesario conocer la estructura de Nexus, como están definidos sus directorios ya que conocer su est ructura es imprescindible para la creación de diccionarios.
DIRECTORIO PRINCIPAL DE NEXUS En el directorio de instalación, se generan los siguientes subdirectorios o carpetas:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 4
A continuación se detalla que puede necesitar el programador: Ejemplos: En esta carpeta contiene ejemplos en lenguajes de programación Delphi y V.B. para ser utilizados con Nax.Dll y Naxrt.dll. También viene el manual del NAX y documentación complementaria del mismo. (opcionesnexusListados.XML, OpcionesVisualesNexus.xls) Empresas modelo: En esta carpeta están todas aquellas empresas creadas para realizar demostraciones. Hlp: Contine los archivos de ayuda de la aplicación. Imágenes: Contiene las imágenes de la aplicación. Interface: Contiene los ficheros necesarios para poder trabajar con Nax Menús: Donde se ubica el fichero xml para la creación de los menús del programa. Módulos: En esta carpeta están los ficheros necesarios para la confección de los modelos de Hacienda. Plantillas: Guarda diversas plantillas de ejemplo de opciones de la aplicación, como pueden ser cartas, SQL, hojas de cálculo, etc.. Redemption: Contiene los ficheros para la configuración del correo electrónico. Scripts: Utilidades varias para reparar, corregir, datos en la base de datos SQL. Sistema: Contiene una carpeta por cada módulo o programa a integrar en Nexus. En cada una de ellas están las tablas de la estructura de la aplicación. En el directorio principal existen las tablas con información compartida para todas las empresas que el usuario trabaje, por ejemplo: las entidades bancarias, las administraciones y delegaciones de Hacienda y los códigos postales.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 5
Skins: Donde se guardan los ficheros de los temas visuales del programa.
UBICACIÓN DE LAS DEFINICIONES DE LISTADOS Y DOCUMENTOS Por defecto se guardan en C:\Documents and settings\ nombre usuario\Mis documentos\SIE\Listados.
Listados: En esta carpeta se encuentran todos los ficheros que corresponden a la definición de listados y documentos. Sistema: Existe el fichero Listados.ini en el cual detalla el nombre de cada uno de los listados definidos.
CONFIGURACIÓN NEXUS En el directorio C:\Documents and settings\ nombre usuario\Datos de programa\SIE, se guarda la configuración del programa, disposición pantallas, selecciones, etc. para ese usuario.
En las diferentes carpetas es donde se almacena la configuración: Caché: Copia de la estructura para no se tenga que leer del servidor cada vez que entra en el programa. Agiliza su funcionamiento. Grids: Guarda la configuración del orden y ancho de las columnas, de los grids, tal como las ha configurado el usuario. Selecciones: Guarda la configuración del orden y ancho de las columnas, de las selecciones, tal como las ha configurado el usuario.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 6 Sistema: Guarda la configuración del programa, nombre del servidor, impresora, ubicación listados etc.
NORMATIVA EN LA CREACIÓN DE LIBRERÍAS APLICACIÓN DE LOS CAMPOS ADICIONALES Cuando se quiera añadir campos adicionales a las tablas propias de Nexus, hay que tener en cuenta que no son de aplicación en cualquier parte del programa. Podemos añadir campos adicionales en las siguientes tablas Nexus: Ficheros maestros. Consideramos ficheros maestros aquellas opciones de menú donde tenemos pantalla de selección, edición, añadir y borrado de registros. Cabecera de documentos del circuito de compra y venta. Comprende las ofertas, pedidos, todo tipo de albaranes y facturas a excepción de las facturas periódicas. Líneas de documentos del circuito de compra y venta . Comprende las ofertas, pedidos, todo tipo de albaranes y facturas a excepción de las facturas periódicas. Cabeceras de órdenes de producción Albaranes de regularización y traspaso
VARIOS DICCIONARIOS En una instalación de Nexus puede haber varios diccionarios activos. Esto facilita que podamos desarrollar diccionarios específicos para cada módulo de Nexus e instalar a los clientes sólo el diccionario que precisa.
USAR MAYÚSCULAS El nombre de los campos y tablas deben escribirse forzosamente en mayúsculas en todos los casos.
USAR PREFIJOS Es aconsejable nombrar las tablas y los campos con un prefijo o sufijo, personalizado por nosotros para evitar conflictos con futuros campos que nombre SIE en el diccionario por defecto de Nexus. Por ejemplo si creamos un campo llamado técnico podemos llamarle TECNICO_Z. En caso de que diseñemos un diccionario que contenga algún campo o tabla que se llame igual al diccionario nativo de Nexus, debemos tener en cuenta que el diccionario de Nexus siempre tiene prioridad al definido por nosotros.
DICCIONARIO NEXUS No debemos hacer modificaciones en el diccionario de Nexus ya que al actualizar versión o revisión, perderíamos nuestros cambios.
DICCIONARIO EN INSTALACIÓN CLIENTE Si queremos instalar un diccionario desarrollado por nosotros en un cliente y desde sus oficinas no vamos a realizar cambios en nuestro desarrollo, no es preciso instalar el programa diccionario, es
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 7 suficiente con copiar la carpeta del diccionario desarrollado en el directorio C:\Archivos de programa\SIE\NEXUS\Sistema
INSTALACIÓN DEL DICCIONARIO REQUISITOS TÉCNICOS PREVIOS A LA INSTALACIÓN No tiene requisitos previos, pero hay que respetar las versiones de los productos, es dec ir, esta versión sólo puede trabajar con la misma versión del ERP Nexus. NOTA: La flexibilidad entre versiones (ERP Nexus y Diccionario) sólo es para las revisiones o los update packs.
INSTALACIÓN DEL DICCIONARIO Realizamos la instalación ejecutando el programa Diccionario.exe y seguimos los pasos indicados por el asistente.
Como normal general se suele instalarse en el mismo ordenador donde está el ERP Nexus instalado y la base de datos, habitualmente en el servidor. Así, a la hora de generar nuevos diccionarios, automáticamente ya estamos situados en la ruta correcta para que luego el ERP Nexus pueda actualizar los nuevos cambios introducidos. NOTA: Esta herramienta no es necesario instalarlo en casa del cliente si no se va a realizar modificaciones con él. Para este caso es suficiente con copiar las carpetas y ficheros que conforman el diccionario. Al finalizar la instalación tenemos el icono de acceso directo al nuevo programa. El ejecutable y sus ficheros auxiliares quedan instalados en la siguiente ruta: C:\Archivos de programa\SIE\NEXUS\Sistema , siempre y cuando no hayamos modificado la ruta de instalación que indica el programa por defecto.
ÁREA DEL TRABAJO DEL DICCIONARIO Una vez ya tenemos instalado el diccionario, al ejecutar el icono nos aparece la siguiente pantalla de trabajo:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 8 En la parte superior, tenemos un menú principal, con sus diferentes opciones.
MENÚ SUPERIOR
GENERAL
Desde la pestaña General, es donde tratamos con el fichero de la librería, podemos crear un nuevo diccionario, abrir uno ya existente, guardar y cancelar los cambios efectuados.
UTILIDADES
En este apartado podemos realizar las siguientes operaciones: Borrar HISTORIAL: Eliminar el histórico de diccionarios abiertos. Si borramos el histórico perdemos la agilidad de abrir diccionarios ya abiertos anteriormente ya que tendremos que ir a buscar ese diccionario expresamente. EXPLORADOR DE WINDOWS: Nos abre una ventana de explorador de Windows donde se encuentra el diccionario abierto. CREAR DATOS DE DEMOSTRACIÓN: Para crear una empresa de demostración en ficheros xml que posteriormente podremos importar con Nexus CONVERTIR ESTRUCTURA XML A UNICODE: Esta opción es la que nos convierte la estructura de nuestros diccionarios de versiones anteriores para adaptarlo a la versión 8 de Nexus. CREAR ÍNDICES POR CLAVE FORÁNEA: Como que ya se tratan las Foreing Key, se ha creado una opción para generar un índice de forma automática por cada una de
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 9 ellas para facilitar el trabajo del SQL server a la hora de aplicar la integridad referencial. Ayuda: En este menú podremos descargar la documentación del programa.
MENÚ LATERAL Generalmente nuestra área de trabajo se reduce a la barra lateral (aptdo. General) con las opciones tablas, columnas, índices y claves foráneas. El resto es “informativo” o no aplicable para la
escalabilidad de la base de datos.
En el apartado Otros tenemos una serie de opciones, que nos ayudarán a dar mayor escalabilidad a nuestra base de datos. (Vistas, Funciones, Trigas, Procedimientos, Constraints, etc.)
DATOS GENERALES DE NUESTRA LIBRERÍA En General, es donde indicaremos, los datos de nuestra librería, en el ejemplo se abierto la librería de Nexus y como vemos, muestra la información de SIE. Seleccionar la categoría General
General
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 10
CREACIÓN DE UNA TABLA NUEVA Para la creación de nuestras tablas, hay que seleccionar la categoría General
Tablas.
En este apartado le indicamos las nuevas tablas adicionales o las tablas de Nexus que vamos a utilizar.
Por columnas tenemos: Tabla: denominación (en mayúsculas siempre) del nombre de la tabla. Descripción: nombre de la tabla tal y como se va a ver desde Nexus. No es necesario que esté en mayúsculas. Estado: puede ser de tres tipos: General : para las tablas genéricas. Interna: para tablas especiales con tratamientos especiales.
No aplicable a desarrollos DVA
si no es para extender tablas existentes de Nexus. Virtual :
para tablas especiales asociadas a un vista SQL para tratamientos especiales. No aplicable a desarrollos DVA si no es para extender tablas existentes de Nexus. NOTA: Para generar tablas nuevas hay que indicar en esta propiedad ESTADO General. Para agregar campos en tablas existentes del ERP Nexus hay que indicar el
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 11 mismo estado que Nexus, para ello deberemos de abrir previamente el diccionario de Nexus y ver su especificación. Tipo: Hay que indicar el tipo de tabla que estamos definiendo. Los valores son los siguientes: Maestro: Son los ficheros maestros de Nexus. No se usa en diccionarios de terceros. Solo en caso de añadir campos a una tabla de Nexus Maestra, hay que indicar este tipo. General: Son el resto de las tablas que se definen en el diccionario de terceros. Auxiliar: Se usan normalmente para tablas pequeñas y saldrán en el menú de Ficheros Adicionales. Jerarquía: Este tipo no se usa. Obsoleta: Se marca cuando deseamos darle está tipología a una tabla y no deseamos utilizar más esta tabla en nuestro diccionario. Orden Auxiliar: Opcionalmente puede indicarse el orden por el que se visualizan las tablas en Nexus desde la ventana de Ficheros/adicionales.
COLUMNAS Aquí se trata de indicar los campos que vamos a crear de nuevo cuño o aquellos campos de Nexus que deseamos insertar en nuestro diccionario. La novedad de la versión 8.0.0 y 8.2.0 es que ahora se soporta Unicode en la base de datos. Esto implica que los tipos como nvarchar, ntext, varbinary se puedan utilizar.
Si en el apartado de tablas, seleccionamos una, al entrar en columnas, por defecto serán los campos de dicha tabla. En la parte inferior, podemos cambiar la tabla:
En el desplegable primero, es el nombre o descripción de la tabla, el segundo desplegable, es el nombre físico de la tabla en la base de datos. Veamos la información que hay que indicar para la creación de los ca mpos de cada una de las tablas.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 12
Columna: es este apartado debemos indicar el nombre del campo adicional que estamos creando o utilizando. Siempre debe escribirse en mayúsculas. Descripción: es el nombre del campo adicional que aparecerá visualmente en Nexus. Tipo: hace referencia al tipo de campo que estamos creando. Como en cualquier base de datos podemos seleccionar de esta larga lista el tipo de campo. Los campos más usuales con los que trataremos y que posteriormente vamos a usar en los ejemplos son:
Datetime: para campos de fecha y hora. Money: para campos de contenido monetario (importes). Numeric: para campos con formato numérico. Text: para campos “memo” con contenido extendido. Como ejemplo tenemos el campo “observaciones” de la ficha del artículo. Varchar: para el resto de los casos. Longitud: indica el tamaño máximo que va a tener el campo. Si vamos a crear un campo memo no es preciso cambiar la longitud propuesta por el diccionario. Adm. Nulos (admite nulos): en este apartado indicamos si el campo puede quedar sin valor o por el contrario es obligatorio que tenga contenido. Debe tenerse en cuenta que si estamos dando de alta un campo en una tabla que ya tiene registros, para que no nos salga ningún error, debemos indicarle que admite nulos. De este modo los registros anteriores a la incorporación del campo, al indicar que admite nulos, no producirán ningún error. Defecto: Valor por defecto que se desea rellenar este campo. Cuadrado: indica si el contenido queda justificado a la derecha.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 13
Descr. tabla (descripción tabla): si tenemos activa esta opción, estamos indicando que deseamos que nos muestre este campo al hacer una vinculación de esta tabla origen con otra tabla de destino. Para cada tabla, sólo debe haber un campo con la opción “descr. tabla” activada.
Calculado: no podemos usar este campo en nuestros diccionarios. Versión, Revisión, Parche: El diccionario, toma por defecto los valores que tienen los respectivos campos en la pestaña general. Es útil para saber en qué momento se ha introducido el campo si queremos llevar un control de versiones y revisiones. Valores posibles: en este apartado introduciremos los valores posibles que puede tener el campo. Esto es especialmente útil para los campos desplegables (combo) que tienen información prefijada. La información que se incluye en este campo debe separarse con punto y coma (;) y sin dejar espacio entre los datos. Un ejemplo en un tipo de campo verdadero o falso, sería tal como se muestra en la imagen anterior T;F.
Valor defecto: si en el apartado anterior hemos indicado varios datos, aquí podemos indicar con que valor queremos que rellene el campo de modo predeterminado al hacer un registro nuevo. En mantenimientos: en este apartado debemos seleccionar el modo de mantenimiento del campo que estamos creando. Este puede ser
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 14 Sólo ver: el campo sólo está disponible en modo consulta para el usuario de Nexus. No puede editarlo. Editar: el campo está disponible para el usuario de Nexus en modo edición, lo que permite ver, insertar información y modificarla. No ver: el campo no es visible para el usuario de Nexus. Tipo de editor: este apartado nos permite indicar de que manera será visible el campo en ficheros maestros y cabecera de documentos. Si el campo que estamos creando va a verse desde un grid (por ejemplo desde las líneas de factura) esto no siempre es de aplicación. De este modo, podemos elegir entre:
Sin editor: opción que aparece por defecto y que debemos usar cuando en el apartado anterior, en mantenimientos, hemos elegido la opción de no ver . Campo: opción a seleccionar para campos donde introducimos información alfanumérica como el nombre de la ficha del cliente. Combo: con esta opción indicamos que el campo es del tipo combo box o también llamado desplegable. Check: opción para determinar que se trata de un campo check box. Memo: opción a utilizar para los campos donde la información a introducir es extensa tal y como en Nexus lo usamos para el campo observaciones de la ficha del artículo. Imagen: Es un campo en el nos interesa insertar una imagen. Depende del campo: apartado creado para uso interno de SIE.
CREACIÓN DE ÍNDICES
En este apartado, tenemos que indicar exclusivamente para tablas nuevas creadas por nosotros que campo o campos tendremos los índices. Así tenemos: Índice: aquí indicamos el nombre del índice que estamos creando. Debemos inventarnos el nombre del índice. Como siempre tenemos que introducirlo en
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 15 mayúsculas y con un sufijo o prefijo que lo distinga de posibles coincidencias con el diccionario de Nexus. Columnas: en este apartado, debemos introducir en nombre de la columna que va a ser indexada. Este campo debe existir en nuestro diccionario. Clave: Indicamos si el índice es clave. Nota: Los nombres de las primary keys deben de empezar por PK_ + nombre de la tabla. Cuando se asigna un índice como clave, por defecto se le asigna que está agrupado ya que la primary key es un índice clave y agrupado. Se recomienda tener índices por campos simples, por cada clave foránea y por campos que se utilicen con mucha frecuencia. Único: indicamos si el valor que hay en el campo indexado es único o se puede repetir. Agrupado: de utilidad para la aplicación de índices agrupados que requiere programación adicional para su uso.
CLAVES FORÁNEAS En este apartado, será donde se realicen, las relaciones que existen en nuestras tablas:
La integridad de la base de datos ha cambiado tanto en concepto como en funcionalidad. Anteriormente se especificaba la integridad de una tabla respecto a otras situándose en la tabla “hija”. (Ejemplo: Para la integridad de clientes, nos situábamos en ésta he indicábamos todas sus
relaciones). Ahora se unifica criterios y se especifica tal y como lo hace SQL server, desde la tabla “padre”. (Ejemplo: Si quiero integridad de clientes con facturas, me sitúo en facturas e indico su relación con clientes). En la pestaña de claves foráneas indicamos la integridad que hay entre la tabla que estamos creando y otras tablas de nuestro diccionario. Los campos que debemos indicar para realizar una vinculación entre dos tablas son: Tabla externa: Es el nombre de la tabla de destino, es decir, la tabla que recibe los datos. Campos principales: Se indica que campo, es el que sirve para vincular con la tabla principal. Campos externos: se indica que campo es el que sirve para la vinculación en la tabla externa. Tipo de relación: la vinculación puede ser de dos tipos:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 16 Restrictiva: usaremos este tipo de relación para el supuesto de querer borrar registros de la tabla origen y si estos ya están en la tabla de destino no nos va a permitir su borrado. Un ejemplo de esta relación en Nexus la tiene la tabla de clientes y cabecera de facturas. Si queremos eliminar un cliente al que ya se le ha hecho una factura de venta, Nexus no nos permite hacerlo ya que ambas tablas tienen un tipo de relación restrictiva. En cascada: este tipo de relación la usamos cuando deseamos borrar un registro de la tabla origen y aunque haya datos en la tabla de destino, también podemos borrarla. Por ejemplo en Nexus tenemos una tabla de contactos donde guardamos los contactos para cada almacén. Como ambas tablas tienen una relación en cascada, al borrar un almacén, también se borran los contactos de este almacén en la tabla de contactos. Tipo de relación Actualización: No se usa. Se utilizará en la próxima versión de diccionario que lleva integridad en la base de datos. Filtro principal y filtro externa: para uso interno de SIE. Requiere programación adicional para su uso. Aplicar en BD como: Sólo en 820 .Aquí especificaremos el tipo de “relación” que se establecerá. ForeignKey o constranints. ForeingKey: Sólo en 820 .La relación en la base de datos es crear una ForeignKey para crear una integridad referencial en la base de datos Constraint: Sólo en 820 . Por compatibilidad con la estructura actual de Nexus, se utiliza este concepto junto con funciones y triggers para emular el concepto de foreingkey. Nota: Para crear constraints como foreingkey es necesario que si existen valores en las columnas de filtro principal y filtro externo, éstos estén englobados entre paréntesis. Ejemplo: (TIPO = 'PROVEED') o así ((TIPO = 'PROVEED') AND (TIPO = 'CLIENTES')) Filtro principal y filtro externo: para uso interno de SIE. Requiere programación adicional para su uso. Nota: Para realizar una vinculación entre tablas nuestras y otras que ya existen en Nexus, debemos hacer que estas tablas de Nexus también estén en nuestro diccionario. Por lo tanto, debemos escribir en la subpestaña tablas, la tabla de Nexus tal y como aparece en el diccionario de Nexus. No es necesario que creemos todos los campos (o columnas) que hay en la tabla de Nexus para esta tabla, con poner los que necesitamos para la vinculación es suficiente. Las vinculaciones se realizan siempre desde las tablas que son origen de los datos. Es decir debemos ir a la subpestaña integridad de la tabla origen de los datos para hacer las vinculaciones correspondientes con otras tablas. Una misma tabla puede vincularse con varias tablas a la vez.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 17
INTEGRIDAD En esta sección no se permite ningún tipo de edición. Nos indica es que recibe información de otras tablas y por lo tanto está vinculada a la tabla que estamos consultando.
OTRAS RELACIONES Sin aplicación para un DVA.
NUEVO DICCIONARIO PASO A PASO Ahora que ya sabemos qué utilidad tiene cada apartado del diccionario, en este capítulo vamos a presentar unos ejemplos de aplicación del diccionario. Las posibilidades del diccionario son enormes, pero pueden establecerse unos casos tipo que son los que vamos a ver. Para cada uno de estos casos indicaremos el objetivo que cubre el caso, un ejemplo explicado y la ejecución del ejemplo.
GESTIÓN DE PROYECTOS Como ejemplo realizaremos el siguiente supuesto: Somos una empresa de servicios a obras y nos interesa, llevar el control de la facturación por obra, ya sea para el control de costes o por obtener resúmenes por este concepto. Para ello sería necesario unos ficheros auxiliares, que podríamos llamarlos Proyectos y Responsables y por último se crearía un campo nuevo en todos los documentos, para que sea solicitado el proyecto, también, se puede añadir este campo en la tabla de clientes, para que tenga el dato por defecto. Vemos por partes cada una de estas tareas: Creación de tablas nuevas: Veremos cómo crear nuevas tablas en el diccionario, que no existen en Nexus, así como definir sus campos, índices, etc.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 18 Creación de campos en tablas ya existentes: Veremos como también se puede añadir campos a tablas que ya existen en Nexus, por ejemplo en nuestro caso será en las tablas de cabeceras de documentos, líneas de documentos y en artículos.
CREAR NUEVO DICCIONARIO Para la creación de un diccionario nuevo, en el menú principal de la aplicación, hay que pulsar el botón Nuevo Diccionario.
Aparece la ventana que nos pregunta dónde va a estar ubicado el nuevo diccionario. Debemos indicarle el directorio donde residirá nuestro diccionario. En el ejemplo el directorio se llama Proyectos, que previamente se ha creado.
Es muy importante que cada diccionario creado por nosotros, deba estar en una carpeta con un nombre que identifique a nuestro diccionario y si aceptamos los datos por defecto de la instalación, este debe ponerse dentro de la ruta siguiente: C:\Archivos de programa\SIE\NEXUS\Sistema Una vez se ha indicado el directorio, se carga en la pestaña general los datos diversos del la empresa desarrolladora y los datos de versión y revisión que se utilizarán para controlar las versiones.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 19
Pulsar el botón Guardar cambios. En este momento se han creado los siguientes archivos dentro de la carpeta que hemos indicado para el diccionario. Desde el menú principal Utilidades, si pulsamos sobre el botón Explorador Windows, accedemos directamente al directorio de nuestro proyecto.
CREACIÓN DE TABLAS NUEVAS El siguiente paso será crear las nueva tablas que vamos a necesitar, así como definir sus campos, índices, etc. CREAR LAS TABLAS
Creamos dos tablas a las que llamaremos PROYECTOS y RESPONSABLES Seleccionar Tablas, y rellenar los datos tal como se muestra en el pantalla de ejemplo:
CREAR LOS CAMPOS DE LAS TABLAS
A continuación para cada una de las tablas, se añadirán los campos.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 20 Seleccionar la primera tabla Proyectos y pulsar en la pestaña Columnas
Los campos que se han incluido en esta tabla, de información adicional, son los siguientes: FechaInicio: Será la fecha inicio del proyecto FechaFin: Será la fecha final del proyecto o la fecha prevista. IdProyecto: Código del proyecto. NomProyecto: Descripción del proyecto. ObsProyecto: Observaciones del proyecto. ResponProyecto: Código del responsable del proyecto. Seleccionar la tabla Responsables y pulsar la pestaña columnas.
Para la tabla de Responsable, los campos son los siguientes: IdIresponsable, NomResponsable, Telresponsable, EmailResponsable En Tipo, seleccionar el tipo de datos más adecuado al campo, en longitud la correspondiente al campo. La columna Adm. nulos, excepto en el campo Irresponsable que hay que desmarcarlo, el resto a gusto del usuario. En el caso del campo nomresponsable marcar la columna Descr. Tabla. Más adelante veremos el porqué. CREACIÓN DE LOS ÍNDICES
A continuación se deberán definir los índices para cada una de las tablas. Seleccionar la tabla Proyectos y pulsar la pestaña Indices
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 21 Se creará el índice con los siguientes valores: Nombre del índice: PK_PROYECTOs Columna a sobre la que se indexa: IDPROYECTO Clave: Seleccionado Agrupado: Seleccionado Lo mismo para la tabla Responsables. En la parte inferior podemos cambiar la tabla.
Seleccionarmos la de Responsables y creamos el índice correspondiente.
Nombre del índice: RESPONSABLE Columna a sobre la que se indexa: IDRESPONSABLE Clave: Si CREACIÓN DE CAMPOS EN TABLAS YA EXISTENTES
Del mismo modo que se han creado tablas nuevas con sus correspondientes campos, ahora toca el turno, de añadir un campo adicional a una tabla existente, en este caso veremos la tabla Cabeceras de factura de venta. Para ello en el diccionario debemos dar de alta en la pestaña Tabla el nombre de la tabla de Nexus, por ejemplo la tabla se denomina Cabefacv Los campos que tengamos que añadir, que corresponden con nuestras tablas, deberán ser con el mismo nombre, por ejemplo, si vamos a añadir el código del proyecto, el campo deberá ser el mismo que para la tabla PROYECTOS que en nuestro caso es IDPROYECTO. Seleccionamos la pestaña Tablas y damos de alta la tabla.
Una vez creada, la seleccionamos y pulsamos la pestaña Columnas añadimos el campo IDPROYECTO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 22 Nota: Recordar de seleccionar correctamente en todos los campos las columnas En mantenimientos y en Tipo de editor, ya que si no se selecciona esta información, no serán visibles en Nexus
VER NUESTRAS TABLAS Desde el menú de Nexus Ficheros configurado como tipo Auxiliar.
Adiccionales, podremos ver, todas aquellas tablas que se han
AÑADIR SELECCIONES DE NUESTRAS TABLAS Supongamos el siguiente ejemplo: En los documentos de Nexus, ya hemos añadido el campo IDPROYECTO, pero tal como se ha definido hasta ahora, sólo tendremos, el campo del código, sin posibilidad de tener una selección con la tabla auxiliar. Tal como vemos en la imagen, no hay una selección de proyectos, para añadir una selección, falta realizar la relación de ambas tablas.
De esta forma, conseguimos que se active el botón de la selección, para poder elegir de la lista de proyectos el que deseamos asignar al documento:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 23
SELECCIÓN DE PROYECTOS EN FACTURAS Veamos cómo podemos configurar nuestro diccionario para conseguir las selecciones. Seleccionar la tabla Cabefacv y pulsar la pestaña Claves foráneas. Podemos comprobar la selección de la tabla en la parte inferior.
Tabla principal: Teclear el nombre la tabla que tendremos en la selección, en nuestro ejemplo Proyectos. Campos principales: Teclear el nombre del campo clave que relaciona Proyectos con Cabefacv. En este ejemplo es IDPROYECTO. Campos externos: Teclear el nombre del campo clave de la tabla Cabefacv. En este ejemplo es IDPROYECTO. Nota: Los campos que relacionen tablas, se aconseja ponerles el mismo nombre. Tipo relación: Seleccionar Restrictiva. Nota: Es importante que el campo NombreProyecto de la tabla proyectos, tenga marcado la columna Descr. Tabla.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 24
SELECCIÓN RESPONSABLES EN PROYECTOS Lo mismo se realizará con la tabla de Proyectos, queremos una selección en el campo Responsable. En la tabla Responsables, marcar Descr. Tabla en el campo NOMRESPONSABLE
El segundo paso es crear la clave foránea en la tabla Proyectos, tal como se muestra a continuación:
CASO ESPECIAL TABLA CLIENTES En el caso de la tabla de clientes, internamente existe por un lado la Tabla (Clientes ) y por otro una Vista (__Clientes), por lo que cuando deseamos añadir campos a dicha tabla, deberemos realizar lo mismo, en ambas.
Se deben dar de alta las dos tablas con estas condiciones: __CLIENTES Estado: Interna / Tipo: Maestro CLIENTES
Estado: Virtual / Tipo: Maestro Damos de alta el campo IDPROYECTO en ambas tablas. Recordar activar el Tipo de mantenimiento y el editor. El siguiente paso, es crear las claves foráneas en ambas tablas.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 25
ACTIVACIÓN Y DISEÑO DEL DICCIONARIO ACTIVACIÓN DEL DICCIONARIO
Para que el diccionario pueda utilizarse dentro de Nexus, debemos activarlo en la opción de menú Otros Datos generales, pestaña Preferencias en la opción Aplicar campos externos (diccionarios de terceros), tal y como se muestra en la imagen.
Este proceso, debe realizarse en cada empresa de Nexus sobre la que deseamos que se aplique el diccionario. No obstante, es importante destacar que las tablas y campos diseñados en nuestro diccionario, se crean en todas las bases de datos que hay en Nexus independientemente de que se active a través
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 26 de “datos generales”. Esta activación implica la visualización de las tablas y campos de nuestro
diccionario en la empresa en la que se aplica la opción. CAMBIO DE NOMBRE DE LAS PESTAÑAS ADICIONALES
Una de las opciones de configuración visual que tenemos con las pestañas que hemos creado, es el cambio del título de las pestañas. Para proceder a dicho cambio debemos situarnos dentro de la pestaña correspondiente y pulsar el botón derecho de ratón. Nos aparece un menú contextual como el que muestra la imagen
Seleccionamos la opción “cambiar título de página” y modificamos el título de la
pestaña.
Al terminar apretamos nuevamente el botón derecho y seleccionamos la opción “guardar configuración” para guardar los cambios que hemos hecho. Si no se hace este último paso,
se pierden los cambios hechos. DISEÑO DE LAS PESTAÑAS ADICIONALES
Otra de las configuraciones visuales que podemos hacer es la reubicación de los campos que hay en una pestaña creada por nosotros. Estos cambios sólo se pueden hacer en pestañas de nuestro diccionario y no en las otras pestañas de Nexus. Debemos situarnos dentro de la pestaña que deseamos modificar y pulsar el botón derecho de ratón. Nos aparece un menú contextual y seleccionamos la opción “Entrar en modo diseño”.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 27
Si nos fijamos en la pantalla anterior, veremos como todos los campos de esta pestaña están rodeados de unos puntos cuadrados. Ahora se trata de reposicionar y dimensionar los campos según nuestras necesidades. Una vez finalizado las modificaciones, pulsamos el botón derecho del ratón y del menú contextual, seleccionamos la opción Guardar configuración para mantener los cambios.
TRASLADO, ELIMINACIÓN DEL DICCIONARIO Tal y como hemos indicado anteriormente, tenemos insertados en todas las bases de datos de las empresas de Nexus, las tablas y los campos de nuestro diccionario, aunque no tengamos activa la visualización. Si queremos quitarlos o trasladamos la base de datos a otros equipos donde no van a tener el diccionario, entonces debemos tener la precaución de quitar el diccionario de la base de datos. Vamos a establecer las diferentes posibilidades de desactivación o eliminación del diccionario que podemos realizar en función de la finalidad deseada.
TRASLADO BASE DE DATOS Y DICCIONARIO A OTRO SERVIDOR Cuando trasladamos una base de datos en la que se le ha incluido un diccionario, este también deberá ser trasladado, en caso contrario, al entrar a la empresa, aparece un mensaje de error, avisando de que no existe el diccionario correspondiente y no permite entrar en Nexus. Para copiar el diccionario al nuevo servidor hay que realizar lo siguiente: En la carpeta sistema, existe la carpeta de nuestro proyecto, que en el ejemplo visto es NexusProyectos
Esta carpeta hay que copiarla, en la carpeta Sistema de Nexus del nuevo servidor: C:\Archivos de programa\SIE\NEXUS\Sistema
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 28
TRASLADO BASE DE DATOS (SIN DICCIONARIO) A OTRO SERVIDOR Cuando trasladamos una base de datos en la que se le ha incluido un diccionario, este también deberá ser trasladado, en caso contrario, al entrar a la empresa, aparece un mensaje de error, avisando de que no existe el diccionario correspondiente y no permite entrar en Nexus. En el caso de que en el nuevo servidor, no se desea el diccionario, será necesario eliminarlo, tal como se detalla en el siguiente apartado.
ELIMINAR EL DICCIONARIO DE UNA BASE DE DATOS Este es el caso que habitualmente se da cuando en un equipo de pruebas vamos creando diccionarios y llega un momento en el que queremos eliminarlos todos y dejar las bases de datos limpias. También será necesario en el caso de un traslado de una base de datos en un servidor en el que no se desea el diccionario. Eliminar las carpetas que tienen los diccionarios que están en C:\Archivos de programa\SIE\NEXUS\Sistema Entrar en el analizador de consultas del Administrador corporativo de Microsoft SQL Server y posicionarnos en la base de datos de Nexus que deseamos.
Ejecutar la vista siguiente, con la que estamos eliminando de la base de datos los registros del diccionario.
En caso de borrar todos los diccionarios la vista es: Delete from ve rsión where librería <> ‘Nexus’
En caso de borrar un diccionario la vista es: Delete from versión where librería=’Nombre de la librería’
Pasar las vistas detalladas a continuación para limpiar sistema: DELETE NEXUS$SISTEMA.dbo.Actualizaciones DELETE NEXUS$SISTEMA.dbo.Columnas DELETE NEXUS$SISTEMA.dbo.Indices DELETE NEXUS$SISTEMA.dbo.Integridad DELETE NEXUS$SISTEMA.dbo.Plantillas DELETE NEXUS$SISTEMA.dbo.Procedimientos DELETE NEXUS$SISTEMA.dbo.Relaciones DELETE NEXUS$SISTEMA.dbo.Tablas DELETE NEXUS$SISTEMA.dbo.Version DELETE NEXUS$SISTEMA.dbo.Vistas DELETE NEXUS$SISTEMA.dbo.Sistema
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 29 En la caché de disco de cada equipo y usuario borrar la carpeta caché que habitualmente está en: C:\Documents and Settings\usuarioX\Datos de programa\SIE\Caché Eliminar manualmente desde Administrador corporativo de Microsoft SQL Server, todas las tablas nuevas creadas. Con ello queremos conseguir que la base de datos no tenga tablas innecesarias. Para eliminar los campos nuevos creados en las tablas de Nexus podemos hacer una de estas dos acciones:
Actualizar a una versión superior de Nexus. Forzar la comprobación de estructura desde el botón propiedades de la pantalla de selección de empresas.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 31
MENÚS EXTERNOS INTRODUCCIÓN Para poder integrar Nexus a otras aplicaciones externas, existe la posibilidad de poder modificar el menú estándar de la aplicación. El programador, podrá añadir opciones a los menús ya existentes, o crear incluso un menú entero, el cual quedará integrado en el estándar de Nexus. Por ejemplo, podríamos crear un menú de Utilidades y en él, crear accesos a la calculadora de windows, a Word, Excel, a un programa realizado a medida, que conecta con Nexus, etc...
QUE ES XML Los menús se crean mediante unos ficheros en formato Xml. Al igual que HTML (el lenguaje para crear páginas Web), se basa en documentos de texto plano (podemos editarlo con el bloc de notas), en los que se utilizan etiquetas para delimitar los elementos de un documento. Este documento es para usuarios que estén familiarizados con este formato. En el directorio donde se encuentre instalado Nexus, existe una carpeta Menús
Existen 2 ficheros: nexusv8.xml: Fichero XML con la estructura del Menú de Nexus. Nexusv8xml.txt: Documentación de la estructura del fichero XML.
CREACIÓN DEL FICHERO DE MENÚ Para poder definir menús, hay que crear nuestro fichero xml, con la extensión .Menu Al iniciar Nexus, se creará el menú, integrando todos los ficheros ubicados en esta carpeta con extensión .menu más el fichero de nexus (nexusv8.xml). Veamos un ejemplo de la estructura del fichero
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 32
A continuación veremos la estructura de las etiquetas y su resultado en Nexus.
ESTRUCTURA XML Los menús de Nexus, pueden ser definidos en el menú Lateral como se muestra en la siguiente imagen:
O definir el menú en la barra superior, como en el siguiente ejemplo:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 33
A continuación se detalla la sintaxis del fichero xml, para crear los menús en ambos casos. El fichero XML PUEDE tener dos nodos, MENUS y GRUPONAVBAR.
MENÚ LATERAL Para la creación de un menú en el lateral, tenemos los siguientes elementos. Hay que tener en cuenta el siguiente organigrama: MENU
GRUPOS
CATEGORIAS
OPCIONES
OPCION
SEPARADOR
OPCIONES
ITEMS
OPCION
SEPARADOR
ITEMS
MENUS envuelve los grupos, que sólo pueden estar a este nivel. GRUPOS pueden contener CATEGORIAS u OPCIONES, pero no ambas a la vez. CATEGORIAS pueden contener: ITEMS u OPCIONES pero no ambos a la vez. OPCIONES pueden contener solo OPCION y SEPARADOR ITEMS pueden contener SOLAMENTE otros ITEMS. OPCION no puede contener nada. En la siguiente tabla se detallan las propiedades de cada elemento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 34
GRUPO
Titulo: Titulo que aparecerá. Imagen: Imagen asociada a ese grupo. IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
OPCION
Titulo: Titulo que aparecerá. Id : Identificador de la opción de Nexus que se ha de ejecutar al ser seleccionada (salvo en caso de existir el atributo "Externa", en cuyo caso contendrá el path con el fichero y la extensión a ejecutar) Imagen: Imagen asociada. Si no se informa, se usará la imagen de la opción de Nexus informada en Id Externa: "T" o "F" indica si la opción llama a un programa externo o a una opción de Nexus. IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
ITEM
Titulo : Titulo que aparecerá. Id : Identificador de la opción de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usará la imagen de la opción de Nexus informada en Id IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
SEPARADOR IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
Veamos un ejemplo de cómo se visualizan los elementos en el menú en Nexus.
En este menú, GRUPO corresponde a Ficheros. CATEGORIAS corresponde a Mis favoritos, General. OPCION corresponde a Clientes, Proveedores, etc.. La raya horizontal sería el SEPARADOR.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 35
BARRAS DE MENÚS Hemos visto como es la estructura del menú lateral, ahora veremos como crear el menú pero en la barra superior de Nexus.
GRUPONAVBAR
NAVBAR
NVSEPARADOR
NVCATEGORIAS
NVITEMS NVITEMS
NVSEPARADOR
NVITEM BUSCADOR
NVITEMS SEPARADOR
El GRUPONAVBAR contiene la información para crear las barras de herramientas. GRUPONAVBAR puede contener SOLO NAVBAR NAVBAR puede contener NVCATEGORIA, NVSEPARADOR, NVITEMS, NVITEM, BUSCADOR. NVCATEGORIA pueden contener NVITEMS o NVSEPARADOR
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 36 NVITEMS puede contener NVITEMS o NVSEPARADOR En la siguiente tabla se detallan las propiedades de cada elemento. NAVBAR
Titulo : Titulo que aparecerá.
NVITEMS
Titulo : Titulo que aparecerá. Id : Identificador de la opción de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usará la imagen de la opción de Nexus informada en Id IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
NVITEM
Titulo : Titulo que aparecerá. Id : Identificador de la opción de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usará la imagen de la opción de Nexus informada en Id IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
SEPARADOR
Titulo : Titulo que aparecerá. IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
IMÁGENES Uno de los parámetros son las imágenes. Hay que indicar el directorio donde se encuentra el icono a incluir en Nexus. El fichero imagen debe ser tipo BMP con una medida de 32x16 .
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 37
NAX ¿QUÉ ES NAX (NEXUS ACTIVEX)? NAX es una librería ActiveX que permite a terceros conectarse con Nexus. Los objetivos de la librería NAX: Simplificar la tarea de utilizar la lógica de negocio de la aplicación Nexus a través de una serie de objetos con métodos y propiedades que permiten manejar esa lógica. Poder llamar a cualquiera de las opciones visuales de Nexus desde la aplicación desarrollada. Poder realizar cualquiera de los informes de Nexus introduciendo los parámetros desde aplicaciones externas. Independizar la utilización de los objetos de la aplicación de su implementación, lo que permitirá, en el futuro, facilitar la migración a nuevas versiones de aplicaciones desarrolladas con NAX. Esta ventaja reducirá considerablemente el coste de mantenimiento de las aplicaciones desarrolladas con NAX tanto desde el punto de vista del cliente como desde el punto de vista del desarrollador. Igualmente minimizará los problemas de mantenimiento que podrían derivarse de las evoluciones de de las distintas revisiones de Nexus. Independizar el uso de los objetos del formato en que se almacena la información en el disco tanto de las bases de datos que se utilizaron en el pasado (PARADOX y SQL Server 6.5) , de las que se utilizan en el presenta (SQL Server 7 o SQL Server 2000) o de las que puedan utilizarse en un futuro. Conseguir la sensación (por parte del usuario) de que está trabajando con una única aplicación y un único entorno. Garantizar la seguridad establecida por el administrador de Nexus para aquellas aplicaciones que utilizan las opciones de Nexus a través de NAX. Evitar el uso de ficheros intermedios (ASCII, XML, etc...) como sistema para conectarse con otras aplicaciones. En la mayoría de los casos es preferible la conexión en tiempo real que permite NAX. Este tipo de enlace permite que las dos aplicaciones se interrelacionen entre si lo que permitirá al usuario una reacción inmediata en el momento en que se produce el problema. En la figura que se presenta a continuación puede verse el esquema que se utiliza desde una aplicación desarrollada a medida para acceder a los datos. Se establecen como únicos interlocutores con la aplicación a medida (las flechas verdes):
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 38
Lectura de la base de datos directamente para acceder a los datos de la empresa (se recomienda utilizar este camino exclusivamente en modo lectura). El usuario (de SQL Server) que consulta la base de datos debe tener los permisos suficientes. Interacción con NAX para realizar las operaciones que interaccionan con la lógica de negocio (operaciones con maestros, documentos, contabilidad y cartera) y con Nexus (para el enlace visual con cada opción o informe). En este caso la seguridad es la que se ha establecido en el apartado de seguridad de Nexus para cada usuario perteneciente a un perfil determinado.
En este manual pretende orientar al desarrollador sobre los principales objetos y su modo de empleo. Para ello dividiremos en varios capítulos, que se detallan a continuación: ¿Cómo empezar?: Instalación de la librería. Organización de NAX: Relación de objetos que forman NAX. Enlace: Uso del objeto de conexión a los datos. Enlace visual con Nexus: Permite llamar a las opciones de Nexus con parámetros que variarán su comportamiento. Informes de Nexus: Uso de los informes de Nexus pasando parámetros desde el programa. Consultas: Uso del objeto varios que permite realizar consultas sobre la base de datos. Maestros: Ayuda a comprender el modo de utilizar los distintos ficheros maestros de la aplicación. Seleccion: Permite presentar la pantalla de selección estándar de Nexus, sin necesidad de crear un maestro. Documentos: Permite conocer las primitivas para trabajar con documentos como facturas, albaranes, depósitos, pedidos, ofertas, regularizaciones, traspasos, expedientes, etc. Apuntes: Objeto para trabajar con asientos contables. Cartera: Permite mover la cartera de efectos (cobrar, pagar, etc..). Stocks: Creación y modificación de inventarios, movimientos y reservas de stock. Excepciones: Tratamiento de los errores reportados por NAX. Cuotas: Objeto para trabajar con cuotas automáticas de facturas y albaranes. (NUEVO 802B) CobroParcialRemesa: Permite cobrar parcialmente una remesa.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 39 (NUEVO 802B) AnularCobroParcialRemesa: Permite anular el cobro de una remesa (cobrada parcialmente). Las primitivas de NAX pueden dividirse en cuatro grandes grupos: Enlace: Facilita procedimientos para conectarse a una empresa, de aquellas a las que puede accederse desde el ordenador en el que se está usando NAX. Ejecución de las opciones visuales de Nexus: Permite llamar a las opciones que se ejecutan desde el menú de Nexus. Esto permite crear un entorno especial para una instalación y no ejecutar Nexus. Impresión de informes de Nexus: Nexus dispone de sus informes ya definidos además de los informes que han sido modificados por el usuario. Estos informes constan de dos partes, la pantalla que solicita los filtros de la información que se desea listar y el listado como tal. La primera de estas tareas puede realizarse desde un programa externo y llamar a la segunda parte con los filtros deseados por el programador. Operaciones con objetos de NAX: Permite crear, borrar o modificar los distintos objetos que forman la lógica de negocio de la aplicación Nexus. Entre otras caben destacar las operaciones que pueden realizarse sobre maestros, documentos (ofertas, pedidos, albaranes, facturas, etc...) apuntes, cartera, activos fijos y presupuestaria.
INSTALACIÓN DE NAX Al instalar Nexus, se registrará automáticamente el fichero NAX.DLL, que por omisión se instala en C:\Archivos de programa\SIE\Nexus. En caso de necesitar registrar NAX la instrucción es: regsvr32 "c:\archivos de programa\sie\Nexus\nax.dll" Una vez registrado NAX tendremos que incorporar las funcionalidades a nuestra aplicación importando el activeX;para esto podemos hacerlo de las siguientes maneras : Aplicaciones en delphi: podemos hacerlo de dos formas, haciendo un uses del NAX_TLB.pas en nuestro proyecto ( está en la carpeta interface de la instalación de Nexus) para usuarios de delphi7 o importando la Type Library para inferiores a delphi7. Aplicaciones en otros lenguajes: importar el nax según especificaciones del lenguaje (por ejemplo en VB sería marcar una referencia).
LICENCIAS NAX RUNTIME / NEXUS Si nuestro programa a medida, va a llamar a pantallas de Nexus, por ejemplo abrir una ventana de selección, de un maestro (cliente, proveedor, artículo, etc.), será necesario tener una licencia de Nexus. Si por el contrario, nuestro programa no hace ninguna llamada ‘visual’, con la licencia de Nax
Runtime ya será suficiente. Cualquier consulta sobre tema de licencias, consultar con el departamento comercial
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 40
ORGANIZACIÓN DE NAX NAX se organiza mediante objetos. Para cada objeto debe crearse una instancia en la aplicación que se desea conectar a través de NAX. A partir de ese momento, utilizaremos esa instancia para hacer referencia al objeto y poder utilizar sus propiedades y sus métodos.
RELACIÓN DE OBJETOS DE NAX A continuación se detallan todos los objetos que podemos utilizar. En el siguiente capítulo veremos en detalle cada uno con sus propiedades y métodos. Enlace: inicia y cierra la conexión con la base de datos de Nexus. Varios: Objeto con funciones varias destinadas a: Obtención de precios, obtención de cambio entre monedas, obtención de identificadores únicos de Nexus, obtención de cuentas y descripciones. Maestro: Artículos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Países, Tarifas, Idiomas, etc... . Este objeto permite moverse por los ficheros mencionados, así como añadir nuevos y modificar los existentes. Factura: Objeto que permite la creación, modificación y borrado de facturas. Albaran: Objeto que permite la creación, modificación y borrado de albaranes. Deposito: Objeto que permite la creación, modificación y borrado de depósitos. Pedido: Objeto que permite la creación, modificación y borrado de pedidos. Oferta: Objeto que permite la creación, modificación y borrado de ofertas (presupuestos). Regularizacion: Objeto que permite la creación, modificación y borrado de albaranes de regularización. Traspaso: Objeto que permite la creación, modificación y borrado de albaranes de traspaso entre almacenes. Asiento: Objeto que permite la creación, modificación y borrado de asientos. Cartera: Objeto que permite la creación, modificación y borrado de vencimientos en cartera. OperacionesCartera: Objeto que permite realizar operaciones sobre los efectos en cartera a excepción de agrupaciones y remesas. Permite por ejemplo cobrar, pagar, devolver, recibir, etc... Agrupacion: Objeto que ayuda a gestionar las operaciones con las agrupaciones de efectos de cartera. Remesa: Objeto que ayuda a gestionar las operaciones con las remesas de efectos de cartera. Inventario : Objeto que permite la creación y modificación de inventarios. MovimientoStock: Objeto que permite la creación, modificación y borrado de líneas que generan movimientos en el stock por documentos no controlados por Nexus.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 41 ReservaStock: Objeto que permite la creación, modificación y borrado de líneas que generan reservas en el stock por documentos no controlados por Nexus. Opcion: Objeto que permite llamar a cualquier opción de la aplicación Nexus. Listado: Objeto que permite realizar informes pasando los parámetros deseados directamente. OperacionesInmovilizado: Objeto que permite realizar operaciones sobre el inmovilizado así como amortizar y repercutir las amortizaciones de las cuotas. Presupuesto: Permite crear, borrar o modificar el contenido de la contabilidad presupuestaria. Estructura: Objeto que permite la creación, modificación y borrado de estructuras. OrdenProduccion: Objeto que permite la creación, edición, borrado y evolución de las órdenes de producción. Filtro: Objeto que permite la creación, modificación, y borrado de los filtros. Expediente: Objeto que permite la creación, modificación y borrado de expedientes. También la facturación y anulación del mismo.
EJEMPLO DEL USO DE UN OBJETO NAX EN DELPHI Uses NAX_TLB; Function CambioEuro: Double; var naxVarios: Varios;
// Instancia del objeto Varios de NAX
begin naxVarios := coVarios.Create;
// Creación del objeto
Result := naxVarios.Cambio(‘DOLAR’, ‘01/01/2002’); // Uso del objeto para obtener el cambio
// de DOLAR a EURO en 2002 end;
EJEMPLO DEL USO DE UN OBJETO EN VISUAL BASIC Dim naxVarios As NAX.Varios
// Instancia del objeto Varios de NAX
Private Sub Cambio() Cambio = naxVarios.Cambio(‘DOLAR’, ‘01/01/2002’) // Uso del objeto para obtener el cambio
// de DOLAR a EURO en 2002 End Sub
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 42
ENLACE (CONEXIÓN) NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIÓN NAX necesita que esté instalado Nexus en esa estación ya que comparten la instalación.
MÉTODOS Y FUNCIONES DEL ENLACE Métodos
Tipo
Descripción
Empresas
Función
Obtiene la lista de los nombres de las empresas de la instalación.
ParamConexion
Función
Obtiene los parámetros de conexión de una empresa determinada
Iniciar
Procedimiento Inicia la conexión con una empresa indicada en un parámetro
SelecEmpresa
Función
Inicia la conexión con una empresa seleccionada por el propio usuario.
SelecEmpresaActiva
Función
Inicia la conexión en la empresa en la que se encuentra Nexus. Creado para poder llamar a un programa que use NAX desde la barra de iconos de Nexus.
SelecMultiEmpresa
Función
Activa el tipo contable (multiempre) de los tipos permitidos por el usuario.
SelecMultiEmpresaActiva
Función
Activa el tipo contable (multiempre) del registro de Windows, de los tipos permitidos por el usuario.
Acabar
Procedimiento Termina la conexión
EliminarRecordatorioClave Procedimiento Elimina el flag de recordar la contraseña del registro de Windows EstacionActivada
Función
Retorna si el numero de serie de lPRODUCTO NEXUS está activado para la estación.
CerrarVentanas
Procedimiento Cierra todas la ventanas abiertas de Nexus
ActivarVentana
Procedimiento Pone en primer plano la ventana activa de Nexus
LoginUsuario
Función
Se utiliza para evitar la pantalla visual donde se piden el usuario y password de entrada en Nexus, y retorna
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 43 si dichos valores son correctos para entrar en la aplicación. Siempre que se trabaje con NAX debe haberse conectado previamente una empresa concreta. Para iniciarse esta conexión (enlace) existen dos posibles sistemas:
A) Que la aplicación desarrollada con NAX presente la relación de empresas existentes y el usuario se encargue de seleccionar la empresa con la que desea trabajar. B) Llamar a una función de NAX que se encargue de conectarnos con la última empresa con la que se ha conectado desde Nexus.
En ambos casos el resultado final es que NAX queda conectado con una empresa contra la que trabajarán todos los objetos que en adelante se utilicen. A continuación se muestran dos ejemplos, en cada uno de los cuales se muestra una de las dos formas de crear un enlace con una empresa elegida por el usuario.
EJEMPLOS EN DELPHI INICIAR UN ENLACE (OPCIÓN A)
var naxEnlace: Enlace; procedure Enlazar; begin naxEnlace := coEnlace.Create;
// Se crea el objeto para el enlace
// Saldrá la selección de empresas de Nexus if not naxEnlace.SelecEmpresa then Exit; end; INICIAR UN ENLACE (OPCIÓN B)
var naxEnlace: Enlace; procedure Enlazar; begin naxEnlace := coEnlace.Create;
// Se crea el objeto para el enlace
// Se inicia el enlace en la empresa donde se esté con Nexus if not naxEnlace.SelecEmpresaActiva then Exit; end;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 44
EJEMPLOS EN VISUAL BASIC Dim boaEnlace As NAX.Enlace .. Set BoaEnlace = New Nax.Enlace boaEnlace.SelecEmpresa
EJEMPLO TRATAMIENTO DE EXCEPCIONES Dentro de las operaciones que pueden ejecutarse en NAX pueden producirse errores. A través del enlace puede consultarse el último error que se ha producido. Para tratar correctamente las excepciones, debería consultarse si se ha producido algún error para cada operación que se realiza con NAX y en caso de error interrumpir el proceso. Ejemplo de tratamiento de excepciones: var naxEnlace: Enlace; naxClientes: Maestro; begin naxEnlace := coEnlace.Create; naxEnlace.Iniciar( ‘Mi empresa’, ‘C:\archivos de programa\sie’);
naxClientes := coMaestro.Create; naxClientes.Iniciar( ‘Clientes’);
if naxEnlace.bError then begin ShowMessage( ‘Error: ‘ naxEnlace.sMensaje);
Exit; end; naxClientes.Nuevo; if naxEnlace.bError then begin ShowMessage( ‘Error: ‘ naxEnlace.sMensaje);
Exit; end; . . end; Se recomienda la construcción de un procedimiento que realice estas comprobaciones: Procedure naxCheck; begin
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 45 if naxEnlace.bError then begin raise Exception.Create( ‘Error: ‘ naxEnlace.sMensaje);
// Rompe la ejecución del
programa end; end; De esta forma la aplicación quedaría menos cargada de código: var naxEnlace: Enlace; naxClientes: Maestro; begin naxEnlace := coEnlace.Create; naxEnlace.Iniciar( ‘Mi empresa’, ‘C:\archivos de programa\sie’);
naxClientes := coMaestro.Create; naxClientes.Iniciar( ‘Clientes’);
naxCheck;
// En caso de error rompe la ejecución del programa
naxClientes.Nuevo; naxCheck;
// En caso de error rompe la ejecución del programa
. . end;
OPCION (LLAMADA A OPCIONES VISUALES) Para ejecutar una opción debe conocerse el identificador único que la representa y los parámetros con que se utiliza. SIE edita continuamente documentación en este sentido( al instalar Nexus, en la carpeta ejemplos encontrará el fichero OpcionesVisualesNexus con el listado de opciones, su identificador y sus posibles parámetros). A continuación veremos dos ejemplos del uso de este objeto. En el primer ejemplo no se utilizan parámetros y en la segunda sí.
EJEMPLO 1: MANTENIMIENTO DE CLIENTES SIN PARÁMETROS (igual que si se llamara desde el menú de Nexus) EN DELPHI
procedure MantenimientoClientes; var
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 46 naxOpcion: Opcion; begin naxOpcion := coOpcion.Create; naxOpcion.Iniciar; naxOpcion.IdOpcion := ‘manClientes’;
naxOpcion.Ejecutar; naxOpcion.Acabar; end; EN VISUAL BASIC
Private Sub btnEditarNexus_Click() Dim NaxOpcion As NAX.Opcion Set NaxOpcion = New NAX.Opcion NaxOpcion.Iniciar NaxOpcion.IdOpcion = "manClientes" NaxOpcion.Ejecutar NaxOpcion.Acabar **
EJEMPLO 2: EDICIÓN DE LA FICHA CON PARÁMETOS De un cliente determinado. EN DELPHI
procedure MantenimientoClientes( sCliente: string); var naxOpcion: Opcion; begin naxOpcion := coOpcion.Create; naxOpcion.Iniciar; naxOpcion.IdOpcion := ‘manClientes’; naxOpcion.AnadirParametro( ‘Accion’, ‘Edicion’); naxOpcion.AnadirParametro( ‘Codigo’, sCliente);
naxOpcion.Ejecutar; naxOpcion.Acabar; end; EN VISUAL BASIC
Private Sub btnEditar_Click() Dim NaxOpcion As NAX.Opcion
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 47 Set NaxOpcion = New NAX.Opcion NaxOpcion.Iniciar NaxOpcion.IdOpcion = "manClientes" Call NaxOpcion.AnadirParametro("Accion", "Edicion") Call NaxOpcion.AnadirParametro("Codigo", edtCodigo.Text) NaxOpcion.Ejecutar NaxOpcion.Acabar End Sub
LISTADO (IMPRESIÓN DE INFORMES) Para ejecutar una opción debe conocerse el identificador único que la representa y los parámetros con que se utiliza. SIE edita continuamente documentación en este sentido. A continuación veremos dos ejemplos del uso de este objeto, en el primero realizando la presentación preliminar de un listado de clientes y en el segundo generando un fichero en formato PDF con el contenido del mismo listado.
EJEMPLO 1: PRESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI procedure ListadoClientes; var naxListado: Listado; begin naxListado := coListado.Create; naxListado.Iniciar;
// Reservar los recursos
naxListado.IdListado := ‘lstCli’;
// Identificador del listado
naxListado.Destino := destPantalla; preliminar) naxListado.Copias := 1;
// Destino del listado (prosentación // Nº de copias
naxListado.Impresora := ‘Impresora local LaserJet 4200’; // Nombre de la impresora
// Nombre del modelo definido por el usuario
naxListado.Modelo := ‘Listado con email’; naxListado.AnadirParametro( ‘CodIni’, ‘
1’);
// Código inicial
naxListado.AnadirParametro( ‘CodFin’, ‘99999999’); // Código final
naxListado.Imprimir;
// Imprimir
naxListado.Acabar;
// Liberar los recursos
end;
EJEMPLO 2: FICHERO PDF CON EL LISTADO DE CLIENTES EN DELPHI procedure PDFClientes;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 48 var naxListado: Listado; begin naxListado := coListado.Create; naxListado.Iniciar;
// Reservar los recursos
naxListado.IdListado := ‘lstCli’;
// Identificador del listado
naxListado.Destino := destPDF;
// Destino del listado (fichero en formato PDF)
naxListado.Fichero := ‘C:\Listados \Clientes email.pdf’; // Fichero donde almacenar el listado naxListado.Copias := 1;
// Nº de copias
naxListado.Impresora := ‘Impresora local LaserJet 4200’; // Nombre de la impresora
// Nombre del modelo definido por el usuario
naxListado.Modelo := ‘Listado con email’; naxListado.AnadirParametro( ‘CodIni’, ‘
// Código inicial
1’);
naxListado.AnadirParametro( ‘CodFin’, ‘99999999’); // Código final
naxListado.Imprimir;
// Imprimir
naxListado.Acabar;
// Liberar los recursos
end;
EJEMPLO 3: PRESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN VB. Private Sub btnListado_Click() Dim NaxListado As NAX.Listado Set NaxListado = New NAX.Listado NaxListado.Iniciar NaxListado.IdListado = "LSTCLI" Call NaxListado.AnadirParametro("CodIni", "
1")
Call NaxListado.AnadirParametro("CodFin", "99999999") NaxListado.Imprimir NaxListado.Acabar End Sub
EJEMPLO 4: IMPRIMIR UN EFECTO FORMATO RECIBO EN DELPHI procedure PDFRecibo; var naxListado: Listado; begin NaxLis := CoListado.Create; NaxLis.Iniciar;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 49 naxLis.IdListado := 'LSTIMPREFERE'; naxLis.AnadirParametro('NumCartera0', '6356'); naxLis.AnadirParametro('NumVen0', '1'); naxLis.AnadirParametro('Total', '0'); naxLis.AnadirParametro('Posicion', '1'); naxLis.AnadirParametro('FecExp', '07/12/2009'); naxLis.AnadirParametro('CobroPago', 'C'); naxLis.AnadirParametro('Portador', 'Prueba'); naxLis.Destino := destJPG; naxLis.Fichero := 'C:\tmp\Prueba.jpg'; NaxLis.Imprimir; NaxLis.Acabar; End;
VARIOS (CONSULTAS) En este apartado veremos algunas de las funciones que pueden ayudarnos en la integración con Nexus. Los métodos que vamos a usar en este capítulo se encuentran en el objeto Varios y se detallan a continuación:
CONSULTAS SEGÚN CRITERIOS DE NEXUS Métodos
Tipo
Descripción
ObtPrcVenta
Función
Obtiene el precio de venta.
ObtPrcCompra
Función
Obtiene el precio de compra.
ObtPrecioCoste
Función
Obtiene el precio de coste.
ObtPrecioMedio
Función
Obtiene el precio medio.
ObtComis
Función
Obtiene la comisión
Cambio
Función
Obtiene el cambio de una moneda.
CambioMon
Función
Obtiene el cambio entre dos monedas.
MonedaPrincipal
Función
retorna el código de la moneda principal
DescArticulo
Procedimiento
Devuelve la descripción y el texto de un artículo en un idioma.
ObtRepresentante
Función
Devuelve el representante de un cliente.
CuentaArtV
Función
Devuelve la cuenta del artículo de venta
CuentaArtC
Función
Devuelve la cuenta del artículo de compra
TotalLinea
Función
Devuelve la base imponible (en moneda) de la línea
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 50 FormatNum
Función
Devuelve el formato para n decimales (con miles)
FormatEdiNum
Función
Devuelve el formato para n decimales
Redondear
Función
Redondea un número a n decimales
Version
Propiedad
Contiene la versión instalada de Nexus
Revision
Propiedad
Contiene la revisión instalada de Nexus
Parche
Propiedad
Contiene el parche instalado de Nexus
Vencimientos
Funcion
Crea un array con la información el conjunto de vencimientos con las condiciones especificadas.
LlamarVisual
Procedure
Muestra un pantalla visual de Nexus
Funciones para recuperación de identificadores Métodos
Tipo
Descripción
SigId
Función
Devuelve el siguiente valor del identificador
EJEMPLO 1: CONSULTAS SEGÚN LOS CRITERIOS DE NEXUS. Function CuentaDeVenta: string; var naxVarios : Varios; sCodArt, sCodCli: string begin naxVarios := coVarios.Create; sCodArt := ‘1’; sCodCli:= ‘1’;
Result := naxVarios.CuentaArtV(sCodArt, sCodCli); // Cuenta de ventas dado un artículo y un cliente end;
EJEMPLO 2: USO DE LOS IDENTIFICADORES DE NEXUS PARA OBTENER UN IDENTIFICADOR PROPIO En primer lugar aclarar la utilización que un programador puede hacer de el sistema de identificadores de Nexus. Los identificadores no son más que un sistema para obtener claves únicas con un sistema interno de Nexus dado un nombre. Nexus utiliza sus propios identificadores (por ejemplo para identificar una factura de venta de forma única se utiliza un identificador llamado IdFacV). Los identificadores que ya utiliza Nexus es difícil que puedan interesar a un programa externo, pero el sistema como tal puede ser de utilidad en el caso en que se deseen tener identificadores únicos y consecutivos para alguna tarea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 51 En el ejemplo interesa conseguir un identificador único para cada cuota de un programa que estamos creando. Function IdentificadorCuotas: Double; ( en Delphi) var naxVarios : Varios; Begin naxVarios := coVarios.Create; Result := naxVarios.SigId( ‘Cuotas’);
End; Function Sub IdentificadorCuotas Dim NaxVarios As NAX.Varios Set NaxVarios = New NAX.Varios Return( call NaxVarios.SigId( “Cuotas”))
Este trozo de código garantiza al programador que cada vez que llame a esta función o btendrá un identificador único identificado con el texto Cuotas. El primer valor de es te identificador será el 1 y este se irá incrementando continuamente.
MAESTROS La mayoría de los ficheros maestros que utiliza Nexus pueden ser gestionados desde este objeto. Para ello cuando se crea la instancia del objeto, hay que indicar el nombre del fichero al que desea asociarse la instancia, de la forma que se muestra en los siguientes ejemplos: EN DELPHI
var naxClientes: Maestro; begin naxClientes := coMaestro.Create;
// Crea la instancia del maestro de clientes
naxClientes.Iniciar( 'Clientes');. // Inicia el objeto especificando que se trata del maestro de ...
// clientes
... naxClientes.Acabar; end; EN VISUAL BASIC
Dim naxClientes As NAX.Maestro Set naxClientes = New NAX.Maestro Call naxClientes.Iniciar("Clientes")
// como siempre, destruir el objeto creado
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 52 ... ... naxClientes.Acabar El parámetro que se le pasa al procedimiento iniciar es el valor del parámetro en la siguiente tabla (no están los que coincide el nombre de la tabla con el parámetro: Nombre de tabla
Valor del parámetro
TipoIva
TIPOSIVA
RegIva
REGIMENESIVA
RegIva ( solo soportados)
REGIMENESIVASOP
RegIva ( solo repercutidos)
REGIMENESIVAREP
Proveed
PROVEEDORES
Articulo
ARTICULOS
DocuPago
DOCUMENTOSPAGO
FormaPag
FORMASPAGO
Almacen
ALMACENES
Represen
REPRESENTANTES
Transpor
TRANSPORTISTAS
Provinci
PROVINCIAS
CentrosC
CENTROSCOSTE
TiposCon
TIPOSCONTABLES
TarifaVe
TARIFASVENTA
PrcEsp
PRECIOSESPECIALES
DatosCon
DATOSCONTABLES
DomBanca ( proveedores)
DOMBANCAC
DomBanca ( clientes)
DOMBANCAV
RefCli
REFCLIENTES
RefPro
REFPROVEEDORES
FamiliaTalla
FAMILIATALLAHORIZONTAL
FamiliaTalla
FAMILIATALLAVERTICAL
LAS CLAVES FORÁNEAS
Las claves foráneas en Nexus se guardan cuadradas a la derecha. Esto significa que si el ancho de un código es de 8 dígitos y el valor que se introduce en él es el ‘3’, el programa añade siete espacios delante para que el ‘3’ quede a la derecha (‘_______3’). Esto sólo se hace con los códigos numéricos
ya que a los alfanuméricos no se añade ningún espacio.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 53 Cuando se introduce un valor en un campo clave, el programa se encarga de cuadrarlo. De la m isma forma, si se pasa un parámetro a una función que se refiere al valor de una clave, el programa también lo cuadra. Ejemplo: naxArticulo.Buscar( ‘1’) Esta función busca el artículo con código ‘_______1’.
EXCEPCIONES
Son excepciones a esta regla los valores de los parámetros de los objetos Opcion y Listado que deben pasarse ya cuadrados dado que a priori se desconoce el contenido del parámetro.
OPERACIONES MÁS IMPORTANTES Las operaciones que pueden realizarse con un maestro son varias y a continuación se d etallan los usos más habituales: ASIGNAR/LEER VALORES A LOS CAMPOS DE CADA FICHERO MAESTRO
var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create;
// Crea la instancia del maestro
naxArticulo.Iniciar( 'Articulos');.
// Inicia el objeto indicando que se trata de artículos.
if naxArticulo.Buscar( ‘1’) then
// Buscar el artículo a editar.
begin naxArticulo.AsString* ‘DescArt’+ := ‘Descripción del artículo’;
naxArticulo.AsFloat* ‘PrcCompra’+ := 1500; naxArticulo.AsFloat* ‘PrcVenta’+ := naxArticulo.AsFloat* ‘PrcCompra’+ 1.25;
end; . . AsString, AsFloat, AsInteger y AsBoolean son funciones que sirven para asignar/leer cualquier campo del registro del maestro elegido. CREAR REGISTROS NUEVOS
En la creación de registros nuevos NAX aporta una de sus grandes ventajas, ya que el registro se carga con los valores por defecto y el programador debe limitarse a rellenar aquellos que conoce. Son campos obligatorios el código y la descripción. Así mismo al guardarse el registro se realizan ciertas comprobaciones. var naxArticulo: Maestro; sCodigo: string; begin
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 54 naxArticulo := coMaestro.Create;
// Crea la instancia del maestro
naxArticulo.Iniciar( 'Articulos');. naxArticulo.Nuevo;
// Inicia el objeto indicando que se trata de de artículos
sCodigo := naxArticulo.NuevoCodigoNum; // Busca el último código y le suma 1. naxArticulo.AsString[ 'CodArt'] := sCodigo; naxArticulo.AsString* ‘DescArt’+ := ‘Descripción del artículo’; naxArticulo.AsFloat* ‘PrcCompra’+ := 1500; naxArticulo.AsFloat* ‘PrcVenta’+ := naxArticulo.AsFloat* ‘PrcCompra’+ 1.25;
naxArticulo.Guarda( False);
// False indica que se trata de un registro nuevo // True indicaría que se trata de una modificación
end; MODIFICAR REGISTROS EXISTENTES
var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create;
// Crea la instancia del maestro de artículos
naxArticulo.Iniciar( 'Articulos');.
// Inicia el objeto
if naxArticulo.Buscar( ‘1’) then begin // Busca el cliente con el código 1
naxArticulo.Edita; naxArticulo.AsString* ‘DescArt’+ := ‘Descripción del artículo’; naxArticulo.AsFloat* ‘PrcCompra’+ := 1500; naxArticulo.AsFloat* ‘PrcVenta’+ := naxArticulo.AsFloat* ‘PrcCompra’+ 1.25;
naxArticulo.Guarda( True);
// True indica que se trata de un registro existente
end else ShowMessage( ‘Registro no encontrado’);
end; RECORRER REGISTROS DE UN MAESTRO
NAX ofrece las funciones necesarias para recorrer un fichero que son: BOF, EOF, Primero, Ultimo, Siguiente, Anterior, Buscar. A continuación vemos un ejemplo sencillo del recorrido del fichero de artículos. var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create;
// Crea la instancia del maestro de artículos
naxArticulo.Iniciar( 'Articulos');.
// Inicia el objeto
naxArticulo.Primero;
// Se situa en el primer registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 55 while not naxArticulo.EOF do begin
// Recorre la tabla mientras no llega al final
…
naxArticulo.Siguiente;
// Se situa en el siguiente registro
end; end;
DOCUMENTOS Los documentos son algunos de los objetos más complejos que pueden tratarse con NAX. Con estos objetos pueden crearse los siguientes tipos de documentos en Nexus: Facturas Albaranes Depósitos Pedidos Ofertas Regularizaciones Traspasos Inventarios Movimientos de stock Reservas de stock Las operaciones que pueden realizarse con este tipo de objeto son: Añadir, Borrar y Modificar. Para ello es imprescindible crear e iniciar el objeto (con el procedimiento Iniciar). Al finalizar su uso hay que liberar los recursos (con el procedimiento Acabar). var naxFactura: Factura; begin naxFactura := coFactura.Create;
// Crea el documento factura
naxFactura.Iniciar;
// Inicia el objeto
. naxFactura.Acabar;
// Libera los recursos internos del objeto
end;
EJEMPLO EN DELPHI DE LA CREACIÓN DE UNA NUEVA FACTURA // Dar de alta una factura Procedure UnaFactura; Var naxFactura: Factura;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 56 nFact: double;
// Identifica a la factura que vamos a crear
Begin // Crea el objeto naxFactura := coFactura.Create; boaFctura.Iniciar; // Comenzar una nueva factura naxFactura.Nuevo(
‘30/03/2002’, // Fecha de la factura
‘1’,
// Código del cliente
False,
// Indica que es de venta (True indicaría que es de compra)
False,
// Indica que es de gestión (True indicaría que es contable)
True,
// Indica que se desean las repercusiones contables
True);
// Indica que se desean los vencimientos
// Cambiar algunos campos de la cabecera naxFactura.AsStringCab* ‘Tarifa’+ := ‘PVP’;
// Añadir una línea en la factura naxFactura.NuevaLineaArt(
‘1’,
// Código del artículo20);
// Unidades de la línea
naxFactura.AsFloatLin* ‘PrcMoneda+ := 1500;
naxFactura.AnadirLinea; // Genera definitivamente la factura. RETORNA UN IDENTIFICADOR nFact := naxFactura.Anade; naxFactura.Acabar;
// Libera los recursos del objeto
End; // Fin del procedimiento El identificador que retorna la función Anade (nFact), puede almacenarse donde desee el programador para más adelante utilizarlo, por ejemplo, para borrar esa factura, si es necesario. Es importante tener en cuenta la gran parte del trabajo oculto que realiza NAX por nosotros. En este caso al guardar la factura: 1. Se asignan los valores por defecto dado el cliente y el artículo de la línea. 2. Se generan los vencimientos 3. Se generan los asientos contables 4. Se actualiza el stock de cada artículo en las líneas, dado el almacén de la cabecera. Esto se hace de una forma totalmente oculta, y al programador que utiliza NAX le es absolutamente indiferente de que forma se ha implementado internamente cada una de las operaciones. En el futuro, SIE puede modificar la implementación interna, pero para NAX las operaciones seguirán siendo las mismas. Para realizar este borrado lo haremos como en la siguiente función ejemplo: Procedure BorrarFactura( nIdFac:Double);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 57 var naxFactura: Factura; nFact: double; // Identifica a la factura que vamos a crear Begin // Crea el objeto naxFactura := coFactura.Create; boaFctura.Iniciar; // Borrar la factura con el IDENTIFICADOR pasado al procedimiento naxFactura.Borra( nIdFac, False); // False indica que se trata de una factura de venta naxFactura.Acabar; end; Procedure ModificarFactura( nIdFac:Double); var naxFactura: Factura; nFact: double; // Identifica a la factura que vamos a crear Begin // Crea el objeto naxFactura := coFactura.Create; boaFctura.Iniciar; // modifica la factura con el IDENTIFICADOR pasado al procedimiento naxFactura.Modifica( nIdFac, False); // False indica que se trata de una factura de venta // Cambiar algunos campos de la cabecera naxFactura.AsStringCab* ‘Tarifa’+ := ‘PVP’;
naxFactura.Anade; naxFactura.Acabar; end;
APUNTES El objeto Asiento nos permite generar apuntes en contabilidad, borrarlos y modificarlos. Internamente acumula saldos y controla que no se produzcan errores de coherencia. Un ejemplo claro de la utilización del objeto Asiento sería el que crearía los apuntes correspondientes a una factura. Function AsientoFactura( sFecha, sTipoCont, sCtaCliente, sNumFac: string; nBase: Double): Double; var
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 58 naxAsiento: Asiento; begin // Crea el objeto asiento naxAsiento := coAsiento.Create; naxAsiento.Iniciar; // En primer lugar se indican los datos de la cabecera del asiento que coinciden en todas las líneas // ‘N’ indica que se trata de un asiento normal naxAsiento.Nuevo( sFecha, sTipoCont,‘N’);
// Otras posibilidades: // ‘A’: Apertura, ‘P’: Explotación, ‘T’: Cierre
// A continuación se especifican los datos de cada una de las líneas naxAsiento.AApunte( 'EURO',
// Moneda
‘70000000’,
// Cuenta
0,
// Importe debe en la moneda indicada // Descripción
‘De n/fra. ‘ sNumFac,
nBase,
// Importe haber en la moneda indicada
‘’,
// Centro de coste
‘’);
// Texto
naxAsiento.AApunte( 'EURO',
// Moneda
‘47700000’,
// Cuenta
0,
// Importe debe en la moneda indicada // Descripción
‘De n/fra. ‘ sNumFac,
nBase * 0.16,
// Importe haber en la moneda indicada
‘’,
// Centro de coste
‘’);
// Texto
naxAsiento.AApunte( 'EURO', sCtaCliente,
// Moneda // Cuenta
nBase * 1.16, // Importe debe en la moneda indicada ‘De n/fra. ‘ sNumFac,
// Descripción
0,
// Importe haber en la moneda indicada
‘’,
// Centro de coste
‘’);
// Texto
// Al acabar el asiento nos retorna el IDENTIFICADOR por si deseamos utilizarlo en el futuro // para borrar/modificar este asiento. Result := naxAsiento.Anade;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 59 naxAsiento.Acabar;
// Libera los recursos del objeto
end;
DOS FORMAS DE TRABAJAR CON ASIENTOS En la versión anterior a Nexus (Euro 2000) se trabajaba con las primitivas que acabamos de ver para generar asientos, pero en Nexus se han ampliado para introducir nuevas prestaciones así como nuevos campos propios de la nueva versión de Nexus. A continuación veremos el mismo ejemplo pero con las nuevas funciones: Function AsientoFactura( sFecha, sTipoCont, sCtaCliente, sNumFac: string; nBase: Double): Double; var naxAsiento: Asiento; begin // Crea el objeto asiento naxAsiento := coAsiento.Create; naxAsiento.Iniciar; // En primer lugar se indican los datos de la cabecera del asiento que coinciden en todas las líneas naxAsiento.NuevoNax(
‘N’,
// ‘N’ indica que se trata de un asiento normal
// Otras posibilidades: // ‘A’: Apertura, ‘P’: Explotación, ‘T’: Cierre
sTipoCont,
// Tipo contable
sDiario,
// Diario contable
sNumDoc,
// Nº documento
sFecha);
// Fecha
// A continuación se especifican los datos de cada una de las líneas naxAsiento.AApunteNax(
‘FV’,
‘De n/fra. ‘ sNumFac,
// Descripción
‘’,
// Centro de coste 1
‘’,
// Centro de coste 2
‘’,
// Centro de coste 3
'EURO',
// Concepto
// Moneda
‘70000000’,
// Cuenta
0,
// Importe debe en la moneda indicada
0,
// Importe debe en la moneda principal
nBase,
// Importe haber en la moneda indicada
nBase,
// Importe haber en la moneda principal
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 60 ‘’,
// Texto
sFecha);
// Fecha valor
naxAsiento.AApunteNax(
‘FV’,
‘De n/fra. ‘ sNumFac,
// Descripción
‘’,
// Centro de coste 1
‘’,
// Centro de coste 2
‘’,
// Centro de coste 3
'EURO',
// Concepto
// Moneda
‘47700000’,
// Cuenta
0,
// Importe debe en la moneda indicada
0,
// Importe debe en la moneda principal
nBase * 0.16, // Importe haber en la moneda indicada nBase * 0.16, // Importe haber en la moneda principal ‘’,
// Texto
sFecha);
// Fecha valor
naxAsiento.AApunteNax(
‘FV’,
‘De n/fra. ‘ sNumFac,
// Descripción
‘’,
// Centro de coste 1
‘’,
// Centro de coste 2
‘’,
// Centro de coste 3
'EURO', sCtaCliente,
// Concepto
// Moneda // Cuenta
nBase * 1.16, // Importe debe en la moneda indicada nBase * 1.16, // Importe debe en la moneda principal 0,
// Importe haber en la moneda indicada
0,
// Importe haber en la moneda principal
‘’,
// Texto
sFecha);
// Fecha valor
// Al acabar el asiento nos retorna el IDENTIFICADOR por si deseamos utilizarlo en el futuro // para borrar/modificar este asiento. Result := naxAsiento.Anade; naxAsiento.Acabar;
// Libera los recursos del objeto
end; El IDENTIFICADOR retornado por Anade podremos utilizarlo para borrar el asiento, como se hace en el siguiente ejemplo:
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 61 Procedure BorrarAsiento ( nAsiento: double); var naxAsiento: Asiento; begin naxAsiento := coAsiento.Create;
// Crea el objeto asiento
naxAsiento.Iniciar; naxAsiento.Borra( nAsiento);
// Borra el asiento con el identificador indicado
naxAsiento.Acabar;
// Libera los recursos del objeto
end;
CARTERA En cartera existen tres tipos de funciones: Creación, modificación y borrado de vencimientos. Realizar operaciones con vencimientos existentes Crear remesas y agrupaciones
CREACIÓN, MODIFICACIÓN Y BORRADO DE VENCIMIENTOS Un ejemplo claro de la utilización del objeto Cartera sería el que crearía los vencimientos correspondientes a una factura en dos plazos. Function VencimientoFacturaVenta(sCodCli, sFechaFactura, sCodMon, sTipoCont, sSerie, sNumFac, sFecha1, sFecha2: string; nImporte: Double): Double; var naxCartera: Cartera; begin // Crea el objeto cartera naxCartera := coCartera.Create; naxCartera.Iniciar; // En primer lugar se indican los datos de cabecera que son comunes para todos los vencimientos. naxCartera.Nuevo( sFecha, sCodCli, sCodMon, sTipoCont, sSerie, sNumFac, False); // A continuación se indican los datos de cada uno de los vencimientos naxCartera.NuevoVen( sFecha1, Int( nImporte/2)); naxCartera.AnadirVen; naxCartera.NuevoVenVen( sFecha2, nImporte - Int( nImporte/2)); naxCartera.AnadirVen; // Al acabar los cartera nos retorna el IDENTIFICADOR, por si deseamos utilizarlo en el futuro // para borrar/modificar este registro de cartera.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 62 Result := naxCartera.Anade; naxCartera.Acabar; end; El IDENTIFICADOR retornado por Anade podremos utilizarlo para borrar la cartera, como se hace en el siguiente ejemplo: Procedure BorrarCartera( nCartera: double); var naxCartera: Cartera; begin naxCartera := coCartera.Create;
// Crea el objeto cartera
naxCartera.Iniciar; naxCartera.Borra( nCartera);
// Borra la cartera con el identificador indicado
naxCartera.Acabar; end;
EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AÑADIR UN NUEVO VENCIMIENTO EN CARTERA NaxCartera := CoCartera.Create; NaxCartera.Iniciar; nNumCartera := 6398; if NaxCartera.PuedeModificarse(nNumcartera) then begin NaxCartera.Editar(nNumcartera); // editamos el numero de cartera NaxCartera.EditarVencimiento( 1); // editamos el vencimiento 1 NaxCartera.VAsFloat['IMPORTEMON'] := NaxCartera.VAsFloat['IMPORTEMON'] - 500; NaxCartera.GuardarVencimiento; // al vencimiento 1 hemos restado 500€ y lo guardamos // vamos a crear un nuevo vencimiento del 500€ con fecha 24/3/2010 para la cartera 6398
NaxCartera.AsFloat['IMPORTEMON'] := 500; Nuevo := NaxCartera.AnadirVen; NaxCartera.EditarVencimiento(Nuevo); NaxCartera.VAsString['FECHA'] := '24/03/2010'; NaxCartera.GuardarVencimiento;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 63 NaxCartera.Anade; end; NaxCartera.Acabar;
REALIZAR OPERACIONES CON VENCIMIENTOS EXISTENTES Con este conjunto de operaciones pretendemos poder operar con los efectos pendientes de cada cliente/proveedor. Las operaciones que pueden realizarse con NAX sobre la cartera son las siguientes: Cobrar
Para realizar el cobro de efectos.
Pagar
Para realizar el pago de efectos.
Recibir
Para realizar la recepción de efectos.
CrearAnticipo
Para crear anticipos.
CrearAnticipoNax
Para indicar que un importe de una factura se ha entregado a cuenta en un anticipo entregado anteriormente. Incluye el nº de documento contable.
Bloquear
Para bloquear un efecto y no permitir realizar con él más operaciones.
Enviar
Para marcar un efecto a un proveedor como enviado.
ActualizarRiesgo
Para actualizar el riesgo de un efecto al descuento cuyo vencimiento ha sido superado.
Devolver
Para indicar la devolución de un efecto cobrado indicando sus gastos.
ImputarGastos
Para imputar los gastos de una devolución a un cliente.
RecibirNax
Ídem que Recibir pero con más parámetros.
CobrarNax
Ídem que Cobrar pero con más parámetros.
PagarNax
Ídem que Pagar pero con más parámetros.
AnularCobro
Anular el cobro de un vencimiento.
AnularPago
Anular el pago de un vencimiento.
AnularRecepcion
Anular la recepción de un efecto.
AnularEnvio
Anular el envío de un efecto.
AnularBloqueo
Anular el bloqueo de un efecto.
AnularImputacion
Anular la imputación de gastos de una devolución al cliente.
AnularDevolucion
Anular una devolución.
AnularActualizacionRiesgo
Anular la actualización de riesgo de un efecto al descuento.
Ligar
Ligar un conjunto de efectos de cartera con una factura.
Desligar
Ligar un conjunto de efectos de cartera con una factura.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 64 CobrarRemesa
Cobrar una remesa.
AnularCobroRemesa
Anular el cobro de una remesa.
PagarRemesa
Pagar una remesa (a proveedores).
AnularPagoRemesa
Anular el pago de una remesa (a proveedores).
ACuenta
Para consumir anticipos de cartera desde una factura.
Veremos varios ejemplos del uso de estas operaciones:
EJEMPLO1 : COBRO DE UN VENCIMIENTO Procedure CobroVencimiento( nNumCart: double; nNumVen: integer; sCodBan: string); var naxCartera: OperacionesCartera; begin naxCartera := coOperacionesCartera.Create; naxCartera.Cobrar ( nNumCart,
// Nº de conjunto de cartera
nNumVen,
// Nº de vencimiento
True,
// Generar repercusiones contables
False,
// Al cobro (si fuera True sería al descuento)
‘’,
// Cuenta del banco
// (en blanco lo busca en el banco que le indicamos) ‘’,
// Cuenta de riesgo del banco
// (en blanco lo busca en el banco que le indicamos) TODAY,
// Fecha
sCodBan);
// Código del banco
end;
STOCKS Además de los movimientos propios efectuados por facturas, albaranes, regularizaciones, etc, se ha dotado a NAX de la posibilidad de generar movimientos de stock sin estar ligados con los documentos anteriores (por ejemplo, para un programa de producción externo que nos mueva el stock).
EJEMPLO 1: MOVIMIENTOS EN STOCK EXTERNOS var naxMovimientos: MovimientoStock; begin
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 65 naxMovimientos := coMovimientoStock.Create; naxMovimientos.Iniciar; naxMovimientos.Nuevo(
// Reserva los recursos necesarios ‘01/12/2003’, // Fecha
// Código del almacén
‘2’);
// Añadir movimiento de 10 unidades del artículo 1 naxMovimientos.NuevaLineaArt( 10);
‘1’,
// Código del artículo
// Unidades del movimiento
naxMovimientos.AsStringLin* ‘Motivo’+ := ‘Movimiento externo’;
naxMovimientos.AnadirLinea; // Añadir movimiento de 20 unidades del artículo 2 naxMovimientos.NuevaLineaArt( 20);
‘2’,
// Código del artículo
// Unidades del movimiento
naxMovimientos.AsStringLin* ‘Motivo’+ := ‘Movimiento externo’;
naxMovimientos.AnadirLinea; // Añadir movimiento de 30 unidades del artículo 3 naxMovimientos.NuevaLineaArt( 30);
‘3’,
// Código del artículo
// Unidades del movimiento
naxMovimientos.AsStringLin* ‘Motivo’+ := ‘Movimiento externo’;
naxMovimientos.AnadirLinea; naxMovimientos.Anade;
// Genera los movimiento en la base de datos
naxMovimientos.Acabar;
// Libera los recursos utilizados
end;
FILTRO Este objeto hace referencia a la pantalla visual de Nexus de creación de filtros. Este o bjete nos permite llamar a la pantalla visual o crearlo de forma interna mediante los eventos y propiedades públicas que tiene publicadas.
EJEMPLO 1: LLAMADA A LA PANTALLA DE FILTROS Var NaxFiltro : Filtro; Begin NaxFiltro := CoFiltro.Create;
// Creamos el objeto
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 66 NaxFiltro.Iniciar( 'CLIENTES');
// Indicamos que queremos crear el filtro de clientes
NaxFiltro.EditarVisual; sFiltro := NaxFiltro.ObtenerFiltro; visual NaxFiltro.Acabar;
// Llamamos a la pantalla visual // Obtenemos el filtro de generado desde la pantalla // Libera los recursos utilizados
End;
EXPEDIENTE Este objeto hace referencia a la pantalla visual de Nexus de gestión de expedientes. Este objeto nos permite llamar realizar las mismas operaciones que Nexus mediante la implementación de los eventos y propiedades que tiene publicadas. Podemos crear líneas de expedientes, líneas de honorarios, lineas de provisiones y lineas de suplidos. Generando las repercusiones contables cuando proceda. También podemos realizar la impresión del mismo.
EJEMPLO 1: UTILIZACIÓN GENÉRICA DEL OBJETO EXPEDIENTES Constantes a tener presente (ctHonorario, ctTrabajo, ctProvision, ctSuplido) var NaxExpe:Expediente; begin NaxExpe := CoExpediente.Create;
// Creamos el objeto
NaxExpe.Iniciar;
// Iniciamos el objeto
NaxExpe.Nuevo('1', '28/07/2006');
// Creamos la cabecera indicando cliente y fecha
NaxExpe.AsStringCab['NOMEXP'] := 'Expediente realizado con nax'; // Modificamos el nombre del expediente NaxExpe.NuevaLinea(ctTrabajo); ctTrabajo)
// Creamos una nueva linea de trabajo (const
NaxExpe.AsStringLin['CodArt'] := '1';
// Indicamos el artículo a tratar
NaxExpe.AsStringLin['CodPer'] := '1';
// Indicamos la persona que lo realiza
NaxExpe.AsFloatLin['Unidades'] := 2;
// Modifico las unidades por defecto a 2
NaxExpe.AsFloatLin['PrcMoneda'] := 6;
// Modifico el precio por defecto a 6
NaxExpe.AnadirLinea;
// Guardamos la linea
NaxExpe.ActivarFacturado := true;
// Activar marca para poder facturarlo
NaxExpe.Facturar( NaxExpe.Anade, true);
// Guardo el expediente (Anade) y lo facturo
NaxExpe.ActivarFacturado := false;
// DesActivar marca para poder facturar
NaxExpe.Acabar; end;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 67
COBRO/ANULACIÓN PARCIAL DE REMESAS Estos dos objetos permiten realizar el cobro parcial de remesas y/o anulación de cobros (realizados a partir de cobros parciales de remesas)
EJEMPLO 1: UTILIZACIÓN COBRO PARCIAL DE REMESAS var CobroParcial:ICobroParcialRemesa; begin CobroParcial := CoCobroParcialRemesa.Create; Screen.Cursor := crHourGlass; try CobroParcial.Iniciar(2); CobroParcial.AnadeEfecto(15231, 2); CobroParcial.AnadeEfecto(15232, 2); CobroParcial.ConRepercusiones := true; CobroParcial.UnAsiento := true; CobroParcial.AlDescuento := false; CobroParcial.CodigoBanco := '
1';
CobroParcial.Fecha := DateToStr(Date); CobroParcial.FechaValor := DateToStr(Date); CobroParcial.Procesar(chkPedir.Checked); finally CobroParcial.Finalizar; CobroParcial := nil; Screen.Cursor := crDefault; end; end;
EJEMPLO 2: UTILIZACIÓN DE ANULAR COBRO PARCIAL DE REMESAS var query:TAdoQuery; CobroParcial: IAnularCobroParcialRemesa; begin query:=TAdoQuery.create(nil);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 68 query.ConnectionString := boaEnlace.Conexion; query.SQL.Text := 'select IDOPEREMESA FROM __OPEREMESA WHERE IDREMESA = 2'; query.open; CobroParcial := CoAnularCobroParcialRemesa.Create; Screen.Cursor := crHourGlass; try CobroParcial.Iniciar(2); while not query.Eof do begin CobroParcial.AnadeOperacion(query.FieldByName('IDOPEREMESA').AsInteger); query.Next; end; CobroParcial.Procesar; finally FreeAndNil(query); CobroParcial.Finalizar; CobroParcial := nil; Screen.Cursor := crDefault; end; end;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 69
OBJETOS NAX INTRODUCCIÓN Tal como ya se ha visto en el capítulo anterior, la lista de objetos disponibles es la siguiente: Enlace: Enlace: Inicia y cierra la conexión con la l a base de datos de una empresa nexus. Mantiene las variables de error. Varios: Varios: Objeto con varias funciones destinadas a: Obtención de precios, obtención de cambio entre monedas, obtención de identificadores únicos de nexus, obtención de cuentas y descripciones descripciones y llamadas a las distintas opciones visuales de nexus. nexus. Maestro: Maestro: Artículos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Países, Tarifas, Idiomas, etc... . Este objeto permite moverse por los ficheros mencionados, así como añadir nuevos y modificar los existentes. Seleccion: Seleccion: Este objeto permite presentar la pantalla de selección estándar de nexus, para mostrar los registros de cualquier tabla con el formato código, descripción, etc. Factura: Factura: Objeto que permite la creación, modificación y borrado de facturas. Albaran: Albaran: Objeto que permite la creación, modificación y borrado de albaranes. Depósito: Depósito: Objeto que permite la creación, modificación y borrado de depósitos. Pedido: Pedido: Objeto que permite la creación, modificación y borrado de pedidos. Oferta: Oferta: Objeto que permite la creación, modificación y borrado de ofertas (presupuestos). Regularizacion: Regularizacion: Objeto que permite la creación, modificación y borrado de albaranes de regularización. Traspaso: Traspaso: Objeto que permite la creación, modificación y borrado de albaranes de traspaso entre almacenes. Inventario: Inventario: Objeto que permite la creación de y modificación de inventarios. MovimientoStock: MovimientoStock: Objeto que permite la creación, modificación y borrado de líneas que generan movimientos en el stock por documentos no controlados por nexus. ReservaStock: ReservaStock: Objeto que permite la creación, modificación y borrado de líneas que generan reservas en el stock por documentos no controlados por nexus. Asiento: Asiento: Objeto que permite la creación, modificación y borrado de asientos. Cartera: Cartera: Objeto que permite la creación, modificación y borrado de vencimientos en cartera.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 70 OperacionesCartera: OperacionesCartera: Objeto que permite realizar operaciones sobre los efectos en cartera a excepción de agrupaciones y remesas. Permite por ejemplo cobrar, pagar, devolver, recibir, etc... Agrupacion: Agrupacion: Objeto que ayuda a gestionar las operaciones o peraciones con las agrupaciones de efectos de cartera. Remesa: Remesa: Objeto que ayuda a gestionar g estionar las operaciones con las remesas de efectos de cartera. Opcion: Opcion: Objeto que permite llamar a cualquier opción de la aplicación nexus. Listado: Listado: Objeto que permite realizar informes pasando los parámetros deseados directamente. OperacionesInmovilizado: Objeto que permite realizar operaciones sobre el OperacionesInmovilizado: inmovilizado así como amortizar y repercutir las amortizaciones de las cuotas. Presupuesto: Presupuesto: Permite crear, borrar o modificar el contenido de la contabilidad presupuestaria. Estructura: Estructura: Permite crear, borrar o modificar el contenido de una estructura. OrdenProduccion: OrdenProduccion: Permite crear, borrar, modificar o evolucionar una orden de producción. Expedientes: Expedientes: Permite crear, borrar, modificar expedientes. Tambien facturarlos e imprimirlos. Cuotas: Cuotas: Permiter crear, borrar y modificar cuotas. (NUEVO 802B) CobroParcialRemesa: CobroParcialRemesa: Permite cobrar parcialmente una remesa. (NUEVO 802B) AnularCobroParcialRemesa AnularCobroParcialRemesa:: Permite anular el cobro de una remesa (cobrada parcialmente). A continuación se detalla cada uno de los objetos:
OBJETO ENLACE Interface Enlace property bError: WordBool readonly; readonly; property sMensaje: WideString readonly; readonly; property EmpresaActiva: WideString readonly; readonly; property RaiseOnException: WordBool; property Estado: EstadoEnlace readonly; readonly; property nError: Integer readonly; readonly; property VentanasAbiertas: integer readonly; readonly; property Conexion: WideString readonly; readonly; procedure Iniciar(const sEmpresa: WideString; const sUbicacion: WideString); Wi deString);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 71 procedure Acabar; function ParamConexion(const ParamConexion(const sEmpresa: WideString): OleVariant; function Empresas: OleVariant; function SelecEmpresa: WordBool; function SelecEmpresaActiva: SelecEmpresaActiva: WordBool; procedure EliminarRecordatorioClave; function EstacionActivada(sCodPr EstacionActivada(sCodProd: od: WideString): WordBool; procedure CerrarVentanas; procedure ActivarVentana; function LoginUsuario(sUsuario,sPas LoginUsuario(sUsuario,sPassword: sword: WideString):WordBool; WideString):WordBool; function SelecMultiEmpresa: WordBool; function SelecMultiEmpresaActiva: SelecMultiEmpresaActiva: WordBool;
Propiedades
Tipo
Descripción
bError
Lógico
True si la última operación provocó un error.
Nerror
Entero
Código del último error (0 ningún error)
Estado
EstadoEnlace
Indica si la conexión con nexus se ha realizado.
SMensaje
Texto
Descripción del último error (en caso de error)
EmpresaActiva
Texto
Nombre de la empresa activa en nexus
RaiseOnException
Lógico
Para indicar si el lenguaje que se utiliza propaga las excepciones y desea aprovecharse esta ventaja. Disponible para Delphi. Desactivado en Visual Basic.
VentanasAbiertas
Integer
Indica nº de ventanas nexus abiertas
Conexion
Texto
Indica lista de parámetros de conexión a la base de datos
EstadoEnlace (Tipo enumerado) Valor
Significado
EstNOACTIVO
0
Objeto no activo. No se puede usar.
EstACTIVO
1
Objeto activo, se puede trabajar con él.
Procedure Iniciar (sEmpresa, sUbicacion:String) sUbicacion:String) Inicia la conexión con la empresa indicada. Parámetros:
sEmpresa
Nombre exacto de la empresa (distingue mayúsculas y minúsculas).
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 72 sUbicacion
Obsoleto
Procedure Acabar Termina la conexión con la empresa indicada y libera los recursos reservados.
Function ParamConexion( sEmpresa, sUbicacion: WideString); Retorna los parámetros de la conexión de la base de datos de la empresa seleccionada. Muy útil para crear una conexión directa con esa base de datos para consultas directas desde el programa que utiliza NAX. Parámetros: Valor retornado
sEmpresa
Nombre de la empresa
sUbicacion
Obsoleto
Variant que representa un array
[0] Descripción de la empresa. [1] Obsoleto [2] Tipo de datos: MSSQL [3] Servidor en el que se encuentra el sistema [4] Nombre del servidor [5] Nombre de la base de datos [6] Obsoleto
Function Empresas: OleVariant; Retorna la relación de empresas del sistema por defecto con el que se encuentra conectado el terminal. Valor retornado
Variant que representa un array
[0] Número de elementos del array (-1 indica que ha habido un error) [1] Primer nombre de empresa. [2] Segundo nombre de empresa …
[n] N-ésimo nombre de empresa
Function SelecEmpresa: WordBool Muestra la selección de empresas de nexus. Espera a que el usuario seleccione una empresa e inicia una conexión con su base de datos. Valor retornado
Lógico
Indica si se ha seleccionado la empresa
Function SelecEmpresaActiva: SelecEmpresaActiva: WordBool
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 73 En nexus, cuando se entra en una empresa, se guarda su nombre en el registro. Esta función recupera la empresa indicada en el registro e inicia una conexión con su base de datos. Valor retornado
Lógico
Indica si se ha seleccionado la empresa
Function SelecMultiEmpresaActiva: SelecMultiEmpresaActiva: WordBool En nexus configurado como multiempresas, cuando se entra en una empresa (multiempresa), se guarda el tipo contable (empresa) en el registro. Esta Es ta función recupera el tipo contable (empresa) indicada en el registro y activa dicho tipo contable. Valor retornado
Lógico
Indica si se ha seleccionado el tipo contable (empresa)
Function SelecMultiEmpresa: WordBool En nexus configurado como multiempresa, podemos activar el tipo contable (empresas) dentro de los tipos contables permitidos por el usuario. Valor retornado
Lógico
Indica si se ha seleccionado el tipo contable (empresa)
Procedure EliminarRecordatorioClave EliminarRecordatorioClave Elimina el flag de recordar la contraseña del registro de Windows
Function EstacionActivada(sCodProd:WideSt EstacionActivada(sCodProd:WideString):WordBool ring):WordBool Parámetros:
sCodProd
Código de producto de tercero (6 primeros dígitos del número de serie)
Retorna si el numero de serie de lPRODUCTO NEXUS está activado para la estación. Valor retornado
Lógico
Indica si la estacion está activada para algún número de serie del producto indicado (de un mismo producto se pueden registrar varios números de serie)
Procedure ActivarVentana Pone en primer plano la ventana activa de nexus
Procedure CerrarVentanas Cierra todas la ventanas abiertas de nexus
Function LoginUsuario(sUsuario, sPassword): WordBool
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 74 Parámetros:
sUsuario
Usuario nexus
sPassword
Password usuario nexus
Esta funcion la utilizaremos para evitar la pantalla visual donde se piden el usuario y password de entrada en nexus, y retorna si dichos valores son correctos para entrar en la aplicación. Valor retornado
Lógico
Indica si el usuario y password es correcto
OBJETO VARIOS Interface Varios property Version: Integer readonly; property Revision: Integer readonly; property Parche: WideString readonly; function ObtPrcVenta( const sCodArt: WideString; WideString; const sCodCli: WideString; WideString; const sCodMon: WideString; const sTarifa: WideString; nUnidades: Currency; const sFecha: WideString): OleVariant; function ObtPrcCompra(const sCodArt: WideString; const sCodPro: WideString; const sCodMon: WideString; nUnidades: Currency; const sFecha: WideString) : OleVariant; function ObtPrcCompra(const sCodArt: WideString; const sCodPro: WideString; const sCodMon: WideString; const sTarifa: WideString; nUnidades: Currency; const sFecha: WideString) : OleVariant; function ObtPrecioCoste(const sCodArt: WideString; const sCodAlm: WideString; const sObtCoste: WideString): OleVariant; function ObtPrecioMedio(const sCodArt: WideString; const sCodAlm: WideString): OleVariant; function ObtComis( const sCodRep: WideString; WideString; const sCodArt: sCodArt: WideString; const sCodCli: WideString; nUnidades: Currency; nDescuento: Currency; const sFecha: WideString): OleVariant; function Cambio(const sCodMon: WideString; const sFecha: WideString): OleVariant; function CambioMon(const sMonIni: WideString; const sMonFin: WideString; const sFecha: WideString): OleVariant; function MonedaPrincipal: WideString;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 75 function FormatNum(nDecim: Integer): WideString; function FormatEdiNum(nDecim: Integer): WideString; function Redondear(nNumero: Currency; nDecima: Integer): Currency; function SigId(const sId: WideString): OleVariant; procedure DescArticulo( const sCodArt: WideString; const sCodIdi: WideString; var sDescArt: WideString; var sTexto: WideString); function ObtRepresentante(const sCodCli: WideString): WideString; function CuentaArtV(const sCodArt: WideString; const sCodCli: WideString): WideString; function CuentaArtC(const sCodArt: WideString; const sCodPro: WideString): WideString; function TotalLinea( nUni: Currency; Prc: Currency; desc1: Currency; desc2: Currency; desc3: Currency; desc4: Currency; const sCodMon: WideString; Iva: WordBool; const sTipIva: WideString; const sRegIva: WideString) :Currency; FUNCTION VENCIMIENTOS( BESCOBRO: WORDBOOL; SCODCLIPRO: WIDESTRING; NTOTMON, NTOTDOC: CURRENCY; SFORPAG, SDOCPAG, SCODMON, SFECHA: WIDESTRING): OLEVARIANT; procedure LlamarVisual(const OpcionNexus: WideString; Parametros: OleVariant);
Propiedades
Tipo
Descripción
Version
Texto
Devuelve la versión de la librería
Revision
Texto
Devuelve la revisión de la librería
Parche
Texto
Devuelve la letra del parche de la librería
Function ObtPrcVenta ( sCodArt, sCodCli, sCodMon, sTarifa: String; nUnidades: Double; sFecha: String): Variant; Permite obtener el precio de venta dados los parámetros de la función Parámetros:
Valor retornado
sCodArt
Código del artículo
sCodCli
Código del cliente
sCodMon
Código de la moneda
sTarifa
Tarifa
nUnidades
Unidades
sFecha
Fecha
Variant que representa un array
[0] Precio (Currency) [1] Total descuento (Currency) [2][0] Descuento 1 (Currency)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 76 [2][1] Descuento 2 (Currency) [2][2] Descuento 3 (Currency) [2][3] Descuento 4 (Currency)
Function ObtPrcCompra ( sCodArt, sCodPro, sCodMon: String; nUnidades: Double; sFecha: String): Variant; Permite obtener el precio de compra dados los parámetros de la función Parámetros:
Valor retornado
sCodArt
Código del artículo
sCodPro
Código del proveedor
sCodMon
Código de la moneda
nUnidades
Unidades
sFecha
Fecha
Variant que representa un array
[0] Precio (Currency) [1] Total descuento (Currency) [2][0] Descuento 1 (Currency) [2][1] Descuento 2 (Currency) [2][2] Descuento 3 (Currency) [2][3] Descuento 4 (Currency)
Function ObtPrcCoste ( sCodArt: String): Double; Permite obtener el precio de compra dados los parámetros de la función Parámetros:
sCodArt
Código del artículo
Valor retornado
Currency
Valor del precio de coste del artículo
Function ObtPrcMedio ( sCodArt, sCodAlm: String): Double; Permite obtener el precio de compra dados los parámetros de la función Parámetros: Valor retornado
sCodArt
Código del artículo
sCodAlm
Código del Almacén
Currency
Valor del precio medio del artículo en el almacén indicado
Function ObtComis ( sCodrep, sCodArt, sCodCli: String; nUnidades, nDescuento: Double; sFecha: String): Variant; Permite obtener el porcentaje y el origen de comisión dados los parámetros de la función Parámetros:
sCodRep
Código del representante
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 77
Valor retornado
sCodArt
Código del artículo
sCodCli
Código del cliente
nUnidades
Unidades
nDescuento
Descuento aplicado en %
sFecha
Fecha
Variant que representa un array
[0] Comisión [1] Margen o Precio (P/M)
Function Cambio(sCodMon, sFecha: String):Double Permite obtener el cambio entre una moneda y la moneda principal en una fecha indicada. Parámetros: Valor retornado
sCodMon
Código de la moneda
sFecha
Fecha
Double
Cambio
Function CambioMon(sCodMonIni, sCodMonFin, sFecha: String):Double Permite obtener el cambio entre una moneda inicial y la moneda final en una fecha indicada. Parámetros:
Valor retornado
sCodMonIni
Código de la moneda inicial
sCodMonFin
Código de la moneda final
sFecha
Fecha
Double
Cambio
Function MonedaPrincipal: string Retorna el código de la moneda principal de la empresa activa. Valor retornado
String
Código de la moneda
Function FormatNum: string Retorna string que define el formato de un número en Delphi con los decimales indicados en el parámetro. Parámetros:
nDecim
Nº de decimales
Valor retornado
String
Formato
Function FormatEdiNum: string
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 78 Retorna string que define el formato de un número para su edición en Delphi con los decimales indicados en el parámetro. Parámetros:
nDecim
Nº de decimales
Valor retornado
String
Formato
Function Redondear(nNumero:Double; nDecima:Integer):Double; Utiliza la misma función para redondear que nexus. Parámetros: Valor retornado
nNumero
Nº a redondear
nDecima
Nº de decimales del resultado
Double
Número redondeado con los decimales indicados
Function Sigld(sId:String):Integer; Retorna un identificador único para el nombre que se pasa por parámetro. Parámetros:
sId
Nombre del identificador
Valor retornado
Double
Identificador único
Function DescArticulo (sCodArt, sCodIdi: String; var sDescArt, sTexto: String); Retorna en los dos últimos parámetros de la función la descripción y el texto del artículo y en el idioma indicados. Parámetros: Valor retornado
sCodArt
Código del artículo
sCodIdi
Código del idioma
sDescArt: String
Descripción del artículo
sTexto: string
Texto del artículo
Function ObtRepresentante(sCodCli: String): String; Retorna el representante de un cliente. Parámetros:
sCodCli
Código del cliente
Valor retornado
String
Código del representante
Function CuentaArtV( sCodArt, sCodCli: String): String;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 79 Retorna la cuenta de ventas asociada a un artículo para un cliente determinado. El proceso que sigue el siguiente esquema: -
Cuenta de ventas del artículo (si la hay)
-
Cuenta de ventas del cliente (si la hay)
-
Cuenta de ventas de los datos generales
Parámetros: Valor retornado
sCodArt
Código del artículo
sCodCli
Código del cliente
String
Cuenta de ventas
Function CuentaArtC( sCodArt, sCodPro: String): String; Retorna la cuenta de compras asociada a un artículo para un proveedor determinado. El proceso que sigue el siguiente esquema: -
Cuenta de compras del artículo (si la hay)
-
Cuenta de compras del proveedor (si la hay)
-
Cuenta de compras de los datos generales
Parámetros: Valor retornado
sCodArt
Código del artículo
sCodPro
Código del proveedor
String
Cuenta de compras
Function TotalLinea(nUni: Integer; Prc, desc1, desc2, desc3, desc4: Double; sCodMon: String;Iva: Boolean; sTipIva, sRegIva: String): Double El cálculo del total de una línea depende de muchas variables y en ocasiones es conveniente simular exactamente el mismo cálculo que realiza nexus. Parámetros:
Valor
nUni
Nº unidades
Prc
Precio unitario
Desc1
Descuento 1
Desc2
Descuento2
Desc3
Descuento3
Desc4
Descuento4
sCodMon
Código de la moneda
Iva
IVA incluido (True IVA incluido)
sTipIva
Tipo de IVA
sRegIva
Régimen de IVA
Double
Total de la línea
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 80 retornado
FUNCTION VENCIMIENTOS( BESCOBRO: WORDBOOL; SCODCLIPRO: WIDESTRING; NTOTMON, NTOTDOC: CURRENCY; SFORPAG, SDOCPAG, SCODMON, SFECHA: WIDESTRING): OLEVARIANT; Crea un array con la información el conjunto de vencimientos con las condiciones especificadas. Parámetros:
bEsCobro
Indica si se trata de un cliente o proveedor. bEsCobro = True Cliente. bEsCobro = False Proveedor.
Valor retornado:
sCodCliPro
Código del cliente o proveedor.
nTotMon
Total del documento en la moneda indicada.
nTotDoc
Total del documento en moneda principal.
sForPag
Forma de pago.
sDocPag
Documento de pago.
sCodMon
Código de la moneda.
sFecha
Fecha de la factura.
OleVariant
Retorna el nº del identificador de cartera (NUMCARTERA).
procedure LlamarVisual(const OpcionNexus: WideString; Parametros: OleVariant); Muestra un pantalla visual de nexus Parámetros:
OpcionNexus
Identificador de la pantalla visual
Parámetros
[0] sin parametros [1][0] Nombre del parámetro 1 [2][0] Valor del parámetro 1 [1][1] Nombre del parámetro 2 [2][1] Valor del parámetro 2 ……
Ver ejemplos en Objeto Opcion (llamada a opciones visuales)
OBJETO MAESTRO Este objeto permite moverse por los ficheros, así como añadir nuevos y modificar los existentes. Los ficheros son los siguientes: Artículos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Países, Tarifas, Idiomas, etc... .
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 81
Interface Maestro Property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property EOF: WordBool readonly; property BOF: WordBool readonly; property Estado: EstadoMaestro readonly; property Filtro: WideString; property Filtrado: WordBool; function Buscar(V: OleVariant): WordBool; function NuevoCodigoNum: WideString; function Seleccionar: WideString; function ExisteCampo(const cCampo: WideString): WordBool; procedure Iniciar(const sNombre: WideString); procedure Acabar; procedure Nuevo; procedure Guarda(bSobreescribir: WordBool); procedure Primero; procedure Anterior; procedure Siguiente; procedure Ultimo; procedure Edita; procedure Cancelar; procedure Borrar; procedure CambiarCodigo(const sViejo: WideString; const sNuevo: WideString); function Seleccionar2: OleVariant; (NUEVO 800G) procedure Duplicar(CodigoOrigen:olevariant; codigoDuplicado: Olevariant, const Params: WideString);
Propiedades
Tipo
Descripción
AsString
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloat
Tabla( float)
Asigna/lee valores a/de los campos del registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 82 nuevo/actual. AsInteger
Tabla( integer) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBoolean
Tabla( lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
BOF
Lógico
Indica que estamos al principio de los registros del maestro.
EOF
Lógico
Al final.
Estado
EstadoMaestr o
Devuelve en que estado se encuentra el maestro.
Filtro
String
Cadena de texto que permite poner un filtro en el maestro.
Filtrado
Lógico
Valor lógico para activar/desactivar el filtro
Métodos
Tipo
Descripción
Iniciar
Procedimiento Inicia el maestro especificado. Pasa al estado estM_ACTIVO
Acabar
Procedimiento Cierra el maestro. Estado estM_NOACTIVO.
Primero
Procedimiento Ir al primer registro.
Anterior
Procedimiento Al anterior.
Siguiente
Procedimiento Al siguiente.
Ultimo
Procedimiento Al último.
Buscar
Función
Nuevo
Procedimiento Pasa estado estM_NUEVO en el que se pueden asignar valores a los campos del registro.
Edita
Procedimiento Pasa estado estM_EDICION en el que se pueden asignar valores a los campos del registro.
Guarda
Procedimiento Inserta o modifica el registro actual del maestro.
Cancela
Procedimiento Pasa al estado estM_ACTIVO, descartando el registro actual.
Refrescar
Procedimiento Hace un refresh de la tabla física.
Busca un registro por clave principal.
NuevoCodigoNu Función m
Retorna un string con el siguiente código numérico para una alta.
Seleccionar
Función
Presenta una ventana de selección y retorna el código del registro seleccionado.
ExisteCampo
Función
Indica si existe un nombre de campo dentro del maestro.
CambiarCodigo
Procedimiento Cambia la clave con el valor indicado por otro también indicado.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 83 Seleccionar2
Función
Presenta una ventana de selección y retorna los códigos que forman parte de la clave, del registro seleccionado.
Duplicar
Procedimiento Permite duplicar un registro existente sobre uno nuevo.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de los campos de un maestro. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el registro. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘1/1/2002’
-
Los campos clave son obligatorios.
-
Uso en Delphi: naxMaestro.AsString* ‘CodCli’+
-
Uso en Visual Basic: naxMaestro.AsString( ‘CodCli’)
property AsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloat[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBoolean[ sCampo:String]: Boolean
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 84 A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property EOF:Boolean Esta propiedad nos indica si nos encontramos al final del maestro. Valor retornado
Lógico
Indica si estamos al final del maestro.
property BOF:Boolean Esta propiedad nos indica si nos encontramos al principio del maestro. Valor retornado
Lógico
Indica si estamos al principio del maestro.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Maestro cerrado. No se puede usar. ESTM_ACTIVO: Maestro activo. Podemos añadir, borrar, modificar y movernos por los registros. ESTM_NUEVO: Maestro en estado de inserción de un nuevo registro. ESTM_EDICION: Maestro en estado modificación, podemos asignar valores a los campos. Modificando el registro actual al guardarlo. Si sólo cambiásemos el campo clave crearíamos una copia con una clave diferente. Valor retornado
EstadoMaestro
Retorna el estado del maestro.
property Filtro:String En esta propiedad podemos indicar el filtro que se aplica al fichero maestro. La sintaxis del filtro debe ser en sintaxis de la base de datos. En la actualidad en sintaxis de SQL Server. Si más adelante se pueden atacar otras bases de datos esta función se utilizará de distinta forma dependiendo de la base de datos.
property Filtro:Boolean Indica si se utiliza el contenido de la propiedad Filtro o no.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 85
procedure Iniciar( sNombre: string); Este procedimiento es el que reserva los recursos necesarios para que el maestro pueda ser usado. El parámetro de esta función identifica el maestro con el que se va a trabajar y por tanto los campos disponibles. Maestros válidos: Clientes, Articulo, Proveed, Cuentas, Bancos, DocuPago, Almacenes, Represen, Transpor, Provinci, Paises, Idiomas, Tarifas, TarifasVe, PrcEsp, Apuntes. Al iniciar el maestro el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO. Parámetros:
sNombre
Nombre del fichero maestro que se iniciará.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el maestro el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Primero; Mueve el puntero al primer registro del maestro ordenado por la clave principal y única.
procedure Siguiente; Mueve el puntero al siguiente registro del maestro ordenado por la clave principal y única.
procedure Anterior; Mueve el puntero al anterior registro del maestro ordenado por la clave principal y única.
procedure Ultimo; Mueve el puntero al último registro del maestro ordenado por la clave principal y única.
function Buscar(V: OleVariant): WordBool; Mueve el puntero al primer registro del maestro con la clave indicada en el parámetro V. Cuando la clave es compuesta se debe pasar un array con los distintos valores. Cuando la clave es de un único campo se puede pasar en un string. Parámetros:
sClave
Contenido de la clave que se está buscando.
Valor retornado
Lógico
Indica si se ha encontrado la clave.
procedure Nuevo;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 86 Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO.
procedure Edita; Pone el registro actual en edición. Pasa de estado ESTM_ACTIVO a ESTM_EDICION.
Procedure Guarda( bSobreescribir: Boolean); Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO. Parámetros:
bSobreescribir
True: Se sobrescriben los valores que existen en el registro. Si se modifica el código se cambia el código del maestro. False: Se crea un nuevo registro con al contenido de la ficha. Si ya existe ese código da error.
Procedure Cancela; Cancela la edición del registro. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Borrar; Borra el registro activo y pasa al siguiente registro.
Procedure Refrescar; Lee de nuevo el registro con la clave del registro en memoria y refresca el contenido de todos los campos. Operación no permitida cuando el estado es ESTM_NUEVO o ESTM_EDICION.
function NuevoCodigoNum: String; Retorna el último registro numérico + 1. Este es el sistema que utiliza nexus para proponer el código de clave que toca al crear un nuevo registro en un maestro. Valor retornado
String
function Seleccionar: String;
Valor del código.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 87 Permite usar la selección por defecto de los maestros de nexus. Retorna el valor de la clave seleccionada. Esta función está pensada exclusivamente para maestros con un único campo clave. Aquellos maestros con más de un campo clave no tienen selección. Esta función no se coloca en el registro seleccionado, tras realizar la selección, con el resultado debe buscarse el registro seleccionado a través de la función Buscar. Valor retornado
String
Valor del código de la clave
function Seleccionar2: OleVariant; Permite usar la selección por defecto de los maestros de nexus. Retorna lista de valores de la clave seleccionada (para ficheros con claves múltiples) Esta función está pensada para maestros con clave múltiple. Esta función no se coloca en el registro seleccionado, tras realizar la selección, con el resultado debe buscarse el registro seleccionado a través de la función Buscar. Valor retornado
OleVariant
Lista de valores de lo campos que forman parte de la clave
function ExisteCampo( sCampo:string): boolean; En ocasiones un campo puede aparecer en un maestro en una revisión determinada y el programador deberá preguntarse por su existencia antes de usarlo. Para ello existe esta función que te indica si existe un campo cuyo nombre se pasa por parámetro. Parámetros:
sCampo
Nombre de l campo
Valor retornado
Lógico
Indica si se ha encontrado el campo en el maestro.
procedure CambiarCodigo(sViejo: String; sNuevo: String); Modifica la clave de un maestro. Esta función exclusivamente funciona con claves con un único campo. Parámetros:
sViejo
Valor de la clave anterior
sNuevo
Valor de la nueva clave
procedure Duplicar(CodigoOrigen: Olevariant; CodigoDuplicado: Olevariant; Params:String);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 88 Permite duplicar el registro del codigoorigen sobre un registro nuevo con codidoduplicado. (sólo para el maestro de artículos !!!) Parámetros:
CodigoOrigen
Valor de la clave origen
CodigoDuplicado
Valor de la nueva clave OPCIONES ESPECIALES A DUPLICAR (STOCK, VINCULOS, REFERENCIAS, IDIOMAS, ESCANDALLO, TARIFASV, PRECIOSESPV, ALARMASV, COMISIONESV, DESCUENTOSV, TARIFASC, PRECIOSESPC, ALARMASC, DESCUENTOSC) P.E STOCK=TRUE,IDIOMAS=FALSE,DESCUENTOSC=FALSE
Params
OBJETO SELECCION Este objeto permite presentar la pantalla de selección estándar de nexus, para mostrar los registros de cualquier tabla con el formato código, descripción, etc…
Interface Selección property Tabla: WideString; property CampoResultado: WideString; property Filtro: WideString; function Ejecutar: WideString; function Ejecutar2: OleVariant;
Propiedades
Tipo
Descripción
Tabla
String
En esta propiedad podemos indicar la tabla que queremos seleccionar.
CampoResultad String o
En esta propiedad podemos indicar el nombre del campo y la selección devolverá el valor de este campo.
Filtro
En esta propiedad podemos indicar el filtro que se aplica a la tabla seleccionada
String
La sintaxis del filtro debe ser en sintaxis de la base de datos. En la actualidad en sintaxis de SQL Server. Si más adelante se pueden atacar otras bases de datos esta función se utilizará de distinta forma dependiendo de la base de datos.
Métodos
Tipo
Descripción
Ejecutar
Función
Presenta una ventana de selección y retorna el código del
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 89 registro seleccionado. Ejecutar2
Función
Presenta una ventana de selección y retorna los códigos que forman parte de la clave, del registro seleccionado.
property Tabla:String En esta propiedad podemos indicar la tabla que queremos seleccionar.
Property CampoResultado:String En esta propiedad podemos indicar el nombre del campo y la selección devolverá el valor de este campo.
property Filtro:String En esta propiedad podemos indicar el filtro que se aplica a la tabla seleccionada La sintaxis del filtro debe ser en sintaxis de la base de datos. En la actualidad en sintaxis de SQL Server. Si más adelante se pueden atacar otras bases de datos esta función se utilizará de distinta forma dependiendo de la base de datos.
function Ejecutar: String; Permite usar la selección estándar de los maestros de nexus. Retorna el valor de la clave seleccionada. Esta función está pensada ficheros con campos código, descripción, etc. con un único campo clave. Aquellos maestros con más de un campo clave utilizaremos la funcion Ejecutar2 Valor retornado
String
Valor del código de la clave
function Ejecutar2: OleVariant; Permite usar la selección estándar de los maestros de nexus. Retorna lista de valores de la clave seleccionada (para ficheros con claves múltiples) Esta función está pensada para maestros con clave múltiple. Valor retornado
OleVariant
Lista de valores de lo campos que forman parte de la clave
OBJETO FACTURA Objeto que permite la creación, modificación y borrado de facturas.
Interface Factura
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 90 property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool; bEsContable: WordBool; bConReper: WordBool; bConCartera: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 91 procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru. nNumLin, nNumBul, nNumPaq: Currency; nNumUni, nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle ( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente; procedure ConsumirFacturaAnticipo(IdFactura:Currency; Importemoneda:currency; Importe:currency);
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 92 nuevo/actual. AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaestro
Devuelve el estado en que se encuentra el objeto
AsStringComp
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerComp
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatComp
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanComp
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyComp Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. OmitirMensajes
Lógico
Asignar valor para ocultar mensajes de información
ActivarAlarmaCab Lógico
Asignar valor para activar o no alarmas en documentos
ActivarAlarmaLin
Lógico
Asignar valor para activar o no alarmas en documentos
ValidarPrecios
Lógico
Asignar valor para activar o no los mensajes de validación de precios
ValidarArtBloque Lógico ado
Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
AvisarRiesgo
Lógico
Asignar valor para activar o no los mensajes de aviso de riesgo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 93 AvisarCentroCost Lógico eCabecera
Asignar valor para activar o no el mensaje que aparece al cambiar algún nivel de analítica y pregunta si se desa cambiar en las líneas.
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto o
Acabar
Procedimient Cierra el objeto o
Nuevo
Procedimient Inicia un nuevo documento o
Borra
Procedimient Borra el documento o
Modifica
Procedimient Prepara el documento para poderlo modificar. o
ModificaParcial
Procedimient Prepara el documento para poder cambiar solamente el o detalle de una línea
Cancela
Procedimient Cancela la edición del documento. o
Anade
Función
NuevaLinea
Procedimient Inicia una nueva línea o
NuevaLineaArt
Procedimient Inicia una nueva línea aplicando las políticas de nexus, o dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimient Añade la línea o
CancelaLin
Procedimient Cancela la línea en edición o
EditarLinea
Procedimient Permite editar una línea ya existente del documento. o
BorrarLinea
Procedimient Permite borrar una línea del documento. o
IniciarServir
Procedimient Inicia el proceso de servir líneas de otro documento o origen.
ServirDocumento
Procedimient Sirve el documento origen entero.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 94 o ServirLinea
Procedimient Sirve una línea del documento origen. o
AnularLinea
Procedimient Anula una línea del documento origen conforme no o podrán servirse las unidades indicadas.
FinServir
Procedimient Finaliza el proceso de servir. o
AnadirDetalle
Procedimient Identifica los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
CambiarDetalle
Procedimient Cambia los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
BorrarDetalle
Procedimient Borra el detalle los nº de serie, lotes, fechas de o caducidad y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimient Identifica las tallas de una línea del documento. o
CambiarTalla
Procedimient Cambia las tallas de una línea del documento. o
BorrarTalla
Procedimient Borra el detalle de las tallas de una línea del o documento.
NuevoComponente
Procedimient Inicia una nueva línea componente de un kit. o
EditarComponente
Procedimient Permite editar una línea componente de un kit. o
BorrarComponente
Procedimient Borra una línea componente de un kit. o
AnadirComponente
Procedimient Añade una línea componente de un kit. o
CancelarComponente Procedimient Cancela una línea componente de un kit. o ConsumirFacturaAntici Procedimient Permite consumir una factura de anticipo po o Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se ha n de asignar como cadenas de texto como ‘01/01/2003’
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 95 -
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 96
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringComp[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 97 Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerComp[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatComp[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanComp[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyComp[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property ValidarPrecios: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mínimo Valor retornado
Lógico
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 98
property ValidarArtBloqueado: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artículo bloqueado Valor retornado
Lógico
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado
Lógico
Valor del campo
property AvisarRiesgo: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado
Lógico
Valor del campo
property AvisarCentroCosteCabecera: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las líneas cuando se cambia desde la cabecera Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar facturas.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
procedure Iniciar;
Retorna el estado del documento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 99 Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodCliPro: String; EsDeCompra: Boolean; EsContable: Boolean; ConReper: Boolean; ConCartera: Boolean); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodCliPro
Código del cliente o proveedor
bEsDeCompra
True Compra False Venta
bEsContable
True Contable False De gestión
bConReper
Indica si se desean generar repercusiones contables
bConCartera
Indica si se desean generar los vencimientos en función de la forma de pago.
procedure Modifica(IdDocu: Currency; EsDeCompra: WordBool); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool); Este método se utiliza únicamente para cambiar el detalle de una línea de un documento. Se puede utilizar en documentos con muchas líneas, mejorando la velocidad, ya que solo carga el detalle de la línea que se indica. Despues de llamar a este método solo se pueden utilizar los métodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edición y la línea que tiene el Numlin indicado en edición
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 100 Parámetros:
IdDocu
Identificador del documento
NumLin
Numero de línea
EsDeCompra
True Compra False Venta
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks, repercusiones contables, generación de vencimientos, actualización de estadísticas y almacenamiento de los datos de IVA. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( IdDocu: Currency; EsDeCompra: Boolean); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas realizando las búsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 101 Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINFAC del fichero LINEFACT. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdFacV = naxFactura.AsStringCab* ‘IdFacV’+ en ventas o IdFacC = naxFactura.AsStringCab* ‘IdFacC’+ en compras.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea. Se corresponde con el campo NUMLINFAC del fichero LINEFACT. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdFacV = naxFactura.AsStringCab* ‘IdFacV’+ en ventas o IdFacC = naxFactura.AsStringCab* ‘IdFacC’+ en compras.
En la siguiente colección de procedimientos se encapsula el funcionamiento de las utilidades para servir cualquier documento sobre las facturas. En primer lugar debe llamarse al procedimiento IniciarServir, a continuación pueden utilizarse los procedimientos ServirDocumento, ServirLinea o AnularLinea y finalmente debe llamarse a FinServir.
procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; bConMensaje: Boolean); Prepara el documento indicado para servirse. Reserva los recursos necesarios. Parámetros:
sIdDocu
‘O’ Oferta ‘P’ Pedido ‘A’ Albarán. ‘D’ Depósito
nIdDocu
En función del valor de sIdDocu (O,P,A,D) representa el identificador de la oferta (IdOfeV o IdOfeC), del pedido (IdPEdV o IdPedC), del albarán (IdAlbV o IdAlbC) o del depósito (IdDepV o IdDepC) respectivamente.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 102 bConMensaje
En caso en que se produzcan diferencias entre las condiciones del documento origen y el destino (Por ejemplo, la forma de pago, el documento de pago, el transportista, etc....), el programa puede actuar de dos formas distintas: -
-
bConMesnaje = True: Preguntar al usuario si se desean aplicar las condiciones del documento destino o respetar las del documento origen. bConMensaje = False: Aplicar las condiciones del documento destino.
procedure ServirDocumento; Sirve todo el material pendiente de todo del documento origen indicado en la función IniciarServir.
procedure ServirLinea( nNumGrupo, nNumLin, nNumBul, nNumPaq: Currency; nNumUni, nPrcMedio: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); Sirve la línea con los parámetros indicados. Parámetros:
nNumGrupo
Campo obsoleto. PONER UN 0.
nNumLin
Nº de línea. NUMLINOFE en ofertas, NUMLINPED en pedidos, NUMLINALB en albaranes y NUMLINDEP en depósitos.
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
nPrcMedio
Campo obsoleto. PONER UN 0.
sNSerie
Nº de serie.
sLote
Lote.
sUbicac
Ubicación
sFecCad
Fecha de caducidad.
procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); Anula las unidades indicadas de la línea pasada por parámetro. Esas unidades no estarán disponibles para ser servidas posteriormente.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 103 Parámetros:
nNumLin
Nº de línea del documento origen (NUMLINOFE, NUMLINPED, NUMLINALB o NUMLINDEP).
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
procedure FinServir; Realiza las operaciones realizadas desde que se llamó a IniciarServir de forma definitiva. Libera los recursos necesarios. Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEFACT.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 104 sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEFACT.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMoneda
Precio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEFACT.
nUnidades
Nº de unidades de la línea de talla.
nPrcMoneda
Precio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEFACT.
Procedure NuevoComponente; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea componente
Procedure AnadirComponente; Almacena los valores de los campos de la línea componente en la base de datos.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 105
Procedure CancelaComponente; Cancela la edición de la línea componente activa.
procedure EditarComponente(nIdLinea: Currency); Pone la línea componente indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirComponente. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINFAC del fichero LINEFACT.
procedure BorrarComponente( nIdLinea: Currency); Borra la línea componente con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINFAC del fichero LINEFACT.
procedure ConsumirFacturaAnticipo( IdFactura: Currency; Importemoneda:currency; Importe:currency); Permite consumir una factura de anticipo Parámetros:
IdFactura
Identificador de la factura de anticipo que queremos consumir.
ImporteMoneda
Importe a consumir en la moneda de la factura
Importe
Importe a consumir en EUROS de la factura
OBJETO ALBARAN Objeto que permite la creación, modificación y borrado de albaranes.
Interface Albaran property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 106 property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 107 nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 108 nuevo/actual. AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
AsStringComp
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerComp
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatComp
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanComp
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyComp Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
OmitirMensajes
Asignar valor para ocultar mensajes de información
Lógico
ActivarAlarmaCab Lógico
Asignar valor para activar o no alarmas en documentos
ActivarAlarmaLin
Lógico
Asignar valor para activar o no alarmas en documentos
ValidarPrecios
Lógico
Asignar valor para activar o no los mensajes de validación de precios
ValidarArtBloque Lógico ado
Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
AvisarRiesgo
Lógico
Asignar valor para activar o no los mensajes de aviso de riesgo
AvisarCentroCost Lógico eCabecera
Asignar valor para activar o no el mensaje que aparece al cambiar algún nivel de analítica y pregunta si se desa cambiar en las líneas.
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el documento
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 109 Modifica
Procedimiento Prepara el documento para poderlo modificar.
ModificaParcial
Procedimiento Prepara el documento para poder cambiar solamente el detalle de una línea
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
IniciarServir
Procedimiento Inicia el proceso de servir líneas de otro documento origen.
ServirDocumento
Procedimiento Sirve el documento origen entero.
ServirLinea
Procedimiento Sirve una línea del documento origen.
AnularLinea
Procedimiento Anula una línea del documento origen conforme no podrán servirse las unidades indicadas.
FinServir
Procedimiento Finaliza el proceso de servir.
AnadirDetalle
Procedimiento Identifica los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
CambiarDetalle
Procedimiento Cambia los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
BorrarDetalle
Procedimiento Borra el detalle los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimiento Identifica las tallas de una línea del documento.
CambiarTalla
Procedimiento Cambia las tallas de una línea del documento.
BorrarTalla
Procedimiento Borra el detalle de las tallas de una línea del documento.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NuevoComponente Procedimiento Inicia una nueva línea componente de un kit. EditarComponente Procedimiento Permite editar una línea componente de un kit. BorrarComponente Procedimiento Borra una línea componente de un kit. AnadirComponente Procedimiento Añade una línea componente de un kit. CancelarComponen Procedimiento Cancela una línea componente de un kit. te
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 110 Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 111
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Bolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 112 A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringComp[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerComp[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatComp[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanComp[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyComp[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 113 Valor retornado
Currency
Valor del campo
property ValidarPrecios: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mínimo Valor retornado
Lógico
Valor del campo
property ValidarArtBloqueado: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artículo bloqueado Valor retornado
Lógico
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado
Lógico
Valor del campo
property AvisarRiesgo: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado
Lógico
Valor del campo
property AvisarCentroCosteCabecera: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las líneas cuando se cambia desde la cabecera Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar albaranes.
property Estado:EstadoMaestro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 114 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodCliPro: String; bEsDeCompra: Boolean); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodCliPro
Código del cliente o proveedor
bEsDeCompra
True Compra False Venta
procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 115 Este método se utiliza únicamente para cambiar el detalle de una línea de un documento. Se puede utilizar en documentos con muchas líneas, mejorando la velocidad, ya que solo carga el detalle de la línea que se indica. Despues de llamar a este método solo se pueden utilizar los métodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edición y la línea que tiene el Numlin indicado en edición Parámetros:
IdDocu
Identificador del documento
NumLin
Numero de línea
EsDeCompra
True Compra False Venta
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency; bEsDeCompra: Boolean); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 116 Crea una línea con el artículo y las unidades indicadas realizando las búsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINALB del fichero LINEALBA. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdAlbV = naxAlbaran.AsStringCab* ‘IdAlbV’+ en ventas o IdAlbC = naxAlbaran.AsStringCab* ‘IdAlbC’+ en compras.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea. Se corresponde con el campo NUMLINALB del fichero LINEALBA. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdAlbV = naxAlbaran.AsStringCab* ‘IdAlbV’+ en ventas o IdAlbC = naxAlbaran.AsStringCab* ‘IdAlbC’+ en compras.
En la siguiente colección de procedimientos se encapsula el funcionamiento de las utilidades para servir cualquier documento sobre los albaranes. En primer lugar debe llamarse al procedimiento IniciarServir, a continuación pueden utilizarse los procedimientos ServirDocumento, ServirLinea o AnularLinea y funalmente debe llamarse a FinServir.
procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; bConMensaje: Boolean); Prepara el documento indicado para servirse. Reserva los recursos necesarios.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 117 Parámetros:
sIdDocu
‘O’ Oferta ‘P’ Pedido
nIdDocu
En función del valor de sIdDocu (O,P) representa el identificador de la oferta (IdOfeV o IdOfeC) o del pedido (IdPEdV o IdPedC) respectivamente.
bConMensaje
En caso en que se produzcan diferencias entre las condiciones del documento origen y el destino (Por ejemplo, la forma de pago, el documento de pago, el transportista, etc....), el programa puede actuar de dos formas distintas: -
-
bConMesnaje = True: Preguntar al usuario si se desean aplicar las condiciones del documento destino o respetar las del documento origen. bConMensaje = False: Aplicar las condiciones del documento destino.
procedure ServirDocumento; Sirve todo el material pendiente de todo del documento origen indicado en la función IniciarServir.
procedure ServirLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCad: WideString); Sirve la línea con los parámetros indicados. Parámetros:
nNumLin
Nº de línea. NUMLINOFE en ofertas y NUMLINPED en pedidos
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
sNSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación
sFecCad
Fecha de caducidad.
procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 118 Anula las unidades indicadas de la línea pasada por parámetro. Esas unidades no estarán disponibles para ser servidas posteriormente. Parámetros:
nNumLin
Nº de línea del documento origen (NUMLINOFE o NUMLINPED).
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
procedure FinServir; Realiza las operaciones realizadas desde que se llamó a IniciarServir de forma definitiva. Libera los recursos necesarios. Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEALBA.
nUnidades
Nº de unidades de la línea de detalle.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 119 sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEALBA.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMoneda
Precio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEALBA.
nUnidades
Nº de unidades de la línea de talla.
nPrcMoneda
Precio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEALBA.
Procedure NuevoComponente; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea componente
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 120
Procedure AnadirComponente; Almacena los valores de los campos de la línea componente en la base de datos.
Procedure CancelaComponente; Cancela la edición de la línea componente activa.
procedure EditarComponente(nIdLinea: Currency); Pone la línea componente indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirComponente. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINALB del fichero LINEALBA.
procedure BorrarComponente( nIdLinea: Currency); Borra la línea componente con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINALB del fichero LINEALBA.
OBJETO PEDIDO Objeto que permite la creación, modificación y borrado de pedidos.
Interface Pedido property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 121 property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 122 procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLi n
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 123 ro AsStringComp
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerComp
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatComp
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanComp
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyComp Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
OmitirMensajes
Asignar valor para ocultar mensajes de información
Lógico
ActivarAlarmaCab Lógico
Asignar valor para activar o no alarmas en documentos
ActivarAlarmaLin
Lógico
Asignar valor para activar o no alarmas en documentos
ValidarPrecios
Lógico
Asignar valor para activar o no los mensajes de validación de precios
ValidarArtBloque Lógico ado
Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarRiesgo
Asignar valor para activar o no los mensajes de aviso de riesgo
Lógico
AvisarCentroCost Lógico eCabecera
Asignar valor para activar o no el mensaje que aparece al cambiar algún nivel de analítica y pregunta si se desa cambiar en las líneas.
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto o
Acabar
Procedimient Cierra el objeto o
Nuevo
Procedimient Inicia un nuevo documento o
Borra
Procedimient Borra el documento o
Modifica
Procedimient Prepara el documento para poderlo modificar. o
ModificaParcial
Procedimient Prepara el documento para poder cambiar solamente el o detalle de una línea
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 124 Cancela
Procedimient Cancela la edición del documento. o
Anade
Función
NuevaLinea
Procedimient Inicia una nueva línea o
NuevaLineaArt
Procedimient Inicia una nueva línea aplicando las políticas de nexus, o dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimient Añade la línea o
CancelaLin
Procedimient Cancela la línea en edición o
EditarLinea
Procedimient Permite editar una línea ya existente del documento. o
BorrarLinea
Procedimient Permite borrar una línea del documento. o
IniciarServir
Procedimient Inicia el proceso de servir líneas de otro documento o origen.
ServirDocumento
Procedimient Sirve el documento origen entero. o
ServirLinea
Procedimient Sirve una línea del documento origen. o
AnularLinea
Procedimient Anula una línea del documento origen conforme no o podrán servirse las unidades indicadas.
FinServir
Procedimient Finaliza el proceso de servir. o
AnadirDetalle
Procedimient Identifica los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
CambiarDetalle
Procedimient Cambia los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
BorrarDetalle
Procedimient Borra el detalle los nº de serie, lotes, fechas de caducidad o y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimient Identifica las tallas de una línea del documento. o
CambiarTalla
Procedimient Cambia las tallas de una línea del documento. o
BorrarTalla
Procedimient Borra el detalle de las tallas de una línea del documento. o
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NuevoComponente Procedimient Inicia una nueva línea componente de un kit.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 125 o EditarComponente Procedimient Permite editar una línea componente de un kit. o BorrarComponente Procedimient Borra una línea componente de un kit. o AnadirComponente Procedimient Añade una línea componente de un kit. o CancelarComponen Procedimient Cancela una línea componente de un kit. te o Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 126 Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 127
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringComp[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerComp[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatComp[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanComp[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 128 Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyComp[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property ValidarPrecios: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mínimo Valor retornado
Lógico
Valor del campo
property ValidarArtBloqueado: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artículo bloqueado Valor retornado
Lógico
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado
Lógico
Valor del campo
property AvisarRiesgo: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado
Lógico
Valor del campo
property AvisarCentroCosteCabecera: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las líneas cuando se cambia desde la cabecera
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 129 Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar pedidos.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodCliPro: String; bEsDeCompra: Boolean); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodCliPro
Código del cliente o proveedor
bEsDeCompra
True Compra False Venta
procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 130 bEsDeCompra
True Compra False Venta
procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool); Este método se utiliza únicamente para cambiar el detalle de una línea de un documento. Se puede utilizar en documentos con muchas líneas, mejorando la velocidad, ya que solo carga el detalle de la línea que se indica. Despues de llamar a este método solo se pueden utilizar los métodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edición y la línea que tiene el Numlin indicado en edición Parámetros:
IdDocu
Identificador del documento
NumLin
Numero de línea
EsDeCompra
True Compra False Venta
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency; bEsDeCompra: Boolean); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
Procedure NuevaLinea;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 131 Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas realizando las búsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea( nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINPED del fichero LINEPEDI. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdPedV = naxPedido.AsStringCab* ‘IdPedV’+ en ventas o IdPedC = naxPedido.AsStringCab* ‘IdPedC’+ en compras.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea. Se corresponde con el campo NUMLINPED del fichero LINEPEDI. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdPedV = naxPedido.AsStringCab* ‘IdPedV’+ en ventas o IdPedC = naxPedido.AsStringCab* ‘IdPedC’+ en compras.
En la siguiente colección de procedimientos se encapsula el funcionamiento de las utilidades para servir cualquier documento sobre los pedidos. En primer lugar debe llamarse al procedimiento IniciarServir, a continuación pueden utilizarse los procedimientos ServirDocumento, ServirLinea o AnularLinea y funalmente debe llamarse a FinServir.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 132
procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; bConMensaje: Boolean); Prepara el documento indicado para servirse. Reserva los recursos necesarios. Parámetros:
sIdDocu
‘O’ Oferta
nIdDocu
Representa el identificador de la oferta (IdOfeV o IdOfeC).
bConMensaje
En caso en que se produzcan diferencias entre las condiciones del documento origen y el destino (Por ejemplo, la forma de pago, el documento de pago, el transportista, etc....), el programa puede actuar de dos formas distintas: -
-
bConMesnaje = True: Preguntar al usuario si se desean aplicar las condiciones del documento destino o respetar las del documento origen. bConMensaje = False: Aplicar las condiciones del documento destino.
procedure ServirDocumento; Sirve todo el material pendiente de todo del documento origen indicado en la función IniciarServir.
procedure ServirLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); Sirve la línea con los parámetros indicados. Parámetros:
nNumLin
Nº de línea. NUMLINOFE de ofertas.
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
sNSerie
Nº de serie.
sLote
Lote.
sUbicac
Ubicación
sFecCad
Fecha de caducidad.
procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 133 Anula las unidades indicadas de la línea pasada por parámetro. Esas unidades no estarán disponibles para ser servidas posteriormente. Parámetros:
nNumLin
Nº de línea del documento origen (NUMLINOFE).
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
procedure FinServir; Realiza las operaciones realizadas desde que se llamó a IniciarServir de forma definitiva. Libera los recursos necesarios. Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEPEDI.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 134 sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEPEDI.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMoneda
Precio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEPEDI.
nUnidades
Nº de unidades de la línea de talla.
nPrcMoneda
Precio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEPEDI.
Procedure NuevoComponente; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea componente
Procedure AnadirComponente;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 135 Almacena los valores de los campos de la línea componente en la base de datos.
Procedure CancelaComponente; Cancela la edición de la línea componente activa.
procedure EditarComponente(nIdLinea: Currency); Pone la línea componente indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirComponente. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINPED del fichero LINEPEDI.
procedure BorrarComponente( nIdLinea: Currency); Borra la línea componente con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINPED del fichero LINEPEDI.
OBJETO DEPÓSITO Objeto que permite la creación, modificación y borrado de depósitos.
Interface Depósito property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 136 property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 137 sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 138 AsStringComp
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerComp
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatComp
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanComp
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyComp Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
OmitirMensajes
Asignar valor para ocultar mensajes de información
Lógico
ActivarAlarmaCab Lógico
Asignar valor para activar o no alarmas en documentos
ActivarAlarmaLin
Lógico
Asignar valor para activar o no alarmas en documentos
ValidarPrecios
Lógico
Asignar valor para activar o no los mensajes de validación de precios
ValidarArtBloque Lógico ado
Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
AvisarRiesgo
Lógico
Asignar valor para activar o no los mensajes de aviso de riesgo
AvisarCentroCost Lógico eCabecera
Asignar valor para activar o no el mensaje que aparece al cambiar algún nivel de analítica y pregunta si se desa cambiar en las líneas.
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimie Inicia el objeto nto
Acabar
Procedimie Cierra el objeto nto
Nuevo
Procedimie Inicia un nuevo documento nto
Borra
Procedimie Borra el documento nto
Modifica
Procedimie Prepara el documento para poderlo modificar. nto
ModificaParcial
Procedimie Prepara el documento para poder cambiar solamente el
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 139 nto
detalle de una línea
Cancela
Procedimie Cancela la edición del documento. nto
Anade
Función
NuevaLinea
Procedimie Inicia una nueva línea nto
NuevaLineaArt
Procedimie Inicia una nueva línea aplicando las políticas de nexus, nto dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimie Añade la línea nto
CancelaLin
Procedimie Cancela la línea en edición nto
EditarLinea
Procedimie Permite editar una línea ya existente del documento. nto
BorrarLinea
Procedimie Permite borrar una línea del documento. nto
IniciarServir
Procedimie Inicia el proceso de servir líneas de otro documento nto origen.
ServirDocumento
Procedimie Sirve el documento origen entero. nto
ServirLinea
Procedimie Sirve una línea del documento origen. nto
AnularLinea
Procedimie Anula una línea del documento origen conforme no nto podrán servirse las unidades indicadas.
FinServir
Procedimie Finaliza el proceso de servir. nto
AnadirDetalle
Procedimie Identifica los nº de serie, lotes, fechas de caducidad y/o nto ubicaciones de una línea del documento.
CambiarDetalle
Procedimie Cambia los nº de serie, lotes, fechas de caducidad y/o nto ubicaciones de una línea del documento.
BorrarDetalle
Procedimie Borra el detalle los nº de serie, lotes, fechas de caducidad nto y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimie Identifica las tallas de una línea del documento. nto
CambiarTalla
Procedimie Cambia las tallas de una línea del documento. nto
BorrarTalla
Procedimie Borra el detalle de las tallas de una línea del documento. nto
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 140 NuevoComponente
Procedimie Inicia una nueva línea componente de un kit. nto
EditarComponente
Procedimie Permite editar una línea componente de un kit. nto
BorrarComponente
Procedimie Borra una línea componente de un kit. nto
AnadirComponente
Procedimie Añade una línea componente de un kit. nto
CancelarComponent Procedimie Cancela una línea componente de un kit. e nto Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 141 Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 142
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringComp[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerComp[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatComp[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanComp[ sCampo:String]: Boolean
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 143 A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyComp[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property ValidarPrecios: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mínimo Valor retornado
Lógico
Valor del campo
property ValidarArtBloqueado: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artículo bloqueado Valor retornado
Lógico
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado
Lógico
Valor del campo
property AvisarRiesgo: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado
Lógico
Valor del campo
property AvisarCentroCosteCabecera: WordBool
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 144 A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las líneas cuando se cambia desde la cabecera Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar depósitos.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodCliPro: String; bEsDeCompra: Boolean); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodCliPro
Código del cliente o proveedor
bEsDeCompra
True Compra False Venta
procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 145 Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool); Este método se utiliza únicamente para cambiar el detalle de una línea de un documento. Se puede utilizar en documentos con muchas líneas, mejorando la velocidad, ya que solo carga el detalle de la línea que se indica. Despues de llamar a este método solo se pueden utilizar los métodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edición y la línea que tiene el Numlin indicado en edición Parámetros:
IdDocu
Identificador del documento
NumLin
Numero de línea
EsDeCompra
True Compra False Venta
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency; bEsDeCompra: Boolean); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 146
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas realizando las búsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea( nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdDepV = naxDeposito.AsStringCab* ‘IdDepV’+ en ventas o IdDepC = naxDeposito.AsStringCab* ‘IdDepC’+ en
compras.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdDepV = naxDeposito.AsStringCab* ‘IdDepV’+ en ventas o IdDepC = naxDeposito.AsStringCab* ‘IdDepC’+ en compras.
En la siguiente colección de procedimientos se encapsula el funcionamiento de las utilidades para servir cualquier documento sobre los depósitos. En primer lugar debe llamarse al procedimiento
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 147 IniciarServir, a continuación pueden utilizarse los procedimientos ServirDocumento, ServirDocumento, ServirLinea o AnularLinea y funalmente debe llamarse a FinServir.
procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; Currency; bConMensaje: Boolean); Prepara el documento indicado para servirse. Reserva los recursos necesarios. Parámetros:
sIdDocu
‘O’ Oferta ‘P’->Pedido
nIdDocu
Representa el identificador de la oferta (IdOfeV, IdOfeC) o del pedido(IdPedV o IdPedC).
bConMensaje
En caso en que se produzcan diferencias entre las condiciones del documento origen y el destino (Por ejemplo, la forma de pago, el documento de pago, el transportista, etc....), el programa puede actuar de dos formas distintas: -
-
bConMesnaje = True: Preguntar al usuario si se desean aplicar las condiciones del documento destino o respetar las del documento origen. bConMensaje = False: Aplicar las condiciones del documento destino.
procedure ServirDocumento; ServirDocumento; Sirve todo el material pendiente de todo del documento origen indicado en la función IniciarServir.
procedure ServirLinea( nNumLin: Currency; Currency; nNumBul: nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); Sirve la línea con los parámetros indicados. Parámetros:
nNumLin
Nº de línea. NUMLINOFE de ofertas y NUMLINPED en pedidos
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
sNSerie
Nº de serie.
sLote
Lote.
sUbicac
Ubicación
sFecCad
Fecha de caducidad.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 148
procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); Anula las unidades indicadas de la línea pasada por parámetro. Esas unidades no estarán disponibles para ser servidas posteriormente. post eriormente. Parámetros:
nNumLin
Nº de línea del documento origen (NUMLINOFE o NUMLINPED).
nNumBul
Nº de bultos de la línea que desean servirse.
nNumPaq
Nº de paquetes que desean servirse.
nNumUni
Nº de unidades que desean servirse.
procedure FinServir; Realiza las operaciones realizadas desde que se llamó a IniciarServir de forma definitiva. Libera los recursos necesarios. Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible Varios.DetalleStockDisponible.. .. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea l ínea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible Varios.DetalleStockDisponible.. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. ConsultarDetalle.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 149 Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda:Double); nPrcMoneda:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMoneda
Precio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.
nUnidades
Nº de unidades de la línea de talla.
nPrcMoneda
Precio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Procedure NuevoComponente; NuevoComponente;
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 150 Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea componente
Procedure AnadirComponente; AnadirComponente; Almacena los valores de los campos de la línea componente en la base de datos.
Procedure CancelaComponente; CancelaComponente; Cancela la edición de la línea componente activa.
procedure EditarComponente(nIdLinea: EditarComponente(nIdLinea: Currency); Currency); Pone la línea componente indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirComponente. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO.
procedure BorrarComponente( nIdLinea: Currency); Currency); Borra la línea componente con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO.
OBJETO OFERTA Objeto que permite la creación, c reación, modificación y borrado de ofertas.
Interface Oferta property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const AsCurrencyLin[const sCampo: WideString]: Currency;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 151 property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const AsCurrencyComp[const sCampo: s Campo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: ValidarArtBloqueado: WordBool; property AvisarCentroCosteCabecera: AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: sCodCliPro: WideString; bEsDeCompra: bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: BorrarLinea(nIdLinea: Currency); Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: sUbicacion: WideString; sFecCadu: WideString); WideString); procedure BorrarDetalle(nIdLine: BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: BorrarTalla(nIdLine: Double);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 152 procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente; Propiedades
Tipo
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
AsStringComp
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerComp
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatComp
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanComp
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyComp Tabla( Currency)
Descripción
Asigna/lee valores a/de los campos del registro nuevo/actual.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 153 OmitirMensajes
Lógico
Asignar valor para ocultar mensajes de información
ActivarAlarmaCab Lógico
Asignar valor para activar o no alarmas en documentos
ActivarAlarmaLin
Lógico
Asignar valor para activar o no alarmas en documentos
ValidarPrecios
Lógico
Asignar valor para activar o no los mensajes de validación de precios
ValidarArtBloque Lógico ado
Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarCentroCost Lógico eCabecera
Asignar valor para activar o no el mensaje que aparece al cambiar algún nivel de analítica y pregunta si se desa cambiar en las líneas.
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto o
Acabar
Procedimient Cierra el objeto o
Nuevo
Procedimient Inicia un nuevo documento o
Borra
Procedimient Borra el documento o
Modifica
Procedimient Prepara el documento para poderlo modificar. o
ModificaParcial
Procedimient Prepara el documento para poder cambiar solamente el o detalle de una línea
Cancela
Procedimient Cancela la edición del documento. o
Anade
Función
NuevaLinea
Procedimient Inicia una nueva línea o
NuevaLineaArt
Procedimient Inicia una nueva línea aplicando las políticas de nexus, o dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimient Añade la línea o
CancelaLin
Procedimient Cancela la línea en edición
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 154 o EditarLinea
Procedimient Permite editar una línea ya existente del documento. o
BorrarLinea
Procedimient Permite borrar una línea del documento. o
AnadirDetalle
Procedimient Identifica los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
CambiarDetalle
Procedimient Cambia los nº de serie, lotes, fechas de caducidad y/o o ubicaciones de una línea del documento.
BorrarDetalle
Procedimient Borra el detalle los nº de serie, lotes, fechas de caducidad o y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimient Identifica las tallas de una línea del documento. o
CambiarTalla
Procedimient Cambia las tallas de una línea del documento. o
BorrarTalla
Procedimient Borra el detalle de las tallas de una línea del documento. o
NuevoComponente Procedimient Inicia una nueva línea componente de un kit. o EditarComponente Procedimient Permite editar una línea componente de un kit. o BorrarComponente Procedimient Borra una línea componente de un kit. o AnadirComponente Procedimient Añade una línea componente de un kit. o CancelarComponen Procedimient Cancela una línea componente de un kit. te o Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
property AsStringCab[ sCampo:String]: String
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 155 A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 156 Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringComp[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 157
property AsIntegerComp[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatComp[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanComp[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyComp[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property ValidarPrecios: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mínimo Valor retornado
Lógico
Valor del campo
property ValidarArtBloqueado: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artículo bloqueado Valor
Lógico
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 158 retornado
property AvisarCentroCosteCabecera: WordBool A través de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las líneas cuando se cambia desde la cabecera Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar ofertas.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodCliPro: String; bEsDeCompra: Boolean); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodCliPro
Código del cliente o proveedor
bEsDeCompra
True Compra False Venta
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 159
procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool); Este método se utiliza únicamente para cambiar el detalle de una línea de un documento. Se puede utilizar en documentos con muchas líneas, mejorando la velocidad, ya que solo carga el detalle de la línea que se indica. Despues de llamar a este método solo se pueden utilizar los métodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edición y la línea que tiene el Numlin indicado en edición Parámetros:
IdDocu
Identificador del documento
NumLin
Numero de línea
EsDeCompra
True Compra False Venta
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency; bEsDeCompra: Boolean); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
bEsDeCompra
True Compra False Venta
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 160
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas realizando las búsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINOFE del fichero LINEOFER. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdOfeV = naxOferta.AsStringCab* ‘IdOfeV’+ en ventas o IdOfeC = naxOferta.AsStringCab* ‘IdOfeC’+ en compras.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea. Se corresponde con el campo NUMLINOFE del fichero LINEOFER. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdOfeV = naxOferta.AsStringCab* ‘IdOfeV’+ en ventas o IdOfeC = naxOferta.AsStringCab* ‘IdOfeC’+ en compras.
Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 161 automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEOFER.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEOFER.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 162 Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMoneda
Precio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEOFER.
nUnidades
Nº de unidades de la línea de talla.
nPrcMoneda
Precio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEOFER.
Procedure NuevoComponente; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea componente
Procedure AnadirComponente; Almacena los valores de los campos de la línea componente en la base de datos.
Procedure CancelaComponente; Cancela la edición de la línea componente activa.
procedure EditarComponente(nIdLinea: Currency); Pone la línea componente indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirComponente. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINOFE del fichero LINEOFER.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 163
procedure BorrarComponente( nIdLinea: Currency); Borra la línea componente con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea componente. Se corresponde con el campo NUMLINOFE del fichero LINEOFER.
OBJETO REGULARIZACION Objeto que permite la creación, modificación y borrado de regularizaciones.
Interface Regularizacion property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 164 sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades: Double); procedure CambiarTalla(nIdLine, nUnidades: Double); procedure BorrarTalla(nIdLine: Double);
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 165 Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el documento
Modifica
Procedimiento Prepara el documento para poderlo modificar.
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
AnadirDetalle
Procedimiento Identifica los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
CambiarDetalle
Procedimiento Cambia los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
BorrarDetalle
Procedimiento Borra el detalle los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimiento Identifica las tallas de una línea del documento.
CambiarTalla
Procedimiento Cambia las tallas de una línea del documento.
BorrarTalla
Procedimiento Borra el detalle de las tallas de una línea del documento.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringLin* ‘CodArt’+
-
Uso en Visual Basic: naxDocumento.AsStringLin ( ‘CodArt’)
property AsStringCab[ sCampo:String]: String
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 166 A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 167 Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar regularizaciones.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 168
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodAlm: String); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodAlm
Código del almacén
procedure Modifica( nIdDocu: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 169
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINREG del fichero LINEREGU. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdReg = naxRegu.AsStringCab* ‘IdReg’+.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 170 Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINREG del fichero LINEREGU. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdReg = naxRegu.AsStringCab* ‘IdReg’+.
Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEREGU.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 171 Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEREGU.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
procedure CambiarTalla( nIdLine, nUnidades: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEREGU.
nUnidades
Nº de unidades de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEREGU.
OBJETO TRASPASO Objeto que permite la creación, modificación y borrado de traspasos.
Interface Traspaso property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 172 property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlmSal, sCodalmEnt: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUnicacion2: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUnicacion2: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades: Double); procedure CambiarTalla(nIdLine, nUnidades: Double); procedure BorrarTalla(nIdLine: Double);
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla(
Asigna/lee valores a/de los campos del registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 173 Lógico)
nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el documento
Modifica
Procedimiento Prepara el documento para poderlo modificar.
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
AnadirDetalle
Procedimiento Identifica los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 174 CambiarDetalle
Procedimiento Cambia los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
BorrarDetalle
Procedimiento Borra el detalle los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimiento Identifica las tallas de una línea del documento.
CambiarTalla
Procedimiento Cambia las tallas de una línea del documento.
BorrarTalla
Procedimiento Borra el detalle de las tallas de una línea del documento.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringLin[ ‘CodArt’+
-
Uso en Visual Basic: naxDocumento. AsStringLin ( ‘CodArt’)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor
Double
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 175 retornado
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyCab[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 176 A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar traspasos.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 177 Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodAlmSal, sCodAlmEnt: String); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodAlmSal
Código del almacén de salida.
sCodAlmEnt
Código del almacén de entrada.
procedure Modifica( nIdDocu: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 178 Crea una línea con el artículo y las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINTRA del fichero LINETRAS. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdTra = naxTraspaso.AsStringCab* ‘IdTra’+.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINTRA del fichero LINETRAS. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdTra = naxTraspaso.AsStringCab[ ‘IdTra’+.
Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUbicacion2: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nUnidades
Nº de unidades de la línea de detalle.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 179 sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion1
Ubicación en almacén origen.
sUbicacion2
Ubicación en almacén destino
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUbicacion2: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINETRAS.
nUnidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion1
Ubicación en almacén origen.
sUbicacion2
Ubicación en almacén destino
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINETRAS.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 180
procedure CambiarTalla( nIdLine, nUnidades: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINETRAS.
nUnidades
Nº de unidades de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINETRAS.
OBJETO INVENTARIO Objeto que permite la creación, modificación y borrado de inventarios.
Interface Inventario property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString; bTodosArti: WrodBool); procedure Borra(IdDocu: Currency); procedure Editar(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 181 procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades,nPrcMedio: Double); procedure CambiarTalla(nIdLine, nUnidades,nPrcMedio: Double); procedure BorrarTalla(nIdLine: Double); Propiedades
Tipo
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
AvisarStock
Lógico
*EstadoMaestro: Ver objeto Maestro.
Descripción
Asignar valor para activar o no los mensajes de aviso de stock
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 182
Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el documento
Modifica
Procedimiento Prepara el documento para poderlo modificar.
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
AnadirDetalle
Procedimiento Identifica los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
CambiarDetalle
Procedimiento Cambia los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
BorrarDetalle
Procedimiento Borra el detalle los nº de serie, lotes, fechas de caducidad y/o ubicaciones de una línea del documento.
AnadirTalla
Procedimiento Identifica las tallas de una línea del documento.
CambiarTalla
Procedimiento Cambia las tallas de una línea del documento.
BorrarTalla
Procedimiento Borra el detalle de las tallas de una línea del documento.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringLin* ‘CodArt’+
-
Uso en Visual Basic: naxDocumento. AsStringLin ( ‘CodArt’)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 183 Cuando se crea un inventario nuevo, el programa necesita crear una línea en ese inventario para almacenar las unidades de stock que debería tener cada artículo en cada almacén. (Se almacena esa información en el campo UNICALC). Posteriormente el usuario puede cambiar esa “propuesta” por
la realidad del almacén (llenando la columna que se corresponde con el campo UNIDADES). Por tanto al crear un inventario puede tardar un rato, en el que se estará realizando el cálculo del stock propuesto por la aplicación.
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 184 Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar inventarios.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 185
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha, sCodAlm: String; bTodosArti: WordBool); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodAlm
Código del almacén
bTodosArti
bTodosArti = True: Se incluyen los artículos con stock 0. bTodosArti = True: Sólo se incluyen los artículos cuyo stock es diferente de 0.
procedure Modifica( nIdDocu: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Procedure Anade;
Identificador del documento
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 186 Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 187 Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLININV del fichero LINEINVE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdInv = naxInve.AsStringCab* ‘IdInv’+.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLININV del fichero LINEINVE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdInv = naxInve.AsStringCab* ‘IdInv’+.
Los procedimientos que se describen a continuación se utilizan para especificar los lotes, nº de serie, fechas de caducidad y ubicaciones de una línea a no ser que esta selección se realice de forma automática. Para consultar si ya se han detallado todos los lotes, nº de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la función ConsultarDetalle;
procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la función Varios.DetalleStockDisponible.. Parámetros:
nNunidades
Nº de unidades de la línea de detalle.
sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure CambiarDetalle( nIdLine: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); Indica las unidades necesarias y su Nº serie, lote, fecha de caducidad y ubicación de la línea activa. Para conocer los nº serie, lote, fecha de caducidad y ubicaciones disponibles en st ock hay que llamar a la función Varios.DetalleStockDisponible. Para consultar el detalle de la línea activa hay que llamar a la función ConsultarDetalle. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEINVE.
nUnidades
Nº de unidades de la línea de detalle.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 188 sNumSerie
Nº de serie.
sLote
Lote.
sUbicacion
Ubicación.
sFecCadu
Fecha de caducidad.
procedure BorrarDetalle( nIdLine: Double); Elimina la línea de detalle indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEINVE.
procedure AnadirTalla( sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMedio:Double); Indica las unidades y el precio necesarios, junto con sus tallas y colores de la línea activa. Parámetros:
sCodFamTallaH
Familia de talla horizontal
sCodFamTallaV
Familia de talla vertical
sCodTallaH
Código de talla horizontal
sCodTallaV
Código de talla vertical
nUnidades
Nº unidades de la línea de talla
nPrcMedio
Precio medio de la línea de talla.
procedure CambiarTalla( nIdLine, nUnidades, nPrcMedio: Double); Indica las unidades y el precio de la línea activa. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEINVE.
nUnidades
Nº de unidades de la línea de talla.
nPrcMedio
Precio medio de la línea de talla.
procedure BorrarTalla( nIdLine: Double); Elimina la línea de talla indicada en el parámetro. Parámetros:
nIdLine
Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEINVE.
OBJETO MOVIMIENTOSTOCK Objeto que permite la creación, modificación y borrado de conjuntos de movimientos de stock.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 189
Interface MovimientoStock property Estado: EstadoMaestro readonly; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency);
Propiedades
Tipo
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
*EstadoMaestro: Ver objeto Maestro.
Descripción
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 190
Metodo
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el docuemtno
Modifica
Procedimiento Prepara el documento para poderlo modificar.
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
AvisarStock
Lógico
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
Asignar valor para activar o no los mensajes de aviso de stock
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringLin* ‘CodArt’+
-
Uso en Visual Basic: naxDocumento. AsStringLin ( ‘CodArt’)
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 191
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar movimientos de stock.
property Estado:EstadoMaestro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 192 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodAlm: String); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodAlm
Código del almacén.
procedure Modifica( nIdDocu: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 193 Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINMOV del fichero LINEMOVI. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdMov = naxMovi.AsStringCab* ‘IdMov’+.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 194 Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINMOV del fichero LINEMOVI. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdMov = naxMovi.AsStringCab* ‘IdMov’+.
OBJETO RESERVASTOCK Objeto que permite la creación, modificación y borrado de conjuntos de reservas de stock.
Interface ReservaStock property Estado: EstadoMaestro readonly; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); Propiedades
Tipo
Descripción
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 195 AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Nuevo
Procedimiento Inicia un nuevo documento
Borra
Procedimiento Borra el documento
Modifica
Procedimiento Prepara el documento para poderlo modificar.
Cancela
Procedimiento Cancela la edición del documento.
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
NuevaLineaArt
Procedimiento Inicia una nueva línea aplicando las políticas de nexus, dados el código del artículo y las unidades pasadas como parámetro.
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del documento.
BorrarLinea
Procedimiento Permite borrar una línea del documento.
Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringLin* ‘CodArt’+
-
Uso en Visual Basic: naxDocumento. AsStringLin ( ‘CodArt’)
property AsStringLin[ sCampo:String]: String
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 196 A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar reservas de stock.
property Estado:EstadoMaestro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 197 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Documento en estado de inserción de un nuevo registro. ESTM_EDICION: Documento en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha: String; sCodAlm: String); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
sFecha
Fecha del documento
sCodAlm
Código del almacén.
procedure Modifica( nIdDocu: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
nIdDocu
Identificador del documento
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualización de stocks y actualización de estadísticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 198 Cancela la edición del documento. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra( nIdDocu: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
nIdDocu
Identificador del documento
Procedure NuevaLinea; Crea una línea con los valores por defecto. A partir de ese momento podremos editar los valores de la línea.
Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency); Crea una línea con el artículo y las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sCodArt
Código del artículo
nUnidades
Unidades
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(nIdLinea: Currency); Pone la línea indicada en el parámetro nIdLinea en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINRES del fichero LINERESE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdRes = naxReserva.AsStringCab* ‘IdRes’+.
procedure BorrarLinea( nIdLinea: Currency); Borra la línea con el identificador indicado en el parámetro nIdLinea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 199 Parámetros:
nIdLinea
Identificador de la línea.. Se corresponde con el campo NUMLINRES del fichero LINERESE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdRes = naxReserva.AsStringCab* ‘IdRes’+.
OBJETO ASIENTO Interface Asiento property Estado: EstadoMaestro readonly; property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property TratarConcepto: WordBool; property Importado: WordBool; procedure Iniciar; procedure Acabar; procedure Nuevo(sFecha: WideString; sTipoContable: WideString; sTipo: WideString); procedure Modifica( nAsiento: Currency); procedure Borra( nAsiento: Currency); function Anade: Currency; procedure Cancela; procedure AApunte( sCodMon: WideString; sCuenta: WideString; nDebe: Currency; sDescripcion: WideString; nHaber: Currency; sCentroCoste: WideString; sTexto: WideString); procedure NuevoNax( sTipApu: WideString; sTipoCont: WideString; sDiario: WideString; sNumDoc: WideString; sFecha: WideString); procedure AApunteNax( sCodConce: WideString; sDescApu: WideString; sCentroCoste: WideString; sCentroCoste2: WideString; sCentroCoste3: WideString; sCodMon: WideString; sCuenta: WideString; nDebeMoneda: Currency; nDebe: Currency; nHaberMoneda: Currency; nHaber: Currency; sTexto: WideString; sFechaValor: WideString); procedure Desligar (nAsiento: Currency);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 200
Propiedades
Tipo
Descripción
Estado
EstadoMaestr o
Devuelve el estado en que se encuentra el objeto Asiento.
AsString
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloat
Tabla( float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsInteger
Tabla(integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBoolean
Tabla(lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
TratarConcepto Lógico
Para desactivar la petición visual de variables de conceptos
Importado
Para desactivar los mensajes visuales de nº asiento o asiento cuadrado, etc
Lógico
Métodos
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto asiento. o
Acabar
Procedimient Cierra el objeto asiento. o
Nuevo
Procedimient Pasa al ESTM_NUEVO para comenzar a añadir apuntes. o
Modifica
Procedimient Sustituye el asiento especificado por el actual. o
Borra
Procedimient Borra el asiento especificado. o
Anade
Función
Cancela
Procedimient Cancela el nuevo, pasa a ESTM_ACTIVO y se pierden los o apuntes introducidos.
AApunte
Procedimient Añade un apunte al asiento actual. o
NuevoNax
Procedimient Equivalente a Nuevo pero con más parámetros. o
AApunteNax
Procedimient Equivalente a Aapunte pero con más parámetros. o
Desligar
Procedimient Para desvincular el asiento de su cartera. Se indica el nº de o asiento a desligar
Utiliza los apuntes introducidos para crear un nuevo asiento. Devuelve el número del asiento que se acaba de generar.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 201
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores del asiento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar añadir la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘1/1/2002’
-
Uso en Delphi: naxApunte.AsString* ‘Cuenta’+
-
Uso en Visual Basic: naxApunte.AsString ( ‘Cuenta’)
property AsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloat[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBoolean[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 202 Valor retornado
Lógico
Valor del campo
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Asiento cerrado. No se puede usar. ESTM_ACTIVO: Asiento activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Asiento en estado de inserción de un nuevo registro. ESTM_EDICION: Asiento en estado modificación, podemos asignar valores a los campos. Parámetros:
(ninguno)
Valor retornado
EstadoMaestro
Retorna el estado del asiento.
Property TratarConcepto: Boolean Para desactivar la petición visual de variables de conceptos Valor retornado
Lógico
Valor del campo
Property Importado: Boolean; Para desactivar los mensajes visuales de nº asiento o asiento cuadrado, etc Valor retornado
Lógico
Valor del campo
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el asiento pueda ser usado. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( sFecha, sTipoContable, sTipo: String) Mediante este procedimiento se inicia la edición de un nuevo asiento. Como parámetros se pasan los valores que son comunes a todas las líneas del asiento. Pasa del estado ESTM_ACTIVO al estado ESTM_NUEVO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 203 Parámetros:
sFecha
Fecha del asiento
sTipoContable
Tipo contable del asiento.
STipo
Tipo de asiento. Valores posibles: A Apertura. N Normal. P Paso a explotación. T Cierre.
procedure NuevoNax( sTipApu: WideString; sTipoCont: WideString; sDiario: WideString; sNumDoc: WideString; sFecha: WideString); Mediante este procedimiento se inicia la edición de un nuevo asiento. Como parámetros se pasan los valores que son comunes a todas las líneas del asiento. Pasa del estado ESTM_ACTIVO al estado ESTM_NUEVO. Parámetros:
sTipApu
Tipo de asiento. Valores posibles: A Apertura. N Normal. P Paso a explotación. T Cierre.
sTipoCont
Tipo contable del asiento.
sDiario
Diario contable
sNumDoc
Número de documento contable.
sFecha
Fecha del asiento
procedure Modifica( nAsiento: Currency); Mediante este procedimiento se inicia la modificación de un asiento existente. Como parámetro se pasa el identificador del asiento. Pasa del estado ESTM_ACTIVO al estado ESTM_EDICION. Debe tenerse en cuenta que cuando se modifica un asiento que ya existe lo primero que hace NAX es borrar las líneas que ya tiene y a continuación el programador debe introducir todas las líneas que finalmente tendrá ese asiento. Parámetros:
nAsiento
Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.
procedure Borra( nAsiento: Currency); Mediante este procedimiento se borra un asiento existente. Como parámetro se pasa el identificador del asiento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 204 Parámetros:
nAsiento
Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.
function Anade: Currency; Mediante este procedimiento se termina la edición de un asiento tanto nuevo como existente y se guarda su contenido en la base de datos. Cambia el estado de ESTM_NUEVO o ESTM_EDICION a ESTM_ACTIVO. Valor retornado:
Currency
Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.
Procedure Cancela; Mediante este procedimiento se cancela la edición de un asiento tanto nuevo como existente. Cambia el estado de ESTM_NUEVO o ESTM_EDICION a ESTM_ACTIVO.
procedure AApunte( sCodMon, sCuenta: String; nDebe: Currency; sDescripcion: String; nHaber:Currency; sCentroCoste, sTexto: String); Mediante este procedimiento se crean las líneas (apuntes) de un asiento. Parámetros:
sCodMon
Código de la moneda.
sCuenta
Cuenta contable.
nDebe
Importe del debe en la moneda indicada.
sDescripcion
Descripción del asiento.
nHaber
Importe del haber en la moneda indicada.
sCentroCoste
Centro de coste 1.
sTexto
Texto.
procedure AApunteNax( sCodConce: WideString; sDescApu: WideString; sCentroCoste: WideString; sCentroCoste2: WideString; sCentroCoste3: WideString; sCodMon: WideString; sCuenta: WideString; nDebeMoneda: Currency; nDebe: Currency; nHaberMoneda: Currency; nHaber: Currency; sTexto: WideString; sFechaValor: WideString); Mediante este procedimiento se crean las líneas (apuntes) de un asiento. Parámetros:
sCodConce
Concepto del asiento. Únicamente sirve para rellenar la variable CodConce.
sDescApu
Descripción del asiento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 205 sCentroCoste
Centro de coste 1.
sCentroCoste2
Centro de coste 2.
sCentroCoste3
Centro de coste 3.
sCodMon
Código de la moneda.
sCuenta
Cuenta contable.
nDebeMoneda
Importe del debe en la moneda indicada.
nDebe
Importe del debe en la moneda principal. Si el valor es 0 se hace la conversión automáticamente.
nHaberMoneda
Importe del haber en la moneda indicada.
nHaber
Importe del haber en la moneda principal. Si el valor es 0 se hace la conversión automáticamente.
sTexto
Texto.
sFechaValor
Fecha valor del apunte.
procedure Desligar( nAsiento: Currency); Mediante este procedimiento podemos desvincular el asiento de su cartera Parámetros:
nAsiento
Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.
OBJETO CARTERA Interface Cartera property AsString[const sCampo: WideString]: WideString ; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property AsCurrency[const sCampo: WideString]: Currency; property VAsString[const sCampo: WideString]: WideString ; property VAsFloat[const sCampo: WideString]: Double; property VAsInteger[const sCampo: WideString]: Integer; property VAsBoolean[const sCampo: WideString]: WordBool; property VAsCurrency[const sCampo: WideString]: Currency; property Estado: EstadoMaestro readonly; procedure Iniciar; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; sCodMon: WideString;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 206 sTipoCont: WideString; sSerie: WideString; sNumDoc: WideString; EsDeCompra: WordBool); procedure NuevoNax( sFecha: WideString; sCodCliPro: WideString; sCodMon: WideString; sTipoCont: WideString; sSerie: WideString; sNumDoc: WideString; sReferencia:WideString; EsDeCompra: WordBool); function Anade: Currency; procedure Cancela; procedure NuevoVen(const sFecha: WideString; nImporteMon: Currency); procedure Acabar; procedure Modifica(nCartera: Currency); procedure AnadirVen; procedure Borra(nNumCart: Currency); function ObtenerNumCartera(bEsCobro: WordBool; IdFac: Integer): Currency; function PuedeModificarse(nNumCart: Currency): WordBool; procedure Editar(nNumCart:Currency); procedure EditarVencimiento(nNumVen:Currency); procedure BorrarVencimiento(nNumVen:Currency); procedure GuardarVencimiento; Propiedades
Tipo
Descripción
Estado
EstadoMaestr o
Devuelve el estado en que se encuentra el objeto Cartera.
AsString
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)
AsFloat
Tabla( float)
Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)
AsInteger
Tabla( integer) Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)
AsBoolean
Tabla( lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)
AsCurrency
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)
VAsString
Tabla( string)
Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)
VAsFloat
Tabla( float)
Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)
VAsInteger
Tabla( integer) Asigna/lee valores a/de los campos del registro
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 207 nuevo/actual. (vencimiento) VAsBoolean
Tabla( lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)
VAsCurrency
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)
Métodos
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto cartera o
Acabar
Procedimient Cierra el objeto cartera o
Nuevo/NuevoNax Procedimient Inicia un nuevo grupo de efectos en cartera. o Anade
Función
Añade los efectos en cartera y devuelve el identificador con el que se han almacenado en la base de datos.
Modifica
Procedimient Borra los efectos del grupo de cartera indicado y prepara o ese mismo grupo para la creación de nuevos efectos.
Borra
Procedimient Borra los efectos del grupo de cartera indicado o
Cancela
Procedimient Cancela la edición del grupo de efectos. o
NuevoVen
Procedimient Inicia un nuevo vencimiento o
AnadirVen
Procedimient Añade el vencimiento definido. o
ObtenerNumCart Función era
Retorna el siguiente número de cartera
PuedeModificarse Función
Indica si un grupo de cartera puede modificarse
Editar
Procedimient Para modificar manualmente los vencimientos de un o NUMCARTERA
EditarVencimient Procedimient Pone en “modo edición” el vencimiento de un o o NUMCARTERA GuardarVencimie Procedimient Guardar el vencimiento en edición nto o BorrarVencimient Procedimient Borrar un vencimiento o o Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores del los vencimientos. Deben tenerse en cuenta algunas normas importantes.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 208 Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar añadir la línea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como ‘1/1/2002’ Uso en Delphi: naxCartera.AsString* ‘CodCli’+ Uso en Visual Basic: naxCartera.AsString ( ‘CodCli’)
property AsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificado que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificado que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloat[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificado que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBoolean[ sCampo:String]: Bolean A través de esta propiedad podemos asignar valor a los campos de la línea especificado que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrency[ sCampo:String]: Currency
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 209 A través de esta propiedad podemos asignar valor a los campos de la línea especificado que su tipo es currency. Parámetros:
sCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property VAsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property VAsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property VAsFloat[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property VAsBoolean[ sCampo:String]: Bolean A través de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property VasCurrency[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es . Parámetros:
sCampo
Nombre del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 210 Valor retornado
Currency
Valor del campo
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Cartera (conjunto de vencimientos) cerrada. No se puede usar. ESTM_ACTIVO: Cartera activa. Podemos añadir, borrar, modificar. ESTM_NUEVO: Cartera en estado de inserción de un nuevo registro. ESTM_EDICION: Cartera en estado modificación, podemos asignar valores a los campos. Parámetros:
(ninguno)
Valor retornado
EstadoMaestro
Retorna el estado de la cartera (conjunto de vencimientos).
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la certera pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
Procedure Nuevo( sFechaFactura, sCodCliPro, sCodMon, sTipoCont, sSerie, sNumDoc: string; bEsDeCompra: boolean); Con esta función preparamos el objeto para insertar nuevos vencimientos de una factura. Los parámetros que se le pasan al procedimiento indican valores por defecto para todos los vencimientos y si se trata de una cartera asociada a un cliente (cobro) o a un proveedor (pago). Parámetros:
sFechaFactura
Fecha de la factura
sCodCliPro
Código del cliente o proveedor
sCodMon
Código de la moneda
sTipoCont
Tipo contable
sSerie
Serie de la factura
sNumDoc
Nº de la factura
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 211 bEsDeCompra
bEsDeCompra = True Factura de compra bEsDeCompra = False Factura de venta
Procedure NuevoNax( sFechaFactura, sCodCliPro, sCodMon, sTipoCont, sSerie, SNumDoc, sReferencia : string; bEsDeCompra: boolean); Con esta función preparamos el objeto para insertar nuevos vencimientos de una factura. Los parámetros que se le pasan al procedimiento indican valores por defecto para todos los vencimientos y si se trata de una cartera asociada a un cliente (cobro) o a un proveedor (pago). Parámetros:
sFechaFactura
Fecha de la factura
sCodCliPro
Código del cliente o proveedor
sCodMon
Código de la moneda
sTipoCont
Tipo contable
sSerie
Serie de la factura
SNumDoc
Nº de la factura
SReferencia
Referencia de la factura
BEsDeCompra
bEsDeCompra = True Factura de compra bEsDeCompra = False Factura de venta
Procedure Borra( nNumCartera: currency); Borra todos los efectos que pertenecen a un conjunto de cartera. Prerrequisito: No debe existir ningún vencimiento cobrado, pagado, recibido, bloqueado, etc... Para consultar si la cartera de una factura puede borrarse utilizar la función PuedeModificarse. Parámetros:
nNumCartera
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
Procedure Modifica( nNumCartera: currrency); Prepara un conjunto de cartera para modificar sus efectos. Lo primero que hace es borrar los que existen y el programador debe crearlos de nuevo. Prerrequisito: No debe existir ningún vencimiento cobrado, pagado, recibido, bloqueado, etc... Para consultar si la cartera de una factura puede borrarse utilizar la función PuedeModificarse.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 212 Parámetros:
nNumCartera
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
procedure Cancela; Cancela la edición de vencimientos eliminando todas la operaciones realizadas desde que se ha llamado a Nuevo o Modifica. Pasa de un estado ESTM_NUEVO o ESTM_EDICION a un estado ESTM_ACTIVO.
function Anade: Currency; Mediante este procedimiento se termina la edición de un conjunto de cartera tanto nuevo como existente y se guarda su contenido en la base de datos. Cambia el estado de ESTM_NUEVO o ESTM_EDICION a ESTM_ACTIVO. Valor retornado:
Currency
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
function PuedeModificarse(nNumCart: Currency): WordBool; Función que indica si puede modificarse o no un conjunto de cartera. Para que un conjunto de cartera pueda ser modificado o borrado no deben haberse realizado operaciones sobre ninguno de sus vencimientos. Parámetros:
nNumCart
Nº del conjunto de cartera.
Valor retornado:
Boolean
Indica si puede modificarse o no.
procedure ObtenerNumCartera( bEsDeCompra: boolean; nIdFac: Currency): Currency; Función que permite obtener el identificador del conjunto de vencimientos (NUMCARTERA) de una factura. Parámetros:
bEsDeCompra
Indica si la factura es de compra (True) o de venta (False).
nIdFac
bEsdeCompra = True Identificador de la factura de compra (Se corresponde con el campo IDFACV de la tabla CABEFACV). bEsdeCompra = False Identificador de la factura de venta (Se corresponde con el campo IDFACC de la tabla CABEFACC).
Valor retornado:
currency
Nº del conjunto de cartera.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 213
procedure NuevoVen(sFecha: WideString; nImporteMon: Currency); Crea un nuevo efecto con la fecha (vencimiento) e importe indicados. Parámetros:
sFecha
Fecha del vencimiento.
nImporteMon
Importe en la moneda indicada en el procedimiento Nuevo.
procedure AnadirVen; Crea los valores del vencimiento que se acaba de crear en la base de datos.
procedure Editar(nNumCartera:Currency); Prepara los vencimientos de un NUMCARTERA para su posterior modificación o borrado Parámetros:
nNumCartera
Número de cartera
procedure EditarVencimiento(nNumVen:Currency); Prepara el vencimiento para su posterior modificación. Parámetros:
nNumVen
Número de vencimiento
procedure GuardarVencimiento; Guarda el vencimiento que está en modo edición
procedure BorrarVencimiento(nNumVen:Currency); Borrar un vencimiento indicado Parámetros:
nNumVen
Número de vencimiento
OBJETO OPERACIONESCARTERA Interface OperacionesCartera property OmitirAvisoAsiento:WordBool; procedure Cobrar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString); procedure Pagar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString); procedure Recibir( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 214 sFecha: WideString); procedure CrearAnticipo (bEsCobro: WordBool; sCodCliPro: WideString; sCodBan: WideString; sDocPag: WideString; sTipCon: WideString; sCodMon: WideString; sFecVen: WideString; const sFecCon: WideString; nImpMon: Currency; Obs: WideString); procedure ACuenta ( bEsCobro: WordBool; nIdFact: Currency; nNumAnti: Currency; sCodMon: WideString; nImpACuentaMon: Currency); procedure CrearAnticipoNax ( bEsCobro: WordBool; sCodCliPro: WideString; sCodBan: WideString; sDocPag: WideString; sTipCon: WideString; sCodMon: WideString; sFecVen: WideString; sFecCon: WideString; nImpMon: Currency; Obs: WideString; sNumDoc: WideString); procedure Bloquear(nNumCart: Currency; nNumVen: Integer); procedure Enviar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; sNumDoc: WideString); procedure ActualizarRiesgo( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sNumDoc: WideString); procedure Devolver( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; nImpDev, nGastos: Currency; sCtaGastos: WideString; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure ImputarGastos( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; nGastos: Currency; sCtaGastos: WideString; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure RecibirNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; sNumDoc: WideString); procedure CobrarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; nImporte: Currency; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure PagarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 215 nImporte: Currency; sNumCta: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularCobro(nNumCart: Currency; nNumVen: Integer); procedure AnularPago(nNumCart: Currency; nNumVen: Integer); procedure AnularRecepcion(nNumCart: Currency; nNumVen: Integer); procedure AnularEnvio(nNumCart: Currency; nNumVen: Integer); procedure AnularBloqueo(nNumCart: Currency; nNumVen: Integer); procedure AnularImputacion(nNumCart: Currency; nNumVen: Integer); procedure AnularDevolucion(nNumCart: Currency; nNumVen: Integer); procedure AnularActualizacionRiesgo (nNumCart: Currency; nNumVen: Integer); procedure Ligar(nNumCart: Currency; nIdFact: Currency; bEsCobro: WordBool); procedure Desligar( nIdFact: Currency; bEsCobro: WordBool); procedure CobrarRemesa( nRemesa: Currency; GenRep: WordBool; AlDescuento: WordBool; sCtaBanco: WideString; sCtaRiesgo: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularCobroRemesa(nRemesa: Currency); procedure PagarRemesa ( nRemesa: Currency; bGenRep: WordBool; sCtaBanco: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularPagoRemesa( nRemesa: Currency); El objeto Cartera permitía crear, borrar o modificar vencimientos. El objeto Operaciones cartera permite realizar distintas operaciones con estos vencimientos. A continuación se detalla la especificación de todas esas operaciones.
Métodos
Tipo
Descripción
Cobrar
Procedimient Para realizar el cobro de efectos. o
Pagar
Procedimient Para realizar el pago de efectos.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 216 o Recibir
Procedimient Para realizar la recepción de efectos. o
CrearAnticipo
Procedimient Para crear anticipos de cartera o
ACuenta
Procedimient Para consumir un anticipo de cartera sobre una o factura.
CrearAnticipoNax
Procedimient Para crear anticipos de cartera. Incluye el nº de o documento contable.
Bloquear
Procedimient Para bloquear un efecto y no permitir realizar con o él más operaciones.
Enviar
Procedimient Para marcar un efecto a un proveedor como o enviado.
ActualizarRiesgo
Procedimient Para actualizar el riesgo de un efecto al descuento o cuyo vencimiento ha sido superado.
Devolver
Procedimient Para indicar la devolución de un efecto cobrado o indicando sus gastos.
ImputarGastos
Procedimient Para imputar los gastos de una devolución a un o cliente.
RecibirNax
Procedimient Ídem que Recibir pero con más parámetros. o
CobrarNax
Procedimient Ídem que Cobrar pero con más parámetros. o
PagarNax
Procedimient Ídem que Pagar pero con más parámetros. o
AnularCobro
Procedimient Anular el cobro de un vencimiento. o
AnularPago
Procedimient Anular el pago de un vencimiento. o
AnularRecepcion
Procedimient Anular la recepción de un efecto. o
AnularEnvio
Procedimient Anular el envío de un efecto. o
AnularBloqueo
Procedimient Anular el bloqueo de un efecto. o
AnularImputacion
Procedimient Anular la imputación de gastos de una devolución o al cliente.
AnularDevolucion
Procedimient Anular una devolución. o
AnularActualizacionRies Procedimient Anular la actualización de riesgo de un efecto al
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 217 go
o
descuento.
Ligar
Procedimient Ligar un conjunto de efectos de cartera con una o factura.
Desligar
Procedimient Ligar un conjunto de efectos de cartera con una o factura.
CobrarRemesa
Procedimient Cobrar una remesa. o
AnularCobroRemesa
Procedimient Anular el cobro de una remesa. o
PagarRemesa
Procedimient Pagar una remesa (a proveedores). o
AnularPagoRemesa
Procedimient Anular el pago de una remesa (a proveedores). o
procedure Cobrar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString); Procedimiento creado para cobrar un efecto de nexus generando las repercusiones contables si así se indica en los parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
bDescue
Indica si se trata de un cobro al descuento.
sNumCta
Indica el nº de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sCtaRiesgo
Indica el nº de cuenta de deudas por efectos al descuento del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sFecha
Fecha del cobro.
sCodBan
Código del banco.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 218
procedure CobrarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; nImporte: Currency; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); Procedimiento creado para cobrar un efecto de nexus generando las repercusiones contables si así se indica en los parámetros. Funcionamiento igual que Cobrar pero con más parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
bDescue
Indica si se trata de un cobro al descuento.
nImporte
Importe que se cobra. No tiene que coincidir con el del vencimiento (tiene que ser menor o igual). Si no coincide lo tratará como un cobro parcial.
sNumCta
Indica el nº de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sCtaRiesgo
Indica el nº de cuenta de deudas por efectos al descuento del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sFecha
Fecha del cobro.
sFechaValor
Fecha valor del cobro.
sCodBan
Código del banco.
nCambio
Cambio entre la moneda del cobro y la moneda principal.
sCtaGastos
Cuenta de gastos del cobro.
nGastos
Gastos imputados al cobro. (Se incluirán en el asiento).
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número de documento del asiento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 219
procedure Pagar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRie: WideString; sFecha: WideString; sCodBan: WideString); Procedimiento creado para pagar un efecto de nexus generando las repercusiones contables si así se indica en los parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
sNumCta
Indica el nº de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sFecha
Fecha del pago.
sCodBan
Código del banco.
procedure PagarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; nImporte: Currency; sNumCta: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); Procedimiento creado para pagar un efecto de nexus generando las repercusiones contables si así se indica en los parámetros. Funcionamiento igual que Pagar pero con más parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
nImporte
Importe que se cobra. No tiene que coincidir con el del vencimiento (tiene que ser menor o igual). Si no coincide lo tratará como un cobro parcial.
sNumCta
Indica el nº de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parámetro sCodBan).
sFecha
Fecha del pago.
sFechaValor
Fecha valor del pago.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 220 sCodBan
Código del banco.
nCambio
Cambio entre la moneda del cobro y la moneda principal.
sCtaGastos
Cuenta de gastos del cobro.
nGastos
Gastos imputados al cobro. (Se incluirán en el asiento).
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número de documento del asiento.
procedure Recibir( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString); Procedimiento creado para contabilizar la recepción de un efecto generando las repercusiones contables si así se indica en los parámetros. Parámetros:
nNumCart
Número del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
sFecha
Fecha de la recepción..
procedure RecibirNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; sNumDoc: WideString); Procedimiento creado para recibir un efecto generando las repercusiones contables si así se indica en los parámetros. Funcionamiento igual que Recibir pero con más parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
sFecha
Fecha de la recepción.
sFechaValor
Fecha valor de la recepción.
sNumDoc
Número de documento del asiento.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 221
procedure Enviar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha, sFechaValor, sNumDoc: WideString); Procedimiento creado para enviar un efecto generando las repercusiones contables si así se indica en los parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
sFecha
Fecha del envío.
sFechaValor
Fecha valor del envío.
sNumDoc
Número de documento del asiento.
procedure Bloquear(nNumCart: Currency; nNumVen: Integer); Procedimiento creado para bloquear un efecto y evitar así que se realicen operaciones de cartera Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
procedure ActualizarRiesgo( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha, sNumDoc: WideString); Procedimiento creado para bloquear un efecto y evitar así que se realicen operaciones de cartera Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
sFecha
Fecha de la actualización de riesgo.
sNumDoc
Número de documento contable.
procedure Devolver( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; nImpDev, nGastos: Currency; sCtaGastos: WideString; sCentro1, sCentro2, sCentro3, sNumDoc: WideString); Procedimiento creado para devolver total o parcialmente un efecto de nexus generando las repercusiones contables si así se indica en los parámetros.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 222 Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
bDescue
Indica si se trata de un cobro al descuento.
sFecha
Fecha de la devolución.
sFechaValor
Fecha valor de la devolución.
nImpDev
Importe de la devolución. No tiene que coincidir con el del vencimiento (tiene que ser menor o igual). Si no coincide lo tratará como una devolución parcial.
nGastos
Gastos imputados a la devolución. (Se incluirán en el asiento). Estos gastos se consideran gastos de la empresa y no del cliente.
sCtaGastos
Cuenta de gastos de la devolución.
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número de documento del asiento.
procedure ImputarGastos( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha, sFechaValor: WideString; nGastos: Currency; sCtaGastos: WideString; sCentro1, sCentro2, sCentro3,sNumDoc: WideString); Procedimiento creado para imputar los gastos de la devolución al cliente tot al o parcialmente generando las repercusiones contables si así se indica en los parámetros. Parámetros:
nNumCart
Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Campo NUMVEN de la tabla CARTERA.
bGenRep
Indica si se desean generar repercusiones contables.
sFecha
Fecha de la imputación de gastos.
sFechaValor
Fecha valor de la imputación de gastos.
nGastos
Gastos imputados al cliente (Se incluirán en el asiento).
sCtaGastos
Cuenta de gastos de la imputación.
sCentro1
Centro de coste 1.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 223 sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número de documento del asiento.
procedure CrearAnticipo ( bEsCobro: WordBool; sCodCliPro, sCodBan: WideString; sDocPag, sTipCon,sCodMon, sFecVen: WideString; sFecCon: WideString; nImpMon: Currency; Obs: WideString); Procedimiento para crear un anticipo de cliente o a proveedor. Parámetros:
bEsCobro
Indica si es de cobro (True) o de pago (False).
sCodCliPro
Código del cliente o proveedor.
sCodBan
Código del banco.
sDocPag
Documento de pago.
sTipCon
Tipo contable.
sCodMon
Código de la moneda.
sFecVen
Fecha del anticipo.
sFecCon
Fecha de la repercusión contable.
nImpMon
Importe del anticipo en la moneda indicada.
Obs
Observaciones del anticipo.
procedure CrearAnticipoNax ( bEsCobro: WordBool; sCodCliPro: WideString; sCodBan, sDocPag, sTipCon,sCodMon: WideString; sFecVen, sFecCon: WideString; nImpMon: Currency; Obs: WideString; sNumDoc: WideString); Procedimiento para crear un anticipo de cliente o a proveedor. Es el mismo que CrearAnticipo pero con el parámetro adicional del campo nº de documento de los asientos contables. Parámetros:
bEsCobro
Indica si es de cobro (True) o de pago (False).
sCodCliPro
Código del cliente o proveedor.
sCodBan
Código del banco.
sDocPag
Documento de pago.
sTipCon
Tipo contable.
sCodMon
Código de la moneda.
sFecVen
Fecha del anticipo.
sFecCon
Fecha de la repercusión contable.
nImpMon
Importe del anticipo en la moneda indicada.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 224 Obs
Observaciones del anticipo.
sNumDoc
Nº de documento en contabilidad.
procedure ACuenta( bEsCobro: WordBool; nIdFact: Currency; nNumAnti: Currency; sCodMon: WideString; nImpACuentaMon: Currency); Procedimiento para cancelar un anticipo contra un vencimiento de una factura. El resto de los vencimientos se mantienen. El proceso para añadir un vencimiento a cuenta de una factura es: 1. Crear la factura. 2. Crear los vencimientos con el importe (Total documento – entregado a cuenta). 3. Ligar la factura y los vencimientos. 4. Usa la función ACuenta para completar los registros de cartera de la factura. Parámetros:
bEsCobro
Indica si es de cobro (True) o de pago (False).
nIdFact
Identificador de la factura. Se identifica con el campo IDFACV o IDFACC de las tablas CABEFACV o CABEFACC respectivamente en función de si se trata de una venta o una compra.
nNumAnti
Identificador del anticipo. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
sCodMon
Código de la moneda
nImpACuentaMon
Importe a cuenta en la moneda indicada.
Como es costumbre en nexus, todo aquello que puede hacerse también puede anularse. A continuación se presentan todos los procedimientos que anulan las operaciones descritas hasta el momento.
procedure AnularCobro( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con los procedimientos Cobrar o CobrarNax. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularPago( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con los procedimientos Pagar o PagarNax. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 225 nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularRecepcion( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con los procedimientos Recibir o RecibirNax. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularEnvio( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con el procedimiento Enviar. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularBloqueo( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con el procedimiento Bloquear. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularDevolucion( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con el procedimiento Devolver. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure AnularImputacion( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con el procedimiento ImputarGastos. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 226
procedure AnularActualizacionRiesgo( nNumCart: Currency; nNumVen: Integer); Anula la operación realizada con el procedimiento ActualizarRiesgo. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Número del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.
Las dos funciones que siguen a continuación son las que ligan o desligan la cartera con su factura. Si los efectos están ligados con una factura se consideran automáticos, en caso contrario no. Si los efectos no están ligados con la factura, al modificar la factura no se tocarán los vencimientos, en caso contrario se modificarán en función de las nuevas condiciones establecidas en la cabecera del documento.
procedure Ligar(nNumCart: Currency; nIdFact: Currency; bEsCobro: WordBool); Ligar un conjunto de efectos de cartera con una factura. Parámetros:
nNumCart
Número del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nIdFact
Identificador de la factura de compra (IDFACC) o de venta (IDFACV) pertenecientes a las tablas CABEFACC y CABEFACV respectivamente en función del valor del parámetro bEsCobro.
bEsCobro
Indica si se trata de un cobro (True) o un pago (False).
procedure Desligar( nIdFact: Currency; bEsCobro: WordBool); Desliga la factura del conjunto de efectos en cartera con el que esté ligado en ese momento. Parámetros:
nIdFact
Identificador de la factura de compra (IDFACC) o de venta (IDFACV) pertenecientes a las tablas CABEFACC y CABEFACV respectivamente en función del valor del parámetro bEsCobro.
bEsCobro
Indica si se trata de un cobro (True) o un pago (False).
Los siguientes procedimientos son los que permiten realizar y anular operaciones con las remesas tanto de cobros como de pagos.
procedure CobrarRemesa( nRemesa: Currency; bGenRep: WordBool; bAlDescuento: WordBool; sCtaBanco: WideString; sCtaRiesgo, sFecha, sFechaValor, sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1, sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 227 Procedimiento que permite cobrar una remesa entera. Parámetros:
nRemesa
Nº de remesa
bGenRep
Indica si se desean repercusiones contables.
bAlDescuento
Indica si la remesa se lleva al descuento.
sCtaBanco
Cuenta del banco donde se ingresa la remesa. Si se deja en blanco se utiliza la cuenta del banco indicado en el parámetro sCodBan.
sCtaRiesgo
Cuenta de riesgo bancario. Si se deja en blanco se utiliza la cuenta del banco indicado en el parámetro sCodBan.
sFecha
Fecha de la remesa.
sFechaValor
Fecha valor de la remesa.
sCodBan
Código del banco.
nCambio
Cambio entre la moneda de la remesa y la principal.
sCtaGastos
Cuenta de gestos de la remesa.
nGastos
Gastos de la remesa.
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número del documento contable.
procedure PagarRemesa( nRemesa: Currency; bGenRep: WordBool; sCtaBanco, sFecha, sFechaValor, sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1, sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); Procedimiento que permite pagar una remesa de proveedores. Parámetros:
nRemesa
Nº de remesa
bGenRep
Indica si se desean repercusiones contables.
sCtaBanco
Cuenta del banco donde se ingresa la remesa. Si se deja en blanco se utiliza la cuenta del banco indicado en el parámetro sCodBan.
sFecha
Fecha de la remesa.
sFechaValor
Fecha valor de la remesa.
sCodBan
Código del banco.
nCambio
Cambio entre la moneda de la remesa y la principal.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 228 sCtaGastos
Cuenta de gestos de la remesa.
nGastos
Gastos de la remesa.
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sNumDoc
Número del documento contable.
procedure AnularCobroRemesa( nRemesa: Currency); Procedimiento que permite anular el cobro de une remesa realizado con el procedimiento CobrarRemesa. Parámetros:
nRemesa
Nº de remesa
procedure AnularPagoRemesa( nRemesa: Currency); Procedimiento que permite anular el pago de une remesa de proveedores realizado con el procedimiento PagarRemesa. Parámetros:
nRemesa
Nº de remesa
OBJETO AGRUPACION Interface Agrupación property Estado: EstadoMaestro readonly; procedure Iniciar; procedure Acabar; procedure Nueva( bEsCobro: WordBool; sFecha, sFecVen, sCodCliPro, sDocPag: WideString; sCodBan, sCodMon, sTipoCont: WideString); procedure Modifica( nNumAgru: Currency); procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer); procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer); function Anade: Currency; procedure Cancela; procedure Borrar(nNumAgru: Currency); (NUEVO 802B) Propiedades
Tipo
Descripción
Estado
EstadoMaestr o
Devuelve el estado en que se encuentra el objeto Agrupacion
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 229
Métodos
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto agrupación o
Acabar
Procedimient Cierra el objeto agrupación o
Nueva
Procedimient Inicia una nueva agrupación o
Modifica
Procedimient Prepara la agrupación para poder añadir y quitar efectos. o
Borrar
Procedimient Borrar un agrupación entera. o
AnadirEfecto
Función
QuitarEfecto
Procedimient Elimina efectos de la agrupación. o
Anade
Procedimient Añade los efectos a la base de datos. o
Cancela
Procedimient Cancela la edición de la agrupación. o
Añade efectos en la agrupación.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Agrupación cerrada. No se puede usar. ESTM_ACTIVO: Agrupación activa. Podemos añadir, borrar, modificar. ESTM_NUEVO: Agrupación en estado de inserción/eliminación de un nuevos efectos en una agrupación nueva. ESTM_EDICION: Agrupación en estado modificación, podemos añadir y quitar efectos en una agrupación que ya existía. Parámetros:
(ninguno)
Valor retornado
EstadoMaestro
Retorna el estado de la agrupación (conjunto de vencimientos).
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la agrupación pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 230
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nueva( bEsCobro: WordBool; sFecha, sFecVen, sCodCliPro: WideString; sDocPag, sCodBan, sCodMon, sTipoCont: WideString); Prepara el objeto agrupación para recibir nuevos efectos. El estado cambia de ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
bEsCobro
Indica si la agrupación es de cobros (True) o pagos (False).
sFecha
Fecha en que se crea la agrupación.
sFechaVen
Vencimiento de la agrupación.
sCodCliPro
Código del cliente o proveedor.
sDocPag
Documento de pago.
sCodBan
Código del banco.
sCodMon
Código de la moneda.
sTipoCont
Tipo contable.
Procedure Modifica( nNumAgru: Currency); Prepara una agrupación para poder añadir o quitar efectos en ella. Parámetros:
nNumAgru
Identificador de la agrupación. Se corresponde con el campo NUMAGRU de la tabla CARTERA.
Procedure Borrar( nNumAgru: Currency); Borrar una agrupación. Parámetros:
nNumAgru
Identificador de la agrupación. Se corresponde con el campo NUMAGRU de la tabla CARTERA.
procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer); Añade el efecto indicado en la agrupación. Parámetros:
nNumCart
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 231
procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer); Quita el efecto indicado de la agrupación. Parámetros:
nNumCart
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.
function Anade: Currency; Mediante este procedimiento se termina la edición de una agrupación y se guarda su contenido en la base de datos. Cambia el estado de ESTM_NUEVO o ESTM_EDICION a ESTM_ACTIVO. Valor retornado:
Currency
Identificador de la agrupación. Se corresponde con el campo NUMAGRU de la tabla CARTERA.
procedure Cancela; Cancela la los efectos que se hayan añadido o quitado en la agrupación desde que se llamó a la función Nueva o Modificar.. Pasa de un estado ESTM_NUEVO o ESTM_EDICION a un estado ESTM_ACTIVO.
OBJETO REMESA Interface Remesa property Estado: EstadoMaestro readonly; procedure Iniciar; procedure Acabar; procedure Nueva( bEsCobro: WordBool; sFecha, sCodBan, sCodMon,sTipoCont: WideString; bDescue: WordBool); procedure Modifica( nNumReme: Currency); procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer); procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer); function Anade: Currency; procedure Cancela; Propiedades
Tipo
Descripción
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 232 Estado
EstadoMaestr o
Devuelve el estado en que se encuentra el objeto Remesa
Métodos
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto remesa o
Acabar
Procedimient Cierra el objeto remesa o
Nueva
Procedimient Inicia una nueva remesa. o
Modifica
Procedimient Prepara la remesa para poder añadir y quitar efectos. o
AnadirEfecto
Función
QuitarEfecto
Procedimient Elimina efectos de la remesa. o
Anade
Procedimient Añade los efectos a la base de datos. o
Cancela
Procedimient Cancela la edición de la remesa. o
Añade efectos en la remesa.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Remesa cerrada. No se puede usar. ESTM_ACTIVO: Remesa activa. Podemos añadir, borrar, modificar. ESTM_NUEVO: Remesa en estado de inserción/eliminación de un nuevos efectos en una remesa nueva. ESTM_EDICION: Remesa en estado modificación, podemos añadir y quitar efectos en una remesa que ya existía. Parámetros:
(ninguno)
Valor retornado
EstadoMaestro
Retorna el estado de la cartera (conjunto de vencimientos).
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la remesa pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 233
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nueva( bEsCobro: WordBool; sFecha, sCodBan, sCodMon: WideString; sTipoCont : WideString; bDescue: WordBool); Prepara la remesa para añadir efectos en ella. El estado pasa de ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
bEsCobro
Indica si la remesa es de cobros (True) o pagos (False).
sFecha
Fecha en que se crea la remesa.
sCodBan
Código del banco.
sCodMon
Código de la moneda.
sTipoCont
Tipo contable.
bDscue
Indica si la remesa es al descuento.
Procedure Modifica( nNumReme: Currency); Prepara una remesa para poder añadir o quitar efectos en ella. Parámetros:
nNumReme
Identificador la remesa. Se corresponde con el campo NUMREME de la tabla CARTERA.
procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer); Añade el efecto indicado en la remesa. Parámetros:
nNumCart
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.
procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer); Quita el efecto indicado de la remesa. Parámetros:
nNumCart
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.
nNumVen
Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 234
function Anade: Currency; Mediante este procedimiento se termina la edición de una remesa y se guarda su contenido en la base de datos. Cambia el estado de ESTM_NUEVO o ESTM_EDICION a ESTM_ACTIVO. Valor retornado:
Currency
Identificador de la remesa. Se corresponde con el campo NUMREME de la tabla CARTERA.
procedure Cancela; Cancela la los efectos que se hayan añadido o quitado en la remesa desde que se llamó a la función Nueva o Modificar.. Pasa de un estado ESTM_NUEVO o ESTM_EDICION a un estado ESTM_ACTIVO.
OBJETO OPERACIONESINMOVILIZADO Interface OperacionesInmovilizado procedure Amortizar( sCodigo: WideString; sFecha: WideString); procedure Contabilizar( sCodigo: WideString; sFecha: WideString); procedure AnularAmortizacion( sCodigo: WideString; sFecha: WideString); procedure AnularContabilizacion( sCodigo: WideString; sFecha: WideString); procedure BajaElemento( sCodigo: WideString; sFecha: WideString; nValor: Currency; sMotivo: WideString); procedure AnularCancelar( sCodigo: WideString); Métodos
Tipo
Descripción
Amortizar
Procedimient Amortiza una cuota determinada. o
Contabilizar
Procedimient Genera las repercusiones contables de una cuota o determinada.
AnularAmortizacion
Procedimient Anula la amortización ya realizada. o
AnularContabilizacio Procedimient Anula la contabilización ya realizada. n o BajaElemento
Procedimient Cancela la amortización de un inmovilizado. A partir o del momento en que se ejecute este procedimiento no se amortizarán más cuotas.
AnularCancelar
Procedimient Anula la cancelación realizada mediante el o procedimiento Cancelar.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 235
procedure Amortizar( sCodigo: WideString; sFecha: WideString); Amortiza una cuota determinada. Parámetros:
sCodigo
Código del inmovilizado.
sFecha
Fecha de la cuota a amortizar.
procedure Contabilizar( sCodigo: WideString; sFecha: WideString); Genera las repercusiones contables de una cuota determinada. Parámetros:
sCodigo
Código del inmovilizado.
sFecha
Fecha de la cuota a contabilizar.
procedure AnularAmortizacion( sCodigo: WideString; sFecha: WideString); Anula la amortización ya realizada. Parámetros:
sCodigo
Código del inmovilizado.
sFecha
Fecha de la cuota.
procedure AnularContabilizacion( sCodigo: WideString; sFecha: WideString); Anula la contabilización ya realizada. Parámetros:
sCodigo
Código del inmovilizado.
sFecha
Fecha de la cuota.
procedure BajaElemento( sCodigo: WideString; sFecha: WideString; nValor: Currency; sMotivo: WideString); Cancela la amortización de un inmovilizado. A partir del momento en que se ejecute este procedimiento no se amortizarán más cuotas. Parámetros:
sCodigo
Código del inmovilizado.
sFecha
Fecha de la cancelación
nValor
Valor residual del inmovilizado.
sMotivo
Motivo de la baja.
procedure AnularCancelar( sCodigo: WideString); Anula la cancelación del inmovilizado. Parámetros:
sCodigo
Código del inmovilizado.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 236
OBJETO PRESUPUESTO Objeto que permite la creación, c reación, modificación de presupestos
Interface Presupuesto property Mes[nMes: Integer]: Currency; procedure Iniciar; procedure Acabar; procedure Nuevo( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString; nImporte: Currency); procedure Modifica( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString); procedure Anade; Propiedades
Tipo
Descripción
Mes[ nMes]
Currency
Se usa para introducir el presupuesto del mes especificado en la variable nMes.
Métodos
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto presupuesto o
Acabar
Procedimient Cierra el objeto presupuesto o
Nuevo
Procedimient Inicia un presupuesto para una cuenta contable. o
Modifica
Procedimient Prepara el objeto para poder modificar el presupuesto o mensual de la cuenta indicada.
Anade
Procedimient Añade el presupuesto a la base de datos. o
property Mes[nMes: Integer]: Currency; Currency; Esta propiedad nos permite especificar el presupuesto del mes indicado en el parámetro nMes. Parámetros:
nMes
Mes del ejercicio.
Valor retornado
Currency
Presupuesto del mes indicado.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 237
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para poder trabajar con el presupuesto.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. o bjeto.
procedure Nuevo( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString; nImporte: Currency); Prepara el objeto para añadir el presupuesto mensual. Parámetros:
sCuenta
Cuenta de la que desea introducirse el presupuesto.
nEjercicio
Ejercicio al que pertenece el presupuesto.
sTipoContable
Tipo contable
sCentro1
Centro de coste 1.
scentro2
Centro de coste 2.
scentro3
Centro de coste 3.
sMoneda
Moneda
nImporte
Importe total del ejercicio.
procedure Modifica( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString); Prepara la cuenta para modificar su presupuesto. Parámetros:
sCuenta
Cuenta de la que desea introducirse el presupuesto.
nEjercicio
Ejercicio al que pertenece el presupuesto.
sTipoContable
Tipo contable
sCentro1
Centro de coste 1.
sCentro2
Centro de coste 2.
sCentro3
Centro de coste 3.
sMoneda
Moneda
procedure Anade;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 238 Mediante este procedimiento se termina la edición de un presupuesto y se guarda su contenido en la base de datos.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 239
OBJETO OPCION El objeto Opcion permite llamar a las opciones visuales de nexus. Cada una de estas opciones tiene un identificador único y un conjunto de parámetros.
Interface Opcion property IdOpcion: WideString writeonly; writeonly; procedure Iniciar; procedure Acabar; procedure AnadirParametro(const AnadirParametro(const sNombre: WideString; const sValor: WideString); procedure Ejecutar;
property IdOpcion: WideString writeonly; Texto que identifica a cada opción de forma única.
procedure Iniciar; Reserva los recursos para que el objeto pueda funcionar correctamente.
procedure Acabar; Libera los recursos del objeto.
procedure AnadirParametro( sNombre: WideString; sValor: WideString); Añade parámetros con su correspondiente valor. En función del valor de estos parámetros la opción tendrá diferentes comportamientos. Parámetros:
sNombre
Nombre del parámetro
sValor
Valor del parámetro. Siempre es de tipo string.
Procedure Ejecutar; Llama a la opción visual de nexus que tiene t iene el identificador de la propiedad IdOpcion con los parámetros añadidos con AnadirParametro. AnadirParametro.
OBJETO LISTADO Objeto que permite realizar informes pasando los parámetros deseados directamente.
Interface Listado
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 240 property IdListado: WideString writeonly; writeonly; property Fichero: WideString writeonly; writeonly; property Parametros: OleVariant readonly; readonly; property Destino: DestinoListado writeonly; writeonly; property Copias: Integer writeonly; writeonly; property Impresora: WideString writeonly; writeonly; property Bandeja: WideString writeonly; writeonly; property Modelo: WideString writeonly; writeonly; property MostrarProgreso: WordBool; property IncluirFirmaDigital: WordBool; (NJEVO 802C) procedure Iniciar; procedure Acabar; procedure Definir; procedure AnadirParametro(sNombre: AnadirParametro(sNombre: WideString; sValor: WideString); procedure Imprimir;
DestinoListado (Tipo enumerado) Valor
Significado
destImpresora 0
Impresora
destHTML
1
Fichero en formato HTML
destPDF
2
Fichero en formato PDF
destRTF
3
Fichero en formato RTF
destJPG
4
Fichero en formato JPG
destGIF
5
Fichero en formato GIF
destBMP
6
Fichero en formato BMP
destEMF
7
Fichero en formato EMF
destWMF
8
Fichero en formato WMF
destPantalla
9
Presentación preliminar
property IdListado: WideString writeonly; w riteonly; Texto que identifica a cada listado de forma única.
property Parametros: OleVariant readonly;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 241 Valor retornado:
Variant representando un array.
[0] Nº de parámetros (n). [1..n][0] Nombre del parámetro. [1..n][1] Descripción del parámetro.
property Destino: DestinoListado writeonly; w riteonly; Destino del listado a elegir dentro de los posibles destinos especificados en el tipo enumerado DestinoListado.
property Fichero: WideString writeonly; Si se ha elegido un Destino que se refiere a un fichero debe indicarse aquí la ruta y el nombre del fichero.
property Copias: integer writeonly; Nº de copias a imprimir. Sólo tiene validez si el destino es destImpresora. destImpresora.
property Impresora: WideString writeonly; Nombre de la impresora en la que se imprimirá el listado.
property bandeja: WideString writeonly; w riteonly; Nombre de la bandeja de la impresora por la que saldrá el listado. list ado.
property modelo: WideString writeonly; Nombre del modelo a imprimir o nombre del fichero en el que se encuentra dicho modelo. Ejemplo: 1. Listado de clientes por provincia 2. lstcli.003
property MostrarProgreso: WordBool; Para indicar o comprobar si el listado tiene la barra de progeso activa.
property IncluirfirmalDigital: WordBool; Si el destino del listado es destPDF y en los datosgenerales tenemos especificada el fichero con la firma digital, automáticamente se incluirá la firma digital en el fichero PDF. Con esta propiedad podemos indicar si, en el caso anterior, no queremos incluir la firma digital al fichero PDF.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 242
procedure Iniciar; Reserva los recursos para que el objeto pueda funcionar correctamente.
procedure Acabar; Libera los recursos del objeto.
Procedure Definir; Permite definir el listado especificado en IdListado.
procedure AnadirParametro( sNombre: WideString; sValor: WideString); Añade parámetros con su correspondiente valor. En función del valor de estos parámetros el listado tendrá diferentes comportamientos. Parámetros:
sNombre
Nombre del parámetro
sValor
Valor del parámetro. Siempre es de tipo string.
Procedure Imprimir; Llama a la impresión visual de nexus que tiene el identificador de la propiedad IdListado con los parámetros añadidos con AnadirParametro.
OBJETO ESTRUCTURA Objeto que permite la creación, modificación y borrado de estructuras (escandallos).
Interface Estructura property Estado: EstadoMaestro readonly; property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; procedure Iniciar; procedure EditarEstructura( sCodArt:WideString); procedure Acabar; procedure Cancelar; procedure CambiarUnidades( nUnidades:Double); procedure Guardar;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 243 procedure ActualizarCostes; function CosteFabricacion: double; procedure AnadeFase(const sFase: WideString; const sNomFase: WideString); procedure AnadeComponente(const sFase: WideString; const sCodArt: WideString;nUnidades:double); procedure AnadePerfilOperario(const sFase: WideString; const PerfilO: WideString; sTiempo:WideString); procedure AnadePerfilMaquina(const sFase: WideString; const PerfilM: WideString; sTiempo:WideString); procedure EditarElemento(nNumLin: Currency); procedure BorrarFase(const sFase: WideString); procedure BorrarElemento(nNumLin: Currency); function ListaComponentes (const sCodArt: WideString; nUnidades: Currency) OleVariant;
Propiedades
Tipo
Descripción
AsString
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsInteger
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloat
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBoolean
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto Estructura ro
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
Cancelar
Procedimiento Cancela la edición de la estructura
Guardar
Procedimiento Guarda la estructura
CambiarUnidades Procedimiento Modifica las unidades a generar del producto acabado ActualizarCoste
Procedimiento Recalcula el precio de coste de los componentes
CosteFabricacion
Función
AnadeFase
Procedimiento Añade una nueva fase a la estructura
Devuelve el coste del producto acabado.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 244 AnadeComponent Procedimiento Añade un nuevo componente a la estructura en la fase e especificada. AnadePerfilOpera Procedimiento Añade un nuevo perfil de operario a la estructura en la rio fase especificada. AnadePerfilMaqui Procedimiento Añade un nuevo perfil de máquina a la estructura en la na fase especificada. EditarElemento
Procedimiento Permite editar un componente o perfil ya existente de la estructura.
BorrarElemento
Procedimiento Permite borrar un componente o perfil de la estructura.
BorrarFase
Procedimiento Permite borrar una fase y su contenido de la estructura
EditarEstructura
Procedimiento Carga, si existe, la estructura del artículo solicitado.
ListaComponente Function s
Devuelve las hojas de la estructura
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del documento. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: Los campos de tiempo se han de asignar como cadenas de texto como ’hh:mm:ss’
property AsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es string. Parámetros:
SCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es entero. Parámetros:
SCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloat [ sCampo:String]: Double
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 245 A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parámetros:
SCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBoolean[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es lógico. Parámetros:
SCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar estructuras.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Estructura cerrada. No se puede usar. ESTM_ACTIVO: Estructura activa. Podemos añadir, borrar, modificar. ESTM_NUEVO: Estructura en estado de inserción de un nuevo registro. ESTM_EDICION: Estructura en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la estructura pueda ser usada.. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure EditarEstructura( sCodArt:String); Este procedimiento es que carga la estructura del código de artículo que queremos editar o crear su estructura.
procedure Acabar;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 246 Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Cancelar; Cancela los cambios realizados. Pasa a estado ESTM_ACTIVO.
procedure CambiarUnidades( nUnidades: Double); Cambia las unidades que se obtendrán en la fabricación del producto acabado.
Procedure Guardar; Almacena los valores de los campos en la base de datos con los cambios introducidos por el programador. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure ActualizarCostes; Recalcula los costes de todos los componentes del artículo a fabricar.
Funcion CosteFabricacion:double; Devuelve el coste unitario de fabricación del producto acabado.
Procedure AnadeFase( sFase, sNomFase:String; Crea una fase en la estructura actual. Parámetros:
sFase
Código de la fase
SNomFase
Nombre descriptivo de la fase
Procedure AnadeComponente( sFase, sCodArt: string; nUnidades: double); Crea un nuevo componente en la fase especificada con las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
sFase
Código de la fase.
sCodArt
Código de artículo.
NUnidades
Unidades a consumir del componente.
Procedure AnadePerfilOperario( sFase, sPerfilO, sTiempo: string);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 247 Crea un nuevo perfil de operario en la fase especificada con las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
Sfase
Código de la fase.
SPerfilO
Código de perfil de operario
STiempo
Tiempo a consumir del perfil ( en formato hh:mm:ss)
Procedure AnadePerfilMaquina( sFase, sPerfilM, sTiempo: string); Crea un nuevo perfil de máquina en la fase especificada con las unidades indicadas. A partir de ese momento podremos editar los valores de la línea. Parámetros:
Sfase
Código de la fase.
SperfilM
Código de perfil de máquina
Stiempo
Tiempo a consumir del perfil ( en formato hh:mm:ss)
procedure EditarElemento(nNumLin: Currency); Busca y pone el componente o perfil indicado en el parámetro nNumLin en edición, preparado para editar el contenido de sus campos. Parámetros:
NNumLin
Identificador de la línea.. Se corresponde con el campo NUMLIN del fichero ESCANDALLO.
procedure BorrarFase(sFase: string); Borra la fase indicada así como todos sus componentes y perfiles. Parámetros:
SFase
Código de la fase a borrar.
procedure BorrarElemento(nNumLin: Currency); Borra el componente o perfil correspondiente a dicho identificador. Parámetros:
nNumLin
Identificador de la línea ( campo NumLin de la tabla ESCANDALLO)..
function ListaComponentes(const sCodArt: WideString: nUnidades: Currency) OleVariant; Devuelve lista de las estructura de un artículo, a partir de las unidades indicadas Parámetros:
sCodArt
Identificador del código del artículo
nUnidades
Nº de unidades
OBJETO ORDENPRODUCCION Objeto que permite la creación, modificación, evolución y borrado de órdenes de produccion.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 248
Interface OrdenProduccion Procedure Iniciar; procedure Acabar; procedure Nuevo( sFecha:WideString); procedure Borra( nIdProd:Currency); procedure Modifica( nIdProd:Currency); function Anade:currency; procedure Cancela; function NuevoProducto(const sCodArt: WideString;nUnidades:double):Currency; function NuevaFase(nIdLinP:Currency; const sFase: WideString; const sNomFase: WideString):Currency; function NuevoComponente(nIdFase:Currency; const sCodArt: WideString;nUnidades:double; lEsFinal:wordbool):Currency; function NuevoOperario(nIdFase:Currency; const PerfilO: WideString; sTiempo:WideString):Currency; function NuevaMaquina(nIdFase:Currency; const PerfilM: WideString; sTiempo:WideString):Currency; procedure EditarLinea(nIdLinP: Currency); procedure BorrarFase(nIdFase:Currency); procedure BorrarLinea(nIdLinP: Currency); procedure FabricarOrden(const sFecha: WideString; const sTipoStock: WideString); procedure FabricarFase(nIdFase: Currency; const sFecha: WideString; const sTipoStock: WideString); procedure FabricarFaseProporcional(nIdFase: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); procedure FabricarProductoPrevisto(nIdLinP: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoProporcional(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoSinConsumir(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure ConsumirComponente(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 249 procedure ConsumirOperario(nIdLinP: Currency; const sCodEmp: WideString; const sTiempo: WideString; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure ConsumirMaquina(nIdLinP: Currency; const sCodMaq: WideString; const sTiempo: WideString; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoEnCurso(nIdLinC: Currency; nUnidades: Currency; const sCodAlm: WideString); safecall; procedure ConsumirComponenteEnCurso(nIdLinC: Currency; nUnidades: Currency; const sCodAlm: WideString); safecall; procedure ConsumirMaquinaEnCurso(nIdLinC: Currency; const sTiempo: WideString); safecall; procedure ConsumirOperarioEnCurso(nIdLinC: Currency; const sTiempo: WideString); safecall; procedure FabricarConsumirOperacionEnCurso(nIdLogP: Currency); safecall; procedure IndicarDetalle(nIdLogP, nIdLinP: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure AnadirDetalle(nIdLinC, nNumGrupo: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure CambiarDetalle(nIdLinC, nNumLin: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure BorrarDetalle(nIdLinC, nNumLin: Currency); safecall; procedure TerminarOrden(const sFecha: WideString); safecall; procedure TerminarFase(nIdFase: Currency; const sFecha: WideString); safecall; procedure TerminarLinea(nIdLinP: Currency; const sFecha: WideString); safecall; procedure DeshacerFabricacionProducto(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoComponente(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoMaquina(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoOperario(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerOperacion(nIdLogP: Currency); safecall; procedure DeshacerTerminarOrden; safecall; procedure DeshacerTerminarFase(nIdFase: Currency); safecall; procedure DeshacerTerminarLinea(nIdLinP: Currency); safecall; function NuevoTrabajo(const sFecha: WideString; const sMotivo: WideString): Currency; safecall; procedure AbrirTrabajo(nIdTrab: Currency); safecall; procedure CerrarTrabajo(nIdTrab: Currency; const sFecha: WideString); safecall;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 250 procedure BorrarTrabajo(nIdTrab: BorrarTrabajo(nIdTrab: Currency); safecall; Property TrabajoActivo: Currency readwrite; Property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Currency; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure CambiarUnidadesProducto( nIdLinP, nUnidades:currency); procedure ActualizarCostesComponentes;
Propiedades
Tipo
Descripción
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 251 TrabajoActivo
Currency
Asigna/lee la orden de trabajo activa
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto Estructura ro
AvisarStock
Lógico
Asignar valor para activar o no los mensajes de aviso de stock
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimient Inicia el objeto. o
Acabar
Procedimient Cierra el objeto. o
Cancela
Procedimient Cancela los cambios realizados en la orden. o
Nuevo
Procedimient Crea una nueva orden. o
Borra
Procedimient Borra la orden indicada. o
Modifica
Procedimient Carga la orden indicada para su edición. o
Anade
Función
Guarda y devuelve el identificador de la orden.
NuevaFase
Funcion
Añade una nueva fase al artículo especificado.
NuevoComponente
Funcion
Añade un nuevo componente a la fase especificada.
NuevoOperario
Funcion
Añade un nuevo perfil de operario a la fase especificada.
NuevaMaquina
Funcion
Añade un nuevo perfil de máquina a la fase especificada.
EditarLinea
Procedimient Busca y pone en edición el registro o especificado.
BorrarLinea
Procedimient Borra el registro especificado. o
BorrarFase
Procedimient Borra la fase especificada y todo su contenido. o
FabricarOrden
Procedimient Fabrica y consume todos los elementos de la o orden.
FabricarFase
Procedimient Fabrica y consume todos los elementos de la o fase especificada
FabricarF FabricarFasePr aseProporc oporcional ional
Procedimie Procedimient nt Fabrica Fabrica y consume consume proporcio proporcionalme nalmente nte a las
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 252 o
unidades del artículo al que pertenece todos los elementos de la fase especificada
FabricarProductoPrevisto
Procedimient Fabrica y consume todos los o componentes/tiempos del producto acabado especificado.
FabricarProductoProporcional
Procedimient Fabrica y consume todos los o componentes/tiempos del producto acabado especificado proporcionalmente a las unidades a fabricar.
FabricarProductoSinConsumir
Procedimient Solo fabrica el producto acabado especificado, o sin rebajar los componentes.
ConsumirComponente
Procedimient Consume unidades del componente o especificado.
ConsumirOperario
Procedimient Consume tiempo del operario especificado. o
ConsumirMaquina
Procedimient Consume tiempo de la máquina especificada. o
FabricarProductoEnCurso
Procedimient Hace la fabricación de un producto acabado en o una orden de trabajo.
ConsumirComponteEnCurso
Procedimient Hace el consumo de un componente en una o orden de trabajo.
ConsumirMaquinaEnCurso
Procedimient Hace el consumo de una máquina en una o orden de trabajo.
ConsumirOperarioEnCurso
Procedimient Hace el consumo de un operario en una orden o de trabajo.
FabricarConsumirOperarionEnC Procedimient Hace la fabricación y consumos de una urso o operación de una orden de trabajo. IndicarDetalle
Procedimient Permite indicar los números de serie / lotes / … al fabricar / consumir, cuando no se conoce o el identificadore de la línea de consumo / fabricación porque todavía no se ha grabado en la base de datios
AnadirDetalle
Procedimient Permiter añadir líneas de detalle donde se o indica el número de serie / lote / … cuando se conoce el identificador de la línea de consumo / fabricación
CambiarDetalle
Procedimient Permite cambiar líneas de detalle cuando se o conoce el identificador de la línea de consumo / fabricación
BorrarDetalle
Procedimient Permite borrar líneas de detalle cuando se o conoce el identificador de la línea de consumo / fabricación
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 253 TerminarOrden
Procedimient Da por finalizada la orden de producción. o
TerminarFase
Procedimient Da por finalizada la fase especificada. o
TerminarLinea
Procedimient Da por finalizada la línea especificada. o
DeshacerFabricacionProducto
Procedimient Borra la fabricación especificada. o
DeshacerConsumoComponente Procedimient Borra el consumo de componente o especificado. DeshacerConsumoMaquina
Procedimient Borra el consumo de máquina especificada. o
DeshacerConsumoOperario
Procedimient Borra el consumo de operario especificado. o
DeshacerOperacion
Procedimient Borra todas las acciones de la operación o especificada.
DeshacerTerminarOrden
Procedimient Deshace la finalización de la orden. o
DeshacerTerminarFase
Procedimient Deshace la finalización de la fase. o
DeshacerTerminarLinea
Procedimient Deshace la finalización de la línea. o
NuevoTrabajo
Funcion
AbrirTrabajo
Procedimient Abre una orden de trabajo. o
CerrarTrabajo
Procedimient Cierra una orden de trabajo. o
BorrarTrabajo
Procedimient Borra una orden de trabajo. o
CambiarUnidadesProducto
Procedimient Modifica las unidades a fabricar de un o producto acabado.
ActualizarCostesComponentes
Procedimient Carga los costes de los componentes de la o orden con los precios actuales.
Crea una nueva orden de trabajo
La tablas que intervienen en los procesos así como las relaciones entre éllas son las siguientes: Tabla:
CABEPROD
Cabecera de órdenes de producción.
Campos clave:
IDPROD
Identificador de orden de producción
Tabla:
LINEPROD
Líneas de órdenes de producción.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 254 Campos clave:
IDPROD
Identificador de orden de producción
IDLINP
Identificador de línea
IDFASE
Identificador de la fase a la que pertenece la línea.
IDPADRE
Identificador de la línea del producto acabado al que pertenece dicha línea; si es 0, indica que es un producto acabado de primer nivel.
Tabla:
PRODFASES
Fases de órdenes de producción.
Campos clave:
IDPROD
Identificador de orden de producción
IDFASE
Identificador de fase
IDLINP
Identificador de la línea a la que pertenece la fase.
Tabla:
LOGPROD
Operaciones generadas, entendiendo como operación el conjunto de acciones necesarias ( que se guardarán en la tabla histprod) para completar una evolución de la orden de producción ( por ejemplo, si lanzamos una fase, las acciones serán todos los consumos generados por dicha fase).
Campos clave:
IDPROD
Identificador de orden de producción
IDLOGP
Identificador de la operación
IDTRAB
Identificador de la orden de trabajo a la que pertenece.
Tabla:
HISTPROD
Acciones generadas al evolucionar una orden ( consumos de componentes, consumos de tiempo, fabricaciones de productos acabados, marcas de terminación de líneas,...).
Campos clave:
IDPROD
Identificador de orden de producción
IDLOGP
Identificador de la operación a la que pertenece
IDTRAB
Identificador de la orden de trabajo a la que pertenece.
IDLINP
Identificador de la línea que ha generado la acción.
IDLINC
Identificador de la acción.
NUMLIN
Identificador de línea de evolución; cuando enviamos una acción a trabajo en curso (este campo valdrá 0), se pueden ir haciendo fabricaciones o consumos parciales sobre la acción ( y cada evolución tendrá un valor distinto)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 255 Tabla:
TRABAJOS
Ordenes de trabajo.
Campos clave:
IDPROD
Identificador de orden de producción
IDTRAB
Identificador de trabajo.
Property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es string. Parámetros:
SCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parámetros:
SCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab [ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parámetros:
SCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es lógico. Parámetros:
SCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
Property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es string. Parámetros:
SCampo
Nombre del campo
Valor
String
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 256 retornado
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es entero. Parámetros:
SCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin [ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es double. Parámetros:
SCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es lógico. Parámetros:
SCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsCurrencyLin[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es currency. Parámetros:
SCampo
Nombre del campo
Valor retornado
Currency
Valor del campo
property AvisarStock: WordBool A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Valor retornado
Currency
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar órdenes.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 257
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Estructura cerrada. No se puede usar. ESTM_ACTIVO: Estructura activa. Podemos añadir, borrar, modificar. ESTM_NUEVO: Estructura en estado de inserción de un nuevo registro. ESTM_EDICION: Estructura en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del documento.
property TrabajoActivo[ nIdTrab:Currency]: Currency A través de esta propiedad podemos cambiar o consultar la orden de trabajo activa. Parámetros:
NIdTrab
Identificador de trabajo a activar
Valor retornado
Currency
Identificador de trabajo activo.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la orden pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Cancela; Cancela los cambios realizados. Pasa a estado ESTM_ACTIVO.
Function Anade:Currency; Almacena los valores de los campos en la base de datos con los cambios introducidos por el programador y devuelve el identificador de orden (IDPROD). Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Nuevo( sFecha:String);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 258 Crea una nueva orden de producción. Pasa a estado ESTM_NUEVO. Parámetros:
SFecha
Fecha de la orden
Procedure Borra( nIdProd:Currency); Borra la orden de producción indicada. Pasa a estado ESTM_ACTIVO. Parámetros:
NIdProd
Identificador de la orden
Procedure Modifica( nIdProd:Currency); Pone en edición una orden de producción. Pasa a estado ESTM_EDICION. Parámetros:
NIdProd
Identificador de la orden.
Function NuevoProducto( sCodArt:String; nUnidades:Double):Currency; Añade un artículo a fabricar en la orden y devuelve el identificador de línea generado (IDLINP). Parámetros:
sCodArt
Código de artículo.
nUnidades
Unidades a fabricar.
Function NuevaFase( nIdLinP:currency; sFase, sNomFase:String):Currency; Crea una fase en el artículo a fabricar indicado y devuelve el identificador de fase generado (IDFASE). Parámetros:
nIdLinP
Identificador de la línea de artículo a fabricar.
sFase
Código de la fase
SNomFase
Nombre descriptivo de la fase
Function NuevoComponente( nIdFase:currency;CodArt: string; nUnidades: double;lEsFinal:boolean):Currency; Crea un nuevo componente en la fase especificada con las unidades indicadas y devuelve el identificador de la línea generado (IDLINP) Parámetros:
NIdFase
Identificador de la fase.
SCodArt
Código de artículo.
NUnidades
Unidades a consumir del componente.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 259 LEsFinal
Si el componente añadido también puede fabricarse, si ponemos true solo añadirá está línea, pero si le decimos false, pondrá este componente así como su estructura (será un artículo ficticio).
Function NuevoOperario( nIdFase:currency; sPerfilO, sTiempo: string):Currency; Crea un nuevo perfil de operario en la fase especificada con el tiempo indicado y devuelve el identificador de la línea generada (IDLINP). Parámetros:
NIdFase
Identificador de la fase.
SPerfilO
Código de perfil de operario
STiempo
Tiempo a consumir del perfil ( en formato hh:mm:ss)
Function NuevaMaquina( nIdFase:currency;sPerfilM, sTiempo: string):Currency; Crea un nuevo perfil de máquina en la fase especificada con el tiempo y devuelve el identificador de línea generado (IDLINP). Parámetros:
NIdFase
Identificador de la fase.
SperfilM
Código de perfil de máquina
Stiempo
Tiempo a consumir del perfil ( en formato hh:mm:ss)
procedure EditarLinea(nIdLinP: Currency); Busca y pone la línea indicada preparada para editar el contenido de sus campos. Parámetros:
NIdLinP
Identificador de la línea.
procedure BorrarFase(nIdFase: currency); Borra la fase indicada así como todos sus componentes y perfiles. Parámetros:
NIdFase
Identificador de la fase a borrar.
procedure BorrarLinea(nIdLinP: Currency); Borra el componente o perfil correspondiente a dicho identificador. Parámetros:
NIdLinP
Identificador de la línea.
Nota: Parámetro sTipoStock: en todas las operaciones que se hagan para fabricar o consumir la orden de producción existe este parámetro, que nos indica si la operación se envía a trabajo en curso, es decir que se podrá evolucionar desde trabajos ( pondríamos “P”) o por e l contrario si es definitiva, que para los artículos ya actualizaría el stock ( pondríamos “S”).
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 260 Si se deja en blanco, cogerá el valor que tenga la cabecera de la orden sobre la que estemos trabajando.
procedure FabricarOrden(sFecha, sTipoStock:string); Fabrica y consume todo lo pendiente de la orden de producción. Parámetros:
SFecha
Fecha de fabricación
STipoStock
“S” o “P”
procedure FabricarFase(nIdFase:currency;sFecha, sTipoStock:string); Fabrica y consume todo lo pendiente de la fase indicada. Parámetros:
nIdFase
Identificador de la fase
SFecha
Fecha de fabricación/consumo.
STipoStock
“S” o “P”
Procedure FabricarFaseProporcional(nIdFase,nUnidades:currency; sFecha, sTipoStock:string); Fabrica y consume las unidades y tiempos proporcionalmente a las unidades indicadas respecto a las unidades a fabricar del artículo acabado de dicha fase. Parámetros:
nIdFase
Identificador de la fase.
NUnidades
Unidades a tratar.
SFecha
Fecha de fabricación/consumo.
STipoStock
“S” o “P”
procedure FabricarProductoPrevisto(nIdLinP:currency;sFecha, sTipoStock:string); Fabrica y consume todo lo pendiente de la producto acabado indicado. Parámetros:
NIdLinP
Identificador del producto acabado.
SFecha
Fecha de fabricación/consumo.
STipoStock
“S” o “P”
Procedure FabricarProductoProporcional(nIdLinP,nUnidades:currency; SFecha, sTipoStock:string); Fabrica y consume las unidades y tiempos proporcionalmente a las unidades indicadas respecto a las unidades a fabricar del artículo acabado. Parámetros:
nIdLinP
Identificador del producto acabado.
NUnidades
Unidades a tratar.
SFecha
Fecha de fabricación/consumo.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 261 STipoStock
“S” o “P”
Procedure FabricarProductoSinConsumir(nIdLinP,nUnidades:currency; SFecha, sTipoStock:string); Fabrica las unidades indicadas sin consumir componentes ni tiempos. Parámetros:
nIdLinP
Identificador del producto acabado.
NUnidades
Unidades a tratar.
SFecha
Fecha de fabricación.
STipoStock
“S” o “P”
Procedure ConsumirComponente(nIdLinP,nUnidades:currency; SFecha, sTipoStock:string); Consume las unidades del componente indicado. Parámetros:
NIdLinP
Identificador del componente.
NUnidades
Unidades a consumir.
SFecha
Fecha de consumo.
STipoStock
“S” o “P”
Procedure ConsumirOperario(nIdLinP:currency; sCodEmp, sTiempo sFecha, sTipoStock:string); Consume dicho tiempo para el perfil de operario indicado. Parámetros:
NIdLinP
Identificador del perfil de operario.
SCodEmp
Código de operario que realiza la acción; si va en blanco, coge por defecto el de la línea de la orden.
STiempo
Tiempo a consumir ( en formato hh:mm:ss).
SFecha
Fecha de consumo.
STipoStock
“S” o “P”
Procedure ConsumirMaquina(nIdLinP:currency; sCodMaq, sTiempo sFecha, sTipoStock:string); Consume dicho tiempo para el perfil de máquina indicado. Parámetros:
NIdLinP
Identificador del perfil de máquina.
SCodMaq
Código de máquina que realiza la acción; si va en blanco, coge por defecto el de la línea de la orden.
STiempo
Tiempo a consumir ( en formato hh:mm:ss).
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 262 SFecha
Fecha de consumo.
STipoStock
“S” o “P”
Procedure FabricarProductoEnCurso(nIdLinC, nUnidades:currency; SCodAlm:string); Fabrica un producto acabado de una fabricación que previamente habíamos hecho marcando como TipoStock “Trabajo en curso”. El identificador que tendremos que pasar (IdLinC) corresponde a la tabla HistProd y para encontrarlo tendremos que buscar en dicha tabla por el identificador de línea de producción (IdLinP). Parámetros:
NIdLinC
Identificador de la línea de consumo.
nUnidades
Unidades a fabricar del producto acabado.
SCodAlm
Almacén donde repercutirá la entrada de stock;si va en blanco, coge por defecto el la línea de consumo.
Procedure ConsumirComponenteEnCurso(nIdLinC, nUnidades:currency; SCodAlm:string); Consume un componente de una fabricación que previamente habíamos hecho marcando como TipoStock “Trabajo en curso”. El identificador que tendremos que pasar (IdLinC) corresponde a la tabla HistProd y para encontrarlo tendremos que buscar en dicha tabla por el identificador de línea de producción (IdLinP). Parámetros:
NIdLinC
Identificador de la línea de consumo.
nUnidades
Unidades a consumir del componente.
SCodAlm
Almacén donde repercutirá la salida de stock;si va en blanco, coge por defecto el la línea de consumo.
Procedure ConsumirMaquinaEnCurso(nIdLinC:currency; sTiempo:string) Consume un tiempo de una operación que previamente habíamos hecho marcando como TipoStock “Trabajo en curso”. El identificador que tendremos que pasar (IdLinC) corresponde
a la tabla HistProd y para encontrarlo tendremos que buscar en dicha tabla por el identificador de línea de producción (IdLinP). Parámetros:
NIdLinC
Identificador de la línea de consumo.
STiempo
Tiempo a consumir de máquina.
Procedure ConsumirOperarioEnCurso(nIdLinC:currency; sTiempo:string) Consume un tiempo de una operación que previamente habíamos hecho marcando como TipoStock “Trabajo en curso”. El identificador que tendremos que pasar (IdLinC) corresponde
a la tabla HistProd y para encontrarlo tendremos que buscar en dicha tabla por el identificador de línea de producción (IdLinP). Parámetros:
NIdLinC
Identificador de la línea de consumo.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 263 STiempo
Tiempo a consumir de operario.
Procedure FabricarConsumirOperacionEnCurso(nIdLogP:currency) Fabrica y consume una operación múltiple ( por ejemplo, fabricar una fase) que previamente habíamos hecho marcando como TipoStock “Trabajo en curso”. El identificador que tendremos que pasar (IdLogP) corresponde a la tabla LogProd.. Parámetros:
nIdLogP
Identificador de la operación.
Procedure IndicarDetalle(nIdLogP, nIdLinP: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString) Permite indicar el número de serie / lote / etc cuando no se conoce el identificador de la línea de consumo / fabricación. Este caso se da cuando: 1. Se trabaja contra stock. Al consumir / fabricar no se puede guardar hasta que no se ha indicado el detalle; pero como el método fabicar consumir no devuelve el identificador de la línea de consumo (se puede estar fabricando toda una estructura, lo que significa que en realidad se están añadiendo muchas líneas de consumo) solo podemos indicar el IdLinp. El IdLogP se deja a 0 ya que estamos indicando el detalle en la última operación (la que acabamos de hacer). 2. Se trabaja en curso. Al consumir / fabricar en curso no se puede guardar hasta que no se ha indicado el detalle; pero como el método fabicar consumir no devuelve el identificador de la línea de consumo (se puede estar fabricando toda una estructura, lo que significa que en realidad se están añadiendo muchas líneas de consumo) solo podemos indicar el IdLinp. El IdLogP se puede dejar a 0 cuando estamos indicando el detalle en la última operación (la que acabamos de hacer). Parámetros:
nIdLogP
Identificador de la operación. Si se indica 0, se buscará el último trabajo
nIdLinP
Identificador de la línea de producción
nUnidades
Unidades del detalle
sNumSerie
Número de serie del detalle
sLote
Lote del detalle
sUbicacion
Ubicación del detalle
sFecCaduc
Fecha de caducidad del detalle.
Procedure AnadirDetalle(nIdLinC, nNumGrupo: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString) Permite indicar el número de serie / lote / etc cuando se conoce el identificador de la línea de consumo / fabricación. Este caso se da cuando se está cambiando el detalle de un trabajo previamente guardado. Parámetros:
nIdLinC
Identificador de la línea de consumo (HISTPROD)
nNumGrupo
Número de grupo del consumo (HISTPROD)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 264 nUnidades
Unidades del detalle
sNumSerie
Número de serie del detalle
sLote
Lote del detalle
sUbicacion
Ubicación del detalle
sFecCaduc
Fecha de caducidad del detalle.
Procedure CambiarDetalle(nIdLinC, nNumLin: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString) Permite cambiar el detalle. Parámetros:
nIdLinC
Identificador de la línea de consumo (HISTPROD)
nNumLin
Número de la línea ( HISTPROD)
nUnidades
Unidades del detalle
sNumSerie
Número de serie del detalle
sLote
Lote del detalle
sUbicacion
Ubicación del detalle
sFecCaduc
Fecha de caducidad del detalle.
Procedure BorrarDetalle(nIdLinC, nNumLin: Currency) Permite borrar el detalle. Parámetros:
nIdLinC
Identificador de la línea de consumo (HISTPROD)
nNumLin
Número de la línea ( HISTPROD)
Procedure TerminarOrden(sFecha:string) Termina todos los artículos a fabricar, cierra todos los trabajos y deshabilita cualquier acción sobre la orden. Parámetros:
sFecha
Fecha de finalización de la orden.
Procedure TerminarFase(nIdFase:currency; sFecha:string) Termina todos los artículos que dependan de la fase indicada deshabilitando cualquier acción sobre ésta. Parámetros:
nIdFase
Identificador de la fase
SFecha
Fecha de finalización de la fase.
Procedure TerminarLinea(nIdLinP:currency; sFecha:string) Termina la línea indicada (sea artículo acabado, componente o tiempo) deshabilitando cualquier acción sobre ésta.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 265 Parámetros:
NIdLinp
Identificador de la línea
SFecha
Fecha de finalización de la línea.
Procedure DeshacerFabricacionProducto(nIdLinC, nNumLin:currency) Deshace la fabricación de la línea de consumos indicada. Si la línea de consumo fue generada como TipoStock “Trabajo en curso”, el nNumLin puede tener dos valores : 0, con lo que
borraría la línea de consumo y todas las evoluciones que hubiesen sobre ésta, o un valor distinto de 0, con que borraría la evolución identificada por el campo NUMLIN; si por el contrario la línea de consumo fue generada como TipoStock= ‘S’, s iempre se tendrá que poner
0. Parámetros:
NIdLinC
Identificador de la línea de consumo
nNumLin
Identificador de detalle de consumo.
Procedure DeshacerConsumoComponente(nIdLinC, nNumLin:currency) Deshace la línea de consumos indicada. Si la línea de consumo fue generada como TipoStock “Trabajo en curso”, el nNumLin puede tener dos valores : 0, con lo que borraría la línea de
consumo y todas las evoluciones que hubiesen sobre ésta, o un valor distinto de 0, con que borraría la evolución identificada por el campo NUMLIN; si por el contrario la línea de consumo fue generada como TipoStock= ‘S’, siempre se tendrá que poner 0.
Parámetros:
NIdLinC
Identificador de la línea de consumo
nNumLin
Identificador de detalle de consumo.
Procedure DeshacerConsumoOperario(nIdLinC, nNumLin:currency) Deshace la línea de consumos indicada. Si la línea de consumo fue generada como TipoStock “Trabajo en curso”, el nNumLin puede tener dos valores : 0, con lo que borraría la línea de consumo y todas las evoluciones que hubiesen sobre ésta, o un valor distinto de 0, con que borraría la evolución identificada por el campo NUMLIN; si por el contrario la línea de consumo fue generada como TipoStock= ‘S’, siempre se tendrá que poner 0. Parámetros:
NIdLinC
Identificador de la línea de consumo
nNumLin
Identificador de detalle de consumo.
Procedure DeshacerConsumoMaquina(nIdLinC, nNumLin:currency) Deshace la línea de consumos indicada. Si la línea de consumo fue generada como TipoStock “Trabajo en curso”, el nNumLin puede tener dos valores : 0, con lo que borraría la línea de
consumo y todas las evoluciones que hubiesen sobre ésta, o un valor distinto de 0, con que borraría la evolución identificada por el campo NUMLIN; si por el contrario la línea de consumo fue generada como TipoStock= ‘S’, siempre se tendrá que poner 0.
Parámetros:
NIdLinC
Identificador de la línea de consumo
NNumLin
Identificador de detalle de consumo.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 266
Procedure DeshacerOperacion(nIdLogP:currency) Deshace las línea de consumos indicadas por este identificador de operación múltiple ( campo IdLogP de la tabla LogProd). Parámetros:
NIdLogP
Identificador de la operación.
Procedure DeshacerTerminarOrden Deshace, si existe, la operación múltiple de terminar la orden.
Procedure DeshacerTerminarFase(nIdFase:currency) Deshace el terminar de la fase indicada( pero no sus hijos), con lo que pueden añadirse elementos a ésta. Parámetros:
nIdFase
Identificador de la fase.
Procedure DeshacerTerminarLinea(nIdLinP:currency) Deshace el terminar de la línea indicada( pero no sus posibles hijos), con lo que se puede modificar ésta. Parámetros:
nIdFase
Identificador de la fase.
Function NuevoTrabajo(sFecha, sMotivo:string):Currency Crea un nuevo parte de trabajo en la orden actual; devuelve el identificador de trabajo generado (IDTRAB). Parámetros:
SFecha
Fecha del trabajo.
SMotivo
Motivo del trabajo.
Procedure AbrirTrabajo(nIdTrab:Currency) Abre el trabajo indicado, lo que habilita las modificaciones sobre él. Parámetros:
nIdTrab
Identificador de trabajo
Procedure CerrarTrabajo(nIdTrab:Currency) Cierra el trabajo indicado, lo que deshabilita las modificaciones sobre él. Parámetros:
NIdTrab
Identificador de trabajo
Procedure BorrarTrabajo(nIdTrab:Currency) Borra el trabajo indicado si no tiene movimientos. Parámetros:
nIdTrab
Identificador de trabajo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 267
Procedure CambiarUnidadesProducto(nIdLinP, nUnidades:Currency) Modifica las unidades a fabricar de un producto acabado. Parámetros:
NIdLinP
Identificador de línea
NUnidades
Unidades a fabricar
Procedure ActualizarCostesComponentes) Recalcula los costes de todos los componentes de la orden activa.
OBJETO EXPEDIENTES Interface Expedientes property ActivarFacturado: WordBool; property ActivarPreFactura: WordBool; property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; procedure Iniciar; procedure Acabar; procedure Nuevo(const Cliente: WideString; const Fecha: WideString); procedure Modifica(IDEXPE: Currency); function Anade: Currency; procedure Borra(IDEXPE: Currency); procedure Cancela; procedure NuevaLinea(TIPO: LineaExpediente); procedure EditarLinea(TIPO: LineaExpediente; NUMLIN: Currency); procedure BorrarLinea(TIPO: LineaExpediente; NUMLIN: Currency); procedure AnadirLinea;
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 268 procedure CancelaLin; procedure Facturar(IDEXPE: Currency; Factura: WordBool); procedure PreFactura(IDEXPE: Currency);
Propiedades
Tipo
AsStringCab
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerCab
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatCab
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanCab
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyCab
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsStringLin
Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual.
AsIntegerLin
Tabla( Integer)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsFloatLin
Tabla( Float)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsCurrencyLin
Tabla( Currency)
Asigna/lee valores a/de los campos del registro nuevo/actual.
AsBooleanLin
Tabla( Lógico)
Asigna/lee valores a/de los campos del registro nuevo/actual.
Estado
EstadoMaest Devuelve el estado en que se encuentra el objeto ro
ActivarFacturado
Tabla( string) Flag que se asigna para poderse facturar el expediente
ActivarPreFactura Tabla( Integer)
Descripción
Flag que se asigna para porder realizar la prefactura
*EstadoMaestro: Ver objeto Maestro. Método
Tipo
Descripción
Iniciar
Procedimiento Inicia el objeto
Acabar
Procedimiento Cierra el objeto
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 269 Nuevo
Procedimiento Inicia un nuevo expediente
Borra
Procedimiento Borra el expediente
Modifica
Procedimiento Prepara el expediente para poderlo modificar.
Cancela
Procedimiento Cancela la edición del expediente
Anade
Función
NuevaLinea
Procedimiento Inicia una nueva línea
AnadirLinea
Procedimiento Añade la línea
CancelaLin
Procedimiento Cancela la línea en edición
EditarLinea
Procedimiento Permite editar una línea ya existente del expediente.
BorrarLinea
Procedimiento Permite borrar una línea del expediente.
Facturar
Procedimiento Permite facturar el expediente
PreFactura
Procedimiento Permite realizar al prefactura
Añade los datos editados del expediente a la base de datos y devuelve el identificador con el que se almacenará.
Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cabecera o de las líneas del expediente. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxDocumento.AsStringCab* ‘CodCli’+
-
Uso en Visual Basic: naxDocumento. AsStringCab ( ‘CodCli’)
-
Las lineas del expediente se dividen en 4 tipos ( ctSuplidos (entero 0), ctTrabajo (entero 1), ctProvision (entero 2), ctHonorario (entero 3)
property AsStringCab[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerCab[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 270 Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatCab[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBooleanCab[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
property AsStringLin[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsIntegerLin[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloatLin[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 271
property AsBooleanLin[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos de la línea especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
A continuación se presentan las propiedades y métodos necesarios para crear, borrar y modificar expedientes.
property Estado:EstadoMaestro Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Expediente cerrado. No se puede usar. ESTM_ACTIVO: Expediente activo. Podemos añadir, borrar, modificar. ESTM_NUEVO: Expediente en estado de inserción de un nuevo registro. ESTM_EDICION: Expediente en estado modificación, podemos asignar valores a los campos. Valor retornado
EstadoMaestro
Retorna el estado del Expediente.
Constante: Lineaexpediente Esta constantes se utiliza para indicar el tipo de linea de expediente que queremos tratar. Posibles estados: CTSUPLIDOS: Indicamos que la linea es de suplidos. Su valor equivalente es 0 (tipo de datos entero) CTTRABAJO: Indicamos que la linea es de trabajo. Su valor equivalente es 1 (tipo de datos entero) CTPROVISION: Indicamos que la linea es de provisión. Su valor equivalente es 2 (tipo de datos entero) CTHONORARIO: Indicamos que la linea es de honorarios. Su valor equivalente es 3 (tipo de datos entero) Valor retornado
EstadoMaestro
Retorna el estado del documento.
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que el expediente pueda ser usado. Al iniciar el expediente el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 272
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el expediente el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo( Cliente: WideString; Fecha: WideString); Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parámetros:
Cliente
Código del cliente
Fecha
Fecha del expediente ( string formato dd/mm/aaaa)
procedure Modifica(IDEXPE: Currency); Pone el documento que tiene el identificador indicado en edición. Parámetros:
IdExpe
Identificador del expediente
Procedure Anade; Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del expediente (si procede) . Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Procedure Cancela; Cancela la edición del expediente. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
procedure Borra Borra(IDEXPE: Currency); Elimina el documento con el identificador indicado eliminando también sus repercusiones en stocks, contabilidad, cartera, estadísticas e IVA. Parámetros:
IdExpe
Identificador del expediente
Procedure NuevaLinea(TIPO: LineaExpediente); Crea una línea nueva del tipo especificado por el parámetro. (Ver constantes LineaExpediente) A partir de ese momento podremos editar los valores de la línea. Parámetros:
Tipo
Tipo de linea de expediente. (Ver constantes LineaExpediente)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 273
Procedure AnadirLinea; Almacena los valores de los campos de la línea en la base de datos.
Procedure CancelaLin; Cancela la edición de la línea activa.
procedure EditarLinea(TIPO: LineaExpediente; NUMLIN: Currency); Pone la línea indicada en el parámetro NumLina en edición, preparada para editar el contenido de sus campos. Al final de las modificaciones deberá llamarse a AnadirLinea. Hay que indicarle el tipo para saber que linea editar. Parámetros:
Tipo
Tipo de linea de expediente. (Ver constantes LineaExpediente)
NumLin
Identificador de la línea.. Se corresponde con el campo NUMLIN del fichero __LINEEXPE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdEXPE = naxExpediente.AsFloatLin* ‘IdExpe’+ y con el campo TIPLIN = naxExpediente.AsStringLin*‘TipLin’+ donde su
contenido es: G => Suplidos / T => Trabajo / R=> Provisión / H => Honorarios
Procedure BorrarLinea(TIPO: LineaExpediente; NUMLIN: Currency); Se situa en la linea indicada por los parámetros Tipo, NumLin y la borra. Parámetros:
Tipo
Tipo de linea de expediente. (Ver constantes LineaExpediente)
NumLin
Identificador de la línea.. Se corresponde con el campo NUMLIN del fichero __LINEEXPE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdEXPE = naxExpediente.AsFloatLin* ‘IdExpe’+ y con el campo TIPLIN = naxExpedient e.AsStringLin*‘TipLin’+ donde su
contenido es: G => Suplidos / T => Trabajo / R=> Provisión / H => Honorarios
Procedure Facturar(IDEXPE: Currency; Factura: WordBool); Indicamos que deseamos facturar/desfacturar el expediente mediante el campo IdExpe y mediante el booleano Factura. Parámetros:
IdExpe
Identificar del expediente
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 274 Factura
Es un boleando donde si su valore es cierto facturará el expediente si éste no está facturado y si su valor es falso desfacturará el expediente si éste estaba facturado.
PreFactura(IDEXPE: Currency); Indicamos que deseamos prefacturar el expediente. (Impresión del expediente) Parámetros:
IdExpe
Identificar del expediente
OBJETO CUOTAS Objeto que permite la creación, modificación y borrado de cuotas de facturas y albaranes.
Interface Cuotas property AsString[const sCampo: WideString]: WideString; property AsCurrency[const sCampo: WideString]: Currency; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property OmitirMensajes:WordBool; procedure Iniciar; procedure Acabar; procedure Nuevo; procedure Modificar(IDAuto: Currency); procedure Borrar(IDAuto: Currency); function Guarda: Currency; procedure Cancelar; procedure ActivarMes(Mes: Integer); procedure DesactivaMes(Mes: Integer); Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores de la cuota. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea. Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 275 -
Uso en Delphi: naxCuotas.AsString* ‘CodCli’+
-
Uso en Visual Basic: naxCuotas.AsString ( ‘CodCli’)
property AsString[ sCampo:String]: String A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es string. Parámetros:
sCampo
Nombre del campo
Valor retornado
String
Valor del campo
property AsCurrency[ sCampo:String]: Currency A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es money. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsInteger[ sCampo:String]: Integer A través de esta propiedad podemos asignar valor a los campos especificando que su t ipo es entero. Parámetros:
sCampo
Nombre del campo
Valor retornado
Integer
Valor del campo
property AsFloat[ sCampo:String]: Double A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parámetros:
sCampo
Nombre del campo
Valor retornado
Double
Valor del campo
property AsBoolean[ sCampo:String]: Boolean A través de esta propiedad podemos asignar valor a los campos especificando que su tipo es lógico. Parámetros:
sCampo
Nombre del campo
Valor retornado
Lógico
Valor del campo
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 276
procedure Iniciar; Este procedimiento es el que reserva los recursos necesarios para que la cuota pueda ser usada. Al iniciar la cuota el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.
procedure Acabar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
procedure Nuevo; Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO.
procedure Modificar(IDCuota: Currency); Pone la cuota que tiene el identificador indicado en edición. Parámetros:
IdExpe
Identificador de la cuota
Procedure Borrar(IdCuota: Currency); Borra la cuota del identificador indicado. Parámetros:
IdCuota
Identificador de la cuota
Procedure Cancelar; Cancela la edición de la cuota. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.
Funcion Guardar:currency Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO. Valor retornado
Currency
Devuelve el identificador de la cuota
Procedure ActivarMes (Mes:integer) Indicamos el mes (de 1 a 12) en que tiene que aplicarse la cuota Parámetros:
Mes
Mes aplicar cuota
Procedure DesactivarMes (Mes:integer)
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 277 Indicamos el mes (de 1 a 12) en que tiene que anularse la cuota Parámetros:
Mes
Mes anular cuota
OBJETO COBROPARCIALREMESA Objeto que permite el cobro parcial de efectos de una remesa.
Interface CobroParcialRemesa property ConRepercusiones: WordBool; property AlDescuento: WordBool; property CuentaBanco: WideString; property CuentaRiesgo: WideString; property Fecha: WideString; property FechaValor: WideString; property CodigoBanco: WideString; property CuentaGastos: WideString; property Cambio: Double; property Gastos: Double; property Centro1: WideString; property Centro2: WideString; property Centro3: WideString; property NumeroDocumento: WideString; property UnAsiento: WordBool procedure Iniciar(IdRemesa: Integer); procedure AnadeEfecto(NumeroCartera: Currency; NumeroVencimiento: Integer); procedure Procesar(PedirDatos: WordBool); procedure Finalizar; Las primeras funciones de la lista que se presentan a continuación se utilizan para asignar / leer valores para realizar el cobro parcial de la remesa. Deben tenerse en cuenta algunas normas importantes. Si el nombre del campo no existe se producirá un error. Si el valor asignado al campo especificado no es correcto, no se producirá un error. Este se producirá al intentar guardar el documento o la línea.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 278 Hay que tener en cuenta lo siguiente: -
Los campos fecha se han de asignar como cadenas de texto como ‘01/01/2003’
-
Uso en Delphi: naxCuotas.AsString* ‘CodCli’+
-
Uso en Visual Basic: naxCuotas.AsString ( ‘CodCli’)
Propiedades
Tipo
Descripción
ConRepercusione Boolean s
Permite indicar si queremos el cobro con o sin repercusiones contables.
AlDescuento
Boolean
Permite indicar si queremos el cobro al descuento o al cobro.
CuentaBanco
String
Permite indicar la cuenta bancaria del asiento del cobro.
CuentaRiesgo
String
Permite indicar la cuenta bancaria de riesgo del asiento del cobro.
Fecha
STRING
Permite indicar la fecha efectiva del cobro y la fehca del asiento del cobro.
FechaValor
STRING
Permite indicar la fecha valor del cobro y la fecha valor del asiento del cobro.
CodigoBanco
String
Permite indicar el código de banco con el que se realiza el cobro.
CuentaGastos
String
Permite indicar la cuenta de gastos del asiento del cobro.
Cambio
Float
Permite indicar el cambio de la operación (para cobros en divisa).
Gastos
Currency
Permite indicar el importe de los gastos del asiento del cobro.
Centro1
String
Permite indicar el centro coste 1 del asiento del cobro.
Centro2
String
Permite indicar el centro coste 2 del asiento del cobro.
Centro3
String
Permite indicar el centro coste 3 del asiento del cobro.
NumeroDocumen String to
Permite indicar el número de documento del asiento del cobro.
UnAsiento
Permite indicar si queremos un asiento por cada cobro parcial o todos los cobros parciales en el mismo asiento.
Boolean
procedure Iniciar (IdRemesa:integer); Este procedimiento es el que reserva los recursos necesarios para que la remesa pueda ser usada. Al iniciar la cuota el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO. Parámetros:
Remesa
Identificador de la remesa
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 279
procedure Finalizar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
Procedure AnadeEfecto(NumeroCartera: Currency; NumeroVencimiento: Integer); Indicamos que efectos de la remesa queremos cobrar parcialmente Parámetros:
NumeroCartera
Identificamos la cartera a cobrar
NumeroVencimiento Identificamos el nº de vencimiento dentro del numerocartera
procedure Procesar(PedirDatos: WordBool); Realiza el cobro parcial de todos los efectos añadidos anteriormente. Parámetros:
PedirDatos
Permite mostrar pantalla de petición de datos de la operación.
OBJETO ANULARCOBROPARCIALREMESA Objeto que permite la anulación del cobro (realizado como cobro parcial de efectos de una remesa).
Interface AnularCobroParcialRemesa procedure Iniciar(IdRemesa: Integer); procedure AnadeOperacion(Operacion: Currency); procedure Procesar; procedure Finalizar;
procedure Iniciar (IDRemesa:integer); Este procedimiento es el que reserva los recursos necesarios para que la remesa pueda ser usada. Al iniciar la cuota el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO. Parámetros:
Remesa
Identificador de la remesa
procedure Finalizar; Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.
Procedure AnadeOperacion(Operacion: Currency);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 280 Indicamos que operaciones queremos anular Parámetros:
Operación
Identificador de la operación a anular
procedure Procesar; Anula todas las operaciones indicadas en el método anterior
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 281
PROGRAMACIÓN DLLS INTRODUCCIÓN Con la opción de añadir Dlls a Nexus, permite cambiar algunos procesos que realiza la aplicación estándar y cambiarlo para adecuarlo a las necesidades del cliente.
INSTALACIÓN En primer lugar hay que insertar la dll en la tabla Dlls, para ello podemos realizar la siguiente vista SQL: INSERT INTO DLLS (DLL,IDDLL) VALUES ('ruta y nombre de la dll', identificador) Nota: La ruta sólo es necesaria si la dll esta en una carpeta diferente a nexus.exe
EVENTOS Actualmente Nexus consulta nuestras dlls en cada uno de estos eventos:
SISTEMA Nombre
Estructura
Descripción
Iniciar
procedure( Empresa: PChar); stdcall;
Al entrar en una empresa
IniciarConSistema
procedure( Empresa: PChar); stdcall;
Al inicializar el nexus
Finalizar
procedure; stdcall;
Al salir de una empresa
DOCUMENTOS Nombre
Estructura
Descripción
ObtPrecioCompra
function( PrcCompra: Double; Cabecera, Linea: Variant): Double; stdcall;
Al obtener el precio de compra en los documentos de compra
ObtPrecioVenta
function( PrcVenta: Double; Cabecera, Linea: Variant): Double; stdcall;
Al obtener el precio de venta en los documentos de venta
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 282
DespuesDeGuardarDocume procedure(Documento: string; nto: IdDoc: Double); stdcall;
Después de guardar cualquier documento de compra o venta
DespuesDeGuardarDocume procedure(Documento: String; ntoV2 IdDoc: Double; Estado: Integer); stdcall;
Después de guardar cualquier documento de compra o venta
AntesDeGuardarDocument o
function(Documento: string; IdDoc: Double; var Cabecera: Variant; var Lineas: Variant): boolean; stdcall;
Antes de guardar cualquier documento de compra o venta
AntesDeGuardarDocument oV2
function(Documento: string; Antes de guardar cualquier IdDoc: Double; var Cabecera: documento de compra o venta Variant; var Lineas: Variant; Estado:Integer): boolean; stdcall;
RePintar
function( Tabla: string): boolean; Actualiza una ventana con los stdcall; nuevos datos
AntesDeGuardarLinea
function(Documento: String; Cabecera: Variant; Linea: Variant): Variant; stdcall;
Antes de guardar la linea del documento
AntesDeGuardarLineaConD function(Documento: String; etalle Cabecera: Variant; Linea: Variant; Detalle: Variant): Variant; stdcall;
Antes de guardar linea del documento, pero en aquellos casos que hay articulos con detalle ( lotes, series, tallas, etc)
DespuesDeGuardarLinea
Después de guardar la linea del documento
procedure(Documento: String; Cabecera: Variant; Linea: Variant); stdcall;
DespuesDeGuardarLineaCo procedure(Documento: String; Después de guardar linea del nDetalle: Cabecera: Variant; Linea: documento, pero en aquellos Variant; Detalle: Variant); stdcall; casos que hay articulos con detalle ( lotes, series, tallas, etc)
CARTERA Nombre
Estructura
Descripción
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 283 AntesDeGuardarEfecto
function( Operacion: string; Antes de guardar un efecto en Datos: Variant): boolean; stdcall; cartera
DespuesDeGuardarEfecto
procedure( Operacion: string; NumCartera: Double; NumVen: integer); stdcall;
AntesDeGuardarRemesa
function( Operacion, Tipo: string; Antes de guardar una remesa Cabecera, Lineas: en cartera variant):boolean; stdcall;
DespuesDeGuardarRemesa procedure( Operacion, Tipo: string; IdRemesa: Double); stdcall;
Después de guardar un efecto en cartera
Después de guardar una remesa en cartera
MAESTROS Nombre
Estructura
Descripción
AntesDeGuardarMaestro
function(Tabla: String; Datos: Variant): Boolean; stdcall
Antes de guardar cualquier fichero maestro
DespuesDeGuardarMaestro procedure(Tabla: String; Datos: Variant); stdcall
Despues de guardar cualquier fichero maestro
AntesDeBorrarMaestro
function( Tabla: string; IdMaestro: Variant): boolean; stdcall;
Antes de borrar cualquier fichero maestro
DespuesDeBorrarMaestro
procedure( Tabla: string; IdMaestro: Variant); stdcall;
Después de borrar cualquier fichero maestro
Nombre
Estructura
Descripción
AntesDeGuardarApunte
function( Apunte: variant):boolean; stdcall;
Antes de guardar linea de un asiento
AntesDeGuardarAsiento:
function( IdAsiento: Double; Asiento: variant):boolean; stdcall;
Antes de guardar el asiento completo.
APUNTES
DespuesDeGuardarAsiento: procedure( IdAsiento: Double; Asiento: variant); stdcall;
Antes de guardar el asiento completo
PRODUCCION Nombre
Estructura
Descripción
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 284 OrdenNuevoComponente
function( Linea: variant; Cabecera: variant): variant; stdcall;
Cuando se da de alta un nuevo componente en la orden de producción
OrdenNuevoProducto
function( Linea: variant; Cabecera: variant): variant; stdcall;
Cuando se da de alta un nuevo producto (artículo), en la orden de producción
OrdenNuevoOperario
function( Linea: variant; Cabecera: variant): variant; stdcall;
Cuando se da de alta un nuevo operario en la orden de producción
OrdenNuevaMaquina
function( Linea: variant; Cabecera: variant): variant; stdcall;
Cuando se da de alta una nueva máquina en la orden de producción
Nombre
Estructura
Descripción
MethodEsListadoExterno
function(IdListado: String): Boolean; stdcall;
LISTADOS
MethodPedirLimitesListado function(IdListado: String): Boolean; stdcall; MethodHacerListado:
procedure(IdListado: String; Parametros: Variant); stdcall;
EJEMPLOS Adjunto a este manual, hay dos ficheros comprimidos, donde podremos encontrar ejemplos: Dll Externas.zip: En este fichero se encuentra un ejemplo en Delphi. NexusAddIn.rar: En este fichero se encuentra un ejemplo en C#.
COMO LLAMAR A UNA DLL DESDE MIMENU.MENU (V2.0) Desde NexusV8 se pueden añadir opciones de menú que llamen a una DLL. Debemos diferenciar entre dos tipos de DLLs: DLLs win32 DLLs ActiveX
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 285
LLAMANDO A UNA DLL WIN32 Vamos a ver como se haría: Lo primero seria generar nuestro propio menú con la opción que queremos añadir. Consultar el capítulo Personalizar Menús Este es un ejemplo típico:
Como se ve, en la propiedad PROGRAMA debe ir indicada tanto la DLL, como el método publicado al que queremos que llame esa opción. En el ejemplo la DLL se llama TestDLL y el método al que llamamos es EjemploPantalla. Hay que notar que para separar la DLL del método usaremos el símbolo arroba (@). Para nuestro ejemplo copiamos la DLL en la misma ruta donde est é el Nexus.exe y arrancamos el Nexus. Nos aparecerá la nueva categoría “Llamadas a DLLs” que contiene una opción que se llama “Llamar a una DLL win32”.
Fíjate que NO HAY que insertar ningún registro en la tabla DLLs de Nexus.
LLAMANDO A UNA DLL ACTIVEX Vamos a ver como se haría: Como en el caso de las DLLs de tipo WIN32 hay que generar nuestro propio menú (o usar uno ya creado).
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 286
En este caso lo único que cambia es que en la propiedad PROGRAMA, se debe estructurar la llamada de la siguiente manera: @ClaseDelActiveX@ProcedimientoQueSePasaraComoParametro En el caso de los ActiveX es necesario saber que Nexus SIEMPRE invocará el método “Opcion” (que
debemos haber implementado y exportado nosotros en nuestro ActiveX) y que somos nosotros quienes mediante comparaciones deberemos llamar a un método u otro según el parámetro que nos llegue. EJEMPLO EN C# DE ESTE MÉTODO
//Método para llamar a otras opciones desde el menú o desde programas externos //En caso de llamarse la opción desde programas externos se rellenará el segundo parámetro //con la clave del mantenimiento asociado public void Opcion(string IdOpcion, string parámetro) { if (IdOpcion.ToUpper() == " EJEMPLOPANTALLA ") MessageBox.Show("se ha llamado a la pantalla"); else if (IdOpcion.ToUpper() == "MICLIENTE") MessageBox.Show(parámetro); } Otra cosa más a tener en cuenta es que en este caso la DLL ha de estar registrada con regasm en el caso de ser un ActiveX que haya sido desarrollado usando punto net o con regsvr32 en el caso de estar desarrollada con Delphi o VB 6.
PARÁMETROS EN PROGRAMA EXTERNOS Seleccionar a Configuración Datos generales Preferencias. En esta pantalla activar la casilla de Activar programas externos. En este momento tendremos una nueva opción en el menú Herramientas programas externos.
Mantenimiento de
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 287
En el caso de que tengamos activada la opción de programas externos desde los datos generales, será en el mantenimiento de programas externos donde definiremos que parámetros se van a pasar. Veamos un ejemplo:
Si nos fijamos se ha puesto el ejecutable y los parámetros en la misma línea separados por un espacio. En los programas externos es donde tiene sentido el parámetro :DEFECTO ¿Por qué? Si nosotros definimos en Artículos una llamada a un ejecutable y no indicamos ningún parámetro Nexus por defecto pasará el código del maestro (codcli en el caso de artículos). Pero cuando pasamos un parámetro al ejecutable, Nexus no sabe en que posición queremos que pase el valor del parámetro del código del maestro por lo que en este caso somos nosotros los encargados de indicarle, en primer lugar si queremos que se pase y en segundo lugar en que posición. Por lo tanto, si añadimos un parámetro y no ponemos el :DEFECTO, Nexus deja de pasar el código del maestro.
SIGNIFICADO DE CADA PARÁMETRO DEFECTO: Es el valor del maestro que se pasa de forma automática cuando no hay parámetros. TIPOCONTABLE: Es el tipo contable actual. CARPETA: Contiene la ruta donde está instalado nexus. EMPRESA: Contiene el nombre de la empresa desde la que se llama. USUARIO: Contiene el usuario logado que llama al programa externo. PASSWORD: Contiene el password ENCRIPTADO del usuario logado.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 288 USUARIOANALYTICS: Contiene el valor de la propiedad “Perfil” en la opción de seguridad para las opciones de Nexus Analytics.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 289
PARÁMETROS EN EJECUTABLES EXTERNOS INTRODUCCIÓN En la versión 8 de Nexus se ha añadido la posibilidad de añadir parámetros a los ejecutables a los que se llama desde Nexus. Esto quiere decir que ahora en las opciones de menú, tanto en formato V7 como en formato V8, donde llamamos a ejecutables podemos pasarle una serie de parámetros. Lo primero que nos interesa es… ¿Qué parámetros puedo pasarle a mi aplicación?
Se han implementado los siguientes parámetros: DEFECTO TIPOCONTABLE CARPETA EMPRESA USUARIO PASSWORD USUARIOANALYTICS Todos los parámetros a excepción del DEFECTO son aplicables a cualquier menú que diseñemos en Nexus V8 tanto en formato V7 como en formato V8. El parámetro DEFECTO es específico de los programas externos. La forma de llamar a un ejecutable pasándole estos parámetros debe tener la siguiente sintaxis: “Miprograma.exe parametros1 parametro2 parametro3”
Hay que tener en cuenta también que los parámetros se pasan en orden de izquierda a derecha (como ha sido siempre) por lo que el orden es importante. No es lo mismo pasar como parametro1 el usuario que pasarlo como parametro2. Por lo tanto nos podemos encontrar con dos casos distintos donde podemos aplicar este pase de parámetros: Llamadas desde el menú Llamadas desde programas externos
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 290
LLAMADA DESDE EL MENÚ FORMATO V7 En el caso de los menús en formato V7 veamos un ejemplo de llamada a un programa externo usando parámetros: |
FORMATO V8 En el caso de los menús en formato V8 veamos un ejemplo de llamada a un programa externo usando parámetros:
En este caso los parámetros se ponen en la variable “Parámetros”.
LLAMADAS A PROGRAMAS EXTERNOS En el caso de que tengamos activada la opción de programas externos desde los datos generales, será en el mantenimiento de programas externos donde definiremos que parámetros se van a pasar. Se accede desde el menú Herramientas
Mantenimiento de programas externos.
Veamos un ejemplo:
Si nos fijamos se ha puesto el ejecutable y los parámetros en la misma línea separados por un espacio.
SIGNIFICADO DE CADA PARÁMETRO Veamos el significado de cada uno de los parámetros: DEFECTO: Es el valor del maestro que se pasa de forma automática cuando no hay parámetros. TIPOCONTABLE: Es el tipo contable actual. CARPETA: Contiene la ruta donde está instalado nexus. EMPRESA: Contiene el nombre de la empresa desde la que se llama. USUARIO: Contiene el usuario logado que llama al programa externo. PASSWORD: Contiene el password ENCRIPTADO del usuario logado. USUARIOANALYTICS: Contiene el valor de la propiedad “Perfil” en la opción de seguridad para las opciones de Nexus Analytics.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 291 Podemos configurar tantos parámetros y en el orden, como se desee, luego, programar en nuestra aplicación, para pasar los parámetros y en ese mismo orden. Parámetros En los programas externos es donde tiene sentido el parámetro :DEFECTO ¿Por qué? Si nosotros definimos en Artículos una llamada a un ejecutable y no indicamos ningún parámetro Nexus por defecto pasará el código del maestro.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 293
ÍNDICE _ __CLIENTES 24
¿ ¿QUÉ ES NAX (NEXUS ACTIVEX)? 37
A ACTIVACIÓN DEL DICCIONARIO 25 ACTIVACIÓN Y DISEÑO DEL DICCIONARIO 25 AÑADIR SELECCIONES DE NUESTRAS TABLAS 22 APLICACIÓN DE LOS CAMPOS ADICIONALES 6 APUNTES 57, 283 ÁREA DEL TRABAJO DEL DICCIONARIO 7 ASIGNAR/LEER VALORES A LOS CAMPOS DE CADA FICHERO MAESTRO 53
B BARRAS DE MENÚS 35
C CAMBIO DE NOMBRE DE LAS PESTAÑAS ADICIONALES 26 CARTERA 61, 282 CASO ESPECIAL TABLA CLIENTES 24 CLAVES FORÁNEAS 15 CLIENTES 24 COBRO/ANULACIÓN PARCIAL DE REMESAS 67 COLUMNAS 11 COMO LLAMAR A UNA DLL DESDE MIMENU.MENU (V2.0) 284 CONFIGURACIÓN NEXUS 5 CONSULTAS SEGÚN CRITERIOS DE NEXUS 49 CREACIÓN DE CAMPOS EN TABLAS YA EXISTENTES 21 CREACIÓN DE ÍNDICES 14 CREACIÓN DE LOS ÍNDICES 20 CREACIÓN DE TABLAS NUEVAS 19
CREACIÓN DE UNA TABLA NUEVA 10 CREACIÓN DEL FICHERO DE MENÚ 31 CREACIÓN, MODIFICACIÓN Y BORRADO DE VENCIMIENTOS 61 CREAR LAS TABLAS 19 CREAR LOS CAMPOS DE LAS TABLAS 19 CREAR NUEVO DICCIONARIO 18 CREAR REGISTROS NUEVOS 53
D DATOS GENERALES DE NUESTRA LIBRERÍA 9 DICCIONARIO 1 DICCIONARIO EN INSTALACIÓN CLIENTE 6 DICCIONARIO NEXUS 6 DIRECTORIO PRINCIPAL DE NEXUS 3 DISEÑO DE LAS PESTAÑAS ADICIONALES 26 DLL 1 DOCUMENTOS 55, 281 DOS FORMAS DE TRABAJAR CON ASIENTOS 59
E EJEMPLO 1: CONSULTAS SEGÚN LOS CRITERIOS DE NEXUS. 50 EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AÑADIR UN NUEVO VENCIMIENTO EN CARTERA 62 EJEMPLO 1: LLAMADA A LA PANTALLA DE FILTROS 65 EJEMPLO 1: MANTENIMIENTO DE CLIENTES SIN PARÁMETROS 45 EJEMPLO 1: MOVIMIENTOS EN STOCK EXTERNOS 64 EJEMPLO 1: PRESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI 47 EJEMPLO 1: UTILIZACIÓN COBRO PARCIAL DE REMESAS 67 EJEMPLO 1: UTILIZACIÓN GENÉRICA DEL OBJETO EXPEDIENTES 66 EJEMPLO 2: EDICIÓN DE LA FICHA CON PARÁMETOS 46 EJEMPLO 2: FICHERO PDF CON EL LISTADO DE CLIENTES EN DELPHI 47 EJEMPLO 2: USO DE LOS IDENTIFICADORES DE NEXUS PARA OBTENER UN IDENTIFICADOR PROPIO 50 EJEMPLO 2: UTILIZACIÓN DE ANULAR COBRO PARCIAL DE REMESAS 67
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 294 EJEMPLO 3: PRESENTACIÓN PRELIMINAR DEL LISTADO DE CLIENTES EN VB. 48 EJEMPLO 4: IMPRIMIR UN EFECTO FORMATO RECIBO EN DELPHI 48 EJEMPLO DEL USO DE UN OBJETO EN VISUAL BASIC 41 EJEMPLO DEL USO DE UN OBJETO NAX EN DELPHI 41 EJEMPLO EN C# DE ESTE MÉTODO 286 EJEMPLO EN DELPHI DE LA CREACIÓN DE UNA NUEVA FACTURA 55 EJEMPLO TRATAMIENTO DE EXCEPCIONES 44 EJEMPLO1 : COBRO DE UN VENCIMIENTO 64 EJEMPLOS 284 EJEMPLOS EN DELPHI 43 EJEMPLOS EN VISUAL BASIC 44 ELIMINAR EL DICCIONARIO DE UNA BASE DE DATOS 28 EN DELPHI 45, 46, 51 EN VISUAL BASIC 46, 51 ENLACE (CONEXIÓN) 42 ESTRUCTURA DE LA APLICACIÓN 3 ESTRUCTURA XML 32 EVENTOS 281 EXCEPCIONES 53 EXPEDIENTE 66
F FILTRO 65 FORMATO V7 290 FORMATO V8 290
G GENERAL 8 GESTIÓN DE PROYECTOS 17 GRUPO 34
I IMÁGENES 36 INICIAR UN ENLACE (OPCIÓN A) 43 INICIAR UN ENLACE (OPCIÓN B) 43 INSTALACIÓN 281 INSTALACIÓN DE NAX 39 INSTALACIÓN DEL DICCIONARIO 7 INTEGRIDAD 17 INTRODUCCIÓN 1, 3, 31, 69, 281, 289 ITEM 34
L LAS CLAVES FORÁNEAS 52 LICENCIAS NAX RUNTIME / NEXUS 39 LISTADO (IMPRESIÓN DE INFORMES) 47 LISTADOS 284
LL LLAMADA DESDE EL MENÚ 290 LLAMADAS A PROGRAMAS EXTERNOS 290 LLAMANDO A UNA DLL ACTIVEX 285 LLAMANDO A UNA DLL WIN32 285
M MAESTROS 51, 283 MENÚ LATERAL 9, 33 MENÚ SUPERIOR 8 MENUS 1 MÉTODOS Y FUNCIONES DEL ENLACE 42 MODIFICAR REGISTROS EXISTENTES 54
N NAVBAR 36 NAX 1 NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIÓN 42 NORMATIVA EN LA CREACIÓN DE LIBRERÍAS 6 NUEVO DICCIONARIO PASO A PASO 17 NVITEM 36 NVITEMS 36
O OBJETO AGRUPACION 228 OBJETO ALBARAN 105 OBJETO ANULARCOBROPARCIALREMESA 279 OBJETO ASIENTO 199 OBJETO CARTERA 205 OBJETO COBROPARCIALREMESA 277 OBJETO CUOTAS 274 OBJETO DEPÓSITO 135 OBJETO ENLACE 70 OBJETO ESTRUCTURA 242 OBJETO EXPEDIENTES 267 OBJETO FACTURA 89 OBJETO INVENTARIO 180 OBJETO LISTADO 239 OBJETO MAESTRO 80 OBJETO MOVIMIENTOSTOCK 188