Record FieldEdit Event need to be execute
Hi All,
I have Custom Record on one Page, Record Fields has so many Peoplecode in FieldEdit Events for Some Validations.
Page was doing DoSave on Next Button , But Now the Logic has been changed, Record will not be saved on Next Button
It just Transfer to Next Page by Calling TransferPage Method but Record fields need to validated. Isthere any command
that can execute fiedEdit Events of fields of that Record before Page Transfer .
Thanks
Do i have to copy all code in Field Edits (Validation code) from all fields in the Record to Next Button Field Edit or Field Change ?
Make functions of the fiededits and call the functions in the next button.
And How will i check for Required fields
This is a property of the field class.
If field.isrequired and none(field.value) then
Field.style = "PSERRORTEXT" ;
End-if
Or use record.executeedits()
Do i have to SetCursorPos to each field and change style of error ?
Yes.
How to change style of field if some field is required ?
See example above.
Similar Messages
-
Steps for Recording Portal Events in Database
I want to record user events from our applicaiton to the portal database for reporting purposes. I know there are some configuration chnages to be made in the server for this purpose. Also I need to know from an applicaiton perspective how to code this.
Can someone give some info regarding this.
ThanksHi Guys ,
I am new to events & campaigns in portal .
I need help in writing a custom event
and then registering it so that it can be used
to trigger a campaign .
Even a simplest of example will do .
Please help me with this.
regards,
Shilpa -
Record Keypress events of Virtual Keyboard in Iphone
Hi. I am working on an IOS eng language dictionary and I need to record keypress events of virtual keyboard so that I can provide users with a dropdownlist (like an autocomplete) of words. I have done it through value changed event of UITextField but I am not getting anywhere with this. Is there any solution?
Hi. I am working on an IOS eng language dictionary and I need to record keypress events of virtual keyboard so that I can provide users with a dropdownlist (like an autocomplete) of words. I have done it through value changed event of UITextField but I am not getting anywhere with this. Is there any solution?
-
Need to Commit Execute Immediate???
Hi,
I'm just wondering if I need to commit execute immediate (oracle 10g and 9i)?
I have an insert statement that I run exeute immediate in, does it commit automatically?
Thanks for your help.the problem is, that in read committed isolation level (which is the default for Oracle) a query has to see data in the state that it was in, when the query startet (committed by other sessions plus eventually local changes by the own session up to the start system change number of the query, so DML is possible but no commits).
If you try to fetch accross commits, that is: your query is still running but meanwhile you would change and commit data i.e by calling a function inside a query, you would be changing the system commit number. The query would have to keep track of which new SCNs where caused by the query and which SCNs possibly in between were not, further then the Delta would have to be calculated to see only the own changes (committed or not). That is not implemented in standard SQL databases.
Nevertheless there are workarounds:
either you are starting a transaction that is treated as if another session would do that (pragma autonomous transaction) or you access records using rowids you selected beforehand. -
High "CPU + Wait for CPU" event on pl/sql execute operation
I am executing a pl/sql in 256 parallel sessions, on 11G r2 DB (RAC 2 nodes), on a 42core IBM P7 Machine.
PL/sql function opens a cursor on a huge table with around 20M rows and does further processing.
Work-load is equally divided into 256 parallel sessions. 256 parallel sessions are opened by a middle-ware application and each session processes data based on an identifier (there are 256 distinct identifier values).
PL/sql function is comprised of some SQL operations, on which i am experiencing some cluster waits. But CPU + wait for CPU event on pl/sql execute operation is close to 80% of the total execution time.
Top user events:
Event Event Class % Event Avg Active Sessions
CPU + Wait for CPU CPU 80.88 98.15
gc current block 2-way Cluster 3.33 4.05
gc cr block busy Cluster 2.01 2.44
gc cr block 2-way Cluster 1.97 2.39
db file sequential read User I/O 1.81 2.20
Top SQL command type:
SQL Command Type Distinct SQLIDs % Activity Avg Active Sessions
PL/SQL EXECUTE 3 60.99 74.02
SELECT 66 12.90 15.65
INSERT 24 9.89 12.01
UPDATE 9 6.00 7.28
DELETE 2 1.33 1.61Rest of the SQL queries seem to be very optimum, but waits on pl/sql execute operation are causing very low tps.
Can anybody give me some heads-up about where to and what to look for to resolve?
Please let me know if any extra information is required.AWR report :
Header
DB Name DB Id Instance Inst num Startup Time Release RAC
FCR 1304316316 fcrypp1 1 01-12ÔÂ-12 04:12 11.2.0.2.0 YES
Host Name Platform CPUs Cores Sockets Memory (GB)
z4ci2011 AIX-Based Systems (64-bit) 168 42 320.00
Snap Id Snap Time Sessions Cursors/Session
Begin Snap: 40650 01-12ÔÂ-12 06:40:03 1203 5.8
End Snap: 40669 01-12ÔÂ-12 09:50:01 1122 5.3
Elapsed: 189.96 (mins)
DB Time: 22,251.65 (mins)
Load profile
Per Second Per Transaction Per Exec Per Call
DB Time(s): 117.1 19.5 0.00 3.89
DB CPU(s): 16.1 2.7 0.00 0.53
Redo size: 12,759,186.3 2,126,361.0
Logical reads: 181,875.9 30,310.2
Block changes: 54,515.5 9,085.2
Physical reads: 1,340.3 223.4
Physical writes: 8,788.9 1,464.7
User calls: 30.1 5.0
Parses: 26.5 4.4
Hard parses: 0.4 0.1
W/A MB processed: 8.5 1.4
Logons: 0.1 0.0
Executes: 41,176.0 6,862.1
Rollbacks: 1.9 0.3
Transactions: 6.0
Time model statistics
Statistic Name Time (s) % of DB Time
sql execute elapsed time 1,334,935.55 99.99
PL/SQL execution elapsed time 1,180,376.60 88.41
DB CPU 182,904.44 13.7
repeated bind elapsed time 292.83 0.02
sequence load elapsed time 279.75 0.02
parse time elapsed 87.4 0.01
hard parse elapsed time 22.52 0
failed parse elapsed time 5.12 0
connection management call elapsed time 4.61 0
PL/SQL compilation elapsed time 1.91 0
hard parse (sharing criteria) elapsed time 0.49 0
hard parse (bind mismatch) elapsed time 0.39 0
inbound PL/SQL rpc elapsed time 0.1 0
DB time 1,335,099.30
background elapsed time 33,298.67
background cpu time 11,692.76
Operating System Statistics
Statistic Value End Value
AVG_BUSY_TIME 202,428
AVG_IDLE_TIME 936,397
AVG_IOWAIT_TIME 4,124
AVG_SYS_TIME 84,480
AVG_USER_TIME 117,573
BUSY_TIME 34,074,303
IDLE_TIME 157,378,825
IOWAIT_TIME 755,368
SYS_TIME 14,256,010
USER_TIME 19,818,293
LOAD 21 10
OS_CPU_WAIT_TIME 23,770,800
VM_IN_BYTES 20,496
VM_OUT_BYTES 2,086,940,520
PHYSICAL_MEMORY_BYTES 343,597,383,680
NUM_CPUS 168
NUM_CPU_CORES 42
NUM_LCPUS 168
NUM_VCPUS 42
GLOBAL_RECEIVE_SIZE_MAX 41,943,040
GLOBAL_SEND_SIZE_MAX 41,943,040
TCP_RECEIVE_SIZE_DEFAULT 16,384
TCP_RECEIVE_SIZE_MAX 9,223,372,036,854,775,807
TCP_RECEIVE_SIZE_MIN 4,096
TCP_SEND_SIZE_DEFAULT 16,384
TCP_SEND_SIZE_MAX 9,223,372,036,854,775,807
TCP_SEND_SIZE_MIN 4,096
SQL ordered by CPU Time
CPU Time (s) Executions CPU per Exec (s) %Total Elapsed Time (s) %CPU %IO SQL Id SQL Module SQL Text
180,330.13 127 1,419.92 98.59 1,326,401.03 13.60 1.08 04kt8u64udphu BEGIN :1 := ap_ch_eod_shell_en...
8,025.48 9,868,469 0.00 4.39 10,809.88 74.24 9.21 arnkbsnzhha77 ch_txn_shell_115 SELECT * FROM CH_ACCT_MAST WHE...
6,117.64 9,873,495 0.00 3.34 8,557.64 71.49 7.14 8qcryvj294s79 ch_eod_shell_138 UPDATE CH_ACCT_MAST_PAR SET DA...
4,614.71 3,185,313 0.00 2.52 11,130.77 41.46 11.88 b75wwkxw34x2k ch_eod_shell_228 INSERT INTO CH_TMP_XF_GL_TXNS ...
4,374.29 9,866,217 0.00 2.39 5,876.00 74.44 37.88 g22p493ra2zr5 ch_eod_shell_248 UPDATE CH_ACCT_MAST SET BAL_LA...
3,514.57 14,026,451 0.00 1.92 6,274.60 56.01 29.55 7bwhphfnnuqpr ch_eod_shell_59 INSERT INTO CH_ACCT_INT_BREAKU...
3,253.36 3,185,706 0.00 1.78 3,875.42 83.95 9.20 9dq134q9btxq8 ch_eod_shell_74 INSERT INTO CH_ST_CAP_INPUT_TX...
3,131.64 9,875,603 0.00 1.71 5,338.43 58.66 15.55 6xhwk1b37rh1t ch_txn_shell_143 UPDATE CH_ACCT_ATTRIBUTES SET ...
2,954.15 9,878,718 0.00 1.62 5,692.88 51.89 13.22 b4at7uq2hw6r7 ch_sweepin_shell SELECT TRIM(A.COD_PKG) FROM RP...
2,572.01 9,867,277 0.00 1.41 4,605.88 55.84 12.58 54ud0a8tuwwbc ch_txn_shell_17 SELECT * FROM CH_ACCT_ATTRIBUT...
1,941.29 19,730,455 0.00 1.06 5,580.38 34.79 7.02 dx5kng8qu560t ch_txn_shell_59 UPDATE CH_ACTIONS_DUE SET COD_...
1,846.01 9,875,239 0.00 1.01 4,737.66 38.96 12.55 af7f92f13rmy4 ch_txn_shell_85 INSERT INTO CH_ACTIONS_DUE (CO... -
[AS] Can Applescript record InDesign events ??
Is is possible for the script editor to record apple events from Indesign? Ie. Press the record button in the script editor, do some stuff in Indesign and have the commands automatically recorded.
If so, what is the criteria for this? CS1, CS2, CS3 ? MacOS 10.x ? Applescript version ?
if not, is there a third-party plugin that will do this?
(Many moons ago Quark (Agghhh) had an extension "ScriptMaster XT" which would allow the recording of events to the script editor)
Currently wrestling with the limited topics that are covered in the Adobe AS guide. (Ie. lots of stuff on text, very little on images).
Thanks in Advance.
Matt.On 9/5/08 11:57 PM, "Matt McGregor" <[email protected]> wrote:<br /><br />> Is is possible for the script editor to record apple events from Indesign? Ie.<br />> Press the record button in the script editor, do some stuff in Indesign and<br />> have the commands automatically recorded.<br /><br />No. Very few apps are recordable these days.<br /><br />> (Many moons ago Quark (Agghhh) had an extension "ScriptMaster XT" which would<br />> allow the recording of events to the script editor)<br /><br />And what a dog's breakfast it used to produce...<br /><br />-- <br />Shane Stanley <[email protected]>
-
Smartform need to be executed on multiple cleints.
Hi all,
My sceanrio is like i have smartform and that smartform need to be executed on multiple systems.
We have different clients with different system number but server is at same IP.
for eg : Client 130
System Id - 05
IP - 192.168.101.102
Another Client - 140
System Id - 09
IP - 192.168.101.102
The smartforms is attached by output type.
Now sceanrio is when i execute the smartform in client 130 it executes successfully.
But when i tried to execute the same in client 140 then it says "no runtime object exists for form" .When i execute the smartform in client 140 then it successfully executes.
So if we have 10 more cleint then everytime we have to execute and generate function module for smartform.
Is there is some thing i am missing .
Please advise.
Regards,hi navdeep,
basically smartform is independent of client.
plz check the required output type is defined in otherclients also.
other wise define them in SPRO or NACE.
then it will work.
i hope it will help you.
please reward me if helpful.
gupta -
I have a Steinberg MI4 and a Roland Fantom X7, and am trying to use my Fantom in Logic to record audio. Need help setting it all up using MIDI cables. Please help !
Encryption wouldn't matter except for Wifi.
While 10.2 might help, there's not much you can do on the Internet these days with less than 10.4.11
Tiger Requirements...
To use Mac OS X 10.4 Tiger, your Macintosh needs:
* A PowerPC G3, G4, or G5 processor
* Built-in FireWire
* At least 256 MB of RAM (I recommend 1GB minimum)
* DVD drive (DVD-ROM), Combo (CD-RW/DVD-ROM) or SuperDrive (DVD-R) for installation
* At least 3 GB of free disk space; 4 GB if you install the XCode 2 Developer Tools (I recommend 20GB minimum)
http://support.apple.com/kb/HT1514
http://www.ebay.com/sch/i.html?_nkw=mac+os+x+tiger+retail+10.4
See Tom's, (Texas Mac Man), great info on where/how to find/get Tiger...
https://discussions.apple.com/message/15305521#15305521
Or Ali Brown's great info on where/how to find/get Tiger...
http://discussions.apple.com/thread.jspa?messageID=10381710#10381710
As far as Memory, that's sort of easy, find your eMac here...
http://eshop.macsales.com/MyOWC/Models.cfm?Family=emac&sType=Memory
As far as Hard Drive, it's not easy to replace the Internal drive, I'd maybe suggest an external Firewire drive to boot from...
http://eshop.macsales.com/item/Other%20World%20Computing/MAU4S7500G16/ -
When I record calendar events on my iphone or ipad I use a 24 clock, which is the basis on which my business runs. I cannot do the same on my Macbook, which is very frustrating and counter-intuitive (i.e. using am/pm). I asked my Apple support here in South Africa. The rep' said he could not answer immediately but would get back to me. I'm still waiting. Surely this is not a 'big' or 'unusual' problem?
I get 24hr everywhere not just in the dialog box
Here's a calendar entry
But I am not sure why you don't, let me put out a call for assisitance, -
Floating boxes applet with drag events need click event
I Have an applet cobbled from the net & modified. Is works but needs one major event added. It draws "Graphics.drawline" boxes with a text "String" inside each box ( the text string represents an URL location). These "boxes" are objects which are "draggable to other locations on canvas & therefore can be independently positioned by user. Each box redraws itself periodically to a slightly different screen location & becomes stationary after a 5 or 6 seconds. The point is, all of this "drag & mobility" behavior must remain intact & is not part of the "problem task".
Task: Need to have an "event" behavior added in one of two ways ( or a 3rd way if there is another ) whichever is quickest/ easiest. "Clickable mouse events" must be added to each box. ( boxes are built in a loop so adding to one will add to other locations & create as many "buttons" as there are boxes) . At each box's location, clicking one box should be an event which fires & clicking a different box should be a separate event which fires. Separate , so that URL location can be "hotlinked" to each box. That URL is currently displayed in the boxes (visible when running applet).
1st possible solution: Exchange these "boxes" which appear on canvas into clickable event "Graph panel.buttons" ( for example or some other clickable object) which maintains existing "drag" behavior of boxes. These buttons must each have "clickability" with mouse events to enable placing "getAppletContext. showDocument()" code with these events ( e.g., "hotlinked" to http locations).
or
2nd possible solution:. The drawstring boxes are currently dead string text with no event model other than the "drag" feature associated with each box. Must add an additional mouse event behavior to existing boxes so they are "clickable" ( or text inside is clickable) and can then execute "showDocument()" URL when clicked independently.
Maybe there is a #3. I don't know what that would be. Open to try anything without losing the drag & placement mobility of existing boxes.
These "boxes" could be images, or event buttons - doesnt matter.
Not sure if #2 is possible & have not been able to accomplish #1. Must stay within existing AWT framework so IE browsers can run it natively ( which of course IE cannot run Swing graphics unless a Sun plugin loaded ).
Applet is a single file ( creating 4 classes).
html file (which invokes it) passes a string param which is broken into above noted URL strings in each box.
Running this applet, you see a "button" event ( at base of canvas labeled "NewUrl" ) which pops up an url location when clicked ( using "showdocument"). This button is not attached to locations or text of each box object ( which is the "task" to accomplish) . The button does represent the kind of event behavior which each "box" should have when task is achieved. So the box can be exchanged with buttons or the boxes can be imbued with events to hyperlink like a button.
In spirit of solution #1, here is the bonehead attempt I tried which did not work: copied entire "if" block of logic from the button event (sited in preceding paragraph) into region of code which builds boxes ( "for" loop of "drawstring" method).
"g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());"
I copied all the "if" block of logic for button creation into the area immediately after the above line ( for loop which builds the boxes). Hoping that I could create buttons with events, along with all the boxes (which are getting created using "drawstring" above in a "for" loop). These "buttons" must also have positioning info of each box to appear in different locations on the canvas. Positioning data is not in that "if" block of code but it would have been a start to get the multiple buttons created ( even if all drawn in one spot). The "if" code block I've provieded for an example begins with the line:
" if ("NewUrl".equals(arg)) { "
and ends with with lines:
" return true; "
" } " //< -- end of above if block
This full "if" block can be seen in the listing below:
This "if" block creates the "NewUrl" button. Of course, I got a bunch of errors when I tried to copy this block to the above location:
variable: "arg" "not found in class GraphPanel".
methods: "getcodebase, showstatus, getappletcontext()"
"not found in class GraphPanel".
----------- The applet code in total follows next
Here are both the java & htm complete source.
import java.net.MalformedURLException;
import java.net.URL;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
class Node {
double x;
double y;
double dx;
double dy;
boolean fixed;
String lbl;
class Edge {
int from;
int to;
double len;
} // eEdgeCla
class GraphPanel extends Panel implements Runnable {
Box box;
int nnodes;
Node nodes[] = new Node[100];
int nedges;
Edge edges[] = new Edge[200];
Thread relaxer;
boolean showit;
boolean random;
GraphPanel(Box box) {
this.box = box;
} //ebox
int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
if (nodes.lbl.equals(lbl)) {
return i;
return addNode(lbl);
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
return nnodes++;
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
public void run() {
int i3=0;
while (true) {
relax();
if (random && (Math.random() < 0.03)) {
Node n = nodes[(int) (1 * nnodes) ]; // no
if (!n.fixed) {
n.x += (100*0.02) - 50;
n.y += (100*0.02) - 50; //
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
break;
i3++;
} //ew
} // epublrun()
synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges;
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
double f = (edges.len - len) / (len * 3) ;
double dx = f * vx;
double dy = f * vy;
nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
} //efo
for (int i = 0 ; i < nnodes ; i++) {
Node n1 = nodes;
double dx = 0;
double dy = 0;
for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += 0.02;
dy += 0.02;
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
} //ef3a
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
} //ef3
Dimension d = size();
// f4
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes;
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
n.dx /= 2;
n.dy /= 2;
repaint();
Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;
final Color fixedColor = Color.green;
final Color selectColor = Color.gray;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(200, 90, 50);
final Color showitColor = Color.gray;
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.orange;
final Color arcColor3 = Color.blue;
public void paintNode( Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
String doit = n.lbl.replace('x','/');
g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
} // epa
public synchronized void update(Graphics g) {
Dimension d = size();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges;
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);
if (showit) {
String lbl = String.valueOf(len);
offgraphics.setColor(showitColor);
offgraphics.drawString("href= http://localhost:"+lbl, x1 + (x2-x1)/2, y1 + (y2-y1)/2);
offgraphics.setColor(edgeColor);
} //ef5
FontMetrics fm = offgraphics.getFontMetrics();
for (int i = 0 ; i < nnodes ; i++) {
paintNode( offgraphics, nodes, fm); //or
g.drawImage(offscreen, 0, 0, null);
public synchronized boolean mouseDown(Event evt, int x, int y) {
double bestdist = Double.MAX_VALUE;
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes;
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
pickfixed = pick.fixed;
pick.fixed = true;
pick.x = x;
pick.y = y;
repaint();
return true;
public synchronized boolean mouseDrag(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
repaint();
return true;
} //e-pubsyncmousedrag
public synchronized boolean mouseUp(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
pick.fixed = pickfixed;
pick = null;
repaint();
return true;
public void start() {
relaxer = new Thread(this);
relaxer.start();
public void stop() {
relaxer.stop();
public class Box extends Applet {
GraphPanel panel;
public void init() {
setLayout(new BorderLayout());
panel = new GraphPanel(this);
add("Center", panel);
Panel p = new Panel();
add("South", p);
p.add(new Button("Reposition"));
p.add(new Button("NewUrl"));
p.add(new Checkbox("Showit"));
String edges = getParameter("edges"); // putinli
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) { int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
} //ef8
Dimension d = size();
String center = getParameter("center");
if (center != null){
Node n = panel.nodes[panel.findNode(center)];
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
} // eif
} // ep
public void start() {
panel.start();
public void stop() {
panel.stop();
public boolean action(Event evt, Object arg) {
if (arg instanceof Boolean) {
if (((Checkbox)evt.target).getLabel().equals("Showit")) {
panel.showit = ((Boolean)arg).booleanValue();
}// e-
else {
panel.random = ((Boolean)arg).booleanValue();
return true;
} // e-if instof bool
if ("Reposition".equals(arg)) {
Dimension d = size();
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes;
if (!n.fixed) {
n.x = 10 + (d.width-20)*Math.random();
n.y = 10 + (d.height-20)*Math.random();
} //ei
} //ef9
return true;
} //eif scram
if ("NewUrl".equals(arg)) {
Dimension d = size();
URL url = getCodeBase();
try {
getAppletContext().showDocument( new URL(url+"main.htm"), "_blank" );
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
} catch(MalformedURLException e) {
showStatus("814 URL not found");
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes;
if (!n.fixed) {
n.x += (80*0.02) - 40;
n.y += (80*0.02) - 40;
return true;
} //ei
return false;
-----------------------htm file to launch------------------------------
<html>
<head>
<title>R
</title>
</head>
<body>
<h3>
<center>
R
</center>
</h3>
I
<b>
</b>
<table border = 1>
<td>De<td>Test List<tr>
<td>N <td><tr>
<td>N <td><tr>
</table>
<b>view </b>
<applet code="Box.class" CODEBASE=. width=1000 height=600
ALT="Test ">
<param name=edges value="http:xxabc.htm-http:xxnet.htm,http:xxthis.htm-http:xx.comet.htm,http:xxnewsighting.htm-http:xxstar.htm,http:xxmoon.htm-http:xxNeptune.htm">
<hr>
</applet>
</b>
<p>
<table border = 1>
<tr>
<tr>
</table>
</html>
</body>
instructions to compile :
0 : The discussion becomes easy to follow after 1st compiling
& viewing the applet.
1. : cut out applet code.
2. : the post somehow deleted all references to "" <--- HERE
see, the data has been deleted again as I preview this post.
( that "" should contain an "i" array increment argument:
"open square bracket" "i" "close square bracket" ) array
so "javac Box.java" will get 10 errors. These "[" "i" "]"
array args must be replaced to compile the code.
3. : All array variables inside the 10 "for" loops ( the bare words
"edges" and "nodes" ) without array increment "i" should
read "edges" "[" "i" "]" & "nodes" "[" "i" "]".
The 10 location lines are approx:
line #65, #129, #136, #149, #195, #283, #311, #331, #477, #522
4. : These 10 edits reqresent a missing "i" to all 10 for loop arrays.
for eddges & nodes. fix this & javac Box.java" will get
4 class files.
5. : cut "Box.htm" from post & do "appletviewer Box.htm"
or put in an apache "htdoc" or tomcat "servlet" http delivered
directory & call "http://localhost/Box.htm.
6. : of course, selecting the event button "NewUrl" will not
work in appletviewer but will work in an http web location.
7. : post your questions to problem or fixes to problem as I'm
monitoring closely. TIA.Thanks for code post tip to fix array deletion problem.
Here is code reposted using delimiters with will
compile straight out of cut/paste.import java.net.MalformedURLException;
import java.net.URL;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
class Node {
double x;
double y;
double dx;
double dy;
boolean fixed;
String lbl;
class Edge {
int from;
int to;
double len;
} // eEdgeCla
class GraphPanel extends Panel implements Runnable {
Box box;
int nnodes;
Node nodes[] = new Node[100];
int nedges;
Edge edges[] = new Edge[200];
Thread relaxer;
boolean showit;
boolean random;
GraphPanel(Box box) {
this.box = box;
} //ebox
int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
//if (nodes.lbl.equals(lbl)) {
if (nodes.lbl.equals(lbl)) {
return i;
return addNode(lbl);
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
return nnodes++;
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
public void run() {
int i3=0;
while (true) {
relax();
if (random && (Math.random() < 0.03)) {
Node n = nodes[(int) (1 * nnodes) ]; // no
if (!n.fixed) {
n.x += (100*0.02) - 50;
n.y += (100*0.02) - 50; //
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
break;
i3++;
} //ew
} // epublrun()
synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
//Edge e = edges;
Edge e = edges[i];
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
//double f = (edges.len - len) / (len * 3) ;
double f = (edges[i].len - len) / (len * 3) ;
double dx = f * vx;
double dy = f * vy;
nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
} //efo
for (int i = 0 ; i < nnodes ; i++) {
//Node n1 = nodes[i];
Node n1 = nodes[i];
double dx = 0;
double dy = 0;
for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += 0.02;
dy += 0.02;
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
} //ef3a
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
} //ef3
Dimension d = size();
// f4
for (int i = 0 ; i < nnodes ; i++) {
//Node n = nodes;
Node n = nodes[i];
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
n.dx /= 2;
n.dy /= 2;
repaint();
Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;
final Color fixedColor = Color.green;
final Color selectColor = Color.gray;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(200, 90, 50);
final Color showitColor = Color.gray;
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.orange;
final Color arcColor3 = Color.blue;
public void paintNode( Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
String doit = n.lbl.replace('x','/');
g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
} // epa
public synchronized void update(Graphics g) {
Dimension d = size();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
//Edge e = edges;
Edge e = edges[i];
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);
if (showit) {
String lbl = String.valueOf(len);
offgraphics.setColor(showitColor);
offgraphics.drawString("href= http://localhost:"+lbl, x1 + (x2-x1)/2, y1 + (y2-y1)/2);
offgraphics.setColor(edgeColor);
} //ef5
FontMetrics fm = offgraphics.getFontMetrics();
for (int i = 0 ; i < nnodes ; i++) {
//paintNode( offgraphics, nodes, fm); //or
paintNode( offgraphics, nodes[i], fm); //or
g.drawImage(offscreen, 0, 0, null);
public synchronized boolean mouseDown(Event evt, int x, int y) {
double bestdist = Double.MAX_VALUE;
for (int i = 0 ; i < nnodes ; i++) {
//Node n = nodes;
Node n = nodes[i];
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
pickfixed = pick.fixed;
pick.fixed = true;
pick.x = x;
pick.y = y;
repaint();
return true;
public synchronized boolean mouseDrag(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
repaint();
return true;
} //e-pubsyncmousedrag
public synchronized boolean mouseUp(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
pick.fixed = pickfixed;
pick = null;
repaint();
return true;
public void start() {
relaxer = new Thread(this);
relaxer.start();
public void stop() {
relaxer.stop();
public class Box extends Applet {
GraphPanel panel;
public void init() {
setLayout(new BorderLayout());
panel = new GraphPanel(this);
add("Center", panel);
Panel p = new Panel();
add("South", p);
p.add(new Button("Reposition"));
p.add(new Button("NewUrl"));
p.add(new Checkbox("Showit"));
String edges = getParameter("edges"); // putinli
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) { int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
} //ef8
Dimension d = size();
String center = getParameter("center");
if (center != null){
Node n = panel.nodes[panel.findNode(center)];
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
} // eif
} // ep
public void start() {
panel.start();
public void stop() {
panel.stop();
public boolean action(Event evt, Object arg) {
if (arg instanceof Boolean) {
if (((Checkbox)evt.target).getLabel().equals("Showit")) {
panel.showit = ((Boolean)arg).booleanValue();
}// e-
else {
panel.random = ((Boolean)arg).booleanValue();
return true;
} // e-if instof bool
if ("Reposition".equals(arg)) {
Dimension d = size();
for (int i = 0 ; i < panel.nnodes ; i++) {
//Node n = panel.nodes;
Node n = panel.nodes[i];
if (!n.fixed) {
n.x = 10 + (d.width-20)*Math.random();
n.y = 10 + (d.height-20)*Math.random();
} //ei
} //ef9
return true;
} //eif scram
if ("NewUrl".equals(arg)) {
Dimension d = size();
URL url = getCodeBase();
try {
getAppletContext().showDocument( new URL(url+"main.htm"), "_blank" );
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
} catch(MalformedURLException e) {
showStatus("814 URL not found");
for (int i = 0 ; i < panel.nnodes ; i++) {
//Node n = panel.nodes;
Node n = panel.nodes[i];
if (!n.fixed) {
n.x += (80*0.02) - 40;
n.y += (80*0.02) - 40;
return true;
} //ei
return false; -
Floating "boxes" applet with drag events need ckick events
I Have an applet cobbled from the net & modified. Is works but needs one major event added. It draws "Graphics.drawline" boxes with a text "String" inside each box ( the text string represents an URL location). These "boxes" are objects which are "draggable to other locations on canvas & therefore can be independently positioned by user. Each box redraws itself periodically to a slightly different screen location & becomes stationary after a 5 or 6 seconds. The point is, all of this "drag & mobility" behavior must remain intact & is not part of the "problem task".
Task: Need to have an "event" behavior added in one of two ways ( or a 3rd way if there is another ) whichever is quickest/ easiest. "Clickable mouse events" must be added to each box. ( boxes are built in a loop so adding to one will add to other locations & create as many "buttons" as there are boxes) . At each box's location, clicking one box should be an event which fires & clicking a different box should be a separate event which fires. Separate , so that URL location can be "hotlinked" to each box. That URL is currently displayed in the boxes (visible when running applet).
1st possible solution: Exchange these "boxes" which appear on canvas into clickable event "Graph panel.buttons" ( for example or some other clickable object) which maintains existing "drag" behavior of boxes. These buttons must each have "clickability" with mouse events to enable placing "getAppletContext. showDocument()" code with these events ( e.g., "hotlinked" to http locations).
or
2nd possible solution:. The drawstring boxes are currently dead string text with no event model other than the "drag" feature associated with each box. Must add an additional mouse event behavior to existing boxes so they are "clickable" ( or text inside is clickable) and can then execute "showDocument()" URL when clicked independently.
Maybe there is a #3. I don't know what that would be. Open to try anything without losing the drag & placement mobility of existing boxes.
These "boxes" could be images, or event buttons - doesnt matter.
Not sure if #2 is possible & have not been able to accomplish #1. Must stay within existing AWT framework so IE browsers can run it natively ( which of course IE cannot run Swing graphics unless a Sun plugin loaded ).
Applet is a single file ( creating 4 classes).
html file (which invokes it) passes a string param which is broken into above noted URL strings in each box.
Running this applet, you see a "button" event ( at base of canvas labeled "NewUrl" ) which pops up an url location when clicked ( using "showdocument"). This button is not attached to locations or text of each box object ( which is the "task" to accomplish) . The button does represent the kind of event behavior which each "box" should have when task is achieved. So the box can be exchanged with buttons or the boxes can be imbued with events to hyperlink like a button.
In spirit of solution #1, here is the bonehead attempt I tried which did not work: copied entire "if" block of logic from the button event (sited in preceding paragraph) into region of code which builds boxes ( "for" loop of "drawstring" method).
"g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());"
I copied all the "if" block of logic for button creation into the area immediately after the above line ( for loop which builds the boxes). Hoping that I could create buttons with events, along with all the boxes (which are getting created using "drawstring" above in a "for" loop). These "buttons" must also have positioning info of each box to appear in different locations on the canvas. Positioning data is not in that "if" block of code but it would have been a start to get the multiple buttons created ( even if all drawn in one spot). The "if" code block I've provieded for an example begins with the line:
" if ("NewUrl".equals(arg)) { "
and ends with with lines:
" return true; "
" } " //< -- end of above if block
This full "if" block can be seen in the listing below:
This "if" block creates the "NewUrl" button. Of course, I got a bunch of errors when I tried to copy this block to the above location:
variable: "arg" "not found in class GraphPanel".
methods: "getcodebase, showstatus, getappletcontext()"
"not found in class GraphPanel".
----------- The applet code in total follows next
Here are both the java & htm complete source.
import java.net.MalformedURLException;
import java.net.URL;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
class Node {
double x;
double y;
double dx;
double dy;
boolean fixed;
String lbl;
class Edge {
int from;
int to;
double len;
} // eEdgeCla
class GraphPanel extends Panel implements Runnable {
Box box;
int nnodes;
Node nodes[] = new Node[100];
int nedges;
Edge edges[] = new Edge[200];
Thread relaxer;
boolean showit;
boolean random;
GraphPanel(Box box) {
this.box = box;
} //ebox
int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
if (nodes.lbl.equals(lbl)) {
return i;
return addNode(lbl);
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
return nnodes++;
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
public void run() {
int i3=0;
while (true) {
relax();
if (random && (Math.random() < 0.03)) {
Node n = nodes[(int) (1 * nnodes) ]; // no
if (!n.fixed) {
n.x += (100*0.02) - 50;
n.y += (100*0.02) - 50; //
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
break;
i3++;
} //ew
} // epublrun()
synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges;
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
double f = (edges.len - len) / (len * 3) ;
double dx = f * vx;
double dy = f * vy;
nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
} //efo
for (int i = 0 ; i < nnodes ; i++) {
Node n1 = nodes;
double dx = 0;
double dy = 0;
for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += 0.02;
dy += 0.02;
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
} //ef3a
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
} //ef3
Dimension d = size();
// f4
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes;
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
n.dx /= 2;
n.dy /= 2;
repaint();
Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;
final Color fixedColor = Color.green;
final Color selectColor = Color.gray;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(200, 90, 50);
final Color showitColor = Color.gray;
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.orange;
final Color arcColor3 = Color.blue;
public void paintNode( Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
String doit = n.lbl.replace('x','/');
g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
} // epa
public synchronized void update(Graphics g) {
Dimension d = size();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
Edge e = edges;
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);
if (showit) {
String lbl = String.valueOf(len);
offgraphics.setColor(showitColor);
offgraphics.drawString("href= http://localhost:"+lbl, x1 + (x2-x1)/2, y1 + (y2-y1)/2);
offgraphics.setColor(edgeColor);
} //ef5
FontMetrics fm = offgraphics.getFontMetrics();
for (int i = 0 ; i < nnodes ; i++) {
paintNode( offgraphics, nodes, fm); //or
g.drawImage(offscreen, 0, 0, null);
public synchronized boolean mouseDown(Event evt, int x, int y) {
double bestdist = Double.MAX_VALUE;
for (int i = 0 ; i < nnodes ; i++) {
Node n = nodes;
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
pickfixed = pick.fixed;
pick.fixed = true;
pick.x = x;
pick.y = y;
repaint();
return true;
public synchronized boolean mouseDrag(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
repaint();
return true;
} //e-pubsyncmousedrag
public synchronized boolean mouseUp(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
pick.fixed = pickfixed;
pick = null;
repaint();
return true;
public void start() {
relaxer = new Thread(this);
relaxer.start();
public void stop() {
relaxer.stop();
public class Box extends Applet {
GraphPanel panel;
public void init() {
setLayout(new BorderLayout());
panel = new GraphPanel(this);
add("Center", panel);
Panel p = new Panel();
add("South", p);
p.add(new Button("Reposition"));
p.add(new Button("NewUrl"));
p.add(new Checkbox("Showit"));
String edges = getParameter("edges"); // putinli
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) { int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
} //ef8
Dimension d = size();
String center = getParameter("center");
if (center != null){
Node n = panel.nodes[panel.findNode(center)];
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
} // eif
} // ep
public void start() {
panel.start();
public void stop() {
panel.stop();
public boolean action(Event evt, Object arg) {
if (arg instanceof Boolean) {
if (((Checkbox)evt.target).getLabel().equals("Showit")) {
panel.showit = ((Boolean)arg).booleanValue();
}// e-
else {
panel.random = ((Boolean)arg).booleanValue();
return true;
} // e-if instof bool
if ("Reposition".equals(arg)) {
Dimension d = size();
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes;
if (!n.fixed) {
n.x = 10 + (d.width-20)*Math.random();
n.y = 10 + (d.height-20)*Math.random();
} //ei
} //ef9
return true;
} //eif scram
if ("NewUrl".equals(arg)) {
Dimension d = size();
URL url = getCodeBase();
try {
getAppletContext().showDocument( new URL(url+"main.htm"), "_blank" );
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
} catch(MalformedURLException e) {
showStatus("814 URL not found");
for (int i = 0 ; i < panel.nnodes ; i++) {
Node n = panel.nodes;
if (!n.fixed) {
n.x += (80*0.02) - 40;
n.y += (80*0.02) - 40;
return true;
} //ei
return false;
-----------------------htm file to launch------------------------------
<html>
<head>
<title>R
</title>
</head>
<body>
<h3>
<center>
R
</center>
</h3>
I
<b>
</b>
<table border = 1>
<td>De<td>Test List<tr>
<td>N <td><tr>
<td>N <td><tr>
</table>
<b>view </b>
<applet code="Box.class" CODEBASE=. width=1000 height=600
ALT="Test ">
<param name=edges value="http:xxabc.htm-http:xxnet.htm,http:xxthis.htm-http:xx.comet.htm,http:xxnewsighting.htm-http:xxstar.htm,http:xxmoon.htm-http:xxNeptune.htm">
<hr>
</applet>
</b>
<p>
<table border = 1>
<tr>
<tr>
</table>
</html>
</body>
instructions to compile :
0 : The discussion becomes easy to follow after 1st compiling
& viewing the applet.
1. : cut out applet code.
2. : the post somehow deleted all references to "" <--- HERE
see, the data has been deleted again as I preview this post.
( that "" should contain an "i" array increment argument:
"open square bracket" "i" "close square bracket" ) array
so "javac Box.java" will get 10 errors. These "[" "i" "]"
array args must be replaced to compile the code.
3. : All array variables inside the 10 "for" loops ( the bare words
"edges" and "nodes" ) without array increment "i" should
read "edges" "[" "i" "]" & "nodes" "[" "i" "]".
The 10 location lines are approx:
line #65, #129, #136, #149, #195, #283, #311, #331, #477, #522
4. : These 10 edits reqresent a missing "i" to all 10 for loop arrays.
for eddges & nodes. fix this & javac Box.java" will get
4 class files.
5. : cut "Box.htm" from post & do "appletviewer Box.htm"
or put in an apache "htdoc" or tomcat "servlet" http delivered
directory & call "http://localhost/Box.htm.
6. : of course, selecting the event button "NewUrl" will not
work in appletviewer but will work in an http web location.
7. : post your questions to problem or fixes to problem as I'm
monitoring closely. TIA.Thanks for code post tip to fix array index deletion problem.
Here is code reposted using "code" delimiters which will
compile straight out of cut/paste.
import java.net.MalformedURLException;
import java.net.URL;
import java.net.*;
import java.util.*;
import java.awt.*;
import java.applet.Applet;
import java.applet.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
class Node {
double x;
double y;
double dx;
double dy;
boolean fixed;
String lbl;
class Edge {
int from;
int to;
double len;
} // eEdgeCla
class GraphPanel extends Panel implements Runnable {
Box box;
int nnodes;
Node nodes[] = new Node[100];
int nedges;
Edge edges[] = new Edge[200];
Thread relaxer;
boolean showit;
boolean random;
GraphPanel(Box box) {
this.box = box;
} //ebox
int findNode(String lbl) {
for (int i = 0 ; i < nnodes ; i++) {
//if (nodes.lbl.equals(lbl)) {
if (nodes.lbl.equals(lbl)) {
return i;
return addNode(lbl);
int addNode(String lbl) {
Node n = new Node();
n.x = 10 + 380*Math.random();
n.y = 10 + 380*Math.random();
n.lbl = lbl;
nodes[nnodes] = n;
return nnodes++;
void addEdge(String from, String to, int len) {
Edge e = new Edge();
e.from = findNode(from);
e.to = findNode(to);
e.len = len;
edges[nedges++] = e;
public void run() {
int i3=0;
while (true) {
relax();
if (random && (Math.random() < 0.03)) {
Node n = nodes[(int) (1 * nnodes) ]; // no
if (!n.fixed) {
n.x += (100*0.02) - 50;
n.y += (100*0.02) - 50; //
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
break;
i3++;
} //ew
} // epublrun()
synchronized void relax() {
for (int i = 0 ; i < nedges ; i++) {
//Edge e = edges;
Edge e = edges[i];
double vx = nodes[e.to].x - nodes[e.from].x;
double vy = nodes[e.to].y - nodes[e.from].y;
double len = Math.sqrt(vx * vx + vy * vy);
//double f = (edges.len - len) / (len * 3) ;
double f = (edges[i].len - len) / (len * 3) ;
double dx = f * vx;
double dy = f * vy;
nodes[e.to].dx += dx;
nodes[e.to].dy += dy;
nodes[e.from].dx += -dx;
nodes[e.from].dy += -dy;
} //efo
for (int i = 0 ; i < nnodes ; i++) {
//Node n1 = nodes[i];
Node n1 = nodes[i];
double dx = 0;
double dy = 0;
for (int j = 0 ; j < nnodes ; j++) {
if (i == j) {
continue;
Node n2 = nodes[j];
double vx = n1.x - n2.x;
double vy = n1.y - n2.y;
double len = vx * vx + vy * vy;
if (len == 0) {
dx += 0.02;
dy += 0.02;
} else if (len < 100*100) {
dx += vx / len;
dy += vy / len;
} //ef3a
double dlen = dx * dx + dy * dy;
if (dlen > 0) {
dlen = Math.sqrt(dlen) / 2;
n1.dx += dx / dlen;
n1.dy += dy / dlen;
} //ef3
Dimension d = size();
// f4
for (int i = 0 ; i < nnodes ; i++) {
//Node n = nodes;
Node n = nodes[i];
if (!n.fixed) {
n.x += Math.max(-5, Math.min(5, n.dx));
n.y += Math.max(-5, Math.min(5, n.dy));
if (n.x < 0) {
n.x = 0;
} else if (n.x > d.width) {
n.x = d.width;
if (n.y < 0) {
n.y = 0;
} else if (n.y > d.height) {
n.y = d.height;
n.dx /= 2;
n.dy /= 2;
repaint();
Node pick;
boolean pickfixed;
Image offscreen;
Dimension offscreensize;
Graphics offgraphics;
final Color fixedColor = Color.green;
final Color selectColor = Color.gray;
final Color edgeColor = Color.black;
final Color nodeColor = new Color(200, 90, 50);
final Color showitColor = Color.gray;
final Color arcColor1 = Color.black;
final Color arcColor2 = Color.orange;
final Color arcColor3 = Color.blue;
public void paintNode( Graphics g, Node n, FontMetrics fm) {
int x = (int)n.x;
int y = (int)n.y;
g.setColor((n == pick) ? selectColor : (n.fixed ? fixedColor : nodeColor));
int w = fm.stringWidth(n.lbl) + 10;
int h = fm.getHeight() + 4;
g.fillRect(x - w/2, y - h / 2, w, h);
g.setColor(Color.black);
g.drawRect(x - w/2, y - h / 2, w-1, h-1);
String doit = n.lbl.replace('x','/');
g.drawString(doit, x - (w-10)/2, (y - (h-4)/2) + fm.getAscent());
} // epa
public synchronized void update(Graphics g) {
Dimension d = size();
if ((offscreen == null) || (d.width != offscreensize.width) || (d.height != offscreensize.height)) {
offscreen = createImage(d.width, d.height);
offscreensize = d;
offgraphics = offscreen.getGraphics();
offgraphics.setFont(getFont());
offgraphics.setColor(getBackground());
offgraphics.fillRect(0, 0, d.width, d.height);
for (int i = 0 ; i < nedges ; i++) {
//Edge e = edges;
Edge e = edges[i];
int x1 = (int)nodes[e.from].x;
int y1 = (int)nodes[e.from].y;
int x2 = (int)nodes[e.to].x;
int y2 = (int)nodes[e.to].y;
int len = (int)Math.abs(Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)) - e.len);
offgraphics.setColor((len < 10) ? arcColor1 : (len < 20 ? arcColor2 : arcColor3)) ;
offgraphics.drawLine(x1, y1, x2, y2);
if (showit) {
String lbl = String.valueOf(len);
offgraphics.setColor(showitColor);
offgraphics.drawString("href= http://localhost:"+lbl, x1 + (x2-x1)/2, y1 + (y2-y1)/2);
offgraphics.setColor(edgeColor);
} //ef5
FontMetrics fm = offgraphics.getFontMetrics();
for (int i = 0 ; i < nnodes ; i++) {
//paintNode( offgraphics, nodes, fm); //or
paintNode( offgraphics, nodes[i], fm); //or
g.drawImage(offscreen, 0, 0, null);
public synchronized boolean mouseDown(Event evt, int x, int y) {
double bestdist = Double.MAX_VALUE;
for (int i = 0 ; i < nnodes ; i++) {
//Node n = nodes;
Node n = nodes[i];
double dist = (n.x - x) * (n.x - x) + (n.y - y) * (n.y - y);
if (dist < bestdist) {
pick = n;
bestdist = dist;
pickfixed = pick.fixed;
pick.fixed = true;
pick.x = x;
pick.y = y;
repaint();
return true;
public synchronized boolean mouseDrag(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
repaint();
return true;
} //e-pubsyncmousedrag
public synchronized boolean mouseUp(Event evt, int x, int y) {
pick.x = x;
pick.y = y;
pick.fixed = pickfixed;
pick = null;
repaint();
return true;
public void start() {
relaxer = new Thread(this);
relaxer.start();
public void stop() {
relaxer.stop();
public class Box extends Applet {
GraphPanel panel;
public void init() {
setLayout(new BorderLayout());
panel = new GraphPanel(this);
add("Center", panel);
Panel p = new Panel();
add("South", p);
p.add(new Button("Reposition"));
p.add(new Button("NewUrl"));
p.add(new Checkbox("Showit"));
String edges = getParameter("edges"); // putinli
for (StringTokenizer t = new StringTokenizer(edges, ",") ; t.hasMoreTokens() ; ) {
String str = t.nextToken();
int i = str.indexOf('-');
if (i > 0) { int len = 50;
int j = str.indexOf('/');
if (j > 0) {
len = Integer.valueOf(str.substring(j+1)).intValue();
str = str.substring(0, j);
panel.addEdge(str.substring(0,i), str.substring(i+1), len);
} //ef8
Dimension d = size();
String center = getParameter("center");
if (center != null){
Node n = panel.nodes[panel.findNode(center)];
n.x = d.width / 2;
n.y = d.height / 2;
n.fixed = true;
} // eif
} // ep
public void start() {
panel.start();
public void stop() {
panel.stop();
public boolean action(Event evt, Object arg) {
if (arg instanceof Boolean) {
if (((Checkbox)evt.target).getLabel().equals("Showit")) {
panel.showit = ((Boolean)arg).booleanValue();
}// e-
else {
panel.random = ((Boolean)arg).booleanValue();
return true;
} // e-if instof bool
if ("Reposition".equals(arg)) {
Dimension d = size();
for (int i = 0 ; i < panel.nnodes ; i++) {
//Node n = panel.nodes;
Node n = panel.nodes[i];
if (!n.fixed) {
n.x = 10 + (d.width-20)*Math.random();
n.y = 10 + (d.height-20)*Math.random();
} //ei
} //ef9
return true;
} //eif scram
if ("NewUrl".equals(arg)) {
Dimension d = size();
URL url = getCodeBase();
try {
getAppletContext().showDocument( new URL(url+"main.htm"), "_blank" );
try {
Thread.sleep(1000);
} catch (InterruptedException e) { }
} catch(MalformedURLException e) {
showStatus("814 URL not found");
for (int i = 0 ; i < panel.nnodes ; i++) {
//Node n = panel.nodes;
Node n = panel.nodes[i];
if (!n.fixed) {
n.x += (80*0.02) - 40;
n.y += (80*0.02) - 40;
return true;
} //ei
return false; -
Javascript embedded in button pl/sql event handler not being executed
Javascript calls not working from pl/sql button event handler. What am I missing? Are specific settings needed to execute javascript from pl/sql proceedures?
Example: Want to toggle target='_blank' off and on in a button pl/sql event handler to open url call in new window & then reset when processing submit is done & the app returns to the form.
portal form button's pl/sql submit handler:
begin
htp.p('<script language=JavaScript>') ;
htp.p('this.form.target="_blank"') ;
htp.p('</script>') ;
PORTAL.wwa_app_module.set_target('http://www.oracle.com') ;
htp.p('<script language=JavaScript>') ;
htp.p('this.form.target="_blank"') ;
htp.p('</script>') ;
end ;
Putting the following in the button's javascript on_click event handler works great:
this.form.target='_blank'
to force opening new window with a call in the button's submit pl/sql code via:
PORTAL.wwa_app_module.set_target('http://www.oracle.com') ;
but then the target='_blank' is left on when the submit is done & we return to the form.
putting the above javascript as a function (called fcn_newpage) elsewhere (e.g., after form opens) & calling in the submit pl/sql with
htp.p('fcn_newpage') ;
also doesn't work.
Metalink thought this was an application issue instead of a bug, so thought I'd see if anyone knows what's going wrong here. (Portal 9.0.4.1)thanks for your discussion of my post.
Please clarify:
"htp.p('fcn_newwindow') sends a string":
What would you suggest the proper syntax for a function fcn_newwindow() call from a pl/sql javascript block that differs from
htp.p('<script language="Javascript">') ;
htp.p('fcn_newwindow');
htp.p('</script>');
or more simply
htp.p('fcn_newwindow') ;
More generally, what I'm trying to figure out is under what conditions javascript is executed, if ever, in the pl/sql of a button (either the submit or custom event handler, depending on the button).
I've seen lots of posts asking how to do a simple htp.p('alert("THIS IS TROUBLE")') ; in a pl/sql event handler for a button on a form, but no description of how this can be done successfully.
In addition to alerts, in my case, I'd like to call a javascript fcn from a pl/sql event handle that would pass a URL (e.g., http://www.oracle.com) where the javascript fcn executed
window.open(URL). The API call to set_target(URL) in pl/sql has no ability to open in a new window, so calling that is inadequate to my needs and I must resort to javascript.
Its clear in the PL/SQL of a button, you can effect form components since p_session..set_target & p_session.get_target set or get the contents of form components.
So to see if javascript ever works, I tried to focus on something simple that only had to set what amounts to an enviromental variable when we returned to the form after a post. I chose to try to change the html value of TARGET from javascript in the PL/SQL button because it doesn't need to be implemented until we finish the post and return to the form.
So I focused on a hack, setting this.form.TARGET='_blank' in the on_click event handler that forced every subsequent URL call or refresh of the form to be a new window. I then wanted to turn off opening new windows once I'd opened the URL call in a new window by setting TARGET='' in the portal form. I can achieve what I want by coding this.form.TARGET='' in the javascript (on_focus, on_change, or on_mousedown, ...) of every form component that might refresh the form. However, that is a ridiculous hack when a simple htp.p('<script>') ; htp.p('this.form.target=""') ; htp.p('</script>') ; at the end of the button's pl/sql event handle should do the same thing reliably if javascript ever works in the pl/sql event handler.
If we didn't have access to form components through p_session calls, I'd assume it was a scope issue (what is available from the pl/sql event handler). But unless my syntax is just off, when, if ever, can javascript be used in a portal form's pl/sql event handler for a button?
if I code a javascript funtion in the forms' pl/sql before displaying form:
htp.p('<script language="JavaScript">') ;
htp.p('function fcn_new_window(URL)') ;
htp.p('window.open(URL)' ) ;
htp.p('</script>') ;
the function can be called from a button's on_click javascript event handler:
fcn_new_window('http://www.oracle.com')
but from the same button's pl/sql submit event handler this call doesn't work: htp.p('fcn_new_window("http://www.oracle.com")')
So my questions remain: Is there other syntax I need, or does javascript ever work properly from the pl/sql of a form button's event handler? If it doesn't work, isn't this a bug that should be fixed by Oracle?
I can probably figure out hacks to make things work the way I need, but executing javascript from pl/sql event handlers seems to be the expected way to affect portal html pages (forms, reports, ...) and it seems not to work as expected. I don't feel I should have to implement hacks for something as simple as calling a javascript function from pl/sql when almost every example I've found in metalink or the forums or Oracle Press's "portal bible" suggests using javascript from pl/sql via the utility htp.p() to effect web page components in portal.
My TAR on the subject, while still open, returned the result basically: "We can reproduce your situation. Everything looks okay to us, but we can't explain how to use javascript where you want or point you to any documentation that would solve your problem or expain why it should not work the way you want it to. We don't feel its a technical issue. Why don't you post the problem on the portal applications forum."
I'm hoping I'm just missing something fundamental and everything will work if I implement it a little differently. So if anyone sees my error, please let me know.
by the way, not sure this is germain, but in reference to your comment:
"redirections in pl/sql procedures give a peculiar result. in a pl/sql procedure, usually, portals give the last redirection statement and ignore anything else coming after it."
if I try to raise an alert:
htp.p('alert("you screwed up")');
return;
in a pl/sql event handler, it still doesn't raise the alert, even though its the last thing implemented in the event handler. But if I set the value of a text box using p_session..set_value_as_string() at the same spot, it correctly sets the text box value when I return to the form. -
Recording User Events (such as pauses) during Quicktime video watching?
Hi everyone,
There's likely to be some way to do this but I spent 1 hour googling and couldn't find anything useful so I thought I'd give this a shot in case any of you have any hints or advice!
I'm interested in embedding a Quicktime video in a webpage and having a client stream it. I want to be able to detect when the client pauses or stops the video, when the client restarts the video, etc. Essentially I'd love to be able to log data every time the user triggers some event (such as by clicking the pause button). I know one can trigger different events using sprites, but I think those are only for inside the Quicktime video itself, not for catching events on the player (such as hitting the pause or stop button).
If anyone knows how this might be possible to do, I'd love to hear about it. I think the Mac OS X server might have some related capabilities, but it's about $500 which is above my budget limit. (I need this capability for a side project)
Thanks a lot!
powerbook Mac OS X (10.4.4)Have you installed any applications to your n95-4 (n958GB) phone, and installed it to either phone or mass memory? The problem only starts occuring after installing applications to phone or mass memory.
I am not sure if the issue starts after an application is isntalled on phone memory or mass memory.
I have duplicated this issue and IT IS A KNOWN PROBLEM WITH THE N95-4. I duplicated the issue on 2 NOKIA N95-4's. If you install an application, lets say for example youtube for mobile and Yahoo GO on phone memory; the video recording will start to pause every 3 or 5 seconds. This only happens when mass memory is used.
The pausing will not occur if you switch to phone memory. There is no fix and I hope nokia is aware of this problem and hopefully they are working on a fix. I hope the next firmware update will include the fix. -
How do I create an Event Handler for an Execute SQL Task in SSIS if its result set is empty
So the precedence on my entire package executing is based on my first SELECT of my Table and an updatable column. If that SELECT results in an empty result set, how do I create an Event Handler to handle an empty result set?
A Newbie to SSIS.
I appreciate your review and am hopeful for a reply.
PSULionRPDepends upon what you want to do in the eventhandler. this is what you can do
Store the result set from the Select to a user variable.
Pass this user variable to a Script task.
In the Script task do whatever you want to do including failing the package this can be done by failing the script task, which in turns fails the package. something like
Dts.TaskResult = Dts.Results.Failure
Abhinav http://bishtabhinav.wordpress.com/ -
Need help in executing the plsql code
hi guys,
below is the structure of the procedure i have created.
CREATE OR REPLACE PROCEDURE sp_R_TrgComparisonReport
DataDate IN DATE DEFAULT NULL,
Business IN OUT VARCHAR2,
Sector IN VARCHAR2 DEFAULT NULL,
SubSector IN VARCHAR2 DEFAULT NULL,
CUSIP IN OUT VARCHAR2,
DEALTICKER IN OUT VARCHAR2,
sFloatInd IN VARCHAR2 DEFAULT NULL,
RCT1 IN OUT GLOBALPKG.RCT1
AS
tmpBusCount INT;
tmpStartCount INT;
tmpEndCount INT;
tmpBusName VARCHAR2(30);
tmpAlterTable VARCHAR2(500);
tmpUpdateStr VARCHAR2(2000);
tmpFinalStr1 VARCHAR2(1000);
tmpFinalStr2 VARCHAR2(1000);
Days INT;
tmpFinalStrCMBS VARCHAR2(2000);
tmpCusip VARCHAR2(100);
tmpColName VARCHAR2(30);
tmpFinalStr4 VARCHAR2(1000);
tmpCMBSTable VARCHAR2(500);
tmpEndCount_CMBS INT;
tmpRating3str VARCHAR2(1000);
Deletestr VARCHAR2(1000);
ipos INT;
CALLINGPROCASSIGNTEMP1 VARCHAR2(31);
strSector VARCHAR2(2000);
CALLINGPROCASSIGNTEMP2 VARCHAR2(29);
strSubSector VARCHAR2(2000);
CALLINGPROCASSIGNTEMP3 VARCHAR2(32);
CALLINGPROCASSIGNTEMP4 VARCHAR2(28);
CALLINGPROCASSIGNTEMP5 VARCHAR2(40);
CALLINGPROCASSIGNTEMP6 VARCHAR2(34);
CALLINGPROCASSIGNTEMP7 VARCHAR2(36);
SCOPE_IDENTITY_VARIABLE INT;
G1_COL1 TMPHOLDINGTRIGGER.DEALTICKER%TYPE;
G1_ROWID ROWID;
G2_COL1 TMPHOLDINGTRIGGER.CURRENT_CE%TYPE;
G2_ROWID ROWID;
G3_COL1 TMPHOLDINGTRIGGER.SP_RATING%TYPE;
G3_ROWID ROWID;
G4_COL1 TMPHOLDINGTRIGGER.MOODY_RATING%TYPE;
G4_ROWID ROWID;
G5_COL1 TMPHOLDINGTRIGGER.FITCH_RATING%TYPE;
G5_ROWID ROWID;
G6_COL1 TMPHOLDINGTRIGGER.DEAL_DESC%TYPE;
G6_ROWID ROWID;
G7_COL1 TMPHOLDINGTRIGGER.CUSIP_COMMENTARY%TYPE;
G7_ROWID ROWID;
G8_COL1 TMPHOLDINGTRIGGER.CUSIP_RANKING_DESC%TYPE;
G8_ROWID ROWID;
G9_COL1 TMPHOLDINGTRIGGER.BB_DEALTICKER%TYPE;
G9_ROWID ROWID;
G10_COL1 TMPHOLDINGTRIGGER.CLASS%TYPE;
G10_ROWID ROWID;
G11_COL1 TMPHOLDINGTRIGGER.RANKING%TYPE;
G11_ROWID ROWID;
CALLINGPROCASSIGNTEMP8 VARCHAR2(34);
CALLINGPROCASSIGNTEMP9 VARCHAR2(39);
CALLINGPROCASSIGNTEMP10 VARCHAR2(43);
G12_COL1 TMPHOLDINGTRIGGER.INTEX_STATUSCODE%TYPE;
G12_ROWID ROWID;
G13_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G13_ROWID ROWID;
G14_COL1 TMPHOLDINGTRIGGER.INTEX_STATUSCODE%TYPE;
G14_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G14_ROWID ROWID;
G15_COL1 TMPHOLDINGTRIGGER.INTEX_STATUSCODE%TYPE;
G15_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G15_ROWID ROWID;
G16_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G16_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G16_ROWID ROWID;
G17_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G17_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G17_ROWID ROWID;
G18_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G18_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G18_ROWID ROWID;
G19_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G19_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G19_ROWID ROWID;
G20_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G20_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G20_ROWID ROWID;
G21_COL1 TMPHOLDINGTRIGGER.INTEX_STATUSCODE%TYPE;
G21_COL2 TMPHOLDINGTRIGGER.COMMENT_%TYPE;
G21_ROWID ROWID;
G22_COL1 TMPHOLDINGTRIGGER.USER_STATUSCODE%TYPE;
G22_ROWID ROWID;
the procedure got compiled successfully.
and i am trying to execute this procedure in this way.
1 declare x refcursor;
2 exec sp_R_TrgComparisonReport ('31-DEC-2003','','ABS','ALL','ALL','','ALL');
3* print x
L> /
i am facing errors.
ERROR at line 3:
ORA-06550: line 3, column 7:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
:= . ( @ % ; not null range default character
basically i am appsdba so dont have much exposure on this
can some one please help me out
thanks in advance.
let me know if you need the complete code
thanks,
Vamshi.Dand i am trying to execute this procedure in this way.
declare x refcursor;
2 exec sp_R_TrgComparisonReport ('31-DEC-2003','','ABS','ALL','ALL','','ALL');
3* print xIn SQL*plus you would run it like this:
SQL> var x refcursor
SQL> exec exec sp_R_TrgComparisonReport ('31-DEC-2003','','ABS','ALL','ALL','','ALL')
SQL> print xOf course that last command is going to hurl an invalid handle exception because you don't appear to have a ref cursor as an argument in your procedure's signature.
Unless that is what is meant by RCT1 IN OUT GLOBALPKG.RCT1. In which case you need to reference your variable there:
SQL> exec exec sp_R_TrgComparisonReport ('31-DEC-2003','','ABS','ALL','ALL','',:x) If that last argument is not the ref cursor then your call is going to fail because we can't use literals as OUT parameters.
Cheers, APC
Blog : http://radiofreetooting.blogspot.com/
Maybe you are looking for
-
XML PUBLISHER ERROR :Environment will now switch to UTF-8 code-set.
Hello , I have developed a new XML Publisher report and when I submit request that is coming as Completed Warning Status and the Log file is given Below. When I consulted My DBA , he told me everything is fine and it is problem either in template fil
-
Restore files from time machine after new install
In my office one of my iMac's suffered a complete system crash. I am reinstalling OS X Lion as I write this post. The iMac was backed up to an external hard drive using time machine. After the new install of Lion how do I grab my user files from t
-
Comcast techs told me to try IE, and I could get to my email that way but I can't read emails with Mozilla. This started with the PDF file that just came in blank and wouldn't let me close it. As you can tell, I'm not a technical person at all.
-
Distributing LLB and shared libraries - making previous versions
I'm fairly new to labview, so I hope these questions aren't too simple. I have a product that I have designed a set of labview VIs and custom controls for and need to distribute them to customers (CD included with product). I would like only the 5 or
-
Error when execute the "Process Bid invitation" - URGENT
When we are creating a bid invitation the system show us the following message: <b>Enter exactly one partner of type Responsible Employee</b> Could somebody help us with this issue? Thank you very much Best regards Fabiana compagno