Help needed for project
hi....i wanna ask anyone who can help tell me how you can put a .gif file such that the html file can show the .gif picture and a random number generator applet together UPON click on a button.
u see....there are many .gif files and on the base of the html...there are buttons to click on such that when you click on different buttons...u will go into various .gif. so now now on one of the .gif files....i wanna add a random number java applet inside the .gif and add this to the whole html file.
please help.thanks
You can't put a random number generator is a gif. GIFs are images following a particular format (and using compression owned by an evil company which a few years ago anyway were threatening to sue everybody in the world), and is not executable. That doesn't really make sense.
But don't try to describe problem in terms of a possible implementations; that just confuses the matter. It sounds like you want to display images, based on a static gif file, with additional random content added. Is that what you want to do?
I'm pretty sure it's possible to:
(1) load an image from a GIF file, into a buffer
(2) filter that buffer through a routine that draws arbitrary stuff
(3) that arbitrary stuff could include alphanumeric text produced by a random number generator
(4) the output from the filter could then be used to create an image object
(5) that image object could then be displayed.
Similar Messages
-
+People..I am new to this forum and your help is absolutely essential as it for my project work. There are two questions in my project. This is the second one. The first question is at the following thread.
http://forum.java.sun.com/thread.jspa?threadID=5220057
Thanks in advance..+*
This is the Question
Create a class ToyCollection that stores information about different toys in a toy shop. The information to be stored about a single toy is,
- Toy identification as String
- Name of the toy as String
- Short description about the toy as a String
- Price of the toy as float
- Quantity of the toy in hand as short integer.
This class contains following methods,
- Constructor method that assigns user input values to above mentioned variables.
- main ( ) method that creates array of 4 objects of ToyCollection class and that takes input for all above details from the user and
calls method to check validity of Quantity and Price values. If all values are valid then create the objects and display the details
for all 4 toys.
- Method that checks validity of quantity and price. If the quantity is 0 or negative then method should throw user defined
exception with appropriate message and come out of program. Similarly if the price is 0 or negative then it should throw user defined exception with appropriate message and come out of program.
- Method that displays all details about a single toy in the following format, e.g. Here Total price should be calculated.
Toy Identification : S-1
Toy Name : Small Scooter
Toy Description : Ordinary 3 wheeler scooter
Toy price : 650.50
Quantity in hand : 3
Total price of Toys : 1951.50
And i did the following coding
import java.io.*;
import java.lang.*;
public class ToyCollection
public int toyid;
public String toyname;
public String toydetails;
public float toyprice;
public int toyquantity;
public void setToyid(int tid)
toyid = tid;
public void setToyname(String tname)
toyname = tname;
public void setToydetails(String tdet)
toydetails = tdet;
public void setToyprice(float tpri)
toyprice = tpri;
public void setToyquantity(int tquan)
toyquantity = tquan;
public int getToyid()
return toyid;
public String getToyname()
return toyname;
public String getToydetails()
return toydetails;
public float getToyprice()
return toyprice;
public int getToyquantity()
return toyquantity;
public static void main(String args[])throws Exception
ToyCollection a=new ToyCollection();
System.out.println("Enter the Toy id");
BufferedReader br1=new BufferedReader(new InputStreamReader(System.in));
int tid=Integer.parseInt(br1.readLine());
a.setToyid(tid);
System.out.println("Enter the Toy name");
BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
String tname=br2.readLine();
a.setToyname(tname);
System.out.println("Enter the Toy details");
BufferedReader br3=new BufferedReader(new InputStreamReader(System.in));
String tdet=br3.readLine();
a.setToydetails(tdet);
System.out.println("Enter the Toy price");
BufferedReader br4=new BufferedReader(new InputStreamReader(System.in));
float tpri=Float.parseFloat(br4.readLine());
a.setToyprice(tpri);
System.out.println("Enter the Toy quantity");
BufferedReader br5=new BufferedReader(new InputStreamReader(System.in));
int tquan=Integer.parseInt(br5.readLine());
a.setToyquantity(tquan);
System.out.println("The Toy Attributed you entered are displayed below \n" + " ID :" + a.getToyid() + "\n " +" Name :" + a.getToyname() + "\n " + " Details :" + a.getToydetails() + "\n " + " Price :" + a.getToyprice() + "\n " + " Quantity :" + a.getToyquantity());
I submitted the above coding and this was the response from the evaluator
*"You need to create array of toys. You are accepting details of toy in a single line and your program ends."*
Eagerly awaiting your reply at the earliest people.DrLaszloJamf , here is the question.
Create a class ToyCollection that stores information about different toys in a toy shop. The information to be stored about a single toy is,
- Toy identification as String
- Name of the toy as String
- Short description about the toy as a String
- Price of the toy as float
- Quantity of the toy in hand as short integer.
This class contains following methods,
- Constructor method that assigns user input values to above mentioned variables.
- main ( ) method that creates array of 4 objects of ToyCollection class and that takes input for all above details from the user and
calls method to check validity of Quantity and Price values. If all values are valid then create the objects and display the details
for all 4 toys.
- Method that checks validity of quantity and price. If the quantity is 0 or negative then method should throw user defined
exception with appropriate message and come out of program. Similarly if the price is 0 or negative then it should throw user defined exception with appropriate message and come out of program.
- Method that displays all details about a single toy in the following format, e.g. Here Total price should be calculated.
Toy Identification : S-1
Toy Name : Small Scooter
Toy Description : Ordinary 3 wheeler scooter
Toy price : 650.50
Quantity in hand : 3
Total price of Toys : 1951.50
What is the java code for the above ? -
help needed for writing query
i have the following tables(with data) as mentioned below
FK*-foregin key (SUBJECTS)
FK**-foregin key (COMBINATION)
1)SUBJECTS(table name)
SUB_ID(NUMBER) SUB_CODE(VARCHAR2) SUB_NAME (VARCHAR2)
2 02 Computer Science
3 03 Physics
4 04 Chemistry
5 05 Mathematics
7 07 Commerce
8 08 Computer Applications
9 09 Biology
2)COMBINATION
COMB_ID(NUMBER) COMB_NAME(VARCHAR2) SUB_ID1(NUMBER(FK*)) SUB_ID2(NUMBER(FK*)) SUB_ID3(NUMBER(FK*)) SUBJ_ID4(NUMBER(FK*))
383 S1 9 4 2 3
384 S2 4 2 5 3
---------I actually designed the ABOVE table also like this
3) a)COMBINATION
COMB_ID(NUMBER) COMB_NAME(VARCHAR2)
383 S1
384 S2
b)COMBINATION_DET
COMBDET_ID(NUMBER) COMB_ID(FK**) SUB_ID(FK*)
1 383 9
2 383 4
3 383 2
4 383 3
5 384 4
6 384 2
7 384 5
8 384 3
Business rule: a combination consists of a maximum of 4 subjects (must contain)
and the user is less relevant to a COMB_NAME(name of combinations) but user need
the subjects contained in combinations
i need the following output
COMB_ID COMB_NAME SUBJECT1 SUBJECT2 SUBJECT3 SUBJECT4
383 S1 Biology Chemistry Computer Science Physics
384 S2 Chemistry Computer Science Mathematics Physics
or even this is enough(what i actually needed)
COMB_ID subjects
383 Biology,Chemistry,Computer Science,Physics
384 Chemistry,Computer Science,Mathematics,Physics
you can use any of the COMBINATION table(either (2) or (3))
and i want to know
1)which design is good in this case
(i think SUB_ID1,SUB_ID2,SUB_ID3,SUB_ID4 is not a
good method to link with same table but if 4 subjects only(and must) comes
detail table is not neccessary )
now i am achieving the result by program-coding in C# after getting the rows from oracle
i am using oracle 9i (also ODP.NET)
i want to know how can i get the result in the stored procedure itsef.
2)how it could be designed in any other way.
any help/suggestion is welcome
thanks for your time --PradeeshWell I forgot the table-alias, here now with:
SELECT C.COMB_ID
, C.COMB_NAME
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID1) AS SUBJECT_NAME1
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID2) AS SUBJECT_NAME2
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID3) AS SUBJECT_NAME3
, (SELECT SUB_NAME
FROM SUBJECTS
WHERE SUB_ID = C.SUB_ID4) AS SUBJECT_NAME4
FROM COMBINATION C;
As you need exactly 4 subjects, the columns-solution is just fine I would say. -
Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with re
Color management help needed for adobe CS5 and Epson printer 1400-Prints coming out too dark with reddish cast and loss of detail
System: Windows 7
Adobe CS5
Printer: Epson Stylus Photo 1400
Paper: Inkjet matte presentation paper with slight luster
Installed latest patch for Adobe CS5
Epson driver up to date
After reading solutions online and trying them for my settings for 2 days I am still unable to print what I am seeing on my screen in Adobe CS5. I calibrated my monitor, but am not sure once calibration is saved if I somehow use this setting in Photoshop’s color management.
The files I am printing are photographs of dogs with lots of detail I digitally painted with my Wacom tablet in Photoshop CS5 and then printed with Epson Stylus 1400 on inkjet paper 20lb with slight luster.
My Printed images lose a lot of the detail & come out way to dark with a reddish cast and loss of detail when I used these settings in the printing window:
Color Handling: Photoshop manages color, Color management -ICM, OFF no color adjustment.
When I change to these settings in printer window: Color Handling: Printer manages color. Color management- Color Controls, 1.8 Gamma and choose Epson Standard it prints lighter, but with reddish cast and very little detail and this is the best setting I have used so far.
Based on what I have read on line, I think the issue is mainly to do with what controls are set in the Photoshop Color Settings window and the Epson Printer preferences. I have screen images attached of these windows and would appreciate knowing what you recommend I enter for each choice.
Also I am confused as to what ICM color management system to use with this printer and CS5:
What is the best ICM to use with PS CS5 & the Epson 1400 printer? Should I use the same ICM for both?
Do I embed the ICM I choose into the new files I create?
Do I view all files in the CS5 workspace in this default ICM?
Do I set my monitor setting to the same ICM?
If new file opens in CS5 workspace and it has a different embedded profile than my workspace, do I convert it?
Do I set my printer, Monitor and PS CS5 color settings to the same ICM?
Is using the same ICM for all devices what is called a consistent workflow?
I appreciate any and all advice that can be sent my way on this complicated issue. Thank you in advance for your time and kind help.It may be possible to figure out by watching a Dr.Brown video on the subject of color printing. Adobe tv
I hope this may help............... -
File missing (file\BCD error code 0Xc0000034 help need for work!
file missing (file\BCD error code 0Xc0000034 help need for work! what can i do?
have an p 2000 notebook pcHi bobkunkle, welcome to the HP Forums. I understand you cannot boot passed the error you are receiving.
What is the model or product number of your notebook? What version of Windows is installed?
Guide to finding your product number
Which Windows operating system am I running?
TwoPointOh
I work on behalf of HP
Please click “Accept as Solution ” if you feel my post solved your issue, it will help others find the solution.
Click the “Kudos, Thumbs Up" on the bottom to say “Thanks” for helping! -
Help need for force to signout All session ! how...
hi
help need for force to signout All session ! how ??
Solved!
Go to Solution.Hi and welcome to the Skype Community,
To force a signout of all instances your Skype is signed into please change your password: https://support.skype.com/en/faq/FA95/how-do-i-change-my-password
Follow the latest Skype Community News
↓ Did my reply answer your question? Accept it as a solution to help others, Thanks. ↓ -
Help needed for using BASIC authentication through JDBCRealm
Help needed.
Hello,
I am doing a degree project, so far it works fine in my local machine, I need to try it on my virtual hosting (as it is a live server).
My project requires JDBCRealm, that is BASIC authentication loading access data from mysql database. Normally this setup can be done in Server.xml file, because my Tomcat hosting is a virtual one, I only have permission to access the web.xml file.
My question is: is it possible to get it done in an alternative way? In web.xml? Some properties file maybe?
Thank you very much.You can set this up for your context using META-INF/context.xml instead of working with server.xml.
Make a directory called META-INF under your webapp ( it'll be at the same level as WEB-INF ). Under this, add a context.xml with all your context specific configuration including the realm. A sample is below
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myApp" reloadable="true">
<Realm
className="org.apache.catalina.realm.JDBCRealm"
driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
connectionURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=myDB;SelectMethod=Cursor;"
connectionName="username" connectionPassword="password"
digest="MD5" userTable="users" userNameCol="userid" userCredCol="userpassword"
userRoleTable="user_roles" roleNameCol="rolename"
/>
</Context>Hope this helps.
People on the forum help others voluntarily, it's not their job.
Help them help you.
Learn how to ask questions first: http://faq.javaranch.com/java/HowToAskQuestionsOnJavaRanch
---------------------------------------------------------------- -
SAP PS Module Report, Help needed for the Right Logic.
Hi,
I have to develop a PS module Report . This spec of this report is when you enter , project # , month , date , proj type it should display all the projects and only the billing levels with different fiels like ITD cost, ITD sales, ytd cost, sales, awards etc etc.
Right now Iam getting the O/P : in the following manner, There are many fields I am just showing the desired ones which have to be changed.
Proj, Title, award, ITDsales, ITD cost , ytd sales, ytd costs,
14148, New prj 123 -- --- -
14148-B01, bill1 -
234 -
456 -
14148-B02, bill2 -
789 -
123 -
14148.001 wbs1 -
123 -
456
14148.001 wbs2 -
567 -
890
But for me the desired output must be only for project and the billing levels. It shouldnt be for WBS elements xxxx.001 and xxxx.002.
Desired output:
Proj, Title, award, ITDsales, ITD cost , ytd sales, ytd costs,
14148, New prj 123 -- 690 -
1346
14148-B01, bill1 -
234 -
456 -
14148-B02, bill2 -
789 -
123 -
The ITD costs and YTD costs must be added 123 + 567 = 690 and
456+890 = 1346.
And these values must come on the project level.
P.S: I can restrict the values for wbs elements , means I can filter them at PRPS table by giving prps-stufe LE 2. Then I wont get the wbs level, But I want the values of these to be added up and then show it on the project level.
Please go through this code and let me know where exactly I need to put the right logic to work in the desired manner.
Thanks in advance
Dan
Code Below************************
[code]TABLES: PROJ, "Project Definition
PRPS, "WBS Elements
prhi,
CEPC, " Profit Center w/ Group Head info
BPGE, "Plans (12, 13, etc.)
COSP, "Primary Cost Element (Bill Sales, DPC)
COSS, "Secondary Cost Element (Shrd Sls,Sal,etc)
COSB, "Results Analysis Cost Elements (Unbil Sls)
COOI, "Commitments management: Line items
JEST, "Project Status
TCJ04, "Person Responsible for Project
zpclasses, "Project classes.
New Added
CRCO, " Assignment of Work Center to Cost Center
CRHD. " Work Center Header
Record Layout of extracted data
TYPES: BEGIN OF EXDEF, "Data definition of extract data
X_BU(2) TYPE C, "Business Unit
X_CNTR(10) TYPE C, " Profit Center
X_PROJ(24) TYPE C, "Project def (Prj)
X_CREP(30) TYPE C, "Contract Rep.
X_BDREP(25) TYPE C, "BD Rep. name
X_GRPH(15) TYPE C, "Tech Rep employee name
X_ACTREP(15) TYPE C, "Acct Rep employee name
X_PMGR(15) TYPE C, "PM employee name
X_TTLE(35) TYPE C, "Title
X_CLNT(20) TYPE C, "Client
X_POCN(20) TYPE C, "Prime Contract Number
X_TYPE(13) TYPE C, "Order Type Sarnoff
X_OPEN(10) TYPE C, "Open Date
X_CLOSE(10) TYPE C, "Close Date
X_CGT(4) TYPE C, "CO, GV, TC
X_DISTR(2) TYPE C, "Distribution Channel
X_CONTR(6) TYPE C, "Percentage contribution
X_AWRD(14) TYPE C, "Award (Plan 11)
X_P12R(14) TYPE C, "Auth Revenue (Plan 12 @ Rev)
X_P12C(14) TYPE C, "Auth Cost (Plan 12 @ Cost)
X_P13R(14) TYPE C, "Auth Revenue (Plan 13 @ Rev)
X_P13C(14) TYPE C, "Auth Cost (Plan 13 @ Cost)
X_ITDS(14) TYPE C, "ITD Sales
X_ITDC(14) TYPE C, "ITD Costs
X_YTDS(14) TYPE C, "YTD Sales
X_YTDC(14) TYPE C, "YTD Costs
X_MTHS(14) TYPE C, "Current Month Sales
X_MTHC(14) TYPE C, "Current Month Costs
X_ITDB(14) TYPE C, "ITD Billed Sales
X_YTDB(14) TYPE C, "YTD Billed Sales
X_MTHB(14) TYPE C, "Current Month Billed Sales
X_COMM(14) TYPE C, "Commitments
X_STAT(6) TYPE C, "Active or Inactive (REL, TECO, or CLSD)
X_ZPROJCLASS(12),
X_MTHIC(14) TYPE C, "Current Month Incremental Costs
X_YTDIC(14) TYPE C, "YTD Incremental Costs
X_ITDIC(14) TYPE C, "ITD Incremental Costs
X_ZSCURVE(10) TYPE C, "S-CURVE Status
New Added
X_CM_COST(20) TYPE C,
X_AM_COST(20) TYPE C,
X_TL_COST(20) TYPE C,
X_KP_COST(20) TYPE C,
X_PM_COST(20) TYPE C,
END OF EXDEF.
Data declarations
FIELD-SYMBOLS <MNT> .
DATA: ETAB TYPE EXDEF OCCURS 100 WITH HEADER LINE.
DATA: X1_PM_COST(20) TYPE C,
X1_TL_COST(20) TYPE C,
X1_AM_COST(20) TYPE C,
X1_CM_COST(20) TYPE C,
X1_KP_COST(20) TYPE C.
DATA: KOKRS_FIXED LIKE PROJ-VKOKR VALUE 'DSRC', "Controlling Area
TOTAL_AWARD LIKE BPGE-WTGES,
TOTAL_AUTHR12 LIKE BPGE-WTGES,
TOTAL_AUTHC12 LIKE BPGE-WTGES,
TOTAL_AUTHR13 LIKE BPGE-WTGES,
TOTAL_AUTHC13 LIKE BPGE-WTGES,
TOTAL_ITDSALES LIKE BPGE-WTGES,
TOTAL_ITDCOSTS LIKE BPGE-WTGES,
TOTAL_ITDICOSTS LIKE BPGE-WTGES,
TOTAL_YTDSALES LIKE BPGE-WTGES,
TOTAL_YTDCOSTS LIKE BPGE-WTGES,
TOTAL_YTDICOSTS LIKE BPGE-WTGES,
TOTAL_MTHSALES LIKE BPGE-WTGES,
TOTAL_MTHCOSTS LIKE BPGE-WTGES,
TOTAL_MTHICOSTS LIKE BPGE-WTGES,
TOTAL_ITDBILLED LIKE BPGE-WTGES,
TOTAL_YTDBILLED LIKE BPGE-WTGES,
TOTAL_MTHBILLED LIKE BPGE-WTGES,
TOTAL_COMMITMENT LIKE COOI-WTGBTR,
HOLD_PRART LIKE PRPS-PRART,
COUNT_PROJECTS TYPE I,
MNT_INDX(20) TYPE C,
HLD_INDX(3) TYPE N,
YYYY_MM(10) TYPE C,
TEMP-DATE(8) TYPE C.
Selection Screen
SELECTION-SCREEN SKIP 3.
SELECTION-SCREEN BEGIN OF BLOCK XEXTRPM WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 2.
PARAMETERS MONTH(2) TYPE N OBLIGATORY.
PARAMETERS YEAR(4) TYPE N OBLIGATORY.
SELECT-OPTIONS: EXTRPRJ FOR PROJ-PSPID. " Range of Projects
SELECT-OPTIONS: EXTRTYP FOR PRPS-PRART. "Project Types (CO,GV,etc.*)
SELECT-OPTIONS: EXTRPCTR FOR PROJ-PRCTR. " Range of Profit centers
SELECTION-SCREEN SKIP 2.
PARAMETERS: OPT1 RADIOBUTTON GROUP OPTN,
OPT2 RADIOBUTTON GROUP OPTN DEFAULT 'X'.
select-options : s_pc for proj-zprojclass. "project class
SELECTION-SCREEN END OF BLOCK XEXTRPM.
Select Tables
START-OF-SELECTION.
write: / 'Sales data (Unshared) extracted on: ', sy-datum.
uline.
CLEAR: COUNT_PROJECTS,
TOTAL_AWARD,
TOTAL_AUTHR12,
TOTAL_AUTHC12,
TOTAL_AUTHR13,
TOTAL_AUTHC13,
TOTAL_ITDSALES,
TOTAL_ITDCOSTS,
TOTAL_YTDSALES,
TOTAL_YTDCOSTS,
TOTAL_MTHSALES,
TOTAL_MTHCOSTS,
TOTAL_ITDBILLED,
TOTAL_YTDBILLED,
TOTAL_MTHBILLED,
TOTAL_COMMITMENT,
ETAB.
PROJ Table Project Definition
SELECT * FROM PROJ "Project Definition
WHERE PSPID IN EXTRPRJ AND " Range of Project Numbers
PRCTR IN EXTRPCTR and " Range of Profit center
zprojclass in s_pc. "project class
SELECT * FROM PRPS WHERE "WBS Elements
PRART IN EXTRTYP " Range of Proj.Types (CO,GV,TC..
and PSPHI = PROJ-PSPNR.
HOLD_PRART = ' '. "clears project type
CLEAR ETAB.
ETAB-X_PROJ = PRPS-POSID.
ETAB-X_BU = PRPS-PRCTR(2). "Business Unit
ETAB-X_PMGR = PROJ-VERNA. "Project Manager
IF PRPS-PRCTR(2) = '01'.
ETAB-X_CNTR = PRPS-PRCTR. " Profit Center
CONCATENATE SPACE PRPS-PRCTR INTO ETAB-X_CNTR SEPARATED BY SPACE.
ELSE.
ETAB-X_CNTR = PRPS-PRCTR. " Profit Center
ENDIF.
ETAB-X_TTLE = PRPS-POST1. "Title
CLEAR TEMP-DATE.
TEMP-DATE = PROJ-PLFAZ. "Project planned start date
CONCATENATE TEMP-DATE4(2) '/' TEMP-DATE6(2) '/'
TEMP-DATE+0(4) INTO ETAB-X_OPEN.
TEMP-DATE = PROJ-PLSEZ. "Project planned finish date
CONCATENATE TEMP-DATE4(2) '/' TEMP-DATE6(2) '/'
TEMP-DATE+0(4) INTO ETAB-X_CLOSE.
Tech Lead
will comment below
SELECT SINGLE VERNA FROM TCJ04 "Tech Lead name from TCJ04
INTO (ETAB-X_GRPH) WHERE VERNR = PROJ-ZGRPHD.
End Of Tech Lead
Account Manager
SELECT SINGLE VERNA FROM TCJ04 "Acct Manager from TCJ04
INTO (ETAB-X_BDREP) WHERE VERNR = PROJ-ZBUSDEV.
******End Of Account Manager
Key Personnel
SELECT SINGLE VERNA FROM TCJ04 "Account Rep name from TCJ04
INTO (ETAB-X_ACTREP) WHERE VERNR = PROJ-ZRESPDIR.
********End of Key Personnel
**Contract Manager
SELECT SINGLE VERNA FROM TCJ04 "Contract Rep name from TCJ04
INTO (ETAB-X_CREP) WHERE VERNR = PROJ-ZCNTREP.
End of Contract Manager
PRPS Table WBS's attached to the Project
SELECT * FROM PRPS WHERE "WBS Elements
PRART IN EXTRTYP "Range of Proj.Types (CO,GV,TC..
AND PSPHI = PROJ-PSPNR.
order by posid stufe. "Sort by WBS & Level (needed?)
get info from level 1 of the WBS
IF PRPS-STUFE EQ 1. "top-level WBS element
HOLD_PRART = PRPS-PRART. "save project type for later
ETAB-X_STAT = '????'. "set ? as the default status
get Status for level 1
SELECT * FROM JEST "use JEST to determine Status
WHERE OBJNR = PRPS-OBJNR
AND INACT EQ SPACE. "space denotes an active status
CASE JEST-STAT. "find the system status (Ixxx)
WHEN 'I0001'.
ETAB-X_STAT = 'CRTD'. "Created
WHEN 'I0002'.
ETAB-X_STAT = 'REL'. "Released
WHEN 'I0045'.
ETAB-X_STAT = 'TECO'. "Technically Complete
WHEN 'I0046'.
ETAB-X_STAT = 'CLSD'. "Closed
ENDCASE.
ENDSELECT.
Select only active projects (ie; those not with TECO or CLSD)
IF OPT2 EQ 'X'
AND ( ETAB-X_STAT EQ 'TECO'
OR ETAB-X_STAT EQ 'CLSD' ).
EXIT.
ENDIF.
*comment Contract Rep and Proj man because we get them from PROJ now
etab-x_crep = prps-zzcont. "Contract Rep.
etab-x_pmgr = prps-verna. "Program Manager Name
ETAB-X_CLNT = PRPS-ZZMANDT. "Client Name
ETAB-X_CGT = PRPS-PRART. "CO, GV, TC, etc
ETAB-X_DISTR = PRPS-ZZVTWEG. "Distrib Channel (ie; GP, etc.)
ETAB-X_CONTR = PRPS-USR04. "Contribution %
ETAB-X_POCN = PRPS-ZZPOCN. "Contract Number
ETAB-X_TYPE = PRPS-ZZORDT. "Order Type Sarnoff
Award and Authorization (Revenue & Cost)
SELECT * FROM BPGE
WHERE OBJNR = PRPS-OBJNR
AND LEDNR = '0001' "Budget / Planning Ledger
AND TRGKZ = 'N' "Object indicator
AND WRTTP = '01' "Value Type
AND ( VERSN = '011' "011 = Award
OR VERSN = '012' "012 = Billing Authorization
OR VERSN = '013' ). "013 = RA Authorization
"010 = Funding Authorization
Award Plan 11
IF BPGE-VERSN = '011'. "Plan 11 = Award
CASE BPGE-VORGA.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_AWRD = ETAB-X_AWRD + BPGE-WTGES.
ENDCASE.
ENDIF.
IF prps-stufe eq '2'.
Authorization (Revenue & Cost plan 12) Plan 12
IF BPGE-VERSN = '012'. "Plan 12 = RA Authorization
CASE BPGE-VORGA.
WHEN 'KSTR'. "KSTR = Revenue level
ETAB-X_P12R = ETAB-X_P12R - BPGE-WTGES.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_P12C = ETAB-X_P12C + BPGE-WTGES.
ENDCASE.
ENDIF.
Authorization (Revenue & Cost plan 13) Plan 13
IF BPGE-VERSN = '013'. "Plan 13 = RA Authorization
CASE BPGE-VORGA.
WHEN 'KSTR'. "KSTR = Revenue level
ETAB-X_P13R = ETAB-X_P13R - BPGE-WTGES.
WHEN 'KSTP'. "KSTP = Cost level
ETAB-X_P13C = ETAB-X_P13C + BPGE-WTGES.
ENDCASE.
ENDIF.
endif.
ENDSELECT. "BPGE
ENDIF. "end of if prps-stufe eq 1. top-level WBS element
COSP Table (External Postings) Awards
COSP Table (External Postings) Billed Sales
COSP Table (External Postings) DPC's & Legacy Load
SELECT * FROM COSP
WHERE OBJNR = PRPS-OBJNR AND
GJAHR LE YEAR
AND (
( kstar = '0000400999' and "old CE for Award $
( KSTAR BETWEEN '0000400990' AND '0000400999' AND
VERSN = '011' AND "11 = Award
WRTTP = '01' ) "01 = Planned
OR ( ( KSTAR BETWEEN '0000400001' AND '0000400989' OR
KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
WRTTP = '04' ) "04 = Actuals
OR ( ( KSTAR BETWEEN '0000998001' AND '0000998010' OR
KSTAR BETWEEN '0000600001' AND '0000601999' ) AND
WRTTP = '04' ) "04 = Actuals
*------- Awards
if cosp-kstar = '0000400999' and "old 400999 = Awards
IF COSP-KSTAR BETWEEN '0000400990' AND '0000400999' AND
COSP-VERSN = '011' AND "11 = Award
COSP-WRTTP = '01'. "01 = Planned
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_AWRD = ETAB-X_AWRD + <MNT>.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_AWRD = ETAB-X_AWRD +
COSP-WKG001 + COSP-WKG002 +
COSP-WKG003 + COSP-WKG004 +
COSP-WKG005 + COSP-WKG006 +
COSP-WKG007 + COSP-WKG008 +
COSP-WKG009 + COSP-WKG010 +
COSP-WKG011 + COSP-WKG012 +
COSP-WKG013 + COSP-WKG014 +
COSP-WKG015 + COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Billed Sales
IF ( COSP-KSTAR BETWEEN '0000400001' AND '0000400989' OR
COSP-KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
COSP-WRTTP = '04'.
"0000999001 = ITD Sales
"0000999003 = ITD Billed Revenue
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDB = ETAB-X_ITDB - <MNT>.
ETAB-X_YTDB = ETAB-X_YTDB - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHB = ETAB-X_MTHB - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_ITDB = ETAB-X_ITDB -
COSP-WKG001 - COSP-WKG002 -
COSP-WKG003 - COSP-WKG004 -
COSP-WKG005 - COSP-WKG006 -
COSP-WKG007 - COSP-WKG008 -
COSP-WKG009 - COSP-WKG010 -
COSP-WKG011 - COSP-WKG012 -
COSP-WKG013 - COSP-WKG014 -
COSP-WKG015 - COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- DPC's & Legacy Load
IF ( COSP-KSTAR BETWEEN '0000998001' AND '0000998010' OR
COSP-KSTAR BETWEEN '0000600001' AND '0000601999' ) AND
COSP-WRTTP = '04'.
IF YEAR = COSP-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSP-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSP-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSP-WKG001 + COSP-WKG002 +
COSP-WKG003 + COSP-WKG004 +
COSP-WKG005 + COSP-WKG006 +
COSP-WKG007 + COSP-WKG008 +
COSP-WKG009 + COSP-WKG010 +
COSP-WKG011 + COSP-WKG012 +
COSP-WKG013 + COSP-WKG014 +
COSP-WKG015 + COSP-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
COOI Table (Commitments) commitments for the WBS elements
SELECT * FROM COOI
WHERE OBJNR = PRPS-OBJNR.
ETAB-X_COMM = ETAB-X_COMM + COOI-WTGBTR.
ENDSELECT.
COSS Table (External Postings) G&A on Commitments
COSS Table (External Postings) Shared Billed Sales
COSS Table (External Postings) Shared DPC's
COSS Table (External Postings) Salary,ESE,OH, & G&A
SELECT * FROM COSS
WHERE
( OBJNR = PRPS-OBJNR AND
WRTTP = '22' ) "G&A on Commitments
OR
( OBJNR = PRPS-OBJNR AND
GJAHR LE YEAR AND
WRTTP = '04' AND "04 = Actuals
( "Shared Billed Sales
( KSTAR BETWEEN '0000400001' AND '0000400989' OR
KSTAR BETWEEN '0000999001' AND '0000999003' )
OR "Shared DPC's
( KSTAR BETWEEN '0000600001' AND '0000601999' )
OR "Salary,ESE,OH, & G&A
( ( KSTAR BETWEEN '0000001000' AND '0000001999' OR
KSTAR BETWEEN '0000002100' AND '0000002199' OR
KSTAR BETWEEN '0000002500' AND '0000002599' OR
KSTAR BETWEEN '0000002800' AND '0000002899' ) )
and parob not like 'PR%' ) "commented out on 4/19/2000
*------- G&A on Commitments (NOTE: data is always as of the RUN date)
IF COSS-WRTTP = '22'.
ETAB-X_COMM = ETAB-X_COMM +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ENDIF.
*------- Shared Billed Sales
IF ( COSS-KSTAR BETWEEN '0000400001' AND '0000400989' OR
COSS-KSTAR BETWEEN '0000999001' AND '0000999003' ) AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDB = ETAB-X_ITDB - <MNT>.
ETAB-X_YTDB = ETAB-X_YTDB - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHB = ETAB-X_MTHB - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDB = ETAB-X_ITDB -
COSS-WKG001 - COSS-WKG002 -
COSS-WKG003 - COSS-WKG004 -
COSS-WKG005 - COSS-WKG006 -
COSS-WKG007 - COSS-WKG008 -
COSS-WKG009 - COSS-WKG010 -
COSS-WKG011 - COSS-WKG012 -
COSS-WKG013 - COSS-WKG014 -
COSS-WKG015 - COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Shared DPC's
IF COSS-KSTAR BETWEEN '0000600001' AND '0000601999' AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
*------- Salary,ESE,OH,& G&A
IF ( COSS-KSTAR BETWEEN '0000001000' AND '0000001999' OR
COSS-KSTAR BETWEEN '0000002100' AND '0000002199' OR
COSS-KSTAR BETWEEN '0000002500' AND '0000002599' OR
COSS-KSTAR BETWEEN '0000002800' AND '0000002899' ) AND
COSS-WRTTP = '04'.
IF YEAR = COSS-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSS-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDC = ETAB-X_ITDC + <MNT>.
ETAB-X_YTDC = ETAB-X_YTDC + <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHC = ETAB-X_MTHC + <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSS-GJAHR.
ETAB-X_ITDC = ETAB-X_ITDC +
COSS-WKG001 + COSS-WKG002 +
COSS-WKG003 + COSS-WKG004 +
COSS-WKG005 + COSS-WKG006 +
COSS-WKG007 + COSS-WKG008 +
COSS-WKG009 + COSS-WKG010 +
COSS-WKG011 + COSS-WKG012 +
COSS-WKG013 + COSS-WKG014 +
COSS-WKG015 + COSS-WKG016.
ELSE.
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
COSB Table (Results from running RA) Unbilled Sales
SELECT * FROM COSB
WHERE OBJNR = PRPS-OBJNR
AND KSTAR BETWEEN '0000003004' AND '0000003005'
"0000003004 = Unbilled Revenue
"0000003005 = Unearned Revenue
AND GJAHR LE YEAR
AND WRTTP = '32'. "32 = Results Analysis
IF YEAR = COSB-GJAHR.
DO.
IF SY-INDEX LE MONTH.
MOVE SY-INDEX TO HLD_INDX.
MNT_INDX = 'COSB-WKGXXX'.
REPLACE 'XXX' WITH HLD_INDX INTO MNT_INDX.
ASSIGN (MNT_INDX) TO <MNT>.
ETAB-X_ITDS = ETAB-X_ITDS - <MNT>.
ETAB-X_YTDS = ETAB-X_YTDS - <MNT>.
IF SY-INDEX = MONTH.
ETAB-X_MTHS = ETAB-X_MTHS - <MNT>.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ELSEIF YEAR > COSB-GJAHR.
ETAB-X_ITDS = ETAB-X_ITDS -
COSB-WKG001 - COSB-WKG002 -
COSB-WKG003 - COSB-WKG004 -
COSB-WKG005 - COSB-WKG006 -
COSB-WKG007 - COSB-WKG008 -
COSB-WKG009 - COSB-WKG010 -
COSB-WKG011 - COSB-WKG012 -
COSB-WKG013 - COSB-WKG014 -
COSB-WKG015 - COSB-WKG016.
ELSE.
EXIT.
ENDIF.
ENDSELECT.
ENDSELECT. "End of WBS records (from PRPS) for project
Get Total Sales by adding Billed Sales to Unbilled Sales.
ETAB-X_ITDS = ETAB-X_ITDS + ETAB-X_ITDB.
ETAB-X_YTDS = ETAB-X_YTDS + ETAB-X_YTDB.
ETAB-X_MTHS = ETAB-X_MTHS + ETAB-X_MTHB.
IF HOLD_PRART IN EXTRTYP. "Matches the user requested project type
IF OPT1 EQ 'X' OR "All projects
( OPT2 EQ 'X' AND "Only active projects
ETAB-X_STAT NE 'TECO' AND
ETAB-X_STAT NE 'CLSD' ).
TOTAL_AWARD = TOTAL_AWARD + ETAB-X_AWRD.
TOTAL_AUTHR12 = TOTAL_AUTHR12 + ETAB-X_P12R .
TOTAL_AUTHC12 = TOTAL_AUTHC12 + ETAB-X_P12C.
TOTAL_AUTHR13 = TOTAL_AUTHR13 + ETAB-X_P13R.
TOTAL_AUTHC13 = TOTAL_AUTHC13 + ETAB-X_P13C.
TOTAL_ITDSALES = TOTAL_ITDSALES + ETAB-X_ITDS.
TOTAL_ITDCOSTS = TOTAL_ITDCOSTS + ETAB-X_ITDC.
TOTAL_YTDSALES = TOTAL_YTDSALES + ETAB-X_YTDS.
TOTAL_YTDCOSTS = TOTAL_YTDCOSTS + ETAB-X_YTDC.
TOTAL_MTHSALES = TOTAL_MTHSALES + ETAB-X_MTHS.
TOTAL_MTHCOSTS = TOTAL_MTHCOSTS + ETAB-X_MTHC.
TOTAL_ITDBILLED = TOTAL_ITDBILLED + ETAB-X_ITDB.
TOTAL_YTDBILLED = TOTAL_YTDBILLED + ETAB-X_YTDB.
TOTAL_MTHBILLED = TOTAL_MTHBILLED + ETAB-X_MTHB.
TOTAL_COMMITMENT = TOTAL_COMMITMENT + ETAB-X_COMM.
PERFORM SHIFT_SIGN.
APPEND ETAB. "Write data to internal table
CLEAR ETAB.
COUNT_PROJECTS = COUNT_PROJECTS + 1. "Count # of Projects
ENDIF.
ENDIF.
ENDSELECT.
ENDSELECT. "End of Projects from PROJ table
PERFORM GRAND_TOTALS.
SORT ETAB BY X_BU X_PROJ.
ETAB-X_BU = 'BU'.
ETAB-X_CNTR = 'PrftCntr'.
ETAB-X_PROJ = 'Proj'.
ETAB-X_CREP = 'Contract Mgr'.
ETAB-X_BDREP = 'Account Mgr'.
ETAB-X_GRPH = 'Technical Lead'.
ETAB-X_ACTREP = 'Key Person1'.
ETAB-X_PMGR = 'Program Mgr'.
ETAB-X_TTLE = 'Title'.
ETAB-X_CLNT = 'Client'.
ETAB-X_POCN = 'Contract #'.
ETAB-X_TYPE = 'Type'.
ETAB-X_OPEN = 'Open'.
ETAB-X_CLOSE = 'Close'.
ETAB-X_CGT = 'CGT'.
ETAB-X_DISTR = 'DC'.
ETAB-X_CONTR = 'Contr%'.
ETAB-X_AWRD = 'Award'.
ETAB-X_P12R = 'Auth12 Sales'.
ETAB-X_P12C = 'Auth12 Cost'.
ETAB-X_P13R = 'Auth13 Sales'.
ETAB-X_P13C = 'Auth13 Cost'.
ETAB-X_ITDS = 'ITD Sales'.
ETAB-X_ITDC = 'ITD Costs'.
ETAB-X_YTDS = 'YTD Sales'.
ETAB-X_YTDC = 'YTD Costs'.
ETAB-X_MTHS = 'Mth Sales'.
ETAB-X_MTHC = 'Mth Costs'.
ETAB-X_ITDB = 'ITD Billed'.
ETAB-X_YTDB = 'YTD Billed'.
ETAB-X_MTHB = 'Mth Billed'.
ETAB-X_COMM = 'Commitments'.
ETAB-X_STAT = 'Status'.
INSERT ETAB INDEX 1. "Write a report header line to internal table
CLEAR ETAB.
CALL FUNCTION 'Z_RH_START_EXCEL_DATA_OLE'
EXPORTING
data_name = 'C:\WINNT\Profiles\cbraswell\Desktop\TestTemp.xlt'
DATA_NAME = 'ZSales.XLS'
DATA_PATH_FLAG = 'W'
DATA_TYPE = 'DAT'
DATA_BIN_FILE_SIZE = 'ZSales'
CHART_TITLE = 'ZSales'
CHART_TYPE = 2
CATEGORY_TITLE = 'ZSales'
VALUE_TITLE = 'ZSales'
DATA_XTOP_COR = 0
DATA_YTOP_COR = 0
DATA_XBOT_COR = 0
DATA_YBOT_COR = 0
CATEGORY_XTOP_COR = 0
CATEGORY_YTOP_COR = 0
CATEGORY_XBOT_COR = 0
CATEGORY_YBOT_COR = 0
TABLES
DATA_TAB = ETAB
EXCEPTIONS
NO_BATCH = 1
DOWNLOAD_ERROR = 2
INVALID_TYPE = 3
INTERNAL_ERROR = 4
NO_OLE_SUPPORT = 5
OLE_FILE_ERROR = 6
OLE_ERROR = 7
NO_DATA = 8
COORDINATE_ERROR = 9
OTHERS = 10.
Negative # sign in the front of number for downloading to Excel
FORM SHIFT_SIGN.
IF ETAB-X_AWRD CA '-'. SHIFT ETAB-X_AWRD RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P12R CA '-'. SHIFT ETAB-X_P12R RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P12C CA '-'. SHIFT ETAB-X_P12C RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P13R CA '-'. SHIFT ETAB-X_P13R RIGHT CIRCULAR. ENDIF.
IF ETAB-X_P13C CA '-'. SHIFT ETAB-X_P13C RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDS CA '-'. SHIFT ETAB-X_ITDS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDIC CA '-'. SHIFT ETAB-X_ITDIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDC CA '-'. SHIFT ETAB-X_ITDC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDS CA '-'. SHIFT ETAB-X_YTDS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDC CA '-'. SHIFT ETAB-X_YTDC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDIC CA '-'. SHIFT ETAB-X_YTDIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHS CA '-'. SHIFT ETAB-X_MTHS RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHC CA '-'. SHIFT ETAB-X_MTHC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHIC CA '-'. SHIFT ETAB-X_MTHIC RIGHT CIRCULAR. ENDIF.
IF ETAB-X_ITDB CA '-'. SHIFT ETAB-X_ITDB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_YTDB CA '-'. SHIFT ETAB-X_YTDB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_MTHB CA '-'. SHIFT ETAB-X_MTHB RIGHT CIRCULAR. ENDIF.
IF ETAB-X_COMM CA '-'. SHIFT ETAB-X_COMM RIGHT CIRCULAR. ENDIF.
ENDFORM.
FORM GRAND_TOTALS.
SKIP 1. .
WRITE: / '----
WRITE: / 'System ID = ', SY-SYSID,
/ 'Client = ', SY-MANDT,
/ 'User = ', SY-UNAME,
/ 'Date of data extract = ', SY-DATUM ,
/ 'Number of Projects = ', COUNT_PROJECTS,
/ 'total Award (Plan 11) = ', TOTAL_AWARD,
/ 'total Auth SalesHi all,
Iam really waiting for someone to see and get the logic right for this code.Iam completely stuck up. i need ur help
Thanks -
Help Needed - FINAL PROJECT - SAAJ MESSAGING
Hi there!
currently im doing my final project and it involves sending and receiving soap messages.
im working with sun java studio creator for the first time.
i have done this example (excuse me for possible dumb errors im just a noobie):
* Page1.java
* Created on 6 de Novembro de 2006, 12:40
package webapplication1;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import com.sun.rave.web.ui.component.Body;
import com.sun.rave.web.ui.component.Form;
import com.sun.rave.web.ui.component.Head;
import com.sun.rave.web.ui.component.Html;
import com.sun.rave.web.ui.component.Link;
import com.sun.rave.web.ui.component.Page;
import javax.faces.FacesException;
import com.sun.rave.web.ui.component.Button;
import com.sun.rave.web.ui.component.TextArea;
//soap saaj
import javax.xml.*;
import javax.xml.soap.*;
import java.net.URL;
import java.net.*;
import java.util.*;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPElement;
// add this import if you need soapaction
import javax.xml.soap.MimeHeaders;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import com.sun.xml.messaging.saaj.*;
import java.net.URL;
import javax.xml.soap.*;
import java.util.Iterator;
import javax.xml.soap.Name;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPPart;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPBodyElement;
import javax.xml.messaging.ReqRespListener;
import java.text.NumberFormat;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import com.sun.xml.messaging.saaj.*;
* <p>Page bean that corresponds to a similarly named JSP page. This
* class contains component definitions (and initialization code) for
* all components that you have defined on this page, as well as
* lifecycle methods and event handlers where you may add behavior
* to respond to incoming events.</p>
import javax.xml.messaging.JAXMServlet;
//extends JAXMServlet
public class Page1 extends AbstractPageBean implements ReqRespListener{
// <editor-fold defaultstate="collapsed" desc="Creator-managed Component Definition">
private int __placeholder;
* <p>Automatically managed component initialization. <strong>WARNING:</strong>
* This method is automatically generated, so any user-specified code inserted
* here is subject to being replaced.</p>
private void _init() throws Exception {
private Page page1 = new Page();
public Page getPage1() {
return page1;
public void setPage1(Page p) {
this.page1 = p;
private Html html1 = new Html();
public Html getHtml1() {
return html1;
public void setHtml1(Html h) {
this.html1 = h;
private Head head1 = new Head();
public Head getHead1() {
return head1;
public void setHead1(Head h) {
this.head1 = h;
private Link link1 = new Link();
public Link getLink1() {
return link1;
public void setLink1(Link l) {
this.link1 = l;
private Body body1 = new Body();
public Body getBody1() {
return body1;
public void setBody1(Body b) {
this.body1 = b;
private Form form1 = new Form();
public Form getForm1() {
return form1;
public void setForm1(Form f) {
this.form1 = f;
private Button button1 = new Button();
public Button getButton1() {
return button1;
public void setButton1(Button b) {
this.button1 = b;
private TextArea textArea1 = new TextArea();
public TextArea getTextArea1() {
return textArea1;
public void setTextArea1(TextArea ta) {
this.textArea1 = ta;
private TextArea textArea2 = new TextArea();
public TextArea getTextArea2() {
return textArea2;
public void setTextArea2(TextArea ta) {
this.textArea2 = ta;
// </editor-fold>/*
public MessageFactory messageFactSent= null;
public MessageFactory messageFactReply=null;
public MessageFactory messageFactReceiv= null;
public SOAPConnectionFactory soapConnectionFact;
public URL URLendpoint;
public SOAPConnection connection ;
public SOAPMessage messageSent;
public SOAPPart soapPartSent;
public SOAPEnvelope soapEnvelopeSent;
public SOAPBody SoapBodySent;
public SOAPMessage messageReceiv;
public SOAPPart soapPartReceiv;
public SOAPEnvelope soapEnvelopeReceiv;
public SOAPBody SoapBodyReceiv;
public SOAPMessage messageReply;
public SOAPPart soapPartReply;
public SOAPEnvelope soapEnvelopeReply;
public SOAPBody SoapBodyReply;
public SOAPMessage reply;
public String StringAux="";
public final String theURI = "http://172.16.5.223:8080/WebApplication1/";
//public final String theURI = "http://172.16.5.223:8080/WebApplication1/";
//public final String theURI = "http://172.16.5.193:8080/WebApplication1/";
//http://localhost:8080/WebApplication1/faces/Page1.jsp
public SOAPMessage onMessage(SOAPMessage message) {
StringAux=StringAux+"On message called in receiving servlet\n";
this.textArea1.setValue(StringAux);
try {
soapPartReceiv = message.getSOAPPart( );
soapEnvelopeReceiv = soapPartReceiv.getEnvelope();
SoapBodyReceiv = soapEnvelopeReceiv.getBody();
//analise...if needed
// Create the reply message
messageReply = messageFactReply.createMessage();
soapEnvelopeReply = messageReply.getSOAPPart().getEnvelope();
SoapBodyReply= soapEnvelopeReply.getBody();
// Remove empty header from the Envelope
soapEnvelopeReply.getHeader().detachNode();
Name bodyName = soapEnvelopeReply.createName("GetLastTradePrice",
"m", "http://wombat.ztrade.com");
SOAPBodyElement gltp = SoapBodyReply.addBodyElement(bodyName);
Name name = soapEnvelopeReply.createName("symbol");
SOAPElement symbol = gltp.addChildElement(name);
symbol.addTextNode("SUNW");
// Return a reply message back to the JAXM client
StringAux=StringAux+"devolveu menssagem\n";
this.textArea1.setValue(StringAux);
return messageReply ;
} catch(Exception e) {
StringAux=StringAux+"Error in processi ng or replying to a message - e: " + e+"\n";
this.textArea1.setValue(StringAux);
return null;
//this.getBean(name)
public Page1() {
// Service serve=new Service();
// Client cli=new Client();
// this.textArea1.setValue(serve.GetAux());
// this.textArea2.setValue(cli.GetAux());
// Create a MessageFactory
try {
URLendpoint=new URL(theURI);
StringAux=StringAux+"depois de criar o endpoint \n";
//Create SOAP connection
soapConnectionFact = SOAPConnectionFactory.newInstance();
connection = soapConnectionFact.createConnection();
// Create a message from the message factory.
messageFactSent = MessageFactory.newInstance();
messageFactReply = MessageFactory.newInstance();
messageFactReceiv = MessageFactory.newInstance();
StringAux=StringAux+"depois de criar as message factory \n";
this.textArea1.setValue(StringAux);
} catch(Throwable e) {
StringAux="erro2!\n"+StringAux+e.toString()+"\n";
this.textArea1.setValue(StringAux);
* <p>Return a reference to the scoped data bean.</p>
protected ApplicationBean1 getApplicationBean1() {
return (ApplicationBean1)getBean("ApplicationBean1");
* <p>Return a reference to the scoped data bean.</p>
protected RequestBean1 getRequestBean1() {
return (RequestBean1)getBean("RequestBean1");
* <p>Return a reference to the scoped data bean.</p>
protected SessionBean1 getSessionBean1() {
return (SessionBean1)getBean("SessionBean1");
* <p>Callback method that is called whenever a page is navigated to,
* either directly via a URL, or indirectly via page navigation.
* Customize this method to acquire resources that will be needed
* for event handlers and lifecycle methods, whether or not this
* page is performing post back processing.</p>
* <p>Note that, if the current request is a postback, the property
* values of the components do <strong>not</strong> represent any
* values submitted with this request. Instead, they represent the
* property values that were saved for this view when it was rendered.</p>
public void init() {
// Perform initializations inherited from our superclass
super.init();
// Perform application initialization that must complete
// before managed components are initialized
// TODO - add your own initialiation code here
// <editor-fold defaultstate="collapsed" desc="Creator-managed Component Initialization">
// Initialize automatically managed components
// Note - this logic should NOT be modified
try {
_init();
} catch (Exception e) {
log("Page1 Initialization Failure", e);
throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
// </editor-fold>
// Perform application initialization that must complete
// after managed components are initialized
// TODO - add your own initialization code here
* <p>Callback method that is called after the component tree has been
* restored, but before any event processing takes place. This method
* will <strong>only</strong> be called on a postback request that
* is processing a form submit. Customize this method to allocate
* resources that will be required in your event handlers.</p>
public void preprocess() {
* <p>Callback method that is called just before rendering takes place.
* This method will <strong>only</strong> be called for the page that
* will actually be rendered (and not, for example, on a page that
* handled a postback and then navigated to a different page). Customize
* this method to allocate resources that will be required for rendering
* this page.</p>
public void prerender() {
* <p>Callback method that is called after rendering is completed for
* this request, if <code>init()</code> was called (regardless of whether
* or not this was the page that was actually rendered). Customize this
* method to release resources acquired in the <code>init()</code>,
* <code>preprocess()</code>, or <code>prerender()</code> methods (or
* acquired during execution of an event handler).</p>
public void destroy() {
public String button1_action() {
try {
StringAux=StringAux+"antes de criar a messagem para enviar\n";
messageSent = messageFactSent.createMessage();
soapEnvelopeSent = messageSent.getSOAPPart().getEnvelope();
//SoapBodySent = messageSent.getSOAPPart().getEnvelope().getBody();
SoapBodySent = soapEnvelopeSent.getBody();
Name bodyName = soapEnvelopeSent .createName("GetLastTradePrice",
"m", "http://wombat.ztrade.com");
SOAPBodyElement gltp = SoapBodySent.addBodyElement(bodyName);
Name name = soapEnvelopeSent.createName("symbol");
SOAPElement symbol = gltp.addChildElement(name);
symbol.addTextNode("SUNW");
StringAux=StringAux+"\nContent of the message: \n"+messageSent.toString()+"\n";
// Send the SOAP message and get reply
StringAux=StringAux+"Sending message to URL: \n"+ URLendpoint+"\n"+this.URLendpoint.getPath()+"\n";
reply = connection.call(messageSent,URLendpoint);
StringAux=StringAux+"\n\n Content of the reply message: \n"+reply.toString()+"\n";
this.textArea1.setValue(StringAux);
//tratamento da resposta
connection.close();
} catch(Throwable e) {
StringAux="erro!\n"+StringAux+e.toString()+"\n";
this.textArea1.setValue(StringAux);
return null;
Very simple , on a click of the button a message was supost to be sent. and receive on the other machine. i have launched the same war file on both pcs
but now nothing happens just a exception message
com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Invalid Content-Type:text/html. Is this an error message instead of a SOAP
....could someone help me out here ,even share a wprking project with this goal
thank you in advance
DMS
Message was edited by:
DaniDaOneOne time, after quitting IM and re-launching it later, my project disappeared from the project list.
Apple Support told me to do this.
1) quit IM
2) with the finder, move the project out of the project directory
3) launch IM
4) quit IM
5) with the finder, put the project back into the project directory
6) launch IM
My project re-appeared. He said these steps forces a project index to be rebuilt.
Your symptoms are different but maybe the cure is the same --- good luck. -
Hello everyone. Some help would be appreciated. I have created a wildlife resort database with access.
It has an animals table with 5 entries, a species table with 3 entries and a user table with 3 entries.
I have set up a JDBC-ODBC bridge.
The server side of this application when run gets stuck upon pressing connect the first time so I have to run the server again while the first server window is running in the background and press connect for it to start running. The server works just fine after that. I can add and remove from the tables using the server.
When I run the client and try to connect it, it doesn't accept the hostname. I can't connect or log in.
I think the problem is with the threads but I'm not sure what to do to fix it.
Also I use java beans for coding.
These are some errors I get when running the client:
java.lang.IllegalThreadStateException
at java.lang.ThreadGroup.add(ThreadGroup.java:856)
at java.lang.Thread.start(Thread.java:573)
at org.apache.tools.ant.taskdefs.ProcessDestroyer.removeShutdownHook(ProcessDestroyer.java:145)
at org.apache.tools.ant.taskdefs.ProcessDestroyer.remove(ProcessDestroyer.java:198)
at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:487)
at org.apache.tools.ant.taskdefs.Java.fork(Java.java:746)
at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:170)
at org.apache.tools.ant.taskdefs.Java.execute(Java.java:83)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:64)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:377)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeTarget(Project.java:1214)
at org.apache.tools.ant.Project.executeTargets(Project.java:1062)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:217)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:236)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:125)
Exception in thread "Thread-7" java.lang.NullPointerException
at Client.Connect.connecting(Connect.java:45)
at Client.ClientGUI.run(ClientGUI.java:214)
at java.lang.Thread.run(Thread.java:595)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Client.Connect.userPass(Connect.java:206)
at Client.ClientGUI.actionPerformed(ClientGUI.java:164)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1766)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
These are the classes I have created:
On the client side:
//imports needed for the GUI and I/O Operations
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class ClientGUI extends JFrame implements ActionListener, Runnable {
JPanel pane = new JPanel();
//Create the Menubar Items
JMenuBar bar = new JMenuBar();
JMenu jMenu1 = new JMenu();
JMenu jMenu2 = new JMenu();
JMenu jMenu3 = new JMenu();
JMenuItem Exit = new JMenuItem();
JMenuItem Open = new JMenuItem();
JMenuItem Close = new JMenuItem();
JMenuItem Find = new JMenuItem();
static JMenuItem Add = new JMenuItem();
static JMenuItem Remove = new JMenuItem();
static JMenuItem Connect1 = new JMenuItem();
static JMenuItem Disconnect = new JMenuItem();
static JMenuItem Login = new JMenuItem();
static JMenuItem Logout = new JMenuItem();
static boolean check = true;
static JLabel running = new JLabel("You are not Connected");
//Creates the animal JTable and adds it to a scrollpane
public static String[] animalH = {"Id" , "Name" , "Description" , "Species Id"};
public static Object rows1 [] [] = new Object[40][4];
public static JTable animal = new JTable(rows1 , animalH);
JScrollPane animalP;
//Creates the species JTable and adds it to a scrollpane
public static String[] speciesH = {"Species Id" , "Species Name"};
public static Object rows2 [] [] = new Object[40][2];
public static JTable species = new JTable(rows2 , speciesH);
JScrollPane speciesP;
public static Thread runner;
//Declares Globale variables
static int currentT;
int respones;
static String hostname;
static boolean connected = false;
/** Creates a new instance of ClientGUI */
public ClientGUI() {
super("SA Wildlife -- Client");
setSize(800 , 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(running , BorderLayout.SOUTH);
Add.setEnabled(false);
Remove.setEnabled(false);
Logout.setEnabled(false);
Disconnect.setEnabled(false);
try {
jbInit();
}catch(Exception e) {
e.printStackTrace();
addListener();
setJMenuBar(bar);
setVisible(true);
//Add the actionListeners to the components
public void addListener(){
Open.addActionListener(this);
Close.addActionListener(this);
Exit.addActionListener(this);
Connect1.addActionListener(this);
Disconnect.addActionListener(this);
Find.addActionListener(this);
Login.addActionListener(this);
Logout.addActionListener(this);
Add.addActionListener(this);
Remove.addActionListener(this);
//Add the actions which the components must perform
public void actionPerformed(ActionEvent evt){
Object s = evt.getSource();
if (s == Open){
choice();
Close();
if (respones == 0){
currentT = 1;
clearTableAnimals();
Connect.allAnimal();
animal = new JTable(rows1, animalH);
animalP = new JScrollPane(animal);
getContentPane().add(animalP, BorderLayout.CENTER);
setVisible(true);
}else if (respones == 1 ){
currentT = 2;
clearTableSpecies();
Connect.allSpecies();
species = new JTable(rows2 , speciesH);
speciesP = new JScrollPane(species);
getContentPane().add(speciesP, BorderLayout.CENTER);
setVisible(true);
}else if (s == Close){
Close();
}else if (s == Exit){
exit();
}else if (s == Connect1){
hostname = JOptionPane.showInputDialog(null , "Please enter Hostname");
if (check = true){
runner = new Thread(this);
runner.start();
Connect1.setEnabled(false);
Disconnect.setEnabled(true);
}else if (s == Disconnect){
Connect.out.println("Bye");
runner = null;
try {
Connect.out.close();
Connect.in.close();
Connect.clientSocket.close();
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null,
"Error " + ioe.toString(),
"IO Exception",
JOptionPane.ERROR_MESSAGE);
System.exit(0);
}else if (s == Find){
choice();
Close();
if (respones == 0){
currentT = 1;
String Aname = JOptionPane.showInputDialog(null , "Enter Animal name to find ");
clearTableAnimals();
Connect.findAnimal(Aname);
animal = new JTable(rows1, animalH);
animalP = new JScrollPane(animal);
getContentPane().add(animalP, BorderLayout.CENTER);
setVisible(true);
}else{
currentT = 2;
String Sname = JOptionPane.showInputDialog(null , "Enter Species name to find ");
clearTableSpecies();
Connect.findSpecies(Sname);
species = new JTable(rows2 , speciesH);
speciesP = new JScrollPane(species);
getContentPane().add(speciesP, BorderLayout.CENTER);
setVisible(true);
}else if( s== Login){
String name = JOptionPane.showInputDialog(null , "Please enter a UserName");
String password = JOptionPane.showInputDialog(null , "Please enter a Password");
Connect.userPass(name , password);
}else if (s == Logout){
Logout();
}else if (s== Add){
choice();
Close();
if(respones == 0){
currentT = 1;
String id = JOptionPane.showInputDialog(null , "Enter an Animal id");
String name = JOptionPane.showInputDialog(null , "Enter an Animal Name");
String desc = JOptionPane.showInputDialog(null , "Enter an Animal Description");
String speciesid = JOptionPane.showInputDialog(null , "Enter an Animal species id");
clearTableAnimals();
Connect.toAddAnimal(id , name , desc , speciesid);
Connect.allAnimal();
animal = new JTable(rows1, animalH);
animalP = new JScrollPane(animal);
getContentPane().add(animalP, BorderLayout.CENTER);
setVisible(true);
}else{
currentT = 2;
String id = JOptionPane.showInputDialog(null , "Enter a Species id");
String name = JOptionPane.showInputDialog(null , "Enter a Species name");
clearTableSpecies();
Connect.toAddSpecies(id , name);
Connect.allSpecies();
species = new JTable(rows2 , speciesH);
speciesP = new JScrollPane(species);
getContentPane().add(speciesP, BorderLayout.CENTER);
setVisible(true);
}else if (s == Remove){
choice();
Close();
if(respones == 0){
currentT = 1;
String id = JOptionPane.showInputDialog(null , "Enter an Animal id to Remove");
Connect.toRemoveAnimal(id);
}else{
currentT = 2;
String id = JOptionPane.showInputDialog(null , "Enter a Species id to Remove");
Connect.toRemoveSpecies(id);
public void run() {
Connect connect = new Connect();
while (runner != null) {
try {
connect.connecting();
catch (IOException ioe) {
System.out.println("Error: " + ioe);
ClientGUI.running.setText("You are now connected");
//Method the creates the dialog box for the user to choose what he wants to do
void exit(){
String [] option = { "Exit" , "Minimize" , "Cancel" };
int which = JOptionPane.showOptionDialog(null , "Sure you want to exit"
, "Exiting" , 0 , JOptionPane.WARNING_MESSAGE ,
null , option , option[2] );
if (which == 0){
System.exit(1);
}else if (which == 1){
setState(JFrame.ICONIFIED);
}else{}
//Closes the current table on the panel
public void Close(){
if(currentT == 1){
animalP.setVisible(false);
}else if (currentT == 2){
speciesP.setVisible(false);
}else{}
//Method that give the user a choice on which table to perform actions on
public void choice(){
String[] choices = {"Animals" , "Species"};
respones = JOptionPane.showOptionDialog(null ,
"Please select Table" , "Table" , 0 , JOptionPane.INFORMATION_MESSAGE ,
null , choices , choices[1] );
//Clears the Species table
public void clearTableSpecies(){
for (int i = 0; i < 40; i++){
rows2[0] = "";
rows2[i][1] = "";
//Clears the Animal table
public void clearTableAnimals(){
for (int i = 0; i < 40; i++){
rows1[i][0] = "";
rows1[i][1] = "";
rows1[i][2] = "";
rows1[i][3] = "";
//Method for the Logout button
public void Logout(){
JOptionPane.showMessageDialog(null , "You are now logged out ");
Login.setEnabled(true);
Add.setEnabled(false);
Remove.setEnabled(false);
Logout.setEnabled(false);
//Main Methof
public static void main(String[] args) {
ClientGUI GUI1 = new ClientGUI();
// Adds all components to the panel
private void jbInit() throws Exception {
jMenu1.setText("File");
Exit.setText("Exit");
jMenu2.setText("Table Action");
Open.setText("Open Table");
Add.setText("Add to Table");
Remove.setText("Remove from Table");
Find.setText("Find In table");
Close.setText("Close Current");
jMenu3.setText("Client");
Connect1.setText("Connect");
Disconnect.setText("Disconnect");
Login.setText("Login");
Logout.setText("Logout");
bar.add(jMenu1);
bar.add(jMenu2);
bar.add(jMenu3);
jMenu1.add(Exit);
jMenu2.add(Open);
jMenu2.add(Add);
jMenu2.add(Remove);
jMenu2.add(Find);
jMenu2.add(Close);
jMenu3.add(Connect1);
jMenu3.add(Disconnect);
jMenu3.add(Login);
jMenu3.add(Logout);
package Client;
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.util.*;
public class Connect {
static public Socket clientSocket = null;
static public PrintWriter out = null;
static public BufferedReader in = null;
public void connecting() throws IOException {
try{
clientSocket = new Socket(ClientGUI.hostname , 1234);
out = new PrintWriter(clientSocket.getOutputStream() , true);
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
}catch (UnknownHostException e){
JOptionPane.showMessageDialog(null , "Dont know about host");
ClientGUI.check = false;
ClientGUI.Connect1.setEnabled(true);
ClientGUI.Disconnect.setEnabled(false);
ClientGUI.runner = null;
}catch(IOException i){
ClientGUI.check = false;
JOptionPane.showMessageDialog(null,"Couldnt get i/O for the connection to 127.0.0.0.1");
ClientGUI.Connect1.setEnabled(true);
ClientGUI.Disconnect.setEnabled(false);
ClientGUI.runner = null;
if (ClientGUI.check = true){
String fromServer;
StringTokenizer token1;
String First;
String Second;
String Third;
while ( (fromServer = in.readLine()) != null) {
System.out.println("From SerVer ---------------> " + fromServer);
token1 = new StringTokenizer(fromServer, "%");
StringTokenizer token2;
StringTokenizer token3;
First = token1.nextToken();
System.out.println("First ------- > " + First);
if (First.equalsIgnoreCase("SelectedAnimal")) {
System.out.println("IT's ON ");
Second = token1.nextToken();
System.out.println("Second ----> " + Second);
int y = 0;
int x = 0;
System.out.println("In the 1while");
token2 = new StringTokenizer(Second, "$");
while (token2.hasMoreTokens()) {
System.out.println("In the 2while");
token3 = new StringTokenizer(token2.nextToken(), "@");
x = 0;
while (token3.hasMoreTokens()) {
ClientGUI.rows1[y][x] = token3.nextToken();
x++;
y++;
else if (First.equalsIgnoreCase("SelectedSpecies")) {
System.out.println("IT's ON BITCH ");
Second = token1.nextToken();
System.out.println("Second ----> " + Second);
int y = 0;
int x = 0;
System.out.println("In die 1while");
token2 = new StringTokenizer(Second, "$");
while (token2.hasMoreTokens()) {
System.out.println("In die 2while");
token3 = new StringTokenizer(token2.nextToken(), "@");
x = 0;
while (token3.hasMoreTokens()) {
ClientGUI.rows2[y][x] = token3.nextToken();
x++;
y++;
else if (First.equalsIgnoreCase("FoundAnimal")) {
Second = token1.nextToken();
if (! (Second.equalsIgnoreCase("NONE"))) {
System.out.println("Second ----> " + Second);
int y = 0;
int x = 0;
System.out.println("In the 1while");
token2 = new StringTokenizer(Second, "$");
while (token2.hasMoreTokens()) {
System.out.println("In the 2while");
token3 = new StringTokenizer(token2.nextToken(), "#@#");
x = 0;
while (token3.hasMoreTokens()) {
ClientGUI.rows1[y][x] = token3.nextToken();
x++;
y++;
else {
JOptionPane.showMessageDialog(null,
"Could not find Animal , Please try again");
else if (First.equalsIgnoreCase("FoundSpecies")) {
Second = token1.nextToken();
if (! (Second.equalsIgnoreCase("NONE"))) {
System.out.println("Second ----> " + Second);
int y = 0;
int x = 0;
System.out.println("In die 1while");
token2 = new StringTokenizer(Second, "$");
while (token2.hasMoreTokens()) {
System.out.println("In die 2while");
token3 = new StringTokenizer(token2.nextToken(), "#@#");
x = 0;
while (token3.hasMoreTokens()) {
ClientGUI.rows2[y][x] = token3.nextToken();
x++;
y++;
else {
JOptionPane.showMessageDialog(null,
"Could not find Species , Please try again");
else if (First.equalsIgnoreCase("FoundUser")) {
System.out.println("From Server --- > " + First);
String login = token1.nextToken();
System.out.println("Find true or false ---- > " + login);
if (login.equalsIgnoreCase("isUser")) {
JOptionPane.showMessageDialog(null, "You are now logged in");
ClientGUI.Add.setEnabled(true);
ClientGUI.Remove.setEnabled(true);
ClientGUI.Logout.setEnabled(true);
ClientGUI.Login.setEnabled(false);
else {
JOptionPane.showMessageDialog(null,
"Invalid Username or Password, Please try again");
else if (First.equalsIgnoreCase("RecordAddedA")) {
JOptionPane.showMessageDialog(null, "Record Added");
else if (First.equalsIgnoreCase("RecordAddedS")) {
JOptionPane.showMessageDialog(null, "Record Added");
else if (First.equalsIgnoreCase("SQLE")) {
System.out.println("ERROR SQL ERROR");
else if (First.equalsIgnoreCase("Blah1")) {
System.out.println("ERROR Ander ERROR");
else if (First.equalsIgnoreCase("AnimalRemoved")) {
JOptionPane.showMessageDialog(null, "Record Removed");
else if (First.equalsIgnoreCase("SpeciesRemoved")) {
JOptionPane.showMessageDialog(null, "Record Removed");
}else{
System.out.println("BLAAAAAAAAH");
static public void Close() throws IOException{
out.println("bye");
ClientGUI.runner = null;
ClientGUI.Disconnect.setEnabled(false);
ClientGUI.Connect1.setEnabled(true);
out.close();
in.close();
clientSocket.close();
static public void allAnimal(){
out.println("SELECTANIMALS");
static public void allSpecies(){
out.println("SELECTSPECIES");
static public void findAnimal(String name){
out.println("FINDANIMAL" + "@" + name);
static public void findSpecies(String name){
out.println("FINDSPECIES@" + name);
static public void userPass(String name , String password){
System.out.println("FINDUSER -----> " + name + " " + password);
out.println("FINDUSER@" + name + "@" + password);
static public void toAddAnimal(String id , String name , String desc , String species){
out.println("toAddAnimal@" + id +"@" + name +"@" + desc +"@" + species );
static public void toAddSpecies(String id , String name){
out.println("toAddSpecies@" + id +"@" + name );
static public void toRemoveAnimal(String id){
out.println("toRemoveAnimal@" + id);
static public void toRemoveSpecies(String id){
out.println("toRemoveSpecies@" + id);
On the server side:
package Server;
////import everything necesary for the Database Connection
import java.sql.*;
import java.util.StringTokenizer;
import javax.swing.*;
import java.util.*;
public class DatabaseConnect {
//Declaration of Globale variables
static int hoeveel = 0;
static ResultSet rec ;
static String bidData[] = new String[100];
static String toSend[] = new String[100];
//Connects the program to the database
public DatabaseConnect() {
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source = "jdbc:odbc:Database";
Connection dbconnect = DriverManager.getConnection(source);
Statement st = dbconnect.createStatement();
}catch(ClassNotFoundException cnf){
System.out.println("classNotFound" + cnf);
}catch(SQLException se) {
System.out.println("SqlExeption" + se);
//Selects the data from the databas and adds the data to the tables
public void open(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source = "jdbc:odbc:Database";
Connection dbconnect = DriverManager.getConnection(source);
Statement st = dbconnect.createStatement();
if (ServerGUI.currentT == 1){
hoeveel = 0;
rec = st.executeQuery("SELECT * FROM ANIMALS");
while (rec.next()) {
bidData[hoeveel++] = rec.getString(1) + "@#@" +
rec.getString(2) + "@#@" +
rec.getString(3) + "@#@" +
rec.getString(4);
readintoTable1();
}else if (ServerGUI.currentT == 2){
hoeveel = 0;
rec = st.executeQuery("SELECT * FROM SPECIES");
while (rec.next()) {
bidData[hoeveel++] = rec.getString(1) + "@#@" + rec.getString(2);
readintoTable2();
}else if(ServerGUI.currentT == 3){
hoeveel = 0;
rec = st.executeQuery("SELECT * FROM USER");
while (rec.next()) {
bidData[hoeveel++] = rec.getString(1) + "@#@" + rec.getString(2)
+ "@#@" + rec.getString(3);
readintoTable3();
}catch(ClassNotFoundException cnf){
System.out.println("classNotFound" + cnf);
}catch(SQLException se) {
System.out.println("SqlExeption" + se);
//Clean the table and reads the data into the animal table
public void readintoTable1(){
for(int a = 0; a < 40; a++){
ServerGUI.rows1[a][0] = "";
ServerGUI.rows1[a][1] = "";
ServerGUI.rows1[a][2] = "";
ServerGUI.rows1[a][3] = "";
for (int i = 0; i < hoeveel; i++) {
StringTokenizer str = new StringTokenizer(bidData[i], "@#@");
ServerGUI.rows1[i][0] = str.nextToken();
ServerGUI.rows1[i][1] = str.nextToken();
ServerGUI.rows1[i][2] = str.nextToken();
ServerGUI.rows1[i][3] = str.nextToken();
//Clean the table and reads the data into the Species table
public void readintoTable2(){
for(int a = 0; a < 40; a++){
ServerGUI.rows2[a][0] = "";
ServerGUI.rows2[a][1] = "";
for (int i = 0; i < hoeveel; i++) {
StringTokenizer str = new StringTokenizer(bidData[i], "@#@");
ServerGUI.rows2[i][0] = str.nextToken();
ServerGUI.rows2[i][1] = str.nextToken();
//Clean the table and reads the data into the User table
public void readintoTable3(){
for(int a = 0; a < 40; a++){
ServerGUI.rows3[a][0] = "";
ServerGUI.rows3[a][1] = "";
ServerGUI.rows3[a][2] = "";
for (int b = 0; b < hoeveel; b++) {
StringTokenizer str = new StringTokenizer(bidData, "@#@");
ServerGUI.rows3[b][0] = str.nextToken();
ServerGUI.rows3[b][1] = str.nextToken();
ServerGUI.rows3[b][2] = str.nextToken();
//add animal information to the Animal table in the database
public void addAnimal(String id , String name , String desc , String species_id){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source = "jdbc:odbc:Database";
Connection dbconnect = DriverManager.getConnection(source);
Statement st = dbconnect.createStatement();
int toAdd;
String sqlstm = "INSERT INTO animals" + "(animal_id, animal_Name , description , species_id)" +
"VALUES (" + id + ", '" + name + "', '" + desc + "', " + species_id + ")";
toAdd = st.executeUpdate(sqlstm);
dbconnect.close();
JOptionPane.showMessageDialog(null , "New Record Added");
ServerGUI.refreshAnimal();
ServerGUI.currentT = 1;
open();
}catch(ClassNotFoundException cnf){
JOptionPane.showMessageDialog(null,
"Class Not Found -> " + cnf.toString(),
"Error!!",
JOptionPane.ERROR_MESSAGE);
System.out.println("classNotFound" + cnf);
}catch(SQLException se) {
JOptionPane.showMessageDialog(null,
"SQL Exception -> " + se.toString()
+ "\n Please make sure all data is entered correctly ",
"Error!!",
JOptionPane.ERROR_MESSAGE);
System.out.println("SqlExeption" + se);
//add animal information to the Species table in the database
public void addSpecies(String id1 , String name1){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source = "jdbc:odbc:Database";
Connection dbconnect = DriverManager.getConnection(source);
Statement st = dbconnect.createStatement();
int toAdd;
String sqlstm = "INSERT INTO species" + "(species_id, species_name)" +
"VALUES ( '" + id1 + "', '" + name1 + "')";
toAdd = st.executeUpdate(sqlstm);
dbconnect.close();
JOptionPane.showMessageDialog(null , "New Record Added");
ServerGUI.refreshSpecies();
ServerGUI.currentT = 2;
open();
}catch(ClassNotFoundException cnf){
JOptionPane.showMessageDialog(null,
"Class Not Found -> " + cnf.toString(),
"Error!!",
JOptionPane.ERROR_MESSAGE);
System.out.println("classNotFound" + cnf);
}catch(SQLException se) {
JOptionPane.showMessageDialog(null,
"SQL Exception -> " + se.toString()
+ "\n Please make sure all data is entered correctly ",
"Error!!",
JOptionPane.ERROR_MESSAGE);
System.out.println("SqlExeption" + se);
//add animal information to the User table in the database
public void addUser(String id2 , String user , String pass){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String source = "jdbc:odbc:Database";
Connection dbconnect = DriverManager.getConnection(source);
Statement st = dbconnect.createStatement();
int toAdd;
String sqlstm = "INSERT INTO user" + "(user_id, user_name ,user_password)" +
"VALUES ( '" + id2 + "', '" + user + "', '"+ pass + "')";
toAdd = st.executeUpdate(sqlstm);
dbconnect.close();
JOptionPane.showMessageDialog(null , "New Record Added");
ServerGUI.refreshUser();
ServerGUI.currentT = 3Your code is completely unreliable and it should be placed inside a code block when you add it. Also your question would be better off in the JDBC forum than the networking one.
-
Query help needed for querybuilder to use with lcm cli
Hi,
I had set up several queries to run with the lcm cli in order to back up personal folders, inboxes, etc. to lcmbiar files to use as backups. I have seen a few posts that are similar, but I have a specific question/concern.
I just recently had to reference one of these back ups only to find it was incomplete. Does the query used by the lcm cli also only pull the first 1000 rows? Is there a way to change this limit somwhere?
Also, since when importing this lcmbiar file for something 'generic' like 'all personal folders', pulls in WAY too much stuff, is there a better way to limit this? I am open to suggestions, but it would almost be better if I could create individual lcmbiar output files on a per user basis. This way, when/if I need to restore someone's personal folder contents, for example, I could find them by username and import just that lcmbiar file, as opposed to all 3000 of our users. I am not quite sure how to accomplish this...
Currently, with my limited windows scripting knowledge, I have set up a bat script to run each morning, that creates a 'runtime' properties file from a template, such that the lcmbiar file gets named uniquely for that day and its content. Then I call the lcm_cli using the proper command. The query within the properties file is currently very straightforward - select * from CI_INFOOBJECTS WHERE SI_ANCESTOR = 18.
To do what I want to do...
1) I'd first need a current list of usernames in a text file, that could be read (?) in and parsed to single out each user (remember we are talking about 3000) - not sure the best way to get this.
2) Then instead of just updating the the lcmbiar file name with a unique name as I do currently, I would also update the query (which would be different altogether): SELECT * from CI_INFOOBJECTS where SI_OWNER = '<username>' AND SI_ANCESTOR = 18.
In theory, that would grab everything owned by that user in their personal folder - right? and write it to its own lcmbiar file to a location I specify.
I just think chunking something like this is more effective and BO has no built in back up capability that already does this. We are on BO 4.0 SP7 right now, move to 4.1 SP4 over the summer.
Any thoughts on this would be much appreciated.
thanks,
MissyJust wanted to pass along that SAP Support pointed me to KBA 1969259 which had some good example queries in it (they were helping me with a concern I had over the lcmbiar file output, not with query design). I was able to tweak one of the sample queries in this KBA to give me more of what I was after...
SELECT TOP 10000 static, relationships, SI_PARENT_FOLDER_CUID, SI_OWNER, SI_PATH FROM CI_INFOOBJECTS,CI_APPOBJECTS,CI_SYSTEMOBJECTS WHERE (DESCENDENTS ("si_name='Folder Hierarchy'","si_name='<username>'"))
This exports inboxes, personal folders, categories, and roles, which is more than I was after, but still necessary to back up.. so in a way, it is actually better because I have one lcmbiar file per user - contains all their 'personal' objects.
So between narrowing down my set of users to only those who actually have saved things to their personal folder and now having a query that actually returns what I expect it to return, along with the help below for a job to clean up these excessive amounts of promotion jobs I am now creating... I am all set!
Hopefully this can help someone else too!
Thanks,
missy -
Help needed Regarding Project Server - 2013 Workflow
Hi All,
I am new to Project server 2013 Workflow, hence please help me regarding this. Pardon me if this question is too trivial.
I have created a project type associated with a workflow and my workflow is as follows :
So I am not doing anything here, I am just testing the workflow as mentioned by technet site : http://technet.microsoft.com/en-us/library/dn458865(v=office.15).aspx
But it is mentioned that, after a minute or 2, the workflow state will change, also they have mentioned to press the Submit button.
But in my case, the workflow is not moving to next stage [It just says 'The workflow is still processing - which never changes after hours] or I am getting the submit button (Submit button is disabled on the ribbon). Below is the state of my workflow :
PS : I have made the user added to Portfolio managers group as well. But still I am having this same issue.
The Workflow manager is installed properly, and it is working fine in case of List workflow. I am facing the issue only wrt Site workflow for Project server 2013.
Please help me to solve this issue.
Thanks,
shankyHi Kiran,
I am now facing issue while assigning a task to a person in the workflow.
I am having a person named say 'John' , who is included in Project Manager as well as Portfolio Manager.
And I am using a workflow as :
Stage : Conceptual
Assign a task to John (Task outcome to Variable: Outcome5 | Task ID to Variable: TaskID3 )
Transition to stage
Go to Approval
But this is again giving issue as :
Workflow Internal status : Cancelled
Details: System.ApplicationException: HTTP 401 {"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have
permission to perform this action or access this resource."}}}
PS : I have used the same Sharepoint admin account for 'Account Name' in ‘User Profile Sync' , Is this causing the issue? Please let me know.
Thanks,
Shanky -
Help Needed for T42 Start-up Problem
Urgent help need!!!
I have a ThinkPad T42 with Windows XP installed. It works perfectly for a while without ever have any problem or error message. Then suddenly it won’t work anymore. The symptom is following:
After power on the laptop the Microsoft window would show up and it prompt me for window logon password. After I type in the password it then shows “window is loading your personal setting”. After a long while nothing would show up on the screen other than the background of the normal screen. There is no window bar at the bottom or any icon on the screen. If I start in safe mode then everything would show up. I don’t know what is going on.
This happened two months ago and I ended up restoring a backup image to get it work again. It happens again today with the same symptom. I am really tired of having to restore image backup every 2 months.
I would really appreciate it if any of your experts can offer me some insight into this problem. I am desperate in need of help.
Thanks very much!wangy26, welcome to the forum,
Have a look at this thread to see if my post there helps. The problem seems to mostly occur at the start of a month, why I don't know. Unfortunately the member didin't report back whether or not this was a viable solution for them.
Andy ______________________________________
Please remember to come back and mark the post that you feel solved your question as the solution, it earns the member + points
Did you find a post helpfull? You can thank the member by clicking on the star to the left awarding them Kudos Please add your type, model number and OS to your signature, it helps to help you. Forum Search Option T430 2347-G7U W8 x64, Yoga 10 HD+, Tablet 1838-2BG, T61p 6460-67G W7 x64, T43p 2668-G2G XP, T23 2647-9LG XP, plus a few more. FYI Unsolicited Personal Messages will be ignored.
Deutsche Community Comunidad en Español English Community Русскоязычное Сообщество
PepperonI blog -
Help need for badi method me_process_po_cust~check
Dear All expert
Pl see following thread
I am stuck
Help needed
http://scn.sap.com/thread/3610303See the issue here is HOLD feature in PO should not be there if it meets the error condition.
For this you can refer another BADI for this purpose ME_HOLD_PO.
Refer one of my previous threads below , it might be helpful :
Held Purchase order need not be created.
Reiterating a thread related to same topic is not a good practice. -
XMLAGG structure, performance help needed for odd nesting in schema
Hello,
I have to produce XML to look like:
<?xml version='1.0'?>
<enterprise>
<membership>
<sourcedid>
<id>PHYS_101_001_FA2007</id>
</sourcedid>
<!-- NOTE: absence of "members" level tag for XMLAGG! -->
<member>
<sourcedid>
<id>D2LU0001</id>
</sourcedid>
<role roletype="Sample Role">
<status>1</status>
</role>
</member>
<member>
<sourcedid>
<id>D2LU0002</id>
</sourcedid>
<role roletype="Sample Role">
<status>1</status>
</role>
</member>
</membership>
</enterprise>This would be straightforward if the schema allowed for a "<members>" tag under which to nest the <member> tags. But, it does not allow for that tag or any other than those listed above.
I have a query which does produce that output (except for the roletype attribute), but its performance is horrible; it takes about 40 minutes to return data:
SELECT
XMLROOT(
XMLELEMENT("enterprise",
XMLAGG(
XMLELEMENT("membership",
XMLFOREST( XMLELEMENT("id",cx.mapped_course_id) as "sourcedid"
(SELECT XMLAGG(
XMLELEMENT("member",
XMLFOREST(XMLELEMENT("id",spriden_id) AS "sourcedid",
XMLELEMENT("status",'1') AS "role"
FROM enrollments_fall_sfrstca efs
, spriden sp
, gzv_tuid t
WHERE sp.spriden_change_ind IS NULL
AND sp.spriden_pidm = t.pidm
AND t.tuid = efs.user_name
AND efs.mapped_course_id = cx.mapped_course_id
AND efs.term = cx.semester
, VERSION '1.0', STANDALONE NO VALUE)
FROM courses_xt cx
WHERE cx.semester = :term_code
;Similar queries are producing courses and users XML fine with no performance issues, but these are driven off either the courses view or the enrollments view, but not both.
Is there some other way I can produce the nesting I need for the vendor's schema?
The source views are basically as follows (showing relevant columns only):
courses_xt:
MAPPED_COURSE_ID SEMEST
AVFT209-13307-201210 201210
AVFT210-13308-201210 201210enrollments_fall_sfrstca:
MAPPED_COURSE_ID USER_NAME
AVFT209-13307-201210 FULLERC8
AVFT209-13307-201210 SHUPEK
AVFT209-13307-201210 NOMAN
AVFT210-13308-201210 SHUPEK
AVFT210-13308-201210 PELLONMWhen I have the query without the XML (with the subquery as a column of the outer query), this returns the correct data quickly (a couple of minutes).
I have tried various permutations of XMLFOREST, XMLELEMENT, XMLAGG but either I get syntax errors, or the data is wrong (e.g. repeated '<membership>' for each '<member>', or I have to create an invalid tag '<members>' to be filtered later).
Please advise!
Thanks,
Anita LeesHi Anita,
Have you tried with a GROUP BY and no subquery?
Here's an example using SCOTT schema.
I've used the same tag names and structure so that you can see the analogy :
SELECT XMLElement("enterprise",
XMLAgg(
XMLElement("membership",
XMLElement("sourceid", xmlelement("id", d.deptno))
, XMLAgg(
XMLElement("member",
XMLElement("sourceid",
XMLElement("id", e.empno)
, XMLElement("role",
XMLAttributes(e.job as "roletype")
, XMLElement("status", '1')
FROM scott.dept d
LEFT OUTER JOIN scott.emp e ON e.deptno = d.deptno
WHERE d.deptno IN (10,20)
GROUP BY d.deptno
;which gives :
<enterprise>
<membership>
<sourceid>
<id>10</id>
</sourceid>
<member>
<sourceid>
<id>7782</id>
</sourceid>
<role roletype="MANAGER">
<status>1</status>
</role>
</member>
<member>
<sourceid>
<id>7934</id>
</sourceid>
<role roletype="CLERK">
<status>1</status>
</role>
</member>
<member>
<sourceid>
<id>7839</id>
</sourceid>
<role roletype="PRESIDENT">
<status>1</status>
</role>
</member>
</membership>
<membership>
<sourceid>
<id>20</id>
</sourceid>
<member>
<sourceid>
<id>7369</id>
</sourceid>
<role roletype="CLERK">
<status>1</status>
</role>
</member>
<member>
<sourceid>
<id>7902</id>
</sourceid>
<role roletype="ANALYST">
<status>1</status>
</role>
</member>
<member>
<sourceid>
<id>7566</id>
</sourceid>
<role roletype="MANAGER">
<status>1</status>
</role>
</member>
</membership>
</enterprise>
Maybe you are looking for
-
Hi there, I hope someone can help me. This all started about a week ago. So I tried a fresh reinstall from my recovery disk. to no avail. Ok I have Home Premium 64bit and it seems my icons in my user folders and subfolders and the actual file icons a
-
Accounts Payable Trial Balance in R-12 report rows don't balance
Hi, Background: I am in a municipal government using encumbrance accounting in R-12. In 11i the AP Trial Balance (APTB) always balanced line for line when comparing the ORIGINAL AMOUNT to the AMOUNT REMAINING. This is not always the case in R-12. In
-
Floating point formats: Java/C/C++, PPC and Intel platforms
Hi everyone Where can I find out about the various bit formats used for 32 bit floating numbers in Java and C/C++ for both Mac hardware platforms? I'm developing a Java audio application which needs to convert vast quantities of variable width intege
-
GB Searching For Sampler Instruments
How do I get GB to search for (or, better yet, FIND) all my sampler instruments? When I double click on one of the instruments to get the track info, GB says, for example "Grand Piano.exs": Audio file "024C0KM56M.wav" not found! Yet I know the exact
-
Installing iTunes (possible dumb question?)
Now I am no computer expert so for the savvy out there I trust you not to laugh at this question! When you download a file such as iTunes and save it prior to install I understand it is visible as e.g. iTunes.exe. Opening the .exe file will cause a p