Cascading LOV in a Tab Form Help

version 4.0.2.00.07
Hello,
I've aquired an application that was written by someone else. I have a Tab Form that needs a Cascading LOV. There is code already in place, but I have questions about it that I'm hoping someone can help.
There's a LOV called Product Group that has an onChange in the Element Attributes:
onchange="f_load_platform(this.value,#ROWNUM#);"In the HTML Header is a javascript function:
function f_load_platform(p_pg_id, p_rownum){
   if (p_pg_id) {
      v_new_list = html_GetElement('f04_'+ f_zero_pad(p_rownum,4));
      v_curr_value = v_new_list.value;
      var get = new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=Get_Platform_From_Product_Group',0);
      get.add('P21_PRODUCT_GROUP_ID_PARAM',p_pg_id);
      gReturn = get.get();
      if (gReturn) {
         // Separate each combination set of values
         var NameArray = gReturn.split(",");
         // Reset dropdown list by making its length to a needed value
         v_new_list.length = NameArray.length-1;
         for(i=0; i < NameArray.length; i++){
           NameArrayList = NameArray.split("~");
if(NameArrayList[0] != "") {
v_new_list[i].value = NameArrayList[0];
v_new_list[i].text = NameArrayList[1];
if(NameArrayList[0] == v_curr_value) {
v_new_list.selectedIndex = i;
else {
v_new_list.length = 0;
function f_zero_pad(num,count)
var numZeropad = num + '';
while(numZeropad.length < count) {
numZeropad = "0" + numZeropad;
return numZeropad;
The Add Row button is set to:
Action: Redirect to URL
Execute Validations: Yes
URL Target: javascript:addRow();
When I debug the javascript the variable v_new_list shows as false. I can also see that p_rownum variable in the javascript function contains 0.  I don't know if that's correct.
Can someone help me with why this function does not return the values into the select list for the f04 item?
What other information can I provide?
Thanks,
Joe                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

Scott,
Thank you for replying.
While debugging the javascript, I can see that gReturn does contain a string of the Platforms for that Product Group ID.
What I don't know if it's correct is the call to: v_new_list = html_GetElement('f04_'+ f_zero_pad(p_rownum,4));
When I view source I see that f04_0000 is the Platform select list item.
<td headers="PLATFORM_ID" class="t13data"><label for="f04_0000" class="hideMe508">PLATFORM_ID</label><select name="f04"  id="f04_0000">...I don't know why the previous developer wrote a function to append the four zero's to the item, but I get the same result when I take out the padding call and replace it with the four zero's so the statement looks like this: v_new_list = html_GetElement('f04_0000');
I still can see that v_new_list is undefined in the debugger. Any other ideas?
Thanks,
Joe

Similar Messages

  • Cascading LOV in a Tabular form

    Hi Guys,
    I have read numerous articles on the generation of cascading LOV's in a tabular form but havent been able to get it working
    I have created an example in my apex workspace at:
    http://apex.oracle.com/pls/apex/f?p=4000:1500
    workspace XXAPPS
    Username guest
    Password demo
    app no 17551
    Page 2
    In my test scenario, I have an emp table, dept table and an office table.
    Within my tabular form(based on the emp table), I have a deptno column and an office column.
    Depending on what the user selects in the deptno column, I would like the corresponding list of offices associated to that dept LOV to be returned in the offices LOV.
    The table structure is
    EMP
    EMPNO
    ENAME
    JOB
    MGR
    HIREDATE
    SAL
    COMM
    DEPTNO
    OFFICE_ID
    DEPT
    DEPTNO
    DNAME
    LOC
    OFFICE
    OFFICE_ID
    OFFICE_NAME
    DEPTNO
    When the user selects a deptno in the LOV I would like that to control the values that are returned in the office LOV.
    I have used Jari's blog post:
    http://dbswh.webhop.net/dbswh/f?p=BLOG:READ:0::::ARTICLE:2003800346210117
    but as you can see it isn't quite working in that the office LOV is not returning anything.
    I am pretty new new to JavaScript and jQuery so am no doubt doing something wrong as some of the steps are causing errors and are confusing me a bit e.g. step2 is causing the page to return blank (I have commented the code out in the example)
    Any help would be greatly appreciated.
    Thanks
    Edited by: Cashy on 07-Mar-2012 04:05

    Hi fac,
    That is the full code as per the Jari's link on http://dbswh.webhop.net/dbswh/f?p=BLOG:READ:0::::ARTICLE:2003800346210117 (last but one section of instructions).
    I have got the id of the elements (f07 and f06) by using IE Developer toolbar and have passed those into the dynamic action.
    The child element is now just showing loading...
    It seems to me that the on demand process is not being called because I changed the code to:
    DECLARE
    l_sql VARCHAR2(32700);
    BEGIN
    IF APEX_APPLICATION.G_x01 IS NOT NULL OR APEX_APPLICATION.G_x01 IS NULL
    THEN raise_application_error(-20001,'code gets here');
    l_sql := 'SELECT competency_id AS RET
    ,competency_description AS DIS
    FROM XXMEL_FOCUS_COMPETENTCIES
    WHERE competency_category_id = ' || APEX_APPLICATION.G_x01 || '
    ORDER BY competency_description
    APEX_UTIL.JSON_FROM_SQL(l_sql);
    ELSE
    HTP.prn('{"row":[]}');
    END IF;
    just to see if the code is getting to the process but the error message that I put in the PL/SQL is not firing.
    Chris

  • Cascading LOVs in a tabular form - 2 fields

    Hi
    Since I cannot find the original thread to VIKAS sample application
    http://apex.oracle.com/pls/otn/f?p=24317:9:702016961545771
    anymore, could someone help me to adopt & strip down his example to only have 2 select fields dependent on each other
    This is the JavaScript I currently have from his site
    <HEADER>
    <script type="text/javascript">
    function appendToSelect(pSelect, pValue, pContent)
    var l_Opt = document.createElement("option");
    l_Opt.value = pValue;
    if(document.all){/* why is ie different ask bill */
    pSelect.options.add(l_Opt);
    l_Opt.innerText = pContent;
    else {
    l_Opt.appendChild(document.createTextNode(pContent));
    pSelect.appendChild(l_Opt);
    var g_products=new Object;
    var g_sales_reps=new Object;
    function replace_select_list(pSelect,pXML)
    var l_Count = pXML.getElementsByTagName("option").length;
    pSelect.length = 0;
    for(var i=0;i<l_Count;i++){
    var l_Opt_Xml = pXML.getElementsByTagName("option");
    appendToSelect(pSelect, l_Opt_Xml.getAttribute('value'), l_Opt_Xml.firstChild.nodeValue)
    function get_ajax_select_xml(pThis)
    var l_Return = null;
    var l_td=html_CascadeUpTill(pThis,'TD');
    var l_products=l_td.nextSibling.getElementsByTagName('select')[0];
    var old_product;
    if (l_products.options.length>0) old_product=html_SelectValue(l_products);
    var l_sales_reps=l_td.nextSibling.nextSibling.getElementsByTagName('select')[0];
    var old_rep;
    if (l_sales_reps.options.length>0) old_rep=html_SelectValue(l_sales_reps);
    if (g_products[pThis.value] && l_products) {
    replace_select_list(l_products,g_products[pThis.value]);
    if (old_product) html_SetSelectValue(l_products,old_product);
    else {
    var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_products',html_GetElement('pFlowStepId').value);
    get.add('TEMPORARY_ITEM',pThis.value);
    gReturn = get.get('XML');
    if(gReturn && l_products) { replace_select_list(l_products,gReturn); if (old_product) html_SetSelectValue(l_products,old_product);}
    g_products[pThis.value]=gReturn;
    get=null;
    if (g_sales_reps[pThis.value] && l_sales_reps) {
    replace_select_list(l_sales_reps,g_sales_reps[pThis.value]);
    if (old_rep) html_SetSelectValue(l_sales_reps,old_rep);
    else {
    var get = new htmldb_Get(null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=get_sales_reps',html_GetElement('pFlowStepId').value);
    get.add('TEMPORARY_ITEM',pThis.value);
    gReturn = get.get('XML');
    if(gReturn && l_sales_reps) {replace_select_list(l_sales_reps,gReturn);if (old_rep) html_SetSelectValue(l_sales_reps,old_rep);}
    g_sales_reps[pThis.value]=gReturn;
    get=null;
    </script>
    <FOOTER>
    <script type="text/javascript">
    function getCellIndex(pRow,pCell)
    if (document.all) {
    for(var j=0;i<pRow.cells.length;j++)
    if(pRow.cells[j] == pCell) return j;
    return pCell.cellIndex;
    function fire_onchange()
    var td_manufacturer=html_GetElement('MANUFACTURER');
    var l_cellindex=getCellIndex(td_manufacturer.parentNode,td_manufacturer);
    var l_table=html_CascadeUpTill(td_manufacturer,'TABLE');
    for (var j=1;j<l_table.rows.length;j++) {
    var l_cell=l_table.rows[j].cells[l_cellindex];
    var l_select=l_cell.getElementsByTagName('select')[0];
    if (l_select && l_select.onchange) l_select.onchange();
    fire_onchange();
    </script>
    ON DEMAND PROCESS (get_products)
    begin
    owa_util.mime_header('text/xml', FALSE );
    htp.p('Cache-Control: no-cache');
    htp.p('Pragma: no-cache');
    owa_util.http_header_close;
    htp.prn('<select>');
    for rec in (select val from products
    where manufacturer=:TEMPORARY_ITEM)
    loop
    htp.prn('<option value="' || rec.val || '">' || rec.val
    || '</option>');
    end loop;
    htp.prn('</select>');
    end;
    Also does it make a difference if the temporary item (condition) is a string value rather than a numeric value?
    Thanks a lot!
    David
    Message was edited by:
    swosh

    Swosh,
    I think that this approach is better than the one from Vikas:
    http://htmldb.oracle.com/pls/otn/f?p=31517:176
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Cascading LOV not working when the page is public

    Hi ,
    I have a cascading LOV in a tabular form which I have built using Denes Kubicek example from
    http://apex.oracle.com/pls/otn/f?p=31517:176:2702932664861989:::::
    Thanks to this wonderful examle I was able to make my cascading lov work.
    However when I make the page public , the second lov(which is based on the first one) does not work.
    Inorder to debug i changed get.get('XML') to get.get() and put an alert on it; to check if the select list string is being returned correctly by the application process - it returns null. The same alert returns the select list string when I put the authentication back on the page.
    Also I noticed when the page is public the application item (TAB_CASCADING_ITEM) is not getting populated with the value of the first select list.
    has anybody encountered the same issue ?
    Appreciate any suggestions?
    Thanks,
    Dippy

    One of the parameters in the htmldb_get is the page the process runs on. You should change that to the current page or make page 0 public as well.

  • Need help in completing Denes Kubicek code: cascading lov in tabular form

    Hi, I have been working off of Denes Kubicek demo for cascading lovs and have finally (!) gotten it working....sort of.
    Denes's instructions indicate that you must request an account in order to receive the code. I have done so, but have not had a response....can anyone help me on what needs to be done in oder to complete his instructions?
    thanks!!
    here is his helpful code:
    http://htmldb.oracle.com/pls/otn/f?p=31517:176:2537143614094776

    sorry. my query is now:
    select
    apex_item.hidden(11,seq_id) seq,
    apex_item.hidden (12,seq_id)||
    apex_item.select_list_from_query_XL(13,c013,'select distinct s.common_name d, s.species_itis r
    from species s, species_qc c
    where partner_id = '||:f200_issuing_agency||' and
    c.species_itis = s.species_itis order by s.common_name',
    'style="width:220px" '
    || 'onchange="f_set_casc_sel_list_item(this,'
    || 'f16_'
    || LPAD (seq_id, 4, '0')
    || ')"',
    'YES',
    '0',
    '- Select Species -',
    'f13_' || LPAD (seq_id,4, '0'),
    NULL,
    'NO'
    ) SPECIES_ITIS,
    apex_item.select_list_from_query(14,c014,'select disposition_desc d, disposition_code r
    from dispositions
    where displayed = 1 order by disposition_desc') DISPOSITION_CODE,
    apex_item.text(15,c015) reported_quantity,
    apex_item.select_list_from_query(16,c016,'SELECT DISTINCT unit_desc ,unit_of_measure
    FROM species_Qc s, units_of_measure u
    WHERE s.unit_of_measure = u.unit_measure
    AND species_itis = '||c013||'AND partner_id = '||:F200_ISSUING_AGENCY,
    'style="width:220px"',
    'YES',
    '0',
    '- Select Unit -',
    'f13_' || LPAD (seq_id, 4, '0'),
    NULL,
    'NO' ) UNIT_MEASURE,
    apex_item.SELECT_LIST_FROM_LOV(17,c017,'SALE_DISPOSITION') SALE_DISPOSITION_FLAG,
    apex_item.text(18,c018) PRICE,
    apex_item.text(19,c019) PERMIT_ID,
    apex_item.select_list_from_query(20,c020,'select market_desc d, market_code r
    FROM market_categories
    where market_code in (select distinct market_code
    from species_qc
    where species_itis = '||c013||'
    and partner_id = '||:F200_ISSUING_AGENCY||')',
    'style="width:220px"',
    'YES',
    '0',
    '- Select Market -',
    'f13_' || LPAD (seq_id, 4, '0'),
    NULL,
    'NO' ) MARKET_CODE,
    apex_item.text(21,c021) GRADE_CODE,
    apex_item.text(22,c022) trip_id
    from apex_collections c
    where collection_name = 'CATCH_C' and
    c.c022 = :F200_CURRENT_TRIP_ID
    UNION ALL
    select
    apex_item.hidden(11,null) seq,
    apex_item.hidden (12,null)||
    apex_item.select_list_from_query_XL(13,0,'select distinct s.common_name d, s.species_itis r
    from species s, species_qc c
    where partner_id = '||:f200_issuing_agency||' and
    c.species_itis = s.species_itis order by s.common_name',
    'style="width:220px" '
    || 'onchange="f_set_casc_sel_list_item(this,'
    || 'f16_'
    || LPAD (9900 + LEVEL, 4, '0')
    || ')"',
    'YES',
    '0',
    '- Select Species -',
    'f13_' || LPAD (9900 + LEVEL,4, '0'),
    NULL,
    'NO'
    ) SPECIES_ITIS,
    apex_item.select_list_from_query(14,null,'select disposition_desc d, disposition_code r
    from dispositions
    where displayed = 1 order by disposition_desc') DISPOSITION_CODE,
    apex_item.text(15,null) reported_quantity,
    apex_item.select_list_from_query(16,null,'SELECT DISTINCT unit_desc ,unit_of_measure
    FROM species_Qc s, units_of_measure u
    WHERE s.unit_of_measure = u.unit_measure
    AND species_itis = '||0||'AND partner_id = '||:F200_ISSUING_AGENCY,
    'style="width:220px"',
    'YES',
    '0',
    '- Select Unit -',
    'f13_' || LPAD (9900 + LEVEL, 4, '0'),
    NULL,
    'NO' ) UNIT_MEASURE,
    apex_item.SELECT_LIST_FROM_LOV(17,null,'SALE_DISPOSITION') SALE_DISPOSITION_FLAG,
    apex_item.text(18,null) PRICE,
    apex_item.text(19,null) PERMIT_ID,
    apex_item.select_list_from_query(20,null,'select market_desc d, market_code r
    FROM market_categories
    where market_code in (select distinct market_code
    from species_qc
    where species_itis = '||0||'
    and partner_id = '||:F200_ISSUING_AGENCY||')',
    'style="width:220px"',
    'YES',
    '0',
    '- Select Market -',
    'f13_' || LPAD (9900 + LEVEL, 4, '0'),
    NULL,
    'NO' ) MARKET_CODE,
    apex_item.text(21,null) GRADE_CODE,
    apex_item.text(22,null) trip_id
    FROM DUAL
    WHERE :request = 'ADD'
    CONNECT BY LEVEL = 2
    I have two issues:
    1. the item tab_cascading_item is not populated when the value of c013 (species) is changed.
    2. I receive an error when trying to add a row to the collection. My code for doing so is:
    begin
    for i in 1..1 LOOP
    apex_collection.add_member (p_collection_name => 'CATCH_C',
    p_c013 => null,
    p_c014 => null,
    p_c015 => null,
    p_c016 => null,
    p_c017 => null,
    p_c018 => null,
    p_c019 => null,
    p_c020 => null,
    p_c021 => null,
    p_c022 => :F200_CURRENT_TRIP_ID );
    end loop;
    end;
    I am so close on getting this....any help would be appreciated.

  • How to have cascading lov for a single column in tabular form

    Hi,
    How to have a cascading lov for a single column in tabular form
    ie i have one employee name column
    in tabular form if v pressed add row then one row ll be added
    In my scenario based on first row value
    the second row value to be displayed
    To achieve this what i have to do ..
    Regards,
    Pavan

    READ Cascading select list on tabular form  and
    Oracle APEX 4.0: Cascading LOVs/Select Lists | Inside Oracle APEX by Patrick Wolf BLOG
    helps you,
    Pars.

  • Cascade lov in a "form with a report"

    I am fairly new to HTMLDB and struggling with this one. Can anyone help?
    I have built a test application that uses a form with report, created using the wizard.On the form I have cascaded LOVs( SITEOWNER and SITE) . The second LOV should depend on the first in that only the sites belonging to the siteowner in the first LOV should be available for selection. I cannot get this to work. I have tried to use "select list" on bothe LOVs but in this case the second LOV is blank. I have also tried "select list with submit" and trap the submit with REQUEST != expression1 as described in some of the posts in this forum, but cannot stop the form from branching.
    Any help will be welcome !. My test application is at the Oracle HTMLDB site.
    MISTST1/[email protected]/bitotu

    Hi,
    If you edit your report region there in the report attributes you will be finding the "Link Column" Section.
    Under the link column section you will be referring the pencil icon image and target page number in the application.
    Brgds,
    Mini
    Mark Answers Promptly

  • Resetting a Form with Cascading LOVs (Apex 4)

    A standard reset button cannot reset cascading LOVs properly. Let's assume we have a parent LOV and a child LOV. When one changes the selection in the child LOV, reset can undo this. But when he changes the selection in the parent LOV, reset will undo only the parent LOV but not the child LOV. The child LOV remains unchanged (however the selection is lost) and therefore shows a list that does not correspond to the entry now shown in the parent LOV.
    Has anybody found a solution for this, a reset action that can reset cascading LOVs completely and properly?
    Regards
    Roland

    Roland,
    i didn't try this myself but maybe you succeed with triggering the onchange-event of your parent-select-list (this should cause the child select-list to be refreshed).
    Or you could try if a form region has a apex "refresh" event (i know that refresh works on reports).
    brgds,
    Peter
    Blog: http://www.oracle-and-apex.com
    ApexLib: http://apexlib.oracleapex.info
    BuilderPlugin: http://builderplugin.oracleapex.info
    Work: http://www.click-click.at

  • Help with validation on a manually created tabbed form

    version 4.1.1.00.23
    Hello,
    I have a manually created tabbed form that I'm having trouble creating validation on.
    The page is a Resource Staffing page where PM's can forecast the Resources that will be needed for various projects. The forecast can be for 12 - 18 months.
    The requirement is to display a message to the user if they are trying to save a row without forecasting any time. It's possible they may not know how may Resources or the length of time needed when the row is created.  If they respond that they want to save the row without time the MRU will create the record. If they answer that they do not want to save the row they are returned to the page without loss of information.
    The month fields on the page are defaulting to 0 (zero).
    I've updated the Save button to Redirect to URL and in the URL Redirect I have: javascript:confirmNoTimeSaved()
    The javascript:
    [code]
    function confirmNoTimeSaved()
        var arr_jan,arr_feb,arr_mar,arr_apr,arr_may,arr_jun,arr_jul,arr_aug,arr_sep,arr_oct,arr_nov,arr_dec = new Array();
            arr_jan = document.wwv_flow.f07;
            arr_feb = document.wwv_flow.f08;
            arr_mar = document.wwv_flow.f09;
            arr_apr = document.wwv_flow.f10;
            arr_may = document.wwv_flow.f11;
            arr_jun = document.wwv_flow.f12;
            arr_jul = document.wwv_flow.f13;
            arr_aug = document.wwv_flow.f14;
            arr_sep = document.wwv_flow.f15;
            arr_oct = document.wwv_flow.f16;
            arr_nov = document.wwv_flow.f17;
            arr_dec = document.wwv_flow.f18;
        for(i = 0; i < arr_jan.length; i++)
            if(arr_jan[i].value == 0 && arr_feb[i].value == 0 && arr_mar[i].value == 0
                && arr_apr[i].value == 0 && arr_may[i].value == 0 && arr_jun[i].value == 0
                && arr_jul[i].value == 0 && arr_aug[i].value == 0 && arr_sep[i].value == 0
                && arr_oct[i].value == 0 && arr_nov[i].value == 0 && arr_dec[i].value == 0)
                txt = 'You have no time assigned to your Forecast. Do you want to save this Forecast without time entered?' + '\n' + '\n' + '"Yes" to save the Forecast.' + '\n' + '"No" to return with no changes.';
                caption = 'Confirm Saving With No Time';
                vbMsg(txt,caption)
                switch (isChoice)
                    case 6:
                        doSubmit('SUBMIT');
                        break;
                    case 7:
                        doSubmit('CANCEL2');
                        break;
            else
                doSubmit('SUBMIT');   
                break;
    </script>
    <script language="VBScript">
    <!--
    //Yes    = 6
    //No     = 7
        Function vbMsg(isTxt,isCaption)
            testVal = MsgBox(isTxt,vbYesNo,isCaption)
            isChoice = testVal
        End Function
    //-->
    </script>
    [/code]
    The 'CANCEL2' is just a Branch I'm using to branch back to the page without clearing Cache. I do have 'Cancel' button on the page and the Branch created for that clears the Cache.
    While debugging the javascript I get into the VB Script on the testVal = MsgBox(isTxt,vbYesNo,isCaption) line and the browser crashes.
    Can someone help with this requirement?
    What additional information can I provide?
    Thanks,
    Joe

    The code above is my attempt at this requirement, however, the browser crashes when it gets to the VBScript on the MsgBox call. I don't have to use this approach. Does someone have an idea how to solve this?
    Thanks,
    Joe

  • Cascading LOV in a Query panel (af:query)

    Hi
    I have a requirement to implement few Cascading LOV's in a Query panel. I have created the VO's for the LOV's with bind variable and view criteria and linked them. It works for the BC viewer. But to enable in the ADF UI, the partial trigger needs to be enabled on individual field. And the af:query encapsulates the fields and they are not exposed. Can someone help me with a solution or a pointer
    Many thanks

    Thanks for the pointer
    Well I followed the the steps, and implemented the same for two LOV's. I'm getting "Server Exception during PPR, #1". Would be able to identify where I'm going wrong please.
    FYI: I'm using a UI template that is stripped won from Oracles Dynamic tab template
    1. parent LOV
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!---->
    <ViewObject
    xmlns="http://xmlns.oracle.com/bc4j"
    Name="QcChiptypeVViewRO"
    Version="11.1.1.56.60"
    BindingStyle="OracleName"
    CustomQuery="true"
    RowClass="com.qualcomm.qdt.fwk.model.QdtViewRowImpl"
    ComponentClass="com.qualcomm.qdt.fwk.model.QdtViewObjectImpl"
    DefClass="com.qualcomm.qdt.fwk.model.QdtViewDefImpl"
    PageIterMode="Full"
    UseGlueCode="false">
    <DesignTime>
    <Attr Name="_codeGenFlag2" Value="Access|VarAccess"/>
    <Attr Name="_isExpertMode" Value="true"/>
    </DesignTime>
    <SQLQuery>
    <![CDATA[SELECT QcChiptypeV.CHIPTYPE
    FROM QC_CHIPTYPE_V QcChiptypeV]]>
    </SQLQuery>
    <ViewAttribute
    Name="Chiptype"
    IsUpdateable="false"
    IsPersistent="false"
    PrecisionRule="true"
    Precision="42"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    AliasName="CHIPTYPE"
    Expression="CHIPTYPE"
    SQLType="VARCHAR">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="42"/>
    </DesignTime>
    </ViewAttribute>
    </ViewObject>
    2. Child LOV
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!---->
    <ViewObject
    xmlns="http://xmlns.oracle.com/bc4j"
    Name="QcMcnVViewRO"
    Version="11.1.1.56.60"
    BindingStyle="OracleName"
    CustomQuery="true"
    RowClass="com.qualcomm.qdt.fwk.model.QdtViewRowImpl"
    ComponentClass="com.qualcomm.qdt.fwk.model.QdtViewObjectImpl"
    DefClass="com.qualcomm.qdt.fwk.model.QdtViewDefImpl"
    PageIterMode="Full"
    UseGlueCode="false">
    <DesignTime>
    <Attr Name="_codeGenFlag2" Value="Access|VarAccess"/>
    <Attr Name="_isExpertMode" Value="true"/>
    </DesignTime>
    <Variable
    Name="chiptype"
    Kind="viewcriteria"
    Type="java.lang.String"/>
    <ViewAccessor
    Name="QcChiptypeVViewRO1"
    ViewObjectName="com.qualcomm.qdt.model.lov.QcChiptypeVViewRO"
    RowLevelBinds="true"/>
    <SQLQuery>
    <![CDATA[SELECT QcMcnV.MCN,
    QcMcnV.CHIPTYPE
    FROM QC_MCN_V QcMcnV]]>
    </SQLQuery>
    <ViewAttribute
    Name="Mcn"
    IsUpdateable="false"
    IsPersistent="false"
    PrecisionRule="true"
    Precision="20"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    AliasName="MCN"
    Expression="MCN"
    SQLType="VARCHAR">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="20"/>
    </DesignTime>
    <Dependencies>
    <Item
    Value="Chiptype"/>
    </Dependencies>
    </ViewAttribute>
    <ViewAttribute
    Name="Chiptype"
    IsUpdateable="false"
    IsPersistent="false"
    PrecisionRule="true"
    Precision="42"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    AliasName="CHIPTYPE"
    Expression="CHIPTYPE"
    SQLType="VARCHAR">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="42"/>
    </DesignTime>
    </ViewAttribute>
    <ViewCriteria
    Name="QcMcnVViewROCriteriaChiptype"
    ViewObjectName="com.qualcomm.qdt.model.lov.QcMcnVViewRO"
    Conjunction="AND">
    <Properties>
    <CustomProperties>
    <Property
    Name="displayOperators"
    Value="InAdvancedMode"/>
    <Property
    Name="autoExecute"
    Value="true"/>
    <Property
    Name="allowConjunctionOverride"
    Value="true"/>
    <Property
    Name="showInList"
    Value="true"/>
    <Property
    Name="mode"
    Value="Basic"/>
    </CustomProperties>
    </Properties>
    <ViewCriteriaRow
    Name="vcrow5"
    UpperColumns="1">
    <ViewCriteriaItem
    Name="QcMcnVViewROCriteria_vcrow5_Chiptype"
    ViewAttribute="Chiptype"
    Operator="="
    Conjunction="AND"
    Value=":chiptype"
    IsBindVarValue="true"
    Required="Optional"/>
    </ViewCriteriaRow>
    </ViewCriteria>
    </ViewObject>
    3. JSF page
    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
    <af:document id="d1">
    <af:messages id="m1"/>
    <af:form id="f1">
    <af:pageTemplate viewId="/oracle/ui/pattern/dynamicShell/dynamicTabShell.jspx"
    value="#{bindings.pageTemplateBinding}" id="pt1">
    <f:facet name="copyright">
    <af:outputText value="2010 Qualcomm Inc. All Rights Reserved."
    id="ot10"/>
    </f:facet>
    <f:facet name="about">
    <af:navigationPane id="np3" hint="buttons">
    <af:commandNavigationItem text="About" id="cni5"/>
    <af:commandNavigationItem text="Privacy" id="cni6"/>
    </af:navigationPane>
    </f:facet>
    <f:facet name="navigation">
    <af:panelAccordion id="pa1">
    <af:showDetailItem text=" Asset Details" id="sdi1">
    <af:panelGroupLayout layout="vertical" id="pgl1">
    <af:panelHeader text=" " id="ph1">
    <af:query id="qryId1"
    headerText="Search Criteria (Use % as wildcard)" disclosed="true"
    value="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    model="#{bindings.ImplicitViewCriteriaQuery.queryModel}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    queryOperationListener="#{bindings.ImplicitViewCriteriaQuery.processQueryOperation}"
    saveQueryMode="hidden"/>
    </af:panelHeader>
    </af:panelGroupLayout>
    </af:showDetailItem>
    <af:showDetailItem text="More Info" id="sdi2"/>
    </af:panelAccordion>
    </f:facet>
    <f:facet name="globalLinks">
    <af:navigationPane id="np2" hint="buttons"
    inlineStyle="text-align:right;">
    <af:commandNavigationItem text="Help" id="cni4" action="noop"/>
    <af:commandNavigationItem text="Sign out"
    id="commandNavigationItem1"
    action="noop"/>
    </af:navigationPane>
    </f:facet>
    <f:facet name="status"/>
    <f:facet name="globalToolbar"/>
    <f:facet name="globalSearch"/>
    <f:facet name="globalTabs">
    <af:navigationPane id="np1">
    <af:commandNavigationItem text="Device Query/Update" id="cni1"
    selected="true" partialSubmit="false"/>
    <af:commandNavigationItem text="Asset Return" id="cni3"
    action="dummy" rendered="false"/>
    </af:navigationPane>
    </f:facet>
    <f:facet name="welcome">
    <af:panelSplitter id="ps1" orientation="vertical">
    <f:facet name="first">
    <af:panelCollection id="pc1" defaultToolbarItemDisplay="icon">
    <f:facet name="menus">
    <af:menu text="Options" id="m2" rendered="false">
    <af:commandMenuItem text="Printable Page" id="cmi2">
    <af:showPrintablePageBehavior/>
    </af:commandMenuItem>
    <af:commandMenuItem text="Download" id="commandMenuItem1">
    <af:exportCollectionActionListener exportedId="t2"
    type="excelHTML"
    title="Asset Details"/>
    </af:commandMenuItem>
    </af:menu>
    </f:facet>
    <f:facet name="toolbar">
    <af:toolbar id="t1">
    <af:commandToolbarButton id="ctb1"
    hoverIcon="/images/view_image.gif"
    text="Export to Excel">
    <af:exportCollectionActionListener exportedId="t2"
    type="excelHTML"
    title="Asset Details"/>
    </af:commandToolbarButton>
    </af:toolbar>
    </f:facet>
    <f:facet name="statusbar"/>
    <af:table value="#{bindings.QcDeviceTrackingVO1.collectionModel}"
    var="row"
    rows="#{bindings.QcDeviceTrackingVO1.rangeSize}"
    emptyText="#{bindings.QcDeviceTrackingVO1.viewable ? 'No data to display.' : 'Access Denied.'}"
    fetchSize="#{bindings.QcDeviceTrackingVO1.rangeSize}"
    rowBandingInterval="0"
    filterModel="#{bindings.ImplicitViewCriteriaQuery.queryDescriptor}"
    queryListener="#{bindings.ImplicitViewCriteriaQuery.processQuery}"
    filterVisible="true" varStatus="vs"
    selectedRowKeys="#{bindings.QcDeviceTrackingVO1.collectionModel.selectedRow}"
    selectionListener="#{bindings.QcDeviceTrackingVO1.collectionModel.makeCurrent}"
    rowSelection="single" id="t2"
    columnSelection="single"
    partialTriggers=":::ph1 :::qryId1">
    <af:column sortProperty="Serialnum" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Serialnum.label}"
    id="c28" width="103">
    <af:outputText value="#{row.Serialnum}" id="ot17"/>
    </af:column>
    <af:column sortProperty="Assettag" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Assettag.label}"
    id="c7" width="107">
    <af:outputText value="#{row.Assettag}" id="ot24"/>
    </af:column>
    <af:column sortProperty="Chiptype" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Chiptype.label}"
    id="c18" width="26">
    <af:outputText value="#{row.Chiptype}" id="ot27"/>
    </af:column>
    <af:column sortProperty="Mcn" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Mcn.label}"
    id="c11">
    <af:outputText value="#{row.Mcn}" id="ot13"/>
    </af:column>
    <af:column sortProperty="Mcnrev" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Mcnrev.label}"
    id="c8">
    <af:outputText value="#{row.Mcnrev}" id="ot3"/>
    </af:column>
    <af:column sortProperty="Assignedto" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Assignedto.label}"
    id="c15">
    <af:outputText value="#{row.Assignedto}" id="ot32"/>
    </af:column>
    <af:column sortProperty="Location" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Location.label}"
    id="c24">
    <af:outputText value="#{row.Location}" id="ot19"/>
    </af:column>
    <af:column sortProperty="Locationfullname" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Locationfullname.label}"
    id="c14">
    <af:outputText value="#{row.Locationfullname}" id="ot26"/>
    </af:column>
    <af:column sortProperty="Locationtype" filterable="true"
    sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Locationtype.label}"
    id="c13">
    <af:outputText value="#{row.Locationtype}" id="ot28"/>
    </af:column>
    <af:column sortProperty="Description" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Description.label}"
    id="c21">
    <af:outputText value="#{row.Description}" id="ot22"/>
    </af:column>
    <af:column sortProperty="Assignment" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Assignment.label}"
    id="c30">
    <af:outputText value="#{row.Assignment}" id="ot34">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.QcDeviceTrackingVO1.hints.Assignment.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Createddate" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Createddate.label}"
    id="c1">
    <af:outputText value="#{row.Createddate}" id="ot15">
    <af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Createddate.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Lastid" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Lastid.label}"
    id="c33">
    <af:outputText value="#{row.Lastid}" id="ot9">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.QcDeviceTrackingVO1.hints.Lastid.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Lportfolioitemid" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Lportfolioitemid.label}"
    id="c23">
    <af:outputText value="#{row.Lportfolioitemid}" id="ot23">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.QcDeviceTrackingVO1.hints.Lportfolioitemid.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Lkeycontactid" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Lkeycontactid.label}"
    id="c4">
    <af:outputText value="#{row.Lkeycontactid}" id="ot11">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.QcDeviceTrackingVO1.hints.Lkeycontactid.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Fullname" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Fullname.label}"
    id="c22">
    <af:outputText value="#{row.Fullname}" id="ot6"/>
    </af:column>
    <af:column sortProperty="Status" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Status.label}"
    id="c16">
    <af:outputText value="#{row.Status}" id="ot21"/>
    </af:column>
    <af:column sortProperty="Qcemployeenumber" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Qcemployeenumber.label}"
    id="c6">
    <af:outputText value="#{row.Qcemployeenumber}" id="ot33">
    <af:convertNumber groupingUsed="false"
    pattern="#{bindings.QcDeviceTrackingVO1.hints.Qcemployeenumber.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Field3" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Field3.label}"
    id="c12">
    <af:outputText value="#{row.Field3}" id="ot18"/>
    </af:column>
    <af:column sortProperty="Empdeptfullname" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Empdeptfullname.label}"
    id="c27">
    <af:outputText value="#{row.Empdeptfullname}" id="ot4"/>
    </af:column>
    <af:column sortProperty="Comments" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Comments.label}"
    id="c10">
    <af:outputText value="#{row.Comments}" id="ot16"/>
    </af:column>
    <af:column sortProperty="Builtby" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Builtby.label}"
    id="c19">
    <af:outputText value="#{row.Builtby}" id="ot20"/>
    </af:column>
    <af:column sortProperty="Mesbuild" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Mesbuild.label}"
    id="c31">
    <af:outputText value="#{row.Mesbuild}" id="ot2"/>
    </af:column>
    <af:column sortProperty="Esn" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Esn.label}"
    id="c26">
    <af:outputText value="#{row.Esn}" id="ot31"/>
    </af:column>
    <af:column sortProperty="Imei" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Imei.label}"
    id="c17">
    <af:outputText value="#{row.Imei}" id="ot29"/>
    </af:column>
    <af:column sortProperty="Macaddress" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Macaddress.label}"
    id="c32">
    <af:outputText value="#{row.Macaddress}" id="ot1"/>
    </af:column>
    <af:column sortProperty="Brf" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Brf.label}"
    id="c25">
    <af:outputText value="#{row.Brf}" id="ot8"/>
    </af:column>
    <af:column sortProperty="Brfrev" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Brfrev.label}"
    id="c3">
    <af:outputText value="#{row.Brfrev}" id="ot25"/>
    </af:column>
    <af:column sortProperty="Dacquisition" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Dacquisition.label}"
    id="c29">
    <af:outputText value="#{row.Dacquisition}" id="ot7">
    <af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Dacquisition.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Datqcmainttermdate" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Datqcmainttermdate.label}"
    id="c2">
    <af:outputText value="#{row.Datqcmainttermdate}"
    id="ot30">
    <af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Datqcmainttermdate.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Datqcissueddate" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Datqcissueddate.label}"
    id="c5">
    <af:outputText value="#{row.Datqcissueddate}" id="ot5">
    <af:convertDateTime pattern="#{bindings.QcDeviceTrackingVO1.hints.Datqcissueddate.format}"/>
    </af:outputText>
    </af:column>
    <af:column sortProperty="Itlqciteclass" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.Itlqciteclass.label}"
    id="c20">
    <af:outputText value="#{row.Itlqciteclass}" id="ot14"/>
    </af:column>
    <af:column sortProperty="RowID" sortable="true"
    headerText="#{bindings.QcDeviceTrackingVO1.hints.RowID.label}"
    id="c9">
    <af:outputText value="#{row.RowID}" id="ot12"/>
    </af:column>
    </af:table>
    </af:panelCollection>
    </f:facet>
    <f:facet name="second">
    <af:panelTabbed id="pt2">
    <af:showDetailItem text="Update Attributes" id="sdi3"
    stretchChildren="first"/>
    </af:panelTabbed>
    </f:facet>
    </af:panelSplitter>
    </f:facet>
    <f:facet name="innerToolbar"/>
    <f:attribute name="brandingTitle" value="ITE Device Tracking System"/>
    <f:attribute name="navSplitterPosition" value="450"/>
    </af:pageTemplate>
    </af:form>
    </af:document>
    </f:view>
    </jsp:root>

  • Cascading lovs in Jdeveloper  R2

    on Jdev R2.
    I was doing several different Test with Jdev R2 regarding to cascading Lov and lovs components.
    here are results.
    lets split them in two flavors.
    I. Forms.
    a) cascading lovs works fine only if you use : input text item with lovs. (this one works fine even if you do not set autosubmit on the master and partial trigger on dependent lovs, .......cool)
    b) if you choose selectOneChoise, "what is really nice for short list" it does not work. not even if you set autosubmit and partial trigger.
    II. af:table
    a) on editing mode: editAll
    * using input text with lov works (you do not need to set autosubmit/partial triggers) but every time when you select a value from a list, an ugly error araise saying : field1 is required. field2 is required...to all require attributes (you can work after click)
    * using selectOneChoise did not work. after you select the first lov the next lov is surrounded by red square and never get refreshed.
    b) on editing mode: clickToEdit :
    this is really cool and fast, but cascading lovs does not work at all. not even input text with lovs
    has anybody any feedback/workaround/idea on this one, or should we wait until these bug get fixed, hopefully in the new release.
    also I was wondering what is the best approuch to execute some java code on load/unload.?
    thank you for any help.
    Luis

    to call java on load use af:clientlistener along with af:serverlistener.. use the type as load
    http://blogs.oracle.com/jdevotnharvest/entry/how-to_call_server_side_java_from_javascript
    or use the beforephase and afterphase property of f:view, refer navaneeth code here
    popup on page load using managed bean, using jdev-11.4
    use af:document's onunload property for unloading event and java calls

  • Af:query component with cascading Lov's

    Hi All,
    I have Cascading LOV's model setup in Business Components and they work fine in a form or table
    but they are not working inside af:query component as there is no autoSubmit attribute on the query component itself
    can someone help me to resolve this
    Thanks in Advance

    I have found a way
    using bindings attribute of the query component it was able to go to backing bean on any LOV change in there we need to manually refresh the bindings then it works

  • ADF LOV and Cascading LOV in JDeveloper 11.1.1.5.0 Issue

    Hi,
    I have created business component ExpenseHdrView and added LOV and Cascaded LOV. If I run the application module I could see the LOV is working. It is displaying list of values and Return value(id value is not dispalyed as expected). But when I include the view in an ADF form then LOV is working but in the form when I select any value it is displaying the corresponding ID value. This is not in sync with business component.
    I am new to this ADF world. Am I doing anything wrong or missing something?
    Please help.
    Thanks,
    Mehabub

    Hi Kalpesh,
    I just tried, and didn't get that error - there must be something specific to your scenario. Have you tried the obvious solutions (reinstall)
    John

  • Cascading LOV bug??

    Hi all...
    please help with this issue.
    Not sure whether it is a bug or browser issue.
    APEX: 4.1
    Browser: IE 7
    Database: 11g
    If i have a cascading lov, and if i have a some javascript
    under the HTML FORM ELEMENT ATTRIBUTES ""onchange="alert('hi');"""
    The on-change event is firing twice.
    why is it firing onchange twice?
    please check the following app.
    http://apex.oracle.com/pls/apex/f?p=41803:2
    select a dept, you will get 2 alert messages.
    Is there any fix for this?

    Hi Earl...
    Thanks for the reply.
    Yup..as you said , it seems it a browser issue (IE 7).
    Instead of using the onchange javascript .. i moved my javascript code to "dynamic action". It works fine now.
    Thanks for the reply.

  • Cascade Select list with Tabular Form

    Hi,
    I am trying to implement Cascade Select List functionality on a tabular form where users should be able to add multiple rows. The data should be saved to a temporary stage area, where users can review the data prior to saving to the table. Very similar to the shopping cart where one can Delete/Update rows by record. I believe there is a way to do it via APEX Collections. If anyone has an example it would definitely help. FYI, Running on APEX 3.2, so no built in cascade functionality.
    Thank you,
    Chandu

    If you received a reply or figured out how to do this, can post? I need to implement exact same functionality and have not figured out how to do so. Have pinged Denes K. for source code on his demo app but not yet received response. Can this be done using wizard tab form or does it have to be a manually tab form?

Maybe you are looking for

  • 500 Internal Server Error while using BEx Web Application

    Hello All, Kindly help me in resolving below issue which is getting popped up for only few people, when they are clicking some of the MSS links. 500 Internal Server Error Failed to process request;contact your system administrator Error Summary Excep

  • Partitioning Mac for Bootcamp Without Reformatting HDD

    Hello, I hope this is the correct area to start this discussion. I'm trying to figure out how I can install windows via boot camp, without reformatting my HDD (or use of installation CD). I'm currently on tour around the U.S., and my installation dis

  • LONG FILE NAME SUPPORT IN SOLARIS 10 INTEL BASED

    Hi, I am facing the problem in solaris in which, i found that whenever I am copying any file directly from windows based PC to solaris the file name become automataically squizzes to 8+3 [dos file support]. In this case I am facing the problem in whi

  • How to temporarily suspend backups for a host?

    We are running production OSB backups for a site with approximately 50 filesystems, consisting of full, incremental, quarterly archive, and on-demand archive backups. Our installation consists of o administration master - obtool version 10.4.0.2.0 (6

  • Adding a PC to a Mac license?

    I have CS loaded on my MacBook Pro at home, but recently started a new job and would like to add CS to my PC at work. Can I do that or do I need to purchase a completely new license?