Sunteți pe pagina 1din 71

MODEL WINDOW ----------------------IF IT IS ACTIVE,NAVIGATION NOT POSSIBLE TO ANY OTHER WINDOW #IT ALWAYS NEESD RESPONSE

MODELESS WINDOW--default --generally used -------------------------IF IT IS ACTIVE,NAVIGATION POSSIBLE TO ANY OTHER WINDOW

CONTENT CANVAS ------------------------ONLY ONE CONTENT CANVAS CAN BE DISPLAYED AT RUN TIME ON ONE APPL WINDOW AT A TIME WHY? --CONTENT CANVAS OCCUPIES THE WHOLE AREA WINDOW OF APPLICATION

STACKED CANVAS ------------------------MORE THAN ONE STACKED CANVAS CAN BE DISPLAYED AT RUN TIME ON ONE APPL WINDOW AT SAME TINE HOW?

CONDITIONAL QUERY --by using default menu ----------------------------------CLICK ON ENTER(QUERY) --ENTER THE COND VALUE INTO THE ITEM --CLICK THE EXECUTE(QUERY)

COMPLEX QUERY COND -----------------------------CLICK ON ENTER(QUERY) --ENTER THE BIND VARIABLE IN ANY ITEM --CLICK ON EXECUTE # IT OPEN A QUERY/WHERE WINDOW --WRITE THE QUERY COND IN THE WINDOW AS REQUIREMENT

--------------------------------------A--

DESIGNING AN APPLICATION BASED ON CONTROL BLOCK ------------------------------------------------CREATE CONTROL BLOCK(manually) --CREATE A CANVAS --PLACE AT LEAST ONE USER --go to item property --go to physical section --go to canvas --select the canvas name INTERACTIVE ITEM ON CANVAS

# TABLE NAME & BLOCK NAME MAY BE --SAME OR --DIFFERENT

CONTROL BLK ----->DATA BLK ------------------------------------GO TO CONTROL BLK PROPERTY --GO TO DATABASE SECTION * DATABASE BLOCK=YES --default

* Query data source type=table --default * Query data source name=<tbl_name> emp

DATA BLK ----->CONTROL BLK * Query data source name=<no any table name>

--------------------------------------------------

HOW TO CREATE GUI ITEM ------------------------------* LIST ITEM * RADIO BUTTON * CHECK BOX ----------------------------------------------------------* LIST ITEM ---------------TYPE OF LIST ITEM --------------------1. POPULIST 2. TLIST 3. COMBO BOX

CREATE TABLE SUPPL ( ID NUMBER(4), NAME VARCHAR2(10), SEX VARCHAR2(1), CATEGORY VARCHAR2(1), LOCAL VARCHAR2(1), COUNTRY VARCHAR2(1), FOREIGN VARCHAR2(1), TAX_TYPE VARCHAR2(3) );

# WHEN WE DELETE THE ITEM FROM CANVAS ,THAT ALSO DELETED FROM BLOCK

1. POPULIST ---------------------CREATE A POPULIST LIST ITEM --DEFINE FOR LIST ITEM 1. ELEMENTS 2. VALUE &

ELEMENTS --VISIBLE TO USER FOR SELECTION AT RUN TIME

VALUE --FOR SELECTED ELEMENTS,THIS VALUE GOES TO COLUMN OF TABLE AFTER COMMIT

# ELEMENT & VALUE MAY BE --SAME OR --DIFFERENT depending on requirement

stps --------GO TO LIST ITEM PROPERTY --CLICK ON ELEMENTS IN LIST --DEFINE * ELEMENT & * VALUES

--DEFAULT VALUE FOR LIST ITEM ------------------------------------------GO TO LIST ITEM PROPERTY --GO TO DATA SECTION --GO TO INITIAL VALUE=S

$$DATE$$

--------------------------------

TLIST -------SCROLL BAR VISIBLE AT RUN TIME,NOT AT DESIGN TIME

--IT IS VISIBLE IF ALL ELEMENTS NOT

DISPLAYED IN TLIST AT RUN TIME

--DEFINE --ELEMENTS --VALUES --GO TO TLIST PROPERTY --CLICK ON ELEMENTS IN LIST

#THE SELECT ELEMENT FROM TLIST ALWAYS

ACTIVATED

RADIO BUTTON -------------------------CREATE RD GRP --CREATE RD BUTTON --DEFINE THE VALUE FOR RD BUTTON --GO TO RD BUTN PROPERTY --RADIO BUTTON VALUE=M/F --DEFINE THE INITIAL VALUE FOR

RADIO GROUP -------------------------------CHECK BOX ----------------CREATE CHK BOX --DEFINE THE VALUE FOR * WHEN CHECK BOX CHECKED * WHEN CHECK BOX UNCHECKED --any one is mandatory --go to chk box propertry

# HOW TO REMOVE ANY ITEM FROM CANVAS WHICH SHOULD BE AT OBJ NVG

--SEND THE ITEM TO PRE-DEFINED CANVAS

<NULL>

HOW TO MAKE AN ITEM NON-INTERACTIVE -------------------------------------------DISPLAY ITEM OR

--only for text item --ENABLED=YES/NO --select NO --default YES

for text_item GUI ITEM

-----------------------------------------------------

LOV--list of values ------- IT IS A DATA STRUCTURE LIKE A TBALE --IT GET DATA FROM RECORD GROUP #RECORD GROUP --IT IS ALSO A DATA STRUCTURE LIKE A TABLE

--IT POPULATE DATA TO --LOV --LIST_ITEM --RGP CAN ALSO BE USED AS PARAMETER FOR --REPORTS OR --GRAPHICS to pass a bunch of values at a time

TYPE OF RECORD GROUP --------------------------1. QUERY-BASED RGP 2. NON-QUERY BASED RGP 3. STATIC RGP

1. QUERY-BASED RGP ------------------------- A QUERY IS ASSOCIATED TO THE RGP --IT IS DYNAMIC --IT CAN BE CREATED AT # DESIGN TIME--object navigator # RUN TIME --using program --it is generally used

2. NON-QUERY BASED RGP ---------------------------------NO QUERY ASSOCIATED TO THE RGP --IT MAY BE * DYNAMIC OR * STATIC --IT CAN BE CREATED AT # RUN TIME ONLY # DESIGN TIME --not allowed

3. STATIC RGP ----------------NO QUERY ASSOCIATED WITH RGP --IT IS ALWAYS * STATIC --IT CAN BE CREATED AT # DESGIN TIME ONLY # RUN TIME --not allowed

NOTE ---------A LOV CAN BE ATTACHED TO ONLY ONE RGP --AT RUN TIME,WE CAN ATTACH SAME LOV TO TIME TO ONLY ONE RGP AT A TIME DIFFERENT RGP BUT AT A

--MORE THAN ONE LOV CAN BE ATTACHED TO --RGP & LOV CAN BE CREATED SEPARATELY TOGETHER --LOV CAN BE CREATED BY * WIZARD--generally used * MANUALLY # WHEN WE CREATE LOV THROUGH WIZARD AND BASED ON QUERY,automatically a RGP --this technique is generally used

SAME RGP AND WILL BE ATTACHED

created and attached to the LOV

USE OF LOV -----------1. HELP BOX 2. ASSIGNMENT 3. VALIDATION

-----------------------------------------------HOW TO CREATE A LOV WIZARD(based on query) ----------------------------------------------DB CLICK ON LOV AT OBJ NVG --SELECT (based on query) --WRITE THE RGP QUERY SELECT * FROM DEPT

--ATTACH LOV TO ITEM --GO TO ITEM PROPERTY --GO TO LOV SECTION --SELECT THE LOV NAME

HOW TO INVOKE LOV WHICH IS ATTACHED TO ITEM

PRESS F9 when control on the item

--to customise the look of lov --go to lov property --design as requirement FONT COLOR

HOW TO DO ASSIGNMENT -------------------------------GO TO PROPERTY OF LOV --GO TO COLUMN MAPPING PROPERTIES --DEFINE THE

# RETURN ITEM VALUE <BLK_NAME>.<ITEM_NAME> EMP.DEPTNO OR --click on browse & select the item name from list

HOW TO DO VALIDATION -------------------------------GO TO ITEM PROPERTY(LOV ATTACHED) --GO TO LOV SECTION --VALIDATE FROM LIST=YES

-------------------------------

SEARCHING TECHNIQUE IN LOV -------------------------------------1. FIND method 2. PANEL method

----------------------------------------

# CREATING RECORD GROUP & LOV SEPARATELY AND ATTACH THEM TOGATHER ----------------------------------------DB CLICK ON RGP AT OBJ NVG * STATIC * BASED ON QUERY --click on it --WRITE THE QUERY

--DB CLICK ON LOV * WIZARD # based on query # existing record group * MANUALLY --select any one

* MANUALLY --GO TO LOV PROPERTY --CLICK ON COLUMN MAPPING --DEFINE THE LOV COLUMNS BASED ON RECORD GROUP #attaching the lov to rgp --CLICK ON RECORD GROUP(LOV PROPERTY)

--SELECT THE RGP NAME

----------------------------------------STATIC RGP --DB CLICK ON RGP --CLICK ON * STATIC --DEFINE # RGP COLUMN/datatype & # RGP COLUMN VALUE

NOTE --WE CAN POPULATE LIST ITEM DYNAMICALLY AT RUN TIME BASED ON DATABASE --by using program ---------------------------------------------

HOW TO USE TAB CANVAS --------------------------------

HOW TO DESIGN MASTER/DETAIL FORM ----------------------------------------------REQUISITION FORM PURCHASE ORDER FORM RECEIVING FORM INVOICE ----------------------------------------------

IMPLEMENTATION OF MASTER/DETAIL FORM -----------------------------# CREATE MASTER FORM --based on pk table # CREATE DETAIL FORM --based on fk table

TYPE OF BLOCK --based on no of records dispalyed --------------------------------------1. SINGLE RECORD BLOCK --only one recd dispalyed 2. MULTI-RECORD BLOCK

--more than one recd displayed ---------------------------------------------------

nxt class

--CREATING RELATION B/W MASTER/DTL BLOCKS ----------------------------------------------# EACH BLOCK HAVING ITS OWN RELATION NODE AT OBJECT NVG

--WE CAN CREATE RELATION BY USING THE RELATION NODE --used when both blocks have been created # USE relation node of master block --DB CLICK ON RELATION NODE OF MASTER --CLICK ON SELECT button --SELECT THE DETAIL BLOCK NAME --WRITE THE JOIN-CONDITION in-side the join-cond window <blkm_name>.<commn_item>= <blkd_name>.<commn_item> EMP.DEPTNO=DEPT.DEPTNO click on ok button --------------------------------------------------BLOCK AT OBJ NVG

# WHEN WE CREATE

RELATION,AUTOMATICALLY

FORM TRIGGERS & PROGRAM UNITS(procedures) created to maintain the data integrity b/w master & detail block

HOW MANY FORM TRIGGERS & PROGRAM UNITS? -----------------------------------------------FORM TRIGGERS=03 trg levels ----------1. form level =01 trigger ON-CLEAR-DETAILS 2. master block level=02 triggers ON-POPULATE-DETAILS ON-CHECK-DELETE-MASTER

PROGRAM UNITS=03 * Check_Package_Failure *Clear_All_Master_Details *Query_Master_Details

Relation Name -----------------<mst_blok>_<dtl_blk>

--it can be changed

EMP.DEPTNO=DEPT.DEPTNO

MASTER DELETE COMDITIONS -------------------------------------1. CASCADING 2. ISOLATED 3. NON-ISOLATED --default

1. CASCADING --WHEN WE DELETE MASTER DATA ,AUTOMATICALLY CHILD DATA ALSO DELETED --PRE-DELETE 2. ISOLATED --WHEN WE DELETE MASTER DATA, NO EFFECT ON CHILD DATA

3. NON-ISOLATED --default --WE CAN NOT DELETE MASTER DATA IF ANY CHILD DATA EXISTS

--1st delete child data then delete master data

--------------------------------------------------

COORDINATION PROPERTY --------------------------------IT CONTROL THE QUERY BEHAVIOUR OF QUERY AT MASTER BLOCK DETAIL BLOCK WHEN WE DO

TYPE -----1. AUTO-QUERY --default 2. DEFERRED

1. AUTO-QUERY --default --when master data retrieved,immediately child data also retrieved

2. DEFERRED --child data not displayed immediately along with master data

type -----

1. deferred with auto-query 2. deferred without auto-query

1. deferred with auto-query --when control goes to detail block,immediately child data displayed

2. deferred without auto-query --we have to do separate query for child data

PREVENT MASTERLESS OPERATION CHECKED UNCHECKED --default

--------------end--------------------------# COMBINATION BLOCK # SUMMARY BLOCK --6i -----------------------------------------for salcomm -------------------------GO TO PROPERTY OF SALCOMM --GO TO CALCULATION SECTION --CALCULATION MODE=FORMULA --CLICK ON FORMULA

--WRITE THE PRGM :SAL+NVL(:COMM,0)

--for sum(sal) --------------------go to property of sumsal --go to calculation section --calculation mode=summary *summary function=sum *summarized block=emp *summarized item=sal

--go to block property --go to records section --query all records=yes

------------------------------------

PROGRAMMING IN D2K ------------------------------BY USING * FORM TRIGGERS * FORM BUILT-INS WITH PL/SQL BLOCK

FORM TRIGGERS ---------------------IT IS A PL/SQL BLOCK ASSOCIATED WITH ANY --IT IS FIRED WHEN EVENT OCCURED --IT IS USED FOR --DATA PROCESSING --VALIDATION --PASSING PARAMETER --FORM BUILDER HAVING ITS OWN EVENTS TYPE OF EVENTS -----------------1. EXTERNAL EVENTS --done by user 2. INTERNAL EVENTS --due to navigation EVENT

COMPONENT OF FORM TRIGGERS --------------------------------------* TYPE--pre-defined * SCOPE--pre-defined * CODE--user written progm

nxt class

TYPE ------PREPOSTWHENONKEY------------------PRE--IT IS FIRED JUST BEFORE THE EVENT TAKE PLACE PRE-FORM PRE-BLOCK PRE-RECORD PRE-TEXT-ITEM POST-

--IT IS FIRED JUST AFTER THE EVENT TAKE PLACE

POST-FORM POST-BLOCK POST-RECORD POST-TEXT-ITEM

WHEN--IT IS FIRED JUST AFETR ALL DEFAULT PROCESSING OVER object

--it is fired when the control focused to the form --generally used for initialization

WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE WHEN-NEW-RECORD-INSTANCE WHEN-NEW-ITEM-INSTANCE

ON--IT IS USED TO REPLACE THE DEFAULT PROCESEE IN CASE OF DML operation --generally used for non-base table ON-INSERT ON-DELETE ON-UPDATE

KEY--SOME FORM TRIGGERS ARE ASSOCIATED TO THE --IF THE KEY IS PRESSED,THE TRIGGER IS FIRED KEY-NEXT-ITEM when we press(ENTER/TAB) KEY-UP KEY-DOWN etc # function key F1/F2/F3---------------------------------------------SPECIFIC KEY

When-Clear-Block When-Create-Record When-Database-Record When-Remove-Record

BIND VARIABLE OF D2K -----------------------------------A VARIABLE DEFINED IN HOST ENVIRONMENT IS KNOWN AS BIND VARIABLE --IT USES : AS PREFIX --IT CAN HOLD ONLY ONE VALUE AT A TIME TYPE OF BIND VARIABLE USED IN D2K -----------------------------------------------1. ITEM VARIABLE 2. GLOBAL VARIABLE 3. PARAMETER VARIABLE 4. SYSTEM VARIABLE

-------------------------------------------------------1. ITEM VARIABLE --ITEM CAN BE USED AS VARIABLE IN PL/SQL :<BLOCK_NAME>.<ITEM_NAME> BLOCK

:EMP.EMPNO --block name is not mandatory

2. GLOBAL VARIABLE --IT IS USED TO PASS/RECEIVE VALUE FROM FORM TO FORM FORM TO REPORTS

FORM TO GRAPHICS --DATATYPE=CHAR(255) --IT MUST BE INITIALIZED --its value can be changed during execution --it is open till session --it uses a keyword GLOBAL --IT CAN BE DEFINED AT ANY LEVEL F/B/I WHEN-NEW-FORM-INSTANCE WHEN-NEW-BLOCK-INSTANCE :GLOBAL.<VAR_NAME>:=' '; :GLOBAL.DNO:=' ';

--recomendation to avoid it if not required

3. PARAMETER VARIABLE --it is also used to pass value FORM TO FORM FORM TO REPORTS FORM TO GRAPHICS --DATATYPE=NUMBER/DATE/CHAR --INITIALIZTION IS NOT MANDATORY --NOT OPEN TILL SESSION

--IT USES A KEYWORD PARAMETER --IT IS DEFINED AT DESIGN TIME AT OBJECT NAVIGATOR

:PARAMETER.<VAR_NAME> :PARAMETER.PDNO:=10;

--recomendation to use in place of GLOBAL variable

4. SYSTEM VARIABLE --IT IS PRE-DEFINED VARIABLE --USED BY FORM BUILDER TO KEEP THE STATUS OF --WE CAN NOT DO --DML operation on system variable --we can use the value of system variable --exception #some system variable can be changed by * which system variable can be changed user by user???? FORM AT RUN TIME

1. --2. ----IT USES A KEYWORD SYSTEM :SYSTEM.<VAR_NAME> :SYSTEM.BLOCK_STATUS NEW CHANGED QUERY

--DATATYPE=CHAR --VALUE IN UPPER CASE

----------------------------------------------

AN INITIALIZED VARIABLE WHICH VALUE NEVER CHANGES DURING THE EXECUTION

BUILT-INS USED IN D2K ------------------------------IT IS PRE-DEFINED NAMED PL/SQL BLOCK AS A PART OF D2K --THEY ARE CATEGORISED IN TWO GROUPS # PROCEDURE OR

# FUNCTIONS --FORM BUILT-INS ARE KEPT IN D2K BUILT-IN STANDARD EXTENSIONS --pkg name note -----form builder having other packages also which is used for special task --for example TEXT_IO --used for data migration FTREE --used for hierarchical data dispaly etc TYPE OF BUILT-INS ---------------------* RESTRICTED BUILT-INS * UNRESTRICTED BUILT-INS PACAKGE

* RESTRICTED BUILT-INS ----------------------------------SUCH BUILT-INS NOT ALLOWED TO ALL TRIGGERS --HOW TO KNOW? ------------------------THE BUILT-INS WHICH INITIATE THE NAVIGATION ARE KNOWN AS restricted built-ins GO_BLOCK();

NEXT_ITEM NEXT_RECORD

* UNRESTRICTED BUILT-INS --SUCH BUILT-INS ALLOWED TO ALL TRIGGERS MESSAGE(); ------------------------------------------------------------

LIST OF USEFUL BUILT-INS -------------------------------DML operation ----------------COMMIT_FORM; --just like commit;

CLEAR_BLOCK(DO_COMMIT); NO_COMMIT CLEAR_BLOCK; EXIT_FORM(DO_COMMIT); NO_COMMIT ASK_COMMIT CLEAR_FORM(DO_COMMIT); NO_COMMIT ASK_COMMIT

CLEAR_FORM;

DELETE_RECORD; COMMIT;

UPDATE_RECORD;

--not allowed at item level --allowed only to form/block level

COMMIT;

NAVIGATIONAL BUILT-INS --------------------------------GO_BLOCK(<'BLK_NAME'>); NEXT_BLOCK;

FIRST_RECORD; LAST_RECORD; PREVIOUS_RECORD; NEXT_RECORD; GO_RECORD(<REC_NO>);

GO_ITEM(<'BLK_NAME.ITEM_NAME'>); NEXT_ITEM;

GO_FORM(<'FORM_NAME'>);

NEXT_FORM;

OTHER purpose built-ins ----------------------------EXECUTE_QUERY; MESSAGE(<'MSG STRING'>); SHOW_LOV(<'LOV_NAME'>); LIST_VALUES; --used to invoke LOV if lov attached to the item

SHOW_EDITOR(....); EDIT_TEXTITEM;--used to invoke EDITOR if that is attached to the item

SHOW_VIEW(<'STACKED_CANVAS_NAME'>); HIDE_VIEW(<'STACKED_CANVAS_NAME'>);

SHOW_ALERT(<'ALERT_NAME'>);

SET_<OBJECT>_PROPERTY(...) --used to change the object property at run time SET_BLOCK_PROPERTY(); SET_ITEM_PROPERTY(); SET_LOV_PROPERTY(); SET_CANVAS_PROPERTY(); SET_WINDOW_PROPERTY();

etc

GET_<OBJECT>_PROPERTY(...) --used to get existing property of object at run time

GET_APPLICATION_PROPERTY() --it is function USERNAME PASSWORD CONNECT_STRING

add_list_elements() --------------------------------POST; NAME_IN(); COPY() ---------------------------------------------------------

programmimn in d2k ----------------------HOW TO USE ITEM VARIABLE

GLOBAL VARIABLE PARAMETER SYSTEM VARIABLE ------------------------------------smart triggers -------------------IT IS A COLLECTION OF FREQUENTLY USED TRIGGERS W.R.T. THE OBJECT WHERE CURRENTLY CONTROL EXISTS

POST-TEXT-ITEM(ENAME) -----------------------------

:EMP.ENAME:=UPPER(:EMP.ENAME);

GLOBAL VARIABLE --------------------WHEN-NEW-FORM-INSTANCE :global.pdno:=' ';

GO_BLOCK('DEPT');

PRE-TEXT-ITEM(DEPTNO OF DEPT BLOCK)

:DEPT.DEPTNO:=:GLOBAL.PDNO;

W.N.B.I(DEPT)

:DEPT.DEPTNO:=:GLOBAL.PDNO;

--SENDING VALUE FROM ITEM TO ITEM

GO_BLOCK('DEPT'); :DEPT.DEPTNO:=:EMP.DEPTNO;

PARAMETER ----------------CREATE A PARAMETER AT OBJECT NVG

:PARAMETER.PDNO:=:EMP.DEPTNO; GO_BLOCK('DEPT');

W.N.B.I(DEPT)

:DEPT.DEPTNO:=:PARAMETER.PDNO;

SYSTEM VARIABLE --------------------ITS VALUE ALWAYS IN UPPER CASE ---------------------------------W.B.P(SAVE) -----------------IF :SYSTEM.BLOCK_STATUS='CHANGED' THEN COMMIT_FORM;

ELSE MESSAGE('NO DATA TO SAVE '|| :SYSTEM.BLOCK_STATUS); MESSAGE('NO DATA TO SAVE '|| :SYSTEM.BLOCK_STATUS); END IF; --------------------------------

-------------------------

UPDATE_RECORD;

DELETE_RECORD;

------------------------------:EMP.SYSVAR:=:SYSTEM.BLOCK_STATUS;

INVOKING LOV ----------------SHOW_LOV --function --return BOOLEAN

SHOW_LOV(<'LOV_NAME'>);

DECLARE VLOV BOOLEAN; BEGIN VLOV:=SHOW_LOV('LOVDNO'); IF VLOV THEN SELECT COUNT(*) INTO :EMP.CNT FROM EMP

WHERE DEPTNO=:EMP.DEPTNO; ELSE MESSAGE('NO SELECTION FROM LOV'); MESSAGE('NO SELECTION FROM LOV'); END IF;

END;

clear_block(no_commit); LIST_VALUES; if :emp.deptno is not null then SELECT COUNT(*) INTO :EMP.CNT FROM EMP WHERE DEPTNO=:EMP.DEPTNO; else MESSAGE('NO SELECTION FROM LOV'); MESSAGE('NO SELECTION FROM LOV'); end if;

--lov must be attached to item

CLEAR_ITEM;

INVOKE SAME LOV TO TWO DIFFERNT BLOCK WITH ASSIGNMENT -----------------NXT CLASS

DECLARE VLOV BOOLEAN;

BEGIN VLOV:=SHOW_LOV('LOVDNO'); :EMP.DEPTNO:=:PARAMETER.PDNO; END; ------------CREATE LOV --CREATE A PARAMETER=PDNO --COLUMN MAPPIMNG properties(LOV PROPERTY) --RETURN ITEM=PARAMETER.PDNO

DECLARE VLOV BOOLEAN; BEGIN VLOV:=SHOW_LOV('LOVDNO'); :DEPT.DEPTNO:=:PARAMETER.PDNO; END;

---------------------------------------------display the message at run time -------------------------------------by using # built-ins=MESSAGE() --used for non-decision making message # form object=ALERT --used for decision making message

ALERT ---------it is a form object --used for decision making message --it has 03 buttons 1. ALERT_BUTTON1 2. ALERT_BUTTON2 OK --default CANCEL

3. ALERT_BUTTON3 <user_label> --IT HAS 03 STYLES(GRAPHICS) * NOTE * CAUTION * STOP --default built-in used to invoke ALERT SHOW_ALERT() --function --return number value

STPS --------DB CLICK ON ALERT AT OBJ NVG --DEFINE # TITLE --optional # MESSAGE

--CALL TO FORM AT RUN TIME --GO TO ALERT PROPERTY --TITLE=......DELETION......... --MESSAGE=DO YOU WANT TO DELETE..?

W.B.P(DELETE) ------------------DECLARE VALT NUMBER; BEGIN VALT:=SHOW_ALERT('ALT1'); IF VALT=ALERT_BUTTON1 THEN DELETE_RECORD; ---COMMIT; ELSIF VALT=ALERT_BUTTON2 THEN MESSAGE('deletion canceled'); MESSAGE('deletion canceled'); else MESSAGE('NO DELETION'); MESSAGE('NO DELETION'); END IF; END;

HOW TO USE SAME ALERT FOR DIFFENT ACTION -----------------------------------by changing Message/Title at run time SET_ALERT_PROPERTY() -------------------------------------------------DECLARE VALT NUMBER; BEGIN ------------defining message/TITLE--------SET_ALERT_PROPERTY('ALT1', TITLE, '....DELETION....');

SET_ALERT_PROPERTY('ALT1', ALERT_MESSAGE_TEXT, 'DO YOU WANT TO DELETE?'); ----------------------------------------------------VALT:=SHOW_ALERT('ALT1'); IF VALT=ALERT_BUTTON1 THEN DELETE_RECORD; ---COMMIT; ELSIF VALT=ALERT_BUTTON2 THEN

MESSAGE('deletion canceled'); MESSAGE('deletion canceled'); else MESSAGE('NO DELETION'); MESSAGE('NO DELETION'); END IF; END;

W.B.P(SAVE) ---------------DECLARE VALT NUMBER; BEGIN ------------defining message/TITLE--------SET_ALERT_PROPERTY('ALT1', TITLE, '....INSERT....');

SET_ALERT_PROPERTY('ALT1', ALERT_MESSAGE_TEXT, 'DO YOU WANT TO SAVE?'); ----------------------------------------------------VALT:=SHOW_ALERT('ALT1'); IF VALT=ALERT_BUTTON1 THEN COMMIT_FORM;

ELSIF VALT=ALERT_BUTTON2 THEN MESSAGE('INSERT canceled'); MESSAGE('INSERT canceled'); else MESSAGE('NO INSERT'); MESSAGE('NO INSERT'); END IF; END;

----------------------------------------------HOW TO POPULATE LIST ITEM DYNAMICALLY ------------------------------------------------------by using special built-ins # CREATE_GROUP_FROM_QUERY--function # POPULATE_GROUP --function

# POPULATE_LIST # DELETE_GROUP--OPTIONAL --DATATYPE=RECORDGROUP ---------------------------------------------------DECLARE RG_ID RECORDGROUP; STATUS NUMBER; BEGIN RG_ID:=CREATE_GROUP_FROM_QUERY('RGP1', 'SELECT DISTINCT JOB,JOB FROM EMP'); STATUS:=POPULATE_GROUP(RG_ID); POPULATE_LIST('JOB',RG_ID); DELETE_GROUP(RG_ID); END; ----------------------------------------------------EDITOR --------------system defined editor =SYSTEM_EDITOR --user-defined editor -----------------------------------SYSTEM_EDITOR --GO TO ITEM PROPERTY --GO TO EDITOR SECTION --SELECT THE EDITOR=SYSTEM_EDITOR

CTRL+e --to invoke editor

user-defined editor --DB CLICK ON EDITOR AT OBJ NVG --CUSTOMIZE THE EDITOR if required

DECLARE OK BOOLEAN; BEGIN SHOW_EDITOR('SYSTEM_EDITOR', :EMP.RMK,:EMP.RMK,OK); END;

EDIT_TEXTITEM; --editor must be attached to the item

QUERY PROCESSING ------------------------EXIT --EXIT_FORM;

REFRESH ---CLEAR_BLOCK(NO_COMMIT); QUERY EXECUTE_QUERY; -------------------------------EXECUTE_QUERY --built-in for query --it clear the block before fetching data --it is used as unconditional query

HOW TO DO CONDITIONAL QUERY ------------------------------------------EXECUTE_QUERY does not accept query condition --for conditional query we can use following methods from query block

methods ---------1. CONTROL BLOCK method 2. GLOBAL variable method 3. SET_BLOCK_PROPERTY() method 4. SELECT statement method

5. ENTER_QUERY (built-in) method --------------------------------------------------------1. CONTROL BLOCK method --------------------------------create a control block for query condition --create items as requirement --place the item on query block canvas --go to item property(EMPNO) --go to data section COPY VALUE FROM ITEM=QRY1.PNO

2. GLOBAL variable method ---------------------------------EXECUTE_QUERY always search the query time condition at query block property at run

WHERE CLAUSE --block propertry name

W.N.F.I :GLOBAL.PNO:=' ';

W.B.P(QUERY) ---------------:GLOBAL.PNO:=:EMP.EMPNO; CLEAR_BLOCK(NO_COMMIT);

EXECUTE_QUERY;

--GO TO BLOCK PROPERTY(EMP) --GO TO DATABASE SECTION WHERE CLAUSE EMPNO=:GLOBAL.PNO

3. SET_BLOCK_PROPERTY() method --generally used

W.B.P(QUERY) ---------------SET_BLOCK_PROPERTY('EMP', DEFAULT_WHERE, 'EMPNO='||:EMP.EMPNO);

CLEAR_BLOCK(NO_COMMIT); EXECUTE_QUERY;

SET_BLOCK_PROPERTY('EMP',

DEFAULT_WHERE, 'JOB LIKE ='''||:EMP.JOB||'''||'%' ||'AND '|| 'SAL='||:EMP.SAL||'''');

4. SELECT statement method -------------------------------------W.B.P(QUERY) -------------------------

SELECT EMPNO,ENAME,JOB,DEPTNO INTO :EMP.EMPNO,:EMP.ENAME, :EMP.JOB,:EMP.DEPTNO FROM EMP WHERE EMPNO=:EMP.EMPNO;

# DATA DISPLAYED IN THE FORM BY USING THE ALWAYS IN INSERT STATUS

SELECT STATEMENT IS

SELECT statement method is used for

# control block or # control item on data block --generally used for reference value

POST-QUERY(EMP BLOCK LEVEL) -------------------------------------------SELECT DNAME INTO :EMP.DNAME FROM DEPT WHERE DEPTNO=:EMP.DEPTNO;

5. ENTER_QUERY (built-in) method ---------------------------------------------ENTER_QUERY changes the form from NORMAL MODE---->QUERY MODE # ENTER_QUERY & EXECUTE_QUERY CAN BE USED TOGATHER -------------------------------------------------MULTIPLE APPLICATIONS DESIGN ----------------------------------------IT IS A TECHNIQUE/MACHANISM TO DESIGN MORE THAN ONE APPLICATIONS IN SUCH WAYS WHEN 1ST APPLICATION LOADED INTO MEMOEY AREA,THAT CAN INVOKE OTHER APPLICATIONS ALSO FROM ITS OWN

SESSION --MEANS INVOKING OTHER APPLICATIONS FROM A SINGLE SESSION # THE INVOKING APPLICATION IS KNOWN AS CALLING FORM # THE INVOKED APPLICATION IS KNOWN AS CALLED FORM # IT IS POSSIBLE TO PASS VALUE FROM CALLING BY USING * GLOBAL VARIABLE * PARAMETERLIST --generally used FORM TO CALLED FORM

--FOR THIS WE USE FOLLOWING BUILT-INS 1. CALL_FORM 2. OPEN_FORM 3. NEW_FORM --ALL ARE DIFFERENT IN ACTIONS

1. CALL_FORM -----------------ONLY ONE FORM CAN BE CALLED --CALLING FORM IS SUSPENDED --NAVIGATION NOT POSSIBLE B/W CALLING FORM & --THE WINDOW BEHAVIOUR OF CALLED FORM MODEL WINDOW --AFTER EXIT FROM CALLED FORM THE CONTROL FORM GOES BACK TO CALLING CALLED FORM

BECOME AS

2. OPEN_FORM -----------------MORE THAN ONE FORM CAN BE CALLED --CALLING FORM NOT SUSPENDED --NAVIGATION POSSIBLE B/W CALLING FORM & --WINDOW BEHAVIOUR OF CALLED FORM IS AS MODELESS WINDOW --AFTER EXIT FROM CALLED FORM,THE CONTROL FORM GOES BACK TO CALLING CALLED FORM

3. NEW_FORM ----------------ONLY ONE FORM CAN BE CALLED --CALLING FORM IS EXIT OUT # IF CALLING FORM IS INVOKED BY ANY HIGHER FORM THEN AFTER EXIT FROM CALLED FORM THE CONTROL GOES TO THE HIGHER FORM

-----------------------------------------------------SYNTAX--CALL_FORM --------CALL_FORM(<called FORM_NAME>, DISPLAY_MODE, SWITCH_MENU_MODE, QUERY_MODE,

PARAMETERLIST);

<FORM_NAME> --mandatory argument --others are optionals * having default values --recomended to use all arguments --parameterlist depends on requirement 'D:\FORMB.FMX' --generally used --'D:\FORMB.FMB' --valid --'D:\FORMB'--valid

DISPLAY_MODE --calling form visible / not visusble ----------------------------------HIDE --default NO_HIDE

SWITCH_MENU_MODE --which menu visible calling form/called form ----------------------------DO_REPLACE--menu of called form visisble

NO_REPALCE--menu of calling form visisble --------------------------------------------------------

QUERY_MODE --called form can be used for DML/DQL opertation both DQL operation only ---------------------------------------------------QUERY_ONLY--only DQL operation on called NO_QUERY_ONLY--both DML/DQL on called form form OR

-------------------------------------------------------PARAMETERLIST --used for passing the value from calling form to called CALLING FORM ----VALUE---->CALLED FORM # we have to write parameterlist progarm by usimg some special built-ins form

EXAMPLE --call_form ------------CALL_FORM('D:\FORMB.FMX', NO_HIDE, NO_REPLACE, NO_QUERY_ONLY);

SYNTAX--OPEN_FORM --------OPEN_FORM(<called FORM_NAME>, ACTIVATE MODE, SESSION MODE, QUERY_MODE, PARAMETERLIST); ----------------------------------------------------ACTIVATE MODE --the control should be where calling form or called form

ACTIVATE--control on called form NO_ACTIVATE--control on calling form --------------------------------------SESSION MODE --called form work on which database ------------------------------------------------SESSION --called form using different NO_SESSION--called form using same database database of calling form

example --open_form

---------------------------OPEN_FORM('D:\FORMB.FMX', ACTIVATE, NO_SESSION, NO_QUERY_ONLY);

W.N.F.I

SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW, WINDOW_STATE, MAXIMIZE);

SET_WINDOW_PROPERTY('WINDOW1', WINDOW_STATE, MAXIMIZE); SYNTAX--NEW_FORM ---------

NEW_FORM(<called FORM_NAME>, ROLLBACK MODE, QUERY_MODE, PARAMETERLIST);

ROLLBACK MODE --for unsaved data of calling form --------------------------------------TO_SAVEPOINT --default --generally used NO_ROLLBACK FULL_ROLLBACK

NEW_FORM('D:\FORMB.FMX', TO_SAVEPOINT, NO_QUERY_ONLY);

----------------------------------------HOW TO PASS PM VALUE TO CALLED FORM ----------------------------------------------------------by using parameterlist

PARAMETERLIST ---------------------IT IS A DATA STRUCTURE TO PASS VALUE FROM FORM TO FORM FORM TO REPORTS FORM TO GRAPHICS

COMPONENT OF PLIST --------------------------1. KEY --name of plist 2. TYPE--structure type 3. VALUE --to be passed

2. TYPE--structure type -------------------------# TEXT_PARAMETER # DATA_PARAMETER

# TEXT_PARAMETER--generally used -----------------------IT PASSES SINGLE VALUE AT A TIME --ACCEPTS ONLY STRING VALUE TO PASS --CAN BE USED FOR FORM TO FORM

FORM TO REPORTS FORM TO GRAPHICS

# DATA_PARAMETER --------------------------it can pass a bunch of values at a time by using --it can be used for FORM TO FORM --not allowed FORM TO REPORTS FORM TO GRAPHICS recordgroup

--------------------------------------------------------# FOR PARAMETERLIST PROGRAM WE USE * CREATE_PARAMETER_LIST * ADD_PARAMETER * DESTROY_PARAMETER_LIST --optional --the pmlist created at run time works only --DATATYPE=PARAMLIST once FOLLOWING BUILT-INS

W.B.P(CALL) --FORMA(CALLING FORM) ----------------------------------------------DECLARE PL_ID PARAMLIST; BEGIN PL_ID:=CREATE_PARAMETER_LIST('LISTA');

ADD_PARAMETER(PL_ID, 'PDNO', TEXT_PARAMETER, :EMP.DEPTNO); ADD_PARAMETER(PL_ID, 'PNM', TEXT_PARAMETER, :EMP.ENAME);

CALL_FORM('D:\FORMB.FMX', NO_HIDE, NO_REPLACE, NO_QUERY_ONLY, PL_ID); DESTROY_PARAMETER_LIST(PL_ID);

END;

W.N.B.I(FORMB) -------------------:DEPT.DEPTNO:=:PARAMETER.PDNO;

:DEPT.ENAME:=:PARAMETER.PNM;

INVOKING STACKED CANVAS -----------------------------------SHOW_VIEW(<'STACKED_CAN_NAME'>); HIDE_VIEW(<'STACKED_CAN_NAME'>);

---------------------VIEWPORT --control the physical property of stacked WIDTH HIGHT X Y canvas

SHOW_VIEW('CAN_SALG');

GO_BLOCK('EMP'); HIDE_VIEW('CAN_SALG');

S-ar putea să vă placă și