Generating List within the same ABAP Report Program
Hello,
I have this program that requires me to generate a list of a report.
Normally I would use the "Submit ... Exporting list to Memory" command but the list has to be created at the same program that generates the report.
Is there a way to do this? If so how?
Thanks guys and take care.
Use Export command first
now use submit command ,this will go next program and it creates list there.
here you need to use Import command .
Example :
data : itab like mara occurs 0 with header line.
start-of-selection.
get the data from mara.
use export command
submit report2.
report2.
use import
display.
Reward Points if it is helpful
Thanks
Seshu
Similar Messages
-
How to get list of custom objects used in abap report program?
Hi friends,
I have a requirement in which I have to scan the entire abap report and retrieve list of custom objects used in it for example custom tables, data elements, structures, table types etc,. Is there any provision in SAP like fuction modules to do this functionality? As of now I am coding everything manually where so many possibilities are there for all kinds of objects. Provide your answers and suggestions...
Thanks,
NasteraHi,
The best way to do this is environment analysis. Follow the steps:
1. Open se38, type in the program name (don't click on on display/change or create button, stay on first screen only)
2. Click on environment analysis button (hot key SHIFT+F4)
3. It will throw a pop-up, which will ask for type of object you want to see, which are linked /used by this program. select all (or may be if you are only interested in Tables, then select table only)
4. Hit 'Enter'
You will get the full list of all objects used in this report program. Just note down the one which starts with Z or Y and that's it.
Cheers,
Anid -
Oracle Reports: Opening within the same browser all the time
Hi there,
I am running Oracle Report 10g using Oracle AS 10.3.
The report output is PDF to a browser.
Each time I run the report, it opens within the same browser.
Is there an option to open the report in a new browser all the time.
http://server_name:port_number/reports/rwservlet?server=report_server_name&recursive_load=NO¶mform=NO&destype=CACHE&desformat=pdf&report=report_name.rep&orientation=portrait¶mter1=1
Thanks for any help.
JimI guess you run the report from a form using WEB.SHOW_DOCUMENT? If so, use '_blank' as second parameter, this will open the given url in a new window.
btw.. if you use forms to start a report you may consider to use RUN_REPORT_OBJECT to start the report instead of using the url-syntax. -
Question relating tips for 2 DFF segments within the same group
Hi All,
I have a requirement where in I need to display a tip message for two of the DFF flexfield Segments within the same group. Currently we are displaying a tip for one of the DFF flexfield segment by placing it at the end of the Segment List and creating a normal tip message just below it. The shortfall of the above approach is when I add new segments to the DFF, the tip for the former segment is out of place.
Also, I currently have a requirement to create another tip for another Segment which is part of the same DFF. Could anyone of you please suggest how both the tips for the 2 DFF segments of the same group can be shown on the same page?
Thanks,
Sowmya.K
Edited by: user770244 on Nov 5, 2009 12:54 AMHi experts,
I am trying to find some solution that way:
- Maintain field catalog (FBRC008): setting field Segment as "secondary organisational unit" and setting field parter segment as "Secondary partner unit"
- Setting up a the reconciliation display (FBRC003) with the flag "Use Primary and Secondary org units and partner units in hierarchy display"
But when I launch the reconciliation display, the following dump arises :
"ITAB_ILLEGAL_COMPONENT"
In the current ABAP program "CL_FBRC_PRESENTATION==========CP" the internal
table "<LT_TOTAL>" was to be
processed with "SORT".
At the same time, a component "SEGMENT " was dynamically specified as content
of the field "ME->MD_SECONDARY_ORGUNIT_FIELD".
Do you have any explanation for that dump?
Thanks! -
How to do the Validations in Report Programming?
How to do the Validations in Report Programming?
how to do screen Validations and Field Validations if posssible can any one send the code regarding the Validation ....
Tks
DurusojuAT SELECTION-SCREEN - selscreen_event
Syntax
| { ON {para|selcrit} }
| { ON END OF selcrit }
| { ON BLOCK block }
| { ON RADIOBUTTON GROUP radi }
| { }
| { ON {HELP-REQUEST|VALUE-REQUEST}
| FOR {para|selcrit-low|selcrit-high} }
| { ON EXIT-COMMAND }.
Alternatives:
1. ... OUTPUT
2. ... ON {para|selcrit}
3. ... ON END OF selcrit
4. ... ON BLOCK block
5. ... ON RADIOBUTTON GROUP radi
6. ... { }
7. ... ON {HELP-REQUEST|VALUE-REQUEST} FOR
{para|selcrit-low|selcrit-high} }
8. ... ON EXIT-COMMAND
Effect
These additions allow individual evaluation of specific elements of the selection screens of the program. The information as to which selection has triggered the event is contained in the system field sy-dynnr.
Alternative 1
... OUTPUT
Effect
This event is triggered at the screen event PBO of a selection screen. In the event block, the selection screen can be prepared through assignments to the data objects of parameters and selection criteria and through dynamic screen modifications.
Note
The assignments to input fields in the event block AT SELECTION-SCREEN OUTPUT always affect the selection screen and overwrite the user inputs from previous displays of the same selection screen. Assignments in the event blocks LOAD-OF-PROGRAM oder INITIALIZATION, on the other hand, only have an effect at first program start.
Alternative 2
... ON {para|selcrit}
Effect
This event is triggered at the screen event PAI of a selection screen if the content of the input field of a parameter para or a line of a selection criterion selcrit was passed to the ABAP program. In the event block, the user input can be checked. Sending a warning or an error message in the event block makes the fields para and selcrit ready for input again.
No parameter that is defined as a radio button can be specified. For this purpose, the addition ON RADIOBUTTON GROUP is provided.
Note
If a user action takes place in the dialog box for the multiple selection of a selection criterion selcrit, the entries of the selection table are passed to the program, line by line. For each line, the event AT SELECTION-SCREEN ON selcrit is triggered.
Alternative 3
... ON END OF selcrit
Effect
This event is triggered after the selection table selcrit has been fully passed to the program after a user action in the dialog box for the multiple selection has taken place. In the event block, the entire selection table can be checked.
Alternative 4
... ON BLOCK block
Effect
This event is triggered at the screen event PAI of a selection screen if all the input fields of a block block of the selection screen were passed to the ABAP program. In the event block, the user inputs can be checked. Sending a warning or an error message in the event block makes all the fields of the block block ready for input again.
Alternative 5
... ON RADIOBUTTON GROUP radi
Effect
This event is triggered at the screen event PAI of a selection screen if all the fields of a radio button group radi of the selection screen were passed to the ABAP program. In the event block, the user input can be checked. Sending a warning or error message in the event block makes all the radion buttons of the block radi ready for input again.
Note
The individual fields of a radio button group are not passed individually and do not trigger the event AT SELECTION-SCREEN ON par.
Alternative 6
Effect
The event AT SELECTION-SCREEN itself is triggered as the last event of selection screen processing if all the input values were passed to the program. In this event block, all the user inputs can be checked. Sending a warning or an error message in the event block makes all the screen fields ready for input once again.
Alternative 7
... ON { HELP-REQUEST | VALUE-REQUEST } FOR
{para|selcrit-low|selcrit-high} }
Effect
The two events ON HELP-REQUEST and ON VALUE-REQUEST are triggered at the screen events POH and POV of a selection screen if - for the input field of a parameter para or one of the input fields of a selection criterion selcrit - the field help F1 or the input help F4 was called. Other selection events are not triggered.
In the event blocks, a self-defined field or input field can be programmed, which overrides any helps possibly defined in the ABAP Dictionary.
Notes
These event blocks can only be implemented for fields of the selection screen that are defined in the same ABAP program and not in a possibly linked logical database.
With the events for the field and input help, no data is transported between the selection screen and the ABAP program. As with general screens, suitable function modules must be used for these. The parameters and selection criteria changed for the input help are transported to the selection screen.
Alternative 8
... ON EXIT-COMMAND
Effect
This event is triggered if the user has called one of the functions Back, Exit or Cancel. In the event block, possible clean-up actions can be executed.
Example
In these executable programs, a standard selection screen and a further selection screen are defined. In the event blocks AT SELECTION-SCREEN, the inputs in the selection screens can be specially handled using the name p_carrid and the screen number in sy-dynnr.
REPORT demo_at_selection_screen.
Global data
DATA: sflight_tab TYPE TABLE OF sflight,
sflight_wa LIKE LINE OF sflight_tab.
Selection screens
PARAMETERS p_carrid TYPE spfli-carrid.
SELECTION-SCREEN BEGIN OF SCREEN 500.
SELECT-OPTIONS s_conn FOR sflight_wa-connid.
DATA s_conn_wa LIKE LINE OF s_conn.
SELECTION-SCREEN END OF SCREEN 500.
Handling selection screen events
AT SELECTION-SCREEN ON p_carrid.
IF p_carrid IS INITIAL.
MESSAGE 'Please enter a value' TYPE 'E'.
ENDIF.
AUTHORITY-CHECK OBJECT 'S_CARRID'
ID 'CARRID' FIELD p_carrid
ID 'ACTVT' FIELD '03'.
IF sy-subrc = 4.
MESSAGE 'No authorization for carrier' TYPE 'E'.
ELSEIF sy-subrc <> 0.
MESSAGE 'Error in authority check' TYPE 'A'.
ELSE.
IF sy-ucomm = 'ONLI'.
CALL SELECTION-SCREEN '0500'.
ENDIF.
ENDIF.
AT SELECTION-SCREEN.
IF sy-dynnr = '0500'.
IF s_conn IS INITIAL.
MESSAGE 'Please enter values' TYPE 'W'.
ELSE.
SELECT *
FROM sflight
INTO TABLE sflight_tab
WHERE carrid = p_carrid AND
connid IN s_conn.
IF sy-subrc <> 0.
MESSAGE 'No flights found' TYPE 'E'.
ENDIF.
ENDIF.
ENDIF.
Main program
START-OF-SELECTION. -
[nQSError: 14065] Illegal cross join within the same dimension
Hey guys,
I'm stumped. I have two dimension tables that are joined 1:N (there is NOT an M:N relationship between them) and I have them joined in the Physical Layer and the Business Model and Mapping Layer. The two tables are F4101 (the "1") and F4102 (the "N") in the 1:N relationship. F4102 then joins to a fact table, and F4101 joins to NOTHING else. So I don't believe I have a circular condition or a need for a bridge table. Both tables are published to the Presentation Layer for reporting.
The error occurs in Answers when I want to do something as trivial as display the three primary key columns together from F4101: F4101.col1, F4101.col2, F4101.col3 (all three make up the PK). When I do that, the following error occurs:
"nQSError: 14065] Illegal cross join within the same dimension caused by incorrect subject area setup: [ F4101 T28761] with [ F4102 T1805] "
What I can't figure out is WHY the F4102 table is listed in this error. I didn't try to report on it at all. See the logical SQL below from my query:
"SQL Issued: SELECT "Item Master (F4101)".IMITM saw_0, "Item Master (F4101)".IMLITM saw_1, "Item Master (F4101)".IMAITM saw_2 FROM "Sales Analysis" ORDER BY saw_0, saw_1, saw_2"
As soon as I take out one of the three PK columns and add in another non-PK column from F4101, it works just fine. And reporting on each of the three PK columns individually works as well in Answers.
Any ideas? I would greatly appreciate it.
Thanks.Try this;
1. In the logical layer, create one folder called F4101_F4102.
2. Map both F4101 and F4102 as logical table sources in that folder.
3. Join from the folder F4101_F4102 to the fact using a Logical (new complex join) join.
Chris. -
Illegal cross join within the same dimension caused by incorrect
Hi,
I created a logical table from 2 different Physical tables. Then I created a Dimension out of this logical table.
At the BI Answer, while I tried drilling on the dimension, I get the following error:
“Illegal cross join within the same dimension caused by incorrect subject area setup “
Please let me know if there is any work around this issue.
Thanks,I think that OBIEE try to do a cross join but don't allow it
http://gerardnico.com/wiki/dw/join/cross_join
It generate surely a join with two tables where you don't have any condition or relation in the physical layer.
When you check the column from the subject area are you sure that you have a condition in the physical layer for the two tables ?
When you say "I tried drilling on the dimension", does it means that you have a report and when you click on link which come from a dimension level, it doesn't work ?
Regards
Nico -
Can you have two detail lists from the basic list at the same time?
Hi
Can you have two detail lists from the basic list at the same time?
If yes how and if no why?
Thanks
VenkatNo ... it is not possible of 2 detail list at one time from the basic list ...
you can increament the SY-LSIND .... But you can not display both the windows at single time ...
it is possible to display 2 Detail list in ALV ...... from one basic list using the Blocked list concept .
Sample Program on BLOCK LISTS
Report zblock_list
* Declarations for BLOCK ALV DISPLAY
*--type pools
TYPE-POOLS:slis.
DATA:x_layout TYPE slis_layout_alv,
t_field TYPE slis_t_fieldcat_alv,
*--field catalog
x_fldcat LIKE LINE OF t_field,
*--to hold all the events
t_events TYPE slis_t_event,
x_events TYPE slis_alv_event,
t_sort TYPE slis_t_sortinfo_alv,
x_sort LIKE LINE OF t_sort ,
*--Print Layout
x_print_layout TYPE slis_print_alv.
*----Macro to add field catalog.
*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN
DEFINE add_catalog.
clear x_fldcat.
x_fldcat-fieldname = &1.
x_fldcat-seltext_m = &2.
x_fldcat-outputlen = &3.
x_fldcat-tech = &4.
x_fldcat-col_pos = &5.
x_fldcat-no_zero = 'X'.
x_fldcat-ddictxt = 'M'.
x_fldcat-datatype = &6.
x_fldcat-ddic_outputlen = &7.
if &6 = 'N'.
x_fldcat-lzero = 'X'.
endif.
*--build field catalog
append x_fldcat to t_field.
END-OF-DEFINITION.
*----- data declerations.
data: v_repid like sy-repid.
data: begin of itab occurs 0,
matnr like mara-matnr,
ernam like mara-ernam,
meins like mara-meins,
end of itab.
data: begin of jtab occurs 0,
matnr like makt-matnr,
maktx like makt-maktx,
end of jtab.
select matnr ernam meins
up to 20 rows
from mara
into table itab.
select matnr maktx
up to 20 rows
from makt
into table jtab.
v_repid = sy-repid.
*DISPLAY alv
* Initialize Block
call function 'REUSE_ALV_BLOCK_LIST_INIT'
exporting
i_callback_program = v_repid.
*Block 1:
*INITIALIZE
refresh t_field. clear t_field.
refresh t_events.
*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN
add_catalog:
'MATNR' 'Material' '18' '' '1' 'C' '18',
'ERNAM' 'Created By' '12' '' '2' 'C' '12',
'MEINS' 'Unit' '5' '' '3' 'C' '3'.
*--build table for events.
x_events-form = 'TOP_OF_LIST1'.
x_events-name = slis_ev_top_of_list.
append x_events to t_events.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = x_layout
it_fieldcat = t_field
i_tabname = 'ITAB'
it_events = t_events
it_sort = t_sort
tables
t_outtab = itab
exceptions
program_error = 1
maximum_of_appends_reached = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
*--BLOCK 2(SUMMARY REPORT)
*INITIALIZE
refresh t_field. clear t_field.
refresh t_events.
*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN
add_catalog:
'MATNR' 'Material' '20' '' '1' 'C' '18',
'MAKTX' 'Description' '40' '' '2' 'C' '40'.
*--build table for events.
x_events-form = 'TOP_OF_LIST2'.
x_events-name = slis_ev_top_of_list.
append x_events to t_events.
* Append table block.
call function 'REUSE_ALV_BLOCK_LIST_APPEND'
exporting
is_layout = x_layout
it_fieldcat = t_field
i_tabname = 'JTAB'
it_events = t_events
tables
t_outtab = jtab
exceptions
program_error = 1
maximum_of_appends_reached = 2
others = 3.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
*--CALL FM TO DISPLAY THE BLOCK REPORT.
call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'
* exporting
* is_print = x_print_layout
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.
form top_of_list1.
skip 1.
write: 10 'List 1',
/5 '--------------------'.
skip 1.
format reset.
endform.
form top_of_list2.
skip 1.
write: 10 'List 2',
/5 '--------------------'.
skip 1.
format reset.
endform.
reward points if it is usefull ....
Girish -
Use abap report program to print bar code instead of smartforms
Do anyone know how to use abap report program to print bar code?
Hi Celina,
http://searchsap.techtarget.com/tip/1,289483,sid21_gci839063,00.html
I hope this will help, also it depends on the barcode type like ARTNR-code 128...
Regards,
Sudhi -
How can I start a new paragraph within the same table cell?
In Numbers, when adding text within a table frame, how can I start a new line within the same frame (rather than advancing to the next cell)? I'd like to enter a mini-list of several items of various lengths of data.
While Wayne's answer solves your problem, another possibility is to uncheck the box at the bottom of the Table inspector for "Return key moves to next cell." If that is unchecked, the return key types a paragraph return within the cell (the same as Option Return with the box checked).
With that box unchecked, Shift Return types a soft return (new line without a paragraph break). -
How can I migrate from one user to another within the same computer?
My main user account in my desktop is becoming buggy after to many migrations from different computers and long time usage. I would like to migrate from one user to another user within the same computer to see if this improves my current problems.
How can I do it in a reasonably safe and quick way?
Thank you very much, cheers, Rui
iMAC, OS 10.6.8... and yes, I love Snow Leopard light and handy... and all my programs work on it...Move small groups of files to the /Users/Shared/ folder or another location and see if the problems disappear. Moving everything to a new user account will in all probability transfer the problems.
(119885) -
Delivery without reference for stock transfer within the same plant 311
Dear all,
I need to create a delivery without reference for stock transfer within the same plant, movement 311, i.e. just from 1 storage location to another storage location.
I tried to use VL01NO with delivery type UL.
Now my question is how can I assign a receiving plant for a customer?
I can't do the MIGO or MB1B document because I need the delivery document (packing list, forms, Texts,...).
It's possible this option???
Thank you very much.Hi,
What is the item category you are assigning while doing VL01NO? Check the schedule line category for that item category assignment. That Schedule line category has an option for one step GI. There you can assign 311 or create a separate item category and schedule line category and in that SC assign 311.
Thanks
Krish. -
Problem while fetching more records in SAP ABAP report program
Hello Frinds,
I have SAP ABAP report program which fetches data from usr02 table
Now, program is working fine with less number of records, bot in production there are more than 200000 records and either report gets timed out or there is run time error like buffer area not available.
Below is the fetch statement
SELECT bname FROM usr02 INTO TABLE lt_user
So, do I need to take records in small chunks, I do not think it is needed as I have worked on number of othere databases where there are number of records in single fetch statement and database itself take care of this.
Please provide me some approach to resolve this problem.This will be very difficult for you.....
Since you are getting a time out error....it looks like, you are runnning this report in foreground....................
Try running it in background it will work...
ELSE....you have to fetch in small chunks....but the question is how will you do it. Since the USR02 only has BNAME as primary key...
Either put the BNAME as part of selection screen and fetch the data.....it will solve your problem....
Only fetch for those BNAME which is entered in the selection screen...
Hope it helps! -
Linking to an anchor within the same page
Anyone know how to link to an anchor within the same page?
For instance, im making a FAQ page. at the top of the page I would like to list all the questions. i would like the viewer to be able to click a question which brings them to the answer on the bottom of the page.
looked in inspector couldn't find it. linking to anchors is pretty basic, so id be really suprised if iweb doesn't have this feature. so im assuming im missing it.......
how do i do this?Anyone know how to link to an anchor within the same page?
how do i do this?
Linking to an anchor within the same page is no more than scrolling to it, and can be (easily) emulate with javascript window.scroll function.
See my post here: http://discussions.apple.com/thread.jspa?messageID=7676908�
All javascript is linked to the example page. -
XML document structures must start and end within the same entity
Hi there,
I'm working with a client/server application and using SaxParser for reading in xml. I get the SaxParserException: XML document structures must start and end within the same entity. I understand what that means, but it isn't applicable! The xml data being used is well-formed. I checked the well-formedness with Stylus Studio to make sure. Here's the data:
<?xml version='1.0' encoding='UTF-8'?>
<vcmessage>
<vcsource>3</vcsource>
<processevent>16</processevent>
<shape>
<llindex>0</llindex>
<shapetype>9</shapetype>
<shapeproperties>
<shapelocation>
<xcoord>54</xcoord>
<ycoord>184</ycoord>
</shapelocation>
<bounds>
<width>24</width>
<height>24</height>
</bounds>
<fgcolor>
<fgred>0</fgred>
<fggreen>0</fggreen>
<fgblue>0</fgblue>
</fgcolor>
<bgcolor>
<bgred>255</bgred>
<bggreen>255</bggreen>
<bgblue>255</bgblue>
</bgcolor>
<thickness>1</thickness>
<isfilled>false</isfilled>
</shapeproperties>
</shape>
</vcmessage>The parser generally stops around the </bgcolor> tag.
I'm using Eclypse as my IDE. I'm wondering if there's something wrong with it? Or maybe there's something wrong with the class I'm using for reading in the XML? Followng is the class.
Please advise,
Alan
package vcclient;
import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;
public class XMLDocumentReader extends DefaultHandler
private VCClient client = null;
private Writer out;
private String lineEnd = System.getProperty("line.separator");
private boolean haveSourceType = false;
private boolean haveUserName = false;
private boolean haveMessage = false;
private boolean haveProcessEvent = false;
private boolean haveLinkedListIndex = false;
private boolean haveOpeningShapePropertiesTag = false;
private boolean haveShapeType = false;
private boolean haveOpeningShapeLocationTag = false;
private boolean haveShapeLocation = false;
private boolean haveOpeningXCoordTag = false;
private boolean haveOpeningYCoordTag = false;
private boolean haveOpeningBoundsTag = false;
private boolean haveBoundsWidth = false;
private boolean haveBoundsHeight = false;
private boolean haveOpeningFGColorTag = false;
private boolean haveOpeningBGColorTag = false;
private boolean haveOpeningThicknessTag = false;
private boolean haveOpeningIsFilledTag = false;
private boolean haveOpeningImageDataTag = false;
private boolean haveOpeningTextDataTag = false;
private boolean haveFGRed = false;
private boolean haveFGGreen = false;
private boolean haveFGBlue = false;
private boolean haveBGRed = false;
private boolean haveBGGreen = false;
private boolean haveBGBlue = false;
private boolean haveThickness = false;
private boolean haveIsFilled = false;
private boolean haveImageData = false;
private boolean haveTextData = false;
private VCMessage vcmessage = null;
public XMLDocumentReader(VCClient value)
client = value;
vcmessage = new VCMessage();
public VCMessage getVCMessage()
return vcmessage;
public boolean haveSourceType()
return haveSourceType;
public boolean ParseXML(InputStream stream)
boolean success = false;
// Use the default (non-validating) parser
SAXParserFactory factory = SAXParserFactory.newInstance();
try
// Set up output stream
out = new OutputStreamWriter(System.out, "UTF-8");
// Parse the input
SAXParser saxParser = factory.newSAXParser();
saxParser.parse( stream, this );
success = true;
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() );
// Unpack the delivered exception to get the exception it contains
Exception x = spe;
if (spe.getException() != null)
x = spe.getException();
x.printStackTrace();
return success;
catch (SAXException sxe)
// Error generated by this application
// (or a parser-initialization error)
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
x.printStackTrace();
return success;
catch (ParserConfigurationException pce)
// Parser with specified options can't be built
pce.printStackTrace();
return success;
catch (Throwable t)
t.printStackTrace();
return success;
return success;
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 lName, // local name
String qName, // qualified name
Attributes attrs)throws SAXException
String eName = lName; // element name
if (eName.equals(""))
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 (aName.equals("")) aName = attrs.getQName(i);
emit(" ");
emit(aName + "=\"" + attrs.getValue(i) + "\"");
emit(">");
if(makeStartTag(eName).equals(Constants.OPENING_SHAPEPROPERTIES))
haveOpeningShapePropertiesTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_SHAPELOCATION))
haveOpeningShapeLocationTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BOUNDS))
haveOpeningBoundsTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_FGCOLOR))
haveOpeningFGColorTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BGCOLOR))
haveOpeningBGColorTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_BGGREEN))
System.out.println("See BGGreen");
else if(makeStartTag(eName).equals(Constants.OPENING_BGBLUE))
System.out.println("See BGBlue");
else if(makeStartTag(eName).equals(Constants.OPENING_THICKNESS))
haveOpeningThicknessTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_ISFILLED))
haveOpeningIsFilledTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_IMAGEDATA))
haveOpeningImageDataTag = true;
else if(makeStartTag(eName).equals(Constants.OPENING_TEXTDATA))
haveOpeningTextDataTag = true;
public void endElement(String namespaceURI,
String sName, // simple name
String qName // qualified name
)throws SAXException
if(sName.equals("") && !qName.equals(""))
sName = qName;
emit("</"+sName+">");
else
emit("</"+sName+">");
if(makeEndTag(sName).equals(Constants.CLOSING_SOURCE_TYPE))
haveSourceType = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_USER))
haveUserName = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_MESSAGE))
haveMessage = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_PROCESSEVENT))
haveProcessEvent = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_LINKEDLISTINDEX))
haveLinkedListIndex = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPETYPE))
haveShapeType = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_SHAPELOCATION))
haveOpeningShapeLocationTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_WIDTH))
haveBoundsWidth = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_HEIGHT))
haveBoundsHeight = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BOUNDS))
haveOpeningBoundsTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGRED))
haveFGRed = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGGREEN))
haveFGGreen = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGBLUE))
haveFGBlue = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_FGCOLOR))
haveOpeningFGColorTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGRED))
haveBGRed = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGGREEN))
haveBGGreen = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGBLUE))
System.out.println("See closing BGBlue");
haveBGBlue = true;
else if(makeEndTag(sName).equals(Constants.CLOSING_BGCOLOR))
haveOpeningBGColorTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_THICKNESS))
System.out.println("XMLDocumentReader: Step2");
haveOpeningThicknessTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_ISFILLED))
haveOpeningIsFilledTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_IMAGEDATA))
haveOpeningImageDataTag = false;
else if(makeEndTag(sName).equals(Constants.CLOSING_TEXTDATA))
haveOpeningTextDataTag = false;
private String makeStartTag(String tag_name)
String start = "<";
String end = ">";
return start.concat(tag_name).concat(end);
private String makeEndTag(String tag_name)
String start = "</";
String end = ">";
return start.concat(tag_name).concat(end);
public void characters(char buf[], int offset, int len)throws SAXException
String s = new String(buf, offset, len);
if(haveSourceType == false)
if(vcmessage.getSourceType() == null)
try
if(s.equals(""))return;
int sourcetype = Integer.parseInt(s);
vcmessage.setSourceType(sourcetype);
catch(NumberFormatException nfe){}
else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE)
if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveUserName == false)
vcmessage.setUserName(s);
else if(vcmessage.getSourceType() == SourceType.CHAT_SOURCE && haveMessage == false)
//When the parser encounters interpreted characters like: & or <,
//then this method gets invoked more than once for the whole message.
//Therefore, we need to concatonate each portion of the message. The
//following method call automatically concatonates.
vcmessage.concatMessage(s);
else if(vcmessage.getSourceType() == SourceType.WHITEBOARD_SOURCE)
if(haveProcessEvent == false)
try
vcmessage.setProcessEvent(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveLinkedListIndex == false)
try
vcmessage.setLinkedListIndex(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveShapeType == false)
try
vcmessage.setShapeType(Integer.parseInt(s));
catch(NumberFormatException nfe){}
if(haveOpeningShapePropertiesTag)
if(haveOpeningShapeLocationTag)
if(haveOpeningXCoordTag)
try
vcmessage.setXCoordinate(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveOpeningYCoordTag)
try
vcmessage.setYCoordinate(Integer.parseInt(s));
//reset all flags for ShapeLocation, X and Y coordinates
haveOpeningXCoordTag = false;
haveOpeningYCoordTag = false;
//haveOpeningShapeLocationTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningBoundsTag)
if(haveBoundsWidth == false)
try
vcmessage.setBoundsWidth(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBoundsHeight == false)
try
vcmessage.setBoundsHeight(Integer.parseInt(s));
//reset flag
//haveOpeningBoundsTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningFGColorTag)
if(haveFGRed == false)
try
vcmessage.setFGRed(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveFGGreen == false)
try
vcmessage.setFGGreen(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveFGBlue == false)
try
vcmessage.setFGBlue(Integer.parseInt(s));
//reset flag
//haveOpeningFGColorTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningBGColorTag)
if(haveBGRed == false)
try
vcmessage.setBGRed(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBGGreen == false)
try
vcmessage.setBGGreen(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveBGBlue == false)
{ System.out.println("getting BGBlue data");
try
vcmessage.setBGBlue(Integer.parseInt(s));
//reset flag
//haveOpeningBGColorTag = false;
catch(NumberFormatException nfe){}
else if(haveOpeningThicknessTag)
try
vcmessage.setThickness(Integer.parseInt(s));
catch(NumberFormatException nfe){}
else if(haveOpeningIsFilledTag)
vcmessage.setIsFilled(s);
else if(haveOpeningImageDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
vcmessage.setBase64ImageData(s);
else if(haveOpeningTextDataTag && vcmessage.getProcessEvent() == org.jcanvas.comm.ProcessEvent.MODIFY)
vcmessage.setTextData(s);
//reset
haveOpeningShapePropertiesTag = false;
emit(s);
//===========================================================
// Utility Methods ...
//===========================================================
// Wrap I/O exceptions in SAX exceptions, to
// suit handler signature requirements
private void emit(String s)throws SAXException
try {
out.write(s);
out.flush();
} catch (IOException e) {
throw new SAXException("I/O error", e);
// Start a new line
private void nl()throws SAXException
try {
out.write(lineEnd);
} catch (IOException e) {
throw new SAXException("I/O error", e);
//treat validation errors as fatal
public void error(SAXParseException e)
throws SAXParseException
throw e;
// dump warnings too
public void warning(SAXParseException err)
throws SAXParseException
System.out.println("** Warning"
+ ", line " + err.getLineNumber()
+ ", uri " + err.getSystemId());
System.out.println(" " + err.getMessage());
}Just out of curiosity what happens if you append a space to the end of the XML document?
Maybe you are looking for
-
Powerbook's display malfunctioned
About a week ago, the display on my 12" Powerbook (1.33GHz edition) suddenly stopped working. I honestly looked down at my shoe, and back up at the computer and instead of my desktop, I saw a whole bunch of dark lines, sort of like if one pixel's len
-
Actual Line Items - WBS : Table
Hi, I want to know the actual line items of a WBS element. Can someone help me with the table where i can get the details. Thanks in Advance, Safi
-
How to use case when function to calculate time ?
Dear All, May i know how to use case when function to calculate the time ? for the example , if the First_EP_scan_time is 12.30, then must minus 30 min. CASE WHEN FIRSTSCAN.EP_SHIFT <> 'R1' AND FIRSTSCAN.EP_SHIFT <> 'R2' THEN ROUND(CAST((DATEDIFF(
-
FTP Protocol support in JDK 1.4.2
It seems like HTTP is the only official supported Protocol. Any idea if FTP is supported by Sun One Web Server 6.1 SP5. If yes is there any special set up, currently it is not working. Thanks
-
Propagation of Content Management in Weblogic Portal
Hi, Can anyone please provide me with the step-by-step procedure of propagating BEA Repository Content management data from one environment to another(Local to Dev or Dev to UAT) using Weblogic Workshop or using Ant. In the following URL http://edocs