MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 06/07/11, 16:38:45
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
FIELD SYMBOLS para TRATAMIENTO DE MESES

Apreciado DCEric,

tengo un programa que inserta valores en una tabla z en una serie de campos.
Para ello he montado un perform.
El problema se produce cuando hay un campo de tipo coste que según el mes de una fecha va cambiando.

Por ejemplo,

para fecha de enero cogemos el campo wkg001

febrero......wkg002 y así sucesivamente.

Que pasa entonces? Que en lugar de un perform qu inserta campos, tengo que hacer 12 PERFORMS por culpa del dichoso campito.

Se que con field-symbols podría arreglarlo....UN SALUDO
Responder Con Cita
  #2  
Viejo 06/07/11, 16:52:42
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Es algo así por lo que te entiendo:

FIELD-SYMBOLS: <mes>.
Data: lv_campo type string.

CONCATENATE 'ti_tabla-wkg0' sy-datum+5(02) INTO lv_campo.
ASSIGN (lv_campo) TO <mes>.

Ya con eso tienes direccionado <mes> al campo wkg0+mes (wkg001..wkg012) del work area (cabecera) de la tabla interna y ya puedes asignarle o coger el valor de dicho campo.
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #3  
Viejo 06/07/11, 17:04:04
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
graciasss

Eric lo probaré a ver que pasa,

muy agradecido!
Responder Con Cita
  #4  
Viejo 15/07/11, 13:03:13
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
field-symbols sin resolver

Hola Eric,

aún no he resuelto esto, te paso una parte del código para que veas lo que quiero ahorrar. El form de enero funciona con el campo wkg001, el de febrero sería con wkg002 y así sucesivamente.
Cómo tendría que hacerlo con field-symbols ?

UN SALUDO Y GRACIAS DE ANTEMANO

Ivo



FORM fecha_mes .

* CLEAR p_mes.

* p_mes = ls_caufv-gltrp+4(2).

* CASE p_mes.
* WHEN c_enero.
* PERFORM enero.

* WHEN c_febrero.
* PERFORM febrero.

* WHEN c_marzo.
* PERFORM marzo.

* WHEN c_abril.
* PERFORM abril.

* WHEN c_mayo.
* PERFORM mayo.

* WHEN c_junio.
* PERFORM junio.

* WHEN c_julio.
* PERFORM julio.

* WHEN c_agosto.
* PERFORM agosto.

* WHEN c_septiembre.
* PERFORM septiembre.

* WHEN c_octubre.
* PERFORM octubre.

* WHEN c_noviembre.
* PERFORM noviembre.

* WHEN c_diciembre.
* PERFORM diciembre.

* WHEN OTHERS.

* ENDCASE.


*FORM enero .
*
*
** * HOURS COST:
* CLEAR v_hour_cost1.
* SELECT SINGLE wkg001 FROM coss INTO v_hour_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'RKL'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-hrr_cst.
* ls_final1-hrr_cst = v_hour_cost1.
* ENDIF.
*
** *Hours planed cost
**A
* CLEAR v_hour_pl_cost1.
* SELECT SINGLE wkg001 FROM coss INTO v_hour_pl_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'KPPS'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-hrp_vst.
*
* ls_final1-hrp_vst = v_hour_pl_cost1.
* ENDIF.
*
*
* CLEAR v_ext_serv_cost1.
**External service cost c
* SELECT SINGLE wkg001 FROM cosp INTO v_ext_serv_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'COIN'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-exr_cst.
*
* ls_final1-exr_cst = v_ext_serv_cost1.
*
* ENDIF.
*
*
**Service planed cost
* CLEAR v_serv_pla_cost1.
* SELECT SINGLE wkg001 FROM cosp INTO v_serv_pla_cost1
* WHERE objnr = ls_caufv-objnr
* AND vrgng = 'KPPP'.
*
* IF sy-subrc = 0.
* CLEAR ls_final1-exp_cst.
*
* ls_final1-exp_cst = v_serv_pla_cost1.
*
* ENDIF.
*
*
*ENDFORM. " ENERO
Responder Con Cita
  #5  
Viejo 15/07/11, 13:44:07
Avatar de DCErick
DCErick DCErick is offline
Moderator
 
Fecha de Ingreso: mar 2006
Localización: Monterrey
Mensajes: 1,090
Pues creo que sería:
__________________
-------------------
¿Dudas para descargar manuales? Ver este tema ->
Responder Con Cita
  #6  
Viejo 19/07/11, 15:07:06
budista1 budista1 is offline
Senior Member
 
Fecha de Ingreso: sep 2010
Mensajes: 154
Unhappy Casi Me Funciona

Hola Eric,

muy bien lo del select single, ya veo que compila ,en cambio aquí no compila!
que pena! casi lo tenía!!

En (lv_campo) = l_wa-wkg016 dice que

lv_campo es desconocido.


Te paso el código, GRACIAS:


DATA lv_campo TYPE STRING.

p_mes = l_wa-gstrp+4(2).

CONCATENATE 'wkg0' l_wa-gstrp+4(2) INTO lv_campo.


UPDATE cosp CLIENT SPECIFIED SET (lv_campo) = l_wa-wkg016 muv001 = 'X' WHERE mandt = '001'
Responder Con Cita
  #7  
Viejo 20/07/11, 07:11:55
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
Podrías probar a mandar toda la parte del set en variable. Es decir, no sólo el campo, si no el campo más el valor.

CONCATENATE 'wkg0' l_wa-gstrp+4(2) ' = ' l_wa-wkg016 ' muv001 = ''X'' '
INTO lv_campo.


UPDATE cosp CLIENT SPECIFIED SET (lv_campo) WHERE mandt = '001'

Un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:31:53.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web