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

subroutine problem

Former Member
0 Likes
1,369

Hy, I'm stuck in this weird problem, grrr..

The ABAP compiler says:

different number of parameters in form and perform, number o formal parameters: 3, number of actual parameter: 1

Could anyone help me?

Thank you!


TYPES: BEGIN OF sbc400focc,
     carrid TYPE sflight-carrid,
     connid TYPE sflight-connid,
     fldate TYPE sflight-fldate,
     seatsmax TYPE sflight-seatsmax,
     seatsocc TYPE sflight-seatsocc,
     percentage(3) TYPE p DECIMALS 2,
     END OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.
DATA: it_flight TYPE TABLE OF sbc400focc,
      wa_flight LIKE LINE OF it_flight.

SELECT *
FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_carr.
  wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.
  INSERT wa_flight INTO TABLE it_flight.
ENDSELECT.

IF sy-subrc EQ 0.
  SORT it_flight BY percentage.
  PERFORM display_data USING it_flight.
ELSE.
  WRITE: 'No ' , pa_carr , ' flights found!'.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data
  USING p_it_flight TYPE TABLE OF sbc400focc.
  DATA wa LIKE LINE OF p_it_flight.
  LOOP AT p_it_flight INTO wa.
    WRITE: / wa-carrid COLOR COL_KEY,
             wa-connid COLOR COL_KEY,
             wa-fldate COLOR COL_KEY,
             wa-seatsmax COLOR COL_KEY,
             wa-seatsocc COLOR COL_KEY,
             wa-percentage COLOR COL_KEY, '%'.
  ENDLOOP.
ENDFORM.                    "display_data

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,311

Hi,

do modifications as below.


TYPES: BEGIN OF sbc400focc,
     carrid TYPE sflight-carrid,
     connid TYPE sflight-connid,
     fldate TYPE sflight-fldate,
     seatsmax TYPE sflight-seatsmax,
     seatsocc TYPE sflight-seatsocc,
     percentage(3) TYPE p DECIMALS 2,
     END OF sbc400focc.

types:t_sbc400focc TYPE TABLE OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.
DATA: it_flight TYPE TABLE OF sbc400focc,
      wa_flight LIKE LINE OF it_flight.

SELECT *
FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_carr.
  wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.
  INSERT wa_flight INTO TABLE it_flight.
ENDSELECT.

IF sy-subrc EQ 0.
  SORT it_flight BY percentage.
  PERFORM display_data USING it_flight.
ELSE.
  WRITE: 'No ' , pa_carr , ' flights found!'.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data
  USING p_it_flight type t_sbc400focc.
  DATA wa LIKE LINE OF p_it_flight.
  LOOP AT p_it_flight INTO wa.
    WRITE: / wa-carrid COLOR COL_KEY,
             wa-connid COLOR COL_KEY,
             wa-fldate COLOR COL_KEY,
             wa-seatsmax COLOR COL_KEY,
             wa-seatsocc COLOR COL_KEY,
             wa-percentage COLOR COL_KEY, '%'.
  ENDLOOP.
ENDFORM.                    "display_data

rgds,

bharat.

12 REPLIES 12
Read only

Former Member
0 Likes
1,311

Hi,

FORM display_data

USING p_it_flight structure sbc400focc

Read only

Former Member
0 Likes
1,312

Hi,

do modifications as below.


TYPES: BEGIN OF sbc400focc,
     carrid TYPE sflight-carrid,
     connid TYPE sflight-connid,
     fldate TYPE sflight-fldate,
     seatsmax TYPE sflight-seatsmax,
     seatsocc TYPE sflight-seatsocc,
     percentage(3) TYPE p DECIMALS 2,
     END OF sbc400focc.

types:t_sbc400focc TYPE TABLE OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.
DATA: it_flight TYPE TABLE OF sbc400focc,
      wa_flight LIKE LINE OF it_flight.

SELECT *
FROM sflight
INTO CORRESPONDING FIELDS OF wa_flight
WHERE carrid = pa_carr.
  wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.
  INSERT wa_flight INTO TABLE it_flight.
ENDSELECT.

IF sy-subrc EQ 0.
  SORT it_flight BY percentage.
  PERFORM display_data USING it_flight.
ELSE.
  WRITE: 'No ' , pa_carr , ' flights found!'.
ENDIF.

*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM display_data
  USING p_it_flight type t_sbc400focc.
  DATA wa LIKE LINE OF p_it_flight.
  LOOP AT p_it_flight INTO wa.
    WRITE: / wa-carrid COLOR COL_KEY,
             wa-connid COLOR COL_KEY,
             wa-fldate COLOR COL_KEY,
             wa-seatsmax COLOR COL_KEY,
             wa-seatsocc COLOR COL_KEY,
             wa-percentage COLOR COL_KEY, '%'.
  ENDLOOP.
ENDFORM.                    "display_data

rgds,

bharat.

Read only

Former Member
0 Likes
1,311

TYPES: BEGIN OF sbc400focc,

carrid TYPE sflight-carrid,

connid TYPE sflight-connid,

fldate TYPE sflight-fldate,

seatsmax TYPE sflight-seatsmax,

seatsocc TYPE sflight-seatsocc,

percentage(3) TYPE p DECIMALS 2,

END OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.

DATA: it_flight TYPE TABLE OF sbc400focc,

wa_flight LIKE LINE OF it_flight.

SELECT *

FROM sflight

INTO CORRESPONDING FIELDS OF wa_flight

WHERE carrid = pa_carr.

wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.

INSERT wa_flight INTO TABLE it_flight.

ENDSELECT.

IF sy-subrc EQ 0.

SORT it_flight BY percentage.

PERFORM display_data.

ELSE.

WRITE: 'No ' , pa_carr , ' flights found!'.

ENDIF.

&----


*& Form display_data

&----


  • text

----


FORM display_data.

DATA wa LIKE LINE OF it_flight.

LOOP AT it_flight INTO wa.

WRITE: / wa-carrid COLOR COL_KEY,

wa-connid COLOR COL_KEY,

wa-fldate COLOR COL_KEY,

wa-seatsmax COLOR COL_KEY,

wa-seatsocc COLOR COL_KEY,

wa-percentage COLOR COL_KEY, '%'.

ENDLOOP.

ENDFORM. "display_data

Read only

JozsefSzikszai
Active Contributor
0 Likes
1,311

hi,

replace this line:

FORM display_data

USING p_it_flight TYPE TABLE OF sbc400focc.

with:

FORM display_data

USING p_it_flight TYPE TABLE.

hope this helps

ec

Read only

Former Member
0 Likes
1,311

your perform & form should be like this --

PERFORM display_data TABLES it_flight.

&----


*& Form display_data

&----


  • text

----


  • -->P_IT_FLIGHT text

----


form display_data tables p_it_flight structure < it_flight #local# >

"Insert correct name for <...>.

DATA wa LIKE LINE OF p_it_flight.

LOOP AT p_it_flight INTO wa.

WRITE: / wa-carrid COLOR COL_KEY,

wa-connid COLOR COL_KEY,

wa-fldate COLOR COL_KEY,

wa-seatsmax COLOR COL_KEY,

wa-seatsocc COLOR COL_KEY,

wa-percentage COLOR COL_KEY, '%'.

ENDLOOP.

endform. " display_data

Edited by: Pankaj Singh on Mar 25, 2008 3:03 PM

Read only

0 Likes
1,311

Hi Milascon,

Please change ur code like this :

FORM display_data

  • USING p_it_flight TYPE TABLE OF sbc400focc.

USING p_it_flight LIKE it_flight.

U are referring to TYPE. INSTEAD refer it to internal table using like.

This will surely help you.

Regards,

Sreekanth.G

Read only

Former Member
0 Likes
1,311

declare form as

FORM display_data USING p_it_flight .

Read only

0 Likes
1,311

FORM display_data USING p_it_flight type any.

This will resolve your problem mate.

Raghav

Read only

Former Member
0 Likes
1,311

Hi,

Pls correct the Coding,

TYPES: BEGIN OF sbc400focc,

carrid TYPE sflight-carrid,

connid TYPE sflight-connid,

fldate TYPE sflight-fldate,

seatsmax TYPE sflight-seatsmax,

seatsocc TYPE sflight-seatsocc,

percentage(3) TYPE p DECIMALS 2,

END OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.

DATA: it_flight TYPE TABLE OF sbc400focc,

wa_flight LIKE LINE OF it_flight.

SELECT *

FROM sflight

INTO CORRESPONDING FIELDS OF wa_flight

WHERE carrid = pa_carr.

wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.

INSERT wa_flight INTO TABLE it_flight.

ENDSELECT.

IF sy-subrc EQ 0.

SORT it_flight BY percentage.

PERFORM display_data TABLES it_flight.

ELSE.

WRITE: 'No ' , pa_carr , ' flights found!'.

ENDIF.

&----


*& Form display_data

&----


  • text

----


FORM display_data

TABLES p_it_flight .

DATA wa LIKE LINE OF it_flight.

LOOP AT p_it_flight INTO wa.

WRITE: / wa-carrid COLOR COL_KEY,

wa-connid COLOR COL_KEY,

wa-fldate COLOR COL_KEY,

wa-seatsmax COLOR COL_KEY,

wa-seatsocc COLOR COL_KEY,

wa-percentage COLOR COL_KEY, '%'.

ENDLOOP.

ENDFORM. "display_data

Regards,

Balakumar.G

Reward Points if helpful.

Read only

Former Member
0 Likes
1,311

In the form try this,

FORM display_data

USING p_it_flight LIKE it_flight.

DATA wa LIKE LINE OF p_it_flight.

LOOP AT p_it_flight INTO wa.

WRITE: / wa-carrid COLOR COL_KEY,

wa-connid COLOR COL_KEY,

wa-fldate COLOR COL_KEY,

wa-seatsmax COLOR COL_KEY,

wa-seatsocc COLOR COL_KEY,

wa-percentage COLOR COL_KEY, '%'.

ENDLOOP.

ENDFORM. "display_data

Read only

0 Likes
1,311

wow... so many answers. Ok guys, thanx all of you ... problem solved.

sdn.sap.com forum rulez

Edited by: Milascon Daniel on Mar 25, 2008 11:30 AM

Read only

Former Member
0 Likes
1,311

Hi ,

For passing an internal table use the addition of keyword TABLES when we r calling a subroutine using PERFORM statement and in FORM use TABLES ADDITION and also STRUCTURE addition. like in program below.

TYPES: BEGIN OF sbc400focc,

carrid TYPE sflight-carrid,

connid TYPE sflight-connid,

fldate TYPE sflight-fldate,

seatsmax TYPE sflight-seatsmax,

seatsocc TYPE sflight-seatsocc,

percentage(3) TYPE p DECIMALS 2,

END OF sbc400focc.

PARAMETER pa_carr TYPE sflight-carrid.

DATA: it_flight TYPE TABLE OF sbc400focc,

wa_flight LIKE LINE OF it_flight,

z_table TYPE sbc400focc.

SELECT *

FROM sflight

INTO CORRESPONDING FIELDS OF wa_flight

WHERE carrid = pa_carr.

wa_flight-percentage = 100 * wa_flight-seatsocc / wa_flight-seatsmax.

INSERT wa_flight INTO TABLE it_flight.

ENDSELECT.

IF sy-subrc EQ 0.

SORT it_flight BY percentage.

PERFORM display_data TABLES it_flight.

ELSE.

WRITE: 'No ' , pa_carr , ' flights found!'.

ENDIF.

&----


*& Form display_data

&----


  • text

----


FORM display_data

TABLES p_it_flight STRUCTURE z_table .

DATA wa LIKE LINE OF p_it_flight.

LOOP AT p_it_flight INTO wa .

WRITE: / wa-carrid COLOR COL_KEY,

wa-connid COLOR COL_KEY,

wa-fldate COLOR COL_KEY,

wa-seatsmax COLOR COL_KEY,

wa-seatsocc COLOR COL_KEY,

wa-percentage COLOR COL_KEY, '%' COLOR COL_KEY.

ENDLOOP.

ENDFORM. "display_data