PDA

Ver la Versión Completa : campos calculados en Queries


raladro
06/03/07, 06:18:53
¿Es posible añadir campos a una Querie, pero que permita calcular a partir de otros campos?

Por ejemplo, tipico multiplicar stock por coste...

... y mucho mas interesante aun, añadir una cadena de caracteres a un campo de caracteres, para obtener uno mas "complejo"...

A ver si hay suerte....


Salu2

carmenh
06/03/07, 07:14:53
Hola Raladro

Para añadir campos en una query se pueden usar dos modos.
Campo adicional: tienes que incorporarlo en el infoset. Para añadirlo tienes que hacer igual que cuando añades una tabla.
Una vez que le hayas dado un nombre , te pedira que rellenes el codigo cabecera y en "REFERENCIA LIKE" pones un campo cualquiera pero de las mismas caracteristicas ( Si quiere un numerico o quieres text...)
Una vez que lo hayas creado marcas el campo y pulsas el boton "coding p. suplem". Alli tienes que introducir el pequeño programita para que le de valor a tu campo. Si simplemete quieres multiplicar el valor de 2 campor pones una fomula . Si nuestro campo adicional lo hemos denominado AA. Y queremos multiplicar dos campos

AA = campo1 * campo2 .
Esta seria muy sencillita, pero pueden ser realmente complejas.

Una vez que hayas creado tu campo adicional, debes incluirlo en un grupo de campos.

Sales del menu de querys y vuelves a entrar. Ya tendras disponoble el nuevo campo para añadirlo a tu query.

Campo Local. En este caso añades el campo solo en la query.
Entra a modificar la query y en la primera pantalla , donde incluyes titulo y formato, vas al menu Pasar a // Seleccion de campo // Seleccion de campos
Tienes que tener activas las denominaciones breves. Tratar // Denominaciones breves.
Te apareceran unos campos a la derecha. Tienes que dar nombre a los campos que vayas a utilizar para calcular tus campos locales.
Por ejemplo vamos a hacer que los importes al debe aparezcan en una columna y los importes al haber en otra.
Para ella damos nombre al indicador debe/haber y al importe en moneda local.
Al primero le llamamos SIGNO y el segundo IMPORTE.
Para crear nuestro campo local: Menu Tratar // campo local // crear
a nuestra primer campo lo llamaremos DEBE y al segundo HABER.

Creamos el primero DEBE ( yo incluyo el mismo nombre en los datos de cabecera, denominacion de campo...)
Propiedades. puedes decir que sea un campo de texto, de fecha, de tiempo... o que tenga las mismas propiedades que uno de los campos que hemos señalado antes. En este caso cojo la opcion Propiedades igual que campo
y en el campo escojo el IMPORTE.

Fórmula para el cálculo

Señalo la primera opcion y pongo directamente IMPORTE y en la condición pongo SIGNO = 'S'
y ya lo tengo creado.

Creo el otro campo local como HABER. Todo igual excepotyo la condicion que sera SIGNO = 'H'

Cuando vas a modificar la lista de tu query ya tendras disponibles estos dos campo.

Puedes calcular distintas cosas tanto con el campo local como con los campos adicionales.
Yo suelo utilizar los campos adicionales porque no he encontrado infomacion sobre los campos locales y muchas veces no se como hacer calculos por esta opción. En cambio con los campos adicionales, teniendo pequeños conocimientos de ABAP , puedes hacer busquedas y calcular campos mas complejos.

Si quieres mas informacion avisame

Carmen

natik
14/06/07, 12:20:49
:confused: Estoy intentando crear un campo en un infoset, pero no encuentro donde ... En qué lugar defino el nuevo campo?

Sereniv
14/06/07, 17:09:49
Buenas!
Dentro de infoset, vas a la pestaña "Extras", le das al icono de "Nuevo", y ahí te pide introducir los datos de este nuevo campo (longitud, tipo, nombre...). Se te crea una nueva rama en los data fields, que es la de campos adicionales.
Para meterle código, estando en "Extras", pones el cursor sobre el campo que quieras, y le das al botón "coding for addition" al lado del de sequence. y ahí metes las sentencias que necesites.
Sorry por poner cosas en inglés, es que tengo así SAP.
Espero que te sirva de ayuda. un saludo!

Esilva
07/07/09, 16:43:29
Hola, tengo un infoset con unicamente tablas de de SALES ORDER (VBAK-VABP-VBEP-VBUK) y necesito vincularlo con los datos de facturacion. Actualmente tengo un campo adicional que me referencia la factura a traves del document flow (VBFA como documento precedente el Delivery) pero me causa problemas a nivel posicion al momento de correr mi query:siempre me considera la misma factura para todas las posiciones, esten o no facturadas, (esto obvio porque el documento subsecuente de la orden es un solo delivery).
Existe alguna otra manera de vincular a nivel posicion la orden con la factura agregando un campos adicional? No quisiera agregar LIPS al infoset ya que esto alentaria en demasia el performance del reporte