‎2006 Oct 06 6:30 PM
Hello experts
I have to write a selection screen program based on the following requirements (only for sales Org:5090, plant:9000, Outbound delivery type= "LF")
Selection parameters:
Material (lips-matnr)
Sold to party(likp-kunag): can hardcode it to 5090
Sales Org(likp-vkorg)
Plant(lips-werks) : hard code it to plant:9000
Sales order(likp-vbeln)
Actual goods movement dates(likp-wadat_ist)
Invoice number
Sales order
Output
material numberlips~matnr ( should Display only S* materials and material type FERT)
Serial number of the device shipped (objk-sernr)
Delivery number (lips~vbeln)
Invoice number (vbrp-vbeln)
Invoice price=Vbrp-vbeln/quantity (invoice price)
Notification number (Viqmel-QMNUm)
KBB Repair Level(VIQMEL-QMTXT from QMCOD )
KBC Repair level(VIQMMA-MNCOD from KBC-SM07 code group(VIQMMA-MNGRP))
code help is higly appreciated,
Thanks
Sp
‎2006 Oct 06 6:37 PM
Sorry
the field
<b>KBB Repair Level(VIQMEL-QMTXT from VIQMEL-QMCOD)</b>
Thanks
SP
‎2006 Oct 06 7:01 PM
Need couple of clarrification...
U said for sales org 5090 and you have shown as hard code that for sold-to-party. Secondly you say sales order but refer to the delivery note field ?
So do you need to get the sales order and the subsequent delivery and invoice ??
‎2006 Oct 06 7:10 PM
‎2006 Oct 06 7:22 PM
Hi anurag,
Code is going like this, i could able to display it but when i run it ABAP Dump is coming.
what could be the reason?
Tahnks
SP
&----
*& Report ZSDR_PRICING_KSE_RPT *
*& *
&----
*& *
*& *
&----
REPORT ZSDR_PRICING_KSE_RPT .
************************************************************************
************************************************************************
TABLES: likp, lips, vbfa, vbak.
TYPE-POOLS: slis.
*/ Selection and Input Parameters
SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE text-003.
SELECT-OPTIONS: s_matnr FOR lips-matnr,
s_kunag FOR likp-kunag.
SELECT-OPTIONS: s_vkorg FOR likp-vkorg NO INTERVALS,
s_werks FOR lips-werks.
SELECT-OPTIONS: s_vbeln FOR likp-vbeln,
s_waist FOR likp-wadat_ist.
SELECT-OPTIONS: s_vgbel FOR lips-vgbel.
SELECTION-SCREEN END OF BLOCK block2.
*/
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv.
TYPES: BEGIN OF ty_data,
matnr TYPE lips-matnr,
sernr TYPE equi-sernr,
vbeln TYPE lips-vbeln,
invno TYPE vbfa-vbeln,
qmnum TYPE vbak-qmnum,
netwr type vbrp-netwr,
END OF ty_data.
DATA: gt_data TYPE TABLE OF ty_data WITH HEADER LINE.
TYPES: BEGIN OF ty_lips,
vbeln TYPE likp-vbeln,
matnr TYPE lips-matnr,
wersk TYPE lips-werks,
vgbel TYPE lips-vgbel,
END OF ty_lips.
DATA: gt_lips TYPE TABLE OF ty_lips WITH HEADER LINE.
DATA: gt_vbfa TYPE TABLE OF vbfa WITH HEADER LINE.
DATA: gt_vbrp TYPE TABLE OF vbrp WITH HEADER LINE.
TYPES: BEGIN OF ty_ser01,
lief_nr TYPE ser01-lief_nr,
obknr TYPE ser01-obknr,
sernr TYPE objk-obknr,
END OF ty_ser01.
DATA: gt_ser01 TYPE TABLE OF ty_ser01 WITH HEADER LINE.
START-OF-SELECTION.
PERFORM get_data.
PERFORM display_data.
&----
*& Form get_data
&----
FORM get_data.
SELECT likpvbeln lipsmatnr lipswerks lipsvgbel
INTO CORRESPONDING FIELDS OF TABLE gt_lips
FROM likp INNER JOIN lips ON lipsvbeln = likpvbeln
WHERE lips~matnr IN s_matnr
AND lips~werks IN s_werks
AND likp~kunag IN s_kunag
AND likp~wadat_ist IN s_waist
AND lips~vgbel IN s_vgbel
AND likp~vkorg IN s_vkorg.
IF NOT gt_lips[] IS INITIAL.
SELECT vbeln vbelv INTO CORRESPONDING FIELDS OF TABLE gt_vbfa
FROM vbfa
FOR ALL ENTRIES IN gt_lips
WHERE vbelv = gt_lips-vgbel
AND vbtyp_n = 'M'.
IF NOT gt_vbfa[] IS INITIAL.
SELECT vbeln matnr netwr
INTO CORRESPONDING FIELDS OF TABLE gt_vbrp
FROM vbrp FOR ALL ENTRIES IN gt_vbfa
WHERE vbeln = gt_vbfa-vbeln.
SELECT ser01lief_nr ser01obknr objk~sernr
INTO CORRESPONDING FIELDS OF TABLE gt_ser01
FROM ser01 INNER JOIN objk ON objkobknr = ser01obknr
FOR ALL entries IN gt_vbfa
WHERE ser01~lief_nr = gt_vbfa-vbeln
AND taser EQ 'SER01'.
ENDIF.
ENDIF.
clear: gt_data[].
LOOP AT gt_lips.
LOOP AT gt_vbfa WHERE vbelv = gt_lips-vgbel.
READ TABLE gt_vbrp WITH KEY vbeln = gt_vbfa-vbeln
matnr = gt_lips-matnr.
LOOP AT gt_ser01 WHERE lief_nr = gt_vbfa-vbeln.
gt_data-matnr = gt_lips-matnr.
gt_data-sernr = gt_ser01-sernr.
gt_data-vbeln = gt_lips-vbeln.
gt_data-invno = gt_vbfa-vbeln.
gt_data-netwr = gt_vbrp-netwr.
APPEND gt_data.
ENDLOOP.
ENDLOOP.
ENDLOOP.
ENDFORM. " get_data
&----
*& Form display_data
&----
FORM display_data.
DATA: lv_repid TYPE sy-repid.
lv_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = lv_repid
I_INTERNAL_TABNAME =
i_structure_name = gt_data
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME =
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_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.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
i_callback_program = lv_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
it_fieldcat = gt_fieldcat
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = gt_data
EXCEPTIONS
PROGRAM_ERROR = 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.
ENDFORM.
‎2006 Oct 06 7:47 PM
‎2006 Oct 06 7:54 PM
anurag
Error anlysis
The call to the function module "REUSE_ALV_FIELDCATALOG_MERGE" is incorrect:
The function module interface allows you to specify only fields
of a particular type under "I_STRUCTURE_NAME". The field "GT_DATA" specified
here
has a different field type.
‎2006 Oct 06 7:56 PM
ABAP runtime errors CALL_FUNCTION_CONFLICT_TYPE
Occurred on 06.10.2006 at 11:51:50
Source code extract
001320
001330 ENDFORM. " get_data
001340
001350 *& *
001360
001370 *& Form display_data
001380
001390 *& *
001400
001410 FORM display_data.
001420
001430 DATA: lv_repid TYPE sy-repid.
001440 lv_repid = sy-repid.
001450 CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
001460 EXPORTING
001470 i_program_name = lv_repid
001480 * I_INTERNAL_TABNAME =
001490 i_structure_name = gt_data
001500 * I_CLIENT_NEVER_DISPLAY = 'X'
001510 * I_INCLNAME =
001520 * I_BYPASSING_BUFFER =
001530 * I_BUFFER_ACTIVE =
001540
001550 CHANGING
001560 ct_fieldcat = gt_fieldcat
001570
001580 * EXCEPTIONS
001590 * INCONSISTENT_INTERFACE =
1 001590 * INCONSISTENT_INTERFACE = 1
001600 * PROGRAM_ERROR = 2
001610 * OTHERS = 3
> .
001630 IF sy-subrc <> 0.
001640
001650 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER
001660 * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
001670
001680 ENDIF.
001690
001700 CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
001710
001720 EXPORTING
001730
001740 * I_INTERFACE_CHECK = ' '
001750 * I_BYPASSING_BUFFER =
001760 * I_BUFFER_ACTIVE = ' '
001770 i_callback_program = lv_repid
001780 * I_CALLBACK_PF_STATUS_SET = ' '
001790 * I_CALLBACK_USER_COMMAND = ' '
001800 * I_STRUCTURE_NAME =
001810 * IS_LAYOUT =
‎2006 Oct 06 7:58 PM
I am not connected to SAP at the moment but you can try to pass the structure of gt_data..ie ty_data instead of gt_data.
‎2006 Oct 06 7:34 PM
select-options : smatnr for mara-matnr,
skunag for likp-kunag,
*similarly define for others.
Sales Org(likp-vkorg)
Plant(lips-werks) : hard code it to plant:9000
Sales order(likp-vbeln)
Actual goods movement dates(likp-wadat_ist)
Invoice number
Sales order.
initialization.
move 'I' to svkorg-sign.
move 'EQ' to svkorg-option.
move '5090' to svkorg-low.
append svkorg.
similarly initialize the other select options as needed.
start-of-selection.
*get sales order data from VBAP.
select vbeln kunag vkorg werks matnr
into table itab
from vbap inner join mara on vbapmatnr = maramatnr
where mara~matnr in smatnr and
mara~fert like 'S%'....and other filters.
*Using the above internal table get data from vbfa for delivery notes.
select vbelv into idelv
from vbfa for all entries in itab
where vbeln = itab-vbeln and vgabe = '8'.
*check vgabe=8, i think it points to delivery note
*similarly get the information using idelv and read table vbfa to get invoice.
‎2006 Oct 09 5:56 PM
Hello experts,
Could you please put the above in a code format..
Thanks
SP