Itab declaration
Hi,
Iam trying to declare two strucures into one itab like this.
data: begin of t_qmel occurs 0.
<b> include structure qmel.
include structure qmih.</b>
data: fegrp like qmfe-fegrp,
fecod like qmfe-fecod,
data: end of t_qmel.
Since common fields(MANDT & QMNUM) are existing in QMIH it is throwing the error.How can i avoid that? I dont want to declare field by field using QMIH.
cheers
kaki
*& Report YCHATEST *
REPORT YCHATEST .
TYPES: BEGIN OF rec1,
f1(1) TYPE C,
f2 TYPE I,
END OF rec1.
TYPES: BEGIN OF rec2.
INCLUDE TYPE rec1 AS g RENAMING WITH SUFFIX _g.
INCLUDE TYPE rec1 AS h RENAMING WITH SUFFIX _h.
TYPES: END OF rec2.
DATA: str TYPE rec2.
The structure str consists of four components str-f1_g, str-f2_g, str-f1_h and str-f2_h. Using the group component str-g you can address the first two components; you can then address the latter two using str-h These substructures are of the type rec1.
Similar Messages
-
Need ITAB declaration for type defined structure.
Hi All,
I have defined my ITAB as below
TYPES: begin of ZRMCP1.
INCLUDE TYPE RMCP1.
TYPES: end of ZRMCP1.
data:it_rmcp1 type table of ZRMCP1.
data:wa_rmcp1 like line of it_rmcp1.
When I am checking in Debugging my IT_RMCP1 is showing only first 7 fields.
Tell me how to declare my ITAB for getting all the fileds.
Thanks,
Shiva.Old or new debugger?
I just checked it, using your data declaration in the new debugger, and all columns are there. You do have to use the scroll bar at the bottom of the table control, or the 'arrow' icons |<, <, > and >| at the top of the table control.
In the classic (old) debugger (if internal table has at least ONE entry), you can use the icons at top of the screen |<, <, > and >|, or use function code CTRLSHIFTF5 / F6 F7 or F8 to move back and forth.
Edited by: Micky Oestreich on Jun 4, 2009 5:27 PM -
Itab declaration include structure error
hi ,
types : begin of it_address_info_type,
include structure zadrc,
end of it_address_info_type.
here zadrc is a structure.
why its giving error.
shall i need to change this structure to table?
if yes how i will do that?Hi ,
Please make it as,
types : begin of type.
include type zadrc.
types : end of type.
or
TYPES: iref TYPE REF TO ZADRC.
or
TYPES: iref type table of mara.
or
TYPES: iref type standard table of mara.
Else.
data : begin of it_address_info_type.
include structure zadrc.
data : end of it_address_info_type.
If you use types it is used to create user defined data type.
But you are refrerring a data object as zadrc. Thats why it shows error.
Regards,
Sankar.
Edited by: sankar on Mar 23, 2008 8:31 AM -
Problem in uploading text file to itab
Hi experts,
I declared a itab with two fields which refers a a dB table fields.Then i created a excel file: In the firest column i placed entry for the first field
and in the second column i placed entry for the second field.Both fields i have taken from thatDB table.Then i saved that excel file as type text-tab delimited.Then i called GUI_UPLOAD.
So when exicute my pgm i see the contents in the itab as follows:
Field1 field2
kv_sub_area0 004#descvription by ravikumar.
But i should get like this:
Field1 field2
kv_sub_area0004 descvription by ravikumar.
Why # is coming and it is taking some characters from field1 to filed2.
I am using version 4.7 Actually field1 is of length 30 as per DB table.
If i reduce the length in the itab declaration then it is giving corect..
can any body tellme why this problem occurs?
Regardsin GUI_UPLOAD
mention as
FILE_TYPE = 'ASC'.
HAS_FIELD_SEPERATOR = 'X'.
if you provide the above both, i believe your problem will be solved.
that '#' special symbol is for horizantal tab.
regards
srikanth
Message was edited by: Srikanth Kidambi -
Getting error when creating internal table
hi i m creating internal table giving erro like 'VBELN' must be flat structure.
DATA: BEGIN OF INT_VBAK,
VBELN LIKE VBELN-VBAK,
AUDAT LIKE AUDAT-VBAK,
KWMENGE LIKE KWMENGE-VBAP,
ARKTX LIKE ARKTX-VBAP,
WERKS LIKE WERKS-VBAP,
LFIMG LIKE LFIMG-VBAP.
END OF INT_VBAK.
thanks .Hii Laxman..
DATA: BEGIN OF INT_VBAK,
VBELN LIKE VBELN-VBAK,
AUDAT LIKE AUDAT-VBAK,
KWMENGE LIKE KWMENGE-VBAP,
ARKTX LIKE ARKTX-VBAP,
WERKS LIKE WERKS-VBAP,
LFIMG LIKE LFIMG-VBAP.
END OF INT_VBAK.
This is Not itab declaration.. it will only Create a work area.
So Declare like this
DATA: BEGIN OF INT_VBAK <b>occurs 100,</b>
VBELN LIKE VBELN-VBAK,
AUDAT LIKE AUDAT-VBAK,
KWMENGE LIKE KWMENGE-VBAP,
ARKTX LIKE ARKTX-VBAP,
WERKS LIKE WERKS-VBAP,
LFIMG LIKE LFIMG-VBAP.
END OF INT_VBAK.
or
DATA: BEGIN OF ST_VBAK ,
VBELN LIKE VBELN-VBAK,
AUDAT LIKE AUDAT-VBAK,
KWMENGE LIKE KWMENGE-VBAP,
ARKTX LIKE ARKTX-VBAP,
WERKS LIKE WERKS-VBAP,
LFIMG LIKE LFIMG-VBAP.
END OF ST_VBAK.
DATA : INT_VBAK LIKE TABLE OF ST_VBAK.
Then it works.
<b>Reward if Helpful</b> -
How to add a column in alv grid report to show the serial no.
i need to add column to show the row no. of the report say as :
1
2
3
this has to be the first column
how to maintain a variable for this and how to use it??
please helpone simple way is in your final itab declare a slno type i field
data : begin of itab occurs 0,
slno type i,
<other fields>
end of itab.
after filling the data in itab.
loop at itab.
itab-slno = sy-tabix.
modify itab.
endloop.
in fieldcatalog also you have to define that slno field as the first column.
but it will change its order if you are sorting the output or filtering the output.
regards
shiba dutta -
hi experts,
i want to display subtotal in the alv output using control break statement, without using alv functionality and layout.
my code is given below, how can i add subtotal field and display them in alv ,
*& Report Y_VARUNSHARMA
REPORT Y_VARUNSHARMA.
TABLES: VBAK.
TYPE-POOLS: SLIS.
TYPES: BEGIN OF T_ITAB,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
ERNAM LIKE VBAK-ERNAM,
ANGDT LIKE VBAK-ANGDT,
BNDDT LIKE VBAK-BNDDT,
AUART LIKE VBAK-AUART,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
CHARG LIKE VBAP-CHARG,
MAKTX LIKE MAKT-MAKTX,
NETPR LIKE VBAP-NETPR,
VGBEL LIKE VBAK-VGBEL,
MEINS LIKE VBAP-MEINS,
SMENG LIKE VBAP-SMENG,
END OF T_ITAB.
DATA: G_REPID LIKE SY-REPID.
DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: I_ITAB TYPE T_ITAB OCCURS 0,
WA_ITAB TYPE T_ITAB.
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: I_LISTHEADER TYPE SLIS_T_LISTHEADER,
WA_LISTHEADER TYPE SLIS_LISTHEADER.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: DOCNO FOR VBAK-VBELN.
PARAMETER DOCTYPE LIKE VBAK-AUART.
SELECT-OPTIONS: DATE FOR SY-DATUM.
SELECTION-SCREEN SKIP 2.
PARAMETER P_CHECK AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM BUILD_CATALOGE.
PERFORM LIST_HEADER.
PERFORM SET_LAYOUT.
AT SELECTION-SCREEN.
IF DOCNO-LOW = '' .
MESSAGE E000(ZVARUN) .
elseif DOCNO-HIGH = '' .
MESSAGE E001(ZVARUN) .
ENDIF.
START-OF-SELECTION.
PERFORM GET_DATA.
*PERFORM DISPLAY.
END-OF-SELECTION.
IF P_CHECK = 'X'.
PERFORM DOWNLOAD_EXCEL.
ELSE.
PERFORM DISPLAY.
ENDIF.
FORM DOWNLOAD_EXCEL.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\FILE.XLS'
FILETYPE = 'XLS'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = I_ITAB
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
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.
FORM BUILD_CATALOGE.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_M = 'SALES DOC'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERDAT'.
WA_FIELDCAT-SELTEXT_M = 'DATE'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ERNAM'.
WA_FIELDCAT-SELTEXT_M = 'NAME'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'ANGDT'.
WA_FIELDCAT-SELTEXT_M = 'VALID FR'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BNDDT'.
WA_FIELDCAT-SELTEXT_M = 'VALID TO'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'AUART'.
WA_FIELDCAT-SELTEXT_M = 'DOC TYPE'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'POSNR'.
WA_FIELDCAT-SELTEXT_M = 'DOC ITEM'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'CHARG'.
WA_FIELDCAT-SELTEXT_M = 'BATCH NO'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MAKTX'.
WA_FIELDCAT-SELTEXT_M = 'MATERIAL DESC'.
WA_FIELDCAT-EDIT = 'X'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-SELTEXT_M = 'UNIT PRICE'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'VGBEL'.
WA_FIELDCAT-SELTEXT_M = 'RFR DOC NO'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-SELTEXT_M = 'UNIT'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'SMENG'.
WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
*WA_FIELDCAT-OUTPUTLEN = 10.
APPEND WA_FIELDCAT TO I_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM.
FORM LIST_HEADER.
WA_LISTHEADER-TYP = 'H'.
WA_LISTHEADER-INFO = 'RJT COMPUSOLUTIONS'.
APPEND WA_LISTHEADER TO I_LISTHEADER.
CLEAR WA_LISTHEADER.
ENDFORM.
FORM SET_LAYOUT.
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.
FORM DISPLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = I_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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = I_ITAB
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.
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LISTHEADER
I_LOGO = 'RJT'
I_END_OF_LIST_GRID =
I_ALV_FORM =
ENDFORM.
FORM GET_DATA.
SELECT AVBELN AERDAT AERNAM AANGDT ABNDDT AAUART AVGBEL BPOSNR BMATNR BCHARG BMEINS BSMENG BNETPR CMAKTX INTO CORRESPONDING FIELDS OF TABLE I_ITAB FROM ( ( VBAK AS A INNER JOIN VBAP AS B
ON AVBELN = BVBELN ) INNER JOIN MAKT AS C ON BMATNR = CMATNR ) WHERE AVBELN IN DOCNO AND AAUART = DOCTYPE .
ENDFORM.
FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM L_SELFIELD TYPE SLIS_SELFIELD.
CASE L_UCOMM.
WHEN '&IC1'.
IF L_SELFIELD-FIELDNAME = 'VBELN'.
CALL TRANSACTION 'VA02'.
ELSEIF
L_SELFIELD-FIELDNAME = 'MATNR'.
CALL TRANSACTION 'MM02'.
ENDIF.
ENDCASE.
ENDFORM.if u dont want std alv functionality,u have to explicitly sum it and insert it to ur itab.
for dat u have to change ur itab declaration like dis..
assuming u want to display the subtotals of NETPR based on vbeln...
TYPES: BEGIN OF T_ITAB,
VBELN LIKE VBAK-VBELN,
NETPR LIKE VBAP-NETPR,
ERDAT LIKE VBAK-ERDAT,
ERNAM LIKE VBAK-ERNAM,
ANGDT LIKE VBAK-ANGDT,
BNDDT LIKE VBAK-BNDDT,
AUART LIKE VBAK-AUART,
POSNR LIKE VBAP-POSNR,
MATNR LIKE VBAP-MATNR,
CHARG LIKE VBAP-CHARG,
MAKTX LIKE MAKT-MAKTX,
VGBEL LIKE VBAK-VGBEL,
MEINS LIKE VBAP-MEINS,
SMENG LIKE VBAP-SMENG,
END OF T_ITAB.
den in form get_data.
aftr select statement. itab2 is the final table
sort itab by vbeln.
loop at it itab into wa.
move wa TO wa1.
v_netpr = v_netpr + wa-netpr.
append wa1 to itab2.
at end of vbeln.
clear wa1.
wa1-netpr = v_netpr.
append wa1 to itab2.
endat.
endloop. -
Reading fixed length flatfile & splitting it into header and lineitem data
Hi Friends,
I am reading a fixed length flat file from application server into an Internal table.
But problem is, data in flat file is in the below format with fixed start and end positions.
1 - 78 - control header
1 - 581 - Invoice header data
1 - 411 - Invoice Line item data
1 - 45 - trailer record
There will be one control header and one trailer record per file and number of invoice headers and its line items can vary.
There is unique identifiers to identify as below.
Control header - starts with 'CHR'
Invoice Header starts with - '000'
Invoice Lineitem stats with - '001'
trailer record - starts with 'TRL'
So its like
CHR.......control data..(79)000.....header data...(660)001....lineitem1...(1481)001...lineitem2....multiples of 411 and 581 and ends with... TRL...trailer record..
(position)
I am first reading the data set and store in internal table with a field of 255char.
by looping on above ITAB i have to split it into Header records and line item records.
Did anyone face this kind of scenario before. If yes appreciate if you can throw some ideas on logic to split this data.
Any help in splitting up the data is highly appreciated.
Regards,
Simha
ITAB declaration
DATA: BEGIN OF ITAB OCCURS 0,
FIELD(255),
END OF ITAB,
lt_header type table of ZTHDR,
lt_lineitem type table of ZTLINITM.Hi,
i am sending sample code which resembles your requiremeant.
data: BEGIN OF it_input OCCURS 0, "used for store all the data in one line.
line type string ,
END OF it_input,
it_header type TABLE OF string WITH HEADER LINE,"use to store all header with corresponding items
it_item type TABLE OF string WITH HEADER LINE.."used to store all item data
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'd:\test.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = it_input
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT it_input.
write : it_input-line.
ENDLOOP.
before doing the below steps just takethe controle record and trail record cutt of from the table input based up on the length
split it_input-line AT '000' INTO TABLE it_header IN CHARACTER MODE.
LOOP AT it_header.
split it_header AT '0001' INTO TABLE it_item IN CHARACTER MODE.
write :/ it_header.
ENDLOOP.
after this you need to cut the records in tocorresponding fields in to respective tables by putting loop on item and header table as i decleared above.
i think this may solve your problem you need to keep some minnor effort.
Regaurds,
Sree.. -
Budget Report to show the fixed and variable split for Materials
Hello Gurus,
Could you tell me if there is a budget standards report that will show the fixed and variable split for Materials? Example: Labor, Equip., QC and Overheads?
I need it for the correctly rolled-up 'final material number' step. The report that does this now (without fixed and var split) is the Indented BOM Comparison (sret - cost mgmt-product costing - cost mgmt-customized reports - cost estimate comparison - costed multilevel compare rpt - Indented BOM Comparison).
Thanks,
Jeffersonone simple way is in your final itab declare a slno type i field
data : begin of itab occurs 0,
slno type i,
<other fields>
end of itab.
after filling the data in itab.
loop at itab.
itab-slno = sy-tabix.
modify itab.
endloop.
in fieldcatalog also you have to define that slno field as the first column.
but it will change its order if you are sorting the output or filtering the output.
regards
shiba dutta -
Transforming XML into Internal Table
Hi guys, I have tried a simple nested code but i fail to write in the Name, Phone and Email portion ... I manage to get to the header level... Can any one gimme some pointers?
PS: I have read to those threads posted here already before I got this far
<b><u>MAIN CODE</u></b>
REPORT ZTESTJASON11.
TYPES: BEGIN OF T_HEADER,
NAME(140),
PHONE(23),
EMAIL(100),
END OF T_HEADER,
D_HEADER TYPE T_HEADER OCCURS 0.
TYPES: BEGIN OF T_ITEM,
HEADER TYPE D_HEADER,
END OF T_ITEM,
D_ITEM TYPE T_ITEM OCCURS 0.
TYPES: BEGIN OF T_LIST,
ITEM TYPE D_ITEM,
END OF T_LIST,
D_LIST TYPE T_LIST OCCURS 0.
TYPES: BEGIN OF TYPE_DATA,
LIST TYPE D_LIST,
END OF TYPE_DATA.
DATA: RESPONSE TYPE TABLE OF TYPE_DATA.
DATA: XMLOUT TYPE STRING.
DATA: ITAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: HEADER_WA TYPE T_HEADER,
HEADER_LN TYPE D_HEADER,
ITEM_WA TYPE T_ITEM,
ITEM_LN TYPE D_ITEM,
LIST_WA TYPE T_LIST,
LIST_LN TYPE D_LIST.
MOVE: 'JIM BEAN' TO HEADER_WA-NAME,
'+6512345678' TO HEADER_WA-PHONE,
'[email protected]' TO HEADER_WA-EMAIL.
APPEND HEADER_WA TO HEADER_LN.
ITEM_WA-HEADER = HEADER_LN.
APPEND ITEM_WA TO ITEM_LN.
LIST_WA-ITEM = ITEM_LN.
APPEND LIST_WA TO LIST_LN.
myXML-LIST = LIST_LN.
PERFORM UPLOAD_XML.
FORM UPLOAD_XML .
REFRESH ITAB.
clear RESPONSE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:test11.XML'
filetype = 'BIN'
TABLES
data_tab = ITAB.
LOOP AT ITAB.
CONCATENATE XMLOUT ITAB-LINE INTO XMLOUT.
ENDLOOP.
CALL TRANSFORMATION ('ZTEST11X2A')
SOURCE XML XMLOUT
RESULT RESPONSE = RESPONSE.
BREAK-POINT.
ENDFORM.
<b><u>XML CODE (test11.xml)</u></b>
<?xml version="1.0" encoding="iso-8859-1"?>
<myXML>
<LIST>
<ITEM>
<HEADER>
<NAME>JIM BEAN</NAME>
<PHONE>+6512345678</PHONE>
<EMAIL>[email protected]</EMAIL>
</HEADER>
</ITEM>
</LIST>
</myXML>
<b><u>XSLT CODE (ZTEST11X2A)</u></b>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sap="http://www.sap.com/abapxml"
>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
<asx:values>
<RESPONSE>
<myXML>
<LIST>
<ITEM>
<xsl:for-each select="ITEM">
<I>
<HEADER>
<NAME> <xsl:value-of select="NAME"/> </NAME>
<PHONE> <xsl:value-of select="PHONE"/> </PHONE>
<EMAIL> <xsl:value-of select="EMAIL"/> </EMAIL>
</HEADER>
</I>
</xsl:for-each>
</ITEM>
</LIST>
</myXML>
</RESPONSE>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform>Thanks a million in advance Raja, thanks for ur help, realli appreaciate it! ")
Here it is...
<u><b>MAIN CODE (itab declaration)</b></u>
REPORT ZTESTJASON11.
TYPES: BEGIN OF T_HEADER,
NAME(140),
PHONE(23),
EMAIL(100),
END OF T_HEADER,
D_HEADER TYPE T_HEADER OCCURS 0.
TYPES: BEGIN OF T_ITEM,
HEADER TYPE D_HEADER,
END OF T_ITEM,
D_ITEM TYPE T_ITEM OCCURS 0.
TYPES: BEGIN OF T_LIST,
ITEM TYPE D_ITEM,
END OF T_LIST,
D_LIST TYPE T_LIST OCCURS 0.
TYPES: BEGIN OF TYPE_DATA,
LIST TYPE D_LIST,
END OF TYPE_DATA.
DATA: RESPONSE TYPE TABLE OF TYPE_DATA.
DATA: XMLOUT TYPE STRING.
DATA: ITAB LIKE SOLI OCCURS 0 WITH HEADER LINE.
DATA: HEADER_WA TYPE T_HEADER,
HEADER_LN TYPE D_HEADER,
ITEM_WA TYPE T_ITEM,
ITEM_LN TYPE D_ITEM,
LIST_WA TYPE T_LIST,
LIST_LN TYPE D_LIST.
MOVE: 'JIM BEAN' TO HEADER_WA-NAME,
'+6512345678' TO HEADER_WA-PHONE,
'[email protected]' TO HEADER_WA-EMAIL.
APPEND HEADER_WA TO HEADER_LN.
ITEM_WA-HEADER = HEADER_LN.
APPEND ITEM_WA TO ITEM_LN.
LIST_WA-ITEM = ITEM_LN.
APPEND LIST_WA TO LIST_LN.
myXML-LIST = LIST_LN.
PERFORM UPLOAD_XML.
FORM UPLOAD_XML .
REFRESH ITAB.
clear RESPONSE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:test11.XML'
filetype = 'BIN'
TABLES
data_tab = ITAB.
LOOP AT ITAB.
CONCATENATE XMLOUT ITAB-LINE INTO XMLOUT.
ENDLOOP.
CALL TRANSFORMATION ('ZTEST11X2A')
SOURCE XML XMLOUT
RESULT RESPONSE = RESPONSE.
BREAK-POINT.
ENDFORM.
<u><b>XML CODE (test11.xml)</b></u>
<?xml version="1.0" encoding="iso-8859-1"?>
<myXML>
<LIST>
<ITEM>
<HEADER>
<NAME>JIM BEAN</NAME>
<PHONE>+6512345678</PHONE>
<EMAIL>[email protected]</EMAIL>
</HEADER>
</ITEM>
</LIST>
</myXML>
<u><b>XSLT CODE (ZTEST11X2A)</b></u>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:sap="http://www.sap.com/abapxml"
>
<xsl:template match="/">
<asx:abap xmlns:asx="http://www.sap.com/abapxml">
<asx:values>
<RESPONSE>
<myXML>
<LIST>
<ITEM>
<xsl:for-each select="ITEM">
<dataset1>
<HEADER>
<xsl:for-each select="HEADER">
<dataset2>
<NAME>
<xsl:value-of select="NAME"/>
</NAME>
<PHONE>
<xsl:value-of select="PHONE"/>
</PHONE>
<EMAIL>
<xsl:value-of select="EMAIL"/>
</EMAIL>
</dataset2>
</xsl:for-each>
</HEADER>
</dataset1>
</xsl:for-each>
</ITEM>
</LIST>
</myXML>
</RESPONSE>
</asx:values>
</asx:abap>
</xsl:template>
</xsl:transform> -
How to convert date without using conversion exit?
hi!! Guys,
please can anybody help me how to compare date which is not in actual format
i.e. (when comparing BKPF-budat with TCURR-gdatu in where condition of a Select query its giving syntax error "when you use the addition 'fOR ALL ENTRIES IN itab' the fields gdatu and it_bkpf-budat" must have the same type and the same length. its very urgent...
thanks in advance.
akanksha.try like this.
data : year(4),
mon(2),
day(2).
in itab declare field cbudat(8) type c.
loop at itab.
year = itab-budat(4).
mon = itab-budat+4(2).
day = itab-budat+6(2).
concatenate year mon day into itab-cbudat.
modify itab.
endloop.
now use select for all entries and check gdatu = itab-cbudat.
regards
shiba dutta -
ALV Row should apper in BOLD when order type is "ZSTP1" in the cloumn
Hi ,
CAn you please provide the solution ,
I am using ALV GRID function module.
When perticluar value like order type is 'ZSTP1', I need to bold that row (all the values in that row should be bold).
Thanks ,
veerendra.Hi veerendara,
1. BOLD is not possible.
2. However, We can CHANGE THE COLORS,
based upon the condition.
3. Not only the full row color,
we can also manipulate the color in each cell.
4.
IMPORTANT THINGS
a. Extra field in internal table
clr TYPE slis_t_specialcol_alv,
(this field will contain the colour codes)
b. assign fieldname to alv layout
alvly-coltab_fieldname = 'CLR'
c. work area for colour
DATA : clrwa TYPE slis_specialcol_alv.
d. Populating the color
Once again
Loop at ITAB.
*********logic
if itab-field < 0 "---negative
clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
clrwa-color-col = 6. <------- COLOUR 0-9
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP.
5. just copy paste in new program
6.
REPORT abc .
NECESSARY / MUST
TYPE-POOLS : slis.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_alv.
ITAB DECLARATION
DATA : prg TYPE sy-repid.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : clname(3) TYPE c,
clr TYPE slis_t_specialcol_alv,
END OF itab.
DATA : clrwa TYPE slis_specialcol_alv.
PARAMETERS : a TYPE c.
DATA : flname TYPE slis_fieldname.
SELECT
START-OF-SELECTION.
SELECT * FROM t001
INTO CORRESPONDING FIELDS OF TABLE itab..
LOOP AT itab..
IF SY-TABIX <= 5.
itab-clname = 'C50'.
ELSE.
itab-clname = 'C30'.
ENDIF.
MODIFY itab.
ENDLOOP.
LOOP AT ITAB.
check itab-bukrs = '1000'
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 4.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
ENDLOOP.
prg = sy-repid.
flname = 'CLNAME'.
alvly-info_fieldname = 'CLNAME'.
alvly-coltab_fieldname = 'CLR'.
LOOP AT ITAB.
if sy-tabix = 3.
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 1.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = prg
i_internal_tabname = 'ITAB'
i_inclname = prg
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
minimum
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2
extra
sy-uname = 'XYZAB'.
prg = sy-repid.
Excluding
DATA : excl TYPE slis_t_extab.
DATA : exclwa TYPE slis_extab.
exclwa = '&OUP'.
APPEND exclwa TO excl.
exclwa = '&ODN'.
APPEND exclwa TO excl.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid
is_layout = alvly
i_callback_user_command = 'ITAB_USER_COMMAND'
it_excluding =
excl
i_save = 'A'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form itab_user_command
text
-->WHATCOMM text
-->WHATROW text
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
BREAK-POINT.
ENDFORM. "itab_user_command
regards,
amit m. -
Guys,
I want to display the colour in the ALV output for some records.
please help.
reg,
vijayHi vijay,
1. Not only the full row color,
we can also manipulate the color in each cell.
2.
IMPORTANT THINGS
a. Extra field in internal table
clr TYPE slis_t_specialcol_alv,
(this field will contain the colour codes)
b. assign fieldname to alv layout
alvly-coltab_fieldname = 'CLR'
c. work area for colour
DATA : clrwa TYPE slis_specialcol_alv.
d. Populating the color
Once again
Loop at ITAB.
*********logic
if itab-field < 0 "---negative
clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
clrwa-color-col = 6. <------- COLOUR 0-9
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP.
5. just copy paste in new program
6.
REPORT abc .
NECESSARY / MUST
TYPE-POOLS : slis.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_alv.
ITAB DECLARATION
DATA : prg TYPE sy-repid.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : clname(3) TYPE c,
clr TYPE slis_t_specialcol_alv,
END OF itab.
DATA : clrwa TYPE slis_specialcol_alv.
PARAMETERS : a TYPE c.
DATA : flname TYPE slis_fieldname.
SELECT
START-OF-SELECTION.
SELECT * FROM t001
INTO CORRESPONDING FIELDS OF TABLE itab..
LOOP AT itab..
IF SY-TABIX <= 5.
itab-clname = 'C50'.
ELSE.
itab-clname = 'C30'.
ENDIF.
MODIFY itab.
ENDLOOP.
LOOP AT ITAB.
check itab-bukrs = '1000'
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 4.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
ENDLOOP.
prg = sy-repid.
flname = 'CLNAME'.
alvly-info_fieldname = 'CLNAME'.
alvly-coltab_fieldname = 'CLR'.
LOOP AT ITAB.
if sy-tabix = 3.
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 1.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = prg
i_internal_tabname = 'ITAB'
i_inclname = prg
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
minimum
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2
extra
sy-uname = 'XYZAB'.
prg = sy-repid.
Excluding
DATA : excl TYPE slis_t_extab.
DATA : exclwa TYPE slis_extab.
exclwa = '&OUP'.
APPEND exclwa TO excl.
exclwa = '&ODN'.
APPEND exclwa TO excl.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid
is_layout = alvly
i_callback_user_command = 'ITAB_USER_COMMAND'
it_excluding =
excl
i_save = 'A'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form itab_user_command
text
-->WHATCOMM text
-->WHATROW text
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
BREAK-POINT.
ENDFORM. "itab_user_command
regards,
amit m. -
Drop down in REUSE_ALV_GRID_DISPLAY
Hi,
I am using REUSE_ALV_GRID_DISPLAY function module,
I am facing a problem with drop down list used for the fields that are displayed in ALV.
To get the search help or drop down for the field I am using the below code in field catalogue.
wa_p_i_fieldcat_alv-fieldname = 'VBTYP'.
wa_p_i_fieldcat_alv-ddictxt = 'M'.
wa_p_i_fieldcat_alv-seltext_m = 'VBTYP' .
wa_p_i_fieldcat_alv-seltext_l = wa_p_i_fieldcat_alv-seltext_s = wa_p_i_fieldcat_alv-seltext_m.
wa_p_i_fieldcat_alv-reptext_ddic = wa_p_i_fieldcat_alv-seltext_s.
wa_p_i_fieldcat_alv-ddic_outputlen = 1 .
wa_p_i_fieldcat_alv-col_pos = 4.
wa_p_i_fieldcat_alv-edit = 'X'.
wa_p_i_fieldcat_alv-ref_fieldname = 'VBTYP' .
wa_p_i_fieldcat_alv-ref_tabname = 'ZVBOOKING'.
APPEND wa_p_i_fieldcat_alv TO p_i_fieldcat_alv.
But for the field VBTYP the values are maintained in domain level value range.
So when I enter any value in the field 'VBTYP' and save the value, and try to deleted that value, FM is poping me an error message 'Enter an valid value', which should not happen, since its not a mandatory field in ZVBOOKING table.
Please any one guide me how to over come it.
Correct answer, points will be rewarded.
Regards,
Nithyacheck this sample program this will help you
*& Report Z_PRA_16 *
*& classical & alv with header line *
REPORT z_pra_16 NO STANDARD PAGE HEADING
LINE-COUNT 20 " no of records in a single page
LINE-SIZE 100."no of colons in a page.
DECLARING STRUCTURE.
TYPES:
BEGIN OF type_wa,
carrid LIKE sflight-carrid,
connid LIKE sflight-connid,
fldate LIKE sflight-fldate,
price LIKE sflight-price,
currancy LIKE sflight-currency,
seatsmax LIKE sflight-seatsmax,
seatsocc LIKE sflight-seatsocc,
carrname LIKE scarr-carrname,
END OF type_wa.
FOR TYPE DECLARING INTERNAL TABLE
DATA :
wa TYPE type_wa,
itab TYPE STANDARD TABLE OF type_wa.
*For selection option
DATA: pp TYPE sflight-carrid,
pp1 TYPE sflight-connid,
pp2 TYPE sflight-price.
DECLARING SELECTION BLOCK.
SELECTION-SCREEN BEGIN OF BLOCK pra WITH FRAME TITLE text-001.
Declaring selection options IN SELECTION.
SELECT-OPTIONS :
s_carrid FOR pp, " declaring variables from table pp.
s_connid FOR pp1, " declaring variables from table pp1.
s_fldate FOR sy-datum, " declaring variables from table .
s_price FOR pp2. " declaring variables from table pp2.
SELECTION-SCREEN END OF BLOCK pra.
PARAMETERS:
alv TYPE c RADIOBUTTON GROUP g1, " option for selecting ALV REPORT
class TYPE c RADIOBUTTON GROUP g1. " option for selecting CLASSICL REPORT
**FOR CARRID MESSAGE GIVING CONDITION FOR A FIELD
AT SELECTION-SCREEN ON s_carrid.
SELECT SINGLE
carrid INTO s_carrid
FROM sflight
WHERE carrid IN s_carrid.
IF sy-subrc <> 0 .
MESSAGE i000(zp). " message for information
MESSAGE w000(zp). " message for warringing
ENDIF.
for connid MESSAGE
AT SELECTION-SCREEN ON s_connid.
SELECT SINGLE
carrid INTO s_connid
FROM sflight
WHERE connid IN s_connid.
IF sy-subrc <> 0 .
MESSAGE i001(zp).
MESSAGE w001(zp).
ENDIF.
FOR DATE MESSAGE
AT SELECTION-SCREEN ON s_fldate.
SELECT SINGLE
carrid INTO s_fldate
FROM sflight
WHERE fldate IN s_fldate.
IF sy-subrc <> 0 .
MESSAGE i002(zp).
MESSAGE w002(zp).
ENDIF.
START-OF-SELECTION.
IF class = 'X'. " FOR CLASSICAL REPORT OPTION.
PERFORM kumar. " SUBROUTINE for select statement fetching data.
Getting output.
LOOP AT itab INTO wa.
WRITE: /
wa-carrid,
10 wa-carrname,
30 wa-connid,
40 wa-fldate,
55 wa-price LEFT-JUSTIFIED,
70 wa-currancy,
75 wa-seatsmax,
90 wa-seatsocc.
ENDLOOP.
FORMAT COLOR OFF. "SCREEN COLOR
CLEAR itab.
ENDIF.
TOP-OF-PAGE. "
FORMAT COLOR 1.
WRITE: / 'Page ', syst-pagno,'REPORT NAME', sy-repid,'Date / time',
syst-datum, syst-uzeit.
SKIP.
WRITE: /
text-010, " FOR CARRID
15 text-008, " FOR CARRNAME
30 text-002, "CONNID
40 text-003, "FLDATE
55 text-004, "PRICE
70 text-005, "CURRENCY
80 text-006, "SEATSMAX
90 text-007. "SEATSCONN
FORMAT COLOR OFF.
ULINE.
FOR ALV OPTION
START-OF-SELECTION.
IF alv = 'X'. "FOR ALV REPORT OPTION.
TYPE-POOLS: slis. " declaring slis.
DATA:
gt_fieldcat TYPE slis_t_fieldcat_alv.
" declaring field catalog with internal table
PERFORM kumar. "for select statement fetching data
PERFORM praveen. " subroutine
DATA : prahead TYPE slis_t_listheader,
" DECLARING INTERNAL TABLE FOR HEADER FROM SLIS
praevent TYPE slis_t_event.
" DECLARING INTERNAL TABLE FOR EVENT FROM SLIS
CONSTANTS: praconst(30) TYPE c VALUE 'TOP_OF_PAGE'.
PERFORM pra. " DECLARING SUBROUTIN FOR HEADER
*CALLING FUNCTIONAL MODULE
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
i_callback_program = sy-repid " FOR PROGRAM NAME
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
it_fieldcat = gt_fieldcat "FOR FIELD CATAGORI
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
it_events = praevent " FOR 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
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = itab " declaring slfight,scarr in itab
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.
ENDIF.
*& Form praveen
text
--> p1 text
<-- p2 text
FORM praveen . " subroutine
DATA: pra TYPE slis_fieldcat_alv. " declaring structure from slis table.
CLEAR pra. " cleaing structure
pra-fieldname = 'CARRID'. " declaring field name for carrid
pra-tabname = 'ITAB'.
pra-seltext_m = 'CARRID'. " declaring field heading
APPEND pra TO gt_fieldcat.
CLEAR pra.
pra-fieldname = 'CONNID'.
pra-tabname = 'ITAB'.
pra-seltext_m = 'CONNID'.
APPEND pra TO gt_fieldcat.
CLEAR pra.
pra-fieldname = 'FLDATE'.
pra-tabname = 'ITAB'.
pra-seltext_m = 'FLDATE'.
APPEND pra TO gt_fieldcat.
CLEAR pra.
pra-fieldname = 'PRICE'.
pra-tabname = 'ITAB'.
pra-seltext_m = 'PRICE'.
APPEND pra TO gt_fieldcat.
CLEAR pra.
pra-fieldname = 'CURRANCY'.
pra-tabname = 'ITAB'.
pra-seltext_m = 'CURRENCY'.
APPEND pra TO gt_fieldcat.
ENDFORM. " praveen
*& Form kumar
text
--> p1 text
<-- p2 text
FOR FETCHING DATA TO RE-USE.'SUBROUTINE'
FORM kumar .
SELECT
a~carrid
a~connid
a~fldate
a~price
a~currency
a~seatsmax
a~seatsocc
b~carrname
INTO TABLE itab
FROM
sflight AS a
INNER JOIN
scarr AS b
ON
acarrid = bcarrid
WHERE
a~fldate IN s_fldate
AND
a~carrid IN s_carrid
AND
a~price IN s_price.
FORMAT COLOR 5. "adding color
ENDFORM. " kumar
*& Form pra
text
--> p1 text
<-- p2 text
FOR HEADER
FORM pra .
DATA : praeventstr TYPE slis_alv_event, "DECLARING EVENT STRCTURE
praheadstr TYPE slis_listheader. " DECLARING HEADER STRUCRTUE
praheadstr-typ = 'H'(009). " TYP ='H' THIS IS FOR HEADING SAP-DEFAULT
praheadstr-info = text-025. " INFORMATATION
APPEND praheadstr TO prahead. " STRUCTUCTURE TO INTERNAL TABLE
CALL FUNCTION 'REUSE_ALV_EVENTS_GET' " CALLING EVENTS
EXPORTING
i_list_type = 0
IMPORTING
et_events = praevent " DECLARING EVENTS
EXCEPTIONS
list_type_wrong = 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.
" EVENTS TO STRUCTURE
READ TABLE praevent WITH KEY
name = slis_ev_top_of_page
INTO praeventstr.
MOVE praconst TO praeventstr-form. " MOVING CONSTRANT TO STRYCTUE
APPEND praeventstr TO praevent. " STRUCTURE TO EVENTS
ENDFORM. " pra
*CALLING FUNCTIONAL MODUL FOR HEADER
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = prahead.
I_LOGO =
I_END_OF_LIST_GRID =
ENDFORM. "TOP_OF_PAGE -
ALV rows coloring based on condition
Hai ,
I want Color the rows in the list based on some condition ..
Hope to get the helpful suggestion s on this asap
regards,Hi shishupalreddy,
1. Not only the full row color,
we can also manipulate the color in each cell,
based upon conditions.
2.
IMPORTANT THINGS
a. Extra field in internal table
clr TYPE slis_t_specialcol_alv,
(this field will contain the colour codes)
b. assign fieldname to alv layout
alvly-coltab_fieldname = 'CLR'
c. work area for colour
DATA : clrwa TYPE slis_specialcol_alv.
d. Populating the color
Once again
Loop at ITAB.
*********logic
if itab-field < 0 "---negative
clrwa-fieldname = 'FIELDNAME'. "<--- FIELDNAME FOR COLOR
clrwa-color-col = 6. <------- COLOUR 0-9
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP.
5. just copy paste in new program
6.
REPORT abc .
NECESSARY / MUST
TYPE-POOLS : slis.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : alvly TYPE slis_layout_alv.
ITAB DECLARATION
DATA : prg TYPE sy-repid.
DATA : BEGIN OF itab OCCURS 0.
INCLUDE STRUCTURE t001.
DATA : clname(3) TYPE c,
clr TYPE slis_t_specialcol_alv,
END OF itab.
DATA : clrwa TYPE slis_specialcol_alv.
PARAMETERS : a TYPE c.
DATA : flname TYPE slis_fieldname.
SELECT
START-OF-SELECTION.
SELECT * FROM t001
INTO CORRESPONDING FIELDS OF TABLE itab..
LOOP AT itab..
IF SY-TABIX <= 5.
itab-clname = 'C50'.
ELSE.
itab-clname = 'C30'.
ENDIF.
MODIFY itab.
ENDLOOP.
LOOP AT ITAB.
check itab-bukrs = '1000'
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 4.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
ENDLOOP.
prg = sy-repid.
flname = 'CLNAME'.
alvly-info_fieldname = 'CLNAME'.
alvly-coltab_fieldname = 'CLR'.
LOOP AT ITAB.
if sy-tabix = 3.
clrwa-fieldname = 'BUTXT'.
clrwa-color-col = 6.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
clrwa-fieldname = 'LAND1'.
clrwa-color-col = 1.
APPEND clrwa TO itab-clr.
MODIFY ITAB.
endif.
ENDLOOP
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = prg
i_internal_tabname = 'ITAB'
i_inclname = prg
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
minimum
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2
extra
sy-uname = 'XYZAB'.
prg = sy-repid.
Excluding
DATA : excl TYPE slis_t_extab.
DATA : exclwa TYPE slis_extab.
exclwa = '&OUP'.
APPEND exclwa TO excl.
exclwa = '&ODN'.
APPEND exclwa TO excl.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid
is_layout = alvly
i_callback_user_command = 'ITAB_USER_COMMAND'
it_excluding =
excl
i_save = 'A'
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2.
*& Form itab_user_command
text
-->WHATCOMM text
-->WHATROW text
FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE
slis_selfield.
BREAK-POINT.
ENDFORM. "itab_user_command
regards,
amit m.
Maybe you are looking for
-
I cannot see all mobile phone numbers in Messages after upgrade to iOS 6
I have two mobile number entries for most of my contacts, for example: +853 1234 5678 0060 853 1234 5678 The first entry is for dialing the mobile number when I am overseas, and need to use the international prefix "+". I also use this for sending SM
-
HT1414 my ipod touch wont do anything u can trun it off,
my ipodtouch just stays lite up with apple showing, i tried to do factory restore because i purched it from craig list now it wont do anything?
-
Uncaught exception video/3gpp
Hi, I have a BB Curve 8520 and i have been happily using it for the last 2 years. however i could never overcome with Whats App installation problem. Everytime i download WHATS APP my phone playing play music/videos!!!! i have to uninstall it to get
-
Instant Portal import to Portal Environment
Hi I have created a Instant Portal to handle the training content navigation functionality which was shown to the client for review. This Instant Portal was created in my environment which also hosts the Portal which I am developing. I have tried to
-
Help with BD79 - IDOC conversion rules
Hi, I'm looking for a "How to" guide to help me with this transaction. I need to do a very simple rule for segment E1MTXHM, in ABAP it can be done like this: IF EMTXHM-TDID = 'IVER'. E1MTXHM-TDSRPAS = 'Z' ELSE. * Source field ENDIF. But I expect th