09-07-2014 2:06 PM
hi guys,
I have created a search help using fm f4if_int_table_value_request,my value table contains several fields including vbeln. When i am selecting a record the return table is capturing the last column of the record but i want to select the vbeln which is in the first column.
Plz help...
09-07-2014 2:18 PM
Hi,
Use the "where used" in SE37 and try to locate some sample code.
Regards.
09-07-2014 2:18 PM
09-08-2014 10:41 AM
MODULE F4_ON_VALUE_REQUEST INPUT.
TYPES : BEGIN OF TYP,
G_VBELN TYPE VBELN,
FKDAT TYPE ZCHEQUEIT-FKDAT,
BASEAMNT TYPE ZCHEQUEIT-AGRV,
SERVTAX TYPE ZCHEQUEIT-SERVT,
BALAMNT TYPE ZCHEQUEIT-BALA,
END OF TYP.
DATA : IT_VAL TYPE TABLE OF TYP,
WA_VAL TYPE TYP,
IT_RET TYPE TABLE OF DDSHRETVAL,
WA_RET TYPE DDSHRETVAL,
IT_DYN TYPE TABLE OF DYNPREAD,
WA_DYN TYPE DYNPREAD,
IT_FIELDTAB TYPE TABLE OF DSELC,
WA_FIELDTAB TYPE DSELC,
LV_VKORG TYPE VKORG,
LV_KUNNR TYPE KUNNR,
INDEX TYPE SY-INDEX.
TYPES : BEGIN OF TY_VBRK,
VBELN TYPE VBRK-VBELN,
KNUMV TYPE VBRK-KNUMV,
FKDAT TYPE VBRK-FKDAT,
NETWR TYPE VBRK-NETWR,
END OF TY_VBRK.
TYPES : BEGIN OF TY_KONV,
KNUMV TYPE KONV-KNUMV,
KSCHL TYPE KONV-KSCHL,
KWERT TYPE KONV-KWERT,
END OF TY_KONV.
DATA : IT_VBRK TYPE STANDARD TABLE OF TY_VBRK,
WA_VBRK TYPE TY_VBRK,
IT_KONV TYPE STANDARD TABLE OF TY_KONV,
WA_KONV TYPE TY_KONV,
G_BASEAMNT TYPE KWERT,
G_SERVTAX TYPE KWERT.
*
MOVE 'VKORG' TO WA_DYN-FIELDNAME.
APPEND WA_DYN TO IT_DYN.
MOVE 'KUNNR' TO WA_DYN-FIELDNAME.
APPEND WA_DYN TO IT_DYN.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
DYNAME = SY-REPID
DYNUMB = SY-DYNNR
*
TABLES
DYNPFIELDS = IT_DYN
*
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
*
CLEAR WA_DYN.
READ TABLE IT_DYN INTO WA_DYN WITH KEY FIELDNAME = 'VKORG' .
LV_VKORG = WA_DYN-FIELDVALUE .
READ TABLE IT_DYN INTO WA_DYN WITH KEY FIELDNAME = 'KUNNR' .
LV_KUNNR = WA_DYN-FIELDVALUE.
*
SELECT XBLNR FROM BSID INTO TABLE IT_VAL WHERE
BUKRS = LV_VKORG AND KUNNR = LV_KUNNR AND BLART = 'RV'."
*
SELECT VBELN KNUMV FKDAT NETWR FROM VBRK INTO TABLE IT_VBRK
FOR ALL ENTRIES IN IT_VAL WHERE VBELN = IT_VAL-G_VBELN.
SELECT KNUMV KSCHL KWERT FROM KONV INTO TABLE IT_KONV
FOR ALL ENTRIES IN IT_VBRK WHERE KNUMV = IT_VBRK-KNUMV.
CLEAR : WA_KONV.
LOOP AT IT_VAL INTO WA_VAL.
READ TABLE IT_VBRK INTO WA_VBRK WITH KEY VBELN = WA_VAL-G_VBELN.
IF SY-SUBRC = 0.
WA_VAL-FKDAT = WA_VBRK-FKDAT.
WA_VAL-BALAMNT = WA_VBRK-NETWR.
ENDIF.
LOOP AT IT_KONV INTO WA_KONV WHERE KNUMV = WA_VBRK-KNUMV.
IF WA_KONV-KSCHL = 'ZAGV'.
WA_VAL-BASEAMNT = WA_VAL-BASEAMNT + WA_KONV-KWERT.
ELSEIF WA_KONV-KSCHL = 'JSRT' OR WA_KONV-KSCHL = 'JEC3' OR WA_KONV-KSCHL = 'JES3'.
WA_VAL-SERVTAX = WA_VAL-SERVTAX + WA_KONV-KWERT.
ENDIF.
ENDLOOP.
MODIFY IT_VAL FROM WA_VAL TRANSPORTING FKDAT BALAMNT. "BASEAMNT SERVTAX
CLEAR : WA_KONV,WA_VBRK,WA_VAL.
ENDLOOP.
*
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = 'TYP'
RETFIELD = 'VBELN'
* PVALKEY = ' '
DYNPPROG = SY-REPID
DYNPNR = SY-DYNNR
DYNPROFIELD = 'Invoice No.'
* DYNPROFIELD = 'WA_ZCHEQUEIT-VBELN'
*
VALUE_ORG = 'S'
TABLES
VALUE_TAB = IT_VAL
* FIELD_TAB = IT_FIELDTAB
RETURN_TAB = IT_RET
* DYNPFLD_MAPPING = it_fieldtab.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CLEAR : WA_DYN,LV_VKORG,LV_KUNNR.
REFRESH : IT_DYN,IT_VAL,IT_RET.
ENDMODULE. " F4_ON_VALUE_REQUEST INPUT
09-08-2014 10:56 AM
Hi,
Check DYNPROFIELD = 'Invoice No.',
Here In place of 'Invoice No' Pass Screen element Name
09-07-2014 6:41 PM
09-08-2014 11:39 AM
Hi,
The code is also update the output fields.
SCARR is global .
Screen: Attached
Some code:
364. *----------------------------------------------------------------------*
365. MODULE f4_carrid_1 INPUT.
366. PERFORM f4_carrid_1 .
367. ENDMODULE. "f4_carrid_1 INPUT
368. *----------------------------------------------------------------------*
369. FORM f4_carrid_1 .
370.
371. DATA: it_value TYPE TABLE OF scarr .
372.
373. SELECT * INTO TABLE it_value FROM scarr .
374.
375. DATA: it_return TYPE TABLE OF ddshretval .
376.
377. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
378. EXPORTING
379. retfield = 'CARRID'
380. value_org = 'S'
381. TABLES
382. value_tab = it_value
383. return_tab = it_return
384. EXCEPTIONS
385. parameter_error = 1
386. no_values_found = 2
387. OTHERS = 3.
388.
389. FIELD-SYMBOLS: <st_return> LIKE LINE OF it_return .
390.
391. READ TABLE it_return ASSIGNING <st_return> INDEX 1 .
392.
393. CHECK sy-subrc EQ 0 .
394.
395. scarr-carrid = <st_return>-fieldval .
396.
397. FIELD-SYMBOLS: <st_value> LIKE LINE OF it_value .
398.
399. READ TABLE it_value ASSIGNING <st_value>
400. WITH KEY
401. carrid = scarr-carrid .
402.
403. DATA: it_dynfields TYPE TABLE OF dynpread .
404. DATA: st_dynfields LIKE LINE OF it_dynfields .
405. FIELD-SYMBOLS: <st_dynfields> LIKE LINE OF it_dynfields .
406.
407. st_dynfields-fieldname = 'SCARR-CARRNAME'.
408. st_dynfields-fieldvalue = <st_value>-carrname .
409. APPEND st_dynfields TO it_dynfields.
410. st_dynfields-fieldname = 'SCARR-CURRCODE'.
411. st_dynfields-fieldvalue = <st_value>-currcode .
412. APPEND st_dynfields TO it_dynfields.
413.
414. CALL FUNCTION 'DYNP_VALUES_UPDATE'
415. EXPORTING
416. dyname = sy-cprog
417. dynumb = sy-dynnr
418. TABLES
419. dynpfields = it_dynfields
420. EXCEPTIONS
421. invalid_abapworkarea = 1
422. invalid_dynprofield = 2
423. invalid_dynproname = 3
424. invalid_dynpronummer = 4
425. invalid_request = 5
426. no_fielddescription = 6
427. undefind_error = 7
428. OTHERS = 8.
429.
430. ENDFORM. "F4_CARRID
Regards.