‎2008 Jul 04 10:25 AM
Hi experts..
I am getting a error message as 'there is a comma after proceeding colon after select? ' in below code..
&----
*& Report ZALV_FLIGHT
*&
&----
*&
*&
&----
REPORT ZALV_FLIGHT.
TABLES : SCARR , SPFLI.
TYPE-POOLS : SLIS.
**********DATA DECLARATION******************
TYPES : BEGIN OF TS_ITAB ,
CARRID LIKE SCARR-CARRID,
CARRNAME LIKE SCARR-CARRNAME,
CONNID LIKE SPFLI-CONNID,
CITYFROM LIKE SPFLI-CITYFROM,
CITYTO LIKE SPFLI-CITYTO,
DEPTIME LIKE SPFLI-DEPTIME,
ARRTIME LIKE SPFLI-ARRTIME,
END OF TS_ITAB.
DATA : IT_ITAB TYPE STANDARD TABLE OF TS_ITAB WITH HEADER LINE .
DATA : WA_ITAB TYPE TS_ITAB.
*DATA : G_REPID TYPE SY-REPID.
DATA : GT_OUTTAB TYPE TS_ITAB OCCURS 0 WITH HEADER LINE .
DATA : GW_OUTAB TYPE TS_ITAB.
*REFRESH IT_ITAB.
*CLEAR WA_ITAB.
DATA : W_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA : T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : POS TYPE I .
POS = 1.
*******************INITIALIZATION*************************
INITIALIZATION.
*G_REPID = SY-REPID.
*PERFORM FIELDCAT_INIT USING T_FIELDCAT .
CLEAR W_FIELDCAT.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SCARR-CARRID'.
W_FIELDCAT-REF_FIELDNAME = 'CARRID'.
W_FIELDCAT-REF_TABNAME = 'SCARR'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SCARR-CARRNAME'.
W_FIELDCAT-REF_FIELDNAME = 'CARRNAME'.
W_FIELDCAT-REF_TABNAME = 'SCARR'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SPFLI-CONNID'.
W_FIELDCAT-REF_FIELDNAME = 'CONNID'.
W_FIELDCAT-REF_TABNAME = 'SPFLI'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SPFLI-CITYFROM'.
W_FIELDCAT-REF_FIELDNAME = 'CITYFROM'.
W_FIELDCAT-REF_TABNAME = 'SPFLI'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SPFLI-CITYTO'.
W_FIELDCAT-REF_FIELDNAME = 'CITYTO'.
W_FIELDCAT-REF_TABNAME = 'SPFLI'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SPFLI-DEPTIME'.
W_FIELDCAT-REF_FIELDNAME = 'DEPTIME'.
W_FIELDCAT-REF_TABNAME = 'SPFLI'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
CLEAR W_FIELDCAT.
POS = POS + 1.
W_FIELDCAT-COL_POS = POS.
W_FIELDCAT-FIELDNAME = 'SPFLI-ARRTIME'.
W_FIELDCAT-REF_FIELDNAME = 'ARRTIME'.
W_FIELDCAT-REF_TABNAME = 'SPFLI'.
W_FIELDCAT-KEY = 'X'.
APPEND W_FIELDCAT TO T_FIELDCAT.
********************DATA SELECTION ************
START-OF-SELECTION.
SELECT SCARR~CARRID
SCARR~CARRNAME
SPFLI~CONNID
SPFLI~CITYFROM
SPFLI~CITYTO
SPFLI~DEPTIME
SPFLI~ARRTIME
INTO
( GW_OUTAB-SCARR-CARRID,
GW_OUTAB-SCARR-CARRNAME,
GW_OUTAB-SPFLI-CONNID,
GW_OUTAB-SPFLI-CITYFROM,
GW_OUTAB-SPFLI-CITYTO,
GW_OUTAB-SPFLI-DEPTIME,
GW_OUTAB-SPFLI-ARRTIME )
FROM SCARR INNER JOIN SPFLI ON SCARRCARRID = SPFLICARRID WHERE
SCARR~CARRID BETWEEN 'AA' AND 'HH'.
APPEND GW_OUTAB TO GT_OUTTAB.
ENDSELECT.
*******END-OF-SELECTION*******************
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'SY-REPID'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = T_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = GT_OUTTAB
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.
‎2008 Jul 04 10:35 AM
Hi Chetan ,
Change your select query as per below code..
SELECT scarr~carrid
scarr~carrname
spfli~connid
spfli~cityfrom
spfli~cityto
spfli~deptime
spfli~arrtime
*( GW_OUTAB-CARRID,
*GW_OUTAB-CARRNAME,
*GW_OUTAB-CONNID,
*GW_OUTAB-CITYFROM,
*GW_OUTAB-CITYTO,
*GW_OUTAB-DEPTIME,
*GW_OUTAB-ARRTIME )
INTO TABLE gt_outtab
FROM scarr INNER JOIN spfli ON scarrcarrid = spflicarrid WHERE
scarr~carrid BETWEEN 'AA' AND 'HH'.
Instead of select .. endselect use into table gt_outtab.
Reward if Helpful.
Regards,
Sachin M m
‎2008 Jul 04 10:33 AM
Hi,
See this sample code for using inner joins.
SELECT kvbeln kfkart kfkdat kkunag kknumv kspart kinco1 kktgrd pprctr pwerks
pposnr pposnr pfkimg pspart pmatnr parktx plgort paubel p~ktgrm
pmatkl pkzwi1 pkzwi2 pkzwi3 pkzwi4 pkzwi5 p~kzwi6
pcmpre pmwsbp pnetwr pktgrm ppstyv sbrand_id qktokd qkunnr
FROM vbrk AS k INNER JOIN vbrp AS p ON kvbeln = pvbeln
INNER JOIN mara AS s ON pmatnr = smatnr
INNER JOIN kna1 AS q ON kkunag = qkunnr
INTO CORRESPONDING FIELDS OF TABLE ist_vbrp
WHERE k~vbeln IN s_vbeln AND
k~vkorg = p_salorg AND
k~vtweg IN s_distc AND
k~bukrs = p_bukrs AND
k~spart IN s_div AND
k~fkdat IN s_date AND
p~matnr IN s_mat_no AND
p~werks IN p_plant AND
p~shkzg IN l_shkzg AND
s~brand_id IN s_brand AND
p~vkgrp IN s_vkgrp AND
q~kunnr IN s_kunnr AND
q~ktokd IN s_ktokd AND
k~fkart IN ('ZIV','ZTP','ZCI','S1') AND
p~prctr IN s_prctr.
hope this helps you.
Reward points if helpfull.
Thanks & Regards.
Y.R.Prem Kumar
‎2008 Jul 04 10:35 AM
Hi Chetan ,
Change your select query as per below code..
SELECT scarr~carrid
scarr~carrname
spfli~connid
spfli~cityfrom
spfli~cityto
spfli~deptime
spfli~arrtime
*( GW_OUTAB-CARRID,
*GW_OUTAB-CARRNAME,
*GW_OUTAB-CONNID,
*GW_OUTAB-CITYFROM,
*GW_OUTAB-CITYTO,
*GW_OUTAB-DEPTIME,
*GW_OUTAB-ARRTIME )
INTO TABLE gt_outtab
FROM scarr INNER JOIN spfli ON scarrcarrid = spflicarrid WHERE
scarr~carrid BETWEEN 'AA' AND 'HH'.
Instead of select .. endselect use into table gt_outtab.
Reward if Helpful.
Regards,
Sachin M m
‎2008 Jul 04 10:35 AM
Hi,
INTO
( GW_OUTAB-SCARR-CARRID,
GW_OUTAB-SCARR-CARRNAME,
GW_OUTAB-SPFLI-CONNID,
GW_OUTAB-SPFLI-CITYFROM,
GW_OUTAB-SPFLI-CITYTO,
GW_OUTAB-SPFLI-DEPTIME,
GW_OUTAB-SPFLI-ARRTIME )
FROM SCARR INNER JOIN SPFLI ON SCARRCARRID = SPFLICARRID WHERE
SCARR~CARRID BETWEEN 'AA' AND 'HH'.
here ur not using work area, directly fetcing into corresponding fields.
but here dont put ' , ' for every field in above code give the space only.
‎2008 Jul 04 10:43 AM
Hi Chetan,
Instead of using SELECT-ENDSELECT go for SELECT and move the selected fields into the internal table.
Here in your situation, you have the table GT_OUTTAB with same fields into which you are appending the data. So, its better to use the whole intenal table GT_OUTTAB.
Try the following.
Select
<field1>
-
-
-
<fieldn>
from <dbtable>
into table GT_OUTTAB
where <condition>.
And infact make sure that you never use
SELECT-ENDSELECT statement as there are performance issues.
Hope this helps you.
Regards,
Chandra Sekhar
‎2008 Jul 04 10:45 AM
Use the below select query.
SELECT
SCARR~CARRID
SCARR~CARRNAME
SPFLI~CONNID
SPFLI~CITYFROM
SPFLI~CITYTO
SPFLI~DEPTIME
SPFLI~ARRTIME
INTO
GW_OUTAB
FROM SCARR as SCARR innER JOIN SPFLI as SPFLI ON SCARRCARRID = SPFLICARRID
where SCARR~CARRID BETWEEN 'AA' AND 'HH'.
‎2008 Jul 04 11:00 AM
You have to specify
INTO (GW_OUTAB-CARRID,
GW_OUTAB-CARRNAME,
GW_OUTAB-CONNID,
GW_OUTAB-CITYFROM,
GW_OUTAB-CITYTO,
GW_OUTAB-DEPTIME,
GW_OUTAB-ARRTIME)Specify GW_OUTAB-CARRID instead of GW_OUTAB-SCARR-CARRID.
i.e. GW_OUTTAB-<Fieldname> rather than GW_OUTTAB-<Tablename>-<fieldname> as you are referring to internal table
The better approach will be directly use INTO GW_OUTTAB as the sequence of the fields in the workarea is same as that of sequence in which you are fetching the fields.
Reward if useful.
‎2009 Dec 10 12:28 PM