Sage50Reports - Cómo imprimir el contacto de un cliente o proveedor en documentos
Description

NOTA:

El contacto como tal no se asocia al documento y por tanto, debes tener en cuenta que de los diferentes tipos de contacto que existen en el mantenimiento tanto del cliente como del proveedor, puedes indicar qué campo en concreto deseas incluir en la impresión.

 

Cause
Resolution

Dentro del mantenimiento de un cliente o proveedor por ejemplo, existe la posibilidad de añadir diferentes tipos de contacto.

Uno de ellos será el predeterminado y que coincide con el indicado en la pestaña General, el resto podemos añadirlos en función de su cargo por ejemplo:


A la hora de realizar un documento de venta o compra, indicas un cliente o proveedor, pero no un contacto como tal.

  • En el caso de las Ventas, puedes indicar una dirección en la cabecera del documento, que asociará el nombre indicado en el campo 'Persona', en la pestaña "Otros datos", a la impresión del documento en su formato base en el apartado de contacto cliente:


Pero en el caso de los documentos de compra, o en el caso de querer imprimir el campo de contacto predeterminado o según cargo de algún cliente o proveedor, dicho campo no se incluye entre los valores predeterminados a la hora de acceder a la opción de Herramientas - Añadir expresión de la barra superior del editor de reports.

Por tanto, necesitarás añadir una función del modo explicado en la Ayuda Online de Sage 50, que llame a la base de datos donde se almacena la información y que también puedes consultar en el archivo relativo a la estructura de base de datos de Sage 50, disponible también en su correspondiente apartado de dicha Ayuda Online (Estructura DB de Sage 50)

Conociendo en ese caso que la base de datos es la de gestión, la tabla es la denominada CONTLF_CLI o CONTLF_PRO para los contactos de clientes o proveedores respectivamente, en ese mismo fichero verás también el campo necesario a mostrar, en este caso "Persona", y que existen campos también que identifican si se trata del contacto marcado como predeterminado así como el cargo.

De ese modo, puedes crear una expresión en el report del documento, por ejemplo en el diseño de la impresión de un documento de pedido de compra (en un ejemplo en el que nos interese dirigir ese pedido a una persona de contacto concreta, ya sea la predeterminada en el mantenimiento o según el cargo que tenga).

Accede al diseño del documento de pedido de compra y añade la expresión mediante la opción de Herramientas - Expresión o con la opción de la barra de botones para dibujar un recuadro en tu diseño y al soltar, se abrirá automáticamente el editor de expresiones:


En dicho apartado y con la información de la base de datos, de la tabla y los campos que necesitas conocer, la expresión que tendrías que añadir para mostrar en la impresión la persona de contacto marcada como predeterminada sería la siguiente:

ValorSQL("SELECT ori.Persona FROM GESTION!CONTLF_PRO as ori WHERE ori.PROVEEDOR = '" + PEDICOM.PROVEEDOR + "' AND ori.PREDET ='TRUE' ")


Donde seleccionas el campo Persona, de la base de datos GESTION y de la tabla CONTLF_PRO e indicas que el código de proveedor del pedido sea igual al código de proveedor de dicha tabla, para que en el caso de que existan varios contactos, sea el predterminado.

De ese modo, al realizar una Previa, Imprimir, Exportar o enviar por email con dicho formato o report de impresión, obtendrás el valor que puedes acompañar como siempre con un texto fijo:


En el caso de querer imprimir un contacto en función de su cargo, la expresión sería similar con la salvedad que no buscarías el que esté marcado como predeterminado, sino que escogerías el campo de todos los posibles que existan en esa lista de contactos, en función del campo Cargo.

Por tanto, la expresión podrías construirla del siguiente modo:

Imagina por ejemplo que quieres mostrar el nombre del contacto establecido con el cargo de 'Director' en la lista de contactos:

ValorSQL("SELECT ori.Persona FROM GESTION!CONTLF_PRO as ori WHERE ori.PROVEEDOR = '" + PEDICOM.PROVEEDOR + "' AND ori.CARGO ='DIRECTOR' ")


Lo acompañas igualmente de un texto fijo si lo deseas y de ese modo al obtener la impresión, previa, exportación o envío por email, tendrás el campo en la impresión:

Steps to duplicate
Related Solutions