Thursday 10 December 2015

Conditional display items based on lov : apex oracle 5.0



Conditional "display only" LOV:

Say you have a static LOV.
Place 2 items on the page :
P1_LOV and P1_Y.
P1_Y is always "1".
P1_LOV value is driven by session state value. Session state is set by the "before header" process.
I want to load the page, and set the P1_LOV to "display only" state if P1_Y = 1.

Solution:

Dynamic Action:
Event: change
Selection type: Item(s)
Item(s): P1_Y
Condition: equal to
Value: 1
And then add a true action: Disable LOV, Fire On Page Load=Yes (if needed add also a false action accordingly).

Tuesday 24 November 2015

Navigation Bar


Navigation Bar- oracle apex 5.0

Pranav.shahRookie
    Hello,
    Question 1 : i want to use image and text in Navigation bar like..
    q1.PNG
    Instead of Sample App i need Image (logo) but its not working.
    i have achieved above in two steps.
    First step:
    Application Attributes - > Logo Type ->Sample App
    Second step :
    Theme Roller :
    .t-Header-logo a span { 
      font-size: 3.8rem; 
    }
    .t-Header-logo a span:after { 
      font-size: 1.8rem; 
      content: " - This is a sample application."; 
    Question 2:
    how can i break this text its dynamic.

    q2.PNG

    like ...
    Nobody
    Tuesday, November 24,2015
    log out
    Right now its in one line i want to break it.

    Solution:
    ---------------------------------
    Created One Application level Item and Computation.
    --------------------------------------------------
    Call them in Global Page(create another computation in page 0 with static values - Call it Before Header)
    . --------------------------- 
    Create Table Structure in HTMl format in it with Before Header Optinon Selected.
    ---------------------------------------- 
    Call Page 0 Computation in Shared Components -> User Interface attributes -> Text -> &logo.
    ---------------------------------------- 
    you will have Image || text both at same time.

    Thursday 19 November 2015

    Add Select Check-box in classic report

    Classic report and would like to add a column with a checkbox so the user can select multiple rows and perform an action on all selected rows.

    to add a checkbox to your classic report use apex_item.checkbox API function like this:
    1. select  
    2.     APEX_ITEM.CHECKBOX(p_idx=>1, p_value=>DEPTNO)  as select_dept,  
    3.     DEPTNO as DEPTNO,  
    4.     DNAME as DNAME,  
    5.     LOC as LOC  
    6. from DEPT  

    Then you can access checked values (for example in a page process)
    1. declare  
    2. v_deleted_depts number := 0;  
    3. begin  
    4. FOR i in 1..APEX_APPLICATION.G_F01.count  
    5. LOOP  
    6.   v_deleted_depts := v_deleted_depts + 1;  
    7.   delete from dept where deptno = APEX_APPLICATION.G_F01(i);  
    8. END LOOP;  
    9. :P1_DEPTCOUNT := v_deleted_depts;  
    10. end;  

    Authentication methods in Oracle Apex.

    Authentication methods

    APEX provides us with a couple of authentication schemes by default.
    Some of which are:
    • Application Express – Every user must exist as an APEX user
    • Database Account – Every user must have a database account
    • Open Door Credentials
    Authentication Schemas Options
    The custom authentication is a good option so you can keep full control over how you want this to work. When you have created your application, or at least the start pages, you go to the shared components page where you go select the Authentication Schemes from the Security section.
    Shared ComponentsSecurity

    Custom authentication scheme

    When you want to create your own authentication scheme you must create a (packaged) function that must obey a few rules. The function must accept two parameters: the first is the username, and the second is the password. Both these parameters are varchar2 type. Remember, the username and password parameter are sent as clear text. If you want your application to be more secure, you may want to obfuscate the values before sending them to the authentication function. The simplest form of the authentication function is like this:
     FUNCTION authenticate(username_in IN VARCHAR2
                          ,password_in IN VARCHAR2)
     RETURN BOOLEAN
     IS
     BEGIN
       RETURN TRUE;
     END authenticate;
    This function is pretty much the same as the open door version, but it’s the start of a real authentication. You create a new authentication scheme by selecting the create button on the screen with the list of defined schemes for this application.
    Create
    When you create a new scheme you can choose to create a scheme based on an existing scheme, but in this case we want to create a new scheme based on one of the pre-configured schemes.
    Create Wizard 01
    In this screen you can create the code for the Authentication Function. You can write the code for the function in this screen, but you can also create the function as a stored (package) function so you can use your IDE to create the code.
    Authentication Scheme
    To create a real authentication scheme you need to do more than just return true for whatever parameters are sent in. You can write code to check the usernames and their passwords, but that would mean you would have to alter the code every time you want to add or remove a user. You are better off using a table which stores the users for the application. The table can look like this:
    Table USERS
    IDNUMBER(15,0)Primary key
    USERNAMEVARCHAR2(50)Unique constraint
    PASSWORDVARCHAR2(50)
    You can this table to save more information on the user, such as the email address but for this example that is not necessary.
    The function could be updated to something like this:
     FUNCTION authenticate(username_in IN VARCHAR2
                                            ,password_in IN VARCHAR2) RETURN BOOLEAN IS
       l_value       NUMBER;
       l_returnvalue BOOLEAN;
     BEGIN
       BEGIN
         SELECT 1
           INTO l_value
           FROM users
          WHERE 1 = 1
            AND upper(users.username) = upper(username_in)
            AND upper(users.password) = upper(password_in);
       EXCEPTION
         WHEN no_data_found
              OR too_many_rows THEN
           l_value := 0;
         WHEN OTHERS THEN
           l_value := 0;
       END;
       l_returnvalue := l_value = 1;
       RETURN l_returnvalue;
     END;
    In this example the username and password are validated against the data in the table. The username and password are stored in plain text in the database, which is not a good idea. You may want to obfuscate the password before storing it.
    This is where creating a package for the authentication functions comes in handy. You want to use the same function for obfuscating the password when you store the data as when you check the credentials. You can do this by creating a private function in the package that does the obfuscating and use the outcome of this function for both storing the data and checking the entered credentials. A package like this could look like this:
    PACKAGE redgate_authentication IS
      PROCEDURE adduser(username_in IN VARCHAR2
                       ,password_in IN VARCHAR2);
      FUNCTION authenticate(username_in IN VARCHAR2
                           ,password_in IN VARCHAR2) RETURN BOOLEAN;
    END redgate_authentication;
    PACKAGE BODY redgate_authentication IS
      -- private functions 
    
      /******************************************************************************\ || function : obfuscate || parameters : text_in -=> text to be obfuscated || || return value: obfuscated value || || purpose : Hash the value of text_in || || author : PBA || (C) 2013 : Patrick Barel \******************************************************************************/
      FUNCTION obfuscate(text_in IN VARCHAR2) RETURN RAW IS
        l_returnvalue RAW(16);
      BEGIN
        dbms_obfuscation_toolkit.md5(input => utl_raw.cast_to_raw(text_in), checksum => l_returnvalue);
        RETURN l_returnvalue;
      END obfuscate;
      -- public functions 
    
      /******************************************************************************\ || procedure : adduser || parameters : username_in -=> Username of the user to be authenticated || password_in -=> Password of the user to be authenticated || || purpose : Add a user to the users table || || author : PBA || (C) 2013 : Patrick Barel \******************************************************************************/
      PROCEDURE adduser(username_in IN VARCHAR2
                       ,password_in IN VARCHAR2) IS
        l_obfuscated_password users.password%TYPE;
      BEGIN
        l_obfuscated_password := obfuscate(text_in => password_in);
        INSERT INTO users
          (id
          ,username
          ,password)
        VALUES
          (users_seq.nextval
          ,username_in
          ,l_obfuscated_password);
        NULL;
      END adduser;
      /******************************************************************************\ || function : authenticate || parameters : username_in -=> Username of the user to be authenticated || password_in -=> Password of the user to be authenticated || || return value: TRUE -=> User is authenticated || FALSE -=> User is not authenticated || || purpose : Check if a user is authenticated based on the username and || password supplied || || author : PBA || (C) 2013 : Patrick Barel \******************************************************************************/
      FUNCTION authenticate(username_in IN VARCHAR2
                           ,password_in IN VARCHAR2) RETURN BOOLEAN IS
        l_obfuscated_password users.password%TYPE;
        l_value               NUMBER;
        l_returnvalue         BOOLEAN;
      BEGIN
        l_obfuscated_password := obfuscate(text_in => password_in);
        BEGIN
          SELECT 1
            INTO l_value
            FROM users
           WHERE 1 = 1
             AND upper(users.username) = upper(username_in)
             AND users.password = l_obfuscated_password;
        EXCEPTION
          WHEN no_data_found
               OR too_many_rows THEN
            l_value := 0;
          WHEN OTHERS THEN
            l_value := 0;
        END;
        l_returnvalue := l_value = 1;
        RETURN l_returnvalue;
      END authenticate;
    END redgate_authentication;
    Now all you have to do is tell your application that it needs to reference the custom authentication schema. When you created the new authentication schema your application was automatically told to use the new schema, but if you created an authentication scheme in one application and you created a new application where you copied the authentication scheme from an existing application you have to do this yourself. It can also happen that during development you want to use a different authentication scheme than you might in production.
    Action Processed

    Change Apex Oracle 4.0 Internal User Password

    Change Apex Oracle 4.0 Internal User Password using sql script if someone forgets it by mistake.



    set define '&'

    set verify off

    prompt Enter a value below for the password for the Application Express ADMIN user.
    prompt
    prompt

    accept PASSWD CHAR prompt 'Enter a password for the ADMIN user              [] ' HIDE

    alter session set current_schema = APEX_040000;

    prompt ...changing password for ADMIN

    begin

        wwv_flow_security.g_security_group_id := 10;
        wwv_flow_security.g_user := 'ADMIN';
        wwv_flow_security.g_import_in_progress := true;

        for c1 in (select user_id
                     from wwv_flow_fnd_user
                    where security_group_id = wwv_flow_security.g_security_group_id
                      and user_name = wwv_flow_security.g_user) loop

            wwv_flow_fnd_user_api.edit_fnd_user(
                p_user_id       => c1.user_id,
                p_user_name     => wwv_flow_security.g_user,
                p_web_password  => '&PASSWD',
                p_new_password  => '&PASSWD');
        end loop;

        wwv_flow_security.g_import_in_progress := false;

    end;
    /
    commit;

    new character set must be a superset of old character set

    ORA-12712: new character set must be a superset of old character set

    In Oracle Database 10g you can get this error.

    For solve this error you can use

    ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

    SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
    ALTER DATABASE CHARACTER SET AL32UTF8
    *
    ERROR at line 1:
    ORA-12712: new character set must be a superset of old character set


    SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

    Database altered.

    All steps for change database character parameter.

    SQL> SHUTDOWN IMMEDIATE;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> STARTUP RESTRICT;
    ORACLE instance started.

    Total System Global Area  612368384 bytes
    Fixed Size                  1292036 bytes
    Variable Size             268437756 bytes
    Database Buffers          335544320 bytes
    Redo Buffers                7094272 bytes
    Database mounted.
    Database opened.
    SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

    System altered.

    SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

    System altered.

    SQL>
    SQL>
    SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
    ALTER DATABASE CHARACTER SET AL32UTF8
    *
    ERROR at line 1:
    ORA-12712: new character set must be a superset of old character set


    SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;

    Database altered.

    SQL> SHUTDOWN IMMEDIATE;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> STARTUP;
    ORACLE instance started.

    Total System Global Area  612368384 bytes
    Fixed Size                  1292036 bytes
    Variable Size             272632060 bytes
    Database Buffers          331350016 bytes
    Redo Buffers                7094272 bytes
    Database mounted.
    Database opened.

    Wednesday 30 September 2015

    Find all tables in db with column name of a particular string.

    Simple Steps to Do!!

    Without System Privileges :
    select table_name from all_tab_columns where column_name='THE_COLUMN_YOU_LOOK_FOR';
    With System Privileges:
    select table_name from dba_tab_columns where column_name='THE_COLUMN_YOU_LOOK_FOR';

    Thursday 24 September 2015

    Change default (first) page in Apex

    When you make your first application in APEX you typically have as default page 1 or the login page (101). If you want to change your default (first) page you need to have a look at three different places. Let's say we want to have page 9 as default page:

    1) Application Builder > Your Application > Page 101 > Processes (Page Processing) > Login
    Change Process to:
     wwv_flow_custom_auth_std.login(
       P_UNAME       => :P101_USERNAME,
       P_PASSWORD    => :P101_PASSWORD,
       P_SESSION_ID  => v('APP_SESSION'),
       P_FLOW_PAGE   => :APP_ID||':9'
       );
    Whenever somebody logs in we want him to go to page 9.

    2) Shared Components > Security > Authentication Schemes > Your AuthenticationChange the Logout URL: wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:9
    If somebody logged out, we set the default page to 9 as that's our default page.

    3) Shared Components > Security > Edit Security AttributesChange the Home Link to: f?p=&APP_ID.:9:&SESSION.
    If no page is specified this is the page to go to for ex. f?p=100 means we're going to application 100 with as default page, the page specified in the Home Link. You can also reference this url by #HOME_LINK#.

    Thursday 3 September 2015

    ACL in Oracle

    The DBMS_NETWORK_ACL_ADMIN package provides the interface to administer the network Access Control List (ACL).

    Oracle Database provides classic database security such as row-level and column-level secure access by database users. It also provides fine-grained access control for table data and for resources in Oracle XML DB Repository, for secure access by Oracle Fusion users (who are not necessarily database users). This chapter describes the access control lists and security classes that allow such fine-grained access control. It includes how to create, set, and modify ACLs and how ACL security interacts with other Oracle Database security mechanisms.

    For More Detail Visit: http://docs.oracle.com/cd/B28359_01/appdev.111/b28419/d_networkacl_adm.htm

    BEGIN
      DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl         => 'www.xml',
                                        description => 'WWW ACL',
                                        principal   => 'SCOTT',
                                        is_grant    => true,
                                        privilege   => 'connect');
     
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(acl       => 'www.xml',
                                           principal => 'SCOTT',
                                           is_grant  => true,
                                           privilege => 'resolve');
     
      DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL(acl  => 'www.xml',
                                        host => 'www.us.oracle.com');
    END;
    /
    COMMIT;

    java script calculation in tabular form



    Today i found very interesting Question on Apex forum

    Question:

    Java script Calculation in Tabular form apex oracle 5.0
    So, basically it something like there are multiple columns and each column will have numeric and character values.We need to calculate numeric values and give its particular output(result).

    Java script:

    1. sal=  (parent_row.find('input[name=f05]').val().replace(/,/g,'') == ' ') ? 0 : 
    2. parseFloat(parent_row.find('input[name=f05]').val().replace(/,/g,'') );     

    Everything else remain same.



    Wednesday 2 September 2015

    How to add Logo and Text in your Page(region)

    I just found this question on apex oracle forum and its quite interesting too.
    Question :

    So, basically there is one logo,some random text and report on same page.


    and we said...
    demo

    SHA - 512 error workaround

    Error : Pages with checksum required produce error: The cryptographic function "SH512" is not supported on this system

    Solution:
    This is basically happens when-ever you are migrating your application from Cloud base to Local Server.Due to change in EPG and Apex version.
    Make sure you are running same version of oracle.

    Example:
    Cloud : www.apexoracle.com (cloud) uses 12 c Enterprise Edition and Apex oracle 5.0
    Local Server : Apex verion < 5.0 and Sql <12 then above error will popup

    So basically make sure Apex version and database version are same on local system then you are good to go else you have to make changes in LOCAL APEX 5.0.

    You have to go to Shared Components > Security Attributes and click on the Expire Bookmarks button, where you can change the algorithm.

    LinkedIN

    Enable - Disable items in apex oracle


    Mainly two ways for disabling your Item in apex oracle.
    Demo

    * create Dynamic action for Item

          select which item you want to Disable in Dynamic action. By following given methods in demo

    * Just put READONLY in Edit item Html Attributes.

    Which one is more preferable!!!
        So, basically both will work as shown in demo but when ever you want to submit your page values(reports,forms) then Readonly will allow us to submit values to the database.
      If you disable items using Dynamic action then that items will be dead for apex and it will not allow us to submit it.


    Tuesday 1 September 2015

    Known Issues - Application Express 5.0.1

    Known Issues - Application Express 5.0.1:

    Application Express 5.0.1 was released on July 15, 2015.
    REF: http://www.oracle.com/technetwork/developer-tools/apex/downloads/apex-501-known-issues-2606305.html
    • 21469957 - ORA-14552 BECAUSE OF LOV QUERY WITH BIND VARS IN CLASSIC REPORT
      When running a classic report that includes a call to apex_item.select_list_from_lov, the report fails with ORA-14552 if the LOV definition contains a bind variable.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21537995 - STATIC IMAGES BROKEN FOR OLD WORKSPACES WHEN USING APEX 5.0 AND ORDS 3
      If an instance has workspaces that were created before Application Express 4.1 and Oracle REST Data Services 3 is being used, static image links will not be displayed.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21501621 - CHANGE WORKSPACE IN DEV ENV AUTOMATICALLY LOGS IN TO SAME WORKSPACE
      After applying the 5.0.1 patch, Change Workspace (which is available for header based authentication and single sign-on) in the development environment automatically logs in to the same workspace again.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21479385 - SAMPLE GEOLOCATION LOCATION SHOWCASE ALWAYS INDICATES NO HTTP ACCESS
      In APEX 5.0.1, even when network HTTP access is configured properly, the Sample Geolocation Showcase application will display the "No HTTP access to Elocation Geocoder Service” notification.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21473086 - PKGAPP: LIVEPOLL AUTHENTICATED POLLS DON'T WORK 
      In APEX 5.0.1, the LivePoll packaged application has a potential infinite redirect loop when a user tries to access a poll which requires authentication, preventing users from completing these sorts of polls.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21464312 - ORA-02091: TRANSACTION ROLLED BACK WHEN IMPORTING APP IN SQLPLUS
      When installing an application in SQL*Plus, the import fails with ORA-02091 if the application was exported in 4.1 or an older version and the application contains invalid references to shared components. Application Express raises this error on the final commit statement for invalid references from breadcrumb region to breadcrumb, list region to list or button to button template.
      Workaround: Install the application in Application Builder or fix the broken references in the old version before exporting again.
    • 21464648 - REFRESH THEME DELETES DISPLAY POINTS IN PAGE AND REGION TEMPLATES
      Using the 'Refreshing Theme' functionality deletes the Display Points configuration of all Page and Region Templates. This has the negative side effects in that Page Designer is not able to show friendly names for REGION_POSITION_xx display points anymore. When running the application the engine no longer knows if the region position supports a grid or not!
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
      Note: If you have already refreshed the theme after upgrading to Application Express 5.0.1, applying the patchset exception and refreshing the theme again will restore the display points.
    • 21463521 - IMAGES DIRECTORY NOT UP-TO-DATE WARNING AFTER APPLYING 5.0.1 PATCHSET
      After applying the Application Express 5.0.1 patchset, developers might receive the below alert when they try to login into the Application Builder although the images files from the patchset have been copied:
      There is a problem with your environment because the Application Express files are not up-to-date! The files for version 5.0.0.00.31 have been loaded, but 5.0.1.00.06 is expected. Please verify that you have copied the images directory to your application server as instructed in the Installation Guide.
      Workaround: Perform a ‘Force Refresh’ in your browser when viewing the Application Builder Login page or clear browser cache. See http://www.wikihow.com/Force-Refresh-in-Your-Internet-Browser
    • 21445226 - COLUMN CSS CLASSES NOT AVAILABLE IN TRANSLATED VERSION
      If CSS classes are specified for the Grid Layout “Column CSS Classes” attribute of Regions, Items or Buttons then those classes will only be used for the primary application language, but will not be present for any translated language.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21441233 - DB APP SSO INTERNAL ERROR IF APP HAS CLEANUP PL/SQL CODE
      Database applications which use SSO authentication and have a non-empty Cleanup PL/SQL code block run into an internal error when processing the wwv_flow_custom_auth_sso.process_success callback.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21434612 - WEBSHEET SSO ERROR: ERROR PROCESSING AUTHENTICATION
      Websheets which use SSO authentication run into an error processing the authentication when processing the wwv_flow_custom_auth_sso.process_success callback.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number21441233.
    • 21435234 - PLUG-INS: REGION COLUMNS NOT FOUND FOR TRANSLATED APPS
      Regions of type “Column Toggle Report”, “Reflow Report” or custom Plug-ins using the “Region Columns” feature will fail with "ORA-00936: missing expression” when running a translated version of an application.
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21410037 - HTTP_ERROR_STATUS_ON_ERROR_PAGE_ENABLED IS IGNORED
      The instance parameter HTTP_ERROR_STATUS_ON_ERROR_PAGE_ENABLED is ignored for non-internal errors. (See also "Configuring Unhandled Errors" -https://docs.oracle.com/cd/E59726_01/doc.50/e39151/adm_wrkspc002.htm#BABJHHJI)
      Solution: There is a patchset exception for this available on My Oracle Support - search by bug number.
    • 21266549 - APEX_JSON.PARSE/TO_XMLTYPE RETURNING ORA-06502
      APEX_JSON can parse very large JSON objects, but the maximum length of any string member value is limited to 32767 bytes (i.e. the maximum size of a varchar2). Attempts to parse JSON with longer string member values will result in ORA-06502 Character string buffer too small.
      Workaround: There is no workaround currently available.
    • 11061801 - ORA-00604, ORA-06502 and ORA-06512 errors during index creation.
      If Oracle Workspace Manager is in use in the Oracle Database where you attempt to install Application Express, the installation of indexes may fail.
      Solution: Apply Database Patch 11061801 prior to attempting the upgrade. Search for 11061801 on the Patches tab at support.oracle.com to download the patch.
      Workaround: If you have not installed the patch, then you can workaorund the bug by adding spaces after the table name and each comma.
      For example, change
      create index wwv_flow_preferences$_fkidx on wwv_flow_preferences$(security_group_id,user_id,preference_name)
      to the following statement
      create index wwv_flow_preferences$_fkidx on wwv_flow_preferences$ (security_group_id, user_id, preference_name).
    • 20143941 - Interactive Report Fixed Headings not supported where report renders a complex table
      With Application Express 5.0, Interactive Reports now provide the capability to define fixed column headings, such that the header remains in a fixed in position when the user is scrolling down the report. When a ‘Control Break’ or a ‘Pivot’ is applied, the headings will no longer be fixed.
      Workaround: There is no workaround currently available.
    • 20806980 - Interactive Report Column Filter fails when column value is a link
      If an Interactive Report has a column value that is a link (where the link markup is constructed in the report query) , attempting to define a filter on this value from the column header menu fails. The link may have been defined in the report query as opposed to using the declarative column link support , for example in the case where you want to conditionally render a link, based on some query logic. Note: In previous versions of Application Express, this would work in setting the filter , however this would also have the negative consequence that you would be taken to the link target when selecting the filter value in the column header menu.
      Workaround: To workaround this issue, we recommend the following change to your report:
      1. Add another column to your query, that selects the equivalent of the link text from the link, and define a column alias of 'my_link_display'. This will be the value used in the column header menu.
      2. Change the 'my_link' column to be of type 'Hidden Column'.
      3. In the 'my_link_display' column, set the column heading to be the same as the 'my_link' column and set 'HTML Expression' to be '#MY_LINK#'. Keep the default 'Escape Special Characters' as 'Yes'.
      4. Run the page, and as this is an Interactive Report, you may need to re-order the columns to have the new column in the same position as the old one, via the 'Actions > Select Columns' dialog. Then save this as the defualt report via 'Actions > Save Report > 'Save as Default Report Settings').
      5. Observe now that the link still renders fine in the report, and the column header menu will now render just the 'my_link_display' value, which sets the filter correctly. You will also not be taken to the link target, as was the case in previous version of APEX.
      Note: For this example, we assume the original column name including the link is 'my_link'.
    • 20798913 - Migration from Legacy to CSS Calendar is broken if custom display was used
      Legacy calendar has two type of displaying event title (column or custom) . When the custom type is used, there is no automatic migration of the customized display text.
      Workaround: Change the SQL statement so that the custom column becomes a column that can be mapped to the Display Column attribute. Alternatively, use the Additional Information attribute to add a custom tooltip.

    Show values in right side of shuttle

    While working with select list and shuttle, when we want to display values into right side of shuttle depending upon selection from select ...