‎2007 Oct 16 6:54 AM
Hi SAP Guru's
Below are my selection screen fields. I need to do validataions for s_vkorg and s_kunnr. Means report has to give output for KUNNR for the respective vkorg ranges. Here vkorg has ranges like AU01 to AU91 then it should fetch KUNNR data within that VKORG range and same like KUNNR also like within AU01 to AU91 range it has to fetch Kunnr from 00001 to 00010 this is the scenario . The report should dispaly on the Kunnr which is in the particular VKORG
OR
Material No. for the respective date range this is also same like above scenario like it has to fetch from Matrials and to material within the date range. My selction screen is like :
SELECT-OPTIONS : s_vkorg FOR vbak-vkorg obligatory,
s_kunnr FOR vbak-kunnr obligatory,
s_matnr FOR vbap-matnr ,
s_fkdat FOR vbak-fmbdat.
Plz help me on this.
If helpfull reward points will be given.
Thanks in advance.
‎2007 Oct 16 6:57 AM
hi
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: ZVENDOR FOR LFA1-LIFNR OBLIGATORY,
ZDATE FOR BSAK-BLDAT.
PARAMETERS: ZBUKRS LIKE BSEG-BUKRS .
SELECTION-SCREEN END OF BLOCK 1.
DATA: ZDATE1 LIKE BSAK-BLDAT.
*----
*--
*----
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON ZVENDOR.
IF NOT ZVENDOR[] IS INITIAL.
SELECT SINGLE * FROM LFA1 WHERE LIFNR IN ZVENDOR.
IF SY-SUBRC <> 0.
MESSAGE E000(8I) WITH 'enter valid vendor'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON ZDATE.
IF NOT ZDATE[] IS INITIAL.
SELECT BLDAT FROM BSAK INTO ZDATE1 WHERE BLDAT IN ZDATE.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E000(8I) WITH 'enter valid date'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON ZBUKRS.
IF NOT ZBUKRS IS INITIAL.
SELECT SINGLE BUKRS FROM BSEG INTO ZBUKRS WHERE BUKRS = ZBUKRS.
IF SY-SUBRC <> 0.
MESSAGE E000(8I) WITH 'enter valid company code'.
ENDIF.
ENDIF.
‎2007 Oct 16 7:06 AM
Hi
in
AT SELECTION-SCREEN
write
PERFORM SCREEN_CHECK.
then
&----
*& Form SCREEN_CHECK
&----
Checking for the input values of selection screen
----
form screen_check.
Validation of Company Code
clear t001.
if not p_bukrs is initial.
select bukrs from t001 up to 1 rows
into t001-bukrs
where bukrs = p_bukrs.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid Company Code'(006).
endif.
endif.
Validation of Customer Number
clear kna1.
if not s_kunnr is initial.
select kunnr from kna1 up to 1 rows
into kna1-kunnr
where kunnr in s_kunnr.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid Customer Number'(007).
endif.
endif.
Validation of Material
clear mara.
if not s_matnr[] is initial.
select matnr from mara up to 1 rows
into mara-matnr
where matnr in s_matnr.
endselect.
if sy-subrc ne 0.
message e000 with 'Invalid material'(008).
endif.
endif.
ENDFORM.
Regards
Anji
‎2007 Oct 16 7:14 AM
hi Siddu,
use this code .
data: lv_vkorg type vkorg,
lv_kunnr type kunnr.
IF s_vkorg IS NOT INITIAL.
SELECT single vkorg
FROM TVKO
INTO lv_vkorg
WHERE vkorg IN s_vkorg.
IF sy-subrc NE 0 OR lv_vkorg IS INITIAL.
Please enter a valid Order Range.
MESSAGE e011.
ELSE.
CLEAR: lv_vkorg.
ENDIF.
ENDIF.
for KUNNR:
IF s_kunnr IS NOT INITIAL.
SELECT single kunnr
FROM KNA1
INTO lv_kunnr
WHERE kunnr IN s_kunnr.
IF sy-subrc NE 0 OR lv_kunnr IS INITIAL.
Please enter a valid Order Range.
MESSAGE e011.
ELSE.
CLEAR: lv_kunnr.
ENDIF.
ENDIF.
<b><i>Reward points if useful</i></b>
Chandra
‎2007 Oct 16 7:16 AM
Hi
see this sample code it will help you
REPORT ZNNR_REPORT NO STANDARD PAGE HEADING MESSAGE-ID ZNNR LINE-SIZE 100 LINE-COUNT 65(4).
******DATA DECLARATIONS**********
DATA : BEGIN OF IT_PLANT OCCURS 0,
MATNR LIKE MARA-MATNR,
WERKS LIKE MARC-WERKS,
PSTAT LIKE MARC-PSTAT,
EKGRP LIKE MARC-EKGRP,
END OF IT_PLANT.
DATA : BEGIN OF IT_PONO OCCURS 0,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
END OF IT_PONO.
TABLES EKKO.
********END OF DATA DECLARATIONS*********
********SELECTION SCREEN DESIGN ***********
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_WERKS LIKE MARC-WERKS MODIF ID S1.
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN NO INTERVALS MODIF ID S2.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R1 RADIOBUTTON GROUP G1 DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) TEXT-002 FOR FIELD R1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : R2 RADIOBUTTON GROUP G1.
SELECTION-SCREEN COMMENT 5(20) TEXT-003 FOR FIELD R2.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
******END OF SELECTION SCREEN DESIGN****************
*********INITIALIZATION OF SELECTION SCREEN ELEMENTS.*****
INITIALIZATION.
P_WERKS = '1000'.
S_EBELN-LOW = '4500016926'.
S_EBELN-OPTION = 'EQ'.
S_EBELN-SIGN = 'I'.
APPEND S_EBELN.
CLEAR S_EBELN.
************END OF INITIALIZATION***********************
***********SCREEN MODIFICATIONS*******************
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF R1 EQ 'X' AND SCREEN-GROUP1 EQ 'S2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
IF R2 EQ 'X' AND SCREEN-GROUP1 EQ 'S1'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
********END OF SCREEN MODIFICATIONS*****************
***************SCREEN VALIDATIONS *****************
at selection-screen.
SELECT SINGLE *
FROM EKKO
INTO EKKO
WHERE EBELN IN S_EBELN.
IF SY-SUBRC <> 0.
SET CURSOR FIELD 'S_EBELN-LOW'.
MESSAGE E999 WITH TEXT-005.
ENDIF.
********end of screen validation*****************
<b>Reward if usefull</b>
‎2007 Oct 17 8:14 AM
HI Hifrom,
I'd written the below code for your conviniences
Hope it helps
*&----
*& Report ZHR_ASTEST
*&----
*& Demo Program-1 for selection-screen
*&----
REPORT zhr_astest.
Tables : vbak.
Data : Begin of li_kunnr,
kunnr type vbak-kunnr,
end of li_kunnr.
Data : it_kunnr like table of li_kunnr.
SELECT-OPTIONS : s_vkorg FOR vbak-vkorg obligatory,
s_kunnr FOR vbak-kunnr obligatory.
Search-help for S_KUNNR-LOW
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr-low.
Select data to be display on Search Help
select kunnr
into table it_kunnr
from vbak
where vkorg = s_vkorg.
SORT it_kunnr BY kunnr.
DELETE ADJACENT DUPLICATES FROM it_kunnr COMPARING kunnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'S_KUNNR-LOW'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'S_KUNNR-LOW'
value_org = 'S'
TABLES
value_tab = it_kunnr.
Search-help for S_KUNNR-High
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr-high.
Select data to be display on Search Help
select kunnr
into table it_kunnr
from vbak
where vkorg = s_vkorg.
SORT it_kunnr BY kunnr.
DELETE ADJACENT DUPLICATES FROM it_kunnr COMPARING kunnr.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'S_KUNNR-HIGH'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'S_KUNNR-HIGH'
value_org = 'S'
TABLES
value_tab = it_kunnr.