PDA

Ver la Versión Completa : Sumar campo MSEG MENGE


javico40
16/11/11, 11:50:16
Hola, muchas gracias por toda la ayuda que me han dado, mi pregunta es la siguiente, me pidieron sacar la sumatoria de la cantidad y monto de los movimientos, esto sale de MSEG menge y dmbtr, ocurre que menge solo tiene valores positivos, me explicarion que sap define el negativo por el tipo de movimiento bwart, entonces 501 es positivo y 502 es negativo, ahora entendido eso hice mi codigo en el cual capturo el codigo del movimiento, evaluo que tipo de movimiento es, y acumulo o decremento su cantidad dependiendo del tipo de movimiento, el problema es que me dice que menge es tipo P y no se puede tener acceso por subfield, no se que significa eso, existe otra forma de sacar el quantity restando y sumando sin hacer esto, muchas gracias.



movement = wa_matissue-bwart.

IF movement EQ ''.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '201'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '202'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '261'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '262'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '281'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ELSEIF movement EQ '282'.
wa_outtab-menge2 = wa_matissue-menge.
wa_outtab-dmbtr2 = wa_matissue-dmbtr.
ENDIF.

DCErick
16/11/11, 13:27:05
El tipo de movimiento no define el signo, lo que define el signo es el campo SHKZG.

Como te lo expliqué en tu otro post:

En el campo SHKZG 'Indicador debe/haber' controla el signo del movimiento y con ayuda de este puedes hacer tus tus restas/sumas, este campo toma los valores de S y H (S - Cargo, H - Abono) (S - Positivo, H - Negativo)


Ejemplo: Si tu haces un movimiento de mercancia con clave 301 (Traspaso entre centros), este te genera nos registros uno para centro emisor y otro para centro receptor. Ambos registros tienen la misma clave de movimeinto 301, en el centro emisor el importe es negativo puesto que es una salida de material y en el centro receptor es positivo puesto que es una entrada de material. Sap lo que hace en sus reportes es ver el campo 'Indicador debe/haber' y si tiene 'H' multiplica la cantidad por -1 para pasarlo a negativo antes de visualizarlo y adicionalmente en la mayoria de los reportes lo pinta con fondo rosa o rojo.

javico40
16/11/11, 18:03:46
DCErick lo resolvi de una forma bien loca sumando y restando y usando el bwart. muchas gracias por tu respuesta.