Sie sind auf Seite 1von 35

SCREEN 100:

PROCESS BEFORE OUTPUT.


MODULE initilize_value. " Initilize value
MODULE custom_container. " Creatye custom container
MODULE screen_modify. " Modify Scren at run time
MODULE status_0100.
MODULE data_select . " For last entry on catagory type
MODULE set_data. " set data to screen
MODULE refresh_data. " refresh all data
*
PROCESS AFTER INPUT.
* MODULE CC_GET_DATA.

CHAIN.
FIELD:ztender-loc_type,
ztender-rec_type,
ztender-share_type,
ztender-cat_type1.
FIELD:ztender-cat_type.
FIELD:ztender-offer_no.
FIELD:ztender-offer_thru.
MODULE field_validation .
ENDCHAIN.

MODULE user_command_0100.
MODULE get_data. " GET DATA FROM TABLE ON : ZT02

PROCESS ON VALUE-REQUEST.
FIELD: ztender-enq_no MODULE enq_help . " Eng F4 help
FIELD: ztender-company_name MODULE cmp_help . " Cmp F4 Help

TOP:

*&---------------------------------------------------------------------*
*& Include ZTENDER_REPORT_TOP Module Pool ZTENDER_REPORT
*&
*&---------------------------------------------------------------------*

PROGRAM ztender_report.

TABLES: ztender .

TYPES: BEGIN OF ty_box1,


cat_type1 TYPE ztender-cat_type1,
cat_type TYPE ztender-cat_type,
offer_no TYPE ztender-offer_no,
END OF ty_box1,

BEGIN OF ty_enq_no,
cat_type1 TYPE ztender-cat_type1,
cat_type TYPE ztender-cat_type,
offer_no TYPE ztender-offer_no,
offer_thru TYPE ztender-offer_thru,
enq_no TYPE ztender-enq_no,
END OF ty_enq_no.

TYPES: BEGIN OF ty_line,


l_line TYPE c LENGTH 255,
END OF ty_line.

DATA: it_enq_no TYPE STANDARD TABLE OF ty_enq_no. "


DATA: wa_box1 TYPE ty_box1,
lv_ztender TYPE ztender .
DATA: no TYPE char10 ,
ok_code TYPE sy-ucomm .

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
**** TEXT EDITOR DECLARATION

DATA: r_dock_container TYPE REF TO cl_gui_custom_container.

DATA: g_editor1 TYPE REF TO cl_gui_textedit.


DATA: g_mytable(256) TYPE c OCCURS 0.
DATA: wa_g_mytable TYPE char256.
DATA: g_mytable1 TYPE STANDARD TABLE OF ty_line,
wa_g_mytable1 TYPE ty_line .
DATA: wa_tender TYPE ztender .

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
**** WRAPPING TEXT DECLARATION

DATA: l_string TYPE char1024.


DATA: it_line TYPE STANDARD TABLE OF ty_line ,
wa_line TYPE ty_line.
DATA: l_val TYPE c LENGTH 1 ,
count TYPE i VALUE 0,
strlen TYPE i.

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
*********** F4 HELP DECLARATION

DATA: it_return TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.

TYPES: BEGIN OF ty_cmpname,


cmp_name TYPE ztender-company_name,
cmp_cnt_per TYPE ztender-contact_per_name,
cmp_email TYPE vvemail,
cmp_add1 TYPE c LENGTH 40,
cmp_add2 TYPE c LENGTH 40,
cmp_post TYPE c LENGTH 30,
cmp_city TYPE c LENGTH 30,
cmp_state TYPE c LENGTH 30,
cmp_pin TYPE c LENGTH 7,
cmp_cntry TYPE c LENGTH 30,
cmp_web TYPE c LENGTH 75,
cmp_cnt_ph TYPE ofx_phone,
cmp_cnt_mob TYPE ad_mbnmbr1,
END OF ty_cmpname,

BEGIN OF ty_cmpf4,
cmp_name TYPE c LENGTH 90,
cmp_city TYPE c LENGTH 30,
cmp_pin TYPE c LENGTH 7,
END OF ty_cmpf4.

DATA: it_cmpname TYPE STANDARD TABLE OF ty_cmpname,


wa_cmpname TYPE ty_cmpname.

DATA: it_cmpf4 TYPE STANDARD TABLE OF ty_cmpf4,


wa_cmpf4 TYPE ty_cmpf4.

*INITIALIZATION.

*ztender-country = 'INDIA'.
*ztender-LOC_TYPE = 'DOMESTIC'.
*ztender-REC_TYPE = 'DIRECT'.
*ztender-SHARE_TYPE = 'ON-SHARE'.
*ztender-CAT_TYPE1 = 'INDIA'.
*ztender-country = 'INDIA'.
*ztender-country = 'INDIA'.

*&---------------------------------------------------------------------*
*& Include ZTENDER_REPORT_O01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ZTNDR_PF' .

CASE sy-tcode .
WHEN 'ZT01'.
SET TITLEBAR 'ZTNDR_TITLE'.
WHEN 'ZT02'.
SET TITLEBAR 'ZTNDR_TITLE_EDIT'.
ENDCASE.

ENDMODULE. " STATUS_0100 OUTPUT


*&---------------------------------------------------------------------*
*& Module DATA_SELECT OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE data_select OUTPUT.

CASE sy-tcode .

WHEN 'ZT01'.

lv_ztender = ztender .

IF sy-ucomm EQ 'FC1' OR sy-ucomm EQ 'FC2'.


CLEAR: wa_box1,ztender.

IF lv_ztender-cat_type1 EQ 'BUD' AND sy-ucomm EQ 'FC2'.

SELECT cat_type1
cat_type
offer_no
FROM ztender INTO wa_box1
UP TO 1 ROWS
WHERE cat_type1 EQ lv_ztender-cat_type1
ORDER BY offer_no DESCENDING.
ENDSELECT.
ELSEIF lv_ztender-cat_type1 NE 'BUD' AND sy-ucomm EQ 'FC1'.

SELECT cat_type1
cat_type
offer_no
FROM ztender INTO wa_box1
UP TO 1 ROWS
WHERE cat_type1 EQ lv_ztender-cat_type1 AND
cat_type EQ lv_ztender-cat_type
ORDER BY offer_no DESCENDING.
ENDSELECT.
ENDIF.

ztender = lv_ztender . " set data to screen HEADER line


ENDIF.

CASE sy-ucomm.

WHEN 'FC1'.

PERFORM last_no.
SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
CLEAR: ztender-offer_no, ztender-offer_thru .

WHEN 'FC2'.

IF ztender-cat_type1 EQ 'BUD'.

PERFORM last_no.
SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
CLEAR: ztender-offer_no, ztender-offer_thru.

ELSE.

SET CURSOR FIELD 'ZTENDER-CAT_TYPE'.


CLEAR: ztender-offer_no, ztender-offer_thru,ztender-cat_type .
ENDIF.
WHEN 'FC3'.

SET CURSOR FIELD 'ZTENDER-ENQ_NO'.


ENDCASE.

* IF ztender-cat_type1 EQ 'BUD' AND


* ztender-offer_no IS INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
*
* ELSEIF ztender-cat_type1 IS NOT INITIAL AND
* ztender-cat_type IS INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-CAT_TYPE'.
*
* ELSEIF ztender-cat_type1 IS NOT INITIAL AND
* ztender-cat_type IS NOT INITIAL AND
* ztender-offer_no IS INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
*
* ENDIF.
*
*
* IF ztender-cat_type IS NOT INITIAL AND
* ztender-offer_no IS INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
* ELSEIF ztender-cat_type IS NOT INITIAL AND
* ztender-offer_no IS NOT INITIAL AND
* ztender-offer_thru IS INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-OFFER_THRU'.
* ELSEIF ztender-cat_type IS NOT INITIAL AND
* ztender-offer_no IS NOT INITIAL AND
* ztender-offer_thru IS NOT INITIAL.
*
* SET CURSOR FIELD 'ZTENDER-ENQ_NO'.
* ENDIF.
*
* IF sy-ucomm EQ 'FC3'.
*
* SET CURSOR FIELD 'ZTENDER-ENQ_NO'.
* ENDIF.

WHEN 'ZT02'.

CASE sy-ucomm.
WHEN 'FC1'.
SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
WHEN 'FC2'.
IF ztender-cat_type1 EQ 'BUD'.
SET CURSOR FIELD 'ZTENDER-OFFER_NO'.
ELSE.
SET CURSOR FIELD 'ZTENDER-CAT_TYPE'.

ENDIF.

WHEN 'FC3'.
SET CURSOR FIELD 'ZTENDER-ENQ_NO'.
ENDCASE.
ENDCASE.
ENDMODULE. " DATA_SELECT OUTPUT
*&---------------------------------------------------------------------*
*& Module INITILIZE_VALUE OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE initilize_value OUTPUT.

IF sy-tcode EQ 'ZT01'.
IF ztender-country IS INITIAL.
ztender-country = 'INDIA'.
ENDIF.

IF ztender-loc_type IS INITIAL.
ztender-loc_type = 'DOMESTIC'.
ENDIF.

IF ztender-rec_type IS INITIAL.
ztender-rec_type = 'IN-DIRECT'.
ENDIF.
IF ztender-share_type IS INITIAL.
ztender-share_type = 'ON-SHORE'.
ENDIF.

SET CURSOR FIELD 'ZTENDER-CAT_TYPE1'.


ENDIF.

ENDMODULE. " INITILIZE_VALUE OUTPUT


*&---------------------------------------------------------------------*
*& Module SCREEN_MODIFY OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE screen_modify OUTPUT.

LOOP AT SCREEN .
IF ztender-cat_type1 EQ 'BUD' AND screen-group2 EQ 'G3'.

screen-invisible = 1.
MODIFY SCREEN.

ENDIF.

IF sy-tcode EQ 'ZT01'.
CASE screen-group1.
WHEN 'G1'.
screen-invisible = 1.
MODIFY SCREEN.

ENDCASE.
ELSEIF sy-tcode EQ 'ZT02'.

CASE screen-name .
WHEN 'NO'.
screen-invisible = 1.
MODIFY SCREEN.
WHEN 'ZTENDER-OFFER_THRU' OR
'ZTENDER-LOC_TYPE' OR
'ZTENDER-REC_TYPE' OR
'ZTENDER-SHARE_TYPE' .
screen-input = 0.
MODIFY SCREEN.
ENDCASE.
ENDIF.
ENDLOOP.

ENDMODULE. " SCREEN_MODIFY OUTPUT


*&---------------------------------------------------------------------*
*& Module SET_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE set_data OUTPUT.

IF sy-tcode EQ 'ZT02'.

IF sy-ucomm EQ 'OK_CODE' OR sy-ucomm EQ 'GET_DATA'.

IF lv_ztender-cat_type1 IS NOT INITIAL AND lv_ztender-offer_no IS NOT INITIAL .

IF sy-ucomm EQ 'OK_CODE' OR sy-ucomm EQ 'GET_DATA'.

PERFORM setdata_container. " set data to custom container

ztender = lv_ztender.

LOOP AT SCREEN .
CASE screen-group1.

WHEN 'G2'.
screen-input = 0.
MODIFY SCREEN.

WHEN 'G1'.
IF screen-name EQ 'GET_DATA'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDCASE.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.

ENDMODULE. " SET_DATA OUTPUT


*&---------------------------------------------------------------------*
*& Module REFRESH_DATA OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE refresh_data OUTPUT.

IF sy-ucomm EQ 'REFRESH' AND sy-tcode EQ 'ZT02'.

CLEAR: ztender.
ENDIF.

ENDMODULE. " REFRESH_DATA OUTPUT


*&---------------------------------------------------------------------*
*& Module CUSTOM_CONTAINER OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE custom_container OUTPUT.

PERFORM initilize_container.
* PERFORM create_container.

* CASE sy-ucomm .
*
* WHEN 'OK_CODE'.
* PERFORM initilize_container.
* PERFORM create_container.
* """"""""""" set text at screen Method """"""""""
*
** CALL METHOD g_editor1->set_text_as_r3table
** EXPORTING
** table = g_mytable1
** EXCEPTIONS
** error_dp = 1
** error_dp_create = 2
** OTHERS = 3.
** IF sy-subrc <> 0.
*** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
** ENDIF.
*
** WHEN 'REFRESH'.
** PERFORM initilize_container.
** PERFORM create_container.
*
* WHEN OTHERS.
*********** INITIALIZE CONTAINER ************
* PERFORM initilize_container.
* PERFORM create_container.
* ENDCASE.

ENDMODULE. " CUSTOM_CONTAINER OUTPUT

*&---------------------------------------------------------------------*
*& Include ZTENDER_REPORT_I01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'SAVE' OR 'SUB'.

CLEAR: lv_ztender.
****"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

* ******************* START
********************* WORK DESCRIPTION USING CUSTOM CONTENIER
********************* CREATED BY : SURAJIT MONDAL
********************* CREATED ON : 21 / 03 / 2017
********************* REPORT : ZTENDER_REPORT

PERFORM getdata_contenier.
****""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ztender-mandt = sy-mandt .
MODIFY ztender.
lv_ztender = ztender .

IF sy-tcode EQ 'ZT01'.

INSERT ztender FROM lv_ztender .


COMMIT WORK .
CLEAR: ztender, lv_ztender, no.

ELSEIF sy-tcode EQ 'ZT02'.

UPDATE ztender FROM lv_ztender .


COMMIT WORK.
CLEAR: ztender, no.
ENDIF.
* BREAK-POINT.

IF sy-subrc EQ 0.

MESSAGE 'DATA SAVE SUCCESSFULLY....' TYPE 'S'.


ELSE.

MESSAGE 'PLEASE ENTER AGAIN...' TYPE 'E'.


ENDIF.

WHEN 'BACK' OR 'CANCEL'.


LEAVE PROGRAM .
PERFORM refresh_cc.
* EXIT. "exit does not work after leave"
WHEN 'OK_CODE'.
SKIP.
PERFORM refresh_cc.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT


*&---------------------------------------------------------------------*
*& Module FIELD_VALIDATION INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE field_validation INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.


SKIP.
WHEN 'SAVE' OR 'SUB' OR 'FC3' OR 'GET_DATA' OR 'OK_CODE'.
* PERFORM refresh_cc.

PERFORM field_validation.
PERFORM offer_no_validate.

ENDCASE.

ENDMODULE. " FIELD_VALIDATION INPUT


*&---------------------------------------------------------------------*
*& Module ENQ_HELP INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE enq_help INPUT.

REFRESH: it_return, it_enq_no.

IF ztender-cat_type1 IS NOT INITIAL.

SELECT cat_type1
cat_type
offer_no
offer_thru
enq_no
FROM ztender INTO TABLE it_enq_no
WHERE cat_type1 EQ ztender-cat_type1 AND
cat_type EQ ztender-cat_type .
* OFFER_NO EQ ZTENDER-OFFER_NO .
* OFFER_THRU EQ ZTENDER-CAT_TYPE.

IF sy-subrc EQ 0 AND NOT it_enq_no IS INITIAL.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'ENQ_NO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'ZTENDER-ENQ_NO'
value_org = 'S'
* IMPORTING
* user_reset = l_user_reset
TABLES
value_tab = it_enq_no
return_tab = it_return
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ELSE.
sy-subrc = 0 .
MESSAGE 'No Data found on that Catgory Type ' TYPE 'I'.
ENDIF.
ELSE.
MESSAGE 'Please select Catgory Type ' TYPE 'I'.

ENDIF.

ENDMODULE. " ENQ_HELP INPUT


*&---------------------------------------------------------------------*
*& Module GET_DATA INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE get_data INPUT.

IF sy-tcode EQ 'ZT02'.
IF sy-ucomm EQ 'OK_CODE' OR sy-ucomm EQ 'GET_DATA'.

IF ztender-cat_type1 IS NOT INITIAL AND


ztender-offer_no IS NOT INITIAL .

CLEAR: lv_ztender.

SELECT * FROM ztender INTO lv_ztender


WHERE cat_type1 EQ ztender-cat_type1 AND
cat_type EQ ztender-cat_type AND
offer_no EQ ztender-offer_no.

ENDSELECT.

ENDIF.
ENDIF.
ENDIF.
ENDMODULE. " GET_DATA INPUT
*&---------------------------------------------------------------------*
*& Module CC_GET_DATA INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*MODULE cc_get_data INPUT.
*
*
** if sy-ucomm eq 'SAVE' OR sy-ucomm eq 'SUB'.
*
* CLEAR: lv_ztender.
*
** ******************* START
********************** WORK DESCRIPTION USING CUSTOM CONTENIER
********************** CREATED BY : SURAJIT MONDAL
********************** CREATED ON : 07 / 03 / 2017
********************** REPORT : ZTENDER_REPORT
*
* CALL METHOD g_editor1->get_text_as_r3table
** EXPORTING
** only_when_modified = FALSE
* IMPORTING
* table = g_mytable "" HOLD DESCRIPTION DATA
** is_modified =
* EXCEPTIONS
* error_dp = 1
* error_cntl_call_method = 2
* error_dp_create = 3
* potential_data_loss = 4
* OTHERS = 5
*.
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
**ENDIF.
*
*
*ENDMODULE. " CC_GET_DATA INPUT
*&---------------------------------------------------------------------*
*& Module CMP_HELP INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE cmp_help INPUT.

DATA: it_dfies TYPE STANDARD TABLE OF dfies,


wa_dfies TYPE dfies.
DATA: it_mapping TYPE STANDARD TABLE OF dselc,
wa_mapping TYPE dselc.
DATA: lv_fieldval1 TYPE c LENGTH 132,
lv_fieldval2 TYPE c LENGTH 132.

DATA: it_dynpread TYPE STANDARD TABLE OF dynpread,


wa_dynpread TYPE dynpread.

* IF ztender-COMPANY_NAME IS NOT INITIAL.

REFRESH: it_cmpname,it_return,it_cmpf4,it_dfies,it_mapping,it_dynpread.
CLEAR: wa_cmpname, wa_cmpf4,wa_dfies,wa_mapping,wa_dynpread,it_return.

SELECT DISTINCT company_name " DATA SELECTION FROM DB FOR f4 HELP


contact_per_name
contact_per_emai
cmpny_addr1
cmpny_addr2
post_offic
city
state
pincode
country
web_address
contact_per_ph_1
contact_per_ph_2
FROM ztender INTO TABLE it_cmpname
WHERE company_name NE ''.

IF sy-subrc EQ 0 AND NOT it_cmpname IS INITIAL.

LOOP AT it_cmpname INTO wa_cmpname.

MOVE-CORRESPONDING wa_cmpname TO wa_cmpf4.


APPEND wa_cmpf4 TO it_cmpf4.

ENDLOOP.

IF sy-subrc EQ 0 AND NOT it_cmpf4 IS INITIAL.

SORT it_cmpf4 BY cmp_name ASCENDING.


DELETE ADJACENT DUPLICATES FROM it_cmpf4 COMPARING ALL FIELDS .
sy-subrc = 0 .

ENDIF.
IF sy-subrc EQ 0 AND NOT it_cmpf4 IS INITIAL.

*&&&&&&&&.....START..........f4 field label chnage..............&&&&&&&&&&&&&&&&&&

CALL FUNCTION 'DDIF_FIELDINFO_GET'


EXPORTING
tabname = 'ZTENDER'
TABLES
dfies_tab = it_dfies
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

LOOP AT it_dfies INTO wa_dfies.

CASE wa_dfies-fieldname.
WHEN 'COMPANY_NAME'.
wa_dfies-scrtext_m = 'Company Name'.
wa_dfies-position = 1.
wa_dfies-offset = 0.
MODIFY it_dfies FROM wa_dfies.
CLEAR:wa_dfies.
WHEN 'CITY'.
wa_dfies-scrtext_m = 'City'.
wa_dfies-position = 2.
wa_dfies-offset = 180.
MODIFY it_dfies FROM wa_dfies.
CLEAR:wa_dfies.
WHEN 'PINCODE'.
wa_dfies-scrtext_m = 'Pincode'.
wa_dfies-position = 3.
wa_dfies-offset = 240.
MODIFY it_dfies FROM wa_dfies.
CLEAR:wa_dfies.
WHEN OTHERS.
DELETE it_dfies INDEX sy-tabix .
CLEAR:wa_dfies.
ENDCASE.
ENDLOOP.
* DELETE ADJACENT DUPLICATES FROM it_dfies.

*&&&&&&&& START........f4 field MAPPING ..............&&&&&&&&&&&&&&&&&&

wa_mapping-fldname = 'PINCODE'.
wa_mapping-dyfldname = 'ZTENDER-PINCODE'.
APPEND wa_mapping TO it_mapping.

*&&&&&&&& START........f4 HELP FM ..............&&&&&&&&&&&&&&&&&&

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
retfield = 'COMPANY_NAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'ZTENDER-COMPANY_NAME'
value_org = 'S'
TABLES
value_tab = it_cmpf4 " USE TO PROVIDE VALUE
field_tab = it_dfies " USE TO CHANGE F4 FIELD LABEL
return_tab = it_return " USE TO RETURN FIELD
dynpfld_mapping = it_mapping " USE TO RETUN MORE THEN ONE FIELD VALUE
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDIF.

IF it_return IS NOT INITIAL.

READ TABLE it_return INDEX 1.


lv_fieldval1 = it_return-fieldval.

READ TABLE it_return INDEX 2.


lv_fieldval2 = it_return-fieldval.
READ TABLE it_cmpname INTO wa_cmpname WITH KEY cmp_name = lv_fieldval1 cmp_pin = lv_fieldval2.

IF wa_cmpname IS NOT INITIAL.

wa_dynpread-fieldname = 'ZTENDER-COMPANY_NAME'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_name .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CONTACT_PER_NAME'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_cnt_per .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CONTACT_PER_EMAI'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_email .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CMPNY_ADDR1'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_add1 .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CMPNY_ADDR2'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_add2 .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-POST_OFFIC'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_post .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CITY'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_city .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-STATE'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_state.
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.
wa_dynpread-fieldname = 'ZTENDER-PINCODE'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_pin.
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-COUNTRY'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_cntry .
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-WEB_ADDRESS'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_web.
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CONTACT_PER_PH_1'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_cnt_ph.
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

wa_dynpread-fieldname = 'ZTENDER-CONTACT_PER_PH_2'.
wa_dynpread-fieldvalue = wa_cmpname-cmp_cnt_mob.
APPEND wa_dynpread TO it_dynpread.
CLEAR: wa_dynpread.

IF it_dynpread IS NOT INITIAL.


CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = it_dynpread
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
undefind_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
SET CURSOR FIELD 'ZTENDER-ENQ_HANDEL_BY'.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE. " CMP_HELP INPUT
*&---------------------------------------------------------------------*
*& Include ZTENDER_REPORT_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form REFRESH_CC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM refresh_cc .

IF NOT r_dock_container IS INITIAL.


CALL METHOD r_dock_container->free
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
ENDIF.
FREE r_dock_container.
ENDIF.

ENDFORM. " REFRESH_CC


*&---------------------------------------------------------------------*
*& Form FIELD_VALIDATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM field_validation .

IF sy-tcode EQ 'ZT01'.
IF ztender-loc_type IS INITIAL.
MESSAGE 'PLEASE SELECT LOCATION TYPE......' TYPE 'E'.
ENDIF.

IF ztender-rec_type IS INITIAL.
MESSAGE 'PLEASE SELECT RECEIVING TYPE......' TYPE 'E'.
ENDIF.
IF ztender-share_type IS INITIAL.
MESSAGE 'PLEASE SELECT SHARE TYPE......' TYPE 'E'.
ENDIF.
ENDIF.

IF ztender-cat_type1 IS INITIAL.
MESSAGE 'PLEASE SELECT PROPOSAL TYPE- MAIN-CAT......' TYPE 'E'.
ENDIF.

IF ztender-cat_type IS INITIAL AND ztender-cat_type1 NE 'BUD'.

MESSAGE 'PLEASE SELECT PROPOSAL TYPE- SUB-CAT....' TYPE 'E'.


ELSEIF ztender-offer_no IS INITIAL.

MESSAGE 'PLEASE ENTER PROPOSAL NO...' TYPE 'E'.


* ELSEIF ztender-offer_no EQ '' AND sy-tcode EQ 'ZT02'.
*
* MESSAGE 'PLEASE ENTER OFFER NO...' TYPE 'E'.
ELSEIF ztender-offer_thru IS INITIAL AND sy-tcode EQ 'ZT01'.

* IF sy-ucomm EQ 'OK_CODE' OR sy-ucomm EQ 'GET_DATA'.


* SKIP.
* ELSE.
MESSAGE 'PLEASE SELECT PROPOSAL_THRU...' TYPE 'E'.
* ENDIF.
* SET CURSOR FIELD 'ZTENDER-OFFR_NO'.
ENDIF.

ENDFORM. " FIELD_VALIDATION


*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form OFFER_NO_VALIDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM offer_no_validate .

CLEAR: wa_box1,count,strlen,l_val.

l_val = ztender-offer_no+count(1).
strlen = STRLEN( ztender-offer_no ).

WHILE l_val EQ '0' OR l_val EQ 'O'.

count = count + 1 .
l_val = ztender-offer_no+count(1).
ENDWHILE.

strlen = STRLEN( ztender-offer_no ) - count.


ztender-offer_no = ztender-offer_no+count(strlen).

SELECT SINGLE cat_type1


cat_type
offer_no
FROM ztender INTO wa_box1
WHERE cat_type1 EQ ztender-cat_type1 AND
cat_type EQ ztender-cat_type AND
offer_no EQ ztender-offer_no.

IF sy-subrc EQ 0 AND sy-tcode EQ 'ZT01'.

MESSAGE 'PROPOSAL NO ALREADY EXIST....' TYPE 'E'.


* SET CURSOR FIELD 'ZTENDER-OFFER_NO'.

* ELSEIF sy-subrc EQ 0 AND sy-tcode EQ 'ZT02'.


*
* SKIP.
* ELSEIF sy-subrc GE 0 AND sy-tcode EQ 'ZT01'.
*
* SKIP.
ELSEIF sy-subrc GT 0 AND sy-tcode EQ 'ZT02'.

MESSAGE 'OFFER NO DOES NOT EXIST....' TYPE 'E'.


ENDIF.

ENDFORM. " OFFER_NO_VALIDATE


*&---------------------------------------------------------------------*
*& Form GETDATA_CONTENIER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM getdata_contenier .

CLEAR: l_string,wa_g_mytable,wa_line.
REFRESH: g_mytable,it_line.

CALL METHOD g_editor1->get_text_as_r3table " GET TEXT FROM CUSTOM CONTAINER


* EXPORTING
* only_when_modified = ''
IMPORTING
table = g_mytable " HOLD TENDER DESCRIPTION DATA
* is_modified =
EXCEPTIONS
error_dp = 1
error_cntl_call_method = 2
error_dp_create = 3
potential_data_loss = 4
OTHERS = 5
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL METHOD g_editor1->delete_text.

IF NOT r_dock_container IS INITIAL.


CALL METHOD r_dock_container->free
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
ENDIF.
FREE r_dock_container.
ENDIF.

* PERFORM initilize_container. " Refresh the Custom Contenier And Initilize again
* PERFORM create_container. " CREATE CONTAINER AGAIN
IF g_mytable IS NOT INITIAL.

LOOP AT g_mytable INTO wa_g_mytable.

IF l_string IS INITIAL.

l_string = wa_g_mytable .
ELSE.

CONCATENATE l_string wa_g_mytable INTO l_string SEPARATED BY space .


ENDIF.

CLEAR: wa_g_mytable .
ENDLOOP.

IF l_string IS NOT INITIAL.


CALL FUNCTION 'RKD_WORD_WRAP' " Wraping text to save in table
EXPORTING
textline = l_string
outputlen = 255
TABLES
out_lines = it_line
EXCEPTIONS
outputlen_too_large = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.

*************** WORK DESCRIPTION SET TO ZTENDER ***************************************

CLEAR: ztender-work_descrip_1, ztender-work_descrip_2,


ztender-work_descrip_3, ztender-work_descrip_4.

IF it_line IS NOT INITIAL.


CLEAR: count .
count = 1.
LOOP AT it_line INTO wa_line.
CASE count.
WHEN 1.
ztender-work_descrip_1 = wa_line-l_line.
WHEN 2.
ztender-work_descrip_2 = wa_line-l_line.
WHEN 3.
ztender-work_descrip_3 = wa_line-l_line.
WHEN 4.
ztender-work_descrip_4 = wa_line-l_line.
ENDCASE.
count = count + 1 .
CLEAR: wa_line.
ENDLOOP.
ENDIF.
ENDIF.

***** END: WORK DESCRIPTION """""""""""""""""""""""**********************************

ENDFORM. " GETDATA_CONTENIER


*&---------------------------------------------------------------------*
*& Form CREATE_CONTAINER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_container .

CREATE OBJECT r_dock_container


EXPORTING
container_name = 'CC_NAME'
lifetime = cntl_lifetime_default
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
OTHERS = 6.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno


WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.
*
**2. create EDITOR CONTROL
*
** TEXT EDITOR CONTROL
*
CREATE OBJECT g_editor1
EXPORTING
style = 0
wordwrap_mode = '2' "CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION "WORDWRAP_AT_WINDOWBORDER
wordwrap_position = 135
wordwrap_to_linebreak_mode = cl_gui_textedit=>true
parent = r_dock_container
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
gui_type_not_supported = 5
OTHERS = 6.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.
**
***3. set STATUS BAR
**
*** TO SET STATUS BAR
***
CALL METHOD g_editor1->set_statusbar_mode
EXPORTING
statusbar_mode = 0
EXCEPTIONS
error_cntl_call_method = 1
invalid_parameter = 2
OTHERS = 3.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.
**
***4.set TOOL BAR
**
** TO SET TOOLBAR

CALL METHOD g_editor1->set_toolbar_mode


EXPORTING
toolbar_mode = 0
EXCEPTIONS
error_cntl_call_method = 1
invalid_parameter = 2
OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " CREATE_CONTAINER


*&---------------------------------------------------------------------*
*& Form INITILIZE_CONTAINER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM initilize_container .

IF NOT r_dock_container IS INITIAL.

IF NOT g_editor1 IS INITIAL.

CALL METHOD g_editor1->delete_text. " Delete text data in container


CALL METHOD g_editor1->free . " Free the container

FREE g_editor1. " Initiallize the container


ENDIF.

CALL METHOD r_dock_container->free " Free the container


EXCEPTIONS
OTHERS = 1.
FREE r_dock_container. " Initiallize the container
ENDIF.
* ELSE.

************* Create container at firest """""""""""""""""""


PERFORM create_container .
* ENDIF.
ENDFORM. " INITILIZE_CONTAINER
*&---------------------------------------------------------------------*
*& Form SETDATA_CONTAINER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM setdata_container .

CLEAR: l_string.
REFRESH: it_line,g_mytable1 .

CONCATENATE lv_ztender-work_descrip_1
lv_ztender-work_descrip_2
lv_ztender-work_descrip_3
lv_ztender-work_descrip_4 INTO l_string SEPARATED BY space.

IF l_string IS NOT INITIAL.

CALL FUNCTION 'RKD_WORD_WRAP' " Wraping text to save in table


EXPORTING
textline = l_string
outputlen = 90
TABLES
out_lines = it_line
EXCEPTIONS
outputlen_too_large = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

LOOP AT it_line INTO wa_line WHERE l_line IS NOT INITIAL. " set data to custom container

wa_g_mytable1-l_line = wa_line-l_line .
APPEND wa_g_mytable1 TO g_mytable1 . " set data to custom container Table
ENDLOOP.

* PERFORM initilize_container.

CALL METHOD g_editor1->set_text_as_r3table


EXPORTING
table = g_mytable1
EXCEPTIONS
error_dp = 1
error_dp_create = 2
OTHERS = 3.

IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ELSE. " If there is no data in Tender description field


* PERFORM initilize_container.

ENDIF.

ENDFORM. " SETDATA_CONTAINER


*&---------------------------------------------------------------------*
*& Form LAST_NO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM last_no .
CLEAR: NO.
IF wa_box1-offer_no IS NOT INITIAL .
no = wa_box1-offer_no .
ELSE.
no = '1st Entry'.
ENDIF.

ENDFORM. " LAST_NO

Das könnte Ihnen auch gefallen