Friday, November 16, 2012

Mutli Level ( N level ) Tabs in Oracle APEX 4.1 or 4.2






Click Here for demo



 Here is the Multi Level Jquery Tabs in Oracle APEX .

1.Its is Easy to implement .

2.Enhances Look and Feel of the Application .

3.Light Weight.



Steps to be followed :-

1)Create a Application with one level tab , add 4-5 pages

Note the tab Labels should not contain spaces  , in case u want to add spaces use  


2) Create a list entry in the application shared components exactly matching the strings used as the label in the tabs .

Example :- Tabs :- Home , Tab1 ,Tab2 ,Tab3 ,Tab4 points to pages 1,2,3,4,5 correspondingly .

Now create the Sub menu entries like i used in this application

Home > Home child

Tab 1 > Child 1 > Grand Child 1 > Great Grand Child 2 .  soo ooon . 


You need to create the List entry for exactly same with same Label , In case you are including the   in the label , you need to reuse that too here .


 Ex:-  My Home .


3)  Download the Jquery Plugin from the APEX plugin site and upload it into your appliation .

4) Create the Page Zero , Create the Plugin Region with Region Template as
 ( Blank Region or No template ).

Specify the Source as


Note as this is the only list entry i have in my application , I took liberty to  use this query else you need to filter it depending on your List Name as an application can contain N Lists . 



5) Now its time to Edit the theme which you have chosen for you application .
       a) Theme can be either Div based.
       b)It can be List based .

You can get to know what is your theme category by clicking on the One Level Template link on any page of your application   .

Got the Standard Attributes Region .




Now change the Code to the corresponding  Values


Once done Just Run the Application and just Try to click or hover on the main tabs  , you will observe the Jquery Menus on the Tabs as follows .





 

Do let me know your comments if this helps you out :)   Happy Learning :) :) :) :)



Generate DDL Bug in Oracle APEX 4.2

Login to http://apex.oracle.com SQL workshop > Utilities > Genereate DDL > CReate Script . I had loads of important R&D tables on Oracle APEX Cloud , I wanted to generate the DDL script for my almost above 50 tables . But I could not find the Export Button , It was really painfull , to copy the table sQL from the Object Broswer and paste it . :( Is this a Bug ???? I guess it is , as I checked the Documentation of 4.2 to know in case the option got shifted to some other path , but i could see the path to generate DDL was still SQL WORKSHOP >> Utilities >> Generate DDL :( I hope it gets resolved soon , I am soo used to DDL Script generation .









Where as it has to be link this , which is there on my local instance APEX 4.1





Monday, September 3, 2012

Restrictions and enhancements in Oracle APEX 4.1

 Configuration Requirements


The value of the character set portion of PlsqlNLSLanguage in the configuration of the mod_plsql Database Access Descriptor (DAD) must be set to AL32UTF8, regardless of the underlying database character set.


New Checkbox Plug-in Attribute Type

The new plugin has been added to the apex 4.1 version , where the select list is listed with the check box beside it . 


New Region SQL Statement Column Plug-in Attribute Type

With the new Region SQL Statement Column custom plug-in attribute (only available for region type plug-ins), plug-in developers can create more flexible region type plug-ins which are based on an SQL statement (plug-in configuration has checked Region Source is SQL Statement in Standard Attributes). This new custom plug-in attribute type will show the column names of the SQL statement specified in the region source.
An example is a region type plug-in which displays a chart. To populate the chart a developer has to specify an SQL statement in the region source. In 4.0 the plug-in developer would have to exactly specify how many columns the SQL statement has to have and which column position is mapped to which feature. For example an SQL statement format could look like:
select label,
       value,
       [link],
       [color],
       [tooltip]
  from table
As you can see in the above example, only label and value are required. All the other columns are optional. When using this chart type plug-in, you first have to know the format of the SQL statement and you have to write odd SQL statements if, for example, you want to have a statement where only the labelvalue and tooltip is set. Such a statement would look like:
select label,
       value,
       null as link,
       null as color,
       tooltip
  from mytable
The above SQL looks odd and gets more complicated if the SQL statement provides even more options.
In 4.1, the SQL statement specified in the region source is greatly simplified and the plug-in developer can now make implementation of the plug-in much more declarative for the average developer who is using the plug-in. The plug-in developer would define five new custom plug-in attributes of type Region SQL Statement Column. These would, for example, be called Label Column, Value Column, Link Column, Color Column and Tooltip Column. Only Label Column and Value Column are required.
If a developer is using the chart plug-in, in 4.1 the developer can now just enter the following into the Region Source:
select *
  from my_table
or
select dname,
       sum(sal) as total_sal,
       'Total Employees: '||count(employee_id) as total_employees
  from my_table
The developer is then prompted to actually map the different columns of the SQL statement to the Label Column, Value Column, Link Column, Color Column and Tooltip Column custom attributes of the plug-in. In our example, the developer would enter dname for the Label Column, total_sal for Value Column and total_employees for Tooltip Column. This is much more declarative, because the developer doesn't have to know how the SQL statement is formatted. This also makes it a lot easier if columns are optional.

Application Attributes to Control Browser Security



1)   In Application Express 4.1,
        there are two new application attributes to control Browser Security: 
        1)Cache  -- to save page content  on the disk and memory of the browser . 
         2) Embed in Frames.. browser is allowed to display your application's pages within a frame. 

 "SET_COMPATIBILITY_MODE Procedure" in the Oracle Application Express API Reference.











Bugs in Oracle APEX 4.2

Now Oracle APEX 4.2 is ready for use since Spetember 2nd 2012 .


SQL Workshop >>> SQL command


My observation about SQL Workshop and SQL command is as below ,  I found that its quite slow when compatively to the 4.1 , may be because of the ajax calls .

The image icon of the SQL workshop are toggling between the images of its in 4.1 and  4.2 , i found it a bit strange , may be some issue with the installation .

I found the results from sql command are not correct  , a normal desc tables is returning its column name twice .






UI made easier in Oracle APEX 4.2 , GRID EDIT

There are many awesome features included in the Oracle APEX 4.2 version , the most important thing is the whole  APEX UI based environment is now converted to a very light Jquery based environment .

Well this makes the developer feel lucky and lighter ,  expecially when there are  hard dead line  :)

UI is one of the major change in the Oracle APEX 4.2 release , to notice the big change just drag and drop few regions and items on ur screem and then in the development environment  , go to the development tool bar , you will find a new  icon called show grid edit :) ...


wow thats really awesome ... was my first experssion :)



Now once you click on show Grid edit , you will be swtiched to a grid mode of the whole page , which is really wowwwwwwwww...





Sunday, September 2, 2012

Unable to Open Help Link in ORacle APEX



We need to give an access of the Oracle TEXT URL  datastore to the APEX_030200 user such .

create a role, assign it to the APEX_030200 database user and grant the required permission to the role.


SQL> SELECT par_value FROM ctxsys.ctx_parameters WHERE par_name = 'FILE_ACCESS_ROLE';

PAR_VALUE
--------------------------------------------------------------------------------

SQL> CREATE ROLE APEX_URL_DATASTORE_ROLE;

Role created.

SQL> GRANT APEX_URL_DATASTORE_ROLE to APEX_030200;

Grant succeeded.

SQL> EXEC ctxsys.ctx_adm.set_parameter('file_access_role', 'APEX_URL_DATASTORE_ROLE');

PL/SQL procedure successfully completed.

SQL> commit;

Commit complete.

 If the role exists, then just grant this role to the APEX_030200 user. 

Error while access network services in Oracle APEX


Incase you wanna use the pdf printing functionality or email fucntionality then you need to run this package , the package exists in the installation document , kindly! go thru it once . 


DECLARE
 ACL_PATH VARCHAR2(4000);
 ACL_ID RAW(16);
BEGIN
 -- Look for the ACL currently assigned to '*' and give APEX_030200
 -- the "connect" privilege if APEX_030200 does not have the privilege yet.

SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

-- Before checking the privilege, ensure that the ACL is valid
 -- (for example, does not contain stale references to dropped users).
 -- If it does, the following exception will be raised:
 --
 -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200'
 -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
 --
 SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
 FROM XDB.XDB$ACL A, PATH_VIEW P
 WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
 EQUALS_PATH(P.RES, ACL_PATH) = 1;

DBMS_XDBZ.ValidateACL(ACL_ID);
 IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200',
 'connect') IS NULL THEN
 DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
 'APEX_030200', TRUE, 'connect');
 END IF;

EXCEPTION
 -- When no ACL has been assigned to '*'.
 WHEN NO_DATA_FOUND THEN
 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
 'ACL that lets power users to connect to everywhere',
 'APEX_030200', TRUE, 'connect');
 DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;

Setting up Oracle APEX for the first time

Once you are done with installing your Oracle DB instance  ( 11g or 10g )  , the next step is to make sure your Oracle APEX is kick started .


1) Make sure your Oracle Database is up and running .

2) Make sure your default port for the webserver that is (8080) is not occupied by any other product .

3) As the Oracle Database already comes with oracle XML DB and Oracle embedded plsql gateway server , you actually need not bother about configuring the apex  , as APEX uses the embedded plsql gateway as the default Application server .


4) There are many default scripts which comes with oracle apex which can be used for installing , configuring or adminsitrting or customizing the settings of the oracle apex .

       C:\Oracle_home\APEX\    ---- you will find many sql scripts which starts with the apex_version_no_script_description.sql
 EX:-  apxldimg.sql  this is used for loading the images of the application developer of the apex during the apex installation from scratch or it upgradation .


5) One the files is apxconf.sql  , this is used for configuring the APEX   .

When you run this particular command , you will be shown the default port no which is being used or available :- 8080 .

Then  you will be asked to enter the password for the APEX ADMIN :- " enter the password".
Then you need to reneter the password for the confirmation again :  " renter the password " .

Note this password will be the admin password for you default workspace of apex thats nothing but ( Internal ) .

 You will be asked to enter the port , incase you wanna continue with the same default port then u can enter (8080) as you port no ,else you can change for any other .




[oracle@db11gr2 apex]$ cd $ORACLE_HOME/apex
[oracle@db11gr2 apex]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on Sun Mar 11 00:48:32 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.

SQL> connect sys as sysdba
Enter password:
Connected.
SQL>
SQL>
SQL>
SQL> @apxconf

PORT
----------
 8080

Enter values below for the XDB HTTP listener port and the password for the Application Express ADMIN user.
Default values are in brackets [ ].
Press Enter to accept the default value.
Enter a password for the ADMIN user []
Enter a port for the XDB HTTP listener [ 8080]
...changing HTTP Port

PL/SQL procedure successfully completed.
PL/SQL procedure successfully completed.
Session altered.

...changing password for ADMIN

PL/SQL procedure successfully completed.
Commit complete.

 6) Using the Following Comand cross verify whether your  web server is up and running .

SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;

GETHTTPPORT
-----------
 8080

 You can mak apex down , by runnnig the comman

SQL>EXEC DBMS_XDB.SETHTTPPORT(0);
SQL>EXEC DBMS_XDB.SETHTTPPORT(8080);
again makes the Oracle APEX Up .



7)  Now login into oracle apex instance as

http://localhost:8080/apex/apex_admin

or 

http://localhost:8080/apex 
Workspace:-  Internal 
  User:-  Admin 
Password :- enter admin password .



Now create your development  workspace ,schemas and  users,



8)Incase you wanna use the pdf printing functionality or email fucntionality then you need to run this package , the package exists in the installation document , kindly! go thru it once .



DECLARE
 ACL_PATH VARCHAR2(4000);
 ACL_ID RAW(16);
BEGIN
 -- Look for the ACL currently assigned to '*' and give APEX_030200
 -- the "connect" privilege if APEX_030200 does not have the privilege yet.

SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
 WHERE HOST = '*' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;

-- Before checking the privilege, ensure that the ACL is valid
 -- (for example, does not contain stale references to dropped users).
 -- If it does, the following exception will be raised:
 --
 -- ORA-44416: Invalid ACL: Unresolved principal 'APEX_030200'
 -- ORA-06512: at "XDB.DBMS_XDBZ", line ...
 --
 SELECT SYS_OP_R2O(extractValue(P.RES, '/Resource/XMLRef')) INTO ACL_ID
 FROM XDB.XDB$ACL A, PATH_VIEW P
 WHERE extractValue(P.RES, '/Resource/XMLRef') = REF(A) AND
 EQUALS_PATH(P.RES, ACL_PATH) = 1;

DBMS_XDBZ.ValidateACL(ACL_ID);
 IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'APEX_030200',
 'connect') IS NULL THEN
 DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
 'APEX_030200', TRUE, 'connect');
 END IF;

EXCEPTION
 -- When no ACL has been assigned to '*'.
 WHEN NO_DATA_FOUND THEN
 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('power_users.xml',
 'ACL that lets power users to connect to everywhere',
 'APEX_030200', TRUE, 'connect');
 DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('power_users.xml','*');
END;
/
COMMIT;












Oracle APEX Licnesing and Multiple Oracle APEX Instances

Is Oracle APEX licensed ? 

Oracle APEX is absolute free in case you have a licensed Oracle Database (EE)  or with the Oracle DB XE version which has a limited free space .

Well Oracle 11g XE is the free version and comes with the  default Oracle APEX version 4.0 but you cannot use Oracle DB XE for the commerical use when data exceeds more then 4GB .

Oracle 11g EE which is licensed version comes with the Oracle APEX 3.1.2  version . Incase you wanna upgarde the Oracle APEX to higher version you need not have an licnese for it . You can directly download the latest version from OTN and upgrade it .

Can You install Two APEX  instance on the same database 
(with same or different version of apex ) ?
   You cannot install more than one instance of apex with the a database instance , as each database comes with a unique apex schema and its  related module to excute the apex packages   , you cannot install more than one .


Why the need of  Multiple Oracle APEX instance ?

1) A client may have few module which exsists on the different version of apex and still they want to continue with it , for example apex 3.2 .  In case they want to start the new module of the oracle apex with the latest version of apex  , on the same database , they actually cannot go for it as it may require lots of  support work  , which may not be their priortiy right now .

So , in case they want to have a new latest version of the apex instance on the same database they cannot go for it , unless they have a new db instance for it or upgrade the older one .



Can we use the same oracle http server for two different oracle apex instances residing on the two different databases ?

Yes , you can use the same oracle http server for two different instance of the apex residing on the two different databases , but only thing is that you need to create a new dad.conf file for the another extra instance and configure it .


In case you have Oracle Database installed , now you need to do the following  steps to just set up Oracle APEX enabled in your environment or enable it with full functionality .



Saturday, June 9, 2012

Changing Background color in Oracle APEX.

We all get many requirements when it comes to changing the background color or style change in APEX , but we feel handicapped many times especially when  we are accessing the remote server and we donot have rights to change the core css or images of the theme.

We can still do it in apex , using shared components . 

Lets Try to change some background color of my theme .

Now the first question is how do i come to know what is that i actually need to edit . 

Steps:-

1) Create an application with  default theme , currenlty i had choosen as ( Mightnight blue theme which comes as one of the options of the apex themes).


2) Run the application , right click on the page , got to the    VIEW PAGE SOURCE  option .

3)  Try to find the test
  <link rel="style sheet" href="/i/themes/theme_3/css/theme_4_0.css" type="text/css"/> in the source of the page .


4) Click on the link /i/themes/theme_3/css/theme_4_0.css and open it in new tab .ou

5) Now you can view the whole css related to the theme you have choosen .



and soooo onn....


Currently lets try to edit the background color of the theme.


To edit it , there can be two ways , one thru local and another @ server side , the best example i can give is to edit @ shared components level such that we can test this example on oracle apex site.


6) Create an .css file as blackbg.css file .


body { background-color:black; min-width: 980px; max-width: 1920px; margin: 0 0 24px 0; padding: 0; font-family: Arial, Helvetica, Geneva, sans-serif; font-size: 12px; color: #CCC; }


try to change the background color of it , as you wish too . here i opted for black .


7) Upload this file to the application shared components , while uploading it , you can choose the application level or the workspace level upload.

Workspace upload can be used for multiple application , where as the application upload will be specific to the application for which it has been uploaded .



8) Now next step is to make a reference to this css using

<link rel="stylesheet" href="#WORKSPACE_IMAGES#blackbg.css" type="text/css">


one shud make sure that we are including this link only after the 

<link rel="style sheet" href="/i/themes/theme_3/css/theme_4_0.css" type="text/css" />

Else this last link will override your css and gives the same background o/p as that was previous .




9) Now run the application .


Troubles faced during this :-

1) i had uploaded the file and again when i changed the color directly in the shared components and saved , then run the application the changes were not reflected @ all.

Then i had deleted the file completely and uploaded the chnaged file from the system itself.


Now this was running perfectly.



2) I uploaded the changed file but though the page source was showing the old css uploaded , i had deleted all the files which i had upload but the old version of the css link was still accessible on from my page source view .

Need to check the root cause of this and get back on this .








Tuesday, June 5, 2012

Report on Function Returning Query


1)Create A page and Create a basic report on the page with the option of the source as the sql query (PLSQL function body returning the sql query).


2) Create an function which will take the table name as the input and return the query as the o/p.


create or replace function "QUERY_FOR_REPORT"
(table_name in VARCHAR2 default 'EMP')
return VARCHAR2
is
l_query varchar2(2000);
begin
l_query:='select * from '||table_name;
return l_query;
end;


3)
Call this function on the report as following .
BEGIN
RETURN QUERY_FOR_REPORT('AGENDA ' ||';');
END;



4) to check the o/p pf your function you can  run the same function on the sql workshop and check it.
Declare
l_r varchar(200):=QUERY_FOR_REPORT('AGENDA ' ||';');
Begin
dbms_output.put_line(l_r);
END;


5) now runt the page , it displays the report .

Changing the Element Properties on fly , example making a field required or optional on fly


  • Create an page item in apex called AGE.
  • Add the span tag to thew item label along with the label of the item as  
  • <
    span id="P1_AGE"
    >
    Age of Customer
    :
    <
    /span
    >
Now in case you want to make the age as mandatory field depending on any other field lets call it as ...Admission_class .
In case the Admission_class field is as play school then the age is not required to be made as mandatory and in the case when admission_class is choosen as  KG then this field AGE needs to be made as mandatory.
So lets create one more item called p1_admission_Class .
Lets call a javascript on the change of the field admission_Class to make the other field as mandatory.
function show_fields_mandatory(v1)
{
if (v1=='PLAY SCHOOL')
{
// alert(v1);
var x=document.getElementById("P1_Admission_class');
x.style.color = 'red';
}
if (v1=='KG')
{
// alert(v1);
var y=document.getElementById("P1_ADMISSION_CLASS");
var x=document.getElementById("P1_AGE");
x.style.color = 'black';
y.selectedIndex = 0;
}
}
call this javascript on the admission_class field .

Reports Quieries and Reports Layouts in Oracle APEX


Report Queries N  Report Layouts in Oracle APEX
Report Queries :- A report query is a printable document, which can be integrated with an application using buttons, list items, branches or any other navigational components that allow for using URLs as targets.
A report query is based on a standard SQL query. It can be downloaded as a PDF document, a Word document (RTF based), an Excel Spreadsheet (HTML based) or as an HTML file. The layout of a report query is customizable using RTF templates.
Report Layout :-   Use Report Layouts in conjunction with a report region or report query to render data in a printer-friendly format, such as PDF, Word or Excel. A report layout can be designed using the Template Builder Word plug-in and uploaded as a file of type RTF or XSL-FO. Report regions use a generic XSL-FO layout, which is customizable.
Report Query concept is used not only for the External 3rd party tool printing but it can be even used to execute the report and send the report as the attachment to the email  when called from the  process or the scheduler job.

Creating Report Query :-

Steps :-
  • Oracle Apex Development environment login with developer access .
  • Application Builder.
  • Database application.
  • Choose any existing application or create new one.
  • Click on application for edit mode of it  à shared components.
  • Go to Reports Region of the Shared components
  • Click on the Reports Layout Link
  • Click on the Create Button.
  • Choose the option of the header naming for the columns . Currently you can go with generic column .
  • Click on the Next icon  and name the layout as emplayout  or anything. This layout is nothing but the actual look and feel of the report which will be displayed during the report printing . modifiying the heading or the color attributes in case you want to .
  • Click on the create icon.
  • The Report Layout is created and you can see the following report layout listed in your shared components.


Creating the Report Query:-
  • This is the place where you will be writing your actual query.
  • Shared components  à click on the Report Queries icon -> create Icon.
  • Specify the report query name , output format and view file as attachment in case you want to send this as attachment in your email notification and click next
  • Specify the Query along with the bind variable in case you need to specify, and then click on the set bind variable button .
  • Now you can test the report by passing the values of your bind variable and see the output.
Once you enter value click on test and see the output and the click on Apply Changes Button.
You will be taken back to the same screen as shown above.
  • Click on the next icon and specify the source layout as name of the layout which you have created or use any file that contains the layout and upload it else default it to use the generic layout,.
  • Click on next icon.
  • Using this url you can call your report created in the shared components from anywhere , I mean button , navigation , redirect , list .
  • Click on the test report icon, to check whether the report is being printed or not.
In a case its giving the error as above then, you need to do the following.
"ORA-20001: The printing engine could not be reached because either the URL specified is incorrect or a proxy URL needs to be specified."
This is because of the grants. See the details mentioned below:-
“ORA-20001: The printing engine could not be reached  top
By default, the ability to interact with network services is disabled in Oracle Database 11g release 1 (11.1). Therefore, if running Oracle Application Express with Oracle Database 11g release 1 (11.1), use the new DBMS_NETWORK_ACL_ADMIN package to grant connect privileges to any host for the FLOWS_030100 database user. Failing to grant these privileges results in issues with PDF/report printing, specifically, you will get the following error message:
ORA-20001: The printing engine could not be reached because either
The URL specified is incorrect or a proxy URL needs to be specified.
Follow the steps mentioned in the Oracle Application Express Installation Guide, Enabling Network Services in Oracle Database 11g."
Once done your report is ready to be used with any third party tool or email package .

SQL insert statement with returning clause


Declare
var1 number;
Begin
Insert into  tablename
(col1,col2 , ....) values ( value1,value2 ,....)
RETURNING
col1 into var1;
End;

popup in oracle apex


<script language="JavaScript" type="text/javascript">
  function callMyPopup (formItem1,formItem2,formItem3) {
    var formVal1 = document.getElementById(formItem1).value;
    var formVal2 = document.getElementById(formItem2).value;
    var formVal3 = document.getElementById(formItem3).value;
    var url;
  url = 'f?p=&APP_ID.:2:&APP_SESSION.::::P2_ENAME,P2_JOB,P2_SAL:' + formVal1 + ',' + formVal2 + ',' + formVal3 ;
  w = open(url,"winLov","Scrollbars=1,resizable=1,width=800,height=600");
  if (w.opener == null)
  w.opener = self;
  w.focus();
  }
</script>

Mobile Application in Oracle APEX


I am eagerly waiting for the apex 4.2 release it is just simple out of this world.
I had attended the siminar on the mobile application creation which was published in linked in , it was live and was just wonderful.
He had answered my all questions.
On the same day i had created this application in just next 2 hours .
It is just very very raw, i was too lazy to enhance it more :P
I was amazed with this.
The changes were not major when it comes to implementing the fucntionality, but the changes were only @ theme side, thats template level changes.
we have to simple include few jquery mobile libaray which are comptaible with our apex version and the use it , we can use all possible  mobile widgets and functioanlities available.
I was looking more deeper in it , one day saw a tutorial on oracle site to create data loader functionality.
I came across a screen shot that has a  mobile theme radio button befopre we choose a page , i quciky looked into all versions which i was holding but @last came to know that it is gona b released in apex 4.2.
Hence stopped worrying about the mobile themes any more as i know that oracle will do its best for it :P.
Eagerly waiting for Oracle APEX 4.2 . Please come fast come :P

Exploring few Oracle apex 4.1 features


Yesterday i was exploring Oracle apex 4.1, i was amazed with new features included .
Thanks to Oracle team for making Developer's  life easier :D
when ever i thought there is a particular problem with Oracle apex and i see it getting resolved with a very qucik release of new version :P.
Its great to see Oracle APEX is in BOOM  ...:P
1) Interactive Reports :-
* Email functionality has been included in the options.
* HTML download
*Enhanced Flash charts
2) Lists :-
This was the most wonderful option i had seen , i have not used it much in earlier versions so not aware of what is new , but i found many things as interesting.
I cud see that this one particular list cud act as n no of page components like
1) drop down menu ( this is awesome)
2)horizontal train
3) vertical wizard
4) tree with + symbol
5) Tree without + symbol
3) wizard based page is more enhanced .
4)feedback page i have implemented very first time , so but not aware a upgrades , but i found it to b grt .
5)Application level items are the items on the page levels, these can b used acrross application with :item_name, these are many used as cookies or the global variable for the security purpose.
6)Access Control administration :-
It s a page with a tabular form to add user to default access tables and a region to change the view mode of the application .
I need to have more detail of it .
7)Utilities :- These are just highlights of the apex 4.1 , the utilities are actually made  into two levels , one is @ application level
and another @sql workshop level.
Utilites @ application level :-
1) application dashboard :- it displays report of the application with respect to different aspects , component , security,page type,overview,application component.
2)change history:- It will list out the changes made , insert , alters, acess everything in detail this was not there before.
3)Recently updated pages
4)Export Repository
5)Debug Messages
6)Advisor
7) Upgrade application is to upgrade few upgradable regions or items of the applications like charts , reports wihtout ny coding just a click on upgarde.
8)Attribute dirictory
9)apex views
SQL    Workshop Utilities
1) Query  Builder with less bugs.
2)Repository as usual
3)Generate DDL
4)scripts
 5) Methods on tables , this will generate  all the possible methods on the table give then table name.  It include  md5 checksum . which c is awesome feature of it .
6)User Interface defaults
7)Manage Table dictionary
8)schema comparision
9) Object reports

Upgarding apex 4.0 to 4.1


Once you install the 11gxe , you get the 4.0 installed by default.
Now, to cross check it , start ur database first.
Once the database is up, type this url in the browser
http://127.0.0.1:8080/apex
this is the default apex and it will take you to the adminidatration screen , you can create workspace and proceed further.
Incase you wanna upgrade it to the apex 4.1.
Download Zip file of apex4.1 and unzip it to c:\apex41\apex
once done.
Go to the command prompt , go to the C:apex41\apex\ and login to sql as sys as sysdba
SQlplus
username : sys as sysdba
password:- the password u gave for admin during installation of oracle db.
sqlplus>@apexins SYSAUX SYSAUX TEMP/i/;
this will update the schema of your database.
once done
sqlplus>@apxldimg.sql C:\apex41
done :D
now acces the same url as mentioned above , go and create workspace and login to workspace and see the apex version installed :D