CREATE OR REPLACE PROCEDURE menuSubmitFinito( LaSede VARCHAR2, LArea VARCHAR2, IlGruppo VARCHAR2 ) IS SedeNome sedi.nome%type; AreaNome aree.nome%type; GruppoNome gruppi.nome%type; BEGIN SedeNome := 'NULL'; AreaNome := 'NULL'; GruppoNome := 'NULL'; IF LaSede IS NOT NULL THEN select nome into SedeNome from sedi where idsede=LaSede; END IF; IF LArea IS NOT NULL THEN select nome into AreaNome from aree where idarea=LArea; END IF; IF IlGruppo IS NOT NULL THEN select nome into GruppoNome from gruppi where idgruppo=IlGruppo; END IF; GUI.openPage( 'Prova menu Submit finita' ); GUI.printText( 'Sede: ' || SedeNome ); GUI.printText( 'Area: ' || AreaNome ); GUI.printText( 'Gruppo: ' || GruppoNome ); GUI.closePage; END; / show err; commit; / CREATE OR REPLACE PROCEDURE menuSubmitPl( LaSede VARCHAR2 DEFAULT NULL, LArea VARCHAR2 DEFAULT NULL, IlGruppo VARCHAR2 DEFAULT NULL, Finito VARCHAR2 DEFAULT NULL) AS trovato BOOLEAN; BEGIN IF Finito IS NOT NULL THEN menuSubmitFinito( LaSede, LArea, IlGruppo ); RETURN; END IF; GUI.openPage( 'Prova menu Submit' ); GUI.openForm( 'menuSubmitPl' ); GUI.openTable; GUI.openTableRow; GUI.printTableData( 'Sede' ); GUI.openTableData; GUI.openLinkedSelect( 'LaSede' ); GUI.printOption( '', '' ); FOR e IN (SELECT * FROM Sedi) LOOP IF e.idsede=LaSede THEN GUI.printOption( e.idsede, e.nome, TRUE ); ELSE GUI.printOption( e.idsede, e.nome, FALSE ); END IF; END LOOP; GUI.closeSelect; GUI.closeTableData; GUI.closeTableRow; GUI.openTableRow; GUI.printTableData( 'Area' ); GUI.openTableData; GUI.openLinkedSelect( 'LArea' ); GUI.printOption( '', '' ); trovato := FALSE; FOR e IN (SELECT * FROM Aree WHERE LaSede IS NOT NULL AND idsede=LaSede ) LOOP IF e.idarea=LArea THEN GUI.printOption( e.idarea, e.nome, TRUE ); trovato := TRUE; ELSE GUI.printOption( e.idarea, e.nome, FALSE ); END IF; END LOOP; GUI.closeSelect; GUI.closeTableData; GUI.closeTableRow; GUI.openTableRow; GUI.printTableData( 'Gruppo' ); GUI.openTableData; GUI.openSelect( 'IlGruppo' ); GUI.printOption( '', '' ); IF trovato THEN FOR e IN (SELECT * FROM Gruppi WHERE LaSede IS NOT NULL AND LArea IS NOT NULL AND idarea=LArea ) LOOP IF e.idgruppo=IlGruppo THEN GUI.printOption( e.idgruppo, e.nome, TRUE ); ELSE GUI.printOption( e.idgruppo, e.nome, FALSE ); END IF; END LOOP; END IF; GUI.closeSelect; GUI.closeTableData; GUI.closeTableRow; GUI.closeTable; GUI.printSubmitButton( 'Ok', 'Finito' ); GUI.closeForm; GUI.closePage; END; / show err; commit;