Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Code help in writing report Program

Former Member
0 Likes
982

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

10 REPLIES 10
Read only

Former Member
0 Likes
913

Sorry

the field

<b>KBB Repair Level(VIQMEL-QMTXT from VIQMEL-QMCOD)</b>

Thanks

SP

Read only

Former Member
0 Likes
913

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 ??

Read only

0 Likes
913

Yes anurag, exactly

Thanks

SP

Read only

0 Likes
913

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.

Read only

0 Likes
913

Whatz the error ..can you cut-paste the error !!

Read only

0 Likes
913

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.

Read only

0 Likes
913

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 =

Read only

0 Likes
913

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.

Read only

Former Member
0 Likes
913

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.

Read only

0 Likes
913

Hello experts,

Could you please put the above in a code format..

Thanks

SP