Nexus Program Ac i On

301
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

description

Manual de programación del software de gestión nexus a3erp

Transcript of Nexus Program Ac i On

Page 1: Nexus Program Ac i On

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

Page 2: Nexus Program Ac i On

THIS MANUAL WAS PRODUCED USING COMPONENTONE DOC-TO-HELP.™

Page 3: Nexus Program Ac i On

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

Page 4: Nexus Program Ac i On

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

Page 5: Nexus Program Ac i On

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

Page 6: Nexus Program Ac i On

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

Page 7: Nexus Program Ac i On

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.

Page 8: Nexus Program Ac i On
Page 9: Nexus Program Ac i On

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:

Page 10: Nexus Program Ac i On

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.

Page 11: Nexus Program Ac i On

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.

Page 12: Nexus Program Ac i On

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

Page 13: Nexus Program Ac i On

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:

Page 14: Nexus Program Ac i On

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

Page 15: Nexus Program Ac i On

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

Page 16: Nexus Program Ac i On

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

Page 17: Nexus Program Ac i On

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.

Page 18: Nexus Program Ac i On

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.

Page 19: Nexus Program Ac i On

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

Page 20: Nexus Program Ac i On

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

Page 21: Nexus Program Ac i On

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:

Page 22: Nexus Program Ac i On

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.

Page 23: Nexus Program Ac i On

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.

Page 24: Nexus Program Ac i On

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.

Page 25: Nexus Program Ac i On

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.

Page 26: Nexus Program Ac i On

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

Page 27: Nexus Program Ac i On

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.

Page 28: Nexus Program Ac i On

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:

Page 29: Nexus Program Ac i On

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.

Page 30: Nexus Program Ac i On

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.

Page 31: Nexus Program Ac i On

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

Page 32: Nexus Program Ac i On

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”.

Page 33: Nexus Program Ac i On

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

Page 34: Nexus Program Ac i On

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

Page 35: Nexus Program Ac i On

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.

Page 36: Nexus Program Ac i On
Page 37: Nexus Program Ac i On

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

Page 38: Nexus Program Ac i On

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:

Page 39: Nexus Program Ac i On

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.

Page 40: Nexus Program Ac i On

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.

Page 41: Nexus Program Ac i On

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

Page 42: Nexus Program Ac i On

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.

Page 43: Nexus Program Ac i On

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):

Page 44: Nexus Program Ac i On

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.

Page 45: Nexus Program Ac i On

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

Page 46: Nexus Program Ac i On

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.

Page 47: Nexus Program Ac i On

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

Page 48: Nexus Program Ac i On

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

Page 49: Nexus Program Ac i On

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;

Page 50: Nexus Program Ac i On

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

Page 51: Nexus Program Ac i On

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

Page 52: Nexus Program Ac i On

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

Page 53: Nexus Program Ac i On

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;

Page 54: Nexus Program Ac i On

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;

Page 55: Nexus Program Ac i On

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

Page 56: Nexus Program Ac i On

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.

Page 57: Nexus Program Ac i On

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")

Page 58: Nexus Program Ac i On

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.

Page 59: Nexus Program Ac i On

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

Page 60: Nexus Program Ac i On

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

Page 61: Nexus Program Ac i On

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;

Page 62: Nexus Program Ac i On

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);

Page 63: Nexus Program Ac i On

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

Page 64: Nexus Program Ac i On

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;

Page 65: Nexus Program Ac i On

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

Page 66: Nexus Program Ac i On

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:

Page 67: Nexus Program Ac i On

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.

Page 68: Nexus Program Ac i On

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;

Page 69: Nexus Program Ac i On

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.

Page 70: Nexus Program Ac i On

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

Page 71: Nexus Program Ac i On

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

Page 72: Nexus Program Ac i On

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;

Page 73: Nexus Program Ac i On

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);

Page 74: Nexus Program Ac i On

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;

Page 75: Nexus Program Ac i On

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.

Page 76: Nexus Program Ac i On

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);

Page 77: Nexus Program Ac i On

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).

Page 78: Nexus Program Ac i On

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

Page 79: Nexus Program Ac i On

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

Page 80: Nexus Program Ac i On

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;

Page 81: Nexus Program Ac i On

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)

Page 82: Nexus Program Ac i On

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

Page 83: Nexus Program Ac i On

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

Page 84: Nexus Program Ac i On

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;

Page 85: Nexus Program Ac i On

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

Page 86: Nexus Program Ac i On

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... .

Page 87: Nexus Program Ac i On

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

Page 88: Nexus Program Ac i On

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.

Page 89: Nexus Program Ac i On

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

Page 90: Nexus Program Ac i On

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.

Page 91: Nexus Program Ac i On

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;

Page 92: Nexus Program Ac i On

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;

Page 93: Nexus Program Ac i On

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);

Page 94: Nexus Program Ac i On

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

Page 95: Nexus Program Ac i On

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

Page 96: Nexus Program Ac i On

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;

Page 97: Nexus Program Ac i On

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

Page 98: Nexus Program Ac i On

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

Page 99: Nexus Program Ac i On

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.

Page 100: Nexus Program Ac i On

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’

Page 101: Nexus Program Ac i On

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

Page 102: Nexus Program Ac i On

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.

Page 103: Nexus Program Ac i On

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

Page 104: Nexus Program Ac i On

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;

Page 105: Nexus Program Ac i On

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

Page 106: Nexus Program Ac i On

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;

Page 107: Nexus Program Ac i On

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.

Page 108: Nexus Program Ac i On

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.

Page 109: Nexus Program Ac i On

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.

Page 110: Nexus Program Ac i On

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.

Page 111: Nexus Program Ac i On

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;

Page 112: Nexus Program Ac i On

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;

Page 113: Nexus Program Ac i On

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

Page 114: Nexus Program Ac i On

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

Page 115: Nexus Program Ac i On

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.

Page 116: Nexus Program Ac i On

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

Page 117: Nexus Program Ac i On

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

Page 118: Nexus Program Ac i On

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

Page 119: Nexus Program Ac i On

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

Page 120: Nexus Program Ac i On

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);

Page 121: Nexus Program Ac i On

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);

Page 122: Nexus Program Ac i On

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.

Page 123: Nexus Program Ac i On

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);

Page 124: Nexus Program Ac i On

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.

Page 125: Nexus Program Ac i On

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

Page 126: Nexus Program Ac i On

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;

Page 127: Nexus Program Ac i On

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);

Page 128: Nexus Program Ac i On

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

Page 129: Nexus Program Ac i On

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

Page 130: Nexus Program Ac i On

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.

Page 131: Nexus Program Ac i On

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

Page 132: Nexus Program Ac i On

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

Page 133: Nexus Program Ac i On

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.

Page 134: Nexus Program Ac i On

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

Page 135: Nexus Program Ac i On

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

Page 136: Nexus Program Ac i On

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;

Page 137: Nexus Program Ac i On

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.

Page 138: Nexus Program Ac i On

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);

Page 139: Nexus Program Ac i On

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.

Page 140: Nexus Program Ac i On

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;

Page 141: Nexus Program Ac i On

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;

Page 142: Nexus Program Ac i On

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;

Page 143: Nexus Program Ac i On

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

Page 144: Nexus Program Ac i On

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

Page 145: Nexus Program Ac i On

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.

Page 146: Nexus Program Ac i On

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.

Page 147: Nexus Program Ac i On

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

Page 148: Nexus Program Ac i On

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

Page 149: Nexus Program Ac i On

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

Page 150: Nexus Program Ac i On

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);

Page 151: Nexus Program Ac i On

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

Page 152: Nexus Program Ac i On

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

Page 153: Nexus Program Ac i On

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.

Page 154: Nexus Program Ac i On

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.

Page 155: Nexus Program Ac i On

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;

Page 156: Nexus Program Ac i On

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;

Page 157: Nexus Program Ac i On

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);

Page 158: Nexus Program Ac i On

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.

Page 159: Nexus Program Ac i On

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

Page 160: Nexus Program Ac i On

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

Page 161: Nexus Program Ac i On

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

Page 162: Nexus Program Ac i On

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

Page 163: Nexus Program Ac i On

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

Page 164: Nexus Program Ac i On

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

Page 165: Nexus Program Ac i On

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

Page 166: Nexus Program Ac i On

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

Page 167: Nexus Program Ac i On

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.

Page 168: Nexus Program Ac i On

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.

Page 169: Nexus Program Ac i On

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;

Page 170: Nexus Program Ac i On

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

Page 171: Nexus Program Ac i On

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

Page 172: Nexus Program Ac i On

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

Page 173: Nexus Program Ac i On

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.

Page 174: Nexus Program Ac i On

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.

Page 175: Nexus Program Ac i On

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.

Page 176: Nexus Program Ac i On

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.

Page 177: Nexus Program Ac i On

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;

Page 178: Nexus Program Ac i On

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

Page 179: Nexus Program Ac i On

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.

Page 180: Nexus Program Ac i On

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

Page 181: Nexus Program Ac i On

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

Page 182: Nexus Program Ac i On

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;

Page 183: Nexus Program Ac i On

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);

Page 184: Nexus Program Ac i On

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.

Page 185: Nexus Program Ac i On

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

Page 186: Nexus Program Ac i On

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;

Page 187: Nexus Program Ac i On

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.

Page 188: Nexus Program Ac i On

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’)

Page 189: Nexus Program Ac i On

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

Page 190: Nexus Program Ac i On

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.

Page 191: Nexus Program Ac i On

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;

Page 192: Nexus Program Ac i On

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.

Page 193: Nexus Program Ac i On

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.

Page 194: Nexus Program Ac i On

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.

Page 195: Nexus Program Ac i On

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.

Page 196: Nexus Program Ac i On

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

Page 197: Nexus Program Ac i On

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

Page 198: Nexus Program Ac i On

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;

Page 199: Nexus Program Ac i On

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.

Page 200: Nexus Program Ac i On

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.

Page 201: Nexus Program Ac i On

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

Page 202: Nexus Program Ac i On

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

Page 203: Nexus Program Ac i On

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;

Page 204: Nexus Program Ac i On

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.

Page 205: Nexus Program Ac i On

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);

Page 206: Nexus Program Ac i On

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

Page 207: Nexus Program Ac i On

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

Page 208: Nexus Program Ac i On

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.

Page 209: Nexus Program Ac i On

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.

Page 210: Nexus Program Ac i On

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.

Page 211: Nexus Program Ac i On

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;

Page 212: Nexus Program Ac i On

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

Page 213: Nexus Program Ac i On

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.

Page 214: Nexus Program Ac i On

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

Page 215: Nexus Program Ac i On

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

Page 216: Nexus Program Ac i On

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

Page 217: Nexus Program Ac i On

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.

Page 218: Nexus Program Ac i On

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.

Page 219: Nexus Program Ac i On

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;

Page 220: Nexus Program Ac i On

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;

Page 221: Nexus Program Ac i On

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.

Page 222: Nexus Program Ac i On

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

Page 223: Nexus Program Ac i On

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.

Page 224: Nexus Program Ac i On

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.

Page 225: Nexus Program Ac i On

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.

Page 226: Nexus Program Ac i On

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.

Page 227: Nexus Program Ac i On

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.

Page 228: Nexus Program Ac i On

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.

Page 229: Nexus Program Ac i On

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.

Page 230: Nexus Program Ac i On

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.

Page 231: Nexus Program Ac i On

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.

Page 232: Nexus Program Ac i On

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);

Page 233: Nexus Program Ac i On

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.

Page 234: Nexus Program Ac i On

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

Page 235: Nexus Program Ac i On

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.

Page 236: Nexus Program Ac i On

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.

Page 237: Nexus Program Ac i On

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

Page 238: Nexus Program Ac i On

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.

Page 239: Nexus Program Ac i On

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.

Page 240: Nexus Program Ac i On

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.

Page 241: Nexus Program Ac i On

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.

Page 242: Nexus Program Ac i On

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.

Page 243: Nexus Program Ac i On

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;

Page 244: Nexus Program Ac i On

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.

Page 245: Nexus Program Ac i On

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

Page 246: Nexus Program Ac i On

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;

Page 247: Nexus Program Ac i On

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.

Page 248: Nexus Program Ac i On

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;

Page 249: Nexus Program Ac i On

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

Page 250: Nexus Program Ac i On

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

Page 251: Nexus Program Ac i On

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;

Page 252: Nexus Program Ac i On

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);

Page 253: Nexus Program Ac i On

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.

Page 254: Nexus Program Ac i On

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;

Page 255: Nexus Program Ac i On

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;

Page 256: Nexus Program Ac i On

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.

Page 257: Nexus Program Ac i On

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

Page 258: Nexus Program Ac i On

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

Page 259: Nexus Program Ac i On

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.

Page 260: Nexus Program Ac i On

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)

Page 261: Nexus Program Ac i On

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

Page 262: Nexus Program Ac i On

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.

Page 263: Nexus Program Ac i On

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);

Page 264: Nexus Program Ac i On

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.

Page 265: Nexus Program Ac i On

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”).

Page 266: Nexus Program Ac i On

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.

Page 267: Nexus Program Ac i On

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).

Page 268: Nexus Program Ac i On

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.

Page 269: Nexus Program Ac i On

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)

Page 270: Nexus Program Ac i On

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.

Page 271: Nexus Program Ac i On

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.

Page 272: Nexus Program Ac i On

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

Page 273: Nexus Program Ac i On

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;

Page 274: Nexus Program Ac i On

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

Page 275: Nexus Program Ac i On

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.

Page 276: Nexus Program Ac i On

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

Page 277: Nexus Program Ac i On

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.

Page 278: Nexus Program Ac i On

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)

Page 279: Nexus Program Ac i On

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

Page 280: Nexus Program Ac i On

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’

Page 281: Nexus Program Ac i On

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

Page 282: Nexus Program Ac i On

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)

Page 283: Nexus Program Ac i On

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.

Page 284: Nexus Program Ac i On

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

Page 285: Nexus Program Ac i On

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);

Page 286: Nexus Program Ac i On

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

Page 287: Nexus Program Ac i On

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

Page 288: Nexus Program Ac i On

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

Page 289: Nexus Program Ac i On

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

Page 290: Nexus Program Ac i On

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

Page 291: Nexus Program Ac i On

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).

Page 292: Nexus Program Ac i On

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.

Page 293: Nexus Program Ac i On

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.

Page 294: Nexus Program Ac i On

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.

Page 295: Nexus Program Ac i On

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

Page 296: Nexus Program Ac i On

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.

Page 297: Nexus Program Ac i On

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.

Page 298: Nexus Program Ac i On
Page 299: Nexus Program Ac i On

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

Page 300: Nexus Program Ac i On

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

Page 301: Nexus Program Ac i On

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