PDA

Ver la Versión Completa : Cambiar el dato


tate
09/04/07, 14:04:15
Tengo un campo de una estructura de sap, el VBDPL-LFIMG, y bien:

Ese campo esta definido en la estructura como : typ: Quan, de longitud 13, y lo que me pasa esque al hacer esto:

tvdpl-netwr = v_kbetr * tvbdpl-lfimg.

el campo tvbdpl-lfimg me vale 5000.00(vamos cincomil) y yo kiero que valga 5 que es el numero de unidades de ese factura que realizo.

Lo que he hecho ha sio dividir el total entre 1000, pero me parece mu cutr y por si habria alguna otra manera.
****mio cutre*******
tvdpl-netwr = v_kbetr * tvbdpl-lfimg.
tvdpl-netwr = tvdpl-netwr / 1000.

Espero haberme explicado bien.

Gracias.

abapedro
09/04/07, 20:59:32
Hola,

La estructura VBDPL "Vista posición documento albarán de entrega" contiene dos campos relacionados entre sí:

LFIMG "Cantidad entregada efectivamente en UMV"
VRKME "Unidad de medida de venta"

El segundo campo (VRKME) indica la unidad de medida en la cual está expresada la cantidad del primer campo.

Como dice la estructura, el campo de cantidad SIEMPRE es 13 cifras con 3 decimales.

Esto significa que las cantidades:

12345
1234.5
123.45
12.345
1.2345

Todas se almacenan en el campo así:

12.345

Lo que deternmina la posición real del punto (o coma) decimal es la propia unidad de medida.

La definición de la unidad de medida determina con cuantos decimales se trabaja dicha unidad de medida universalmente dentro del sistema (R/3). Por ejemplo:

LFMIG dice: 12.300

y la unidad especificada en VRKME dice que se trabaja con 2 decimales, entonces la cantidad real (como se presenta en cualquier dynpro) es: 123.00

si la unidad especificada en VRKME dijera que se trabaja con 1 decimal, entonces la cantidad real (como se presenta en cualquier dynpro) sería: 1230.0

Si observa la pestaña titulada "Campos de moneda/cantidad" que aparece al consultar la estructura por la SE11, verá que en el campo LFMIG se indica que el campo de referencia es VRKME.

En la tabla T006 está el catálogo de unidades de medida. El campo MSEHI es la unidad de medida (nombre código de 3 letras) y el campo ANDEC dice la cantidad de cifras decimales con que trabaja esa unidad.

Los nombres de las unidades de medida están en la tabla T006A (en los distintos idiomas que existan en el sistema).

Por ejemplo, la unidad "KG" (kilogramo) tiene "2" en el campo ANDEC en la T006. Esto significa que la cantidad real 345.2 se almacenaría en el campo LFMIG así: 34.520. La cantidad 345.0 se almacenaría así: 34.500, la cantidad
345.26 así: 34.526

Con base en toda esta explicación, la cantidad real se debe obtener basandose en la definción de la unidad de medida. No conozco una rutina de conversión que evite tener que consultar la T006 para determinar la posición real del punto decimal.

Espero que esto le sirva y en todo caso estoy a sus ordenes para cualquier consulta.