Sie sind auf Seite 1von 301

NEXUS PARA PROGRAMADORES

VERSIN 8

NEXUS SOFTWARE
CONJUNTO DE HERRAMIENTAS PARA PODER ADAPTAR Y MEJORAR LAS FUNCIONALIDADES DE NEXUS SEGN LAS NECESIDADES DE CADA EMPRESA. CMO DESARROLLAR DLLS, USAR DICCIONARIOS, PROGRAMAR CON NAX, ETC

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

CONTENIDO
NEXUS PARA PROGRAMADORES 1
INTRODUCCIN .................................................................................................................................. 1 DICCIONARIO ............................................................................................................................ 1 MENUS...................................................................................................................................... 1 DLL ............................................................................................................................................ 1 NAX ........................................................................................................................................... 1

DICCIONARIO

INTRODUCCIN .................................................................................................................................. 3 ESTRUCTURA DE LA APLICACIN ....................................................................................................... 3 DIRECTORIO PRINCIPAL DE NEXUS........................................................................................... 3 UBICACIN DE LAS DEFINICIONES DE LISTADOS Y DOCUMENTOS.......................................... 5 CONFIGURACIN NEXUS .......................................................................................................... 5 NORMATIVA EN LA CREACIN DE LIBRERAS .................................................................................... 6 APLICACIN DE LOS CAMPOS ADICIONALES............................................................................ 6 VARIOS DICCIONARIOS ............................................................................................................. 6 USAR MAYSCULAS ................................................................................................................. 6 USAR PREFIJOS ......................................................................................................................... 6 DICCIONARIO NEXUS ................................................................................................................ 6 DICCIONARIO EN INSTALACIN CLIENTE ................................................................................. 6 INSTALACIN DEL DICCIONARIO ........................................................................................................ 7 REQUISITOS TCNICOS PREVIOS A LA INSTALACIN ............................................................... 7 INSTALACIN DEL DICCIONARIO .............................................................................................. 7 REA DEL TRABAJO DEL DICCIONARIO .............................................................................................. 7 MEN SUPERIOR ...................................................................................................................... 8 MEN LATERAL ........................................................................................................................ 9 DATOS GENERALES DE NUESTRA LIBRERA .............................................................................. 9 CREACIN DE UNA TABLA NUEVA ................................................................................................... 10 COLUMNAS ............................................................................................................................. 11 CREACIN DE NDICES ............................................................................................................ 14 CLAVES FORNEAS ................................................................................................................. 15 INTEGRIDAD ........................................................................................................................... 17 OTRAS RELACIONES ................................................................................................................ 17 NUEVO DICCIONARIO PASO A PASO ................................................................................................ 17 GESTIN DE PROYECTOS ........................................................................................................ 17 CREAR NUEVO DICCIONARIO ................................................................................................. 18 CREACIN DE TABLAS NUEVAS .............................................................................................. 19 VER NUESTRAS TABLAS .......................................................................................................... 22 AADIR SELECCIONES DE NUESTRAS TABLAS .................................................................................. 22 SELECCIN DE PROYECTOS EN FACTURAS ............................................................................. 23 SELECCIN RESPONSABLES EN PROYECTOS .......................................................................... 24

CASO ESPECIAL TABLA CLIENTES...................................................................................................... 24 ACTIVACIN Y DISEO DEL DICCIONARIO ....................................................................................... 25 TRASLADO, ELIMINACIN 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

MENS EXTERNOS

31

INTRODUCCIN ................................................................................................................................ 31 QUE ES XML ............................................................................................................................ 31 CREACIN DEL FICHERO DE MEN ........................................................................................ 31 ESTRUCTURA XML ............................................................................................................................ 32 MEN LATERAL ...................................................................................................................... 33 BARRAS DE MENS ................................................................................................................ 35 IMGENES ........................................................................................................................................ 36

NAX

37
QU ES NAX (NEXUS ACTIVEX)? ..................................................................................................... 37 INSTALACIN DE NAX ...................................................................................................................... 39 LICENCIAS NAX RUNTIME / NEXUS .................................................................................................. 39 ORGANIZACIN DE NAX ................................................................................................................... 40 RELACIN 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 (CONEXIN) ........................................................................................................................ 42 NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIN ................. 42 MTODOS 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 PARMETROS ........................................... 45 EJEMPLO 2: EDICIN DE LA FICHA CON PARMETOS............................................................ 46 LISTADO (IMPRESIN DE INFORMES) .............................................................................................. 47 EJEMPLO 1: PRESENTACIN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI................. 47 EJEMPLO 2: FICHERO PDF CON EL LISTADO DE CLIENTES EN DELPHI .................................... 47 EJEMPLO 3: PRESENTACIN PRELIMINAR DEL LISTADO DE CLIENTES EN VB. ....................... 48 EJEMPLO 4: IMPRIMIR UN EFECTO FORMATO RECIBO EN DELPHI........................................ 48 VARIOS (CONSULTAS)....................................................................................................................... 49 CONSULTAS SEGN CRITERIOS DE NEXUS ............................................................................. 49 EJEMPLO 1: CONSULTAS SEGN LOS CRITERIOS DE NEXUS. ................................................. 50 EJEMPLO 2: USO DE LOS IDENTIFICADORES DE NEXUS PARA OBTENER UN IDENTIFICADOR PROPIO ......................................................................................................... 50 MAESTROS........................................................................................................................................ 51 OPERACIONES MS IMPORTANTES ....................................................................................... 53 DOCUMENTOS.................................................................................................................................. 55 EJEMPLO EN DELPHI DE LA CREACIN DE UNA NUEVA FACTURA ........................................ 55 APUNTES .......................................................................................................................................... 57 DOS FORMAS DE TRABAJAR CON ASIENTOS.......................................................................... 59

CARTERA ........................................................................................................................................... 61 CREACIN, MODIFICACIN Y BORRADO DE VENCIMIENTOS ................................................ 61 EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AADIR 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: UTILIZACIN GENRICA DEL OBJETO EXPEDIENTES........................................... 66 COBRO/ANULACIN PARCIAL DE REMESAS .................................................................................... 67 EJEMPLO 1: UTILIZACIN COBRO PARCIAL DE REMESAS ...................................................... 67 EJEMPLO 2: UTILIZACIN DE ANULAR COBRO PARCIAL DE REMESAS................................... 67

OBJETOS NAX

69

INTRODUCCIN ................................................................................................................................ 69 OBJETO ENLACE................................................................................................................................ 70 OBJETO VARIOS ................................................................................................................................ 74 OBJETO MAESTRO ............................................................................................................................ 80 OBJETO SELECCION .......................................................................................................................... 88 OBJETO FACTURA ............................................................................................................................. 89 OBJETO ALBARAN........................................................................................................................... 105 OBJETO PEDIDO.............................................................................................................................. 120 OBJETO DEPSITO.......................................................................................................................... 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

PROGRAMACIN DLLS

281

INTRODUCCIN .............................................................................................................................. 281 INSTALACIN.................................................................................................................................. 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 PARMETROS EN PROGRAMA EXTERNOS ..................................................................................... 286 SIGNIFICADO DE CADA PARMETRO ................................................................................... 287

PARMETROS EN EJECUTABLES EXTERNOS

289

INTRODUCCIN .............................................................................................................................. 289 LLAMADA DESDE EL MEN ............................................................................................................ 290 FORMATO V7 ........................................................................................................................ 290 FORMATO V8 ........................................................................................................................ 290 LLAMADAS A PROGRAMAS EXTERNOS .......................................................................................... 290 SIGNIFICADO DE CADA PARMETRO ................................................................................... 290

NDICE

293

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 1

NEXUS PARA PROGRAMADORES


INTRODUCCIN
Este manual, pretende recoger todas las opciones que un programador puede realizar con Nexus.

DICCIONARIO
Aplicacin que permite poder acceder a la base de datos y cambiar o ampliar la estructura, ya sea aadiendo tablas, campos, etc.

MENUS
Permite poder editar los mens de Nexus. Por ejemplo aadir opciones, por ejemplo los mens para acceder a las aplicaciones externas, para un acceso directo, cambiar organizacin, quitar, etc.

DLL
Permite realizar pequeas programaciones para que Nexus cambie alguna operacin, por ejemplo aadir un clculo distinto al guardar un documento.

NAX
NAX es una librera ActiveX que permite a terceros conectarse con Nexus. Los objetivos de la librera NAX entre otros: Simplificar la tarea de utilizar la lgica de negocio de la aplicacin Nexus a travs de una serie de objetos con mtodos y propiedades que permiten manejar esa lgica. Poder llamar a cualquiera de las opciones visuales de Nexus desde la aplicacin desarrollada.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 3

DICCIONARIO
INTRODUCCIN
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 aadir 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 aplicacin en un principio estndar, 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 actualizacin o llammoslo as, la gestin 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 APLICACIN
En primer lugar, antes de iniciarnos en la aplicacin del diccionario, es necesario conocer la estructura de Nexus, como estn definidos sus directorios ya que conocer su estructura es imprescindible para la creacin de diccionarios.

DIRECTORIO PRINCIPAL DE NEXUS


En el directorio de instalacin, se generan los siguientes subdirectorios o carpetas:

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 4

A continuacin se detalla que puede necesitar el programador: Ejemplos: En esta carpeta contiene ejemplos en lenguajes de programacin Delphi y V.B. para ser utilizados con Nax.Dll y Naxrt.dll. Tambin viene el manual del NAX y documentacin complementaria del mismo. (opcionesnexusListados.XML, OpcionesVisualesNexus.xls) Empresas modelo: En esta carpeta estn todas aquellas empresas creadas para realizar demostraciones. Hlp: Contine los archivos de ayuda de la aplicacin. Imgenes: Contiene las imgenes de la aplicacin. Interface: Contiene los ficheros necesarios para poder trabajar con Nax Mens: Donde se ubica el fichero xml para la creacin de los mens del programa. Mdulos: En esta carpeta estn los ficheros necesarios para la confeccin de los modelos de Hacienda. Plantillas: Guarda diversas plantillas de ejemplo de opciones de la aplicacin, como pueden ser cartas, SQL, hojas de clculo, etc.. Redemption: Contiene los ficheros para la configuracin del correo electrnico. Scripts: Utilidades varias para reparar, corregir, datos en la base de datos SQL. Sistema: Contiene una carpeta por cada mdulo o programa a integrar en Nexus. En cada una de ellas estn las tablas de la estructura de la aplicacin. En el directorio principal existen las tablas con informacin compartida para todas las empresas que el usuario trabaje, por ejemplo: las entidades bancarias, las administraciones y delegaciones de Hacienda y los cdigos postales.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 5

Skins: Donde se guardan los ficheros de los temas visuales del programa.

UBICACIN 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 definicin de listados y documentos. Sistema: Existe el fichero Listados.ini en el cual detalla el nombre de cada uno de los listados definidos.

CONFIGURACIN NEXUS
En el directorio C:\Documents and settings\ nombre usuario\Datos de programa\SIE, se guarda la configuracin del programa, disposicin pantallas, selecciones, etc. para ese usuario.

En las diferentes carpetas es donde se almacena la configuracin: 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 configuracin del orden y ancho de las columnas, de los grids, tal como las ha configurado el usuario. Selecciones: Guarda la configuracin del orden y ancho de las columnas, de las selecciones, tal como las ha configurado el usuario.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 6 Sistema: Guarda la configuracin del programa, nombre del servidor, impresora, ubicacin listados etc.

NORMATIVA EN LA CREACIN DE LIBRERAS


APLICACIN DE LOS CAMPOS ADICIONALES
Cuando se quiera aadir campos adicionales a las tablas propias de Nexus, hay que tener en cuenta que no son de aplicacin en cualquier parte del programa. Podemos aadir campos adicionales en las siguientes tablas Nexus: Ficheros maestros. Consideramos ficheros maestros aquellas opciones de men donde tenemos pantalla de seleccin, edicin, aadir y borrado de registros. Cabecera de documentos del circuito de compra y venta. Comprende las ofertas, pedidos, todo tipo de albaranes y facturas a excepcin de las facturas peridicas. Lneas de documentos del circuito de compra y venta . Comprende las ofertas, pedidos, todo tipo de albaranes y facturas a excepcin de las facturas peridicas. Cabeceras de rdenes de produccin Albaranes de regularizacin y traspaso

VARIOS DICCIONARIOS
En una instalacin de Nexus puede haber varios diccionarios activos. Esto facilita que podamos desarrollar diccionarios especficos para cada mdulo de Nexus e instalar a los clientes slo el diccionario que precisa.

USAR MAYSCULAS
El nombre de los campos y tablas deben escribirse forzosamente en maysculas 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 tcnico podemos llamarle TECNICO_Z. En caso de que diseemos un diccionario que contenga algn 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 versin o revisin, perderamos nuestros cambios.

DICCIONARIO EN INSTALACIN CLIENTE


Si queremos instalar un diccionario desarrollado por nosotros en un cliente y desde sus oficinas no vamos a realizar cambios en nuestro desarrollo, no es preciso instalar el programa diccionario, es

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 7 suficiente con copiar la carpeta del diccionario desarrollado en el directorio C:\Archivos de programa\SIE\NEXUS\Sistema

INSTALACIN DEL DICCIONARIO


REQUISITOS TCNICOS PREVIOS A LA INSTALACIN
No tiene requisitos previos, pero hay que respetar las versiones de los productos, es decir, esta versin slo puede trabajar con la misma versin del ERP Nexus. NOTA: La flexibilidad entre versiones (ERP Nexus y Diccionario) slo es para las revisiones o los update packs.

INSTALACIN DEL DICCIONARIO


Realizamos la instalacin 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, automticamente 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 instalacin 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 instalacin que indica el programa por defecto.

REA DEL TRABAJO DEL DICCIONARIO


Una vez ya tenemos instalado el diccionario, al ejecutar el icono nos aparece la siguiente pantalla de trabajo:

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 8 En la parte superior, tenemos un men principal, con sus diferentes opciones.

MEN SUPERIOR

GENERAL

Desde la pestaa General, es donde tratamos con el fichero de la librera, 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 histrico de diccionarios abiertos. Si borramos el histrico 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 DEMOSTRACIN: Para crear una empresa de demostracin en ficheros xml que posteriormente podremos importar con Nexus CONVERTIR ESTRUCTURA XML A UNICODE : Esta opcin es la que nos convierte la estructura de nuestros diccionarios de versiones anteriores para adaptarlo a la versin 8 de Nexus. CREAR NDICES POR CLAVE FORNEA: Como que ya se tratan las Foreing Key, se ha creado una opcin para generar un ndice de forma automtica por cada una de

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 9 ellas para facilitar el trabajo del SQL server a la hora de aplicar la integridad referencial. Ayuda: En este men podremos descargar la documentacin 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 forneas. 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 ayudarn a dar mayor escalabilidad a nuestra base de datos. (Vistas, Funciones, Trigas, Procedimientos, Constraints, etc.)

DATOS GENERALES DE NUESTRA LIBRERA


En General, es donde indicaremos, los datos de nuestra librera, en el ejemplo se abierto la librera de Nexus y como vemos, muestra la informacin de SIE. Seleccionar la categora General General

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 10

CREACIN DE UNA TABLA NUEVA


Para la creacin de nuestras tablas, hay que seleccionar la categora General Tablas. En este apartado le indicamos las nuevas tablas adicionales o las tablas de Nexus que vamos a utilizar.

Por columnas tenemos: Tabla: denominacin (en maysculas siempre) del nombre de la tabla. Descripcin: nombre de la tabla tal y como se va a ver desde Nexus. No es necesario que est en maysculas. Estado: puede ser de tres tipos: General: para las tablas genricas. Interna: para tablas especiales con tratamientos especiales. No aplicable a desarrollos DVA si no es para extender tablas existentes de Nexus. Virtual: para tablas especiales asociadas a un vista SQL para tratamientos especiales. No aplicable a desarrollos DVA si no es para extender tablas existentes de Nexus. NOTA: Para generar tablas nuevas hay que indicar en esta propiedad ESTADO General. Para agregar campos en tablas existentes del ERP Nexus hay que indicar el

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 11 mismo estado que Nexus, para ello deberemos de abrir previamente el diccionario de Nexus y ver su especificacin. 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 aadir 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 pequeas y saldrn en el men de Ficheros Adicionales. Jerarqua: Este tipo no se usa. Obsoleta: Se marca cuando deseamos darle est tipologa a una tabla y no deseamos utilizar ms 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 cuo o aquellos campos de Nexus que deseamos insertar en nuestro diccionario. La novedad de la versin 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 sern los campos de dicha tabla. En la parte inferior, podemos cambiar la tabla:

En el desplegable primero, es el nombre o descripcin de la tabla, el segundo desplegable, es el nombre fsico de la tabla en la base de datos. Veamos la informacin que hay que indicar para la creacin de los campos de cada una de las tablas.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 12

Columna: es este apartado debemos indicar el nombre del campo adicional que estamos creando o utilizando. Siempre debe escribirse en maysculas. Descripcin: 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 ms 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 numrico. Text: para campos memo con contenido extendido. Como ejemplo tenemos el campo observaciones de la ficha del artculo. Varchar: para el resto de los casos. Longitud: indica el tamao mximo 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 ningn error, debemos indicarle que admite nulos. De este modo los registros anteriores a la incorporacin del campo, al indicar que admite nulos, no producirn ningn error. Defecto: Valor por defecto que se desea rellenar este campo. Cuadrado: indica si el contenido queda justificado a la derecha.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 13

Descr. tabla (descripcin tabla): si tenemos activa esta opcin, estamos indicando que deseamos que nos muestre este campo al hacer una vinculacin de esta tabla origen con otra tabla de destino. Para cada tabla, slo debe haber un campo con la opcin descr. tabla activada. Calculado: no podemos usar este campo en nuestros diccionarios. Versin, Revisin, Parche: El diccionario, toma por defecto los valores que tienen los respectivos campos en la pestaa 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 informacin prefijada. La informacin 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, sera tal como se muestra en la imagen anterior T;F.

Valor defecto: si en el apartado anterior hemos indicado varios datos, aqu podemos indicar con que valor queremos que rellene el campo de modo predeterminado al hacer un registro nuevo. En mantenimientos: en este apartado debemos seleccionar el modo de mantenimiento del campo que estamos creando. Este puede ser

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 14 Slo ver: el campo slo 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 edicin, lo que permite ver, insertar informacin 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 lneas de factura) esto no siempre es de aplicacin. De este modo, podemos elegir entre:

Sin editor: opcin que aparece por defecto y que debemos usar cuando en el apartado anterior, en mantenimientos, hemos elegido la opcin de no ver. Campo: opcin a seleccionar para campos donde introducimos informacin alfanumrica como el nombre de la ficha del cliente. Combo: con esta opcin indicamos que el campo es del tipo combo box o tambin llamado desplegable. Check: opcin para determinar que se trata de un campo check box. Memo: opcin a utilizar para los campos donde la informacin a introducir es extensa tal y como en Nexus lo usamos para el campo observaciones de la ficha del artculo. Imagen: Es un campo en el nos interesa insertar una imagen. Depende del campo: apartado creado para uso interno de SIE.

CREACIN DE NDICES

En este apartado, tenemos que indicar exclusivamente para tablas nuevas creadas por nosotros que campo o campos tendremos los ndices. As tenemos: ndice: aqu indicamos el nombre del ndice que estamos creando. Debemos inventarnos el nombre del ndice. Como siempre tenemos que introducirlo en

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 15 maysculas 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 fornea 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 aplicacin de ndices agrupados que requiere programacin adicional para su uso.

CLAVES FORNEAS
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 situndose en la tabla hija. (Ejemplo: Para la integridad de clientes, nos situbamos en sta he indicbamos 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 sito en facturas e indico su relacin con clientes). En la pestaa de claves forneas 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 vinculacin 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 vinculacin en la tabla externa. Tipo de relacin: la vinculacin puede ser de dos tipos:

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 16 Restrictiva: usaremos este tipo de relacin para el supuesto de querer borrar registros de la tabla origen y si estos ya estn en la tabla de destino no nos va a permitir su borrado. Un ejemplo de esta relacin 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 relacin restrictiva. En cascada: este tipo de relacin la usamos cuando deseamos borrar un registro de la tabla origen y aunque haya datos en la tabla de destino, tambin podemos borrarla. Por ejemplo en Nexus tenemos una tabla de contactos donde guardamos los contactos para cada almacn. Como ambas tablas tienen una relacin en cascada, al borrar un almacn, tambin se borran los contactos de este almacn en la tabla de contactos. Tipo de relacin Actualizacin: No se usa. Se utilizar en la prxima versin de diccionario que lleva integridad en la base de datos. Filtro principal y filtro externa: para uso interno de SIE. Requiere programacin adicional para su uso. Aplicar en BD como: Slo en 820.Aqu especificaremos el tipo de relacin que se establecer. ForeignKey o constranints. ForeingKey: Slo en 820.La relacin en la base de datos es crear una ForeignKey para crear una integridad referencial en la base de datos Constraint: Slo 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 estn englobados entre parntesis. Ejemplo: (TIPO = 'PROVEED') o as ((TIPO = 'PROVEED') AND (TIPO = 'CLIENTES')) Filtro principal y filtro externo: para uso interno de SIE. Requiere programacin adicional para su uso. Nota: Para realizar una vinculacin entre tablas nuestras y otras que ya existen en Nexus, debemos hacer que estas tablas de Nexus tambin estn en nuestro diccionario. Por lo tanto, debemos escribir en la subpestaa 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 vinculacin es suficiente. Las vinculaciones se realizan siempre desde las tablas que son origen de los datos. Es decir debemos ir a la subpestaa integridad de la tabla origen de los datos para hacer las vinculaciones correspondientes con otras tablas. Una misma tabla puede vincularse con varias tablas a la vez.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 17

INTEGRIDAD
En esta seccin no se permite ningn tipo de edicin. Nos indica es que recibe informacin de otras tablas y por lo tanto est vinculada a la tabla que estamos consultando.

OTRAS RELACIONES
Sin aplicacin para un DVA.

NUEVO DICCIONARIO PASO A PASO


Ahora que ya sabemos qu utilidad tiene cada apartado del diccionario, en este captulo vamos a presentar unos ejemplos de aplicacin 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 ejecucin del ejemplo.

GESTIN DE PROYECTOS
Como ejemplo realizaremos el siguiente supuesto: Somos una empresa de servicios a obras y nos interesa, llevar el control de la facturacin por obra, ya sea para el control de costes o por obtener resmenes por este concepto. Para ello sera necesario unos ficheros auxiliares, que podramos llamarlos Proyectos y Responsables y por ltimo se creara un campo nuevo en todos los documentos, para que sea solicitado el proyecto, tambin, se puede aadir este campo en la tabla de clientes, para que tenga el dato por defecto. Vemos por partes cada una de estas tareas: Creacin de tablas nuevas: Veremos cmo crear nuevas tablas en el diccionario, que no existen en Nexus, as como definir sus campos, ndices, etc.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 18 Creacin de campos en tablas ya existentes: Veremos como tambin se puede aadir campos a tablas que ya existen en Nexus, por ejemplo en nuestro caso ser en las tablas de cabeceras de documentos, lneas de documentos y en artculos.

CREAR NUEVO DICCIONARIO


Para la creacin de un diccionario nuevo, en el men principal de la aplicacin, hay que pulsar el botn Nuevo Diccionario.

Aparece la ventana que nos pregunta dnde 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 instalacin, 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 pestaa general los datos diversos del la empresa desarrolladora y los datos de versin y revisin que se utilizarn para controlar las versiones.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 19

Pulsar el botn 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 botn Explorador Windows, accedemos directamente al directorio de nuestro proyecto.

CREACIN 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 continuacin para cada una de las tablas, se aadirn los campos.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 20 Seleccionar la primera tabla Proyectos y pulsar en la pestaa Columnas

Los campos que se han incluido en esta tabla, de informacin adicional, son los siguientes: FechaInicio: Ser la fecha inicio del proyecto FechaFin: Ser la fecha final del proyecto o la fecha prevista. IdProyecto: Cdigo del proyecto. NomProyecto: Descripcin del proyecto. ObsProyecto: Observaciones del proyecto. ResponProyecto: Cdigo del responsable del proyecto. Seleccionar la tabla Responsables y pulsar la pestaa columnas.

Para la tabla de Responsable, los campos son los siguientes: IdIresponsable, NomResponsable, Telresponsable, EmailResponsable En Tipo, seleccionar el tipo de datos ms 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. Ms adelante veremos el porqu.
CREACIN DE LOS NDICES

A continuacin se debern definir los ndices para cada una de las tablas. Seleccionar la tabla Proyectos y pulsar la pestaa Indices

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 21 Se crear el ndice con los siguientes valores: Nombre del ndice: PK_PROYECTOs Columna a sobre la que se indexa: IDPROYECTO Clave: Seleccionado Agrupado: Seleccionado Lo mismo para la tabla Responsables. En la parte inferior podemos cambiar la tabla.

Seleccionarmos la de Responsables y creamos el ndice correspondiente.

Nombre del ndice: RESPONSABLE Columna a sobre la que se indexa: IDRESPONSABLE Clave: Si
CREACIN DE CAMPOS EN TABLAS YA EXISTENTES

Del mismo modo que se han creado tablas nuevas con sus correspondientes campos, ahora toca el turno, de aadir 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 pestaa Tabla el nombre de la tabla de Nexus, por ejemplo la tabla se denomina Cabefacv Los campos que tengamos que aadir, que corresponden con nuestras tablas, debern ser con el mismo nombre, por ejemplo, si vamos a aadir el cdigo del proyecto, el campo deber ser el mismo que para la tabla PROYECTOS que en nuestro caso es IDPROYECTO. Seleccionamos la pestaa Tablas y damos de alta la tabla.

Una vez creada, la seleccionamos y pulsamos la pestaa Columnas aadimos el campo IDPROYECTO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 22 Nota: Recordar de seleccionar correctamente en todos los campos las columnas En mantenimientos y en Tipo de editor, ya que si no se selecciona esta informacin, no sern 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.

AADIR SELECCIONES DE NUESTRAS TABLAS


Supongamos el siguiente ejemplo: En los documentos de Nexus, ya hemos aadido el campo IDPROYECTO, pero tal como se ha definido hasta ahora, slo tendremos, el campo del cdigo, sin posibilidad de tener una seleccin con la tabla auxiliar. Tal como vemos en la imagen, no hay una seleccin de proyectos, para aadir una seleccin, falta realizar la relacin de ambas tablas.

De esta forma, conseguimos que se active el botn de la seleccin, para poder elegir de la lista de proyectos el que deseamos asignar al documento:

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 23

SELECCIN DE PROYECTOS EN FACTURAS


Veamos cmo podemos configurar nuestro diccionario para conseguir las selecciones. Seleccionar la tabla Cabefacv y pulsar la pestaa Claves forneas. Podemos comprobar la seleccin de la tabla en la parte inferior.

Tabla principal: Teclear el nombre la tabla que tendremos en la seleccin, 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 relacin: Seleccionar Restrictiva. Nota: Es importante que el campo NombreProyecto de la tabla proyectos, tenga marcado la columna Descr. Tabla.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 24

SELECCIN RESPONSABLES EN PROYECTOS


Lo mismo se realizar con la tabla de Proyectos, queremos una seleccin en el campo Responsable. En la tabla Responsables, marcar Descr. Tabla en el campo NOMRESPONSABLE

El segundo paso es crear la clave fornea en la tabla Proyectos, tal como se muestra a continuacin:

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 aadir 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 forneas en ambas tablas.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 25

ACTIVACIN Y DISEO DEL DICCIONARIO


ACTIVACIN DEL DICCIONARIO

Para que el diccionario pueda utilizarse dentro de Nexus, debemos activarlo en la opcin de men Otros Datos generales, pestaa Preferencias en la opcin 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 diseados en nuestro diccionario, se crean en todas las bases de datos que hay en Nexus independientemente de que se active a travs

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 26 de datos generales. Esta activacin implica la visualizacin de las tablas y campos de nuestro diccionario en la empresa en la que se aplica la opcin.
CAMBIO DE NOMBRE DE LAS PESTAAS ADICIONALES

Una de las opciones de configuracin visual que tenemos con las pestaas que hemos creado, es el cambio del ttulo de las pestaas. Para proceder a dicho cambio debemos situarnos dentro de la pestaa correspondiente y pulsar el botn derecho de ratn. Nos aparece un men contextual como el que muestra la imagen

Seleccionamos la opcin cambiar ttulo de pgina y modificamos el ttulo de la pestaa.

Al terminar apretamos nuevamente el botn derecho y seleccionamos la opcin guardar configuracin para guardar los cambios que hemos hecho. Si no se hace este ltimo paso, se pierden los cambios hechos.
DISEO DE LAS PESTAAS ADICIONALES

Otra de las configuraciones visuales que podemos hacer es la reubicacin de los campos que hay en una pestaa creada por nosotros. Estos cambios slo se pueden hacer en pestaas de nuestro diccionario y no en las otras pestaas de Nexus. Debemos situarnos dentro de la pestaa que deseamos modificar y pulsar el botn derecho de ratn. Nos aparece un men contextual y seleccionamos la opcin Entrar en modo diseo.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 27

Si nos fijamos en la pantalla anterior, veremos como todos los campos de esta pestaa estn rodeados de unos puntos cuadrados. Ahora se trata de reposicionar y dimensionar los campos segn nuestras necesidades. Una vez finalizado las modificaciones, pulsamos el botn derecho del ratn y del men contextual, seleccionamos la opcin Guardar configuracin para mantener los cambios.

TRASLADO, ELIMINACIN 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 visualizacin. Si queremos quitarlos o trasladamos la base de datos a otros equipos donde no van a tener el diccionario, entonces debemos tener la precaucin de quitar el diccionario de la base de datos. Vamos a establecer las diferentes posibilidades de desactivacin o eliminacin del diccionario que podemos realizar en funcin 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 tambin deber ser trasladado, en caso contrario, al entrar a la empresa, aparece un mensaje de error, avisando de que no existe el diccionario correspondiente y no permite entrar en Nexus. Para copiar el diccionario al nuevo servidor hay que realizar lo siguiente: En la carpeta sistema, existe la carpeta de nuestro proyecto, que en el ejemplo visto es NexusProyectos

Esta carpeta hay que copiarla, en la carpeta Sistema de Nexus del nuevo servidor: C:\Archivos de programa\SIE\NEXUS\Sistema

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 28

TRASLADO BASE DE DATOS (SIN DICCIONARIO) A OTRO SERVIDOR


Cuando trasladamos una base de datos en la que se le ha incluido un diccionario, este tambin 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. Tambin 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 estn 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 versin where librera <> Nexus En caso de borrar un diccionario la vista es: Delete from versin where librera=Nombre de la librera Pasar las vistas detalladas a continuacin para limpiar sistema: DELETE NEXUS$SISTEMA.dbo.Actualizaciones DELETE NEXUS$SISTEMA.dbo.Columnas DELETE NEXUS$SISTEMA.dbo.Indices DELETE NEXUS$SISTEMA.dbo.Integridad DELETE NEXUS$SISTEMA.dbo.Plantillas DELETE NEXUS$SISTEMA.dbo.Procedimientos DELETE NEXUS$SISTEMA.dbo.Relaciones DELETE NEXUS$SISTEMA.dbo.Tablas DELETE NEXUS$SISTEMA.dbo.Version DELETE NEXUS$SISTEMA.dbo.Vistas DELETE NEXUS$SISTEMA.dbo.Sistema

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 29 En la cach de disco de cada equipo y usuario borrar la carpeta cach que habitualmente est en: C:\Documents and Settings\usuarioX\Datos de programa\SIE\Cach Eliminar manualmente desde Administrador corporativo de Microsoft SQL Server, todas las tablas nuevas creadas. Con ello queremos conseguir que la base de datos no tenga tablas innecesarias. Para eliminar los campos nuevos creados en las tablas de Nexus podemos hacer una de estas dos acciones: Actualizar a una versin superior de Nexus. Forzar la comprobacin de estructura desde el botn propiedades de la pantalla de seleccin de empresas.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 31

MENS EXTERNOS
INTRODUCCIN
Para poder integrar Nexus a otras aplicaciones externas, existe la posibilidad de poder modificar el men estndar de la aplicacin. El programador, podr aadir opciones a los mens ya existentes, o crear incluso un men entero, el cual quedar integrado en el estndar de Nexus. Por ejemplo, podramos 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 mens se crean mediante unos ficheros en formato Xml. Al igual que HTML (el lenguaje para crear pginas 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 estn familiarizados con este formato. En el directorio donde se encuentre instalado Nexus, existe una carpeta Mens

Existen 2 ficheros: nexusv8.xml: Fichero XML con la estructura del Men de Nexus. Nexusv8xml.txt: Documentacin de la estructura del fichero XML.

CREACIN DEL FICHERO DE MEN


Para poder definir mens, hay que crear nuestro fichero xml, con la extensin .Menu Al iniciar Nexus, se crear el men, integrando todos los ficheros ubicados en esta carpeta con extensin .menu ms el fichero de nexus (nexusv8.xml). Veamos un ejemplo de la estructura del fichero

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 32

A continuacin veremos la estructura de las etiquetas y su resultado en Nexus.

ESTRUCTURA XML
Los mens de Nexus, pueden ser definidos en el men Lateral como se muestra en la siguiente imagen:

O definir el men en la barra superior, como en el siguiente ejemplo:

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 33

A continuacin se detalla la sintaxis del fichero xml, para crear los mens en ambos casos. El fichero XML PUEDE tener dos nodos, MENUS y GRUPONAVBAR.

MEN LATERAL
Para la creacin de un men en el lateral, tenemos los siguientes elementos. Hay que tener en cuenta el siguiente organigrama:

MENU

GRUPOS

CATEGORIAS

OPCIONES

OPCIONES

ITEMS

OPCION

SEPARADOR

OPCION

SEPARADOR

ITEMS

MENUS envuelve los grupos, que slo pueden estar a este nivel. GRUPOS pueden contener CATEGORIAS u OPCIONES, pero no ambas a la vez. CATEGORIAS pueden contener: ITEMS u OPCIONES pero no ambos a la vez. OPCIONES pueden contener solo OPCION y SEPARADOR ITEMS pueden contener SOLAMENTE otros ITEMS. OPCION no puede contener nada. En la siguiente tabla se detallan las propiedades de cada elemento.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 34 <GRUPO Titulo="Ficheros" Imagen="Imgenes/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

GRUPO

<OPCION Titulo="Clientes" Id="manClientes" IdOrd="3"></OPCION> Titulo: Titulo que aparecer. Id : Identificador de la opcin 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 extensin a ejecutar) Imagen: Imagen asociada. Si no se informa, se usar la imagen de la opcin de Nexus informada en Id Externa: "T" o "F" indica si la opcin llama a un programa externo o a una opcin de Nexus. IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.

ITEM

<ITEM Titulo="Clientes" Id="manClientes" Imagen="Imgenes/iconos/Ficheros16x16.bmp"></ITEM> Titulo : Titulo que aparecer. Id : Identificador de la opcin de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usar la imagen de la opcin 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 cmo 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 sera el SEPARADOR.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 35

BARRAS DE MENS
Hemos visto como es la estructura del men lateral, ahora veremos como crear el men pero en la barra superior de Nexus.

GRUPONAVBAR

NAVBAR

NVSEPARADOR NVITEMS

NVCATEGORIAS

NVITEMS NVITEM BUSCADOR NVITEMS SEPARADOR

NVSEPARADOR

El GRUPONAVBAR contiene la informacin para crear las barras de herramientas. GRUPONAVBAR puede contener SOLO NAVBAR NAVBAR puede contener NVCATEGORIA, NVSEPARADOR, NVITEMS, NVITEM, BUSCADOR. NVCATEGORIA pueden contener NVITEMS o NVSEPARADOR

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 36 NVITEMS puede contener NVITEMS o NVSEPARADOR En la siguiente tabla se detallan las propiedades de cada elemento.
NAVBAR

<NAVBAR Titulo ="Barra de men principal"> Titulo : Titulo que aparecer. <NVITEMS Titulo="Archivo" Imagen="" IdOrd="1000"> Titulo : Titulo que aparecer. Id : Identificador de la opcin de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usar la imagen de la opcin de Nexus informada en Id IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.

NVITEMS

NVITEM

<NVITEM Id="GestionEmp" IdOrd="1010"></NVITEM> Titulo : Titulo que aparecer. Id : Identificador de la opcin de Nexus que se ha de ejecutar al ser seleccionado. Imagen: Imagen asociada. Si no se informa, se usar la imagen de la opcin de Nexus informada en Id IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.

SEPARADOR

<SEPARADOR Titulo="Documentacin" IdOrd="1670"></SEPARADOR> Titulo : Titulo que aparecer. IdOrd: Identificador, es obligatorio y no puede repetirse en todo el fichero.

IMGENES
Uno de los parmetros son las imgenes. Hay que indicar el directorio donde se encuentra el icono a incluir en Nexus. El fichero imagen debe ser tipo BMP con una medida de 32x16.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 37

NAX
QU ES NAX (NEXUS ACTIVEX)?
NAX es una librera ActiveX que permite a terceros conectarse con Nexus. Los objetivos de la librera NAX: Simplificar la tarea de utilizar la lgica de negocio de la aplicacin Nexus a travs de una serie de objetos con mtodos y propiedades que permiten manejar esa lgica. Poder llamar a cualquiera de las opciones visuales de Nexus desde la aplicacin desarrollada. Poder realizar cualquiera de los informes de Nexus introduciendo los parmetros desde aplicaciones externas. Independizar la utilizacin de los objetos de la aplicacin de su implementacin, lo que permitir, en el futuro, facilitar la migracin 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 podran derivarse de las evoluciones de de las distintas revisiones de Nexus. Independizar el uso de los objetos del formato en que se almacena la informacin 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 sensacin (por parte del usuario) de que est trabajando con una nica aplicacin y un nico entorno. Garantizar la seguridad establecida por el administrador de Nexus para aquellas aplicaciones que utilizan las opciones de Nexus a travs de NAX. Evitar el uso de ficheros intermedios (ASCII, XML, etc...) como sistema para conectarse con otras aplicaciones. En la mayora de los casos es preferible la conexin 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 reaccin inmediata en el momento en que se produce el problema. En la figura que se presenta a continuacin puede verse el esquema que se utiliza desde una aplicacin desarrollada a medida para acceder a los datos. Se establecen como nicos interlocutores con la aplicacin a medida (las flechas verdes):

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 38

Lectura de la base de datos directamente para acceder a los datos de la empresa (se recomienda utilizar este camino exclusivamente en modo lectura). El usuario (de SQL Server) que consulta la base de datos debe tener los permisos suficientes. Interaccin con NAX para realizar las operaciones que interaccionan con la lgica de negocio (operaciones con maestros, documentos, contabilidad y cartera) y con Nexus (para el enlace visual con cada opcin 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 captulos, que se detallan a continuacin: Cmo empezar?: Instalacin de la librera. Organizacin de NAX: Relacin de objetos que forman NAX. Enlace: Uso del objeto de conexin a los datos. Enlace visual con Nexus: Permite llamar a las opciones de Nexus con parmetros que variarn su comportamiento. Informes de Nexus: Uso de los informes de Nexus pasando parmetros 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 aplicacin. Seleccion: Permite presentar la pantalla de seleccin estndar de Nexus, sin necesidad de crear un maestro. Documentos: Permite conocer las primitivas para trabajar con documentos como facturas, albaranes, depsitos, pedidos, ofertas, regularizaciones, traspasos, expedientes, etc. Apuntes: Objeto para trabajar con asientos contables. Cartera: Permite mover la cartera de efectos (cobrar, pagar, etc..). Stocks: Creacin y modificacin de inventarios, movimientos y reservas de stock. Excepciones: Tratamiento de los errores reportados por NAX. Cuotas: Objeto para trabajar con cuotas automticas de facturas y albaranes. (NUEVO 802B) CobroParcialRemesa: Permite cobrar parcialmente una remesa.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 39 (NUEVO 802B) AnularCobroParcialRemesa: Permite anular el cobro de una remesa (cobrada parcialmente). Las primitivas de NAX pueden dividirse en cuatro grandes grupos: Enlace: Facilita procedimientos para conectarse a una empresa, de aquellas a las que puede accederse desde el ordenador en el que se est usando NAX. Ejecucin 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 instalacin y no ejecutar Nexus. Impresin de informes de Nexus: Nexus dispone de sus informes ya definidos adems de los informes que han sido modificados por el usuario. Estos informes constan de dos partes, la pantalla que solicita los filtros de la informacin 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 lgica de negocio de la aplicacin Nexus. Entre otras caben destacar las operaciones que pueden realizarse sobre maestros, documentos (ofertas, pedidos, albaranes, facturas, etc...) apuntes, cartera, activos fijos y presupuestaria.

INSTALACIN DE NAX
Al instalar Nexus, se registrar automticamente el fichero NAX.DLL, que por omisin se instala en C:\Archivos de programa\SIE\Nexus. En caso de necesitar registrar NAX la instruccin es: regsvr32 "c:\archivos de programa\sie\Nexus\nax.dll" Una vez registrado NAX tendremos que incorporar las funcionalidades a nuestra aplicacin 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 instalacin de Nexus) para usuarios de delphi7 o importando la Type Library para inferiores a delphi7. Aplicaciones en otros lenguajes: importar el nax segn especificaciones del lenguaje (por ejemplo en VB sera 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 seleccin, de un maestro (cliente, proveedor, artculo, etc.), ser necesario tener una licencia de Nexus. Si por el contrario, nuestro programa no hace ninguna llamada visual, con la licencia de Nax Runtime ya ser suficiente. Cualquier consulta sobre tema de licencias, consultar con el departamento comercial

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 40

ORGANIZACIN DE NAX
NAX se organiza mediante objetos. Para cada objeto debe crearse una instancia en la aplicacin que se desea conectar a travs de NAX. A partir de ese momento, utilizaremos esa instancia para hacer referencia al objeto y poder utilizar sus propiedades y sus mtodos.

RELACIN DE OBJETOS DE NAX


A continuacin se detallan todos los objetos que podemos utilizar. En el siguiente captulo veremos en detalle cada uno con sus propiedades y mtodos. Enlace: inicia y cierra la conexin con la base de datos de Nexus. Varios: Objeto con funciones varias destinadas a: Obtencin de precios, obtencin de cambio entre monedas, obtencin de identificadores nicos de Nexus, obtencin de cuentas y descripciones. Maestro: Artculos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Pases, Tarifas, Idiomas, etc... . Este objeto permite moverse por los ficheros mencionados, as como aadir nuevos y modificar los existentes. Factura: Objeto que permite la creacin, modificacin y borrado de facturas. Albaran: Objeto que permite la creacin, modificacin y borrado de albaranes. Deposito: Objeto que permite la creacin, modificacin y borrado de depsitos. Pedido: Objeto que permite la creacin, modificacin y borrado de pedidos. Oferta: Objeto que permite la creacin, modificacin y borrado de ofertas (presupuestos). Regularizacion: Objeto que permite la creacin, modificacin y borrado de albaranes de regularizacin. Traspaso: Objeto que permite la creacin, modificacin y borrado de albaranes de traspaso entre almacenes. Asiento: Objeto que permite la creacin, modificacin y borrado de asientos. Cartera: Objeto que permite la creacin, modificacin y borrado de vencimientos en cartera. OperacionesCartera: Objeto que permite realizar operaciones sobre los efectos en cartera a excepcin 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 creacin y modificacin de inventarios. MovimientoStock: Objeto que permite la creacin, modificacin y borrado de lneas que generan movimientos en el stock por documentos no controlados por Nexus.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 41 ReservaStock: Objeto que permite la creacin, modificacin y borrado de lneas que generan reservas en el stock por documentos no controlados por Nexus. Opcion: Objeto que permite llamar a cualquier opcin de la aplicacin Nexus. Listado: Objeto que permite realizar informes pasando los parmetros 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 creacin, modificacin y borrado de estructuras. OrdenProduccion: Objeto que permite la creacin, edicin, borrado y evolucin de las rdenes de produccin. Filtro: Objeto que permite la creacin, modificacin, y borrado de los filtros. Expediente: Objeto que permite la creacin, modificacin y borrado de expedientes. Tambin la facturacin y anulacin del mismo.

EJEMPLO DEL USO DE UN OBJETO NAX EN DELPHI


Uses NAX_TLB; Function CambioEuro: Double; var naxVarios: Varios; begin naxVarios := coVarios.Create; // de DOLAR a EURO en 2002 end; // Creacin del objeto Result := naxVarios.Cambio(DOLAR, 01/01/2002); // Uso del objeto para obtener el cambio // Instancia del objeto Varios de NAX

EJEMPLO DEL USO DE UN OBJETO EN VISUAL BASIC


Dim naxVarios As NAX.Varios 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 // Instancia del objeto Varios de NAX

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 42

ENLACE (CONEXIN)
NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIN
NAX necesita que est instalado Nexus en esa estacin ya que comparten la instalacin.

MTODOS Y FUNCIONES DEL ENLACE


Mtodos Empresas ParamConexion Iniciar SelecEmpresa SelecEmpresaActiva Tipo Funcin Funcin Descripcin Obtiene la lista de los nombres de las empresas de la instalacin. Obtiene los parmetros de conexin de una empresa determinada

Procedimiento Inicia la conexin con una empresa indicada en un parmetro Funcin Funcin Inicia la conexin con una empresa seleccionada por el propio usuario. Inicia la conexin 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. Activa el tipo contable (multiempre) de los tipos permitidos por el usuario. Activa el tipo contable (multiempre) del registro de Windows, de los tipos permitidos por el usuario.

SelecMultiEmpresa SelecMultiEmpresaActiva Acabar

Funcin Funcin

Procedimiento Termina la conexin

EliminarRecordatorioClave Procedimiento Elimina el flag de recordar la contrasea del registro de Windows EstacionActivada CerrarVentanas ActivarVentana LoginUsuario Funcin Retorna si el numero de serie de lPRODUCTO NEXUS est activado para la estacin.

Procedimiento Cierra todas la ventanas abiertas de Nexus Procedimiento Pone en primer plano la ventana activa de Nexus Funcin Se utiliza para evitar la pantalla visual donde se piden el usuario y password de entrada en Nexus, y retorna

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 43 si dichos valores son correctos para entrar en la aplicacin. Siempre que se trabaje con NAX debe haberse conectado previamente una empresa concreta. Para iniciarse esta conexin (enlace) existen dos posibles sistemas: A) Que la aplicacin desarrollada con NAX presente la relacin de empresas existentes y el usuario se encargue de seleccionar la empresa con la que desea trabajar. B) Llamar a una funcin 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 trabajarn todos los objetos que en adelante se utilicen. A continuacin 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 (OPCIN A)

var naxEnlace: Enlace; procedure Enlazar; begin naxEnlace := coEnlace.Create; // Saldr la seleccin de empresas de Nexus if not naxEnlace.SelecEmpresa then Exit; end;
INICIAR UN ENLACE (OPCIN B)

// Se crea el objeto para el enlace

var naxEnlace: Enlace; procedure Enlazar; begin naxEnlace := coEnlace.Create; if not naxEnlace.SelecEmpresaActiva then Exit; end; // Se crea el objeto para el enlace // Se inicia el enlace en la empresa donde se est con Nexus

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 travs del enlace puede consultarse el ltimo error que se ha producido. Para tratar correctamente las excepciones, debera consultarse si se ha producido algn error para cada operacin 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 construccin de un procedimiento que realice estas comprobaciones: Procedure naxCheck; begin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 45 if naxEnlace.bError then begin raise Exception.Create( Error: + naxEnlace.sMensaje); programa end; end; De esta forma la aplicacin quedara menos cargada de cdigo: 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; naxClientes.Nuevo; naxCheck; . . end; // En caso de error rompe la ejecucin del programa // En caso de error rompe la ejecucin del programa // Rompe la ejecucin del

OPCION (LLAMADA A OPCIONES VISUALES)


Para ejecutar una opcin debe conocerse el identificador nico que la representa y los parmetros con que se utiliza. SIE edita continuamente documentacin en este sentido( al instalar Nexus, en la carpeta ejemplos encontrar el fichero OpcionesVisualesNexus con el listado de opciones, su identificador y sus posibles parmetros). A continuacin veremos dos ejemplos del uso de este objeto. En el primer ejemplo no se utilizan parmetros y en la segunda s.

EJEMPLO 1: MANTENIMIENTO DE CLIENTES SIN PARMETROS


(igual que si se llamara desde el men de Nexus)
EN DELPHI

procedure MantenimientoClientes; var

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 46 naxOpcion: Opcion; begin naxOpcion := coOpcion.Create; naxOpcion.Iniciar; naxOpcion.IdOpcion := manClientes; naxOpcion.Ejecutar; naxOpcion.Acabar; end;
EN VISUAL BASIC

Private Sub btnEditarNexus_Click() Dim NaxOpcion As NAX.Opcion Set NaxOpcion = New NAX.Opcion NaxOpcion.Iniciar NaxOpcion.IdOpcion = "manClientes" NaxOpcion.Ejecutar NaxOpcion.Acabar **

EJEMPLO 2: EDICIN DE LA FICHA CON PARMETOS


De un cliente determinado.
EN DELPHI

procedure MantenimientoClientes( sCliente: string); var naxOpcion: Opcion; begin naxOpcion := coOpcion.Create; naxOpcion.Iniciar; naxOpcion.IdOpcion := manClientes; naxOpcion.AnadirParametro( Accion, Edicion); naxOpcion.AnadirParametro( Codigo, sCliente); naxOpcion.Ejecutar; naxOpcion.Acabar; end;
EN VISUAL BASIC

Private Sub btnEditar_Click() Dim NaxOpcion As NAX.Opcion

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 47 Set NaxOpcion = New NAX.Opcion NaxOpcion.Iniciar NaxOpcion.IdOpcion = "manClientes" Call NaxOpcion.AnadirParametro("Accion", "Edicion") Call NaxOpcion.AnadirParametro("Codigo", edtCodigo.Text) NaxOpcion.Ejecutar NaxOpcion.Acabar End Sub

LISTADO (IMPRESIN DE INFORMES)


Para ejecutar una opcin debe conocerse el identificador nico que la representa y los parmetros con que se utiliza. SIE edita continuamente documentacin en este sentido. A continuacin veremos dos ejemplos del uso de este objeto, en el primero realizando la presentacin preliminar de un listado de clientes y en el segundo generando un fichero en formato PDF con el contenido del mismo listado.

EJEMPLO 1: PRESENTACIN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI


procedure ListadoClientes; var naxListado: Listado; begin naxListado := coListado.Create; naxListado.Iniciar; naxListado.IdListado := lstCli; naxListado.Destino := destPantalla; preliminar) naxListado.Copias := 1; naxListado.Modelo := Listado con email; naxListado.AnadirParametro( CodIni, naxListado.Imprimir; naxListado.Acabar; end; 1); // Reservar los recursos // Identificador del listado // Destino del listado (prosentacin // N de copias // Nombre del modelo definido por el usuario // Cdigo inicial

naxListado.Impresora := Impresora local LaserJet 4200; // Nombre de la impresora

naxListado.AnadirParametro( CodFin, 99999999); // Cdigo final // Imprimir // Liberar los recursos

EJEMPLO 2: FICHERO PDF CON EL LISTADO DE CLIENTES EN DELPHI


procedure PDFClientes;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 48 var naxListado: Listado; begin naxListado := coListado.Create; naxListado.Iniciar; naxListado.IdListado := lstCli; naxListado.Destino := destPDF; naxListado.Copias := 1; naxListado.Modelo := Listado con email; naxListado.AnadirParametro( CodIni, naxListado.Imprimir; naxListado.Acabar; end; 1); // Reservar los recursos // Identificador del listado // Destino del listado (fichero en formato PDF) // N de copias // Nombre del modelo definido por el usuario // Cdigo inicial

naxListado.Fichero := C:\Listados \Clientes email.pdf; // Fichero donde almacenar el listado naxListado.Impresora := Impresora local LaserJet 4200; // Nombre de la impresora

naxListado.AnadirParametro( CodFin, 99999999); // Cdigo final // Imprimir // Liberar los recursos

EJEMPLO 3: PRESENTACIN 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", " NaxListado.Imprimir NaxListado.Acabar End Sub 1") Call NaxListado.AnadirParametro("CodFin", "99999999")

EJEMPLO 4: IMPRIMIR UN EFECTO FORMATO RECIBO EN DELPHI


procedure PDFRecibo; var naxListado: Listado; begin NaxLis := CoListado.Create; NaxLis.Iniciar;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 49 naxLis.IdListado := 'LSTIMPREFERE'; naxLis.AnadirParametro('NumCartera0', '6356'); naxLis.AnadirParametro('NumVen0', '1'); naxLis.AnadirParametro('Total', '0'); naxLis.AnadirParametro('Posicion', '1'); naxLis.AnadirParametro('FecExp', '07/12/2009'); naxLis.AnadirParametro('CobroPago', 'C'); naxLis.AnadirParametro('Portador', 'Prueba'); naxLis.Destino := destJPG; naxLis.Fichero := 'C:\tmp\Prueba.jpg'; NaxLis.Imprimir; NaxLis.Acabar; End;

VARIOS (CONSULTAS)
En este apartado veremos algunas de las funciones que pueden ayudarnos en la integracin con Nexus. Los mtodos que vamos a usar en este captulo se encuentran en el objeto Varios y se detallan a continuacin:

CONSULTAS SEGN CRITERIOS DE NEXUS


Mtodos ObtPrcVenta ObtPrcCompra ObtPrecioCoste ObtPrecioMedio ObtComis Cambio CambioMon MonedaPrincipal DescArticulo ObtRepresentante CuentaArtV CuentaArtC TotalLinea Tipo Funcin Funcin Funcin Funcin Funcin Funcin Funcin Funcin Procedimiento Funcin Funcin Funcin Funcin Descripcin Obtiene el precio de venta. Obtiene el precio de compra. Obtiene el precio de coste. Obtiene el precio medio. Obtiene la comisin Obtiene el cambio de una moneda. Obtiene el cambio entre dos monedas. retorna el cdigo de la moneda principal Devuelve la descripcin y el texto de un artculo en un idioma. Devuelve el representante de un cliente. Devuelve la cuenta del artculo de venta Devuelve la cuenta del artculo de compra Devuelve la base imponible (en moneda) de la lnea

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 50 FormatNum FormatEdiNum Redondear Version Revision Parche Vencimientos LlamarVisual Funcin Funcin Funcin Propiedad Propiedad Propiedad Funcion Procedure Devuelve el formato para n decimales (con miles) Devuelve el formato para n decimales Redondea un nmero a n decimales Contiene la versin instalada de Nexus Contiene la revisin instalada de Nexus Contiene el parche instalado de Nexus Crea un array con la informacin el conjunto de vencimientos con las condiciones especificadas. Muestra un pantalla visual de Nexus

Funciones para recuperacin de identificadores Mtodos SigId Tipo Funcin Descripcin Devuelve el siguiente valor del identificador

EJEMPLO 1: CONSULTAS SEGN 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 artculo y un cliente end;

EJEMPLO 2: USO DE LOS IDENTIFICADORES DE NEXUS PARA OBTENER UN IDENTIFICADOR PROPIO


En primer lugar aclarar la utilizacin que un programador puede hacer de el sistema de identificadores de Nexus. Los identificadores no son ms 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 difcil que puedan interesar a un programa externo, pero el sistema como tal puede ser de utilidad en el caso en que se deseen tener identificadores nicos y consecutivos para alguna tarea.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 51 En el ejemplo interesa conseguir un identificador nico para cada cuota de un programa que estamos creando. Function IdentificadorCuotas: Double; ( en Delphi) var naxVarios : Varios; Begin naxVarios := coVarios.Create; Result := naxVarios.SigId( Cuotas); End; Function Sub IdentificadorCuotas Dim NaxVarios As NAX.Varios Set NaxVarios = New NAX.Varios Return( call NaxVarios.SigId( Cuotas)) Este trozo de cdigo garantiza al programador que cada vez que llame a esta funcin 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 mayora 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; ... ... naxClientes.Acabar; end;
EN VISUAL BASIC

// Crea la instancia del maestro de clientes // clientes // como siempre, destruir el objeto creado

naxClientes.Iniciar( 'Clientes');. // Inicia el objeto especificando que se trata del maestro de

Dim naxClientes As NAX.Maestro Set naxClientes = New NAX.Maestro Call naxClientes.Iniciar("Clientes")

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 52 ... ... naxClientes.Acabar El parmetro que se le pasa al procedimiento iniciar es el valor del parmetro en la siguiente tabla (no estn los que coincide el nombre de la tabla con el parmetro: Nombre de tabla TipoIva RegIva RegIva ( solo soportados) RegIva ( solo repercutidos) Proveed Articulo DocuPago FormaPag Almacen Represen Transpor Provinci CentrosC TiposCon TarifaVe PrcEsp DatosCon DomBanca ( proveedores) DomBanca ( clientes) RefCli RefPro FamiliaTalla FamiliaTalla
LAS CLAVES FORNEAS

Valor del parmetro TIPOSIVA REGIMENESIVA REGIMENESIVASOP REGIMENESIVAREP PROVEEDORES ARTICULOS DOCUMENTOSPAGO FORMASPAGO ALMACENES REPRESENTANTES TRANSPORTISTAS PROVINCIAS CENTROSCOSTE TIPOSCONTABLES TARIFASVENTA PRECIOSESPECIALES DATOSCONTABLES DOMBANCAC DOMBANCAV REFCLIENTES REFPROVEEDORES FAMILIATALLAHORIZONTAL FAMILIATALLAVERTICAL

Las claves forneas en Nexus se guardan cuadradas a la derecha. Esto significa que si el ancho de un cdigo es de 8 dgitos y el valor que se introduce en l es el 3, el programa aade siete espacios delante para que el 3 quede a la derecha (_______3). Esto slo se hace con los cdigos numricos ya que a los alfanumricos no se aade ningn espacio.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 53 Cuando se introduce un valor en un campo clave, el programa se encarga de cuadrarlo. De la misma forma, si se pasa un parmetro a una funcin que se refiere al valor de una clave, el programa tambin lo cuadra. Ejemplo: naxArticulo.Buscar( 1) Esta funcin busca el artculo con cdigo _______1.
EXCEPCIONES

Son excepciones a esta regla los valores de los parmetros de los objetos Opcion y Listado que deben pasarse ya cuadrados dado que a priori se desconoce el contenido del parmetro.

OPERACIONES MS IMPORTANTES
Las operaciones que pueden realizarse con un maestro son varias y a continuacin se detallan los usos ms habituales:
ASIGNAR/LEER VALORES A LOS CAMPOS DE CADA FICHERO MAESTRO

var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create; naxArticulo.Iniciar( 'Articulos');. if naxArticulo.Buscar( 1) then begin naxArticulo.AsString* DescArt+ := Descripcin del artculo; 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

// Crea la instancia del maestro // Inicia el objeto indicando que se trata de artculos. // Buscar el artculo a editar.

En la creacin 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 cdigo y la descripcin. As mismo al guardarse el registro se realizan ciertas comprobaciones. var naxArticulo: Maestro; sCodigo: string; begin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 54 naxArticulo := coMaestro.Create; naxArticulo.Iniciar( 'Articulos');. naxArticulo.Nuevo; // Crea la instancia del maestro // Inicia el objeto indicando que se trata de de artculos

sCodigo := naxArticulo.NuevoCodigoNum; // Busca el ltimo cdigo y le suma 1. naxArticulo.AsString[ 'CodArt'] := sCodigo; naxArticulo.AsString* DescArt+ := Descripcin del artculo; naxArticulo.AsFloat* PrcCompra+ := 1500; naxArticulo.AsFloat* PrcVenta+ := naxArticulo.AsFloat* PrcCompra+ * 1.25; naxArticulo.Guarda( False); end;
MODIFICAR REGISTROS EXISTENTES

// False indica que se trata de un registro nuevo // True indicara que se trata de una modificacin

var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create; naxArticulo.Iniciar( 'Articulos');. naxArticulo.Edita; naxArticulo.AsString* DescArt+ := Descripcin del artculo; naxArticulo.AsFloat* PrcCompra+ := 1500; naxArticulo.AsFloat* PrcVenta+ := naxArticulo.AsFloat* PrcCompra+ * 1.25; naxArticulo.Guarda( True); end else ShowMessage( Registro no encontrado); end;
RECORRER REGISTROS DE UN MAESTRO

// Crea la instancia del maestro de artculos // Inicia el objeto

if naxArticulo.Buscar( 1) then begin // Busca el cliente con el cdigo 1

// True indica que se trata de un registro existente

NAX ofrece las funciones necesarias para recorrer un fichero que son: BOF, EOF, Primero, Ultimo, Siguiente, Anterior, Buscar. A continuacin vemos un ejemplo sencillo del recorrido del fichero de artculos. var naxArticulo: Maestro; begin naxArticulo := coMaestro.Create; naxArticulo.Iniciar( 'Articulos');. naxArticulo.Primero; // Crea la instancia del maestro de artculos // Inicia el objeto // Se situa en el primer registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 55 while not naxArticulo.EOF do begin naxArticulo.Siguiente; end; end; // Se situa en el siguiente registro // Recorre la tabla mientras no llega al final

DOCUMENTOS
Los documentos son algunos de los objetos ms complejos que pueden tratarse con NAX. Con estos objetos pueden crearse los siguientes tipos de documentos en Nexus: Facturas Albaranes Depsitos Pedidos Ofertas Regularizaciones Traspasos Inventarios Movimientos de stock Reservas de stock Las operaciones que pueden realizarse con este tipo de objeto son: Aadir, 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; naxFactura.Iniciar; . naxFactura.Acabar; end; // Libera los recursos internos del objeto // Crea el documento factura // Inicia el objeto

EJEMPLO EN DELPHI DE LA CREACIN DE UNA NUEVA FACTURA


// Dar de alta una factura Procedure UnaFactura; Var naxFactura: Factura;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 56 nFact: double; Begin // Crea el objeto naxFactura := coFactura.Create; boaFctura.Iniciar; // Comenzar una nueva factura naxFactura.Nuevo( 1, False, False, True, True); 30/03/2002, // Fecha de la factura // Cdigo del cliente // Indica que es de venta (True indicara que es de compra) // Indica que es de gestin (True indicara que es contable) // Indica que se desean las repercusiones contables // Indica que se desean los vencimientos // Identifica a la factura que vamos a crear

// Cambiar algunos campos de la cabecera naxFactura.AsStringCab* Tarifa+ := PVP; // Aadir una lnea en la factura naxFactura.NuevaLineaArt( naxFactura.AnadirLinea; // Genera definitivamente la factura. RETORNA UN IDENTIFICADOR nFact := naxFactura.Anade; naxFactura.Acabar; End; // Fin del procedimiento El identificador que retorna la funcin Anade (nFact), puede almacenarse donde desee el programador para ms 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 artculo de la lnea. 2. Se generan los vencimientos 3. Se generan los asientos contables 4. Se actualiza el stock de cada artculo en las lneas, dado el almacn 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 implementacin interna, pero para NAX las operaciones seguirn siendo las mismas. Para realizar este borrado lo haremos como en la siguiente funcin ejemplo: Procedure BorrarFactura( nIdFac:Double); // Libera los recursos del objeto 1, // Cdigo del artculo20); // Unidades de la lnea naxFactura.AsFloatLin* PrcMoneda+ := 1500;

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 utilizacin del objeto Asiento sera el que creara los apuntes correspondientes a una factura. Function AsientoFactura( sFecha, sTipoCont, sCtaCliente, sNumFac: string; nBase: Double): Double; var

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 58 naxAsiento: Asiento; begin // Crea el objeto asiento naxAsiento := coAsiento.Create; naxAsiento.Iniciar; // En primer lugar se indican los datos de la cabecera del asiento que coinciden en todas las lneas // N indica que se trata de un asiento normal naxAsiento.Nuevo( sFecha, sTipoCont,N); // Otras posibilidades: // A: Apertura, P: Explotacin, T: Cierre // A continuacin se especifican los datos de cada una de las lneas naxAsiento.AApunte( 'EURO', 70000000, 0, nBase, , ); naxAsiento.AApunte( 'EURO', 47700000, 0, nBase * 0.16, , ); naxAsiento.AApunte( 'EURO', sCtaCliente, // Moneda // Cuenta // Importe debe en la moneda indicada // Descripcin // Importe haber en la moneda indicada // Centro de coste // Texto // Moneda // Cuenta // Importe debe en la moneda indicada // Descripcin // Importe haber en la moneda indicada // Centro de coste // Texto // Moneda // Cuenta // Descripcin

De n/fra. + sNumFac,

De n/fra. + sNumFac,

nBase * 1.16, // Importe debe en la moneda indicada De n/fra. + sNumFac, 0, , ); // Importe haber en la moneda indicada // Centro de coste // Texto

// Al acabar el asiento nos retorna el IDENTIFICADOR por si deseamos utilizarlo en el futuro // para borrar/modificar este asiento. Result := naxAsiento.Anade;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 59 naxAsiento.Acabar; end; // Libera los recursos del objeto

DOS FORMAS DE TRABAJAR CON ASIENTOS


En la versin 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 versin de Nexus. A continuacin 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 lneas naxAsiento.NuevoNax( N, // N indica que se trata de un asiento normal // Otras posibilidades: // A: Apertura, P: Explotacin, T: Cierre sTipoCont, sDiario, sNumDoc, sFecha); // Tipo contable // Diario contable // N documento // Fecha FV, // Descripcin // Concepto

// A continuacin se especifican los datos de cada una de las lneas naxAsiento.AApunteNax( De n/fra. + sNumFac, , , , 'EURO', 70000000, 0, 0, nBase, nBase,

// Centro de coste 1 // Centro de coste 2 // Centro de coste 3 // Moneda // Cuenta // Importe debe en la moneda indicada // Importe debe en la moneda principal // Importe haber en la moneda indicada // Importe haber en la moneda principal

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 60 , sFecha); De n/fra. + sNumFac, , , , 'EURO', 47700000, 0, 0, // Texto // Fecha valor FV, // Descripcin // Concepto

naxAsiento.AApunteNax(

// Centro de coste 1 // Centro de coste 2 // Centro de coste 3 // Moneda // Cuenta // Importe debe en la moneda indicada // Importe debe en la moneda principal

nBase * 0.16, // Importe haber en la moneda indicada nBase * 0.16, // Importe haber en la moneda principal , sFecha); De n/fra. + sNumFac, , , , 'EURO', sCtaCliente, // Texto // Fecha valor FV, // Descripcin // Concepto

naxAsiento.AApunteNax(

// Centro de coste 1 // Centro de coste 2 // Centro de coste 3 // Moneda // Cuenta

nBase * 1.16, // Importe debe en la moneda indicada nBase * 1.16, // Importe debe en la moneda principal 0, 0, , sFecha); // Importe haber en la moneda indicada // Importe haber en la moneda principal // Texto // 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; end; El IDENTIFICADOR retornado por Anade podremos utilizarlo para borrar el asiento, como se hace en el siguiente ejemplo: // Libera los recursos del objeto

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 61 Procedure BorrarAsiento ( nAsiento: double); var naxAsiento: Asiento; begin naxAsiento := coAsiento.Create; naxAsiento.Iniciar; naxAsiento.Borra( nAsiento); naxAsiento.Acabar; end; // Borra el asiento con el identificador indicado // Libera los recursos del objeto // Crea el objeto asiento

CARTERA
En cartera existen tres tipos de funciones: Creacin, modificacin y borrado de vencimientos. Realizar operaciones con vencimientos existentes Crear remesas y agrupaciones

CREACIN, MODIFICACIN Y BORRADO DE VENCIMIENTOS


Un ejemplo claro de la utilizacin del objeto Cartera sera el que creara 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 continuacin se indican los datos de cada uno de los vencimientos naxCartera.NuevoVen( sFecha1, Int( nImporte/2)); naxCartera.AnadirVen; naxCartera.NuevoVenVen( sFecha2, nImporte - Int( nImporte/2)); naxCartera.AnadirVen; // Al acabar los cartera nos retorna el IDENTIFICADOR, por si deseamos utilizarlo en el futuro // para borrar/modificar este registro de cartera.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 62 Result := naxCartera.Anade; naxCartera.Acabar; end; El IDENTIFICADOR retornado por Anade podremos utilizarlo para borrar la cartera, como se hace en el siguiente ejemplo: Procedure BorrarCartera( nCartera: double); var naxCartera: Cartera; begin naxCartera := coCartera.Create; naxCartera.Iniciar; naxCartera.Borra( nCartera); naxCartera.Acabar; end; // Borra la cartera con el identificador indicado // Crea el objeto cartera

EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AADIR UN NUEVO VENCIMIENTO EN CARTERA


NaxCartera := CoCartera.Create; NaxCartera.Iniciar; nNumCartera := 6398; if NaxCartera.PuedeModificarse(nNumcartera) then begin NaxCartera.Editar(nNumcartera); // editamos el numero de cartera NaxCartera.EditarVencimiento( 1); // editamos el vencimiento 1 NaxCartera.VAsFloat['IMPORTEMON'] := NaxCartera.VAsFloat['IMPORTEMON'] - 500; NaxCartera.GuardarVencimiento; // al vencimiento 1 hemos restado 500 y lo guardamos // vamos a crear un nuevo vencimiento del 500 con fecha 24/3/2010 para la cartera 6398 NaxCartera.AsFloat['IMPORTEMON'] := 500; Nuevo := NaxCartera.AnadirVen; NaxCartera.EditarVencimiento(Nuevo); NaxCartera.VAsString['FECHA'] := '24/03/2010'; NaxCartera.GuardarVencimiento;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 63 NaxCartera.Anade; end; NaxCartera.Acabar;

REALIZAR OPERACIONES CON VENCIMIENTOS EXISTENTES


Con este conjunto de operaciones pretendemos poder operar con los efectos pendientes de cada cliente/proveedor. Las operaciones que pueden realizarse con NAX sobre la cartera son las siguientes: Cobrar Pagar Recibir CrearAnticipo CrearAnticipoNax Para realizar el cobro de efectos. Para realizar el pago de efectos. Para realizar la recepcin de efectos. Para crear anticipos. Para indicar que un importe de una factura se ha entregado a cuenta en un anticipo entregado anteriormente. Incluye el n de documento contable. Para bloquear un efecto y no permitir realizar con l ms operaciones. Para marcar un efecto a un proveedor como enviado. Para actualizar el riesgo de un efecto al descuento cuyo vencimiento ha sido superado. Para indicar la devolucin de un efecto cobrado indicando sus gastos. Para imputar los gastos de una devolucin a un cliente. dem que Recibir pero con ms parmetros. dem que Cobrar pero con ms parmetros. dem que Pagar pero con ms parmetros. Anular el cobro de un vencimiento. Anular el pago de un vencimiento. Anular la recepcin de un efecto. Anular el envo de un efecto. Anular el bloqueo de un efecto. Anular la imputacin de gastos de una devolucin al cliente. Anular una devolucin. Anular la actualizacin de riesgo de un efecto al descuento. Ligar un conjunto de efectos de cartera con una factura. Ligar un conjunto de efectos de cartera con una factura.

Bloquear Enviar ActualizarRiesgo Devolver ImputarGastos RecibirNax CobrarNax PagarNax AnularCobro AnularPago AnularRecepcion AnularEnvio AnularBloqueo AnularImputacion AnularDevolucion AnularActualizacionRiesgo Ligar Desligar

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 64 CobrarRemesa AnularCobroRemesa PagarRemesa AnularPagoRemesa ACuenta Cobrar una remesa. Anular el cobro de una remesa. Pagar una remesa (a proveedores). Anular el pago de una remesa (a proveedores). 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, nNumVen, True, False, , , TODAY, sCodBan); end; // N de vencimiento // Generar repercusiones contables // Al cobro (si fuera True sera al descuento) // Cuenta del banco // Cuenta de riesgo del banco // Fecha // Cdigo del banco // N de conjunto de cartera

// (en blanco lo busca en el banco que le indicamos) // (en blanco lo busca en el banco que le indicamos)

STOCKS
Adems 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 produccin externo que nos mueva el stock).

EJEMPLO 1: MOVIMIENTOS EN STOCK EXTERNOS


var naxMovimientos: MovimientoStock; begin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 65 naxMovimientos := coMovimientoStock.Create; naxMovimientos.Iniciar; naxMovimientos.Nuevo( 2); // Cdigo del almacn // Reserva los recursos necesarios 01/12/2003, // Fecha

// Aadir movimiento de 10 unidades del artculo 1 naxMovimientos.NuevaLineaArt( 10); // Unidades del movimiento 1, // Cdigo del artculo

naxMovimientos.AsStringLin* Motivo+ := Movimiento externo; naxMovimientos.AnadirLinea; // Aadir movimiento de 20 unidades del artculo 2 naxMovimientos.NuevaLineaArt( 20); // Unidades del movimiento 2, // Cdigo del artculo

naxMovimientos.AsStringLin* Motivo+ := Movimiento externo; naxMovimientos.AnadirLinea; // Aadir movimiento de 30 unidades del artculo 3 naxMovimientos.NuevaLineaArt( 30); // Unidades del movimiento 3, // Cdigo del artculo

naxMovimientos.AsStringLin* Motivo+ := Movimiento externo; naxMovimientos.AnadirLinea; naxMovimientos.Anade; naxMovimientos.Acabar; end; // Genera los movimiento en la base de datos // Libera los recursos utilizados

FILTRO
Este objeto hace referencia a la pantalla visual de Nexus de creacin de filtros. Este objete nos permite llamar a la pantalla visual o crearlo de forma interna mediante los eventos y propiedades pblicas que tiene publicadas.

EJEMPLO 1: LLAMADA A LA PANTALLA DE FILTROS


Var NaxFiltro : Filtro; Begin NaxFiltro := CoFiltro.Create; // Creamos el objeto

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 66 NaxFiltro.Iniciar( 'CLIENTES'); NaxFiltro.EditarVisual; sFiltro := NaxFiltro.ObtenerFiltro; visual NaxFiltro.Acabar; End; // Indicamos que queremos crear el filtro de clientes // Llamamos a la pantalla visual // Obtenemos el filtro de generado desde la pantalla // Libera los recursos utilizados

EXPEDIENTE
Este objeto hace referencia a la pantalla visual de Nexus de gestin de expedientes. Este objeto nos permite llamar realizar las mismas operaciones que Nexus mediante la implementacin de los eventos y propiedades que tiene publicadas. Podemos crear lneas de expedientes, lneas de honorarios, lineas de provisiones y lineas de suplidos. Generando las repercusiones contables cuando proceda. Tambin podemos realizar la impresin del mismo.

EJEMPLO 1: UTILIZACIN GENRICA DEL OBJETO EXPEDIENTES


Constantes a tener presente (ctHonorario, ctTrabajo, ctProvision, ctSuplido) var NaxExpe:Expediente; begin NaxExpe := CoExpediente.Create; NaxExpe.Iniciar; NaxExpe.Nuevo('1', '28/07/2006'); // Creamos el objeto // Iniciamos el objeto // Creamos la cabecera indicando cliente y fecha

NaxExpe.AsStringCab['NOMEXP'] := 'Expediente realizado con nax'; // Modificamos el nombre del expediente NaxExpe.NuevaLinea(ctTrabajo); ctTrabajo) NaxExpe.AsStringLin['CodArt'] := '1'; NaxExpe.AsStringLin['CodPer'] := '1'; NaxExpe.AsFloatLin['Unidades'] := 2; NaxExpe.AsFloatLin['PrcMoneda'] := 6; NaxExpe.AnadirLinea; NaxExpe.ActivarFacturado := true; NaxExpe.Facturar( NaxExpe.Anade, true); NaxExpe.ActivarFacturado := false; NaxExpe.Acabar; end; // Creamos una nueva linea de trabajo (const // Indicamos el artculo a tratar // Indicamos la persona que lo realiza // Modifico las unidades por defecto a 2 // Modifico el precio por defecto a 6 // Guardamos la linea // Activar marca para poder facturarlo // Guardo el expediente (Anade) y lo facturo // DesActivar marca para poder facturar

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 67

COBRO/ANULACIN PARCIAL DE REMESAS


Estos dos objetos permiten realizar el cobro parcial de remesas y/o anulacin de cobros (realizados a partir de cobros parciales de remesas)

EJEMPLO 1: UTILIZACIN 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: UTILIZACIN DE ANULAR COBRO PARCIAL DE REMESAS


var query:TAdoQuery; CobroParcial: IAnularCobroParcialRemesa; begin query:=TAdoQuery.create(nil);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 68 query.ConnectionString := boaEnlace.Conexion; query.SQL.Text := 'select IDOPEREMESA FROM __OPEREMESA WHERE IDREMESA = 2'; query.open; CobroParcial := CoAnularCobroParcialRemesa.Create; Screen.Cursor := crHourGlass; try CobroParcial.Iniciar(2); while not query.Eof do begin CobroParcial.AnadeOperacion(query.FieldByName('IDOPEREMESA').AsInteger); query.Next; end; CobroParcial.Procesar; finally FreeAndNil(query); CobroParcial.Finalizar; CobroParcial := nil; Screen.Cursor := crDefault; end; end;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 69

OBJETOS NAX
INTRODUCCIN
Tal como ya se ha visto en el captulo anterior, la lista de objetos disponibles es la siguiente: Enlace: Inicia y cierra la conexin con la base de datos de una empresa nexus. Mantiene las variables de error. Varios: Objeto con varias funciones destinadas a: Obtencin de precios, obtencin de cambio entre monedas, obtencin de identificadores nicos de nexus, obtencin de cuentas y descripciones y llamadas a las distintas opciones visuales de nexus. Maestro: Artculos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Pases, Tarifas, Idiomas, etc... . Este objeto permite moverse por los ficheros mencionados, as como aadir nuevos y modificar los existentes. Seleccion: Este objeto permite presentar la pantalla de seleccin estndar de nexus, para mostrar los registros de cualquier tabla con el formato cdigo, descripcin, etc. Factura: Objeto que permite la creacin, modificacin y borrado de facturas. Albaran: Objeto que permite la creacin, modificacin y borrado de albaranes. Depsito: Objeto que permite la creacin, modificacin y borrado de depsitos. Pedido: Objeto que permite la creacin, modificacin y borrado de pedidos. Oferta: Objeto que permite la creacin, modificacin y borrado de ofertas (presupuestos). Regularizacion: Objeto que permite la creacin, modificacin y borrado de albaranes de regularizacin. Traspaso: Objeto que permite la creacin, modificacin y borrado de albaranes de traspaso entre almacenes. Inventario: Objeto que permite la creacin de y modificacin de inventarios. MovimientoStock: Objeto que permite la creacin, modificacin y borrado de lneas que generan movimientos en el stock por documentos no controlados por nexus. ReservaStock: Objeto que permite la creacin, modificacin y borrado de lneas que generan reservas en el stock por documentos no controlados por nexus. Asiento: Objeto que permite la creacin, modificacin y borrado de asientos. Cartera: Objeto que permite la creacin, modificacin y borrado de vencimientos en cartera.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 70 OperacionesCartera: Objeto que permite realizar operaciones sobre los efectos en cartera a excepcin 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 opcin de la aplicacin nexus. Listado: Objeto que permite realizar informes pasando los parmetros 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 produccin. 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 continuacin se detalla cada uno de los objetos:

OBJETO ENLACE
Interface Enlace

property bError: WordBool readonly; property sMensaje: WideString readonly; property EmpresaActiva: WideString readonly; property RaiseOnException: WordBool; property Estado: EstadoEnlace readonly; property nError: Integer readonly; property VentanasAbiertas: integer readonly; property Conexion: WideString readonly; procedure Iniciar(const sEmpresa: WideString; const sUbicacion: WideString);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 71 procedure Acabar; function ParamConexion(const sEmpresa: WideString): OleVariant; function Empresas: OleVariant; function SelecEmpresa: WordBool; function SelecEmpresaActiva: WordBool; procedure EliminarRecordatorioClave; function EstacionActivada(sCodProd: WideString): WordBool; procedure CerrarVentanas; procedure ActivarVentana; function LoginUsuario(sUsuario,sPassword: WideString):WordBool; function SelecMultiEmpresa: WordBool; function SelecMultiEmpresaActiva: WordBool;

Propiedades

Tipo

Descripcin

bError Nerror Estado SMensaje EmpresaActiva RaiseOnException

Lgico Entero EstadoEnlace Texto Texto Lgico

True si la ltima operacin provoc un error. Cdigo del ltimo error (0 ningn error) Indica si la conexin con nexus se ha realizado. Descripcin del ltimo error (en caso de error) Nombre de la empresa activa en nexus Para indicar si el lenguaje que se utiliza propaga las excepciones y desea aprovecharse esta ventaja. Disponible para Delphi. Desactivado en Visual Basic. Indica n de ventanas nexus abiertas Indica lista de parmetros de conexin a la base de datos

VentanasAbiertas Conexion

Integer Texto

EstadoEnlace (Tipo enumerado)

Valor EstNOACTIVO EstACTIVO 0 1

Significado Objeto no activo. No se puede usar. Objeto activo, se puede trabajar con l.

Procedure Iniciar (sEmpresa, sUbicacion:String)

Inicia la conexin con la empresa indicada. Parmetros: sEmpresa Nombre exacto de la empresa (distingue maysculas y minsculas).

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 72 sUbicacion Obsoleto

Procedure Acabar

Termina la conexin con la empresa indicada y libera los recursos reservados.

Function ParamConexion( sEmpresa, sUbicacion: WideString);

Retorna los parmetros de la conexin de la base de datos de la empresa seleccionada. Muy til para crear una conexin directa con esa base de datos para consultas directas desde el programa que utiliza NAX. Parmetros: sEmpresa sUbicacion Valor retornado Variant que representa un array Nombre de la empresa Obsoleto [0] Descripcin 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 relacin de empresas del sistema por defecto con el que se encuentra conectado el terminal. Valor retornado Variant que representa un array [0] Nmero 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 seleccin de empresas de nexus. Espera a que el usuario seleccione una empresa e inicia una conexin con su base de datos. Valor retornado Lgico Indica si se ha seleccionado la empresa

Function SelecEmpresaActiva: WordBool

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 73 En nexus, cuando se entra en una empresa, se guarda su nombre en el registro. Esta funcin recupera la empresa indicada en el registro e inicia una conexin con su base de datos. Valor retornado Lgico 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 funcin recupera el tipo contable (empresa) indicada en el registro y activa dicho tipo contable. Valor retornado Lgico 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 Lgico Indica si se ha seleccionado el tipo contable (empresa)

Procedure EliminarRecordatorioClave

Elimina el flag de recordar la contrasea del registro de Windows

Function EstacionActivada(sCodProd:WideString):WordBool

Parmetros:

sCodProd

Cdigo de producto de tercero (6 primeros dgitos del nmero de serie)

Retorna si el numero de serie de lPRODUCTO NEXUS est activado para la estacin. Valor retornado Lgico Indica si la estacion est activada para algn nmero de serie del producto indicado (de un mismo producto se pueden registrar varios nmeros de serie)

Procedure ActivarVentana

Pone en primer plano la ventana activa de nexus

Procedure CerrarVentanas

Cierra todas la ventanas abiertas de nexus

Function LoginUsuario(sUsuario, sPassword): WordBool

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 74 Parmetros: sUsuario sPassword Usuario nexus 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 aplicacin. Valor retornado Lgico Indica si el usuario y password es correcto

OBJETO VARIOS
Interface Varios

property Version: Integer readonly; property Revision: Integer readonly; property Parche: WideString readonly; function ObtPrcVenta( const sCodArt: WideString; const sCodCli: WideString; const sCodMon: WideString; const sTarifa: WideString; nUnidades: Currency; const sFecha: WideString): OleVariant; function ObtPrcCompra(const sCodArt: WideString; const sCodPro: WideString; const sCodMon: WideString; nUnidades: Currency; const sFecha: WideString) : OleVariant; function ObtPrcCompra(const sCodArt: WideString; const sCodPro: WideString; const sCodMon: WideString; const sTarifa: WideString; nUnidades: Currency; const sFecha: WideString) : OleVariant; function ObtPrecioCoste(const sCodArt: WideString; const sCodAlm: WideString; const sObtCoste: WideString): OleVariant; function ObtPrecioMedio(const sCodArt: WideString; const sCodAlm: WideString): OleVariant; function ObtComis( const sCodRep: WideString; const sCodArt: WideString; const sCodCli: WideString; nUnidades: Currency; nDescuento: Currency; const sFecha: WideString): OleVariant; function Cambio(const sCodMon: WideString; const sFecha: WideString): OleVariant; function CambioMon(const sMonIni: WideString; const sMonFin: WideString; const sFecha: WideString): OleVariant; function MonedaPrincipal: WideString;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 75 function FormatNum(nDecim: Integer): WideString; function FormatEdiNum(nDecim: Integer): WideString; function Redondear(nNumero: Currency; nDecima: Integer): Currency; function SigId(const sId: WideString): OleVariant; procedure DescArticulo( const sCodArt: WideString; const sCodIdi: WideString; var sDescArt: WideString; var sTexto: WideString); function ObtRepresentante(const sCodCli: WideString): WideString; function CuentaArtV(const sCodArt: WideString; const sCodCli: WideString): WideString; function CuentaArtC(const sCodArt: WideString; const sCodPro: WideString): WideString; function TotalLinea( nUni: Currency; Prc: Currency; desc1: Currency; desc2: Currency; desc3: Currency; desc4: Currency; const sCodMon: WideString; Iva: WordBool; const sTipIva: WideString; const sRegIva: WideString) :Currency; FUNCTION VENCIMIENTOS( BESCOBRO: WORDBOOL; SCODCLIPRO: WIDESTRING; NTOTMON, NTOTDOC: CURRENCY; SFORPAG, SDOCPAG, SCODMON, SFECHA: WIDESTRING): OLEVARIANT; procedure LlamarVisual(const OpcionNexus: WideString; Parametros: OleVariant);

Propiedades

Tipo

Descripcin

Version Revision Parche

Texto Texto Texto

Devuelve la versin de la librera Devuelve la revisin de la librera Devuelve la letra del parche de la librera

Function ObtPrcVenta ( sCodArt, sCodCli, sCodMon, sTarifa: String; nUnidades: Double; sFecha: String): Variant;

Permite obtener el precio de venta dados los parmetros de la funcin Parmetros: sCodArt sCodCli sCodMon sTarifa nUnidades sFecha Valor retornado Variant que representa un array Cdigo del artculo Cdigo del cliente Cdigo de la moneda Tarifa Unidades Fecha [0] Precio (Currency) [1] Total descuento (Currency) [2][0] Descuento 1 (Currency)

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 76 [2][1] Descuento 2 (Currency) [2][2] Descuento 3 (Currency) [2][3] Descuento 4 (Currency)

Function ObtPrcCompra ( sCodArt, sCodPro, sCodMon: String; nUnidades: Double; sFecha: String): Variant;

Permite obtener el precio de compra dados los parmetros de la funcin Parmetros: sCodArt sCodPro sCodMon nUnidades sFecha Valor retornado Variant que representa un array Cdigo del artculo Cdigo del proveedor Cdigo de la moneda Unidades Fecha [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 parmetros de la funcin Parmetros: Valor retornado sCodArt Currency Cdigo del artculo Valor del precio de coste del artculo

Function ObtPrcMedio ( sCodArt, sCodAlm: String): Double;

Permite obtener el precio de compra dados los parmetros de la funcin Parmetros: sCodArt sCodAlm Valor retornado Currency Cdigo del artculo Cdigo del Almacn Valor del precio medio del artculo en el almacn indicado

Function ObtComis ( sCodrep, sCodArt, sCodCli: String; nUnidades, nDescuento: Double; sFecha: String): Variant;

Permite obtener el porcentaje y el origen de comisin dados los parmetros de la funcin Parmetros: sCodRep Cdigo del representante

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 77 sCodArt sCodCli nUnidades nDescuento sFecha Valor retornado Variant que representa un array Cdigo del artculo Cdigo del cliente Unidades Descuento aplicado en % Fecha [0] Comisin [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. Parmetros: sCodMon sFecha Valor retornado Double Cdigo de la moneda Fecha Cambio

Function CambioMon(sCodMonIni, sCodMonFin, sFecha: String):Double

Permite obtener el cambio entre una moneda inicial y la moneda final en una fecha indicada. Parmetros: sCodMonIni sCodMonFin sFecha Valor retornado Double Cdigo de la moneda inicial Cdigo de la moneda final Fecha Cambio

Function MonedaPrincipal: string

Retorna el cdigo de la moneda principal de la empresa activa. Valor retornado String Cdigo de la moneda

Function FormatNum: string

Retorna string que define el formato de un nmero en Delphi con los decimales indicados en el parmetro. Parmetros: Valor retornado nDecim String N de decimales Formato

Function FormatEdiNum: string

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 78 Retorna string que define el formato de un nmero para su edicin en Delphi con los decimales indicados en el parmetro. Parmetros: Valor retornado nDecim String N de decimales Formato

Function Redondear(nNumero:Double; nDecima:Integer):Double;

Utiliza la misma funcin para redondear que nexus. Parmetros: nNumero nDecima Valor retornado Double N a redondear N de decimales del resultado Nmero redondeado con los decimales indicados

Function Sigld(sId:String):Integer;

Retorna un identificador nico para el nombre que se pasa por parmetro. Parmetros: Valor retornado sId Double Nombre del identificador Identificador nico

Function DescArticulo (sCodArt, sCodIdi: String; var sDescArt, sTexto: String);

Retorna en los dos ltimos parmetros de la funcin la descripcin y el texto del artculo y en el idioma indicados. Parmetros: sCodArt sCodIdi Valor retornado sDescArt: String sTexto: string Cdigo del artculo Cdigo del idioma Descripcin del artculo Texto del artculo

Function ObtRepresentante(sCodCli: String): String;

Retorna el representante de un cliente. Parmetros: Valor retornado sCodCli String Cdigo del cliente Cdigo del representante

Function CuentaArtV( sCodArt, sCodCli: String): String;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 79 Retorna la cuenta de ventas asociada a un artculo para un cliente determinado. El proceso que sigue el siguiente esquema: Cuenta de ventas del artculo (si la hay) Cuenta de ventas del cliente (si la hay) Cuenta de ventas de los datos generales sCodArt sCodCli Valor retornado String Cdigo del artculo Cdigo del cliente Cuenta de ventas

Parmetros:

Function CuentaArtC( sCodArt, sCodPro: String): String;

Retorna la cuenta de compras asociada a un artculo para un proveedor determinado. El proceso que sigue el siguiente esquema: Cuenta de compras del artculo (si la hay) Cuenta de compras del proveedor (si la hay) Cuenta de compras de los datos generales sCodArt sCodPro Valor retornado String Cdigo del artculo Cdigo del proveedor Cuenta de compras

Parmetros:

Function TotalLinea(nUni: Integer; Prc, desc1, desc2, desc3, desc4: Double; sCodMon: String;Iva: Boolean; sTipIva, sRegIva: String): Double

El clculo del total de una lnea depende de muchas variables y en ocasiones es conveniente simular exactamente el mismo clculo que realiza nexus. Parmetros: nUni Prc Desc1 Desc2 Desc3 Desc4 sCodMon Iva sTipIva sRegIva Valor Double N unidades Precio unitario Descuento 1 Descuento2 Descuento3 Descuento4 Cdigo de la moneda IVA incluido (True IVA incluido) Tipo de IVA Rgimen de IVA Total de la lnea

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 informacin el conjunto de vencimientos con las condiciones especificadas. Parmetros: bEsCobro Indica si se trata de un cliente o proveedor. bEsCobro = True Cliente. bEsCobro = False Proveedor. sCodCliPro nTotMon nTotDoc sForPag sDocPag sCodMon sFecha Valor retornado: OleVariant Cdigo del cliente o proveedor. Total del documento en la moneda indicada. Total del documento en moneda principal. Forma de pago. Documento de pago. Cdigo de la moneda. Fecha de la factura. Retorna el n del identificador de cartera (NUMCARTERA).

procedure LlamarVisual(const OpcionNexus: WideString; Parametros: OleVariant);

Muestra un pantalla visual de nexus Parmetros: OpcionNexus Parmetros Identificador de la pantalla visual [0] sin parametros [1][0] Nombre del parmetro 1 [2][0] Valor del parmetro 1 [1][1] Nombre del parmetro 2 [2][1] Valor del parmetro 2 Ver ejemplos en Objeto Opcion (llamada a opciones visuales)

OBJETO MAESTRO
Este objeto permite moverse por los ficheros, as como aadir nuevos y modificar los existentes. Los ficheros son los siguientes: Artculos, Proveedores, Clientes, Cuentas, Bancos, Almacenes, Representantes, Transportistas, Provincias, Pases, Tarifas, Idiomas, etc... .

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 81

Interface Maestro

Property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property EOF: WordBool readonly; property BOF: WordBool readonly; property Estado: EstadoMaestro readonly; property Filtro: WideString; property Filtrado: WordBool; function Buscar(V: OleVariant): WordBool; function NuevoCodigoNum: WideString; function Seleccionar: WideString; function ExisteCampo(const cCampo: WideString): WordBool; procedure Iniciar(const sNombre: WideString); procedure Acabar; procedure Nuevo; procedure Guarda(bSobreescribir: WordBool); procedure Primero; procedure Anterior; procedure Siguiente; procedure Ultimo; procedure Edita; procedure Cancelar; procedure Borrar; procedure CambiarCodigo(const sViejo: WideString; const sNuevo: WideString); function Seleccionar2: OleVariant; (NUEVO 800G) procedure Duplicar(CodigoOrigen:olevariant; codigoDuplicado: Olevariant, const Params: WideString);

Propiedades

Tipo

Descripcin

AsString AsFloat

Tabla( string) Tabla( float)

Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 82 nuevo/actual. AsInteger AsBoolean BOF EOF Estado Filtro Filtrado Tabla( integer) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( lgico) Lgico Lgico EstadoMaestr o String Lgico Asigna/lee valores a/de los campos del registro nuevo/actual. Indica que estamos al principio de los registros del maestro. Al final. Devuelve en que estado se encuentra el maestro. Cadena de texto que permite poner un filtro en el maestro. Valor lgico para activar/desactivar el filtro

Mtodos

Tipo

Descripcin

Iniciar Acabar Primero Anterior Siguiente Ultimo Buscar Nuevo Edita Guarda Cancela Refrescar

Procedimiento Inicia el maestro especificado. Pasa al estado estM_ACTIVO Procedimiento Cierra el maestro. Estado estM_NOACTIVO. Procedimiento Ir al primer registro. Procedimiento Al anterior. Procedimiento Al siguiente. Procedimiento Al ltimo. Funcin Busca un registro por clave principal.

Procedimiento Pasa estado estM_NUEVO en el que se pueden asignar valores a los campos del registro. Procedimiento Pasa estado estM_EDICION en el que se pueden asignar valores a los campos del registro. Procedimiento Inserta o modifica el registro actual del maestro. Procedimiento Pasa al estado estM_ACTIVO, descartando el registro actual. Procedimiento Hace un refresh de la tabla fsica. Retorna un string con el siguiente cdigo numrico para una alta. Presenta una ventana de seleccin y retorna el cdigo del registro seleccionado. Indica si existe un nombre de campo dentro del maestro.

NuevoCodigoNu Funcin m Seleccionar ExisteCampo CambiarCodigo Funcin Funcin

Procedimiento Cambia la clave con el valor indicado por otro tambin indicado.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 83 Seleccionar2 Duplicar Funcin Presenta una ventana de seleccin y retorna los cdigos que forman parte de la clave, del registro seleccionado.

Procedimiento Permite duplicar un registro existente sobre uno nuevo.

Las primeras funciones de la lista que se presentan a continuacin 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 travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloat[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBoolean[ sCampo:String]: Boolean

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 84 A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property EOF:Boolean

Esta propiedad nos indica si nos encontramos al final del maestro. Valor retornado Lgico Indica si estamos al final del maestro.

property BOF:Boolean

Esta propiedad nos indica si nos encontramos al principio del maestro. Valor retornado Lgico 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 aadir, borrar, modificar y movernos por los registros. ESTM_NUEVO: Maestro en estado de insercin de un nuevo registro. ESTM_EDICION: Maestro en estado modificacin, podemos asignar valores a los campos. Modificando el registro actual al guardarlo. Si slo cambisemos el campo clave crearamos 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 ms adelante se pueden atacar otras bases de datos esta funcin se utilizar de distinta forma dependiendo de la base de datos.

property Filtro:Boolean

Indica si se utiliza el contenido de la propiedad Filtro o no.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 85

procedure Iniciar( sNombre: string);

Este procedimiento es el que reserva los recursos necesarios para que el maestro pueda ser usado. El parmetro de esta funcin identifica el maestro con el que se va a trabajar y por tanto los campos disponibles. Maestros vlidos: 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. Parmetros: 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 parmetro 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. Parmetros: Valor retornado sClave Lgico Contenido de la clave que se est buscando. Indica si se ha encontrado la clave.

procedure Nuevo;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 86 Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO.

procedure Edita;

Pone el registro actual en edicin. 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. Parmetros: bSobreescribir True: Se sobrescriben los valores que existen en el registro. Si se modifica el cdigo se cambia el cdigo del maestro. False: Se crea un nuevo registro con al contenido de la ficha. Si ya existe ese cdigo da error.

Procedure Cancela;

Cancela la edicin 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. Operacin no permitida cuando el estado es ESTM_NUEVO o ESTM_EDICION.

function NuevoCodigoNum: String;

Retorna el ltimo registro numrico + 1. Este es el sistema que utiliza nexus para proponer el cdigo de clave que toca al crear un nuevo registro en un maestro. Valor retornado String Valor del cdigo.

function Seleccionar: String;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 87 Permite usar la seleccin por defecto de los maestros de nexus. Retorna el valor de la clave seleccionada. Esta funcin est pensada exclusivamente para maestros con un nico campo clave. Aquellos maestros con ms de un campo clave no tienen seleccin. Esta funcin no se coloca en el registro seleccionado, tras realizar la seleccin, con el resultado debe buscarse el registro seleccionado a travs de la funcin Buscar. Valor retornado String Valor del cdigo de la clave

function Seleccionar2: OleVariant;

Permite usar la seleccin por defecto de los maestros de nexus. Retorna lista de valores de la clave seleccionada (para ficheros con claves mltiples) Esta funcin est pensada para maestros con clave mltiple. Esta funcin no se coloca en el registro seleccionado, tras realizar la seleccin, con el resultado debe buscarse el registro seleccionado a travs de la funcin 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 revisin determinada y el programador deber preguntarse por su existencia antes de usarlo. Para ello existe esta funcin que te indica si existe un campo cuyo nombre se pasa por parmetro. Parmetros: Valor retornado sCampo Lgico Nombre de l campo Indica si se ha encontrado el campo en el maestro.

procedure CambiarCodigo(sViejo: String; sNuevo: String);

Modifica la clave de un maestro. Esta funcin exclusivamente funciona con claves con un nico campo. Parmetros: sViejo sNuevo Valor de la clave anterior Valor de la nueva clave

procedure Duplicar(CodigoOrigen: Olevariant; CodigoDuplicado: Olevariant; Params:String);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 88 Permite duplicar el registro del codigoorigen sobre un registro nuevo con codidoduplicado. (slo para el maestro de artculos !!!) Parmetros: CodigoOrigen CodigoDuplicado Params Valor de la clave origen Valor de la nueva clave OPCIONES ESPECIALES A DUPLICAR (STOCK, VINCULOS, REFERENCIAS, IDIOMAS, ESCANDALLO, TARIFASV, PRECIOSESPV, ALARMASV, COMISIONESV, DESCUENTOSV, TARIFASC, PRECIOSESPC, ALARMASC, DESCUENTOSC) P.E STOCK=TRUE,IDIOMAS=FALSE,DESCUENTOSC=FALSE

OBJETO SELECCION
Este objeto permite presentar la pantalla de seleccin estndar de nexus, para mostrar los registros de cualquier tabla con el formato cdigo, descripcin, etc
Interface Seleccin

property Tabla: WideString; property CampoResultado: WideString; property Filtro: WideString; function Ejecutar: WideString; function Ejecutar2: OleVariant;

Propiedades

Tipo

Descripcin

Tabla

String

En esta propiedad podemos indicar la tabla que queremos seleccionar. En esta propiedad podemos indicar el nombre del campo y la seleccin devolver el valor de este campo. 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 ms adelante se pueden atacar otras bases de datos esta funcin se utilizar de distinta forma dependiendo de la base de datos.

CampoResultad String o Filtro String

Mtodos

Tipo

Descripcin

Ejecutar

Funcin

Presenta una ventana de seleccin y retorna el cdigo del

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 89 registro seleccionado. Ejecutar2 Funcin Presenta una ventana de seleccin y retorna los cdigos 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 seleccin 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 ms adelante se pueden atacar otras bases de datos esta funcin se utilizar de distinta forma dependiendo de la base de datos.

function Ejecutar: String;

Permite usar la seleccin estndar de los maestros de nexus. Retorna el valor de la clave seleccionada. Esta funcin est pensada ficheros con campos cdigo, descripcin, etc. con un nico campo clave. Aquellos maestros con ms de un campo clave utilizaremos la funcion Ejecutar2 Valor retornado String Valor del cdigo de la clave

function Ejecutar2: OleVariant;

Permite usar la seleccin estndar de los maestros de nexus. Retorna lista de valores de la clave seleccionada (para ficheros con claves mltiples) Esta funcin est pensada para maestros con clave mltiple. Valor retornado OleVariant Lista de valores de lo campos que forman parte de la clave

OBJETO FACTURA
Objeto que permite la creacin, modificacin y borrado de facturas.
Interface Factura

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 90 property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool; bEsContable: WordBool; bConReper: WordBool; bConCartera: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 91 procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru. nNumLin, nNumBul, nNumPaq: Currency; nNumUni, nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle ( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente; procedure ConsumirFacturaAnticipo(IdFactura:Currency; Importemoneda:currency; Importe:currency);

Propiedades AsStringCab AsIntegerCab

Tipo Tabla( string) Tabla( Integer)

Descripcin Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 92 nuevo/actual. AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsCurrencyLin AsBooleanLin Estado AsStringComp AsIntegerComp AsFloatComp AsBooleanComp AsCurrencyComp OmitirMensajes Tabla( Float) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( string) Tabla( Integer) Tabla( Float) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Lgico) EstadoMaestro Tabla( string) Tabla( Integer) Tabla( Float) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Devuelve el estado en que se encuentra el objeto Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Lgico Asignar valor para ocultar mensajes de informacin Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no los mensajes de validacin de precios Asignar valor para activar o no los mensajes de los artculos bloqueados Asignar valor para activar o no los mensajes de aviso de stock Asignar valor para activar o no los mensajes de aviso de riesgo

ActivarAlarmaCab Lgico ActivarAlarmaLin ValidarPrecios ValidarArtBloque ado AvisarStock AvisarRiesgo Lgico Lgico Lgico Lgico Lgico

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 93 AvisarCentroCost Lgico eCabecera Asignar valor para activar o no el mensaje que aparece al cambiar algn nivel de analtica y pregunta si se desa cambiar en las lneas.

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Modifica ModificaParcial Cancela Anade Tipo Descripcin

Procedimient Inicia el objeto o Procedimient Cierra el objeto o Procedimient Inicia un nuevo documento o Procedimient Borra el documento o Procedimient Prepara el documento para poderlo modificar. o Procedimient Prepara el documento para poder cambiar solamente el o detalle de una lnea Procedimient Cancela la edicin del documento. o Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

NuevaLinea NuevaLineaArt

Procedimient Inicia una nueva lnea o Procedimient Inicia una nueva lnea aplicando las polticas de nexus, o dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimient Aade la lnea o Procedimient Cancela la lnea en edicin o Procedimient Permite editar una lnea ya existente del documento. o Procedimient Permite borrar una lnea del documento. o Procedimient Inicia el proceso de servir lneas de otro documento o origen. Procedimient Sirve el documento origen entero.

AnadirLinea CancelaLin EditarLinea BorrarLinea IniciarServir ServirDocumento

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 94 o ServirLinea AnularLinea FinServir AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla NuevoComponente EditarComponente BorrarComponente AnadirComponente CancelarComponente Procedimient Sirve una lnea del documento origen. o Procedimient Anula una lnea del documento origen conforme no o podrn servirse las unidades indicadas. Procedimient Finaliza el proceso de servir. o Procedimient Identifica los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Cambia los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Borra el detalle los n de serie, lotes, fechas de o caducidad y/o ubicaciones de una lnea del documento. Procedimient Identifica las tallas de una lnea del documento. o Procedimient Cambia las tallas de una lnea del documento. o Procedimient Borra el detalle de las tallas de una lnea del o documento. Procedimient Inicia una nueva lnea componente de un kit. o Procedimient Permite editar una lnea componente de un kit. o Procedimient Borra una lnea componente de un kit. o Procedimient Aade una lnea componente de un kit. o Procedimient Cancela una lnea componente de un kit. o

ConsumirFacturaAntici Procedimient Permite consumir una factura de anticipo po o Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 95 Uso en Delphi: naxDocumento.AsStringCab* CodCli+ Uso en Visual Basic: naxDocumento. AsStringCab ( CodCli)

property AsStringCab[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 96


property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringComp[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 97 Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerComp[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatComp[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanComp[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyComp[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property ValidarPrecios: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mnimo Valor retornado Lgico Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 98


property ValidarArtBloqueado: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artculo bloqueado Valor retornado Lgico Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado Lgico Valor del campo

property AvisarRiesgo: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado Lgico Valor del campo

property AvisarCentroCosteCabecera: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las lneas cuando se cambia desde la cabecera Valor retornado Lgico Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, podemos asignar valores a los campos. Valor retornado EstadoMaestro Retorna el estado del documento.

procedure Iniciar;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 99 Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nuevo( sFecha: String; sCodCliPro: String; EsDeCompra: Boolean; EsContable: Boolean; ConReper: Boolean; ConCartera: Boolean);

Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parmetros: sFecha sCodCliPro bEsDeCompra bEsContable bConReper bConCartera Fecha del documento Cdigo del cliente o proveedor True Compra False Venta True Contable False De gestin Indica si se desean generar repercusiones contables Indica si se desean generar los vencimientos en funcin de la forma de pago.

procedure Modifica(IdDocu: Currency; EsDeCompra: WordBool);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);

Este mtodo se utiliza nicamente para cambiar el detalle de una lnea de un documento. Se puede utilizar en documentos con muchas lneas, mejorando la velocidad, ya que solo carga el detalle de la lnea que se indica. Despues de llamar a este mtodo solo se pueden utilizar los mtodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edicin y la lnea que tiene el Numlin indicado en edicin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 100 Parmetros: IdDocu NumLin EsDeCompra Identificador del documento Numero de lnea 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: actualizacin de stocks, repercusiones contables, generacin de vencimientos, actualizacin de estadsticas y almacenamiento de los datos de IVA. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas realizando las bsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 101 Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea. 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 coleccin 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 continuacin 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. Parmetros: sIdDocu O Oferta P Pedido A Albarn. D Depsito nIdDocu En funcin del valor de sIdDocu (O,P,A,D) representa el identificador de la oferta (IdOfeV o IdOfeC), del pedido (IdPEdV o IdPedC), del albarn (IdAlbV o IdAlbC) o del depsito (IdDepV o IdDepC) respectivamente.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 102 bConMensaje En caso en que se produzcan diferencias entre las condiciones del documento origen y el destino (Por ejemplo, la forma de pago, el documento de pago, el transportista, etc....), el programa puede actuar de dos formas distintas: bConMesnaje = True: Preguntar al usuario si se desean aplicar las condiciones del documento destino o respetar las del documento origen. bConMensaje = False: Aplicar las condiciones del documento destino.

procedure ServirDocumento;

Sirve todo el material pendiente de todo del documento origen indicado en la funcin IniciarServir.

procedure ServirLinea( nNumGrupo, nNumLin, nNumBul, nNumPaq: Currency; nNumUni, nPrcMedio: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString);

Sirve la lnea con los parmetros indicados. Parmetros: nNumGrupo nNumLin Campo obsoleto. PONER UN 0. N de lnea. NUMLINOFE en ofertas, NUMLINPED en pedidos, NUMLINALB en albaranes y NUMLINDEP en depsitos. N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. N de unidades que desean servirse. Campo obsoleto. PONER UN 0. N de serie. Lote. Ubicacin Fecha de caducidad.

nNumBul nNumPaq nNumUni nPrcMedio sNSerie sLote sUbicac sFecCad

procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);

Anula las unidades indicadas de la lnea pasada por parmetro. Esas unidades no estarn disponibles para ser servidas posteriormente.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 103 Parmetros: nNumLin nNumBul nNumPaq nNumUni N de lnea del documento origen (NUMLINOFE, NUMLINPED, NUMLINALB o NUMLINDEP). N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades sNumSerie sLote Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEFACT. N de unidades de la lnea de detalle. N de serie. Lote.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 104 sUbicacion sFecCadu Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMoneda Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMoneda Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEFACT. N de unidades de la lnea de talla. Precio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEFACT.

Procedure NuevoComponente;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea componente

Procedure AnadirComponente;

Almacena los valores de los campos de la lnea componente en la base de datos.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 105

Procedure CancelaComponente;

Cancela la edicin de la lnea componente activa.

procedure EditarComponente(nIdLinea: Currency);

Pone la lnea componente indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirComponente. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINFAC del fichero LINEFACT.

procedure BorrarComponente( nIdLinea: Currency);

Borra la lnea componente con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINFAC del fichero LINEFACT.

procedure ConsumirFacturaAnticipo( IdFactura: Currency; Importemoneda:currency; Importe:currency);

Permite consumir una factura de anticipo Parmetros: IdFactura ImporteMoneda Importe Identificador de la factura de anticipo que queremos consumir. Importe a consumir en la moneda de la factura Importe a consumir en EUROS de la factura

OBJETO ALBARAN
Objeto que permite la creacin, modificacin y borrado de albaranes.
Interface Albaran

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 106 property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 107 nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 108 nuevo/actual. AsBooleanLin AsCurrencyLin Estado AsStringComp AsIntegerComp AsFloatComp AsBooleanComp AsCurrencyComp OmitirMensajes Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Lgico Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asignar valor para ocultar mensajes de informacin Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no los mensajes de validacin de precios Asignar valor para activar o no los mensajes de los artculos bloqueados Asignar valor para activar o no los mensajes de aviso de stock Asignar valor para activar o no los mensajes de aviso de riesgo Asignar valor para activar o no el mensaje que aparece al cambiar algn nivel de analtica y pregunta si se desa cambiar en las lneas.

ActivarAlarmaCab Lgico ActivarAlarmaLin ValidarPrecios ValidarArtBloque ado AvisarStock AvisarRiesgo Lgico Lgico Lgico Lgico Lgico

AvisarCentroCost Lgico eCabecera

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Tipo Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el documento

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 109 Modifica ModificaParcial Cancela Anade Procedimiento Prepara el documento para poderlo modificar. Procedimiento Prepara el documento para poder cambiar solamente el detalle de una lnea Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

NuevaLinea NuevaLineaArt

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento. Procedimiento Inicia el proceso de servir lneas de otro documento origen. Procedimiento Sirve el documento origen entero. Procedimiento Sirve una lnea del documento origen. Procedimiento Anula una lnea del documento origen conforme no podrn servirse las unidades indicadas. Procedimiento Finaliza el proceso de servir. Procedimiento Identifica los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Cambia los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Borra el detalle los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Identifica las tallas de una lnea del documento. Procedimiento Cambia las tallas de una lnea del documento. Procedimiento Borra el detalle de las tallas de una lnea del documento.

AnadirLinea CancelaLin EditarLinea BorrarLinea IniciarServir ServirDocumento ServirLinea AnularLinea FinServir AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla

NuevoComponente Procedimiento Inicia una nueva lnea componente de un kit. EditarComponente Procedimiento Permite editar una lnea componente de un kit. BorrarComponente Procedimiento Borra una lnea componente de un kit. AnadirComponente Procedimiento Aade una lnea componente de un kit. CancelarComponen Procedimiento Cancela una lnea componente de un kit. te

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 110 Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 111

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Bolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 112 A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringComp[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerComp[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatComp[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanComp[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyComp[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 113 Valor retornado Currency Valor del campo

property ValidarPrecios: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mnimo Valor retornado Lgico Valor del campo

property ValidarArtBloqueado: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artculo bloqueado Valor retornado Lgico Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado Lgico Valor del campo

property AvisarRiesgo: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado Lgico Valor del campo

property AvisarCentroCosteCabecera: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las lneas cuando se cambia desde la cabecera Valor retornado Lgico Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar albaranes.
property Estado:EstadoMaestro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 114 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodCliPro bEsDeCompra Fecha del documento Cdigo del cliente o proveedor True Compra False Venta

procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 115 Este mtodo se utiliza nicamente para cambiar el detalle de una lnea de un documento. Se puede utilizar en documentos con muchas lneas, mejorando la velocidad, ya que solo carga el detalle de la lnea que se indica. Despues de llamar a este mtodo solo se pueden utilizar los mtodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edicin y la lnea que tiene el Numlin indicado en edicin Parmetros: IdDocu NumLin EsDeCompra Identificador del documento Numero de lnea 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 116 Crea una lnea con el artculo y las unidades indicadas realizando las bsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea. 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 coleccin 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 continuacin pueden utilizarse los procedimientos ServirDocumento, ServirLinea o AnularLinea y funalmente debe llamarse a FinServir.
procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; bConMensaje: Boolean);

Prepara el documento indicado para servirse. Reserva los recursos necesarios.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 117 Parmetros: sIdDocu nIdDocu O Oferta P Pedido En funcin del valor de sIdDocu (O,P) representa el identificador de la oferta (IdOfeV o IdOfeC) o del pedido (IdPEdV o IdPedC) respectivamente. 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.

bConMensaje

procedure ServirDocumento;

Sirve todo el material pendiente de todo del documento origen indicado en la funcin IniciarServir.

procedure ServirLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCad: WideString);

Sirve la lnea con los parmetros indicados. Parmetros: nNumLin nNumBul nNumPaq nNumUni sNSerie sLote sUbicacion sFecCad N de lnea. NUMLINOFE en ofertas y NUMLINPED en pedidos N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. N de unidades que desean servirse. N de serie. Lote. Ubicacin Fecha de caducidad.

procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 118 Anula las unidades indicadas de la lnea pasada por parmetro. Esas unidades no estarn disponibles para ser servidas posteriormente. Parmetros: nNumLin nNumBul nNumPaq nNumUni N de lnea del documento origen (NUMLINOFE o NUMLINPED). N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEALBA. N de unidades de la lnea de detalle.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 119 sNumSerie sLote sUbicacion sFecCadu N de serie. Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMoneda Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMoneda Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEALBA. N de unidades de la lnea de talla. Precio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEALBA.

Procedure NuevoComponente;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea componente

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 120


Procedure AnadirComponente;

Almacena los valores de los campos de la lnea componente en la base de datos.

Procedure CancelaComponente;

Cancela la edicin de la lnea componente activa.

procedure EditarComponente(nIdLinea: Currency);

Pone la lnea componente indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirComponente. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINALB del fichero LINEALBA.

procedure BorrarComponente( nIdLinea: Currency);

Borra la lnea componente con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINALB del fichero LINEALBA.

OBJETO PEDIDO
Objeto que permite la creacin, modificacin y borrado de pedidos.
Interface Pedido

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 121 property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 122 procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLi n Estado

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 123 ro AsStringComp AsIntegerComp AsFloatComp AsBooleanComp AsCurrencyComp OmitirMensajes Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Lgico Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asignar valor para ocultar mensajes de informacin Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no los mensajes de validacin de precios Asignar valor para activar o no los mensajes de los artculos bloqueados Asignar valor para activar o no los mensajes de aviso de riesgo Asignar valor para activar o no el mensaje que aparece al cambiar algn nivel de analtica y pregunta si se desa cambiar en las lneas.

ActivarAlarmaCab Lgico ActivarAlarmaLin ValidarPrecios ValidarArtBloque ado AvisarRiesgo Lgico Lgico Lgico Lgico

AvisarCentroCost Lgico eCabecera

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Modifica ModificaParcial Tipo Descripcin

Procedimient Inicia el objeto o Procedimient Cierra el objeto o Procedimient Inicia un nuevo documento o Procedimient Borra el documento o Procedimient Prepara el documento para poderlo modificar. o Procedimient Prepara el documento para poder cambiar solamente el o detalle de una lnea

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 124 Cancela Anade NuevaLinea NuevaLineaArt Procedimient Cancela la edicin del documento. o Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimient Inicia una nueva lnea o Procedimient Inicia una nueva lnea aplicando las polticas de nexus, o dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimient Aade la lnea o Procedimient Cancela la lnea en edicin o Procedimient Permite editar una lnea ya existente del documento. o Procedimient Permite borrar una lnea del documento. o Procedimient Inicia el proceso de servir lneas de otro documento o origen. Procedimient Sirve el documento origen entero. o Procedimient Sirve una lnea del documento origen. o Procedimient Anula una lnea del documento origen conforme no o podrn servirse las unidades indicadas. Procedimient Finaliza el proceso de servir. o Procedimient Identifica los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Cambia los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Borra el detalle los n de serie, lotes, fechas de caducidad o y/o ubicaciones de una lnea del documento. Procedimient Identifica las tallas de una lnea del documento. o Procedimient Cambia las tallas de una lnea del documento. o Procedimient Borra el detalle de las tallas de una lnea del documento. o

AnadirLinea CancelaLin EditarLinea BorrarLinea IniciarServir ServirDocumento ServirLinea AnularLinea FinServir AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla

NuevoComponente Procedimient Inicia una nueva lnea componente de un kit.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 125 o EditarComponente Procedimient Permite editar una lnea componente de un kit. o BorrarComponente Procedimient Borra una lnea componente de un kit. o AnadirComponente Procedimient Aade una lnea componente de un kit. o CancelarComponen Procedimient Cancela una lnea componente de un kit. te o Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 126 Valor retornado Double Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 127


property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringComp[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerComp[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatComp[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanComp[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 128 Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyComp[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property ValidarPrecios: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mnimo Valor retornado Lgico Valor del campo

property ValidarArtBloqueado: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artculo bloqueado Valor retornado Lgico Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado Lgico Valor del campo

property AvisarRiesgo: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado Lgico Valor del campo

property AvisarCentroCosteCabecera: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las lneas cuando se cambia desde la cabecera

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 129 Valor retornado Lgico Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodCliPro bEsDeCompra Fecha del documento Cdigo del cliente o proveedor True Compra False Venta

procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu Identificador del documento

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 130 bEsDeCompra True Compra False Venta

procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);

Este mtodo se utiliza nicamente para cambiar el detalle de una lnea de un documento. Se puede utilizar en documentos con muchas lneas, mejorando la velocidad, ya que solo carga el detalle de la lnea que se indica. Despues de llamar a este mtodo solo se pueden utilizar los mtodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edicin y la lnea que tiene el Numlin indicado en edicin Parmetros: IdDocu NumLin EsDeCompra Identificador del documento Numero de lnea 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

Procedure NuevaLinea;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 131 Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas realizando las bsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea( nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea. 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 coleccin 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 continuacin pueden utilizarse los procedimientos ServirDocumento, ServirLinea o AnularLinea y funalmente debe llamarse a FinServir.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 132


procedure IniciarServir( sIdDocu: string; nIdDocu: Currency; bConMensaje: Boolean);

Prepara el documento indicado para servirse. Reserva los recursos necesarios. Parmetros: sIdDocu nIdDocu bConMensaje O Oferta Representa el identificador de la oferta (IdOfeV o IdOfeC). 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 funcin IniciarServir.

procedure ServirLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString);

Sirve la lnea con los parmetros indicados. Parmetros: nNumLin nNumBul nNumPaq nNumUni sNSerie sLote sUbicac sFecCad N de lnea. NUMLINOFE de ofertas. N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. N de unidades que desean servirse. N de serie. Lote. Ubicacin Fecha de caducidad.

procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 133 Anula las unidades indicadas de la lnea pasada por parmetro. Esas unidades no estarn disponibles para ser servidas posteriormente. Parmetros: nNumLin nNumBul nNumPaq nNumUni N de lnea del documento origen (NUMLINOFE). N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades sNumSerie Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEPEDI. N de unidades de la lnea de detalle. N de serie.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 134 sLote sUbicacion sFecCadu Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMoneda Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMoneda Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEPEDI. N de unidades de la lnea de talla. Precio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEPEDI.

Procedure NuevoComponente;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea componente

Procedure AnadirComponente;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 135 Almacena los valores de los campos de la lnea componente en la base de datos.

Procedure CancelaComponente;

Cancela la edicin de la lnea componente activa.

procedure EditarComponente(nIdLinea: Currency);

Pone la lnea componente indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirComponente. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINPED del fichero LINEPEDI.

procedure BorrarComponente( nIdLinea: Currency);

Borra la lnea componente con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINPED del fichero LINEPEDI.

OBJETO DEPSITO
Objeto que permite la creacin, modificacin y borrado de depsitos.
Interface Depsito

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 136 property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarStock: WordBool; property AvisarRiesgo: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure IniciarServir(const sIdDocu: WideString; nIdDocu: Currency; bConMensaje: WordBool); procedure ServirDocumento; procedure FinServir; procedure ServirLinea( nNumGru: Currency; nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; nPrcMed: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString); procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 137 sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double); procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 138 AsStringComp AsIntegerComp AsFloatComp AsBooleanComp AsCurrencyComp OmitirMensajes Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Lgico Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asignar valor para ocultar mensajes de informacin Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no los mensajes de validacin de precios Asignar valor para activar o no los mensajes de los artculos bloqueados Asignar valor para activar o no los mensajes de aviso de stock Asignar valor para activar o no los mensajes de aviso de riesgo Asignar valor para activar o no el mensaje que aparece al cambiar algn nivel de analtica y pregunta si se desa cambiar en las lneas.

ActivarAlarmaCab Lgico ActivarAlarmaLin ValidarPrecios ValidarArtBloque ado AvisarStock AvisarRiesgo Lgico Lgico Lgico Lgico Lgico

AvisarCentroCost Lgico eCabecera

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Modifica ModificaParcial Tipo Descripcin

Procedimie Inicia el objeto nto Procedimie Cierra el objeto nto Procedimie Inicia un nuevo documento nto Procedimie Borra el documento nto Procedimie Prepara el documento para poderlo modificar. nto Procedimie Prepara el documento para poder cambiar solamente el

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 139 nto Cancela Anade NuevaLinea NuevaLineaArt detalle de una lnea

Procedimie Cancela la edicin del documento. nto Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimie Inicia una nueva lnea nto Procedimie Inicia una nueva lnea aplicando las polticas de nexus, nto dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimie Aade la lnea nto Procedimie Cancela la lnea en edicin nto Procedimie Permite editar una lnea ya existente del documento. nto Procedimie Permite borrar una lnea del documento. nto Procedimie Inicia el proceso de servir lneas de otro documento nto origen. Procedimie Sirve el documento origen entero. nto Procedimie Sirve una lnea del documento origen. nto Procedimie Anula una lnea del documento origen conforme no nto podrn servirse las unidades indicadas. Procedimie Finaliza el proceso de servir. nto Procedimie Identifica los n de serie, lotes, fechas de caducidad y/o nto ubicaciones de una lnea del documento. Procedimie Cambia los n de serie, lotes, fechas de caducidad y/o nto ubicaciones de una lnea del documento. Procedimie Borra el detalle los n de serie, lotes, fechas de caducidad nto y/o ubicaciones de una lnea del documento. Procedimie Identifica las tallas de una lnea del documento. nto Procedimie Cambia las tallas de una lnea del documento. nto Procedimie Borra el detalle de las tallas de una lnea del documento. nto

AnadirLinea CancelaLin EditarLinea BorrarLinea IniciarServir ServirDocumento ServirLinea AnularLinea FinServir AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 140 NuevoComponente EditarComponente BorrarComponente AnadirComponente Procedimie Inicia una nueva lnea componente de un kit. nto Procedimie Permite editar una lnea componente de un kit. nto Procedimie Borra una lnea componente de un kit. nto Procedimie Aade una lnea componente de un kit. nto

CancelarComponent Procedimie Cancela una lnea componente de un kit. e nto Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 141 Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 142

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringComp[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerComp[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatComp[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanComp[ sCampo:String]: Boolean

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 143 A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyComp[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property ValidarPrecios: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mnimo Valor retornado Lgico Valor del campo

property ValidarArtBloqueado: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artculo bloqueado Valor retornado Lgico Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos del stock Valor retornado Lgico Valor del campo

property AvisarRiesgo: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de riesgo Valor retornado Lgico Valor del campo

property AvisarCentroCosteCabecera: WordBool

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 144 A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las lneas cuando se cambia desde la cabecera Valor retornado Lgico Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar depsitos.
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 aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodCliPro bEsDeCompra Fecha del documento Cdigo del cliente o proveedor True Compra False Venta

procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 145 Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);

Este mtodo se utiliza nicamente para cambiar el detalle de una lnea de un documento. Se puede utilizar en documentos con muchas lneas, mejorando la velocidad, ya que solo carga el detalle de la lnea que se indica. Despues de llamar a este mtodo solo se pueden utilizar los mtodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edicin y la lnea que tiene el Numlin indicado en edicin Parmetros: IdDocu NumLin EsDeCompra Identificador del documento Numero de lnea 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 146


Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas realizando las bsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea( nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea. 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 coleccin de procedimientos se encapsula el funcionamiento de las utilidades para servir cualquier documento sobre los depsitos. En primer lugar debe llamarse al procedimiento

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 147 IniciarServir, a continuacin 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. Parmetros: sIdDocu nIdDocu bConMensaje O Oferta P->Pedido Representa el identificador de la oferta (IdOfeV, IdOfeC) o del pedido(IdPedV o IdPedC). 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 funcin IniciarServir.

procedure ServirLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double; sNSerie: WideString; sLote: WideString; sUbicac: WideString; sFecCad: WideString);

Sirve la lnea con los parmetros indicados. Parmetros: nNumLin nNumBul nNumPaq nNumUni sNSerie sLote sUbicac sFecCad N de lnea. NUMLINOFE de ofertas y NUMLINPED en pedidos N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. N de unidades que desean servirse. N de serie. Lote. Ubicacin Fecha de caducidad.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 148

procedure AnularLinea( nNumLin: Currency; nNumBul: Currency; nNumPaq: Currency; nNumUni: Double);

Anula las unidades indicadas de la lnea pasada por parmetro. Esas unidades no estarn disponibles para ser servidas posteriormente. Parmetros: nNumLin nNumBul nNumPaq nNumUni N de lnea del documento origen (NUMLINOFE o NUMLINPED). N de bultos de la lnea que desean servirse. N de paquetes que desean servirse. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 149 Parmetros: nIdLine nUnidades sNumSerie sLote sUbicacion sFecCadu Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEDEPO. N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMoneda Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMoneda Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEDEPO. N de unidades de la lnea de talla. Precio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEDEPO.

Procedure NuevoComponente;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 150 Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea componente

Procedure AnadirComponente;

Almacena los valores de los campos de la lnea componente en la base de datos.

Procedure CancelaComponente;

Cancela la edicin de la lnea componente activa.

procedure EditarComponente(nIdLinea: Currency);

Pone la lnea componente indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirComponente. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO.

procedure BorrarComponente( nIdLinea: Currency);

Borra la lnea componente con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINDEP del fichero LINEDEPO.

OBJETO OFERTA
Objeto que permite la creacin, modificacin y borrado de ofertas.
Interface Oferta

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 151 property AsBooleanComp[const sCampo: WideString]: WordBool; property AsStringComp[const sCampo: WideString]: WideString; property AsFloatComp[const sCampo: WideString]: Double; property AsIntegerComp[const sCampo: WideString]: Integer; property AsCurrencyComp[const sCampo: WideString]: Currency; property OmitirMensajes:WordBool; property ActivarAlarmaCab : WordBool; property ActivarAlarmaLin: WordBool; property ValidarPrecios: WordBool; property ValidarArtBloqueado: WordBool; property AvisarCentroCosteCabecera: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; bEsDeCompra: WordBool); procedure Borra(IdDocu: Currency; bEsDeCompra: WordBool); procedure Modifica(IdDocu: Currency; bEsDeCompra: WordBool); NUEVO 802A procedure ModificaParcial(IdDocu: Currency; NumLin: Integer, EsDeCompra: WordBool); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades, nPrcMoneda: Double); procedure CambiarTalla(nIdLine, nUnidades, nPrcMoneda: Double); procedure BorrarTalla(nIdLine: Double);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 152 procedure NuevoComponente; procedure EditarComponente(nIdLine:Currency); procedure BorrarComponente(nIdLine:Currency); procedure AnadirComponente; procedure CancelarComponente;

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado AsStringComp AsIntegerComp AsFloatComp AsBooleanComp AsCurrencyComp

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 153 OmitirMensajes Lgico Asignar valor para ocultar mensajes de informacin Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no alarmas en documentos Asignar valor para activar o no los mensajes de validacin de precios Asignar valor para activar o no los mensajes de los artculos bloqueados Asignar valor para activar o no el mensaje que aparece al cambiar algn nivel de analtica y pregunta si se desa cambiar en las lneas.

ActivarAlarmaCab Lgico ActivarAlarmaLin ValidarPrecios ValidarArtBloque ado Lgico Lgico Lgico

AvisarCentroCost Lgico eCabecera

*EstadoMaestro: Ver objeto Maestro. Mtodo Tipo Descripcin

Iniciar Acabar Nuevo Borra Modifica ModificaParcial Cancela Anade NuevaLinea NuevaLineaArt

Procedimient Inicia el objeto o Procedimient Cierra el objeto o Procedimient Inicia un nuevo documento o Procedimient Borra el documento o Procedimient Prepara el documento para poderlo modificar. o Procedimient Prepara el documento para poder cambiar solamente el o detalle de una lnea Procedimient Cancela la edicin del documento. o Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimient Inicia una nueva lnea o Procedimient Inicia una nueva lnea aplicando las polticas de nexus, o dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimient Aade la lnea o Procedimient Cancela la lnea en edicin

AnadirLinea CancelaLin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 154 o EditarLinea BorrarLinea AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla Procedimient Permite editar una lnea ya existente del documento. o Procedimient Permite borrar una lnea del documento. o Procedimient Identifica los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Cambia los n de serie, lotes, fechas de caducidad y/o o ubicaciones de una lnea del documento. Procedimient Borra el detalle los n de serie, lotes, fechas de caducidad o y/o ubicaciones de una lnea del documento. Procedimient Identifica las tallas de una lnea del documento. o Procedimient Cambia las tallas de una lnea del documento. o Procedimient Borra el detalle de las tallas de una lnea del documento. o

NuevoComponente Procedimient Inicia una nueva lnea componente de un kit. o EditarComponente Procedimient Permite editar una lnea componente de un kit. o BorrarComponente Procedimient Borra una lnea componente de un kit. o AnadirComponente Procedimient Aade una lnea componente de un kit. o CancelarComponen Procedimient Cancela una lnea componente de un kit. te o Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003 Uso en Delphi: naxDocumento.AsStringCab* CodCli+ Uso en Visual Basic: naxDocumento. AsStringCab ( CodCli)

property AsStringCab[ sCampo:String]: String

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 155 A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 156 Valor retornado String Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringComp[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 157


property AsIntegerComp[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatComp[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanComp[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyComp[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property ValidarPrecios: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de precios por debajo del precio mnimo Valor retornado Lgico Valor del campo

property ValidarArtBloqueado: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar los avisos de artculo bloqueado Valor Lgico Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 158 retornado

property AvisarCentroCosteCabecera: WordBool

A travs de esta propiedad podemos asignar valor si queremos mostrar o ocultar el aviso para cambiar el centro de coste en las lneas cuando se cambia desde la cabecera Valor retornado Lgico Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodCliPro bEsDeCompra Fecha del documento Cdigo del cliente o proveedor True Compra False Venta

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 159

procedure Modifica( nIdDocu: Currency; bEsDeCompra: WordBool);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

procedure ModificaParcial(IdDocu: Currency; NumLin: Integer; EsDeCompra: WordBool);

Este mtodo se utiliza nicamente para cambiar el detalle de una lnea de un documento. Se puede utilizar en documentos con muchas lneas, mejorando la velocidad, ya que solo carga el detalle de la lnea que se indica. Despues de llamar a este mtodo solo se pueden utilizar los mtodos AnadirDetalle, CambiarDetalle, BorrarDetalle, AnadirLinea, CancelaLin, Anade y Cancela. Pone el documento que tiene el identificador indicado en edicin y la lnea que tiene el Numlin indicado en edicin Parmetros: IdDocu NumLin EsDeCompra Identificador del documento Numero de lnea 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu bEsDeCompra Identificador del documento True Compra False Venta

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 160

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas realizando las bsquedas necesarias de los valores correspondientes a cuentas, precios y descuentos, etc... A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 161 automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades sNumSerie sLote sUbicacion sFecCadu Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEOFER. N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 162 Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMoneda Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMoneda: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMoneda Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEOFER. N de unidades de la lnea de talla. Precio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEOFER.

Procedure NuevoComponente;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea componente

Procedure AnadirComponente;

Almacena los valores de los campos de la lnea componente en la base de datos.

Procedure CancelaComponente;

Cancela la edicin de la lnea componente activa.

procedure EditarComponente(nIdLinea: Currency);

Pone la lnea componente indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirComponente. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINOFE del fichero LINEOFER.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 163


procedure BorrarComponente( nIdLinea: Currency);

Borra la lnea componente con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea componente. Se corresponde con el campo NUMLINOFE del fichero LINEOFER.

OBJETO REGULARIZACION
Objeto que permite la creacin, modificacin y borrado de regularizaciones.
Interface Regularizacion

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 164 sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades: Double); procedure CambiarTalla(nIdLine, nUnidades: Double); procedure BorrarTalla(nIdLine: Double);

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado AvisarStock

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Lgico Asignar valor para activar o no los mensajes de aviso de stock

*EstadoMaestro: Ver objeto Maestro. Mtodo Tipo Descripcin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 165 Iniciar Acabar Nuevo Borra Modifica Cancela Anade NuevaLinea NuevaLineaArt Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el documento Procedimiento Prepara el documento para poderlo modificar. Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento. Procedimiento Identifica los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Cambia los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Borra el detalle los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Identifica las tallas de una lnea del documento. Procedimiento Cambia las tallas de una lnea del documento. Procedimiento Borra el detalle de las tallas de una lnea del documento.

AnadirLinea CancelaLin EditarLinea BorrarLinea AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003 Uso en Delphi: naxDocumento.AsStringLin* CodArt+ Uso en Visual Basic: naxDocumento.AsStringLin ( CodArt)

property AsStringCab[ sCampo:String]: String

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 166 A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 167 Valor retornado String Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Valor retornado Currency Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar regularizaciones.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 168

property Estado:EstadoMaestro

Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodAlm Fecha del documento Cdigo del almacn

procedure Modifica( nIdDocu: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 169

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu Identificador del documento

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 170 Parmetros: nIdLinea Identificador de la lnea.. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nUnidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades sNumSerie sLote sUbicacion sFecCadu Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEREGU. N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 171 Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla

procedure CambiarTalla( nIdLine, nUnidades: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEREGU. N de unidades de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEREGU.

OBJETO TRASPASO
Objeto que permite la creacin, modificacin y borrado de traspasos.
Interface Traspaso

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsCurrencyCab[const sCampo: WideString]: Currency; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 172 property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlmSal, sCodalmEnt: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUnicacion2: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion1, sUnicacion2: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades: Double); procedure CambiarTalla(nIdLine, nUnidades: Double); procedure BorrarTalla(nIdLine: Double);

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 173 Lgico) AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado AvisarStock Tabla( Currency) nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Lgico Asignar valor para activar o no los mensajes de aviso de stock

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Modifica Cancela Anade NuevaLinea NuevaLineaArt Tipo Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el documento Procedimiento Prepara el documento para poderlo modificar. Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento. Procedimiento Identifica los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento.

AnadirLinea CancelaLin EditarLinea BorrarLinea AnadirDetalle

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 174 CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla Procedimiento Cambia los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Borra el detalle los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Identifica las tallas de una lnea del documento. Procedimiento Cambia las tallas de una lnea del documento. Procedimiento Borra el detalle de las tallas de una lnea del documento.

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor sCampo Double Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 175 retornado

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyCab[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 176 A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Valor retornado Currency Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, podemos asignar valores a los campos. Valor retornado EstadoMaestro Retorna el estado del documento.

procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que el documento pueda ser usado. Al iniciar el documento el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

procedure Acabar;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 177 Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el documento el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nuevo( sFecha: String; sCodAlmSal, sCodAlmEnt: String);

Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parmetros: sFecha sCodAlmSal sCodAlmEnt Fecha del documento Cdigo del almacn de salida. Cdigo del almacn de entrada.

procedure Modifica( nIdDocu: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu Identificador del documento

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 178 Crea una lnea con el artculo y las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nUnidades N de unidades de la lnea de detalle.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 179 sNumSerie sLote sUbicacion1 sUbicacion2 sFecCadu N de serie. Lote. Ubicacin en almacn origen. Ubicacin en almacn destino 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades sNumSerie sLote sUbicacion1 sUbicacion2 sFecCadu Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINETRAS. N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin en almacn origen. Ubicacin en almacn destino Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 180


procedure CambiarTalla( nIdLine, nUnidades: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINETRAS. N de unidades de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINETRAS.

OBJETO INVENTARIO
Objeto que permite la creacin, modificacin y borrado de inventarios.
Interface Inventario

property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString; bTodosArti: WrodBool); procedure Borra(IdDocu: Currency); procedure Editar(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 181 procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency); procedure AnadirDetalle( nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure CambiarDetalle( nIdLine: Double; nUnidades: Double; sNumSerie: WideString; sLote: WideString; sUbicacion: WideString; sFecCadu: WideString); procedure BorrarDetalle(nIdLine: Double); procedure AnadirTalla(sCodFamTallaH, sCodFamTallaV, sCodTallaH, sCodTallaV: WideString; nUnidades,nPrcMedio: Double); procedure CambiarTalla(nIdLine, nUnidades,nPrcMedio: Double); procedure BorrarTalla(nIdLine: Double);

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado AvisarStock

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Lgico Asignar valor para activar o no los mensajes de aviso de stock

*EstadoMaestro: Ver objeto Maestro.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 182

Mtodo Iniciar Acabar Nuevo Borra Modifica Cancela Anade NuevaLinea NuevaLineaArt

Tipo

Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el documento Procedimiento Prepara el documento para poderlo modificar. Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento. Procedimiento Identifica los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Cambia los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Borra el detalle los n de serie, lotes, fechas de caducidad y/o ubicaciones de una lnea del documento. Procedimiento Identifica las tallas de una lnea del documento. Procedimiento Cambia las tallas de una lnea del documento. Procedimiento Borra el detalle de las tallas de una lnea del documento.

AnadirLinea CancelaLin EditarLinea BorrarLinea AnadirDetalle CambiarDetalle BorrarDetalle AnadirTalla CambiarTalla BorrarTalla

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003 Uso en Delphi: naxDocumento.AsStringLin* CodArt+ Uso en Visual Basic: naxDocumento. AsStringLin ( CodArt)

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 183 Cuando se crea un inventario nuevo, el programa necesita crear una lnea en ese inventario para almacenar las unidades de stock que debera tener cada artculo en cada almacn. (Se almacena esa informacin en el campo UNICALC). Posteriormente el usuario puede cambiar esa propuesta por la realidad del almacn (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 clculo del stock propuesto por la aplicacin.
property AsStringCab[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 184 Valor retornado String Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Valor retornado Currency Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar inventarios.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 185

property Estado:EstadoMaestro

Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodAlm bTodosArti Fecha del documento Cdigo del almacn bTodosArti = True: Se incluyen los artculos con stock 0. bTodosArti = True: Slo se incluyen los artculos cuyo stock es diferente de 0.

procedure Modifica( nIdDocu: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: nIdDocu Identificador del documento

Procedure Anade;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 186 Almacena los valores de los campos en la base de dato con los cambios introducidos por el programador. Genera las repercusiones del documento como pueden ser: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu Identificador del documento

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 187 Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 continuacin se utilizan para especificar los lotes, n de serie, fechas de caducidad y ubicaciones de una lnea a no ser que esta seleccin se realice de forma automtica. Para consultar si ya se han detallado todos los lotes, n de serie, fechas de caducidad y ubicaciones necesarios se debe llamar a la funcin 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible.. Parmetros: nNunidades sNumSerie sLote sUbicacion sFecCadu N de unidades de la lnea de detalle. N de serie. Lote. Ubicacin. 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 ubicacin de la lnea activa. Para conocer los n serie, lote, fecha de caducidad y ubicaciones disponibles en stock hay que llamar a la funcin Varios.DetalleStockDisponible. Para consultar el detalle de la lnea activa hay que llamar a la funcin ConsultarDetalle. Parmetros: nIdLine nUnidades Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEINVE. N de unidades de la lnea de detalle.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 188 sNumSerie sLote sUbicacion sFecCadu N de serie. Lote. Ubicacin. Fecha de caducidad.

procedure BorrarDetalle( nIdLine: Double);

Elimina la lnea de detalle indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. 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 lnea activa. Parmetros: sCodFamTallaH sCodFamTallaV sCodTallaH sCodTallaV nUnidades nPrcMedio Familia de talla horizontal Familia de talla vertical Cdigo de talla horizontal Cdigo de talla vertical N unidades de la lnea de talla Precio medio de la lnea de talla.

procedure CambiarTalla( nIdLine, nUnidades, nPrcMedio: Double);

Indica las unidades y el precio de la lnea activa. Parmetros: nIdLine nUnidades nPrcMedio Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEINVE. N de unidades de la lnea de talla. Precio medio de la lnea de talla.

procedure BorrarTalla( nIdLine: Double);

Elimina la lnea de talla indicada en el parmetro. Parmetros: nIdLine Identificador de la lnea. Se corresponde con el campo IDLIN de la tabla LINEINVE.

OBJETO MOVIMIENTOSTOCK
Objeto que permite la creacin, modificacin y borrado de conjuntos de movimientos de stock.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 189


Interface MovimientoStock

property Estado: EstadoMaestro readonly; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure Iniciar; procedure Acabar; procedure Cancela; procedure Nuevo( sFecha: WideString; sCodAlm: WideString); procedure Borra(IdDocu: Currency); procedure Modifica(IdDocu: Currency); function Anade: Currency; procedure NuevaLinea; procedure AnadirLinea; procedure CancelaLin; procedure NuevaLineaArt(const sCodArt: WideString; nUnidades: Currency); procedure EditarLinea(nIdLinea: Currency); procedure BorrarLinea(nIdLinea: Currency);

Propiedades AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin Estado

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro

*EstadoMaestro: Ver objeto Maestro.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 190

Metodo Iniciar Acabar Nuevo Borra Modifica Cancela Anade NuevaLinea NuevaLineaArt

Tipo

Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el docuemtno Procedimiento Prepara el documento para poderlo modificar. Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento. Lgico Asignar valor para activar o no los mensajes de aviso de stock

AnadirLinea CancelaLin EditarLinea BorrarLinea AvisarStock

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 191

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Valor retornado Currency Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar movimientos de stock.
property Estado:EstadoMaestro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 192 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodAlm Fecha del documento Cdigo del almacn.

procedure Modifica( nIdDocu: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 193 Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu Identificador del documento

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 194 Parmetros: nIdLinea Identificador de la lnea.. 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 creacin, modificacin 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 AsStringLin AsIntegerLin AsFloatLin

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 195 AsBooleanLin AsCurrencyLin Estado Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Nuevo Borra Modifica Cancela Anade NuevaLinea NuevaLineaArt Tipo Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Inicia un nuevo documento Procedimiento Borra el documento Procedimiento Prepara el documento para poderlo modificar. Procedimiento Cancela la edicin del documento. Funcin Aade los datos editados del documento a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Inicia una nueva lnea aplicando las polticas de nexus, dados el cdigo del artculo y las unidades pasadas como parmetro. Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del documento. Procedimiento Permite borrar una lnea del documento.

AnadirLinea CancelaLin EditarLinea BorrarLinea

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003 Uso en Delphi: naxDocumento.AsStringLin* CodArt+ Uso en Visual Basic: naxDocumento. AsStringLin ( CodArt)

property AsStringLin[ sCampo:String]: String

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 196 A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar reservas de stock.
property Estado:EstadoMaestro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 197 Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Documento cerrado. No se puede usar. ESTM_ACTIVO: Documento activo. Podemos aadir, borrar, modificar. ESTM_NUEVO: Documento en estado de insercin de un nuevo registro. ESTM_EDICION: Documento en estado modificacin, 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. Parmetros: sFecha sCodAlm Fecha del documento Cdigo del almacn.

procedure Modifica( nIdDocu: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: 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: actualizacin de stocks y actualizacin de estadsticas. Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Cancela;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 198 Cancela la edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: nIdDocu Identificador del documento

Procedure NuevaLinea;

Crea una lnea con los valores por defecto. A partir de ese momento podremos editar los valores de la lnea.

Procedure NuevaLineaArt( sCodArt: string; nUnidades: Currency);

Crea una lnea con el artculo y las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: sCodArt nUnidades Cdigo del artculo Unidades

Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(nIdLinea: Currency);

Pone la lnea indicada en el parmetro nIdLinea en edicin, preparada para editar el contenido de sus campos. Al final de las modificaciones deber llamarse a AnadirLinea. Parmetros: nIdLinea Identificador de la lnea.. 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 lnea con el identificador indicado en el parmetro nIdLinea.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 199 Parmetros: nIdLinea Identificador de la lnea.. Se corresponde con el campo NUMLINRES del fichero LINERESE. Para localizarlo debe realizarse una consulta de este campo (directamente a la base de datos) en los registros con IdRes = naxReserva.AsStringCab* IdRes+.

OBJETO ASIENTO
Interface Asiento

property Estado: EstadoMaestro readonly; property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property TratarConcepto: WordBool; property Importado: WordBool; procedure Iniciar; procedure Acabar; procedure Nuevo(sFecha: WideString; sTipoContable: WideString; sTipo: WideString); procedure Modifica( nAsiento: Currency); procedure Borra( nAsiento: Currency); function Anade: Currency; procedure Cancela; procedure AApunte( sCodMon: WideString; sCuenta: WideString; nDebe: Currency; sDescripcion: WideString; nHaber: Currency; sCentroCoste: WideString; sTexto: WideString); procedure NuevoNax( sTipApu: WideString; sTipoCont: WideString; sDiario: WideString; sNumDoc: WideString; sFecha: WideString); procedure AApunteNax( sCodConce: WideString; sDescApu: WideString; sCentroCoste: WideString; sCentroCoste2: WideString; sCentroCoste3: WideString; sCodMon: WideString; sCuenta: WideString; nDebeMoneda: Currency; nDebe: Currency; nHaberMoneda: Currency; nHaber: Currency; sTexto: WideString; sFechaValor: WideString); procedure Desligar (nAsiento: Currency);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 200

Propiedades Estado AsString AsFloat AsInteger AsBoolean TratarConcepto Importado

Tipo EstadoMaestr o Tabla( string) Tabla( float) Tabla(integer) Tabla(lgico) Lgico Lgico

Descripcin Devuelve el estado en que se encuentra el objeto Asiento. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Para desactivar la peticin visual de variables de conceptos Para desactivar los mensajes visuales de n asiento o asiento cuadrado, etc

Mtodos Iniciar Acabar Nuevo Modifica Borra Anade Cancela AApunte NuevoNax AApunteNax Desligar

Tipo

Descripcin

Procedimient Inicia el objeto asiento. o Procedimient Cierra el objeto asiento. o Procedimient Pasa al ESTM_NUEVO para comenzar a aadir apuntes. o Procedimient Sustituye el asiento especificado por el actual. o Procedimient Borra el asiento especificado. o Funcin Utiliza los apuntes introducidos para crear un nuevo asiento. Devuelve el nmero del asiento que se acaba de generar.

Procedimient Cancela el nuevo, pasa a ESTM_ACTIVO y se pierden los o apuntes introducidos. Procedimient Aade un apunte al asiento actual. o Procedimient Equivalente a Nuevo pero con ms parmetros. o Procedimient Equivalente a Aapunte pero con ms parmetros. o Procedimient Para desvincular el asiento de su cartera. Se indica el n de o asiento a desligar

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 201

Las primeras funciones de la lista que se presentan a continuacin 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 aadir la lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloat[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBoolean[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 202 Valor retornado Lgico 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 aadir, borrar, modificar. ESTM_NUEVO: Asiento en estado de insercin de un nuevo registro. ESTM_EDICION: Asiento en estado modificacin, podemos asignar valores a los campos. Parmetros: Valor retornado (ninguno) EstadoMaestro Retorna el estado del asiento.

Property TratarConcepto: Boolean

Para desactivar la peticin visual de variables de conceptos Valor retornado Lgico Valor del campo

Property Importado: Boolean;

Para desactivar los mensajes visuales de n asiento o asiento cuadrado, etc Valor retornado Lgico 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 edicin de un nuevo asiento. Como parmetros se pasan los valores que son comunes a todas las lneas del asiento. Pasa del estado ESTM_ACTIVO al estado ESTM_NUEVO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 203 Parmetros: sFecha sTipoContable STipo Fecha del asiento Tipo contable del asiento. Tipo de asiento. Valores posibles: A Apertura. N Normal. P Paso a explotacin. T Cierre.

procedure NuevoNax( sTipApu: WideString; sTipoCont: WideString; sDiario: WideString; sNumDoc: WideString; sFecha: WideString);

Mediante este procedimiento se inicia la edicin de un nuevo asiento. Como parmetros se pasan los valores que son comunes a todas las lneas del asiento. Pasa del estado ESTM_ACTIVO al estado ESTM_NUEVO. Parmetros: sTipApu Tipo de asiento. Valores posibles: A Apertura. N Normal. P Paso a explotacin. T Cierre. sTipoCont sDiario sNumDoc sFecha Tipo contable del asiento. Diario contable Nmero de documento contable. Fecha del asiento

procedure Modifica( nAsiento: Currency);

Mediante este procedimiento se inicia la modificacin de un asiento existente. Como parmetro 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 lneas que ya tiene y a continuacin el programador debe introducir todas las lneas que finalmente tendr ese asiento. Parmetros: 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 parmetro se pasa el identificador del asiento.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 204 Parmetros: nAsiento Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.

function Anade: Currency;

Mediante este procedimiento se termina la edicin 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 edicin 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 lneas (apuntes) de un asiento. Parmetros: sCodMon sCuenta nDebe sDescripcion nHaber sCentroCoste sTexto Cdigo de la moneda. Cuenta contable. Importe del debe en la moneda indicada. Descripcin del asiento. Importe del haber en la moneda indicada. Centro de coste 1. 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 lneas (apuntes) de un asiento. Parmetros: sCodConce sDescApu Concepto del asiento. nicamente sirve para rellenar la variable CodConce. Descripcin del asiento.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 205 sCentroCoste sCentroCoste2 sCentroCoste3 sCodMon sCuenta nDebeMoneda nDebe nHaberMoneda nHaber sTexto sFechaValor Centro de coste 1. Centro de coste 2. Centro de coste 3. Cdigo de la moneda. Cuenta contable. Importe del debe en la moneda indicada. Importe del debe en la moneda principal. Si el valor es 0 se hace la conversin automticamente. Importe del haber en la moneda indicada. Importe del haber en la moneda principal. Si el valor es 0 se hace la conversin automticamente. Texto. Fecha valor del apunte.

procedure Desligar( nAsiento: Currency);

Mediante este procedimiento podemos desvincular el asiento de su cartera Parmetros: nAsiento Identificador del asiento. Se corresponde con el valor del campo NUMAPUNTE del fichero APUNTES.

OBJETO CARTERA
Interface Cartera

property AsString[const sCampo: WideString]: WideString ; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; property AsCurrency[const sCampo: WideString]: Currency; property VAsString[const sCampo: WideString]: WideString ; property VAsFloat[const sCampo: WideString]: Double; property VAsInteger[const sCampo: WideString]: Integer; property VAsBoolean[const sCampo: WideString]: WordBool; property VAsCurrency[const sCampo: WideString]: Currency; property Estado: EstadoMaestro readonly; procedure Iniciar; procedure Nuevo( sFecha: WideString; sCodCliPro: WideString; sCodMon: WideString;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 206 sTipoCont: WideString; sSerie: WideString; sNumDoc: WideString; EsDeCompra: WordBool); procedure NuevoNax( sFecha: WideString; sCodCliPro: WideString; sCodMon: WideString; sTipoCont: WideString; sSerie: WideString; sNumDoc: WideString; sReferencia:WideString; EsDeCompra: WordBool); function Anade: Currency; procedure Cancela; procedure NuevoVen(const sFecha: WideString; nImporteMon: Currency); procedure Acabar; procedure Modifica(nCartera: Currency); procedure AnadirVen; procedure Borra(nNumCart: Currency); function ObtenerNumCartera(bEsCobro: WordBool; IdFac: Integer): Currency; function PuedeModificarse(nNumCart: Currency): WordBool; procedure Editar(nNumCart:Currency); procedure EditarVencimiento(nNumVen:Currency); procedure BorrarVencimiento(nNumVen:Currency); procedure GuardarVencimiento;

Propiedades Estado AsString AsFloat AsInteger AsBoolean AsCurrency VAsString VAsFloat VAsInteger

Tipo EstadoMaestr o Tabla( string) Tabla( float)

Descripcin Devuelve el estado en que se encuentra el objeto Cartera. Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera) Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera)

Tabla( integer) Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera) Tabla( lgico) Tabla( Currency) Tabla( string) Tabla( float) Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera) Asigna/lee valores a/de los campos del registro nuevo/actual. (cartera) Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento) Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)

Tabla( integer) Asigna/lee valores a/de los campos del registro

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 207 nuevo/actual. (vencimiento) VAsBoolean VAsCurrency Tabla( lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento) Asigna/lee valores a/de los campos del registro nuevo/actual. (vencimiento)

Mtodos Iniciar Acabar

Tipo

Descripcin

Procedimient Inicia el objeto cartera o Procedimient Cierra el objeto cartera o

Nuevo/NuevoNax Procedimient Inicia un nuevo grupo de efectos en cartera. o Anade Modifica Borra Cancela NuevoVen AnadirVen Funcin Aade los efectos en cartera y devuelve el identificador con el que se han almacenado en la base de datos.

Procedimient Borra los efectos del grupo de cartera indicado y prepara o ese mismo grupo para la creacin de nuevos efectos. Procedimient Borra los efectos del grupo de cartera indicado o Procedimient Cancela la edicin del grupo de efectos. o Procedimient Inicia un nuevo vencimiento o Procedimient Aade el vencimiento definido. o Retorna el siguiente nmero de cartera Indica si un grupo de cartera puede modificarse

ObtenerNumCart Funcin era PuedeModificarse Funcin Editar

Procedimient Para modificar manualmente los vencimientos de un o NUMCARTERA

EditarVencimient Procedimient Pone en modo edicin el vencimiento de un o o NUMCARTERA GuardarVencimie Procedimient Guardar el vencimiento en edicin nto o BorrarVencimient Procedimient Borrar un vencimiento o o Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores del los vencimientos. Deben tenerse en cuenta algunas normas importantes.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 208 Si el nombre del campo no existe se producir un error. Si el valor asignado al campo especificado no es correcto, no se producir un error. Este se producir al intentar aadir la lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la lnea especificado que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificado que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloat[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificado que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBoolean[ sCampo:String]: Bolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificado que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsCurrency[ sCampo:String]: Currency

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 209 A travs de esta propiedad podemos asignar valor a los campos de la lnea especificado que su tipo es currency. Parmetros: Valor retornado sCampo Currency Nombre del campo Valor del campo

property VAsString[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property VAsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property VAsFloat[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property VAsBoolean[ sCampo:String]: Bolean

A travs de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property VasCurrency[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos del vencimiento especificado que su tipo es . Parmetros: sCampo Nombre del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 210 Valor retornado Currency Valor del campo

property Estado:EstadoMaestro

Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Cartera (conjunto de vencimientos) cerrada. No se puede usar. ESTM_ACTIVO: Cartera activa. Podemos aadir, borrar, modificar. ESTM_NUEVO: Cartera en estado de insercin de un nuevo registro. ESTM_EDICION: Cartera en estado modificacin, podemos asignar valores a los campos. Parmetros: Valor retornado (ninguno) 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 funcin preparamos el objeto para insertar nuevos vencimientos de una factura. Los parmetros 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). Parmetros: sFechaFactura sCodCliPro sCodMon sTipoCont sSerie sNumDoc Fecha de la factura Cdigo del cliente o proveedor Cdigo de la moneda Tipo contable Serie de la factura N de la factura

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 211 bEsDeCompra bEsDeCompra = True Factura de compra bEsDeCompra = False Factura de venta

Procedure NuevoNax( sFechaFactura, sCodCliPro, sCodMon, sTipoCont, sSerie, SNumDoc, sReferencia : string; bEsDeCompra: boolean);

Con esta funcin preparamos el objeto para insertar nuevos vencimientos de una factura. Los parmetros 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). Parmetros: sFechaFactura sCodCliPro sCodMon sTipoCont sSerie SNumDoc SReferencia BEsDeCompra Fecha de la factura Cdigo del cliente o proveedor Cdigo de la moneda Tipo contable Serie de la factura N de la factura Referencia de la factura 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 ningn vencimiento cobrado, pagado, recibido, bloqueado, etc... Para consultar si la cartera de una factura puede borrarse utilizar la funcin PuedeModificarse. Parmetros: 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 ningn vencimiento cobrado, pagado, recibido, bloqueado, etc... Para consultar si la cartera de una factura puede borrarse utilizar la funcin PuedeModificarse.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 212 Parmetros: nNumCartera Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.

procedure Cancela;

Cancela la edicin 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 edicin 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;

Funcin 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. Parmetros: Valor retornado: nNumCart Boolean N del conjunto de cartera. Indica si puede modificarse o no.

procedure ObtenerNumCartera( bEsDeCompra: boolean; nIdFac: Currency): Currency;

Funcin que permite obtener el identificador del conjunto de vencimientos (NUMCARTERA) de una factura. Parmetros: bEsDeCompra nIdFac Indica si la factura es de compra (True) o de venta (False). bEsdeCompra = True Identificador de la factura de compra (Se corresponde con el campo IDFACV de la tabla CABEFACV). bEsdeCompra = False Identificador de la factura de venta (Se corresponde con el campo IDFACC de la tabla CABEFACC). Valor retornado: currency N del conjunto de cartera.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 213


procedure NuevoVen(sFecha: WideString; nImporteMon: Currency);

Crea un nuevo efecto con la fecha (vencimiento) e importe indicados. Parmetros: sFecha nImporteMon Fecha del vencimiento. 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 modificacin o borrado Parmetros: nNumCartera Nmero de cartera

procedure EditarVencimiento(nNumVen:Currency);

Prepara el vencimiento para su posterior modificacin. Parmetros: nNumVen Nmero de vencimiento

procedure GuardarVencimiento;

Guarda el vencimiento que est en modo edicin

procedure BorrarVencimiento(nNumVen:Currency);

Borrar un vencimiento indicado Parmetros: nNumVen Nmero de vencimiento

OBJETO OPERACIONESCARTERA
Interface OperacionesCartera

property OmitirAvisoAsiento:WordBool; procedure Cobrar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString); procedure Pagar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString); procedure Recibir( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 214 sFecha: WideString); procedure CrearAnticipo (bEsCobro: WordBool; sCodCliPro: WideString; sCodBan: WideString; sDocPag: WideString; sTipCon: WideString; sCodMon: WideString; sFecVen: WideString; const sFecCon: WideString; nImpMon: Currency; Obs: WideString); procedure ACuenta ( bEsCobro: WordBool; nIdFact: Currency; nNumAnti: Currency; sCodMon: WideString; nImpACuentaMon: Currency); procedure CrearAnticipoNax ( bEsCobro: WordBool; sCodCliPro: WideString; sCodBan: WideString; sDocPag: WideString; sTipCon: WideString; sCodMon: WideString; sFecVen: WideString; sFecCon: WideString; nImpMon: Currency; Obs: WideString; sNumDoc: WideString); procedure Bloquear(nNumCart: Currency; nNumVen: Integer); procedure Enviar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; sNumDoc: WideString); procedure ActualizarRiesgo( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sNumDoc: WideString); procedure Devolver( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; nImpDev, nGastos: Currency; sCtaGastos: WideString; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure ImputarGastos( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; nGastos: Currency; sCtaGastos: WideString; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure RecibirNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString; sFechaValor: WideString; sNumDoc: WideString); procedure CobrarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; nImporte: Currency; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure PagarNax( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 215 nImporte: Currency; sNumCta: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularCobro(nNumCart: Currency; nNumVen: Integer); procedure AnularPago(nNumCart: Currency; nNumVen: Integer); procedure AnularRecepcion(nNumCart: Currency; nNumVen: Integer); procedure AnularEnvio(nNumCart: Currency; nNumVen: Integer); procedure AnularBloqueo(nNumCart: Currency; nNumVen: Integer); procedure AnularImputacion(nNumCart: Currency; nNumVen: Integer); procedure AnularDevolucion(nNumCart: Currency; nNumVen: Integer); procedure AnularActualizacionRiesgo (nNumCart: Currency; nNumVen: Integer); procedure Ligar(nNumCart: Currency; nIdFact: Currency; bEsCobro: WordBool); procedure Desligar( nIdFact: Currency; bEsCobro: WordBool); procedure CobrarRemesa( nRemesa: Currency; GenRep: WordBool; AlDescuento: WordBool; sCtaBanco: WideString; sCtaRiesgo: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularCobroRemesa(nRemesa: Currency); procedure PagarRemesa ( nRemesa: Currency; bGenRep: WordBool; sCtaBanco: WideString; sFecha: WideString; sFechaValor: WideString; sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1: WideString; sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString); procedure AnularPagoRemesa( nRemesa: Currency); El objeto Cartera permita crear, borrar o modificar vencimientos. El objeto Operaciones cartera permite realizar distintas operaciones con estos vencimientos. A continuacin se detalla la especificacin de todas esas operaciones.
Mtodos Tipo Descripcin

Cobrar Pagar

Procedimient Para realizar el cobro de efectos. o Procedimient Para realizar el pago de efectos.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 216 o Recibir CrearAnticipo ACuenta CrearAnticipoNax Bloquear Enviar ActualizarRiesgo Devolver ImputarGastos RecibirNax CobrarNax PagarNax AnularCobro AnularPago AnularRecepcion AnularEnvio AnularBloqueo AnularImputacion AnularDevolucion Procedimient Para realizar la recepcin de efectos. o Procedimient Para crear anticipos de cartera o Procedimient Para consumir un anticipo de cartera sobre una o factura. Procedimient Para crear anticipos de cartera. Incluye el n de o documento contable. Procedimient Para bloquear un efecto y no permitir realizar con o l ms operaciones. Procedimient Para marcar un efecto a un proveedor como o enviado. Procedimient Para actualizar el riesgo de un efecto al descuento o cuyo vencimiento ha sido superado. Procedimient Para indicar la devolucin de un efecto cobrado o indicando sus gastos. Procedimient Para imputar los gastos de una devolucin a un o cliente. Procedimient dem que Recibir pero con ms parmetros. o Procedimient dem que Cobrar pero con ms parmetros. o Procedimient dem que Pagar pero con ms parmetros. o Procedimient Anular el cobro de un vencimiento. o Procedimient Anular el pago de un vencimiento. o Procedimient Anular la recepcin de un efecto. o Procedimient Anular el envo de un efecto. o Procedimient Anular el bloqueo de un efecto. o Procedimient Anular la imputacin de gastos de una devolucin o al cliente. Procedimient Anular una devolucin. o

AnularActualizacionRies Procedimient Anular la actualizacin de riesgo de un efecto al

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 217 go Ligar Desligar CobrarRemesa AnularCobroRemesa PagarRemesa AnularPagoRemesa o descuento.

Procedimient Ligar un conjunto de efectos de cartera con una o factura. Procedimient Ligar un conjunto de efectos de cartera con una o factura. Procedimient Cobrar una remesa. o Procedimient Anular el cobro de una remesa. o Procedimient Pagar una remesa (a proveedores). o Procedimient Anular el pago de una remesa (a proveedores). o

procedure Cobrar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; bDescue: WordBool; sNumCta: WideString; sCtaRiesgo: WideString; sFecha: WideString; sCodBan: WideString);

Procedimiento creado para cobrar un efecto de nexus generando las repercusiones contables si as se indica en los parmetros. Parmetros: nNumCart nNumVen bGenRep bDescue sNumCta sCtaRiesgo Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Indica si se trata de un cobro al descuento. Indica el n de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parmetro sCodBan). 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 parmetro sCodBan). Fecha del cobro. Cdigo del banco.

sFecha sCodBan

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 parmetros. Funcionamiento igual que Cobrar pero con ms parmetros. Parmetros: nNumCart nNumVen bGenRep bDescue nImporte Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Indica si se trata de un cobro al descuento. 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. Indica el n de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parmetro sCodBan). 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 parmetro sCodBan). Fecha del cobro. Fecha valor del cobro. Cdigo del banco. Cambio entre la moneda del cobro y la moneda principal. Cuenta de gastos del cobro. Gastos imputados al cobro. (Se incluirn en el asiento). Centro de coste 1. Centro de coste 2. Centro de coste 3. Nmero de documento del asiento.

sNumCta sCtaRiesgo

sFecha sFechaValor sCodBan nCambio sCtaGastos nGastos sCentro1 sCentro2 sCentro3 sNumDoc

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 parmetros. Parmetros: nNumCart nNumVen bGenRep sNumCta sFecha sCodBan Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Indica el n de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parmetro sCodBan). Fecha del pago. Cdigo 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 parmetros. Funcionamiento igual que Pagar pero con ms parmetros. Parmetros: nNumCart nNumVen bGenRep nImporte Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. 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. Indica el n de cuenta del banco (Si se deja en blanco se saca del banco indicado en el parmetro sCodBan). Fecha del pago. Fecha valor del pago.

sNumCta sFecha sFechaValor

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 220 sCodBan nCambio sCtaGastos nGastos sCentro1 sCentro2 sCentro3 sNumDoc Cdigo del banco. Cambio entre la moneda del cobro y la moneda principal. Cuenta de gastos del cobro. Gastos imputados al cobro. (Se incluirn en el asiento). Centro de coste 1. Centro de coste 2. Centro de coste 3. Nmero de documento del asiento.

procedure Recibir( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha: WideString);

Procedimiento creado para contabilizar la recepcin de un efecto generando las repercusiones contables si as se indica en los parmetros. Parmetros: nNumCart nNumVen bGenRep sFecha Nmero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Fecha de la recepcin..

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 parmetros. Funcionamiento igual que Recibir pero con ms parmetros. Parmetros: nNumCart nNumVen bGenRep sFecha sFechaValor sNumDoc Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Fecha de la recepcin. Fecha valor de la recepcin. Nmero de documento del asiento.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 221


procedure Enviar( nNumCart: Currency; nNumVen: Integer; bGenRep: WordBool; sFecha, sFechaValor, sNumDoc: WideString);

Procedimiento creado para enviar un efecto generando las repercusiones contables si as se indica en los parmetros. Parmetros: nNumCart nNumVen bGenRep sFecha sFechaValor sNumDoc Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Fecha del envo. Fecha valor del envo. Nmero 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 Parmetros: nNumCart nNumVen Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero 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 Parmetros: nNumCart nNumVen sFecha sNumDoc Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Fecha de la actualizacin de riesgo. Nmero 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 parmetros.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 222 Parmetros: nNumCart nNumVen bGenRep bDescue sFecha sFechaValor nImpDev Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Indica si se trata de un cobro al descuento. Fecha de la devolucin. Fecha valor de la devolucin. Importe de la devolucin. No tiene que coincidir con el del vencimiento (tiene que ser menor o igual). Si no coincide lo tratar como una devolucin parcial. Gastos imputados a la devolucin. (Se incluirn en el asiento). Estos gastos se consideran gastos de la empresa y no del cliente. Cuenta de gastos de la devolucin. Centro de coste 1. Centro de coste 2. Centro de coste 3. Nmero de documento del asiento.

nGastos

sCtaGastos sCentro1 sCentro2 sCentro3 sNumDoc

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 devolucin al cliente total o parcialmente generando las repercusiones contables si as se indica en los parmetros. Parmetros: nNumCart nNumVen bGenRep sFecha sFechaValor nGastos sCtaGastos sCentro1 Numero del conjunto de cartera. Campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Campo NUMVEN de la tabla CARTERA. Indica si se desean generar repercusiones contables. Fecha de la imputacin de gastos. Fecha valor de la imputacin de gastos. Gastos imputados al cliente (Se incluirn en el asiento). Cuenta de gastos de la imputacin. Centro de coste 1.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 223 sCentro2 sCentro3 sNumDoc Centro de coste 2. Centro de coste 3. Nmero 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. Parmetros: bEsCobro sCodCliPro sCodBan sDocPag sTipCon sCodMon sFecVen sFecCon nImpMon Obs Indica si es de cobro (True) o de pago (False). Cdigo del cliente o proveedor. Cdigo del banco. Documento de pago. Tipo contable. Cdigo de la moneda. Fecha del anticipo. Fecha de la repercusin contable. Importe del anticipo en la moneda indicada. 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 parmetro adicional del campo n de documento de los asientos contables. Parmetros: bEsCobro sCodCliPro sCodBan sDocPag sTipCon sCodMon sFecVen sFecCon nImpMon Indica si es de cobro (True) o de pago (False). Cdigo del cliente o proveedor. Cdigo del banco. Documento de pago. Tipo contable. Cdigo de la moneda. Fecha del anticipo. Fecha de la repercusin contable. Importe del anticipo en la moneda indicada.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 224 Obs sNumDoc Observaciones del anticipo. 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 aadir 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 funcin ACuenta para completar los registros de cartera de la factura. Parmetros: bEsCobro nIdFact Indica si es de cobro (True) o de pago (False). Identificador de la factura. Se identifica con el campo IDFACV o IDFACC de las tablas CABEFACV o CABEFACC respectivamente en funcin de si se trata de una venta o una compra. Identificador del anticipo. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Cdigo de la moneda Importe a cuenta en la moneda indicada.

nNumAnti sCodMon nImpACuentaMon

Como es costumbre en nexus, todo aquello que puede hacerse tambin puede anularse. A continuacin se presentan todos los procedimientos que anulan las operaciones descritas hasta el momento.
procedure AnularCobro( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con los procedimientos Cobrar o CobrarNax. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularPago( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con los procedimientos Pagar o PagarNax. Parmetros: nNumCart Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 225 nNumVen Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularRecepcion( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con los procedimientos Recibir o RecibirNax. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularEnvio( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con el procedimiento Enviar. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularBloqueo( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con el procedimiento Bloquear. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularDevolucion( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con el procedimiento Devolver. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

procedure AnularImputacion( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con el procedimiento ImputarGastos. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 226


procedure AnularActualizacionRiesgo( nNumCart: Currency; nNumVen: Integer);

Anula la operacin realizada con el procedimiento ActualizarRiesgo. Parmetros: nNumCart nNumVen Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Nmero del vencimiento. Se corresponde con el campo NUMVEN de la tabla CARTERA.

Las dos funciones que siguen a continuacin son las que ligan o desligan la cartera con su factura. Si los efectos estn ligados con una factura se consideran automticos, en caso contrario no. Si los efectos no estn ligados con la factura, al modificar la factura no se tocarn los vencimientos, en caso contrario se modificarn en funcin 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. Parmetros: nNumCart nIdFact Nmero del conjunto de cartera. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Identificador de la factura de compra (IDFACC) o de venta (IDFACV) pertenecientes a las tablas CABEFACC y CABEFACV respectivamente en funcin del valor del parmetro bEsCobro. Indica si se trata de un cobro (True) o un pago (False).

bEsCobro

procedure Desligar( nIdFact: Currency; bEsCobro: WordBool);

Desliga la factura del conjunto de efectos en cartera con el que est ligado en ese momento. Parmetros: nIdFact Identificador de la factura de compra (IDFACC) o de venta (IDFACV) pertenecientes a las tablas CABEFACC y CABEFACV respectivamente en funcin del valor del parmetro bEsCobro. Indica si se trata de un cobro (True) o un pago (False).

bEsCobro

Los siguientes procedimientos son los que permiten realizar y anular operaciones con las remesas tanto de cobros como de pagos.
procedure CobrarRemesa( nRemesa: Currency; bGenRep: WordBool; bAlDescuento: WordBool; sCtaBanco: WideString; sCtaRiesgo, sFecha, sFechaValor, sCodBan: WideString; nCambio: Double; sCtaGastos: WideString; nGastos: Currency; sCentro1, sCentro2: WideString; sCentro3: WideString; sNumDoc: WideString);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 227 Procedimiento que permite cobrar una remesa entera. Parmetros: nRemesa bGenRep bAlDescuento sCtaBanco N de remesa Indica si se desean repercusiones contables. Indica si la remesa se lleva al descuento. Cuenta del banco donde se ingresa la remesa. Si se deja en blanco se utiliza la cuenta del banco indicado en el parmetro sCodBan. Cuenta de riesgo bancario. Si se deja en blanco se utiliza la cuenta del banco indicado en el parmetro sCodBan. Fecha de la remesa. Fecha valor de la remesa. Cdigo del banco. Cambio entre la moneda de la remesa y la principal. Cuenta de gestos de la remesa. Gastos de la remesa. Centro de coste 1. Centro de coste 2. Centro de coste 3. Nmero del documento contable.

sCtaRiesgo

sFecha sFechaValor sCodBan nCambio sCtaGastos nGastos sCentro1 sCentro2 sCentro3 sNumDoc

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. Parmetros: nRemesa bGenRep sCtaBanco N de remesa Indica si se desean repercusiones contables. Cuenta del banco donde se ingresa la remesa. Si se deja en blanco se utiliza la cuenta del banco indicado en el parmetro sCodBan. Fecha de la remesa. Fecha valor de la remesa. Cdigo del banco. Cambio entre la moneda de la remesa y la principal.

sFecha sFechaValor sCodBan nCambio

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 228 sCtaGastos nGastos sCentro1 sCentro2 sCentro3 sNumDoc Cuenta de gestos de la remesa. Gastos de la remesa. Centro de coste 1. Centro de coste 2. Centro de coste 3. Nmero del documento contable.

procedure AnularCobroRemesa( nRemesa: Currency);

Procedimiento que permite anular el cobro de une remesa realizado con el procedimiento CobrarRemesa. Parmetros: nRemesa N de remesa

procedure AnularPagoRemesa( nRemesa: Currency);

Procedimiento que permite anular el pago de une remesa de proveedores realizado con el procedimiento PagarRemesa. Parmetros: nRemesa N de remesa

OBJETO AGRUPACION
Interface Agrupacin

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 Estado

Tipo EstadoMaestr o

Descripcin Devuelve el estado en que se encuentra el objeto Agrupacion

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 229

Mtodos Iniciar Acabar Nueva Modifica Borrar AnadirEfecto QuitarEfecto Anade Cancela

Tipo

Descripcin

Procedimient Inicia el objeto agrupacin o Procedimient Cierra el objeto agrupacin o Procedimient Inicia una nueva agrupacin o Procedimient Prepara la agrupacin para poder aadir y quitar efectos. o Procedimient Borrar un agrupacin entera. o Funcin Aade efectos en la agrupacin.

Procedimient Elimina efectos de la agrupacin. o Procedimient Aade los efectos a la base de datos. o Procedimient Cancela la edicin de la agrupacin. o

property Estado:EstadoMaestro

Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Agrupacin cerrada. No se puede usar. ESTM_ACTIVO: Agrupacin activa. Podemos aadir, borrar, modificar. ESTM_NUEVO: Agrupacin en estado de insercin/eliminacin de un nuevos efectos en una agrupacin nueva. ESTM_EDICION: Agrupacin en estado modificacin, podemos aadir y quitar efectos en una agrupacin que ya exista. Parmetros: Valor retornado (ninguno) EstadoMaestro Retorna el estado de la agrupacin (conjunto de vencimientos).

procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que la agrupacin pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 230


procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nueva( bEsCobro: WordBool; sFecha, sFecVen, sCodCliPro: WideString; sDocPag, sCodBan, sCodMon, sTipoCont: WideString);

Prepara el objeto agrupacin para recibir nuevos efectos. El estado cambia de ESTM_ACTIVO a ESTM_NUEVO. Parmetros: bEsCobro sFecha sFechaVen sCodCliPro sDocPag sCodBan sCodMon sTipoCont Indica si la agrupacin es de cobros (True) o pagos (False). Fecha en que se crea la agrupacin. Vencimiento de la agrupacin. Cdigo del cliente o proveedor. Documento de pago. Cdigo del banco. Cdigo de la moneda. Tipo contable.

Procedure Modifica( nNumAgru: Currency);

Prepara una agrupacin para poder aadir o quitar efectos en ella. Parmetros: nNumAgru Identificador de la agrupacin. Se corresponde con el campo NUMAGRU de la tabla CARTERA.

Procedure Borrar( nNumAgru: Currency);

Borrar una agrupacin. Parmetros: nNumAgru Identificador de la agrupacin. Se corresponde con el campo NUMAGRU de la tabla CARTERA.

procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer);

Aade el efecto indicado en la agrupacin. Parmetros: nNumCart Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.

nNumVen

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 231


procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer);

Quita el efecto indicado de la agrupacin. Parmetros: nNumCart Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.

nNumVen

function Anade: Currency;

Mediante este procedimiento se termina la edicin de una agrupacin 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 agrupacin. Se corresponde con el campo NUMAGRU de la tabla CARTERA.

procedure Cancela;

Cancela la los efectos que se hayan aadido o quitado en la agrupacin desde que se llam a la funcin 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

Descripcin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 232 Estado EstadoMaestr o Devuelve el estado en que se encuentra el objeto Remesa

Mtodos Iniciar Acabar Nueva Modifica AnadirEfecto QuitarEfecto Anade Cancela

Tipo

Descripcin

Procedimient Inicia el objeto remesa o Procedimient Cierra el objeto remesa o Procedimient Inicia una nueva remesa. o Procedimient Prepara la remesa para poder aadir y quitar efectos. o Funcin Aade efectos en la remesa.

Procedimient Elimina efectos de la remesa. o Procedimient Aade los efectos a la base de datos. o Procedimient Cancela la edicin de la remesa. o

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 aadir, borrar, modificar. ESTM_NUEVO: Remesa en estado de insercin/eliminacin de un nuevos efectos en una remesa nueva. ESTM_EDICION: Remesa en estado modificacin, podemos aadir y quitar efectos en una remesa que ya exista. Parmetros: Valor retornado (ninguno) EstadoMaestro Retorna el estado de la cartera (conjunto de vencimientos).

procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que la remesa pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 233


procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nueva( bEsCobro: WordBool; sFecha, sCodBan, sCodMon: WideString; sTipoCont : WideString; bDescue: WordBool);

Prepara la remesa para aadir efectos en ella. El estado pasa de ESTM_ACTIVO a ESTM_NUEVO. Parmetros: bEsCobro sFecha sCodBan sCodMon sTipoCont bDscue Indica si la remesa es de cobros (True) o pagos (False). Fecha en que se crea la remesa. Cdigo del banco. Cdigo de la moneda. Tipo contable. Indica si la remesa es al descuento.

Procedure Modifica( nNumReme: Currency);

Prepara una remesa para poder aadir o quitar efectos en ella. Parmetros: nNumReme Identificador la remesa. Se corresponde con el campo NUMREME de la tabla CARTERA.

procedure AnadirEfecto( nNumCart: Currency; nNumVen: Integer);

Aade el efecto indicado en la remesa. Parmetros: nNumCart Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.

nNumVen

procedure QuitarEfecto( nNumCart: Currency; nNumVen: Integer);

Quita el efecto indicado de la remesa. Parmetros: nNumCart Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMCARTERA de la tabla CARTERA. Identificador del conjunto de cartera de una factura. Se corresponde con el campo NUMVEN de la tabla CARTERA.

nNumVen

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 234

function Anade: Currency;

Mediante este procedimiento se termina la edicin 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 aadido o quitado en la remesa desde que se llam a la funcin 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); Mtodos Amortizar Contabilizar AnularAmortizacion Tipo Descripcin

Procedimient Amortiza una cuota determinada. o Procedimient Genera las repercusiones contables de una cuota o determinada. Procedimient Anula la amortizacin ya realizada. o

AnularContabilizacio Procedimient Anula la contabilizacin ya realizada. n o BajaElemento Procedimient Cancela la amortizacin de un inmovilizado. A partir o del momento en que se ejecute este procedimiento no se amortizarn ms cuotas. Procedimient Anula la cancelacin realizada mediante el o procedimiento Cancelar.

AnularCancelar

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 235


procedure Amortizar( sCodigo: WideString; sFecha: WideString);

Amortiza una cuota determinada. Parmetros: sCodigo sFecha Cdigo del inmovilizado. Fecha de la cuota a amortizar.

procedure Contabilizar( sCodigo: WideString; sFecha: WideString);

Genera las repercusiones contables de una cuota determinada. Parmetros: sCodigo sFecha Cdigo del inmovilizado. Fecha de la cuota a contabilizar.

procedure AnularAmortizacion( sCodigo: WideString; sFecha: WideString);

Anula la amortizacin ya realizada. Parmetros: sCodigo sFecha Cdigo del inmovilizado. Fecha de la cuota.

procedure AnularContabilizacion( sCodigo: WideString; sFecha: WideString);

Anula la contabilizacin ya realizada. Parmetros: sCodigo sFecha Cdigo del inmovilizado. Fecha de la cuota.

procedure BajaElemento( sCodigo: WideString; sFecha: WideString; nValor: Currency; sMotivo: WideString);

Cancela la amortizacin de un inmovilizado. A partir del momento en que se ejecute este procedimiento no se amortizarn ms cuotas. Parmetros: sCodigo sFecha nValor sMotivo Cdigo del inmovilizado. Fecha de la cancelacin Valor residual del inmovilizado. Motivo de la baja.

procedure AnularCancelar( sCodigo: WideString);

Anula la cancelacin del inmovilizado. Parmetros: sCodigo Cdigo del inmovilizado.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 236

OBJETO PRESUPUESTO
Objeto que permite la creacin, modificacin 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 Mes[ nMes]

Tipo Currency

Descripcin Se usa para introducir el presupuesto del mes especificado en la variable nMes.

Mtodos Iniciar Acabar Nuevo Modifica Anade

Tipo

Descripcin

Procedimient Inicia el objeto presupuesto o Procedimient Cierra el objeto presupuesto o Procedimient Inicia un presupuesto para una cuenta contable. o Procedimient Prepara el objeto para poder modificar el presupuesto o mensual de la cuenta indicada. Procedimient Aade el presupuesto a la base de datos. o

property Mes[nMes: Integer]: Currency;

Esta propiedad nos permite especificar el presupuesto del mes indicado en el parmetro nMes. Parmetros: Valor retornado nMes Currency Mes del ejercicio. Presupuesto del mes indicado.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 237


procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para poder trabajar con el presupuesto.

procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto.

procedure Nuevo( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString; nImporte: Currency);

Prepara el objeto para aadir el presupuesto mensual. Parmetros: sCuenta nEjercicio sTipoContable sCentro1 scentro2 scentro3 sMoneda nImporte Cuenta de la que desea introducirse el presupuesto. Ejercicio al que pertenece el presupuesto. Tipo contable Centro de coste 1. Centro de coste 2. Centro de coste 3. Moneda Importe total del ejercicio.

procedure Modifica( sCuenta: WideString; nEjercicio: Integer; sTipoContable: WideString; sCentro1, sCentro2, sCentro3, sMoneda: WideString);

Prepara la cuenta para modificar su presupuesto. Parmetros: sCuenta nEjercicio sTipoContable sCentro1 sCentro2 sCentro3 sMoneda Cuenta de la que desea introducirse el presupuesto. Ejercicio al que pertenece el presupuesto. Tipo contable Centro de coste 1. Centro de coste 2. Centro de coste 3. Moneda

procedure Anade;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 238 Mediante este procedimiento se termina la edicin de un presupuesto y se guarda su contenido en la base de datos.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 239

OBJETO OPCION
El objeto Opcion permite llamar a las opciones visuales de nexus. Cada una de estas opciones tiene un identificador nico y un conjunto de parmetros.
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 opcin 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);

Aade parmetros con su correspondiente valor. En funcin del valor de estos parmetros la opcin tendr diferentes comportamientos. Parmetros: sNombre sValor
Procedure Ejecutar;

Nombre del parmetro Valor del parmetro. Siempre es de tipo string.

Llama a la opcin visual de nexus que tiene el identificador de la propiedad IdOpcion con los parmetros aadidos con AnadirParametro.

OBJETO LISTADO
Objeto que permite realizar informes pasando los parmetros deseados directamente.
Interface Listado

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 240 property IdListado: WideString writeonly; property Fichero: WideString writeonly; property Parametros: OleVariant readonly; property Destino: DestinoListado writeonly; property Copias: Integer writeonly; property Impresora: WideString writeonly; property Bandeja: WideString writeonly; property Modelo: WideString writeonly; property MostrarProgreso: WordBool; property IncluirFirmaDigital: WordBool; (NJEVO 802C) procedure Iniciar; procedure Acabar; procedure Definir; procedure AnadirParametro(sNombre: WideString; sValor: WideString); procedure Imprimir;

DestinoListado (Tipo enumerado)

Valor destImpresora 0 destHTML destPDF destRTF destJPG destGIF destBMP destEMF destWMF destPantalla 1 2 3 4 5 6 7 8 9

Significado Impresora Fichero en formato HTML Fichero en formato PDF Fichero en formato RTF Fichero en formato JPG Fichero en formato GIF Fichero en formato BMP Fichero en formato EMF Fichero en formato WMF Presentacin preliminar

property IdListado: WideString writeonly;

Texto que identifica a cada listado de forma nica.


property Parametros: OleVariant readonly;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 241 Valor retornado: Variant representando un array. [0] N de parmetros (n). [1..n][0] Nombre del parmetro. [1..n][1] Descripcin del parmetro.

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. Slo 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, automticamente se incluir la firma digital en el fichero PDF. Con esta propiedad podemos indicar si, en el caso anterior, no queremos incluir la firma digital al fichero PDF.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 242

procedure Iniciar;

Reserva los recursos para que el objeto pueda funcionar correctamente.


procedure Acabar;

Libera los recursos del objeto.


Procedure Definir;

Permite definir el listado especificado en IdListado.


procedure AnadirParametro( sNombre: WideString; sValor: WideString);

Aade parmetros con su correspondiente valor. En funcin del valor de estos parmetros el listado tendr diferentes comportamientos. Parmetros: sNombre sValor
Procedure Imprimir;

Nombre del parmetro Valor del parmetro. Siempre es de tipo string.

Llama a la impresin visual de nexus que tiene el identificador de la propiedad IdListado con los parmetros aadidos con AnadirParametro.

OBJETO ESTRUCTURA
Objeto que permite la creacin, modificacin y borrado de estructuras (escandallos).
Interface Estructura

property Estado: EstadoMaestro readonly; property AsString[const sCampo: WideString]: WideString; property AsFloat[const sCampo: WideString]: Double; property AsInteger[const sCampo: WideString]: Integer; property AsBoolean[const sCampo: WideString]: WordBool; procedure Iniciar; procedure EditarEstructura( sCodArt:WideString); procedure Acabar; procedure Cancelar; procedure CambiarUnidades( nUnidades:Double); procedure Guardar;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 243 procedure ActualizarCostes; function CosteFabricacion: double; procedure AnadeFase(const sFase: WideString; const sNomFase: WideString); procedure AnadeComponente(const sFase: WideString; const sCodArt: WideString;nUnidades:double); procedure AnadePerfilOperario(const sFase: WideString; const PerfilO: WideString; sTiempo:WideString); procedure AnadePerfilMaquina(const sFase: WideString; const PerfilM: WideString; sTiempo:WideString); procedure EditarElemento(nNumLin: Currency); procedure BorrarFase(const sFase: WideString); procedure BorrarElemento(nNumLin: Currency); function ListaComponentes (const sCodArt: WideString; nUnidades: Currency) OleVariant;

Propiedades AsString AsInteger AsFloat AsBoolean Estado

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto Estructura ro

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Cancelar Guardar Tipo Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto Procedimiento Cancela la edicin de la estructura Procedimiento Guarda la estructura

CambiarUnidades Procedimiento Modifica las unidades a generar del producto acabado ActualizarCoste CosteFabricacion AnadeFase Procedimiento Recalcula el precio de coste de los componentes Funcin Devuelve el coste del producto acabado.

Procedimiento Aade una nueva fase a la estructura

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 244 AnadeComponent Procedimiento Aade un nuevo componente a la estructura en la fase e especificada. AnadePerfilOpera Procedimiento Aade un nuevo perfil de operario a la estructura en la rio fase especificada. AnadePerfilMaqui Procedimiento Aade un nuevo perfil de mquina a la estructura en la na fase especificada. EditarElemento BorrarElemento BorrarFase EditarEstructura Procedimiento Permite editar un componente o perfil ya existente de la estructura. Procedimiento Permite borrar un componente o perfil de la estructura. Procedimiento Permite borrar una fase y su contenido de la estructura Procedimiento Carga, si existe, la estructura del artculo solicitado. Devuelve las hojas de la estructura

ListaComponente Function s

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es string. Parmetros: Valor retornado SCampo String Nombre del campo Valor del campo

property AsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parmetros: Valor retornado SCampo Integer Nombre del campo Valor del campo

property AsFloat [ sCampo:String]: Double

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 245 A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parmetros: Valor retornado SCampo Double Nombre del campo Valor del campo

property AsBoolean[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es lgico. Parmetros: Valor retornado SCampo Lgico Nombre del campo Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Estructura en estado de insercin de un nuevo registro. ESTM_EDICION: Estructura en estado modificacin, 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 cdigo de artculo que queremos editar o crear su estructura.

procedure Acabar;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 246 Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Cancelar;

Cancela los cambios realizados. Pasa a estado ESTM_ACTIVO.

procedure CambiarUnidades( nUnidades: Double);

Cambia las unidades que se obtendrn en la fabricacin 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 artculo a fabricar.

Funcion CosteFabricacion:double;

Devuelve el coste unitario de fabricacin del producto acabado.

Procedure AnadeFase( sFase, sNomFase:String;

Crea una fase en la estructura actual. Parmetros: sFase SNomFase Cdigo de la fase 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 lnea. Parmetros: sFase sCodArt NUnidades Cdigo de la fase. Cdigo de artculo. Unidades a consumir del componente.

Procedure AnadePerfilOperario( sFase, sPerfilO, sTiempo: string);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 247 Crea un nuevo perfil de operario en la fase especificada con las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: Sfase SPerfilO STiempo Cdigo de la fase. Cdigo de perfil de operario Tiempo a consumir del perfil ( en formato hh:mm:ss)

Procedure AnadePerfilMaquina( sFase, sPerfilM, sTiempo: string);

Crea un nuevo perfil de mquina en la fase especificada con las unidades indicadas. A partir de ese momento podremos editar los valores de la lnea. Parmetros: Sfase SperfilM Stiempo Cdigo de la fase. Cdigo de perfil de mquina Tiempo a consumir del perfil ( en formato hh:mm:ss)

procedure EditarElemento(nNumLin: Currency);

Busca y pone el componente o perfil indicado en el parmetro nNumLin en edicin, preparado para editar el contenido de sus campos. Parmetros: NNumLin Identificador de la lnea.. Se corresponde con el campo NUMLIN del fichero ESCANDALLO.

procedure BorrarFase(sFase: string);

Borra la fase indicada as como todos sus componentes y perfiles. Parmetros: SFase Cdigo de la fase a borrar.

procedure BorrarElemento(nNumLin: Currency);

Borra el componente o perfil correspondiente a dicho identificador. Parmetros: nNumLin Identificador de la lnea ( campo NumLin de la tabla ESCANDALLO)..

function ListaComponentes(const sCodArt: WideString: nUnidades: Currency) OleVariant;

Devuelve lista de las estructura de un artculo, a partir de las unidades indicadas Parmetros: sCodArt nUnidades Identificador del cdigo del artculo N de unidades

OBJETO ORDENPRODUCCION
Objeto que permite la creacin, modificacin, evolucin y borrado de rdenes de produccion.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 248

Interface OrdenProduccion

Procedure Iniciar; procedure Acabar; procedure Nuevo( sFecha:WideString); procedure Borra( nIdProd:Currency); procedure Modifica( nIdProd:Currency); function Anade:currency; procedure Cancela; function NuevoProducto(const sCodArt: WideString;nUnidades:double):Currency; function NuevaFase(nIdLinP:Currency; const sFase: WideString; const sNomFase: WideString):Currency; function NuevoComponente(nIdFase:Currency; const sCodArt: WideString;nUnidades:double; lEsFinal:wordbool):Currency; function NuevoOperario(nIdFase:Currency; const PerfilO: WideString; sTiempo:WideString):Currency; function NuevaMaquina(nIdFase:Currency; const PerfilM: WideString; sTiempo:WideString):Currency; procedure EditarLinea(nIdLinP: Currency); procedure BorrarFase(nIdFase:Currency); procedure BorrarLinea(nIdLinP: Currency); procedure FabricarOrden(const sFecha: WideString; const sTipoStock: WideString); procedure FabricarFase(nIdFase: Currency; const sFecha: WideString; const sTipoStock: WideString); procedure FabricarFaseProporcional(nIdFase: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); procedure FabricarProductoPrevisto(nIdLinP: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoProporcional(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoSinConsumir(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure ConsumirComponente(nIdLinP: Currency; nUnidades: Currency; const sFecha: WideString; const sTipoStock: WideString); safecall;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 249 procedure ConsumirOperario(nIdLinP: Currency; const sCodEmp: WideString; const sTiempo: WideString; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure ConsumirMaquina(nIdLinP: Currency; const sCodMaq: WideString; const sTiempo: WideString; const sFecha: WideString; const sTipoStock: WideString); safecall; procedure FabricarProductoEnCurso(nIdLinC: Currency; nUnidades: Currency; const sCodAlm: WideString); safecall; procedure ConsumirComponenteEnCurso(nIdLinC: Currency; nUnidades: Currency; const sCodAlm: WideString); safecall; procedure ConsumirMaquinaEnCurso(nIdLinC: Currency; const sTiempo: WideString); safecall; procedure ConsumirOperarioEnCurso(nIdLinC: Currency; const sTiempo: WideString); safecall; procedure FabricarConsumirOperacionEnCurso(nIdLogP: Currency); safecall; procedure IndicarDetalle(nIdLogP, nIdLinP: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure AnadirDetalle(nIdLinC, nNumGrupo: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure CambiarDetalle(nIdLinC, nNumLin: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString); safecall; procedure BorrarDetalle(nIdLinC, nNumLin: Currency); safecall; procedure TerminarOrden(const sFecha: WideString); safecall; procedure TerminarFase(nIdFase: Currency; const sFecha: WideString); safecall; procedure TerminarLinea(nIdLinP: Currency; const sFecha: WideString); safecall; procedure DeshacerFabricacionProducto(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoComponente(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoMaquina(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerConsumoOperario(nIdLinC: Currency; nNumLin: Currency); safecall; procedure DeshacerOperacion(nIdLogP: Currency); safecall; procedure DeshacerTerminarOrden; safecall; procedure DeshacerTerminarFase(nIdFase: Currency); safecall; procedure DeshacerTerminarLinea(nIdLinP: Currency); safecall; function NuevoTrabajo(const sFecha: WideString; const sMotivo: WideString): Currency; safecall; procedure AbrirTrabajo(nIdTrab: Currency); safecall; procedure CerrarTrabajo(nIdTrab: Currency; const sFecha: WideString); safecall;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 250 procedure BorrarTrabajo(nIdTrab: Currency); safecall; Property TrabajoActivo: Currency readwrite; Property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Currency; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; property AsCurrencyLin[const sCampo: WideString]: Currency; property AvisarStock: WordBool; procedure CambiarUnidadesProducto( nIdLinP, nUnidades:currency); procedure ActualizarCostesComponentes;

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsStringLin AsIntegerLin AsFloatLin AsBooleanLin AsCurrencyLin

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 251 TrabajoActivo Estado AvisarStock Currency Asigna/lee la orden de trabajo activa

EstadoMaest Devuelve el estado en que se encuentra el objeto Estructura ro Lgico Asignar valor para activar o no los mensajes de aviso de stock

*EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Cancela Nuevo Borra Modifica Anade NuevaFase NuevoComponente NuevoOperario NuevaMaquina EditarLinea BorrarLinea BorrarFase FabricarOrden FabricarFase FabricarFaseProporcional Tipo Descripcin

Procedimient Inicia el objeto. o Procedimient Cierra el objeto. o Procedimient Cancela los cambios realizados en la orden. o Procedimient Crea una nueva orden. o Procedimient Borra la orden indicada. o Procedimient Carga la orden indicada para su edicin. o Funcin Funcion Funcion Funcion Funcion Guarda y devuelve el identificador de la orden. Aade una nueva fase al artculo especificado. Aade un nuevo componente a la fase especificada. Aade un nuevo perfil de operario a la fase especificada. Aade un nuevo perfil de mquina a la fase especificada.

Procedimient Busca y pone en edicin el registro o especificado. Procedimient Borra el registro especificado. o Procedimient Borra la fase especificada y todo su contenido. o Procedimient Fabrica y consume todos los elementos de la o orden. Procedimient Fabrica y consume todos los elementos de la o fase especificada Procedimient Fabrica y consume proporcionalmente a las

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 252 o FabricarProductoPrevisto unidades del artculo al que pertenece todos los elementos de la fase especificada

Procedimient Fabrica y consume todos los o componentes/tiempos del producto acabado especificado. Procedimient Fabrica y consume todos los o componentes/tiempos del producto acabado especificado proporcionalmente a las unidades a fabricar. Procedimient Solo fabrica el producto acabado especificado, o sin rebajar los componentes. Procedimient Consume unidades del componente o especificado. Procedimient Consume tiempo del operario especificado. o Procedimient Consume tiempo de la mquina especificada. o Procedimient Hace la fabricacin de un producto acabado en o una orden de trabajo. Procedimient Hace el consumo de un componente en una o orden de trabajo. Procedimient Hace el consumo de una mquina en una o orden de trabajo. Procedimient Hace el consumo de un operario en una orden o de trabajo.

FabricarProductoProporcional

FabricarProductoSinConsumir ConsumirComponente ConsumirOperario ConsumirMaquina FabricarProductoEnCurso ConsumirComponteEnCurso ConsumirMaquinaEnCurso ConsumirOperarioEnCurso

FabricarConsumirOperarionEnC Procedimient Hace la fabricacin y consumos de una urso o operacin de una orden de trabajo. IndicarDetalle Procedimient Permite indicar los nmeros de serie / lotes / o al fabricar / consumir, cuando no se conoce el identificadore de la lnea de consumo / fabricacin porque todava no se ha grabado en la base de datios Procedimient Permiter aadir lneas de detalle donde se o indica el nmero de serie / lote / cuando se conoce el identificador de la lnea de consumo / fabricacin Procedimient Permite cambiar lneas de detalle cuando se o conoce el identificador de la lnea de consumo / fabricacin Procedimient Permite borrar lneas de detalle cuando se o conoce el identificador de la lnea de consumo / fabricacin

AnadirDetalle

CambiarDetalle

BorrarDetalle

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 253 TerminarOrden TerminarFase TerminarLinea DeshacerFabricacionProducto Procedimient Da por finalizada la orden de produccin. o Procedimient Da por finalizada la fase especificada. o Procedimient Da por finalizada la lnea especificada. o Procedimient Borra la fabricacin especificada. o

DeshacerConsumoComponente Procedimient Borra el consumo de componente o especificado. DeshacerConsumoMaquina DeshacerConsumoOperario DeshacerOperacion DeshacerTerminarOrden DeshacerTerminarFase DeshacerTerminarLinea NuevoTrabajo AbrirTrabajo CerrarTrabajo BorrarTrabajo CambiarUnidadesProducto ActualizarCostesComponentes Procedimient Borra el consumo de mquina especificada. o Procedimient Borra el consumo de operario especificado. o Procedimient Borra todas las acciones de la operacin o especificada. Procedimient Deshace la finalizacin de la orden. o Procedimient Deshace la finalizacin de la fase. o Procedimient Deshace la finalizacin de la lnea. o Funcion Crea una nueva orden de trabajo

Procedimient Abre una orden de trabajo. o Procedimient Cierra una orden de trabajo. o Procedimient Borra una orden de trabajo. o Procedimient Modifica las unidades a fabricar de un o producto acabado. Procedimient Carga los costes de los componentes de la o orden con los precios actuales.

La tablas que intervienen en los procesos as como las relaciones entre llas son las siguientes: Tabla: Campos clave: CABEPROD IDPROD Cabecera de rdenes de produccin. Identificador de orden de produccin

Tabla:

LINEPROD

Lneas de rdenes de produccin.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 254 Campos clave: IDPROD IDLINP IDFASE IDPADRE Identificador de orden de produccin Identificador de lnea Identificador de la fase a la que pertenece la lnea. Identificador de la lnea del producto acabado al que pertenece dicha lnea; si es 0, indica que es un producto acabado de primer nivel.

Tabla: Campos clave:

PRODFASES IDPROD IDFASE IDLINP

Fases de rdenes de produccin. Identificador de orden de produccin Identificador de fase Identificador de la lnea a la que pertenece la fase.

Tabla:

LOGPROD

Operaciones generadas, entendiendo como operacin el conjunto de acciones necesarias ( que se guardarn en la tabla histprod) para completar una evolucin de la orden de produccin ( por ejemplo, si lanzamos una fase, las acciones sern todos los consumos generados por dicha fase). Identificador de orden de produccin Identificador de la operacin Identificador de la orden de trabajo a la que pertenece.

Campos clave:

IDPROD IDLOGP IDTRAB

Tabla:

HISTPROD

Acciones generadas al evolucionar una orden ( consumos de componentes, consumos de tiempo, fabricaciones de productos acabados, marcas de terminacin de lneas,...). Identificador de orden de produccin Identificador de la operacin a la que pertenece Identificador de la orden de trabajo a la que pertenece. Identificador de la lnea que ha generado la accin. Identificador de la accin. Identificador de lnea de evolucin; cuando enviamos una accin a trabajo en curso (este campo valdr 0), se pueden ir haciendo fabricaciones o consumos parciales sobre la accin ( y cada evolucin tendr un valor distinto)

Campos clave:

IDPROD IDLOGP IDTRAB IDLINP IDLINC NUMLIN

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 255 Tabla: Campos clave: TRABAJOS IDPROD IDTRAB Ordenes de trabajo. Identificador de orden de produccin Identificador de trabajo.

Property AsStringCab[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es string. Parmetros: Valor retornado SCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parmetros: Valor retornado SCampo Integer Nombre del campo Valor del campo

property AsFloatCab [ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parmetros: Valor retornado SCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es lgico. Parmetros: Valor retornado SCampo Lgico Nombre del campo Valor del campo

Property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es string. Parmetros: Valor SCampo String Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 256 retornado

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parmetros: Valor retornado SCampo Integer Nombre del campo Valor del campo

property AsFloatLin [ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parmetros: Valor retornado SCampo Double Nombre del campo Valor del campo

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es lgico. Parmetros: Valor retornado SCampo Lgico Nombre del campo Valor del campo

property AsCurrencyLin[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es currency. Parmetros: Valor retornado SCampo Currency Nombre del campo Valor del campo

property AvisarStock: WordBool

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Valor retornado Currency Valor del campo

A continuacin se presentan las propiedades y mtodos necesarios para crear, borrar y modificar rdenes.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 257

property Estado:EstadoMaestro

Esta propiedad nos indica el estado del objeto. Posibles estados: ESTM_NOACTIVO: Estructura cerrada. No se puede usar. ESTM_ACTIVO: Estructura activa. Podemos aadir, borrar, modificar. ESTM_NUEVO: Estructura en estado de insercin de un nuevo registro. ESTM_EDICION: Estructura en estado modificacin, podemos asignar valores a los campos. Valor retornado EstadoMaestro Retorna el estado del documento.

property TrabajoActivo[ nIdTrab:Currency]: Currency

A travs de esta propiedad podemos cambiar o consultar la orden de trabajo activa. Parmetros: Valor retornado NIdTrab Currency Identificador de trabajo a activar Identificador de trabajo activo.

procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que la orden pueda ser usada. Al iniciar el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Cancela;

Cancela los cambios realizados. Pasa a estado ESTM_ACTIVO.

Function Anade:Currency;

Almacena los valores de los campos en la base de datos con los cambios introducidos por el programador y devuelve el identificador de orden (IDPROD). Pasa de los estados ESTM_NUEVO o EST_EDICION a ESTM_ACTIVO.

Procedure Nuevo( sFecha:String);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 258 Crea una nueva orden de produccin. Pasa a estado ESTM_NUEVO. Parmetros: SFecha Fecha de la orden

Procedure Borra( nIdProd:Currency);

Borra la orden de produccin indicada. Pasa a estado ESTM_ACTIVO. Parmetros: NIdProd Identificador de la orden

Procedure Modifica( nIdProd:Currency);

Pone en edicin una orden de produccin. Pasa a estado ESTM_EDICION. Parmetros: NIdProd Identificador de la orden.

Function NuevoProducto( sCodArt:String; nUnidades:Double):Currency;

Aade un artculo a fabricar en la orden y devuelve el identificador de lnea generado (IDLINP). Parmetros: sCodArt nUnidades Cdigo de artculo. Unidades a fabricar.

Function NuevaFase( nIdLinP:currency; sFase, sNomFase:String):Currency;

Crea una fase en el artculo a fabricar indicado y devuelve el identificador de fase generado (IDFASE). Parmetros: nIdLinP sFase SNomFase Identificador de la lnea de artculo a fabricar. Cdigo de la fase 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 lnea generado (IDLINP) Parmetros: NIdFase SCodArt NUnidades Identificador de la fase. Cdigo de artculo. Unidades a consumir del componente.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 259 LEsFinal Si el componente aadido tambin puede fabricarse, si ponemos true solo aadir est lnea, pero si le decimos false, pondr este componente as como su estructura (ser un artculo 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 lnea generada (IDLINP). Parmetros: NIdFase SPerfilO STiempo Identificador de la fase. Cdigo de perfil de operario Tiempo a consumir del perfil ( en formato hh:mm:ss)

Function NuevaMaquina( nIdFase:currency;sPerfilM, sTiempo: string):Currency;

Crea un nuevo perfil de mquina en la fase especificada con el tiempo y devuelve el identificador de lnea generado (IDLINP). Parmetros: NIdFase SperfilM Stiempo Identificador de la fase. Cdigo de perfil de mquina Tiempo a consumir del perfil ( en formato hh:mm:ss)

procedure EditarLinea(nIdLinP: Currency);

Busca y pone la lnea indicada preparada para editar el contenido de sus campos. Parmetros: NIdLinP Identificador de la lnea.

procedure BorrarFase(nIdFase: currency);

Borra la fase indicada as como todos sus componentes y perfiles. Parmetros: NIdFase Identificador de la fase a borrar.

procedure BorrarLinea(nIdLinP: Currency);

Borra el componente o perfil correspondiente a dicho identificador. Parmetros: NIdLinP Identificador de la lnea.

Nota: Parmetro sTipoStock: en todas las operaciones que se hagan para fabricar o consumir la orden de produccin existe este parmetro, que nos indica si la operacin se enva a trabajo en curso, es decir que se podr evolucionar desde trabajos ( pondramos P) o por el contrario si es definitiva, que para los artculos ya actualizara el stock ( pondramos S).

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 260 Si se deja en blanco, coger el valor que tenga la cabecera de la orden sobre la que estemos trabajando.
procedure FabricarOrden(sFecha, sTipoStock:string);

Fabrica y consume todo lo pendiente de la orden de produccin. Parmetros: SFecha STipoStock Fecha de fabricacin S o P

procedure FabricarFase(nIdFase:currency;sFecha, sTipoStock:string);

Fabrica y consume todo lo pendiente de la fase indicada. Parmetros: nIdFase SFecha STipoStock Identificador de la fase Fecha de fabricacin/consumo. 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 artculo acabado de dicha fase. Parmetros: nIdFase NUnidades SFecha STipoStock Identificador de la fase. Unidades a tratar. Fecha de fabricacin/consumo. S o P

procedure FabricarProductoPrevisto(nIdLinP:currency;sFecha, sTipoStock:string);

Fabrica y consume todo lo pendiente de la producto acabado indicado. Parmetros: NIdLinP SFecha STipoStock Identificador del producto acabado. Fecha de fabricacin/consumo. 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 artculo acabado. Parmetros: nIdLinP NUnidades SFecha Identificador del producto acabado. Unidades a tratar. Fecha de fabricacin/consumo.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 261 STipoStock S o P

Procedure FabricarProductoSinConsumir(nIdLinP,nUnidades:currency; SFecha, sTipoStock:string);

Fabrica las unidades indicadas sin consumir componentes ni tiempos. Parmetros: nIdLinP NUnidades SFecha STipoStock Identificador del producto acabado. Unidades a tratar. Fecha de fabricacin. S o P

Procedure ConsumirComponente(nIdLinP,nUnidades:currency; SFecha, sTipoStock:string);

Consume las unidades del componente indicado. Parmetros: NIdLinP NUnidades SFecha STipoStock Identificador del componente. Unidades a consumir. Fecha de consumo. S o P

Procedure ConsumirOperario(nIdLinP:currency; sCodEmp, sTiempo sFecha, sTipoStock:string);

Consume dicho tiempo para el perfil de operario indicado. Parmetros: NIdLinP SCodEmp STiempo SFecha STipoStock Identificador del perfil de operario. Cdigo de operario que realiza la accin; si va en blanco, coge por defecto el de la lnea de la orden. Tiempo a consumir ( en formato hh:mm:ss). Fecha de consumo. S o P

Procedure ConsumirMaquina(nIdLinP:currency; sCodMaq, sTiempo sFecha, sTipoStock:string);

Consume dicho tiempo para el perfil de mquina indicado. Parmetros: NIdLinP SCodMaq STiempo Identificador del perfil de mquina. Cdigo de mquina que realiza la accin; si va en blanco, coge por defecto el de la lnea de la orden. Tiempo a consumir ( en formato hh:mm:ss).

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 262 SFecha STipoStock Fecha de consumo. S o P

Procedure FabricarProductoEnCurso(nIdLinC, nUnidades:currency; SCodAlm:string);

Fabrica un producto acabado de una fabricacin que previamente habamos 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 lnea de produccin (IdLinP). Parmetros: NIdLinC nUnidades SCodAlm Identificador de la lnea de consumo. Unidades a fabricar del producto acabado. Almacn donde repercutir la entrada de stock;si va en blanco, coge por defecto el la lnea de consumo.

Procedure ConsumirComponenteEnCurso(nIdLinC, nUnidades:currency; SCodAlm:string);

Consume un componente de una fabricacin que previamente habamos 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 lnea de produccin (IdLinP). Parmetros: NIdLinC nUnidades SCodAlm Identificador de la lnea de consumo. Unidades a consumir del componente. Almacn donde repercutir la salida de stock;si va en blanco, coge por defecto el la lnea de consumo.

Procedure ConsumirMaquinaEnCurso(nIdLinC:currency; sTiempo:string)

Consume un tiempo de una operacin que previamente habamos 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 lnea de produccin (IdLinP). Parmetros: NIdLinC STiempo Identificador de la lnea de consumo. Tiempo a consumir de mquina.

Procedure ConsumirOperarioEnCurso(nIdLinC:currency; sTiempo:string)

Consume un tiempo de una operacin que previamente habamos 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 lnea de produccin (IdLinP). Parmetros: NIdLinC Identificador de la lnea de consumo.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 263 STiempo Tiempo a consumir de operario.

Procedure FabricarConsumirOperacionEnCurso(nIdLogP:currency)

Fabrica y consume una operacin mltiple ( por ejemplo, fabricar una fase) que previamente habamos hecho marcando como TipoStock Trabajo en curso. El identificador que tendremos que pasar (IdLogP) corresponde a la tabla LogProd.. Parmetros: nIdLogP Identificador de la operacin.

Procedure IndicarDetalle(nIdLogP, nIdLinP: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString)

Permite indicar el nmero de serie / lote / etc cuando no se conoce el identificador de la lnea de consumo / fabricacin. 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 mtodo fabicar consumir no devuelve el identificador de la lnea de consumo (se puede estar fabricando toda una estructura, lo que significa que en realidad se estn aadiendo muchas lneas de consumo) solo podemos indicar el IdLinp. El IdLogP se deja a 0 ya que estamos indicando el detalle en la ltima operacin (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 mtodo fabicar consumir no devuelve el identificador de la lnea de consumo (se puede estar fabricando toda una estructura, lo que significa que en realidad se estn aadiendo muchas lneas de consumo) solo podemos indicar el IdLinp. El IdLogP se puede dejar a 0 cuando estamos indicando el detalle en la ltima operacin (la que acabamos de hacer). Parmetros: nIdLogP nIdLinP nUnidades sNumSerie sLote sUbicacion sFecCaduc Identificador de la operacin. Si se indica 0, se buscar el ltimo trabajo Identificador de la lnea de produccin Unidades del detalle Nmero de serie del detalle Lote del detalle Ubicacin del detalle Fecha de caducidad del detalle.

Procedure AnadirDetalle(nIdLinC, nNumGrupo: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString)

Permite indicar el nmero de serie / lote / etc cuando se conoce el identificador de la lnea de consumo / fabricacin. Este caso se da cuando se est cambiando el detalle de un trabajo previamente guardado. Parmetros: nIdLinC nNumGrupo Identificador de la lnea de consumo (HISTPROD) Nmero de grupo del consumo (HISTPROD)

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 264 nUnidades sNumSerie sLote sUbicacion sFecCaduc Unidades del detalle Nmero de serie del detalle Lote del detalle Ubicacin del detalle Fecha de caducidad del detalle.

Procedure CambiarDetalle(nIdLinC, nNumLin: Currency; nUnidades: Double; sNumSerie, sLote, sUbicacion, sFecCaduc: WideString)

Permite cambiar el detalle. Parmetros: nIdLinC nNumLin nUnidades sNumSerie sLote sUbicacion sFecCaduc Identificador de la lnea de consumo (HISTPROD) Nmero de la lnea ( HISTPROD) Unidades del detalle Nmero de serie del detalle Lote del detalle Ubicacin del detalle Fecha de caducidad del detalle.

Procedure BorrarDetalle(nIdLinC, nNumLin: Currency)

Permite borrar el detalle. Parmetros: nIdLinC nNumLin Identificador de la lnea de consumo (HISTPROD) Nmero de la lnea ( HISTPROD)

Procedure TerminarOrden(sFecha:string)

Termina todos los artculos a fabricar, cierra todos los trabajos y deshabilita cualquier accin sobre la orden. Parmetros: sFecha Fecha de finalizacin de la orden.

Procedure TerminarFase(nIdFase:currency; sFecha:string)

Termina todos los artculos que dependan de la fase indicada deshabilitando cualquier accin sobre sta. Parmetros: nIdFase SFecha Identificador de la fase Fecha de finalizacin de la fase.

Procedure TerminarLinea(nIdLinP:currency; sFecha:string)

Termina la lnea indicada (sea artculo acabado, componente o tiempo) deshabilitando cualquier accin sobre sta.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 265 Parmetros: NIdLinp SFecha Identificador de la lnea Fecha de finalizacin de la lnea.

Procedure DeshacerFabricacionProducto(nIdLinC, nNumLin:currency)

Deshace la fabricacin de la lnea de consumos indicada. Si la lnea de consumo fue generada como TipoStock Trabajo en curso, el nNumLin puede tener dos valores : 0, con lo que borrara la lnea de consumo y todas las evoluciones que hubiesen sobre sta, o un valor distinto de 0, con que borrara la evolucin identificada por el campo NUMLIN; si por el contrario la lnea de consumo fue generada como TipoStock= S, siempre se tendr que poner 0. Parmetros: NIdLinC nNumLin Identificador de la lnea de consumo Identificador de detalle de consumo.

Procedure DeshacerConsumoComponente(nIdLinC, nNumLin:currency)

Deshace la lnea de consumos indicada. Si la lnea de consumo fue generada como TipoStock Trabajo en curso, el nNumLin puede tener dos valores : 0, con lo que borrara la lnea de consumo y todas las evoluciones que hubiesen sobre sta, o un valor distinto de 0, con que borrara la evolucin identificada por el campo NUMLIN; si por el contrario la lnea de consumo fue generada como TipoStock= S, siempre se tendr que poner 0. Parmetros: NIdLinC nNumLin Identificador de la lnea de consumo Identificador de detalle de consumo.

Procedure DeshacerConsumoOperario(nIdLinC, nNumLin:currency)

Deshace la lnea de consumos indicada. Si la lnea de consumo fue generada como TipoStock Trabajo en curso, el nNumLin puede tener dos valores : 0, con lo que borrara la lnea de consumo y todas las evoluciones que hubiesen sobre sta, o un valor distinto de 0, con que borrara la evolucin identificada por el campo NUMLIN; si por el contrario la lnea de consumo fue generada como TipoStock= S, siempre se tendr que poner 0. Parmetros: NIdLinC nNumLin Identificador de la lnea de consumo Identificador de detalle de consumo.

Procedure DeshacerConsumoMaquina(nIdLinC, nNumLin:currency)

Deshace la lnea de consumos indicada. Si la lnea de consumo fue generada como TipoStock Trabajo en curso, el nNumLin puede tener dos valores : 0, con lo que borrara la lnea de consumo y todas las evoluciones que hubiesen sobre sta, o un valor distinto de 0, con que borrara la evolucin identificada por el campo NUMLIN; si por el contrario la lnea de consumo fue generada como TipoStock= S, siempre se tendr que poner 0. Parmetros: NIdLinC NNumLin Identificador de la lnea de consumo Identificador de detalle de consumo.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 266

Procedure DeshacerOperacion(nIdLogP:currency)

Deshace las lnea de consumos indicadas por este identificador de operacin mltiple ( campo IdLogP de la tabla LogProd). Parmetros: NIdLogP Identificador de la operacin.

Procedure DeshacerTerminarOrden

Deshace, si existe, la operacin mltiple de terminar la orden.

Procedure DeshacerTerminarFase(nIdFase:currency)

Deshace el terminar de la fase indicada( pero no sus hijos), con lo que pueden aadirse elementos a sta. Parmetros: nIdFase Identificador de la fase.

Procedure DeshacerTerminarLinea(nIdLinP:currency)

Deshace el terminar de la lnea indicada( pero no sus posibles hijos), con lo que se puede modificar sta. Parmetros: 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). Parmetros: SFecha SMotivo Fecha del trabajo. Motivo del trabajo.

Procedure AbrirTrabajo(nIdTrab:Currency)

Abre el trabajo indicado, lo que habilita las modificaciones sobre l. Parmetros: nIdTrab Identificador de trabajo

Procedure CerrarTrabajo(nIdTrab:Currency)

Cierra el trabajo indicado, lo que deshabilita las modificaciones sobre l. Parmetros: NIdTrab Identificador de trabajo

Procedure BorrarTrabajo(nIdTrab:Currency)

Borra el trabajo indicado si no tiene movimientos. Parmetros: nIdTrab Identificador de trabajo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 267

Procedure CambiarUnidadesProducto(nIdLinP, nUnidades:Currency)

Modifica las unidades a fabricar de un producto acabado. Parmetros: NIdLinP NUnidades Identificador de lnea Unidades a fabricar

Procedure ActualizarCostesComponentes)

Recalcula los costes de todos los componentes de la orden activa.

OBJETO EXPEDIENTES
Interface Expedientes

property ActivarFacturado: WordBool; property ActivarPreFactura: WordBool; property Estado: EstadoMaestro readonly; property AsStringCab[const sCampo: WideString]: WideString; property AsFloatCab[const sCampo: WideString]: Double; property AsIntegerCab[const sCampo: WideString]: Integer; property AsBooleanCab[const sCampo: WideString]: WordBool; property AsStringLin[const sCampo: WideString]: WideString; property AsFloatLin[const sCampo: WideString]: Double; property AsIntegerLin[const sCampo: WideString]: Integer; property AsBooleanLin[const sCampo: WideString]: WordBool; procedure Iniciar; procedure Acabar; procedure Nuevo(const Cliente: WideString; const Fecha: WideString); procedure Modifica(IDEXPE: Currency); function Anade: Currency; procedure Borra(IDEXPE: Currency); procedure Cancela; procedure NuevaLinea(TIPO: LineaExpediente); procedure EditarLinea(TIPO: LineaExpediente; NUMLIN: Currency); procedure BorrarLinea(TIPO: LineaExpediente; NUMLIN: Currency); procedure AnadirLinea;

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 268 procedure CancelaLin; procedure Facturar(IDEXPE: Currency; Factura: WordBool); procedure PreFactura(IDEXPE: Currency);

Propiedades AsStringCab AsIntegerCab AsFloatCab AsBooleanCab AsCurrencyCab AsStringLin AsIntegerLin AsFloatLin AsCurrencyLin AsBooleanLin Estado ActivarFacturado

Tipo

Descripcin

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Lgico) Tabla( Currency) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

Tabla( string) Asigna/lee valores a/de los campos del registro nuevo/actual. Tabla( Integer) Tabla( Float) Tabla( Currency) Tabla( Lgico) Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual. Asigna/lee valores a/de los campos del registro nuevo/actual.

EstadoMaest Devuelve el estado en que se encuentra el objeto ro Tabla( string) Flag que se asigna para poderse facturar el expediente Flag que se asigna para porder realizar la prefactura

ActivarPreFactura Tabla( Integer) *EstadoMaestro: Ver objeto Maestro. Mtodo Iniciar Acabar Tipo

Descripcin

Procedimiento Inicia el objeto Procedimiento Cierra el objeto

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 269 Nuevo Borra Modifica Cancela Anade NuevaLinea AnadirLinea CancelaLin EditarLinea BorrarLinea Facturar PreFactura Procedimiento Inicia un nuevo expediente Procedimiento Borra el expediente Procedimiento Prepara el expediente para poderlo modificar. Procedimiento Cancela la edicin del expediente Funcin Aade los datos editados del expediente a la base de datos y devuelve el identificador con el que se almacenar.

Procedimiento Inicia una nueva lnea Procedimiento Aade la lnea Procedimiento Cancela la lnea en edicin Procedimiento Permite editar una lnea ya existente del expediente. Procedimiento Permite borrar una lnea del expediente. Procedimiento Permite facturar el expediente Procedimiento Permite realizar al prefactura

Las primeras funciones de la lista que se presentan a continuacin se utilizan para asignar / leer valores de la cabecera o de las lneas 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 lnea. 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 travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerCab[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es entero.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 270 Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatCab[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBooleanCab[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la cabecera especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

property AsStringLin[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsIntegerLin[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloatLin[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 271

property AsBooleanLin[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos de la lnea especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

A continuacin se presentan las propiedades y mtodos 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 aadir, borrar, modificar. ESTM_NUEVO: Expediente en estado de insercin de un nuevo registro. ESTM_EDICION: Expediente en estado modificacin, 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 provisin. Su valor equivalente es 2 (tipo de datos entero) CTHONORARIO: Indicamos que la linea es de honorarios. Su valor equivalente es 3 (tipo de datos entero) Valor retornado EstadoMaestro Retorna el estado del documento.

procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que el expediente pueda ser usado. Al iniciar el expediente el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 272

procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar el expediente el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nuevo( Cliente: WideString; Fecha: WideString);

Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO. Parmetros: Cliente Fecha Cdigo del cliente Fecha del expediente ( string formato dd/mm/aaaa)

procedure Modifica(IDEXPE: Currency);

Pone el documento que tiene el identificador indicado en edicin. Parmetros: 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 edicin 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 tambin sus repercusiones en stocks, contabilidad, cartera, estadsticas e IVA. Parmetros: IdExpe Identificador del expediente

Procedure NuevaLinea(TIPO: LineaExpediente);

Crea una lnea nueva del tipo especificado por el parmetro. (Ver constantes LineaExpediente) A partir de ese momento podremos editar los valores de la lnea. Parmetros: Tipo Tipo de linea de expediente. (Ver constantes LineaExpediente)

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 273


Procedure AnadirLinea;

Almacena los valores de los campos de la lnea en la base de datos.

Procedure CancelaLin;

Cancela la edicin de la lnea activa.

procedure EditarLinea(TIPO: LineaExpediente; NUMLIN: Currency);

Pone la lnea indicada en el parmetro NumLina en edicin, 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. Parmetros: Tipo NumLin Tipo de linea de expediente. (Ver constantes LineaExpediente) Identificador de la lnea.. 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=> Provisin / H => Honorarios

Procedure BorrarLinea(TIPO: LineaExpediente; NUMLIN: Currency);

Se situa en la linea indicada por los parmetros Tipo, NumLin y la borra. Parmetros: Tipo NumLin Tipo de linea de expediente. (Ver constantes LineaExpediente) Identificador de la lnea.. 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=> Provisin / H => Honorarios

Procedure Facturar(IDEXPE: Currency; Factura: WordBool);

Indicamos que deseamos facturar/desfacturar el expediente mediante el campo IdExpe y mediante el booleano Factura. Parmetros: IdExpe Identificar del expediente

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 274 Factura Es un boleando donde si su valore es cierto facturar el expediente si ste no est facturado y si su valor es falso desfacturar el expediente si ste estaba facturado.

PreFactura(IDEXPE: Currency);

Indicamos que deseamos prefacturar el expediente. (Impresin del expediente) Parmetros: IdExpe Identificar del expediente

OBJETO CUOTAS
Objeto que permite la creacin, modificacin 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 continuacin 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 lnea. Hay que tener en cuenta lo siguiente: Los campos fecha se han de asignar como cadenas de texto como 01/01/2003

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 275 Uso en Delphi: naxCuotas.AsString* CodCli+ Uso en Visual Basic: naxCuotas.AsString ( CodCli)

property AsString[ sCampo:String]: String

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es string. Parmetros: Valor retornado sCampo String Nombre del campo Valor del campo

property AsCurrency[ sCampo:String]: Currency

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es money. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsInteger[ sCampo:String]: Integer

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es entero. Parmetros: Valor retornado sCampo Integer Nombre del campo Valor del campo

property AsFloat[ sCampo:String]: Double

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es double. Parmetros: Valor retornado sCampo Double Nombre del campo Valor del campo

property AsBoolean[ sCampo:String]: Boolean

A travs de esta propiedad podemos asignar valor a los campos especificando que su tipo es lgico. Parmetros: Valor retornado sCampo Lgico Nombre del campo Valor del campo

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 276


procedure Iniciar;

Este procedimiento es el que reserva los recursos necesarios para que la cuota pueda ser usada. Al iniciar la cuota el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO.

procedure Acabar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

procedure Nuevo;

Inserta un nuevo registro y los prepara para ser editado. Pasa de estado ESTM_ACTIVO a ESTM_NUEVO.

procedure Modificar(IDCuota: Currency);

Pone la cuota que tiene el identificador indicado en edicin. Parmetros: IdExpe Identificador de la cuota

Procedure Borrar(IdCuota: Currency);

Borra la cuota del identificador indicado. Parmetros: IdCuota Identificador de la cuota

Procedure Cancelar;

Cancela la edicin 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 Parmetros: Mes Mes aplicar cuota

Procedure DesactivarMes (Mes:integer)

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 277 Indicamos el mes (de 1 a 12) en que tiene que anularse la cuota Parmetros: 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 continuacin 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 lnea.

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) Tipo Descripcin Permite indicar si queremos el cobro con o sin repercusiones contables. Permite indicar si queremos el cobro al descuento o al cobro. Permite indicar la cuenta bancaria del asiento del cobro. Permite indicar la cuenta bancaria de riesgo del asiento del cobro. Permite indicar la fecha efectiva del cobro y la fehca del asiento del cobro. Permite indicar la fecha valor del cobro y la fecha valor del asiento del cobro. Permite indicar el cdigo de banco con el que se realiza el cobro. Permite indicar la cuenta de gastos del asiento del cobro. Permite indicar el cambio de la operacin (para cobros en divisa). Permite indicar el importe de los gastos del asiento del cobro. Permite indicar el centro coste 1 del asiento del cobro. Permite indicar el centro coste 2 del asiento del cobro. Permite indicar el centro coste 3 del asiento del cobro. Permite indicar el nmero de documento del asiento del cobro. Permite indicar si queremos un asiento por cada cobro parcial o todos los cobros parciales en el mismo asiento.

Propiedades

ConRepercusione Boolean s AlDescuento CuentaBanco CuentaRiesgo Fecha FechaValor CodigoBanco CuentaGastos Cambio Gastos Centro1 Centro2 Centro3 Boolean String String STRING STRING String String Float Currency String String String

NumeroDocumen String to UnAsiento Boolean

procedure Iniciar (IdRemesa:integer);

Este procedimiento es el que reserva los recursos necesarios para que la remesa pueda ser usada. Al iniciar la cuota el estado cambia de ESTM_NOACTIVO a ESTM_ACTIVO. Parmetros: Remesa Identificador de la remesa

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 279

procedure Finalizar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

Procedure AnadeEfecto(NumeroCartera: Currency; NumeroVencimiento: Integer);

Indicamos que efectos de la remesa queremos cobrar parcialmente Parmetros: 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 aadidos anteriormente. Parmetros: PedirDatos Permite mostrar pantalla de peticin de datos de la operacin.

OBJETO ANULARCOBROPARCIALREMESA
Objeto que permite la anulacin 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. Parmetros: Remesa Identificador de la remesa

procedure Finalizar;

Este procedimiento es el que libera los recursos utilizados por el objeto. Al acabar la cuota el estado cambia de ESTM_ACTIVO a ESTM_NOACTIVO.

Procedure AnadeOperacion(Operacion: Currency);

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 280 Indicamos que operaciones queremos anular Parmetros: Operacin Identificador de la operacin a anular

procedure Procesar;

Anula todas las operaciones indicadas en el mtodo anterior

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 281

PROGRAMACIN DLLS
INTRODUCCIN
Con la opcin de aadir Dlls a Nexus, permite cambiar algunos procesos que realiza la aplicacin estndar y cambiarlo para adecuarlo a las necesidades del cliente.

INSTALACIN
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 slo 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 Descripcin

Iniciar IniciarConSistema Finalizar

procedure( Empresa: PChar); stdcall; procedure( Empresa: PChar); stdcall; procedure; stdcall;

Al entrar en una empresa Al inicializar el nexus Al salir de una empresa

DOCUMENTOS
Nombre Estructura Descripcin

ObtPrecioCompra

function( PrcCompra: Double; Cabecera, Linea: Variant): Double; stdcall; function( PrcVenta: Double; Cabecera, Linea: Variant): Double; stdcall;

Al obtener el precio de compra en los documentos de compra

ObtPrecioVenta

Al obtener el precio de venta en los documentos de venta

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 282

DespuesDeGuardarDocume procedure(Documento: string; nto: IdDoc: Double); stdcall; DespuesDeGuardarDocume procedure(Documento: String; ntoV2 IdDoc: Double; Estado: Integer); stdcall; AntesDeGuardarDocument o function(Documento: string; IdDoc: Double; var Cabecera: Variant; var Lineas: Variant): boolean; stdcall;

Despus de guardar cualquier documento de compra o venta Despus de guardar cualquier documento de compra o venta

Antes de guardar cualquier documento de compra o venta

AntesDeGuardarDocument oV2

function(Documento: string; Antes de guardar cualquier IdDoc: Double; var Cabecera: documento de compra o venta Variant; var Lineas: Variant; Estado:Integer): boolean; stdcall; function( Tabla: string): boolean; Actualiza una ventana con los stdcall; nuevos datos function(Documento: String; Cabecera: Variant; Linea: Variant): Variant; stdcall; Antes de guardar la linea del documento Antes de guardar linea del documento, pero en aquellos casos que hay articulos con detalle ( lotes, series, tallas, etc) Despus de guardar la linea del documento

RePintar

AntesDeGuardarLinea

AntesDeGuardarLineaConD function(Documento: String; etalle Cabecera: Variant; Linea: Variant; Detalle: Variant): Variant; stdcall; DespuesDeGuardarLinea procedure(Documento: String; Cabecera: Variant; Linea: Variant); stdcall;

DespuesDeGuardarLineaCo nDetalle:

procedure(Documento: String; Despus de guardar linea del Cabecera: Variant; Linea: documento, pero en aquellos Variant; Detalle: Variant); stdcall; casos que hay articulos con detalle ( lotes, series, tallas, etc)

CARTERA
Nombre Estructura Descripcin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 283 AntesDeGuardarEfecto DespuesDeGuardarEfecto function( Operacion: string; Antes de guardar un efecto en Datos: Variant): boolean; stdcall; cartera procedure( Operacion: string; NumCartera: Double; NumVen: integer); stdcall; Despus de guardar un efecto en cartera

AntesDeGuardarRemesa

function( Operacion, Tipo: string; Antes de guardar una remesa Cabecera, Lineas: en cartera variant):boolean; stdcall; procedure( Operacion, Tipo: string; IdRemesa: Double); stdcall; Despus de guardar una remesa en cartera

DespuesDeGuardarRemesa

MAESTROS
Nombre Estructura Descripcin

AntesDeGuardarMaestro

function(Tabla: String; Datos: Variant): Boolean; stdcall

Antes de guardar cualquier fichero maestro Despues de guardar cualquier fichero maestro Antes de borrar cualquier fichero maestro Despus de borrar cualquier fichero maestro

DespuesDeGuardarMaestro procedure(Tabla: String; Datos: Variant); stdcall AntesDeBorrarMaestro function( Tabla: string; IdMaestro: Variant): boolean; stdcall; procedure( Tabla: string; IdMaestro: Variant); stdcall;

DespuesDeBorrarMaestro

APUNTES
Nombre Estructura Descripcin

AntesDeGuardarApunte

function( Apunte: variant):boolean; stdcall; function( IdAsiento: Double; Asiento: variant):boolean; stdcall;

Antes de guardar linea de un asiento Antes de guardar el asiento completo.

AntesDeGuardarAsiento:

DespuesDeGuardarAsiento: procedure( IdAsiento: Double; Asiento: variant); stdcall;

Antes de guardar el asiento completo

PRODUCCION
Nombre Estructura Descripcin

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 284 OrdenNuevoComponente function( Linea: variant; Cabecera: variant): variant; stdcall; function( Linea: variant; Cabecera: variant): variant; stdcall; function( Linea: variant; Cabecera: variant): variant; stdcall; function( Linea: variant; Cabecera: variant): variant; stdcall; Cuando se da de alta un nuevo componente en la orden de produccin Cuando se da de alta un nuevo producto (artculo), en la orden de produccin Cuando se da de alta un nuevo operario en la orden de produccin Cuando se da de alta una nueva mquina en la orden de produccin

OrdenNuevoProducto

OrdenNuevoOperario

OrdenNuevaMaquina

LISTADOS
Nombre Estructura Descripcin

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 aadir opciones de men que llamen a una DLL. Debemos diferenciar entre dos tipos de DLLs: DLLs win32 DLLs ActiveX

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 285

LLAMANDO A UNA DLL WIN32


Vamos a ver como se hara: Lo primero seria generar nuestro propio men con la opcin que queremos aadir. Consultar el captulo Personalizar Mens Este es un ejemplo tpico:

Como se ve, en la propiedad PROGRAMA debe ir indicada tanto la DLL, como el mtodo publicado al que queremos que llame esa opcin. En el ejemplo la DLL se llama TestDLL y el mtodo al que llamamos es EjemploPantalla. Hay que notar que para separar la DLL del mtodo usaremos el smbolo arroba (@). Para nuestro ejemplo copiamos la DLL en la misma ruta donde est el Nexus.exe y arrancamos el Nexus. Nos aparecer la nueva categora Llamadas a DLLs que contiene una opcin que se llama Llamar a una DLL win32. Fjate que NO HAY que insertar ningn registro en la tabla DLLs de Nexus.

LLAMANDO A UNA DLL ACTIVEX


Vamos a ver como se hara: Como en el caso de las DLLs de tipo WIN32 hay que generar nuestro propio men (o usar uno ya creado).

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 286

En este caso lo nico que cambia es que en la propiedad PROGRAMA, se debe estructurar la llamada de la siguiente manera: @ClaseDelActiveX@ProcedimientoQueSePasaraComoParametro En el caso de los ActiveX es necesario saber que Nexus SIEMPRE invocar el mtodo Opcion (que debemos haber implementado y exportado nosotros en nuestro ActiveX) y que somos nosotros quienes mediante comparaciones deberemos llamar a un mtodo u otro segn el parmetro que nos llegue.
EJEMPLO EN C# DE ESTE MTODO

//Mtodo para llamar a otras opciones desde el men o desde programas externos //En caso de llamarse la opcin desde programas externos se rellenar el segundo parmetro //con la clave del mantenimiento asociado public void Opcion(string IdOpcion, string parmetro) { if (IdOpcion.ToUpper() == " EJEMPLOPANTALLA ") MessageBox.Show("se ha llamado a la pantalla"); else if (IdOpcion.ToUpper() == "MICLIENTE") MessageBox.Show(parmetro); } Otra cosa ms 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.

PARMETROS EN PROGRAMA EXTERNOS


Seleccionar a Configuracin Datos generales Preferencias. En esta pantalla activar la casilla de Activar programas externos. En este momento tendremos una nueva opcin en el men Herramientas Mantenimiento de programas externos.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 287

En el caso de que tengamos activada la opcin de programas externos desde los datos generales, ser en el mantenimiento de programas externos donde definiremos que parmetros se van a pasar. Veamos un ejemplo:

Si nos fijamos se ha puesto el ejecutable y los parmetros en la misma lnea separados por un espacio. En los programas externos es donde tiene sentido el parmetro :DEFECTO Por qu? Si nosotros definimos en Artculos una llamada a un ejecutable y no indicamos ningn parmetro Nexus por defecto pasar el cdigo del maestro (codcli en el caso de artculos). Pero cuando pasamos un parmetro al ejecutable, Nexus no sabe en que posicin queremos que pase el valor del parmetro del cdigo 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 posicin. Por lo tanto, si aadimos un parmetro y no ponemos el :DEFECTO, Nexus deja de pasar el cdigo del maestro.

SIGNIFICADO DE CADA PARMETRO


DEFECTO: Es el valor del maestro que se pasa de forma automtica cuando no hay parmetros. TIPOCONTABLE: Es el tipo contable actual. CARPETA: Contiene la ruta donde est instalado nexus. EMPRESA: Contiene el nombre de la empresa desde la que se llama. USUARIO: Contiene el usuario logado que llama al programa externo. PASSWORD: Contiene el password ENCRIPTADO del usuario logado.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 288 USUARIOANALYTICS: Contiene el valor de la propiedad Perfil en la opcin de seguridad para las opciones de Nexus Analytics.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 289

PARMETROS EN EJECUTABLES EXTERNOS


INTRODUCCIN
En la versin 8 de Nexus se ha aadido la posibilidad de aadir parmetros 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 parmetros. Lo primero que nos interesa es Qu parmetros puedo pasarle a mi aplicacin? Se han implementado los siguientes parmetros: DEFECTO TIPOCONTABLE CARPETA EMPRESA USUARIO PASSWORD USUARIOANALYTICS Todos los parmetros a excepcin del DEFECTO son aplicables a cualquier men que diseemos en Nexus V8 tanto en formato V7 como en formato V8. El parmetro DEFECTO es especfico de los programas externos. La forma de llamar a un ejecutable pasndole estos parmetros debe tener la siguiente sintaxis: Miprograma.exe parametros1 parametro2 parametro3 Hay que tener en cuenta tambin que los parmetros 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 parmetros: Llamadas desde el men Llamadas desde programas externos

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 290

LLAMADA DESDE EL MEN


FORMATO V7
En el caso de los mens en formato V7 veamos un ejemplo de llamada a un programa externo usando parmetros:
<ROW Nombre="TestParams" Descripcion="" Imagen="" Comando="WinParamCount2010.exe :usuario :password :empresa :carpeta :tipocontable" Categoria="GESTION"/>

FORMATO V8
En el caso de los mens en formato V8 veamos un ejemplo de llamada a un programa externo usando parmetros:
<OPCION Titulo="Aplicacin para testear el pase de parmetros" Imagen="Imgenes/iconos/IMG_ESTADISTICAS.BMP" Externa="T" Id="Externo" Programa="WinParamCount2010.exe" Parametros=":Usuario :Password :Empresa :Carpeta :tipocontable" IdOrd="130020"></OPCION>

En este caso los parmetros se ponen en la variable Parmetros.

LLAMADAS A PROGRAMAS EXTERNOS


En el caso de que tengamos activada la opcin de programas externos desde los datos generales, ser en el mantenimiento de programas externos donde definiremos que parmetros 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 parmetros en la misma lnea separados por un espacio.

SIGNIFICADO DE CADA PARMETRO


Veamos el significado de cada uno de los parmetros: DEFECTO: Es el valor del maestro que se pasa de forma automtica cuando no hay parmetros. 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 opcin de seguridad para las opciones de Nexus Analytics.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 291 Podemos configurar tantos parmetros y en el orden, como se desee, luego, programar en nuestra aplicacin, para pasar los parmetros y en ese mismo orden. Parmetros En los programas externos es donde tiene sentido el parmetro :DEFECTO Por qu? Si nosotros definimos en Artculos una llamada a un ejecutable y no indicamos ningn parmetro Nexus por defecto pasar el cdigo del maestro.

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 293 CREACIN DE UNA TABLA NUEVA 10 CREACIN DEL FICHERO DE MEN 31 CREACIN, MODIFICACIN 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

NDICE
_

__CLIENTES 24

QU ES NAX (NEXUS ACTIVEX)? 37


A

ACTIVACIN DEL DICCIONARIO 25 ACTIVACIN Y DISEO DEL DICCIONARIO 25 AADIR SELECCIONES DE NUESTRAS TABLAS 22 APLICACIN 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

DATOS GENERALES DE NUESTRA LIBRERA 9 DICCIONARIO 1 DICCIONARIO EN INSTALACIN CLIENTE 6 DICCIONARIO NEXUS 6 DIRECTORIO PRINCIPAL DE NEXUS 3 DISEO DE LAS PESTAAS ADICIONALES 26 DLL 1 DOCUMENTOS 55, 281 DOS FORMAS DE TRABAJAR CON ASIENTOS 59
E

BARRAS DE MENS 35
C

CAMBIO DE NOMBRE DE LAS PESTAAS ADICIONALES 26 CARTERA 61, 282 CASO ESPECIAL TABLA CLIENTES 24 CLAVES FORNEAS 15 CLIENTES 24 COBRO/ANULACIN PARCIAL DE REMESAS 67 COLUMNAS 11 COMO LLAMAR A UNA DLL DESDE MIMENU.MENU (V2.0) 284 CONFIGURACIN NEXUS 5 CONSULTAS SEGN CRITERIOS DE NEXUS 49 CREACIN DE CAMPOS EN TABLAS YA EXISTENTES 21 CREACIN DE NDICES 14 CREACIN DE LOS NDICES 20 CREACIN DE TABLAS NUEVAS 19

EJEMPLO 1: CONSULTAS SEGN LOS CRITERIOS DE NEXUS. 50 EJEMPLO 1: EJEMPLO COMO MODIFICAR UN VENCIMIENTO Y AADIR UN NUEVO VENCIMIENTO EN CARTERA 62 EJEMPLO 1: LLAMADA A LA PANTALLA DE FILTROS 65 EJEMPLO 1: MANTENIMIENTO DE CLIENTES SIN PARMETROS 45 EJEMPLO 1: MOVIMIENTOS EN STOCK EXTERNOS 64 EJEMPLO 1: PRESENTACIN PRELIMINAR DEL LISTADO DE CLIENTES EN DELPHI 47 EJEMPLO 1: UTILIZACIN COBRO PARCIAL DE REMESAS 67 EJEMPLO 1: UTILIZACIN GENRICA DEL OBJETO EXPEDIENTES 66 EJEMPLO 2: EDICIN DE LA FICHA CON PARMETOS 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: UTILIZACIN DE ANULAR COBRO PARCIAL DE REMESAS 67

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 294 EJEMPLO 3: PRESENTACIN 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 MTODO 286 EJEMPLO EN DELPHI DE LA CREACIN 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 (CONEXIN) 42 ESTRUCTURA DE LA APLICACIN 3 ESTRUCTURA XML 32 EVENTOS 281 EXCEPCIONES 53 EXPEDIENTE 66
F L

LAS CLAVES FORNEAS 52 LICENCIAS NAX RUNTIME / NEXUS 39 LISTADO (IMPRESIN 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 MTODOS Y FUNCIONES DEL ENLACE 42 MODIFICAR REGISTROS EXISTENTES 54
N

FILTRO 65 FORMATO V7 290 FORMATO V8 290


G

NAVBAR 36 NAX 1 NECESIDADES DE NAX PARA CONECTARSE A UNA EMPRESA EN UNA ESTACIN 42 NORMATIVA EN LA CREACIN DE LIBRERAS 6 NUEVO DICCIONARIO PASO A PASO 17 NVITEM 36 NVITEMS 36
O

GENERAL 8 GESTIN DE PROYECTOS 17 GRUPO 34


I

IMGENES 36 INICIAR UN ENLACE (OPCIN A) 43 INICIAR UN ENLACE (OPCIN B) 43 INSTALACIN 281 INSTALACIN DE NAX 39 INSTALACIN DEL DICCIONARIO 7 INTEGRIDAD 17 INTRODUCCIN 1, 3, 31, 69, 281, 289 ITEM 34

OBJETO AGRUPACION 228 OBJETO ALBARAN 105 OBJETO ANULARCOBROPARCIALREMESA 279 OBJETO ASIENTO 199 OBJETO CARTERA 205 OBJETO COBROPARCIALREMESA 277 OBJETO CUOTAS 274 OBJETO DEPSITO 135 OBJETO ENLACE 70 OBJETO ESTRUCTURA 242 OBJETO EXPEDIENTES 267 OBJETO FACTURA 89 OBJETO INVENTARIO 180 OBJETO LISTADO 239 OBJETO MAESTRO 80 OBJETO MOVIMIENTOSTOCK 188

NEXUS SOFTWARE NEXUS PARA PROGRAMADORES 295 OBJETO OFERTA 150 OBJETO OPCION 239 OBJETO OPERACIONESCARTERA 213 OBJETO OPERACIONESINMOVILIZADO 234 OBJETO ORDENPRODUCCION 247 OBJETO PEDIDO 120 OBJETO PRESUPUESTO 236 OBJETO REGULARIZACION 163 OBJETO REMESA 231 OBJETO RESERVASTOCK 194 OBJETO SELECCION 88 OBJETO TRASPASO 171 OBJETO VARIOS 74 OPCION 34 OPCION (LLAMADA A OPCIONES VISUALES) 45 OPERACIONES MS IMPORTANTES 53 ORGANIZACIN DE NAX 40 OTRAS RELACIONES 17
P

TRASLADO, ELIMINACIN DEL DICCIONARIO 27


U

UBICACIN DE LAS DEFINICIONES DE LISTADOS Y DOCUMENTOS 5 USAR MAYSCULAS 6 USAR PREFIJOS 6 UTILIDADES 8
V

VARIOS (CONSULTAS) 49 VARIOS DICCIONARIOS 6 VER NUESTRAS TABLAS 22

PARMETROS EN PROGRAMA EXTERNOS 286 PRODUCCION 283


Q

QUE ES XML 31
R

REALIZAR OPERACIONES CON VENCIMIENTOS EXISTENTES 63 RECORRER REGISTROS DE UN MAESTRO 54 RELACIN DE OBJETOS DE NAX 40 REQUISITOS TCNICOS PREVIOS A LA INSTALACIN 7
S

SELECCIN DE PROYECTOS EN FACTURAS 23 SELECCIN RESPONSABLES EN PROYECTOS 24 SEPARADOR 34, 36 SIGNIFICADO DE CADA PARMETRO 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

Das könnte Ihnen auch gefallen