Nexus Software Nexus para Programadores · conjunto de herramientas para poder adaptar y mejorar...
Transcript of Nexus Software Nexus para Programadores · conjunto de herramientas para poder adaptar y mejorar...
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
CONTENIDO
NEXUS PARA PROGRAMADORES 1
INTRODUCCIÓN .................................................................................................................................. 1
DICCIONARIO ............................................................................................................................ 1
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............................................................................ 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.............................................................................................. 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 DE CLIENTES SIN PARÁMETROS ........................................... 45
EJEMPLO 2: EDICIÓN DE LA FICHA CON PARÁMETOS............................................................ 46
LISTADO (IMPRESIÓN DE INFORMES) .............................................................................................. 47
EJEMPLO 1: PRESENTACIÓ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........................................ 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.................................................................................................................................. 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 ................................................ 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 EXPEDIENTES ........................................... 66
COBRO/ANULACIÓN PARCIAL DE REMESAS .................................................................................... 67
EJEMPLO 1: UTILIZACIÓN COBRO PARCIAL DE REMESAS ...................................................... 67
EJEMPLO 2: UTILIZACIÓN DE ANULAR COBRO PARCIAL DE 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 ............................................................................................................. 163
OBJETO TRASPASO ......................................................................................................................... 171
OBJETO INVENTARIO ...................................................................................................................... 180
OBJETO MOVIMIENTOSTOCK ......................................................................................................... 188
OBJETO RESERVASTOCK ................................................................................................................. 194
OBJETO ASIENTO ............................................................................................................................ 199
OBJETO CARTERA ........................................................................................................................... 205
OBJETO OPERACIONESCARTERA .................................................................................................... 213
OBJETO AGRUPACION .................................................................................................................... 228
OBJETO REMESA............................................................................................................................. 231
OBJETO OPERACIONESINMOVILIZADO .......................................................................................... 234
OBJETO PRESUPUESTO ................................................................................................................... 236
OBJETO OPCION ............................................................................................................................. 239
OBJETO LISTADO ............................................................................................................................ 239
OBJETO ESTRUCTURA ..................................................................................................................... 242
OBJETO ORDENPRODUCCION ........................................................................................................ 247
OBJETO EXPEDIENTES .................................................................................................................... 267
OBJETO CUOTAS ............................................................................................................................. 274
OBJETO COBROPARCIALREMESA ................................................................................................... 277
OBJETO ANULARCOBROPARCIALREMESA ..................................................................................... 279
PROGRAMACIÓN DLLS 281
INTRODUCCIÓN .............................................................................................................................. 281
INSTALACIÓN .................................................................................................................................. 281
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 ........................................................................................................................ 290
FORMATO V8 ........................................................................................................................ 290
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 operació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 estructura 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 decir, 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 campos 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 Adiccionales, podremos ver, todas aquellas tablas que se han configurado como tipo Auxiliar.
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 versió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:
OPCION SEPARADOR
OPCIONES
ITEMS
ITEMS
CATEGORIAS
OPCION SEPARADOR
OPCIONES
GRUPOS
MENU
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
<GRUPO Titulo="Ficheros" Imagen="Imágenes/iconos/Ficheros16x16.bmp" IdOrd="1">
Titulo: Titulo que aparecerá.
Imagen: Imagen asociada a ese grupo.
IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.
OPCION <OPCION Titulo="Clientes" Id="manClientes" IdOrd="3"></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 <ITEM Titulo="Clientes" Id="manClientes" Imagen="Imágenes/iconos/Ficheros16x16.bmp"></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 <SEPARADOR IdOrd="48"></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.
NVSEPARADOR
NVITEMS
NVITEM
BUSCADOR NVITEMS
SEPARADOR
NVITEMS NVSEPARADOR
NVCATEGORIAS
NAVBAR
GRUPONAVBAR
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 <NAVBAR Titulo ="Barra de menú principal">
Titulo : Titulo que aparecerá.
NVITEMS <NVITEMS Titulo="Archivo" Imagen="" IdOrd="1000">
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 <NVITEM Id="GestionEmp" IdOrd="1010"></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 <SEPARADOR Titulo="Documentación" IdOrd="1670"></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; // Destino del listado (prosentación preliminar)
naxListado.Copias := 1; // Nº de copias
naxListado.Impresora := ‘Impresora local LaserJet 4200’; // Nombre de la impresora
naxListado.Modelo := ‘Listado con email’; // Nombre del modelo definido por el usuario
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
naxListado.Modelo := ‘Listado con email’; // Nombre del modelo definido por el usuario
naxListado.AnadirParametro( ‘CodIni’, ‘ 1’); // Código inicial
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 obtendrá un identificador único identificado con el texto Cuotas. El primer valor de este 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; // como siempre, destruir el objeto creado
end;
EN VISUAL BASIC
Dim naxClientes As NAX.Maestro
Set naxClientes = New NAX.Maestro
Call naxClientes.Iniciar("Clientes")
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 misma 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 detallan 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');. // Inicia el objeto indicando que se trata de de artículos naxArticulo.Nuevo;
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
‘De n/fra. ‘ + sNumFac, // Descripción
nBase, // Importe haber en la moneda indicada
‘’, // Centro de coste
‘’); // Texto
naxAsiento.AApunte( 'EURO', // Moneda
‘47700000’, // Cuenta
0, // Importe debe en la moneda indicada
‘De n/fra. ‘ + sNumFac, // Descripción
nBase * 0.16, // Importe haber en la moneda indicada
‘’, // Centro de coste
‘’); // Texto
naxAsiento.AApunte( 'EURO', // Moneda
sCtaCliente, // 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’, // Concepto
‘De n/fra. ‘ + sNumFac, // Descripción
‘’, // Centro de coste 1
‘’, // Centro de coste 2
‘’, // Centro de coste 3
'EURO', // 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’, // Concepto
‘De n/fra. ‘ + sNumFac, // Descripción
‘’, // Centro de coste 1
‘’, // Centro de coste 2
‘’, // Centro de coste 3
'EURO', // 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’, // Concepto
‘De n/fra. ‘ + sNumFac, // Descripción
‘’, // Centro de coste 1
‘’, // Centro de coste 2
‘’, // Centro de coste 3
'EURO', // Moneda
sCtaCliente, // 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; // Reserva los recursos necesarios
naxMovimientos.Nuevo( ‘01/12/2003’, // Fecha
‘2’); // Código del almacén
// Añadir movimiento de 10 unidades del artículo 1
naxMovimientos.NuevaLineaArt( ‘1’, // Código del artículo
10); // Unidades del movimiento
naxMovimientos.AsStringLin* ‘Motivo’+ := ‘Movimiento externo’;
naxMovimientos.AnadirLinea;
// Añadir movimiento de 20 unidades del artículo 2
naxMovimientos.NuevaLineaArt( ‘2’, // Código del artículo
20); // Unidades del movimiento
naxMovimientos.AsStringLin* ‘Motivo’+ := ‘Movimiento externo’;
naxMovimientos.AnadirLinea;
// Añadir movimiento de 30 unidades del artículo 3
naxMovimientos.NuevaLineaArt( ‘3’, // Código del artículo
30); // 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 objete 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; // Llamamos a la pantalla visual
sFiltro := NaxFiltro.ObtenerFiltro; // Obtenemos el filtro de generado desde la pantalla visual
NaxFiltro.Acabar; // 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); // Creamos una nueva linea de trabajo (const ctTrabajo)
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: Inicia y cierra la conexión con la base de datos de una empresa nexus. Mantiene las variables de error.
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 y llamadas a las distintas opciones visuales de nexus.
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: 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: 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.
Depósito: 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.
Inventario: Objeto que permite la creación de 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.
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: 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.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
70
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.
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: Permite crear, borrar o modificar el contenido de una estructura.
OrdenProduccion: Permite crear, borrar, modificar o evolucionar una orden de producción.
Expedientes: Permite crear, borrar, modificar expedientes. Tambien facturarlos e imprimirlos.
Cuotas: Permiter crear, borrar y modificar cuotas.
(NUEVO 802B) CobroParcialRemesa: Permite cobrar parcialmente una remesa.
(NUEVO 802B) 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;
property sMensaje: WideString readonly;
property EmpresaActiva: WideString readonly;
property RaiseOnException: WordBool;
property Estado: EstadoEnlace readonly;
property nError: Integer readonly;
property VentanasAbiertas: integer readonly;
property Conexion: WideString readonly;
procedure Iniciar(const sEmpresa: WideString; const sUbicacion: WideString);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
71
procedure Acabar;
function ParamConexion(const sEmpresa: WideString): OleVariant;
function Empresas: OleVariant;
function SelecEmpresa: WordBool;
function SelecEmpresaActiva: WordBool;
procedure EliminarRecordatorioClave;
function EstacionActivada(sCodProd: WideString): WordBool;
procedure CerrarVentanas;
procedure ActivarVentana;
function LoginUsuario(sUsuario,sPassword: WideString):WordBool;
function SelecMultiEmpresa: WordBool;
function 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)
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: sEmpresa Nombre de la empresa
sUbicacion Obsoleto
Valor retornado
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: 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: WordBool
En nexus configurado como multiempresas, cuando se entra en una empresa (multiempresa), se guarda el tipo contable (empresa) en el registro. Esta 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
Elimina el flag de recordar la contraseña del registro de Windows
Function EstacionActivada(sCodProd:WideString):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; const sCodCli: 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; const 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: sCodArt Código del artículo
sCodCli Código del cliente
sCodMon Código de la moneda
sTarifa Tarifa
nUnidades Unidades
sFecha Fecha
Valor retornado
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: sCodArt Código del artículo
sCodPro Código del proveedor
sCodMon Código de la moneda
nUnidades Unidades
sFecha Fecha
Valor retornado
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: sCodArt Código del artículo
sCodAlm Código del Almacén
Valor retornado
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
sCodArt Código del artículo
sCodCli Código del cliente
nUnidades Unidades
nDescuento Descuento aplicado en %
sFecha Fecha
Valor retornado
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: sCodMon Código de la moneda
sFecha Fecha
Valor retornado
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: sCodMonIni Código de la moneda inicial
sCodMonFin Código de la moneda final
sFecha Fecha
Valor retornado
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: nNumero Nº a redondear
nDecima Nº de decimales del resultado
Valor retornado
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: sCodArt Código del artículo
sCodIdi Código del idioma
Valor retornado
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: sCodArt Código del artículo
sCodCli Código del cliente
Valor retornado
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: sCodArt Código del artículo
sCodPro Código del proveedor
Valor retornado
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: 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
Valor 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.
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.
Valor retornado:
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 EstadoMaestro
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 Busca un registro por clave principal.
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.
NuevoCodigoNum
Función 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 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 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 especificando que su tipo 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 tipo 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 Valor del código.
function Seleccionar: String;
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
Params 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
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.
CampoResultado
String En esta propiedad podemos indicar el nombre del campo y la selección devolverá el valor de este campo.
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.
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
ValidarArtBloqueado
Lógico 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
AvisarCentroCosteCabecera
Lógico 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
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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 Procedimient Sirve el documento origen entero.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
94
o
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.
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.
CancelarComponente Procedimiento
Cancela una línea componente de un kit.
ConsumirFacturaAnticipo
Procedimiento
Permite consumir una factura de anticipo
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’
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 Retorna el estado del documento.
procedure Iniciar;
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 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
ValidarArtBloqueado
Lógico 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
AvisarCentroCosteCabecera
Lógico 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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
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.
CancelarComponente
Procedimiento Cancela una línea componente de un kit.
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 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
ValidarArtBloqueado
Lógico Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarRiesgo Lógico Asignar valor para activar o no los mensajes de aviso de riesgo
AvisarCentroCosteCabecera
Lógico 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
Modifica Procedimiento
Prepara el documento para poderlo modificar.
ModificaParcial Procedimiento
Prepara el documento para poder cambiar solamente el detalle de una línea
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
124
Cancela Procedimiento
Cancela la edición del documento.
Anade Función Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
NuevoComponente Procedimient Inicia una nueva línea componente de un kit.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
125
o
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.
CancelarComponente
Procedimiento
Cancela una línea componente de un kit.
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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto
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 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
ValidarArtBloqueado
Lógico 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
AvisarCentroCosteCabecera
Lógico 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
Modifica Procedimiento
Prepara el documento para poderlo modificar.
ModificaParcial Procedimie Prepara el documento para poder cambiar solamente el
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
139
nto detalle de una línea
Cancela Procedimiento
Cancela la edición del documento.
Anade Función Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
140
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.
CancelarComponente
Procedimiento
Cancela una línea componente de un kit.
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, 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.
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;
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 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.
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.
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);
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 Identificador de la línea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.
Procedure NuevoComponente;
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;
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 NUMLINDEP del fichero LINEDEPO.
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 NUMLINDEP del fichero LINEDEPO.
OBJETO OFERTA
Objeto que permite la creació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 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;
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 sCampo: WideString]: Currency;
property OmitirMensajes:WordBool;
property ActivarAlarmaCab : WordBool;
property ActivarAlarmaLin: WordBool;
property ValidarPrecios: WordBool;
property ValidarArtBloqueado: 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 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);
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
152
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 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.
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
ValidarArtBloqueado
Lógico Asignar valor para activar o no los mensajes de los artículos bloqueados
AvisarCentroCosteCabecera
Lógico 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
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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 Procedimient Cancela la línea en edición
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
154
o
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.
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.
CancelarComponente
Procedimiento
Cancela una línea componente de un kit.
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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
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 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.
Estado EstadoMaestro
Devuelve el estado en que se encuentra el objeto
AvisarStock Lógico Asignar valor para activar o no los mensajes de aviso de stock
*EstadoMaestro: Ver objeto Maestro.
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
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 Identificador del documento
Procedure Anade;
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 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 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 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.
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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto
*EstadoMaestro: Ver objeto Maestro.
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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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 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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto
*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 Añade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenará.
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.
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 EstadoMaestro
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 Lógico Para desactivar los mensajes visuales de nº asiento o asiento cuadrado, etc
Métodos Tipo Descripción
Iniciar Procedimiento
Inicia el objeto asiento.
Acabar Procedimiento
Cierra el objeto asiento.
Nuevo Procedimiento
Pasa al ESTM_NUEVO para comenzar a añadir apuntes.
Modifica Procedimiento
Sustituye el asiento especificado por el actual.
Borra Procedimiento
Borra el asiento especificado.
Anade Función Utiliza los apuntes introducidos para crear un nuevo asiento. Devuelve el número del asiento que se acaba de generar.
Cancela Procedimiento
Cancela el nuevo, pasa a ESTM_ACTIVO y se pierden los apuntes introducidos.
AApunte Procedimiento
Añade un apunte al asiento actual.
NuevoNax Procedimiento
Equivalente a Nuevo pero con más parámetros.
AApunteNax Procedimiento
Equivalente a Aapunte pero con más parámetros.
Desligar Procedimiento
Para desvincular el asiento de su cartera. Se indica el nº de asiento a desligar
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 EstadoMaestro
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 Procedimiento
Inicia el objeto cartera
Acabar Procedimiento
Cierra el objeto cartera
Nuevo/NuevoNax Procedimiento
Inicia un nuevo grupo de efectos en cartera.
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 Procedimiento
Borra los efectos del grupo de cartera indicado y prepara ese mismo grupo para la creación de nuevos efectos.
Borra Procedimiento
Borra los efectos del grupo de cartera indicado
Cancela Procedimiento
Cancela la edición del grupo de efectos.
NuevoVen Procedimiento
Inicia un nuevo vencimiento
AnadirVen Procedimiento
Añade el vencimiento definido.
ObtenerNumCartera
Función Retorna el siguiente número de cartera
PuedeModificarse Función Indica si un grupo de cartera puede modificarse
Editar Procedimiento
Para modificar manualmente los vencimientos de un NUMCARTERA
EditarVencimiento
Procedimiento
Pone en “modo edición” el vencimiento de un NUMCARTERA
GuardarVencimiento
Procedimiento
Guardar el vencimiento en edición
BorrarVencimiento
Procedimiento
Borrar un vencimiento
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 Procedimiento
Para realizar el cobro de efectos.
Pagar Procedimient Para realizar el pago de efectos.
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
216
o
Recibir Procedimiento
Para realizar la recepción de efectos.
CrearAnticipo Procedimiento
Para crear anticipos de cartera
ACuenta Procedimiento
Para consumir un anticipo de cartera sobre una factura.
CrearAnticipoNax Procedimiento
Para crear anticipos de cartera. Incluye el nº de documento contable.
Bloquear Procedimiento
Para bloquear un efecto y no permitir realizar con él más operaciones.
Enviar Procedimiento
Para marcar un efecto a un proveedor como enviado.
ActualizarRiesgo Procedimiento
Para actualizar el riesgo de un efecto al descuento cuyo vencimiento ha sido superado.
Devolver Procedimiento
Para indicar la devolución de un efecto cobrado indicando sus gastos.
ImputarGastos Procedimiento
Para imputar los gastos de una devolución a un cliente.
RecibirNax Procedimiento
Ídem que Recibir pero con más parámetros.
CobrarNax Procedimiento
Ídem que Cobrar pero con más parámetros.
PagarNax Procedimiento
Ídem que Pagar pero con más parámetros.
AnularCobro Procedimiento
Anular el cobro de un vencimiento.
AnularPago Procedimiento
Anular el pago de un vencimiento.
AnularRecepcion Procedimiento
Anular la recepción de un efecto.
AnularEnvio Procedimiento
Anular el envío de un efecto.
AnularBloqueo Procedimiento
Anular el bloqueo de un efecto.
AnularImputacion Procedimiento
Anular la imputación de gastos de una devolución al cliente.
AnularDevolucion Procedimiento
Anular una devolución.
AnularActualizacionRies Procedimient Anular la actualización de riesgo de un efecto al
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
217
go o descuento.
Ligar Procedimiento
Ligar un conjunto de efectos de cartera con una factura.
Desligar Procedimiento
Ligar un conjunto de efectos de cartera con una factura.
CobrarRemesa Procedimiento
Cobrar una remesa.
AnularCobroRemesa Procedimiento
Anular el cobro de una remesa.
PagarRemesa Procedimiento
Pagar una remesa (a proveedores).
AnularPagoRemesa Procedimiento
Anular el pago de una remesa (a proveedores).
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 total 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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto Agrupacion
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
229
Métodos Tipo Descripción
Iniciar Procedimiento
Inicia el objeto agrupación
Acabar Procedimiento
Cierra el objeto agrupación
Nueva Procedimiento
Inicia una nueva agrupación
Modifica Procedimiento
Prepara la agrupación para poder añadir y quitar efectos.
Borrar Procedimiento
Borrar un agrupación entera.
AnadirEfecto Función Añade efectos en la agrupación.
QuitarEfecto Procedimiento
Elimina efectos de la agrupación.
Anade Procedimiento
Añade los efectos a la base de datos.
Cancela Procedimiento
Cancela la edición de 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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto Remesa
Métodos Tipo Descripción
Iniciar Procedimiento
Inicia el objeto remesa
Acabar Procedimiento
Cierra el objeto remesa
Nueva Procedimiento
Inicia una nueva remesa.
Modifica Procedimiento
Prepara la remesa para poder añadir y quitar efectos.
AnadirEfecto Función Añade efectos en la remesa.
QuitarEfecto Procedimiento
Elimina efectos de la remesa.
Anade Procedimiento
Añade los efectos a la base de datos.
Cancela Procedimiento
Cancela la edición de 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 Procedimiento
Amortiza una cuota determinada.
Contabilizar Procedimiento
Genera las repercusiones contables de una cuota determinada.
AnularAmortizacion Procedimiento
Anula la amortización ya realizada.
AnularContabilizacion
Procedimiento
Anula la contabilización ya realizada.
BajaElemento Procedimiento
Cancela la amortización de un inmovilizado. A partir del momento en que se ejecute este procedimiento no se amortizarán más cuotas.
AnularCancelar Procedimiento
Anula la cancelación realizada mediante el 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, 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 Procedimiento
Inicia el objeto presupuesto
Acabar Procedimiento
Cierra el objeto presupuesto
Nuevo Procedimiento
Inicia un presupuesto para una cuenta contable.
Modifica Procedimiento
Prepara el objeto para poder modificar el presupuesto mensual de la cuenta indicada.
Anade Procedimiento
Añade el presupuesto a la base de datos.
property Mes[nMes: Integer]: 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.
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;
procedure Iniciar;
procedure Acabar;
procedure 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 el identificador de la propiedad IdOpcion con los parámetros añadidos con 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;
property Fichero: WideString writeonly;
property Parametros: OleVariant readonly;
property Destino: DestinoListado writeonly;
property Copias: Integer writeonly;
property Impresora: WideString writeonly;
property Bandeja: WideString writeonly;
property Modelo: WideString writeonly;
property MostrarProgreso: WordBool;
property IncluirFirmaDigital: WordBool; (NJEVO 802C)
procedure Iniciar;
procedure Acabar;
procedure Definir;
procedure 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;
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;
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.
property Impresora: WideString writeonly;
Nombre de la impresora en la que se imprimirá el listado.
property bandeja: WideString writeonly;
Nombre de la bandeja de la impresora por la que saldrá el listado.
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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto Estructura
*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 Devuelve el coste del producto acabado.
AnadeFase Procedimiento Añade una nueva fase a la estructura
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
244
AnadeComponente
Procedimiento Añade un nuevo componente a la estructura en la fase especificada.
AnadePerfilOperario
Procedimiento Añade un nuevo perfil de operario a la estructura en la fase especificada.
AnadePerfilMaquina
Procedimiento Añade un nuevo perfil de máquina a la estructura en la 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.
ListaComponentes
Function 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 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 especificando que su tipo 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: 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 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 EstadoMaestro
Devuelve el estado en que se encuentra el objeto Estructura
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.
Cancela Procedimiento
Cancela los cambios realizados en la orden.
Nuevo Procedimiento
Crea una nueva orden.
Borra Procedimiento
Borra la orden indicada.
Modifica Procedimiento
Carga la orden indicada para su edición.
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 Procedimiento
Busca y pone en edición el registro especificado.
BorrarLinea Procedimiento
Borra el registro especificado.
BorrarFase Procedimiento
Borra la fase especificada y todo su contenido.
FabricarOrden Procedimiento
Fabrica y consume todos los elementos de la orden.
FabricarFase Procedimiento
Fabrica y consume todos los elementos de la fase especificada
FabricarFaseProporcional Procedimient Fabrica y consume proporcionalmente a las
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
252
o unidades del artículo al que pertenece todos los elementos de la fase especificada
FabricarProductoPrevisto Procedimiento
Fabrica y consume todos los componentes/tiempos del producto acabado especificado.
FabricarProductoProporcional Procedimiento
Fabrica y consume todos los componentes/tiempos del producto acabado especificado proporcionalmente a las unidades a fabricar.
FabricarProductoSinConsumir Procedimiento
Solo fabrica el producto acabado especificado, sin rebajar los componentes.
ConsumirComponente Procedimiento
Consume unidades del componente especificado.
ConsumirOperario Procedimiento
Consume tiempo del operario especificado.
ConsumirMaquina Procedimiento
Consume tiempo de la máquina especificada.
FabricarProductoEnCurso Procedimiento
Hace la fabricación de un producto acabado en una orden de trabajo.
ConsumirComponteEnCurso Procedimiento
Hace el consumo de un componente en una orden de trabajo.
ConsumirMaquinaEnCurso Procedimiento
Hace el consumo de una máquina en una orden de trabajo.
ConsumirOperarioEnCurso Procedimiento
Hace el consumo de un operario en una orden de trabajo.
FabricarConsumirOperarionEnCurso
Procedimiento
Hace la fabricación y consumos de una operación de una orden de trabajo.
IndicarDetalle Procedimiento
Permite indicar los números de serie / lotes / … al fabricar / consumir, cuando no se conoce el identificadore de la línea de consumo / fabricación porque todavía no se ha grabado en la base de datios
AnadirDetalle Procedimiento
Permiter añadir líneas de detalle donde se indica el número de serie / lote / … cuando se conoce el identificador de la línea de consumo / fabricación
CambiarDetalle Procedimiento
Permite cambiar líneas de detalle cuando se conoce el identificador de la línea de consumo / fabricación
BorrarDetalle Procedimiento
Permite borrar líneas de detalle cuando se conoce el identificador de la línea de consumo / fabricación
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
253
TerminarOrden Procedimiento
Da por finalizada la orden de producción.
TerminarFase Procedimiento
Da por finalizada la fase especificada.
TerminarLinea Procedimiento
Da por finalizada la línea especificada.
DeshacerFabricacionProducto Procedimiento
Borra la fabricación especificada.
DeshacerConsumoComponente Procedimiento
Borra el consumo de componente especificado.
DeshacerConsumoMaquina Procedimiento
Borra el consumo de máquina especificada.
DeshacerConsumoOperario Procedimiento
Borra el consumo de operario especificado.
DeshacerOperacion Procedimiento
Borra todas las acciones de la operación especificada.
DeshacerTerminarOrden Procedimiento
Deshace la finalización de la orden.
DeshacerTerminarFase Procedimiento
Deshace la finalización de la fase.
DeshacerTerminarLinea Procedimiento
Deshace la finalización de la línea.
NuevoTrabajo Funcion Crea una nueva orden de trabajo
AbrirTrabajo Procedimiento
Abre una orden de trabajo.
CerrarTrabajo Procedimiento
Cierra una orden de trabajo.
BorrarTrabajo Procedimiento
Borra una orden de trabajo.
CambiarUnidadesProducto Procedimiento
Modifica las unidades a fabricar de un producto acabado.
ActualizarCostesComponentes Procedimiento
Carga los costes de los componentes de la orden con los precios actuales.
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 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 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 tipo 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 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 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 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 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 ó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 el 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’, siempre 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 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.
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
ActivarFacturado Tabla( string) Flag que se asigna para poderse facturar el expediente
ActivarPreFactura Tabla( Integer)
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 Añade los datos editados del expediente a la base de datos y devuelve el identificador con el que se almacenará.
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
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 = naxExpediente.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 tipo 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 tipo 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 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 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
ConRepercusiones
Boolean 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.
NumeroDocumento
String Permite indicar el número de documento del asiento del cobro.
UnAsiento Boolean Permite indicar si queremos un asiento por cada cobro parcial o todos los cobros parciales en el mismo asiento.
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
DespuesDeGuardarDocumento:
procedure(Documento: string; IdDoc: Double); stdcall;
Después de guardar cualquier documento de compra o venta
DespuesDeGuardarDocumentoV2
procedure(Documento: String; IdDoc: Double; Estado: Integer); stdcall;
Después de guardar cualquier documento de compra o venta
AntesDeGuardarDocumento
function(Documento: string; IdDoc: Double; var Cabecera: Variant; var Lineas: Variant): boolean; stdcall;
Antes de guardar cualquier documento de compra o venta
AntesDeGuardarDocumentoV2
function(Documento: string; IdDoc: Double; var Cabecera: Variant; var Lineas: Variant; Estado:Integer): boolean; stdcall;
Antes de guardar cualquier documento de compra o venta
RePintar function( Tabla: string): boolean; stdcall;
Actualiza una ventana con los nuevos datos
AntesDeGuardarLinea function(Documento: String; Cabecera: Variant; Linea: Variant): Variant; stdcall;
Antes de guardar la linea del documento
AntesDeGuardarLineaConDetalle
function(Documento: String; 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 procedure(Documento: String; Cabecera: Variant; Linea: Variant); stdcall;
Después de guardar la linea del documento
DespuesDeGuardarLineaConDetalle:
procedure(Documento: String; Cabecera: Variant; Linea: Variant; Detalle: Variant); stdcall;
Después de guardar linea del documento, pero en aquellos 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; Datos: Variant): boolean; stdcall;
Antes de guardar un efecto en cartera
DespuesDeGuardarEfecto procedure( Operacion: string; NumCartera: Double; NumVen: integer); stdcall;
Después de guardar un efecto en cartera
AntesDeGuardarRemesa function( Operacion, Tipo: string; Cabecera, Lineas: variant):boolean; stdcall;
Antes de guardar una remesa en cartera
DespuesDeGuardarRemesa procedure( Operacion, Tipo: string; IdRemesa: Double); stdcall;
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
APUNTES
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.
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
LISTADOS
Nombre Estructura Descripción
MethodEsListadoExterno function(IdListado: String): Boolean; stdcall;
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 Mantenimiento de programas externos.
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:
<ROW Nombre="TestParams" Descripcion="" Imagen="" Comando="WinParamCount2010.exe :usuario :password :empresa :carpeta :tipocontable" Categoria="GESTION"/>
FORMATO V8
En el caso de los menús en formato V8 veamos un ejemplo de llamada a un programa externo usando parámetros:
<OPCION Titulo="Aplicación para testear el pase de parámetros" Imagen="Imágenes/iconos/IMG_ESTADISTICAS.BMP" Externa="T" Id="Externo" Programa="WinParamCount2010.exe" Parametros=":Usuario :Password :Empresa :Carpeta :tipocontable" IdOrd="130020"></OPCION>
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
NEXUS SOFTWARE NEXUS PARA PROGRAMADORES
295
OBJETO OFERTA 150 OBJETO OPCION 239 OBJETO OPERACIONESCARTERA 213 OBJETO OPERACIONESINMOVILIZADO 234 OBJETO ORDENPRODUCCION 247 OBJETO PEDIDO 120 OBJETO PRESUPUESTO 236 OBJETO REGULARIZACION 163 OBJETO REMESA 231 OBJETO RESERVASTOCK 194 OBJETO SELECCION 88 OBJETO TRASPASO 171 OBJETO VARIOS 74 OPCION 34 OPCION (LLAMADA A OPCIONES VISUALES) 45 OPERACIONES MÁS IMPORTANTES 53 ORGANIZACIÓN DE NAX 40 OTRAS RELACIONES 17
P
PARÁMETROS EN PROGRAMA EXTERNOS 286 PRODUCCION 283
Q
QUE ES XML 31
R
REALIZAR OPERACIONES CON VENCIMIENTOS EXISTENTES 63
RECORRER REGISTROS DE UN MAESTRO 54 RELACIÓN DE OBJETOS DE NAX 40 REQUISITOS TÉCNICOS PREVIOS A LA
INSTALACIÓN 7
S
SELECCIÓN DE PROYECTOS EN FACTURAS 23 SELECCIÓN RESPONSABLES EN PROYECTOS 24 SEPARADOR 34, 36 SIGNIFICADO DE CADA PARÁMETRO 287, 290 SISTEMA 281 STOCKS 64
T
TRASLADO BASE DE DATOS (SIN DICCIONARIO) A OTRO SERVIDOR 28
TRASLADO BASE DE DATOS Y DICCIONARIO A OTRO SERVIDOR 27
TRASLADO, ELIMINACIÓN DEL DICCIONARIO 27
U
UBICACIÓN DE LAS DEFINICIONES DE LISTADOS Y DOCUMENTOS 5
USAR MAYÚSCULAS 6 USAR PREFIJOS 6 UTILIDADES 8
V
VARIOS (CONSULTAS) 49 VARIOS DICCIONARIOS 6 VER NUESTRAS TABLAS 22