Plz explain the code

REPORT zfi_vendor_ageing
NO STANDARD PAGE HEADING
LINE-COUNT 58
line-size 168
MESSAGE-ID zh_msg.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: lfa1, " Vendor Master (General)
t001, " Company Codes
rfpdo.
I N T E R N A L T A B L E S D E C L A R A T I O N S *
Internal Table for Vendor Open Items Data
DATA: BEGIN OF int_bsik OCCURS 0,
lifnr LIKE bsik-lifnr, " Vendor Number
name1 LIKE lfa1-name1, " Vendor Name
shkzg LIKE bsik-shkzg, " Dr/Cr Indicator
belnr LIKE bsik-belnr, " Document Number
xblnr LIKE bsik-xblnr, " Ref Doc No
blart LIKE bsik-blart, " Document Type
zfbdt LIKE bsik-zfbdt, " Base Line Date
zbd1t LIKE bsik-zbd1t, " Due date1
zbd2t LIKE bsik-zbd2t, " Due Date2
zbd3t LIKE bsik-zbd3t, " Due Date3
waers LIKE bsik-waers, " Currency
dmbtr LIKE bsik-dmbtr, " Amount in Local Curr
END OF int_bsik.
Internal Table for Amounts Sum Up Data
DATA: BEGIN OF int_final OCCURS 0,
lifnr LIKE bsik-lifnr, " Vendor Number
name1 LIKE lfa1-name1, " Vendor Name
total1 LIKE bsik-dmbtr, " Amount in Local Curr
total2 LIKE bsik-dmbtr, " Amount in Local Curr
total3 LIKE bsik-dmbtr, " Amount in Local Curr
total4 LIKE bsik-dmbtr, " Amount in Local Curr
total5 LIKE bsik-dmbtr, " Amount in Local Curr
total6 LIKE bsik-dmbtr, " Amount in Local Curr
total LIKE bsik-dmbtr, " Amount in Local Curr
END OF int_final.
D A T A D E C L A R A T I O N S
DATA : v_flag, " Flag
v_gtotal1 LIKE bsik-dmbtr, " Amount Totals
v_gtotal2 LIKE bsik-dmbtr, " Amount Totals
v_gtotal3 LIKE bsik-dmbtr, " Amount Totals
v_gtotal4 LIKE bsik-dmbtr, " Amount Totals
v_gtotal5 LIKE bsik-dmbtr, " Amount Totals
v_gtotal6 LIKE bsik-dmbtr, " Amount Totals
v_gtotal LIKE bsik-dmbtr, " Amount Totals
v_subtotal1 LIKE bsik-dmbtr, " Amount Totals
v_subtotal2 LIKE bsik-dmbtr, " Amount Totals
v_subtotal3 LIKE bsik-dmbtr, " Amount Totals
v_subtotal4 LIKE bsik-dmbtr, " Amount Totals
v_subtotal5 LIKE bsik-dmbtr, " Amount Totals
v_subtotal6 LIKE bsik-dmbtr, " Amount Totals
v_subtotal LIKE bsik-dmbtr, " Amount Totals
v_date LIKE bsik-zfbdt, " Due Date
v_tage1(4), " Age 30 days
v_tage2(4), " Age 60 days
v_tage3(4), " Age 90 days
v_fir(15), " Column Text1
v_sec(15), " Column Text2
v_thir(15), " Column Text3
v_four(17), " Column Text4
v_fidd(4), " Days field1
v_sedd(4), " Days field2
v_thdd(4), " Days field3
v_fodd(4), " Days field4
v_str TYPE SY-LISEL, " String
v_str1(11), " String
v_tage(3), " String
v_date1(10). " Date field
R A N G E D E C L A R A T I O N S
RANGES: r_date1 FOR bsik-zfbdt, " Date Range 1
r_date2 FOR bsik-zfbdt, " Date Range 2
r_date3 FOR bsik-zfbdt, " Date Range 3
r_date4 FOR bsik-zfbdt. " Date Range 4
S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr. "Vendor account
PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.
"Open items at key date
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',
p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',
p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',
p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.
SELECTION-SCREEN END OF BLOCK b3.
A T S E L E C T I O N S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_flds.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P O F P A G E
Header
TOP-OF-PAGE.
PERFORM header.
E N D O F P A G E
Footer
END-OF-PAGE.
ULINE.
T O P O F P A G E D U R I N G L I N E S E L E C T I O N *
Top of Page in Secondary List
TOP-OF-PAGE DURING LINE-SELECTION.
PERFORM header1.
A T L I N E S E L E C T I O N *
AT LINE-SELECTION.
Perform Line Selections
PERFORM line_selection.
E N D O F S E L E C T I O N
END-OF-SELECTION.
List generation
PERFORM basic_list.
*& Form validate_flds
Validation of Selection Screen fields
FORM validate_flds .
Validate Vendor Code
CLEAR lfa1-lifnr.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Vendor Code range'(023).
ENDIF.
Validate Company Code
CLEAR t001-bukrs.
SELECT bukrs UP TO 1 ROWS
INTO t001-bukrs
FROM t001
WHERE bukrs = p_bukrs AND
spras = sy-langu.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e021. " Invalid Company Code range
ENDIF.
IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR
( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 1 greater'(004)
'than Column# 2 or 3 or 4'(005).
ENDIF.
*column 2
IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).
MESSAGE e999 WITH 'Column 2 greater'(006)
'than Column# 3 or 4'(007).
ENDIF.
*column3
IF ( p_tage3 > p_tage4 ).
MESSAGE e999 WITH 'Column 3 greater'(008)
'than Column#4'(009).
ENDIF.
ENDFORM. " validate_flds
*& Form fetch_data
Fetching Data from Database Tables
FORM fetch_data .
Date Range Population
r_date1-sign = 'I'.
r_date1-option = 'BT'.
r_date1-low = p_allgst.
r_date1-high = r_date1-low + p_tage1.
APPEND r_date1.
r_date2-sign = 'I'.
r_date2-option = 'BT'.
r_date2-low = r_date1-high + 1.
r_date2-high = r_date1-low + p_tage2.
APPEND r_date2.
r_date3-sign = 'I'.
r_date3-option = 'BT'.
r_date3-low = r_date2-high + 1.
r_date3-high = r_date1-low + p_tage3.
APPEND r_date3.
r_date4-sign = 'I'.
r_date4-option = 'BT'.
r_date4-low = r_date3-high + 1.
r_date4-high = r_date1-low + p_tage4.
APPEND r_date4.
Select the Vendor Open Items data from BSIK
SELECT l~lifnr
l1~name1
b~waers
b~dmbtr
b~zfbdt
b~zbd1t
b~zbd2t
b~zbd3t
b~belnr
b~xblnr
b~shkzg
b~blart
INTO CORRESPONDING FIELDS OF TABLE int_bsik
FROM lfb1 AS l INNER JOIN lfa1 AS l1
ON llifnr = l1lifnr
INNER JOIN bsik AS b
ON llifnr = blifnr AND
lbukrs = bbukrs
WHERE l~lifnr IN s_lifnr AND
l~bukrs = p_bukrs and
b~zfbdt le p_allgst.
IF SY-SUBRC <> 0.
MESSAGE i000 WITH 'No Data found'(027).
ENDIF.
Removing the date limit to get the due items in the past
DELETE int_bsik WHERE
( blart NE 'RE' AND blart NE 'KR' ) OR
shkzg NE 'H'.
SORT int_bsik BY lifnr.
ENDFORM. " fetch_data
*& Form header
Display the Report Columns
FORM header .
v_tage1 = p_tage1 + 1.
v_tage2 = p_tage2 + 1.
v_tage3 = p_tage3 + 1.
v_fidd = p_tage1.
v_sedd = p_tage2.
v_thdd = p_tage3.
v_fodd = p_tage4.
MOVE v_fodd0(4) TO v_fodd1(3).
v_fodd+0(1) = space.
CONCATENATE '1 to'(010) v_fidd INTO v_fir.
CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.
CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.
CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Summary of Ageing Analysis for Vendor Open Invoices as on'(013)
v_date1 into v_str separated by space.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
FORMAT COLOR 1 INTENSIFIED.
WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,
50(101) 'Invoices Due For(In Days)'(014) CENTERED,
151 sy-vline, 168 sy-vline .
WRITE :/1 sy-vline, 2(11) 'Vendor#'(015) CENTERED,
13 sy-vline ,14(35) 'Vendor Name'(016) CENTERED,
49 sy-vline,
50(101) sy-uline,151 sy-vline,
152(16) 'Total'(017) CENTERED,
168 sy-vline.
WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,
50(16) v_fir CENTERED, 66 sy-vline,
67(16) v_sec CENTERED, 83 sy-vline,
84(16) v_thir CENTERED, 100 sy-vline,
101(16) v_four CENTERED, 117 sy-vline,
118(16) v_str1 centered, 134 sy-vline,
135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,
168 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(168) sy-uline.
ENDFORM. " header
*& Form basic_list
Display the Basic List
FORM basic_list .
NEW-PAGE LINE-SIZE 168.
LOOP AT int_bsik.
CLEAR v_date.
IF int_bsik-zbd3t <> ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd3t.
ELSE.
IF int_bsik-zbd2t <> ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd2t.
ELSE.
v_date = int_bsik-zfbdt + int_bsik-zbd1t.
ENDIF.
ENDIF.
IF int_bsik-zbd1t = ' '.
v_date = int_bsik-zfbdt.
ENDIF.
IF v_date IN r_date1.
int_final-total1 = int_final-total1 + int_bsik-dmbtr.
ELSEIF v_date IN r_date2.
int_final-total2 = int_final-total2 + int_bsik-dmbtr.
ELSEIF v_date IN r_date3.
int_final-total3 = int_final-total3 + int_bsik-dmbtr.
ELSEIF v_date IN r_date4.
int_final-total4 = int_final-total4 + int_bsik-dmbtr.
ELSEif v_date > r_date4-high.
int_final-total5 = int_final-total5 + int_bsik-dmbtr.
ELSEif v_date < p_allgst.
int_final-total6 = int_final-total6 + int_bsik-dmbtr.
ENDIF.
AT END OF lifnr.
v_flag = 1.
ENDAT.
IF v_flag = 1.
int_final-lifnr = int_bsik-lifnr.
int_final-name1 = int_bsik-name1.
int_final-total = int_final-total1 + int_final-total2 +
int_final-total3 + int_final-total4 + int_final-total5 +
int_final-total6.
APPEND int_final.
v_gtotal1 = v_gtotal1 + int_final-total1.
v_gtotal2 = v_gtotal2 + int_final-total2.
v_gtotal3 = v_gtotal3 + int_final-total3.
v_gtotal4 = v_gtotal4 + int_final-total4.
v_gtotal5 = v_gtotal5 + int_final-total5.
v_gtotal6 = v_gtotal6 + int_final-total6.
v_gtotal = v_gtotal + int_final-total.
WRITE: /1 sy-vline,
2 int_final-lifnr COLOR 4 INTENSIFIED ON,
13 sy-vline,
14 int_final-name1 COLOR 4 INTENSIFIED ON,
49 sy-vline.
DATA : v_rem.
v_rem = sy-tabix MOD 2.
IF v_rem NE 0.
FORMAT COLOR 2 INTENSIFIED.
WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsik-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsik-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsik-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsik-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsik-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsik-waers,
168 sy-vline.
ELSE.
WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,
66 sy-vline,
67 int_final-total2 CURRENCY int_bsik-waers,
83 sy-vline,
84 int_final-total3 CURRENCY int_bsik-waers,
100 sy-vline,
101 int_final-total4 CURRENCY int_bsik-waers,
117 sy-vline,
118 int_final-total5 CURRENCY int_bsik-waers,
134 sy-vline,
135 int_final-total6 CURRENCY int_bsik-waers,
151 sy-vline,
152 int_final-total CURRENCY int_bsik-waers,
168 sy-vline.
ENDIF.
FORMAT COLOR OFF.
HIDE int_final.
CLEAR int_final.
v_flag = 0.
ENDIF.
AT LAST.
WRITE : /1(168) sy-uline.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,
49 sy-vline, 50 v_gtotal1 CURRENCY int_bsik-waers,
66 sy-vline, 67 v_gtotal2 CURRENCY int_bsik-waers,
83 sy-vline, 84 v_gtotal3 CURRENCY int_bsik-waers,
100 sy-vline,101 v_gtotal4 CURRENCY int_bsik-waers,
117 sy-vline,118 v_gtotal5 CURRENCY int_bsik-waers,
134 sy-vline,135 v_gtotal6 CURRENCY int_bsik-waers,
151 sy-vline,152 v_gtotal CURRENCY int_bsik-waers,
168 sy-vline.
HIDE : v_gtotal1,
v_gtotal2,
v_gtotal3,
v_gtotal4,
v_gtotal5,
v_gtotal6,
v_gtotal.
ENDAT.
FORMAT COLOR OFF.
ENDLOOP.
WRITE : /1(168) sy-uline.
ENDFORM. " basic_list
*& Form line_selection
When double clicked on the line display the seconday list
FORM line_selection .
NEW-PAGE LINE-SIZE 206.
Sy-lsind = 1.
DATA : v_rem,v_cnt LIKE sy-tabix.
v_cnt = 0.
SORT int_bsik BY belnr zfbdt.
LOOP AT int_bsik WHERE lifnr EQ int_final-lifnr.
v_rem = v_cnt MOD 2.
CLEAR v_date.
IF int_bsik-zbd3t <> ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd3t.
ELSE.
IF int_bsik-zbd2t <> ' '.
v_date = int_bsik-zfbdt + int_bsik-zbd2t.
ELSE.
v_date = int_bsik-zfbdt + int_bsik-zbd1t.
ENDIF.
ENDIF.
IF int_bsik-zbd1t = ' '.
v_date = int_bsik-zfbdt.
ENDIF.
IF v_rem NE 0.
format color 2 intensified.
WRITE :/1 sy-vline, 2 int_bsik-belnr,
12 sy-vline,13 int_bsik-lifnr,
23 sy-vline,24 int_bsik-name1,
59 sy-vline,60 int_bsik-xblnr,
76 sy-vline,77 int_bsik-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline, 189 sy-vline,
190 int_bsik-dmbtr CURRENCY int_bsik-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.
WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.
WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.
WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.
WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.
WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.
WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
ENDIF.
format color off.
ELSE.
WRITE :/1 sy-vline, 2 int_bsik-belnr,
12 sy-vline,13 int_bsik-lifnr,
23 sy-vline,24 int_bsik-name1,
59 sy-vline,60 int_bsik-xblnr,
76 sy-vline,77 int_bsik-zfbdt,
87 sy-vline.
WRITE : 104 sy-vline,121 sy-vline,
138 sy-vline,155 sy-vline,
172 sy-vline,189 sy-vline,
190 int_bsik-dmbtr CURRENCY int_bsik-waers,
206 sy-vline.
IF v_date IN r_date1.
v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.
WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date2.
v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.
WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date3.
v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.
WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEIF v_date IN r_date4.
v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.
WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date > r_date4-high.
v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.
WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.
ELSEif v_date < p_allgst.
v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.
WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.
ENDIF.
ENDIF.
FORMAT COLOR OFF.
v_cnt = v_cnt + 1.
ENDLOOP.
WRITE : /1(206) sy-uline.
v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3
+ v_subtotal4 + v_subtotal5 + v_subtotal6.
FORMAT COLOR 3 INTENSIFIED.
WRITE : /1 sy-vline,
2(85) 'Total'(017) CENTERED CURRENCY int_bsik-waers ,
87 sy-vline,
88 v_subtotal1 CURRENCY int_bsik-waers,
104 sy-vline,
105 v_subtotal2 CURRENCY int_bsik-waers,
121 sy-vline,
122 v_subtotal3 CURRENCY int_bsik-waers,
138 sy-vline,
139 v_subtotal4 CURRENCY int_bsik-waers,
155 sy-vline,
156 v_subtotal5 CURRENCY int_bsik-waers,
172 sy-vline,
173 v_subtotal6 CURRENCY int_bsik-waers,
189 sy-vline,
190 v_subtotal CURRENCY int_bsik-waers,
206 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(206) sy-uline.
CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,
v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,
v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.
ENDFORM. " line_selection
*& Form header1
Secondary List Header
FORM header1 .
Standard header
clear: v_date1, v_str, v_str1, v_tage.
write p_allgst to v_date1.
Move p_tage4 to v_tage.
concatenate '>' v_tage text-025 into v_str1.
concatenate
'Details of Ageing Analysis for Vendor Open Invoices as on'(024)
v_date1 into v_str separated by space.
FORMAT COLOR 1 intensified.
WRITE :/1(206) sy-uline.
WRITE :/1 sy-vline,12 sy-vline ,
23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,
88(101) 'Invoices Due For(In Days)'(014) CENTERED,
189 sy-vline,206 sy-vline.
WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,
12 sy-vline, 13(10) 'Vendor#'(015) CENTERED,
23 sy-vline, 24(35) 'Vendor Name'(016) CENTERED,
59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,
76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,
87 sy-vline, 88(101) sy-uline,
189 sy-vline,190(16) 'Total'(017) CENTERED,
206 sy-vline.
WRITE : /1 sy-vline, 12 sy-vline,
23 sy-vline,59 sy-vline,
76 sy-vline,87 sy-vline,
88(16) v_fir CENTERED, 104 sy-vline,
105(16) v_sec CENTERED, 121 sy-vline,
122(16) v_thir CENTERED, 138 sy-vline,
139(16) v_four CENTERED, 155 sy-vline,
156(16) v_str1 CENTERED,
172 sy-vline,
173(16) 'Already Overdue'(018) CENTERED,
189 sy-vline,
206 sy-vline.
format color off.
WRITE : /1(206) sy-uline.
ENDFORM. " header1

Hi
Account Payables(AP) data related vendor invoices is stored in BSIK and BSAK tables
SO fetching the data from those tables for the given vendor and the bucket selected (as I told this ageing is calculated in daysbuckets) and display and the totals at the end of the vendor
go through the code it is easily understandable as we are fetching data just  from table BSIK and vendor tables LFA1 LFB1.
<b>Reward points for useful Answers</b>
Regards
Anji

Similar Messages

  • Cffunction and how to ? can someone explain the code to me line by line

    Hello i went to get this online and i want to test it.
    the udf is supposed to
    * CSVFormat accepts the name of an existing query and
    converts it to csv format.
    * Updated version of UDF orig. written by Simon Horwith
    my question how to break it down.
    can someone explain the code to me line by line
    thanks

    silviasalsa wrote:
    > thanks
    >
    > but line by line
    >
    > what is
    > if(ArrayLen(Arguments) GTE 2) qualifier = Arguments[2];
    > if(ArrayLen(Arguments) GTE 3 AND Len(Arguments[3]))
    columns = Arguments[3];
    > returnValue[1] = ListQualify(columns, qualifier);
    > ArrayResize(returnValue, query.recordcount + 1);
    > columns = ListToArray(columns);
    > for(i = 1; i LTE query.recordcount; i = i + 1)
    > {
    > rowValue = ArrayNew(1);
    > ArrayResize(rowValue, ArrayLen(columns));
    > for(j = 1; j LTE ArrayLen(columns); j = j + 1)
    > rowValue[j] = qualifier & query[columns[j]]
    & qualifier;
    > returnValue[i + 1] = ArrayToList(rowValue);
    > }
    > returnValue = ArrayToList(returnValue, Chr(13));
    > return returnValue;
    > }
    >
    > thanks
    Apparently this UDF takes two optional parameters so that one
    can define
    (A) a text "qualifier" to use in the CSV file, this is
    usually the
    single quote|tick ['] mark - but sometimes one wants this to
    be a
    different character and (B) what columns to use in the
    output in case
    one does not want to use all the columns in the record set
    in the
    outputted CSV file.
    The if statements are checking for these optional parameters
    and if
    found setting the values in them to internal variables.
    These
    variables are then used in the rest of the logic to create
    the CSV output.
    HTH
    Ian

  • Can you explain the code ?

    Hi friends i have got a code its working fine but i am not getting the concept in the code can any one tell which line is the ITAB declaration and which lines are workarea declarations of the structure.
    TYPES: BEGIN OF ST_ZWS,
                RADIO TYPE C,
                DESCRIPTION TYPE ZRIF_WS-DESCRIPTION,
          END OF ST_ZWS.
    DATA: IT_ST TYPE TABLE OF ST_ZWS,
           WA_ST TYPE ST_ZWS,
          IT_ZWS TYPE ZWS,
          WA_ZWS TYPE ZWS.
    Please explain the code here...

    hello
    the code is as follows:
    This part of the code defines structure st_zws.
    TYPES: BEGIN OF ST_ZWS,
    RADIO TYPE C,
    DESCRIPTION TYPE ZRIF_WS-DESCRIPTION,
    END OF ST_ZWS.
    Based on the above defined structure, this statement defines one internal table
    DATA: IT_ST TYPE TABLE OF ST_ZWS,
    This statement defines work area to the above defined Internal table
    WA_ST TYPE ST_ZWS,
    This statement defines another internal table with reference to ZWS
    IT_ZWS TYPE ZWS,
    This statement defines workare to the above defined internal table
    WA_ZWS TYPE ZWS.
    cheers!!!

  • Plz chk the code wats wrong in it

    hi
    i m having itab with vbeln
    and ztable with objnr and ordsent.
    where objnr and vbeln are equal
    so now when i find objnr EQ vbeln i have to modify the ztable-ordsent = ' '.
    i have writen the followin code
    LOOP AT lt_ztsd2marc INTO ls_ztsd2marc.
        READ TABLE ct_success INTO ls_success WITH KEY ordnr =
        ls_ztsd2marc-ordnr.
        IF sy-subrc EQ 0.
          ls_ztsd2marc-ordsent = ' '.
          MODIFY TABLE lt_ztsd2marc FROM ls_ztsd2marc TRANSPORTING ordsent .
          MODIFY ztsd2marc FROM TABLE lt_ztsd2marc.
          IF sy-subrc EQ 0.
            MESSAGE s112(z2).
          ENDIF.
        ENDIF.
      ENDLOOP.
    its updating it in work area but the changes are not gettin reflected in the internal table and not even in my ztable ztsd2marc.
    plz tell me wat is wrong in this code?

    hi..
    jus try the code below.. it'll def give the solution to ur question.
    i've jus modified little of ur code that u posted.
    LOOP AT lt_ztsd2marc INTO ls_ztsd2marc.
    READ TABLE ct_success INTO ls_success WITH KEY ordnr =
    ls_ztsd2marc-ordnr.
    IF sy-subrc EQ 0.
    ls_ztsd2marc-ordsent = ' '.
    MODIFY TABLE lt_ztsd2marc FROM ls_ztsd2marc TRANSPORTING ordsent
    where ordnr = ls_ztsd2marc-ordnr .
    **MODIFY ztsd2marc FROM TABLE lt_ztsd2marc.
    update ztsd2marc set ordsent = it_ztsd2marc-orsent
    where ordnr = it_ztsd2marc-ordnr.
    IF sy-subrc EQ 0.
    MESSAGE s112(z2).
    ENDIF.
    ENDIF.
    ENDLOOP.
    all the best

  • SAX problem(plz see the code given)

    hi all,
    i am using SAX parser for validating my xml file against the dtd,i am getting some errors that i am not able to make out.cud u plz help me.i am sending u my files.
    ------------------------java file------------------------------------
    import java.io.*;
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    public class Echo extends DefaultHandler
    public static void main(String argv[]){
    if (argv.length != 1) {
    System.err.println("Usage: cmd filename");
    System.exit(1);
    // Use an instance of ourselves as the SAX event handler
    //DefaultHandler handler=new DefaultHandler();
    Echo handler=new Echo();
    // Use the default (non-validating) parser
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
    try {
    // Set up output stream
    out = new OutputStreamWriter(System.out, "UTF8");
    // Parse the input
    SAXParser saxParser = factory.newSAXParser();
    saxParser.parse( new File(argv[0]), handler );
    catch (SAXParseException spe) {
    // Error generated by the parser
    System.out.println("\n** Parsing error"
    + ", line " + spe.getLineNumber()
    + ", uri " + spe.getSystemId());
    System.out.println(" " + spe.getMessage() );
    }catch (Throwable t){
    t.printStackTrace();
    System.exit(0);
    static private Writer out;
    public void startDocument()
    throws SAXException{
    emit("<?xml version='1.0' encoding='UTF-8'?>");
    nl();
    public void endDocument()
    throws SAXException{
    try {
    nl();
    out.flush();
    }catch (IOException e) {
    throw new SAXException("I/O error", e);
    public void startElement(String namespaceURI,
    String sName, // simple name (localName)
    String qName, // qualified name
    Attributes attrs)
    throws SAXException
    String eName = sName; // element name
    if ("".equals(eName)) eName = qName; // namespaceAware = false
    emit("<"+eName);
    if (attrs != null) {
    for (int i = 0; i < attrs.getLength(); i++) {
    String aName = attrs.getLocalName(i); // Attr name
    if ("".equals(aName)) aName = attrs.getQName(i);
    emit(" ");
    emit(aName+"=\""+attrs.getValue(i)+"\"");
    emit(">");
    public void endElement(String namespaceURI,
    String sName, // simple name
    String qName // qualified name
    throws SAXException
    emit("</"+qName+">");
    public void characters(char buf[], int offset, int len)
    throws SAXException
    String s = new String(buf, offset, len);
    emit(s);
    public void ignorableWhitespace(char buf[], int offset, int Len)
    throws SAXException
    nl();
    //emit("IGNORABLE");
    private void emit(String s)
    throws SAXException
    try {
    out.write(s);
    out.flush();
    } catch (IOException e) {
    throw new SAXException("I/O error", e);
    private void nl()
    throws SAXException
    String lineEnd = System.getProperty("line.separator");
    try {
    out.write(lineEnd);
    } catch (IOException e) {
    throw new SAXException("I/O error", e);
    public void error(SAXParseException e)
    throws SAXParseException
    throw e;
    public void warning(SAXParseException e)throws SAXParseException{
    System.out.println("WARNING : Line Number:- "+e.getLineNumber());
    System.out.println("WARNING : Column Number:- "+e.getColumnNumber());
    System.out.println("WARNING : System ID:- "+e.getSystemId());
    System.out.println("WARNING : Public Number:- "+e.getPublicId());
    --------------------------xml file------------------------------------
    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE slideshow SYSTEM "echo.dtd">
    <!-- A SAMPLE set of slides -->
    <slideshow
    title="Sample Slide Show"
    date="Date of publication"
    author="Yours Truly"
    >
    <![CDATA[Digram : frobmorten <------------ fuznaten
    | <3> ^
    | <1> | <1> = fozzle
    V | <2> = framboze
    Staten+ <3> = frenzle
    <2>
    ]]>
    <!-- TITLE SLIDE -->
    <slide type="all">
    <image src="my.gif" alt="this is my pic" type="image/gif"/>
    <title>Wake up to WonderWidgets!</title>
    </slide>
    <!-- OVERVIEW -->
    <slide type="all">
    <title>Overview</title>
    <item>WonderWidgets are great</item>
    <item/>
    <item>Who buys WonderWidgets</item>
    </slide>
    <slide type="all">
    <title>Overview</title>
    <item>Who buys WonderWidgets</item>
    </slide>
    </slideshow>
    -----------------------------dtd file---------------------------------
    <!ELEMENT slideshow (slide+)>
    <!ATTLIST slideshow
    title CDATA #IMPLIED
    date CDATA #IMPLIED
    author CDATA #IMPLIED
    >
    <!ELEMENT slide (image?,title, item*)>
    <!ATTLIST slide type CDATA #IMPLIED>
    <!ELEMENT title (#PCDATA)>
    <!ELEMENT item (#PCDATA | item)* >
    <!ELEMENT image EMPTY>
    <!ATTLIST image
    alt CDATA #IMPLIED
    src CDATA #REQUIRED
    type CDATA "image/gif"
    >
    -----------------------ERROR I AM GETTING IS--------------------------
    <?xml version='1.0' encoding='UTF-8'?>
    <slideshow title="Sample Slide Show" date="Date of publication" author="Yours Tr
    uly">
    Digram : frobmorten <------------ fuznaten
    | <3> ^
    | <1> | <1> = fozzle
    V | <2> = framboze
    Staten+ <3> = frenzle
    <2>
    <slide type="all">
    <image src="my.gif" alt="this is my pic" type="image/gif"></image>
    <title>Wake up to WonderWidgets!</title>
    </slide>
    <slide type="all">
    <title>Overview</title>
    <item>WonderWidgets are great</item>
    <item></item>
    <item>Who buys WonderWidgets</item>
    </slide>
    <slide type="all">
    <title>Overview</title>
    <item>Who buys WonderWidgets</item>
    </slide>
    org.xml.sax.SAXException: The content of element type "slideshow" must m
    atch "(slide)+".
    at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
    ava:979)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at Echo.main(Echo.java:28)
    with my lot efforts i am not able to make out where i am wrong,plz do have a look on the codes.
    thanx in advance
    best regards
    anshul

    Hi i have consulted the XML spec and it is not possible to have a CDATA section as element content. A element declaration can have only content that is empty, ANY (i.e. can include any other declared elements in DTD), mixed (i.e. can contain PCDATA or child elements, or child elements. An element cannot include any character data which CDATA represents. i.e it is not valid to do <!ELEMENT slideshow CDATA>
    The CDATA can only be used with an attribute declaration. Regard CDATA as a type definition for any attribute variables.
    So what do i suggest. You could declare a separate element which has an attribute for the CDATA section
    <!ELEMENT input (Name)>
    <!ATTLIST input instructions CDATA #REQUIRED>
    hope this helps.

  • Explain the code

    Hi there
    Could someone explain the following piece of code to me.
    Yes I have looked everywhere but it is very hard to get some decent information on the serial port.
    Thanks in advance
    import java.io.*;
    import java.util.*;
    import javax.comm.*;
    public class SimpleWrite {
        static Enumeration portList;
        static CommPortIdentifier portId;
        static String messageString = "Hello, world!\n";
        static SerialPort serialPort;
        static OutputStream outputStream;
        public static void main(String[] args) {
            portList = CommPortIdentifier.getPortIdentifiers();
            while (portList.hasMoreElements()) {
                portId = (CommPortIdentifier) portList.nextElement();
                if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                    // if (portId.getName().equals("COM1")) {
                    if (portId.getName().equals("/dev/term/a")) {
                        try {
                            serialPort = (SerialPort)
                                portId.open("SimpleWriteApp", 2000);
                        } catch (PortInUseException e) {}
                        try {
                            outputStream = serialPort.getOutputStream();
                        } catch (IOException e) {}
                        try {
                            serialPort.setSerialPortParams(9600,
                                SerialPort.DATABITS_8,
                                SerialPort.STOPBITS_1,
                                SerialPort.PARITY_NONE);
                        } catch (UnsupportedCommOperationException e) {}
                        try {
                            outputStream.write(messageString.getBytes());
                        } catch (IOException e) {}
    }

    Thanks for that
    Will you give me an explanation of the following:
    import java.io.*;
    import java.util.*;
    import javax.comm.*;
    public class SimpleRead implements Runnable, SerialPortEventListener {
        static CommPortIdentifier portId;
        static Enumeration portList;
        InputStream inputStream;
        SerialPort serialPort;
        Thread readThread;
        public static void main(String[] args) {
            portList = CommPortIdentifier.getPortIdentifiers();
            while (portList.hasMoreElements()) {
                portId = (CommPortIdentifier) portList.nextElement();
                if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                    // if (portId.getName().equals("COM1")) {
                    if (portId.getName().equals("/dev/term/a")) {
                        SimpleRead reader = new SimpleRead();
        public SimpleRead() {
            try {
                serialPort = (SerialPort) portId.open("SimpleReadApp", 2000);
            } catch (PortInUseException e) {}
            try {
                inputStream = serialPort.getInputStream();
            } catch (IOException e) {}
         try {
                serialPort.addEventListener(this);
         } catch (TooManyListenersException e) {}
            serialPort.notifyOnDataAvailable(true);
            try {
                serialPort.setSerialPortParams(9600,
                    SerialPort.DATABITS_8,
                    SerialPort.STOPBITS_1,
                    SerialPort.PARITY_NONE);
            } catch (UnsupportedCommOperationException e) {}
            readThread = new Thread(this);
            readThread.start();
        public void run() {
            try {
                Thread.sleep(20000);
            } catch (InterruptedException e) {}
        public void serialEvent(SerialPortEvent event) {
            switch(event.getEventType()) {
            case SerialPortEvent.BI:
            case SerialPortEvent.OE:
            case SerialPortEvent.FE:
            case SerialPortEvent.PE:
            case SerialPortEvent.CD:
            case SerialPortEvent.CTS:
            case SerialPortEvent.DSR:
            case SerialPortEvent.RI:
            case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
                break;
            case SerialPortEvent.DATA_AVAILABLE:
                byte[] readBuffer = new byte[20];
                try {
                    while (inputStream.available() > 0) {
                        int numBytes = inputStream.read(readBuffer);
                    System.out.print(new String(readBuffer));
                } catch (IOException e) {}
                break;
    }

  • Please explain the code below

    What will be the output of the following code? Can I get some detail explanation?
    class A{
        void show(){
            System.out.println("A");
    interface my{
        public void show();
    class B extends A{
       B(my m){
           m.show();
        public void show(){
            System.out.println("B");
    public class test implements my{
        public void show(){
            System.out.println("test");
        public static void main(String args[]){
          test t=new test();
          B b=new B(t);
          b.show();
    }Thanks

    What will be the output of the following code? Can I
    get some detail explanation?Well, I guess you were not able to figure out HOW you got that output. Should have been a li'l more clear in your question. Never mind now... here is my understanding of the code.
    1) The program starts at main()
    2) creates an object for test called t (does nothing more than this since it does not have a constructor defined by you!!)
    3)creates an object for B whose constructor takes an object argument of type my. you send t becuase test implements my.
    4)calls the show method of m in the constructor.
    5)now, where is the definition of show() for m? Its in test. So now, that show() is executed and hence "test" is printed first.
    6)all done, it comes back to the main() to go to the next statement.
    7)calls the show() of b.
    8)this version of show asks to print "B" and hence the output.
    Was this detailed explanation enough? I hope so... ;-)

  • Converting output list to pdf ... plz chk the code....

    hi
        can any one execute the following code n tell me y its not workin...
    actually the file is getting downloaded and it opens by excel but not with the pdf.
    REPORT  z_output_pdf.
    TYPES: BEGIN OF t_ekpo,
      ebeln TYPE ekpo-ebeln,
      matnr TYPE ekpo-matnr,
    END OF t_ekpo.
    DATA:wa_ekpo TYPE t_ekpo,
    p_repid LIKE sy-repid,
        it_ekpo TYPE STANDARD TABLE OF t_ekpo.
    DATA : lv_repid TYPE sy-repid,
            lv_uname TYPE sy-uname.
    data:
      mstr_print_parms like pri_params,
      mc_valid(1)      type c,
      mi_bytecount     type i,
      mi_length        type i.
    data:
      mtab_pdf    like tline occurs 0 with header line,
      mc_filename like rlgrap-filename.
    lv_repid = sy-repid.
    lv_uname = sy-uname.
    SELECT ebeln matnr
    FROM ekpo
    INTO TABLE it_ekpo.
    LOOP AT it_ekpo INTO wa_ekpo.
      WRITE :/ wa_ekpo-ebeln, wa_ekpo-matnr.
    ENDLOOP.
    DATA: print_parameters TYPE pri_params,
            valid_flag(1) TYPE c,
            mi_rqident    LIKE tsp01-rqident.
    DATA:  p_linsz TYPE sy-linsz VALUE 132, " Line size
      p_paart TYPE sy-paart VALUE 'X_65_132'.  " Paper Format
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
      IMPORTING
        out_parameters       = print_parameters
        valid                = valid_flag
      EXCEPTIONS
        invalid_print_params = 2
        OTHERS               = 4.
    *-- Explicitly set line width, and output format so that
    *-- the PDF conversion comes out OK
    print_parameters-linsz = p_linsz.
    print_parameters-paart = p_paart.
        print_parameters-pdest = 'LOCL'.
    *SUBMIT (lv_repid) TO SAP-SPOOL WITHOUT SPOOL DYNPRO
                    SPOOL PARAMETERS print_parameters
                    VIA SELECTION-SCREEN
                    AND RETURN.
    *IF sy-subrc  <> 0.
    WRITE :' error'.
    *ENDIF.
    *-- Find out what the spool number is that was just created
    PERFORM get_spool_number USING lv_repid
               lv_uname
      CHANGING mi_rqident.
    *-- Convert Spool to PDF
      call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
        exporting
          src_spoolid = mi_rqident
          no_dialog  = space
          dst_device = print_parameters-pdest
        importing
          pdf_bytecount                  = mi_bytecount
        tables
          pdf        = mtab_pdf
        exceptions
          err_no_abap_spooljob           = 1
          err_no_spooljob                = 2
          err_no_permission              = 3
          err_conv_not_possible          = 4
          err_bad_destdevice             = 5
          user_cancelled                 = 6
          err_spoolerror                 = 7
          err_temseerror                 = 8
          err_btcjob_open_failed         = 9
          err_btcjob_submit_failed       = 10
          err_btcjob_close_failed        = 11
          others     = 12.
    call function 'DOWNLOAD'
         exporting
              bin_filesize            = mi_bytecount
              filename                = mc_filename
             filetype                = 'BIN'
         importing
              act_filename            = mc_filename
         tables
              data_tab                = it_ekpo.
      write :' ============'.
          FORM get_spool_number *
          Get the most recent spool created by user/report              *
    -->  F_REPID               *
    -->  F_UNAME               *
    -->  F_RQIDENT             *
    FORM get_spool_number USING f_repid
         f_uname
                    CHANGING f_rqident.
      DATA:
        lc_rq2name LIKE tsp01-rq2name.
      CONCATENATE f_repid+0(8)
                  f_uname+0(3)
        INTO lc_rq2name SEPARATED BY '_'.
      DATA : ls_tsp01 TYPE tsp01,
            lt_tsp01 TYPE TABLE OF tsp01.
      SELECT * FROM tsp01
      INTO TABLE lt_tsp01
      WHERE  rq2name = lc_rq2name
      ORDER BY rqcretime DESCENDING.
      LOOP AT lt_tsp01 INTO ls_tsp01.
        f_rqident = ls_tsp01-rqident.
        EXIT.
      ENDLOOP.
    SELECT * FROM tsp01 WHERE  rq2name = lc_rq2name
    ORDER BY rqcretime DESCENDING.
       f_rqident = tsp01-rqident.
       EXIT.
    ENDSELECT.
      IF sy-subrc NE 0.
        CLEAR f_rqident.
      ENDIF.
    ENDFORM." get_spool_number
    plz chk n tell me where its goin wrong....
    Message was edited by:
            neha gupta

    Hi neha,
    i do it in this way:
    REPORT ZGRO_ITAB_PDF_SPOOL.
    DATA: BEGIN OF ITAB OCCURS 0,
             TEXT(72),
          END   OF ITAB.
    Länge der PDF-Datei in Byte
    DATA: PDF_FILESIZE TYPE I.
    DATA: BIN_FILESIZE TYPE I.
    Druckparameter mit Gültigkeit
    DATA: PARAMS      LIKE PRI_PARAMS,
          VALID       TYPE C.
    Spoolnummer
    DATA: SPOOL_NR     LIKE TSP01-RQIDENT,
          SPOOL_NR_DEL LIKE TSP01_SP0R-RQID_CHAR.
    PDF Ausgabetabelle
    DATA: BEGIN OF PDF_OUTPUT OCCURS 0.
            INCLUDE STRUCTURE TLINE.
    DATA: END   OF PDF_OUTPUT.
    DATA: PROGRAM(128) TYPE C.
    DATA: DATEI TYPE STRING VALUE 'D:TESTPDF.PDF'.
    DATA: APPL  TYPE STRING.
    START-OF-SELECTION.
    Druckparameter besorgen (hier für LOCA)
    Line-size sollte entsprechende der Ausgabe gesetzt werden
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING
          DESTINATION    = 'LOCA'
          LINE_SIZE      = 080
          IMMEDIATELY    = ' '
          NO_DIALOG      = 'X'
        IMPORTING
          OUT_PARAMETERS = PARAMS
          VALID          = VALID.
      CHECK VALID <> SPACE.
    Versorgen der internen Tabelle
      READ REPORT 'ZGRO_ITAB_PDF_SPOOL' INTO ITAB.
    Ausgabe der internen Tabelle mit den Druckparametern.
      NEW-PAGE PRINT ON PARAMETERS PARAMS NO DIALOG NO-TITLE NO-HEADING.
      LOOP AT ITAB.
        WRITE:/ ITAB.
      ENDLOOP.
      NEW-PAGE PRINT OFF.
    Spoolnummer besorgen
      SPOOL_NR = SY-SPONO.
    Konvertierung der Ausgabe nach PDF
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
        EXPORTING
          SRC_SPOOLID              = SPOOL_NR
        IMPORTING
          PDF_BYTECOUNT            = PDF_FILESIZE
        TABLES
          PDF                      = PDF_OUTPUT
        EXCEPTIONS
          ERR_NO_ABAP_SPOOLJOB     = 1
          ERR_NO_SPOOLJOB          = 2
          ERR_NO_PERMISSION        = 3
          ERR_CONV_NOT_POSSIBLE    = 4
          ERR_BAD_DESTDEVICE       = 5
          USER_CANCELLED           = 6
          ERR_SPOOLERROR           = 7
          ERR_TEMSEERROR           = 8
          ERR_BTCJOB_OPEN_FAILED   = 9
          ERR_BTCJOB_SUBMIT_FAILED = 10
          ERR_BTCJOB_CLOSE_FAILED  = 11
          OTHERS                   = 12.
      CHECK SY-SUBRC = 0.
      SPOOL_NR_DEL = SPOOL_NR.
    Spool wieder löschen
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
        EXPORTING
          SPOOLID = SPOOL_NR_DEL.
      BIN_FILESIZE = PDF_FILESIZE.
    Download der Spools
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD
        EXPORTING
          BIN_FILESIZE = BIN_FILESIZE
          FILENAME     = DATEI
          FILETYPE     = 'BIN'
        CHANGING
          DATA_TAB     = PDF_OUTPUT[].
    Programmpfad auf PC für PDF ermitteln
      CALL FUNCTION 'SO_PROGNAME_GET_WITH_PATH'
        EXPORTING
          DOCTYPE           = 'PDF'
        IMPORTING
          PATHNAME          = PROGRAM
        EXCEPTIONS
          PATH_NOT_FOUND    = 1
          PROGRAM_NOT_FOUND = 2
          NO_BATCH          = 3
          X_ERROR           = 4
          OTHERS            = 5.
    PDF ausführen
      APPL = PROGRAM.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>EXECUTE
        EXPORTING
          PARAMETER   = DATEI
          APPLICATION = APPL.
    Programmende                                                        *
    Regards, Dieter

  • Plz check the code

    Hi all,
    Friends please tell me what is the problem with this code.....
    It is not giving what i want.......
    I want only that row in the table to have orange background which contains the value 'check'..
    but what it does is that it sets all the other rows as orange too....
    but when i select all the rows in the table.....it does show the color of the cell which contains 'check' and the color of the rest of the cells which are set to highlight color...
    please chk the following code and let me know if there is any error...
    public class ErrorEntryCellRenderer extends DefaultTableCellRenderer {
        /** Creates a new instance of ErrorEntryCellRenderer */
        public ErrorEntryCellRenderer() {
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            Component retValue;
            retValue = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            if(value instanceof String) {
                if(((String)value).equalsIgnoreCase("check")) {
                    setBackground(Color.ORANGE);
                    validate();
            return retValue;
    }Thank you..
    Message was edited by:
    vaibhavpingle

    it doesnt work then...it does not paint any thing......
    i did the following changes
    public Component getTableCellRendererComponent(JTable table, Color c, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            Component retValue;
            retValue = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            if(value instanceof String) {
                if(((String)value).equalsIgnoreCase("check")) {
                    setBackground(Color.ORANGE);
                    validate();
                } else {
                    setBackground(c);
                    validate();
            return retValue;
        }

  • Can someone explain the code for having the Accordion panels closed?

    I located the answer to my own question (how to get all the accordion panels to remain closed when the browser opens) but I still don't understand the answer. Can someone explain this?
    This feature is only supported when using variable height panels, so you must pass a false into the Accordion's constructor for the "useFixedPanelHeights" constructor options, and a -1 for the "defaultPanel" option:
    <script type="test/javascript">
    var acc1 = new Spry.Widget.Accordion ("Acc1", { useFixPanelHeights: false, defaultPanel: -1});
    </script>
    Angela

    GPDMTR25 wrote:
    I located the answer to my own question (how to get all the accordion panels to remain closed when the browser opens) but I still don't understand the answer. Can someone explain this?
    This feature is only supported when using variable height panels, so you must pass a false into the Accordion's constructor for the "useFixedPanelHeights" constructor options, and a -1 for the "defaultPanel" option:
    <script type="test/javascript">
    var acc1 = new Spry.Widget.Accordion ("Acc1", { useFixPanelHeights: false, defaultPanel: -1});
    </script>
    Angela
    Hi Angela,
    You are right, the only way it will work is by setting the fixed height to false. As for the for the default panel option, -1 is not a panel and if you had 3 panels we could have used the number 3 (panel1 = 0) or 99 or whatever as long as there is no panel with that number. If we had used the number 1 for instance, then the 2nd panel would be opened by default.
    Hope this helps.
    Ben

  • Plz chk the code

    ==================================
    PERFORM get_spool_number USING sy-repid
               sy-uname
      CHANGING mi_rqident.
    =====================================
    FORM get_spool_number USING f_repid
         f_uname
                    CHANGING f_rqident.
      DATA:
        lc_rq2name LIKE tsp01-rq2name.
      CONCATENATE f_repid+0(8)
                  f_uname+0(3)
        INTO lc_rq2name SEPARATED BY '_'.
      SELECT rqident FROM tsp01 WHERE  rq2name = lc_rq2name
      ORDER BY rqcretime DESCENDING.
        f_rqident = tsp01-rqident.
        EXIT.
      ENDSELECT.
      IF sy-subrc NE 0.
        CLEAR f_rqident.
      ENDIF.
    ENDFORM." get_spool_number
    Field list without INTO clause is not allowed . allowed. . allowed. .     
    is the error i m getting   when i activate it..
    what is the error in  select query....

    Hi,
    try this
    ==================================
    PERFORM get_spool_number USING sy-repid
    sy-uname
    CHANGING mi_rqident.
    =====================================
    FORM get_spool_number USING f_repid
    f_uname
    CHANGING f_rqident.
    DATA: lc_rq2name LIKE tsp01-rq2name.
    CONCATENATE f_repid+0(8) f_uname+0(3)
    INTO lc_rq2name SEPARATED BY '_'.
    SELECT rqident INTO tsp01-rqident FROM tsp01
    WHERE rq2name = lc_rq2name
    ORDER BY rqcretime DESCENDING.
    f_rqident = tsp01-rqident.
    EXIT.
    ENDSELECT.
    IF sy-subrc NE 0.
    CLEAR f_rqident.
    ENDIF.
    ENDFORM." get_spool_number
    Make sure that u have declared teh TABLES: tsp01.
    Hope thsi solves ur problem.
    Reward points and close the thread if ur problem got solved.

  • How to stop the encoding ?plz see the code and correct it

    public class NewClass
        /** Creates a new instance of NewClass */
        public NewClass ()
            StateHelper sh=null;
            Processor p=null;
            try
                p=Manager.createProcessor (new URL ("file:///ring.wav"));
                sh = new StateHelper (p);
                p.configure ();
            catch (NoProcessorException ex)
                ex.printStackTrace ();
            catch (IOException ex)
                ex.printStackTrace ();
            p.setContentDescriptor (new FileTypeDescriptor (FileTypeDescriptor.MPEG_AUDIO));       
            TrackControl track[] = p.getTrackControls ();
            boolean encodingPossible = false;
            for (int i = 0; i < track.length; i++)
                try
                    track.setFormat (new AudioFormat (AudioFormat.MPEG));
    encodingPossible = true;
    catch (Exception e)
    track[i].setEnabled (false);
    if (!sh.realize (10000))
    System.exit (-1);
    DataSource source = p.getDataOutput ();
    MediaLocator dest = new MediaLocator ("file://ring1.mpg");
    DataSink filewriter = null;
    try
    filewriter = Manager.createDataSink (source, dest);
    filewriter.open ();
    filewriter.addDataSinkListener (new DataSinkListener ()
    public void dataSinkUpdate (DataSinkEvent e)
    if(e instanceof javax.media.datasink.EndOfStreamEvent)
    DataSink ds=e.getSourceDataSink ();
    try
    ds.stop ();
    System.out.println ("finished write");
    catch (IOException ex)
    ex.printStackTrace ();
    filewriter.start ();
    catch (NoDataSinkException e)
    System.exit (-1);
    catch (IOException e)
    System.exit (-1);
    catch (SecurityException e)
    System.exit (-1);
    p.start ();
    p.addControllerListener (new ControllerAdapter ()
    public void endOfMedia (EndOfMediaEvent e)
    Controller controller = (Controller) e.getSource ();
    controller.stop ();
    controller.deallocate ();
    System.out.println ("finished run through");
    public static void main (String[] args)
    new NewClass ();
    o/p is "finished run through",the EndOfStreamEvent never occurs.please correct if anything is wrong.when i manually stop the program then only the encoded file appears on the disk. this has to used from the other class and i cannot afford to use exit().help me.

    Try this - it seems to work
    public class NewClass
        Processor p = null;
        DataSink sink = null;
         /** Creates a new instance of NewClass */
        public NewClass ()
            try{
                p = Manager.createProcessor (new URL ("file:C:/WINDOWS/Media/Windows XP Startup.wav"));
                p.addControllerListener (new ControllerAdapter ()
                     public void configureComplete(ConfigureCompleteEvent e){
                        System.out.println ("ConfigureCompleteEvent");
                        Processor p = (Processor)e.getSourceController();
                        processConfigured(p);
                     public void realizeComplete(RealizeCompleteEvent e){
                        System.out.println ("RealizeCompleteEvent");
                        Processor p = (Processor)e.getSourceController();
                        processrealized(p);
                     public void controllerClosed(ControllerClosedEvent e){
                        System.out.println ("ControllerClosedEvent");
                     public void endOfMedia (EndOfMediaEvent e)
                        System.out.println ("EndOfMediaEvent");
                        Processor p = (Processor)e.getSourceController();
                        p.stop();
                     public void stop(StopEvent e){
                        System.out.println ("StopEvent");
                        Processor p = (Processor)e.getSourceController();
                        p.close();
                p.configure();
            }catch (NoProcessorException ex){
                 ex.printStackTrace ();
            }catch (IOException ex){
                 ex.printStackTrace ();
        private void processrealized(Processor p){
             MediaLocator dest = new MediaLocator("file:C:/Workspace/ring1.mpg");
             try{
                  sink = Manager.createDataSink(p.getDataOutput(), dest);
                 sink.addDataSinkListener(new DataSinkListener(){
                      public void dataSinkUpdate(DataSinkEvent e){
                           if(e instanceof EndOfStreamEvent){
                            System.out.println ("EndOfStreamEvent");
                                sink.close();
                  sink.open();
                  sink.start();
             }catch(Exception eX){
             p.start();
        private void processConfigured(Processor p){
            p.setContentDescriptor (new FileTypeDescriptor (FileTypeDescriptor.MPEG_AUDIO));       
            TrackControl track[] = p.getTrackControls ();
            boolean encodingPossible = false;
            for (int i = 0; i < track.length; i++){
                 try{
                      track.setFormat (new AudioFormat (AudioFormat.MPEG));
              encodingPossible = true;
         }catch (Exception e){
              track[i].setEnabled (false);
    p.realize();
    public static void main (String[] args)
    new NewClass ();
    `

  • Plz check the code and tell me necessary  modifications

    report Z_PHANIBDC2
           no standard page heading line-size 255.
    include bdcrecx1.
    PARAMETERS:P_FILE   LIKE RLGRAP-FILENAME DEFAULT
    'C:Documents and Settingssarath.vempatiDesktopphani1.TXT' OBLIGATORY
    DATA: BEGIN OF RECORD1 OCCURS 0,
            LIFNR(018),
            BURKS(011),
            KTOKK(014),
            ANRED(014),
            NAME1(014),
            SURTL(014),
            STRAS(012),
            ORT01(040),
            LAND1(013),
            SPRAS(019),
            KUNNR(015),
            BANKL(012),
            BANKS(018),
            AKONT(022),
            ZTERM(012),
            MAHNA(016),
    END OF RECORD1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
       DEF_FILENAME           = 'P_FILE '
    *   DEF_PATH               = ' '
       MASK                   = ',*.*,*.*. '
       MODE                   = 'O'
       TITLE                  = 'GET FILENAME '
    IMPORTING
       FILENAME               = P_FILE
    *   RC                     =
    EXCEPTIONS
       INV_WINSYS             = 1
       NO_BATCH               = 2
       SELECTION_CANCEL       = 3
       SELECTION_ERROR        = 4
       OTHERS                 = 5
    IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    START-OF-SELECTION.
    *LOOP AT RECORD1 FROM 2.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    *   CODEPAGE                      = ' '
       FILENAME                      = 'P_FILE '
       FILETYPE                      = 'DAT'
    *   HEADLEN                       = ' '
    *   LINE_EXIT                     = ' '
    *   TRUNCLEN                      = ' '
    *   USER_FORM                     = ' '
    *   USER_PROG                     = ' '
    *   DAT_D_FORMAT                  = ' '
    * IMPORTING
    *   FILELENGTH                    =
      TABLES
        DATA_TAB                      = RECORD1
    EXCEPTIONS
       CONVERSION_ERROR              = 1
       FILE_OPEN_ERROR               = 2
       FILE_READ_ERROR               = 3
       INVALID_TYPE                  = 4
       NO_BATCH                      = 5
       UNKNOWN_ERROR                 = 6
       INVALID_TABLE_WIDTH           = 7
       GUI_REFUSE_FILETRANSFER       = 8
       CUSTOMER_ERROR                = 9
       NO_AUTHORITY                  = 10
       OTHERS                        = 11
      DATA : RECORD LIKE RECORD1 OCCURS 0 WITH HEADER LINE.
      DATA : RECORD3 LIKE RECORD1 OCCURS 0 WITH HEADER LINE.
      DATA : LIFNR1 LIKE LFA1-LIFNR.
      LOOP AT RECORD1.
        IF RECORD1-LIFNR <> ''.
          LIFNR1 = RECORD1-LIFNR.
          RECORD3-LIFNR = RECORD1-LIFNR.
          RECORD3-BURKS = record1-BURKS.
          APPEND RECORD3.
        ELSE.
          RECORD3-LIFNR = LIFNR1.
          RECORD3-BURKS = record1-BURKS.
          APPEND RECORD3.
        ENDIF.
      ENDLOOP.
      DELETE RECORD1 WHERE LIFNR = ''.
      RECORD[] = RECORD1[].
      DATA VAR1(15).
      DATA VAR2(15).
      DATA COUNT(2).
      DATA COUNT1(2) VALUE 1.
      DATA VAR3(16).
      DATA VAR4(16).
      DATA VAR5(16).
      DELETE ADJACENT DUPLICATES FROM RECORD COMPARING LIFNR BURKS.
    write:/ 'phani'.
    *IF SY-SUBRC <> 0.
    ** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    **         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    perform open_group.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  record1-lifnr.
    perform bdc_field       using 'RF02K-BUKRS'
                                  RECORD1-BURKS.
    perform bdc_field       using 'RF02K-KTOKK'
                                  RECORD1-KTOKK.
    perform bdc_field       using 'RF02K-REF_LIFNR'
                                  RECORD1-LIFNR.
    perform bdc_field       using 'RF02K-REF_BUKRS'
                                  RECORD1-BURKS.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELX1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-ANRED'
                                  'RECORD1-ANRED'.
    perform bdc_field       using 'LFA1-NAME1'
                                  'RECORD1-NAME1'.
    perform bdc_field       using 'LFA1-SORTL'
                                  'RECORD1-SORTL'.
    perform bdc_field       using 'record1-STRAS'
                                  'RECORD1-STRAS'.
    perform bdc_field       using 'LFA1-ORT01'
                                  'RECORD1-ORT01'.
    perform bdc_field       using 'LFA1-LAND1'
                                  'RECORD1-LAND1'.
    perform bdc_field       using 'LFA1-SPRAS'
                                  'RECORD1-SPRAS'.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-KUNNR'
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKL(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'LFBK-BANKS(01)'
                                  'IN'.
    perform bdc_field       using 'LFBK-BANKL(01)'
                                  'RECORD1-BANKL'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-AKONT'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    perform bdc_transaction using 'XK01'.
    perform close_group.

    report Z_PHANIBDC2
           no standard page heading line-size 255.
    include bdcrecx1.
    DATA: BEGIN OF RECORD1 OCCURS 0,
            LIFNR(018),
            BURKS(011),
            KTOKK(014),
            ANRED(014),
            NAME1(014),
            SURTL(014),
            STRAS(012),
            ORT01(040),
            LAND1(013),
            SPRAS(019),
            KUNNR(015),
            BANKL(012),
            BANKS(018),
            AKONT(022),
            ZTERM(012),
            MAHNA(016),
    END OF RECORD1.
    <b>perform upload.</b>
    perform open_group.
    loop at recored.
    perform bdc_dynpro      using 'SAPMF02K' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  record1-lifnr.
    perform bdc_field       using 'RF02K-BUKRS'
                                  RECORD1-BURKS.
    perform bdc_field       using 'RF02K-KTOKK'
                                  RECORD1-KTOKK.
    perform bdc_field       using 'RF02K-REF_LIFNR'
                                  RECORD1-LIFNR.
    perform bdc_field       using 'RF02K-REF_BUKRS'
                                  RECORD1-BURKS.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-TELX1'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-ANRED'
                                  'RECORD1-ANRED'.
    perform bdc_field       using 'LFA1-NAME1'
                                  'RECORD1-NAME1'.
    perform bdc_field       using 'LFA1-SORTL'
                                  'RECORD1-SORTL'.
    perform bdc_field       using 'record1-STRAS'
                                  'RECORD1-STRAS'.
    perform bdc_field       using 'LFA1-ORT01'
                                  'RECORD1-ORT01'.
    perform bdc_field       using 'LFA1-LAND1'
                                  'RECORD1-LAND1'.
    perform bdc_field       using 'LFA1-SPRAS'
                                  'RECORD1-SPRAS'.
    perform bdc_dynpro      using 'SAPMF02K' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-KUNNR'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'LFA1-KUNNR'
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFBK-BANKL(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_field       using 'LFBK-BANKS(01)'
                                  'IN'.
    perform bdc_field       using 'LFBK-BANKL(01)'
                                  'RECORD1-BANKL'.
    perform bdc_dynpro      using 'SAPMF02K' '0130'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-BANKS(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ENTR'.
    perform bdc_dynpro      using 'SAPMF02K' '0210'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-AKONT'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0215'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-ZTERM'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPMF02K' '0220'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'record1-MAHNA'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_dynpro      using 'SAPLSPO1' '0300'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=YES'.
    perform bdc_transaction using 'XK01'.
    endloop.
    perform close_group.
    <b>form upload.</b>
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      CODEPAGE                      = ' '
       FILENAME                       = ' '
       FILETYPE                      = 'DAT'
      HEADLEN                       = ' '
      LINE_EXIT                     = ' '
      TRUNCLEN                      = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      DAT_D_FORMAT                  = ' '
    IMPORTING
      FILELENGTH                    =
      TABLES
        DATA_TAB                      = RECORD1
    EXCEPTIONS
       CONVERSION_ERROR              = 1
       FILE_OPEN_ERROR               = 2
       FILE_READ_ERROR               = 3
       INVALID_TYPE                  = 4
       NO_BATCH                      = 5
       UNKNOWN_ERROR                 = 6
       INVALID_TABLE_WIDTH           = 7
       GUI_REFUSE_FILETRANSFER       = 8
       CUSTOMER_ERROR                = 9
       NO_AUTHORITY                  = 10
       OTHERS                        = 11
      DATA : RECORD LIKE RECORD1 OCCURS 0 WITH HEADER LINE.
      DATA : RECORD3 LIKE RECORD1 OCCURS 0 WITH HEADER LINE.
      DATA : LIFNR1 LIKE LFA1-LIFNR.
      LOOP AT RECORD1.
        IF RECORD1-LIFNR <> ''.
          LIFNR1 = RECORD1-LIFNR.
          RECORD3-LIFNR = RECORD1-LIFNR.
          RECORD3-BURKS = record1-BURKS.
          APPEND RECORD3.
        ELSE.
          RECORD3-LIFNR = LIFNR1.
          RECORD3-BURKS = record1-BURKS.
          APPEND RECORD3.
        ENDIF.
      ENDLOOP.
      DELETE RECORD1 WHERE LIFNR = ''.
      RECORD[] = RECORD1[].
      DATA VAR1(15).
      DATA VAR2(15).
      DATA COUNT(2).
      DATA COUNT1(2) VALUE 1.
      DATA VAR3(16).
      DATA VAR4(16).
      DATA VAR5(16).
      DELETE ADJACENT DUPLICATES FROM RECORD COMPARING LIFNR BURKS.
    write:/ 'phani'.
    *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.

  • Please explain the code given .....

    FileInputStream fstream = new FileInputStream("Emp.txt");
    DataInputStream dstream = new DataInputStream(fstream);
    BufferedReader bf = new BufferedReader(new InputStreamReader(dstream));
    String data = null;
    String comma = ",";
    while((data = bf.readLine()) != null)

    http://java.sun.com/docs/books/tutorial/essential/io/streams.html

  • Plz  explain why concatenate statement is used in BDC

    Please do not post subject or content as ALL CAPITALS
    hi friends,
                    for the first time i am doing bdc table control.  i just cant make out the use of concatenate statement in that code.  i have gone thru some bdc table control codes in the forum but almost everywhere the concatenate statement has been used.  can u plz explain the use of that statement . THANKS IN ADVANCE.   
    eg:  THIS IS A CODE FROM ONE OF THE FORUM POSTS, SO I AM NOT COPYING IT FULLY.
         I HAVE HIGHLIGHTED THE  CONCATENATE PART.
    DATA : M(2) TYPE C,
    N(2) TYPE C,
    TEMP(50) TYPE C,
    WA_KUNNR LIKE KNA1-KUNNR.
    ****POPULATING HEADER DATA *******
    LOOP AT IT_HEADER INTO WA_HEADER.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    INPUT = WA_HEADER-KUNNR
    IMPORTING
    OUTPUT = WA_HEADER-KUNNR
    SELECT SINGLE KUNNR FROM KNA1 INTO WA_KUNNR WHERE KUNNR = WA_HEADER-KUNNR.
    IF SY-SUBRC 0.
    MESSAGE I004(ZZS_MSG).
    ENDIF.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'VBAK-SPART'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '/00'.
    PERFORM BDC_FIELD USING 'VBAK-AUART' WA_HEADER-AUART.
    PERFORM BDC_FIELD USING 'VBAK-VKORG' WA_HEADER-VKORG.
    PERFORM BDC_FIELD USING 'VBAK-VTWEG' WA_HEADER-VTWEG.
    PERFORM BDC_FIELD USING 'VBAK-SPART' WA_HEADER-SPART.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '/00'.
    PERFORM BDC_FIELD USING 'VBKD-BSTKD' WA_HEADER-BSTKD.
    PERFORM BDC_FIELD USING 'KUAGV-KUNNR' WA_HEADER-KUNNR.
    PERFORM BDC_FIELD USING 'KUWEV-KUNNR' WA_HEADER-KUNNR1.
    PERFORM BDC_FIELD USING 'RV45A-KETDAT'
    '21.10.2008'.
    PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'
    'D'.
    PERFORM BDC_FIELD USING 'VBKD-PRSDT'
    '21.10.2008'.
    **********ITEM LOOP TO FIND NO.OF ITEMS ************
    M = 0.
    LOOP AT IT_ITEMS INTO WA_ITEMS WHERE BSTKD = WA_HEADER-BSTKD.
    M = M + 1
    ENDLOOP.
    CONCATENATE 'VBAP-PS_PSP_PNR(' M ')' INTO TEMP.
    PERFORM BDC_FIELD USING 'BDC_CURSOR' TEMP.
    CLEAR TEMP.
    ******POPULATING ITEMS DATA ********
    N = 1.
    LOOP AT IT_ITEMS INTO WA_ITEMS WHERE BSTKD = WA_HEADER-BSTKD.
    CONCATENATE 'RV45A-MABNR(' N ')' INTO TEMP.
    PERFORM BDC_FIELD USING TEMP WA_ITEMS-MABNR.
    CLEAR TEMP.
    CONCATENATE 'RV45A-KWMENG(' N ')' INTO TEMP.PERFORM BDC_FIELD USING TEMP WA_ITEMS-KWMENG.
    CLEAR TEMP.
    CONCATENATE 'VBAP-PS_PSP_PNR(' N ')' INTO TEMP.
    PERFORM BDC_FIELD USING TEMP WA_ITEMS-WBS.
    CLEAR TEMP.
    N = N + 1.
    ENDLOOP.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '/00'.
    PERFORM BDC_FIELD USING 'VBKD-BSTKD' WA_HEADER-BSTKD.
    PERFORM BDC_FIELD USING 'KUAGV-KUNNR' WA_HEADER-KUNNR.
    PERFORM BDC_FIELD USING 'KUWEV-KUNNR' WA_HEADER-KUNNR1.
    PERFORM BDC_FIELD USING 'RV45A-KETDAT'
    '21.10.2008'.
    PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'
    'D'.
    PERFORM BDC_FIELD USING 'VBKD-PRSDT'
    '21.10.2008'.
    PERFORM BDC_FIELD USING 'VBKD-ZTERM'
    'N30'.
    PERFORM BDC_FIELD USING 'VBKD-INCO1'
    'FOB'.
    PERFORM BDC_FIELD USING 'VBKD-INCO2'
    'NEW YORK'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'RV45A-MABNR(02)'.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '=PKO1'.
    PERFORM BDC_FIELD USING 'VBKD-BSTKD' WA_HEADER-BSTKD.
    PERFORM BDC_FIELD USING 'KUAGV-KUNNR' WA_HEADER-KUNNR.
    PERFORM BDC_FIELD USING 'KUWEV-KUNNR' WA_HEADER-KUNNR1.
    PERFORM BDC_FIELD USING 'RV45A-KETDAT'
    '21.10.2008'.
    PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'
    'D'.
    PERFORM BDC_FIELD USING 'VBKD-PRSDT'
    '21.10.2008'.
    PERFORM BDC_FIELD USING 'VBKD-ZTERM'
    'N30'.
    PERFORM BDC_FIELD USING 'VBKD-INCO1'
    'FOB'.
    PERFORM BDC_FIELD USING 'VBKD-INCO2'
    'NEW YORK'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'VBAP-POSNR(01)'.
    PERFORM BDC_FIELD USING 'RV45A-VBAP_SELKZ(01)'
    'X'.
    LOOP AT IT_ITEMS INTO WA_ITEMS WHERE BSTKD = WA_HEADER-BSTKD.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '/00'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'KOMV-KBETR(07)'.
    PERFORM BDC_FIELD USING 'KOMV-KSCHL(07)' WA_ITEMS-KSCHL.
    PERFORM BDC_FIELD USING 'KOMV-KBETR(07)' WA_ITEMS-KBETR.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '=POS+'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'KOMV-KSCHL(08)'.
    ENDLOOP.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '/EBACK'.
    PERFORM BDC_FIELD USING 'BDC_CURSOR'
    'KOMV-KSCHL(08)'.
    PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
    PERFORM BDC_FIELD USING 'BDC_OKCODE'
    '=SICH'.
    CALL TRANSACTION 'VA01' USING IT_BDCDATA MODE 'A'.
    REFRESH IT_BDCDATA.
    ENDLOOP.
    u2022     Start new screen *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
    CLEAR WA_BDCDATA.
    WA_BDCDATA-PROGRAM = PROGRAM.
    WA_BDCDATA-DYNPRO = DYNPRO.
    WA_BDCDATA-DYNBEGIN = 'X'.
    APPEND WA_BDCDATA TO IT_BDCDATA.
    ENDFORM. "BDC_DYNPRO
    u2022     Insert field *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL SPACE.
    CLEAR WA_BDCDATA.
    WA_BDCDATA-FNAM = FNAM.
    WA_BDCDATA-FVAL = FVAL.
    APPEND WA_BDCDATA TO IT_BDCDATA.
    ENDIF.
    ENDFORM. "BDC_FIELD
    Edited by: Matt on Mar 9, 2009 4:38 PM

    Every input/output field on the screen has its own name.(for example: RV45A-KETDAT)
    PERFORM BDC_FIELD USING 'RV45A-KETDAT' '21.10.2008'.
    means fill the date '21.10.2008' into the screen field 'RV45A-KETDAT'.
    CONCATENATE 'RV45A-MABNR(' N ')' INTO TEMP.
    PERFORM BDC_FIELD USING TEMP WA_ITEMS-MABNR.
    There are some special input fields on the screen (table control). In fact, it's a table.
    RV45A-MABNR
    RV45A-KWMENG
    other fields...
    RV45A-MABNR(01)
    RV45A-KWMENG(01)
    RV45A-MABNR(02)
    RV45A-KWMENG(02)
    RV45A-MABNR(..)
    RV45A-KWMENG(..)
    RV45A-MABNR(N)
    RV45A-KWMENG(N)
    so, the code means fill the values line by line.
    and, I recommend you to learn more basic knowledge of dynpro.

Maybe you are looking for

  • What is index oragnized table

    hi can you tell me 1.what is index oragnized table 2. fragmentation of table 3. what is cascading trigger mean

  • Error in accessing Leave request

    Hi Guys, We are implementing ESS - MSS. I m trying to access leave request I m getting following error.   I have maintened 105 0001 infotype. ie assigned user to the ess user. Also given Essuser to SAP_ALL  authorization. And also I maintained webmo

  • How to make checkbox to be pre-selected in ALV

    Hi all! I`m creating ALV report and I want to create checkbox in the first column of the row. So I have a field SEL(1) in my structure and I`ve made the fieldcat: gs_fcat-col_pos = 5.   gs_fcat-coltext = 'Check'.   gs_fcat-fieldname = 'SEL'.   gs_fca

  • What type of file does IMovie Read?

    I am getting really frustrated with this, i have .mpg that play perfectly in quicktime, but cant seem to be imported in IMovie, so my guess is that i have to convert it into another type of file, but what file and what program should i use to convert

  • MMPV : meaning of an error

    Hi, i'm working with MMPV the details of data input are from company code  XX to company code XX period 07 fiscal year 2010 or date    Check and close period enabled all other options disabled. and i'm getting this error. Mode: Check and close period