Creation Date: Jul 04, 2001 Last Update: Jul 31, 2001 Version: 1.0
0 0... 1 1...3 1.1... 3 1.2... 3 1.3... 3 2...4 2.1 C/S... 4 2.2 WEB... 5 2.3 WEB... 5 2.4 JAVABEAN... 6 3 JAVABEAN...7 3.1... 7 3.2 JDEVELOPER... 7 3.3 JDK... 18 4 FORMS... 19 4.1... 19 4.2... 19 4.3... 20 4.4... 22 4.5... 23 4.6... 24 5 WEB... 26 5.1... 26 5.2 JAR... 26 5.3 JAR... 27 5.4 FORMS SERVICES... 31 5.5... 31 6... 33 6.1... 33 7... 34 1
7.1... 34 7.2... 36 7.3... 36 2
1 1.1 Oracle Forms Developer C/S Web C/S Web C/S Web Java Oracle Forms Developer Web 1.2 Oracle Forms Developer Oracle Forms Developer Oracle Forms Developer 1.3 Oracle Forms Developer Oracle JInitiator Oracle JDeveloper 3.2.3 Oracle9i Application Server Netscape Communicator 4.73 Internet Explorer 5.0 Release 6i Patch5 Forms 6.0.8.13.0 1.1.8.7 1.1.8.10 R1.0.2.1 for Windows NT/2000 3
2 C/S Web Forms Web Forms Web 2.1 C/S Forms 1 C/S Forms Forms.fmx.plx Forms SQL*Net Net8 4
2.2 Web Web Forms 2 Web Forms Web HTTP Forms Services C/S Forms Forms Java Virtual Machine JVM Forms TCP/IP HTTP HTTPS 2.3 Web Web Forms Forms C/S 5
WebForms HOST JavaBean Java 2.4 JavaBean Web Forms Oracle JInitiator JVM JVM Forms UI Java JavaBean JavaBean Forms Java Java Forms JavaBean Web Bean Bean JavaBean Web JVM 6
3 JavaBean 3.1 Developer TEXT_IO TEXT_IO TEXT_IO JavaBean FOPEN GET_LINE FCLOSE 3.2 JDeveloper Java Oracle JDeveloper JavaBean JDeveloper Oracle Forms Pluggable Java Component PJC Forms JavaBean Oracle JDeveloper 3.2.3 Oracle JDeveloper JDeveloper Oracle JDeveloper 3.2.3 JDeveloper Oracle JDeveloper 7
JavaBean 8
Text_IO.jpr Oracle Forms Java 9
oracle.forms.demos 10
11
PJC PJC Text_IO JavaBean oracle.forms.ui.vtextfield Text_IO.java Text_IO Text_IO.java JavaBean // Copyright (c) 2001 Oracle Japan package oracle.forms.demos; import oracle.forms.ui.*; /** * PJC * <P> 12
* @author Oracle Taro */ public class Text_IO extends VTextField { /** * */ public Text_IO() { super(); try { jbinit(); catch (Exception e) { e.printstacktrace(); /** * */ private void jbinit() throws Exception { JavaBean Forms JavaBean Forms JavaBean 3 fopen get_line fclose // JavaBean Forms // fopen private static final ID FOPEN = ID.registerProperty("fopen" ); // get_line private static final ID GET_LINE = ID.registerProperty("get_line"); // fclose private static final ID FCLOSE = ID.registerProperty("fclose" ); 13
setproperty setproperty setproperty public boolean setproperty(id pid, Object value) { if (pid == < >) { try { < > catch (Exception e) { < > e.printstacktrace(); return true; return super.setproperty(pid, value); setproperty fopen value buffer buffer StringTokenizer n if (pid == FOPEN) { try { File filename = new File((String)value); infile = new FileInputStream(fileName); byte[] buffer = new byte[infile.available()]; infile.read(buffer); st = new StringTokenizer(new String(buffer), " n"); catch (Exception e) { System.out.println("Error at FOPEN"); e.printstacktrace(); return true; fopen 14
get_line linedata <<EOF>> if (pid == GET_LINE) { try { if (st.hasmoretokens()) { linedata = st.nexttoken(); else { linedata = "<<EOF>>"; this.settext(linedata); catch (Exception e) { System.out.println("Error at GET_LINE"); e.printstacktrace(); return true; get_line fclose if (pid == FCLOSE) { try { infile.close(); linedata = null; this.settext(linedata); catch (Exception e) { System.out.println("Error at FCLOSE"); e.printstacktrace(); fclose Text_IO.java Text_IO.java package oracle.forms.demos; import oracle.forms.ui.*; import oracle.forms.properties.id; import java.awt.*; import java.io.*; import java.io.file; import java.io.fileinputstream; import java.util.stringtokenizer; 15
/** * PJC * <P> * @author Oracle Taro * * TEXT_IO * 1. FOPEN -- * 2. GET_LINE -- * 3. FCLOSE -- */ public class Text_IO extends VTextField { // JavaBean Forms // fopen private static final ID FOPEN = ID.registerProperty("fopen" ); // get_line private static final ID GET_LINE = ID.registerProperty("get_line"); // fclose private static final ID FCLOSE = ID.registerProperty("fclose" ); FileInputStream infile; // String linedata; // StringTokenizer st; // /** * */ public Text_IO() { super(); try { jbinit(); catch (Exception e) { e.printstacktrace(); /** * */ private void jbinit() throws Exception { public boolean setproperty(id pid, Object value) { // buffer if (pid == FOPEN) { try { File filename = new File((String)value); infile = new FileInputStream(fileName); byte[] buffer = new byte[infile.available()]; infile.read(buffer); st = new StringTokenizer(new String(buffer), " n"); 16
catch (Exception e) { System.out.println("Error at FOPEN"); e.printstacktrace(); return true; // buffer linedata // <<EOF>> if (pid == GET_LINE) { try { if (st.hasmoretokens()) { linedata = st.nexttoken(); else { linedata = "<<EOF>>"; this.settext(linedata); catch (Exception e) { System.out.println("Error at GET_LINE"); e.printstacktrace(); return true; // linedata infile if (pid == FCLOSE) { try { infile.close(); linedata = null; this.settext(linedata); catch (Exception e) { System.out.println("Error at FCLOSE"); e.printstacktrace(); return super.setproperty(pid, value); Text_IO.java JDeveloper Text_IO.java 17
3.3 JDK JDeveloper JDK Text_IO.java JDK PATH CLASSPATH Text_IO.class c: Text_IO oracle forms demos > cd c: Text_IO oracle forms demos > javac Text_IO.java 18
4 Forms JavaBean Forms Web 4.1 Form Builder C: Text_IO Text_IO.fmb FILE_IO 4.2 TEXT_IO MY_TEXT_IO PACKAGE MY_TEXT_IO IS -- -- my_text_io.fopen( Bean, ) PROCEDURE FOPEN (item_name IN VARCHAR2, in_file_name IN VARCHAR2); -- -- my_text_io.get_line( Bean ); FUNCTION GET_LINE (item_name IN VARCHAR2) RETURN VARCHAR2; -- -- my_text_io.fclose( Bean ); PROCEDURE FCLOSE (item_name IN VARCHAR2); END; MY_TEXT_IO PACKAGE BODY MY_TEXT_IO IS -- in_file_name PROCEDURE FOPEN (item_name IN VARCHAR2, in_file_name IN VARCHAR2) IS BEGIN SET_CUSTOM_PROPERTY(item_name, 1, 'fopen', in_file_name); END; 19
-- <<EOF>> FUNCTION GET_LINE (item_name IN VARCHAR2) RETURN VARCHAR2 IS read_data VARCHAR2(2000); -- BEGIN SET_CUSTOM_PROPERTY(item_name, 1, 'get_line', 'VALUE'); read_data := GET_CUSTOM_PROPERTY(item_name, 1, 'VALUE'); SYNCHRONIZE; RETURN(read_data); END; -- PROCEDURE FCLOSE (item_name IN VARCHAR2) IS BEGIN SET_CUSTOM_PROPERTY(item_name, 1, 'fclose', 'VALUE'); END; END; MY_TEXT_IO 4.3 CONTROL CONTROL Bean Bean Text_IO Bean JavaBean FILE_BEAN Bean oracle.forms.demos.text_io X Y FILE_IO 0 0 1 1 Text_IO JavaBean JavaBean Form 20
21 FILE_NAME Char 100 FILE_IO FILE_NAME READ FILE_IO 70 20 DATA DATA DATA 15 FILE_IO
TEXT_DATA Char 2000 FILE_IO 4.4 NULL; ON-LOGON ON-LOGON CONTROL READ WHEN-BUTTON-PRESSED FILE_NAME DATA TEXT_DATA DECLARE fname TEXT_IO.FILE_TYPE; linebuf varchar2(2000); BEGIN -- IF (:CONTROL.FILE_NAME is NULL) THEN MESSAGE(' '); GO_ITEM('CONTROL.FILE_NAME'); RAISE Form_Trigger_Failure; END IF; GO_BLOCK('DATA'); CLEAR_BLOCK(NO_VALIDATE); -- Web JavaBean IF (GET_APPLICATION_PROPERTY(USER_INTERFACE) = 'WEB') THEN -- my_text_io.fopen('control.file_bean', :control.file_name); -- linebuf := my_text_io.get_line('control.file_bean'); WHILE linebuf!= '<<EOF>>' LOOP :data.text_data := linebuf; NEXT_RECORD; 22
linebuf := my_text_io.get_line('control.file_bean'); END LOOP; -- my_text_io.fclose('control.file_bean'); -- C/S TEXT_IO ELSE fname := TEXT_IO.FOPEN(:control.file_name, 'r'); BEGIN LOOP TEXT_IO.GET_LINE(fname, linebuf); :data.text_data := linebuf; NEXT_RECORD; END LOOP; EXCEPTION WHEN NO_DATA_FOUND THEN TEXT_IO.FCLOSE(fname); END; END IF; FIRST_RECORD; END; C/S 4.5 23
4.6 Form Builder Java VM Web Web Forms Services Form Builder Text_IO.fmb Web Web 24
25
5 Web Web Text_IO Web 5.1 Web Oracle Forms Services Oracle Forms Services $ORACLE_HOME c: oracle 806 5.2 JAR Text_IO JavaBean JAR JAR Text_IO.class c: Text_IO oracle forms demos > path=c: oracle 806 jdk bin;%path% > cd c: Text_IO > jar cfv Text_IO.jar oracle forms demos Text_IO.class JAR adding: oracle/forms/demos/text_io.class (in=2046) (out=1157) (deflated 43%) JAR Text_IO.class Manifest.mf JAR Manifest.mf 26
Manifest.mf 5.3 JAR JavaBean Java JAR JAR JAR JDK1.1 Text_IO.jar Text_IO.jar JDK > javakey cs < > true SCOTT > javakey cs scott true Created identity [Signer]scott[identitydb.obj][trusted] Name conflict. Please remove the identity named scott before adding a new identity with that name. > javakey r < > 27
> javakey r scott Removed scott. JDK > javakey gk < > < > > SCOTT DSA 512 > javakey gk scott DSA 512 Generated DSA keys for scott (strength: 512). cert.txt # issuer.name=scott issuer.cert=0 # subject.name=scott # subject.real.name=scott Tiger # subject.org.unit=development # subject.org=oracle Japan # subject.country=japan # start.date=11 Jul 2001 # end.date=10 Jul 2005 # serial.number=1001 # out.file=text_io.x509 cert.txt > javakey gc cert.txt 28
.x509 Text_IO.x509 Generated certificate from directive file cert.txt. JAR sign.txt # signer=scott cert=1 chain=0 # 8 signature.file=tiger sign.txt JAR > javakey gs sign.txt Text_IO.jar Text_IO.jar.sig JAR Adding entry: META-INF/MANIFEST.MF Creating entry: META-INF/TIGER.SF Creating entry: META-INF/TIGER.DSA Adding entry: oracle/forms/demos/text_io.class Signed JAR file Text_IO.jar using directive file sign.txt. JAR JAR Text_IO.jar Text_IO.jar.sig Text_IO.jar JAR xxx.sf 29
xxx.dsa sign.txt sigunature.file sign.txt sigunature.file.sf.dsa 30
5.4 Forms Services Forms Services JavaBean Forms Services Forms Web JAR JAR Forms Services $ORACLE_HOME FORMS60 java Text_IO.jar HTML Forms HTML Forms Services formsweb.cfg JAR formsweb.cfg $ORACLE_HOME FORMS60 server formsweb.cfg config=text_io [Text_IO] form=text_io.fmx archive=f60web.jar,text_io.jar ;R6i Patch2 archive_jini=f60all_jinit.jar,text_io.jar 5.5 JAR.x509 Oracle JInitiator.x509.x509 <JInitiator > bin C: Program Files Oracle JInitiator 1.1.8.10 bin Text_IO.x509 31
> cd <JInitiator > bin > javakey c < > true > javakey ic < > < > > cd C: Program Files JInitiator 1.1.8.10 bin > javakey c Text_IO true Created identity Text_IO[identitydb.obj][trusted] > javakey ic Text_IO Text_IO.x509 Imported certificate from Text_IO.x509 for Text_IO. An error occured trying to add Text_IO to sun.security.provider.identitydatabase, source file: C: Program Files Oracle JInitiator 1.1.8.10.. identitydb.obj[name conflict] > javakey r < > > javakey r Text_IO Removed Text_IO. 32
6 6.1 5.5 URL URL HTML http://< >/< >/< HTML > http://myserver/dev60html/text_io.htm Forms Services CGI 5.4 Forms Services http://< >/< >/ifcgi60.exe?config=text_io http://myserver/dev60cgi/ifcgi60.exe?config=text_io 33
7 Form JavaBean Java 7.1 JAR JavaBean Java JAR 5.3 JAR JAR JAR JAR 5.5 JAR Java JavaBean Java Java 1. JInitiator Control Panel 1.1.x.x Oracle JInitiator Properties 2. Basic Show Java Console 34
3. Apply Oracle JInitiator Properties Java Java Text_IO.class fopen JAR 35
7.2 Web 4.6 Bean CLASSPATH JAR JAR WinZip Text_IO.jar Text_IO.class oracle forms demos oracle.forms.demos.text_io JDK Oracle JInitiator JDK1.1 JavaBean JDK1.2 JavaBean 7.3 Oracle Forms Services OTN-J http://otn.oracle.co.jp 36
Developer Forms JavaBean Forms JavaBean OTN-J Oracle Developer Application Java JavaBean OTN http://otn.oracle.com JavaBean Java Sample Code Forms Server JavaBean Examples 37
Oracle Oracle8 Oracle8i Net8 38