Post-generating 3-level master-detail-detail screens

Hi all,
for a consulting project, I had to create several three-level master-detail screens using JHeadstart. For the JHS demo app, this would mean for example that a location page contained a list of departments at the location and underneath it a list of employees working at the currently selected department.
From what I have learned so far using JHS, this is not supported by the wizards and should be done by post-generation changes. This forum has a few topics mentioning the problem and possible solutions, but most of the time just fragments of the complete solution/approach. As I had to create several of these 3-level detail screens, I tried to uniformly document them, providing the 7-step guide as outlined below. I only started working with JHS recently, so please let me know where I take a long way round or where my approach is not appropriate at all :o)
NOTE1: Terminology-wise, for the example given above, I will call the departments the 2nd level detail and employees the 3rd level detail, while locations are the first level masters. I hope this is not too confusing ;o)
NOTE2: the example code is not guaranteed to work with the JHSdemo. I just changed the names of variables and classes from my own application to the familiar entities of the demo.
STEP 1: Generate plain MD screens for the first and second level entities (table-form) using the JHS application generator and make sure all generated features you want in your page are OK. Afterwards, switch off the UIX generation in your application structure file. If you want multiple entities at the third detail level,
STEP 2: Add the functional contents of the generated 3rd level detail UIX page to the main master UIX page, right underneath the 2nd level detail-table but still inside the <header> entity of this 2nd level detail. (I'm not too sure whether this really matters, but at least the indentation looks nice). What I call "functional contents" is the <header> entity containing the 3rd level detail table.
STEP 3: Edit the java file of the 3rd level view object, adding a variable storing the identifier (primary key) of the currently selected 2nd level detail row. If you haven't used the java file before, generate it by doubleclicking the view object and checking the generate view object box in the Java screen.
private String $selectedDeptID;
public void setSelectedDeptID(String id) {
$selectedDeptID = id;
STEP 4: Edit the java file of your application module (in the model layer) and add a method for updating the view objects search queries like the example below:
public void updateEmployeeView(String deptID) {
// fetch the view object instance
EmployeeViewImpl view = (EmployeeViewImpl)this.getEmployeeView1();
// register the currently selected departments ID
view.setSelectedDeptID(deptID);
// re-execute the view objects query
view.executeQuery();
// reset the selected ID
view.setSelectedDeptID(null);
STEP 5: Create a java class for handling the event when a user selects a different 2nd level detail row.
package view;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import oracle.adf.controller.struts.actions.DataActionContext;
import oracle.adf.model.BindingContext;
import oracle.adf.model.bc4j.DCJboDataControl;
import oracle.adf.model.binding.DCDataControl;
import oracle.adf.model.binding.DCUtil;
import oracle.cabo.servlet.BajaContext;
import oracle.cabo.servlet.Page;
import oracle.cabo.servlet.event.EventResult;
import oracle.cabo.servlet.event.PageEvent;
import oracle.cabo.servlet.ui.data.PageEventFlattenedDataSet;
import oracle.cabo.ui.data.DataObject;
import oracle.cabo.ui.data.DataSet;
import oracle.cabo.ui.beans.table.SelectionUtils;
import oracle.jbo.ApplicationModule;
* USER-DEFINED EVENT-HANDLING CLASS
* this class is triggered after the user selects another row in the Department
* table/form in the Locations.uix screen. It derives the ID (pk) of the
* selected row and launches the AppModule method to update the view objects
* select queries with the selected DeptID.
public class RowSelector
* private variable holding the name of the DataControl module for this
* Application Module
private static final String DATACONTROLNAME = "AppModule" + "DataControl";
* private variable holding the name of the table/form object in the uix page
* from which we want to derive the selected row data.
private static final String TABLEFORMNAME = "DepartmentsView2";
* private variable holding the name of the form field holding the database
* ID (pk) of a row in the ${TABLEFORMNAME} table/form
private static final String IDFIELDNAME = "Dept_ID";
* This method fetches the ID of the user-selected row in the DepartmentsView2
* table/form in the Locations.uix form.
* Afterwards, it fires the ApplicationModule method for updating the view objects
public static EventResult doSelectionEvent(BajaContext bc, Page page, PageEvent event)
try {
// create a new FlattenedDataSet for the table name
DataSet tableInputs = new PageEventFlattenedDataSet(event, TABLEFORMNAME);
// fetch the UI table index from the DataSet (NOT the pk from the db)
int index = SelectionUtils.getSelectedIndex(tableInputs);
// fetch the DataObject representing all the input elements on the current table row.
DataObject row = tableInputs.getItem(index);
// fetch the value of the input field holding the ID (pk) of the selected department row
Object value = row.selectValue(null, IDFIELDNAME);
if (value != null) {
// tell the AppModule to update the appropriate view object(s)
getAppModuleImpl(bc.getServletRequest()).updateEmployeeView(value);
// quick and dirty exception handling. not too many exceptions possible due to
// hard-coded field/table/module names. anyway, taking no action at all is not
// that bad an option for a demo ;o)
} catch (Exception e)
e.printStackTrace();
return null;
* method for fetching the active Application Module
public static AppModuleImpl getAppModuleImpl(HttpServletRequest request)
BindingContext ctx = DCUtil.getBindingContext(request);
DCDataControl dc = ctx.findDataControl(DATACONTROLNAME);
AppModuleImpl service = (AppModuleImpl)dc.getDataProvider();
return service;
STEP 6: Override the executeQueryForCollection method in your view object java file to make sure it uses the selected 2nd level detail rows ID for the bound variable specifying the 3rd level select query. Otherwise, the select query for the 3rd level detail set appears to use the ID of the first 2nd level detail row selected for the currently selected 1st level master. In the example below, no other bound variables are used in the view object, otherwise, the indexing might have to be adjusted.
protected void executeQueryForCollection(Object qc, Object params[], int noUserParams) {
if ($selectedDeptID != null) params[0] = $uur;
super.executeQueryForCollection(qc, params, noUserParams);
STEP 7: In the Locations.uix page, set a primaryClientAction for the radio select input in the 2nd level detail screen. This action should fire an event (fe 'userChoseDepartment') and refresh the 3rd level detail tables using the partial refresh options in the primaryClientAction dialog window. Afterwards, add an event handler to the bottom of your Locations.uix page, linking the event specified before to the doSelectionEvent in the RowSelector class.
So, that's how it worked for me. I hope it does the same for you and please do post any comments or remarks if problems arise or simplifications are possible. The more remarks or bugs appear in the above code, the more the JHS team is hinted to enable auto-generated 3rd level detail screens :-D
Cheers,
benjamin

Benjamin,
Thank you for sharing your expreinces with us!
A few remarks:
1. With JHeadstart 10.1.2.1 you can generate unlimited master-detail levels in the same page when using UIX and table-layout for the detail groups This feature is implemented usin g UIX table detail disclosure: when you click on the "show" link in a row in of the level 2 detail table, you will see in the detail disclosure area the level 3 detail table.
There is a screen shot of this feature in the JHeadstart Developers Guide for 10.1.2.1, chapter 3, section "Creating Table Pages". You can now download the dev guide from the JHeadstart Product Center:
http://www.oracle.com/technology/consulting/9iservices/jheadstart.html
2. You have a lot of steps related to synchronizing the level 3 ViewObject with the level 2 ViewObject. You can leave all this work to ADF Business Components, by adding the l;evel 3 ViewObject as a nested usage to the level 2 ViewObject in your application module data model.
Ths would save you the work you aredoing in steps 3 to 6.
Steven Davelaar,
JHeadstart Team.

Similar Messages

  • Master-detail with auto-generated primary key(master)

    Hello,
    I have the following master-detail setup:
    Master - block A primary key is: codeA
    Detail - block B
    codeA is genrated only at commit time and is obtained from a sequence.
    User needs to add detail records. This is easy to do since he has to click on the insert icon on the toolbar. At commit time, use commit_form.
    Prob: the requirements as asked by the client is to add a button (which we will label INSERT DETAIL). When the user click on the button, it opens a window where he can enter the detail info then click on save. This should bring him back to the master-detail form and the record in the detail block is inserted.
    What is the problem here ? since the detail block has the foreign key tied to the master primary key, the window-form (with the call_form) that we opened for the detail entry won't be able to save since at this point we still have not assigned a value for the primary key (and hence a value for the foreign key).
    Possible Suggestions:
    -Use a temp database table to hold the detail record from the second form and use it to transfer values to the detail record in the master-detail
    -Use a global record group
    -We can't use parameter list to pass back these values.
    So my question is:
    What would be the most efficient way to have an insert button on the detail block that would allow the user to have a pop up where he can insert his values and then be brought back to the master-detail.
    Thanks.

    Hello again,
    May be I was not clear enough.
    Scenario 1: We use the master-detail form as is with the default oolbar. In this case, the user can insert the detail records one by one without needing the primary-foreign key value since this is handled by default.
    Once we save the form (commit_form), I use the pre-insert trigger to get the master block primary key generated from the sequence and since the detail block key is copied from this value, both are saved correctly and it is the end of the story.
    Scenario 2: As explained in the initial post, the user will populate the detail records one by one by clicking on the -INSERT DETAIL- button and hence has a window where he can insert the detail info and then be brought back to the master-detail form every time he enters a new detail record.
    The problem here is that I can't generate the primary key for the master block since the client has the following requirement:
    The user can always change his mind and not complete, meaning save the form, his process
    As such, the key should be generated in the last step before Commit.

  • URGENT HELP PLS :  Issue with Multi Level Master Detail block

    This is an issue someone else had posted in this forum few years back but there was no solution mentioned, I have run into this same issue , The problem is as explained below.
    Any help on this is appreciated.
    Scenario:
    There are 3 Blocks in the form : A (Master Block)
    : B (Detail of A )
    : C (Detail of B )
    There is master detail relation created between A and B and B and C. So initially when we query for a record in Master A, it shows all records properly in B and C.
    Now if i navigate to the first record of B , and then second record of B , records corresponding to that record shows up properly in C block.
    Till now everything works fine.
    Issue 1:
    But in case after querying initially on Master Block A,If I go directly to the second record of B block, it clears the whole B block and C block.
    Issue 2:
    Same thing happens if I am on C block ( corresponding to second record of B block) and then navigate to first record in B block , it again clears the whole B block and C block.
    Please Help !!
    Thanks !

    Thanks Xem for Your reply , I tried those settings but it did not help..here is the original link that to the thread that talks about the same problem ,
    Issue with Multi Level Master Detail block
    The last update to this was the following :
    "I figured out that this is happening because Block Status is set to 'Changed' and this is causing it to clear out the blocks.
    But cant figure out why the status is setting to 'Changed' "
    Any Help from the form Gurus on this form in this matter is truely appreicated !!
    Thanks,
    Zid.

  • Insert master and detail rows with Composition assoc generating JBO-26048

    I have the Master and Detail Entity Objects and made an Association linking them as Composition related.
    I have 2 ViewObjects. the MasterViewObject is composed of the Master entity object and 1 other udpateable object. the DetailViewObejct only contains the Detail entity Object.
    I tried to create a row on the masterviewobject and then immeidately create a detail row, and then commit, ADF issues a JBO-26048 error. Constraint "MY_FK" violated during post operation.... ".
    I don't know wahts wrong, but this should not be error should nit be appearing, as ViewObjects and the Links with Composition Association take care of populating the Foreign Keys of the detail. Or am I missing something here?

    The ADF Guide covers this problem, and I have a method that works as well on jdevguru.com. Take a look at the manual first, they have an indepth view on it and how to get it all to work together.
    Kelly

  • 3 Level Master-detail-detail data view implementation

    Hi OAF Gurus,
    I have a requirement, where in I have to show a 3 level master-detail relationship data on a page. Is it possible to implement a master-detail-detail table structure i.e. table-in-table-in-table view. I have done table-in-table ( a 2 level or master-detail ) structure before, but I am running out of ideas on this one. Below is the requirement.
    I have queryBean for a customer search, then when searched by a customer, I get the Customer search results in a table below. Then I need to show Customer Sites in an inner table and then in another inner table on the Customer Sites, I need to show the customer contacts, something like this below.
    + Customer Name, Customer Acct.Number ....
    + SiteId , Site Name, BillTo, ShipTo
    + ContactName, Contact Address, Contact Phone Number
    Hope you can provide me some ideas. I appreciate all your help. Thanks again.

    Anyone any ideas, please let me know. This is really urgent. Please let me know if there is any way we can do this, other than going to a new page. Appreciate your feedback.
    Thanks.

  • Master-detail-detail forms

    How can i create a Master-Detail-Detail(3 levels) form in D2k Forms? Whenever I create this, when i fill up master, detail, detail-detail blocks and move to next record of detail(second level) block, Forms asks whether to save the changes. If you give yes, then it tries to save the 3rd level block before the 1st and 2nd level blocks are saved. if i give NO, then I lose all my changes in the 3rd level block. pls help.

    do you have used the relations between the blocks? Pls. post the properties of the relations here.

  • Problem in implementing Master-Detail-Detail design in Forms 6i

    Hi, all technocrats!!
    Here i've problem in Master-Detail-Detail sort of design in
    Forms 6i..
    This thing i've implemented earlier in one form...and that is
    fine...and i could not track the root when i've got a problem in
    a new form...which of the same manner...
    The problem is that...
    When i enter data into the 1st detail block and navigate to the
    2nd detail which is a detail block to the 1st detail...and enter
    data, there is no problem, but when i navigate back to the 1st
    detail block and that to a new record in the 1st detail...form
    is showing indefinite behaviour( Hanging )...
    But when i navigate back to the same record in the 1st detail
    from the 2nd detail...there were no problems and it is working
    fine...
    And whenever i shift to a new record in the first detail it is
    asking to save that record...to solve this problem., i've used
    POST in the new block instance of the 1st detail...and i'm
    comfortably managing it...if i dont use this POST method...it is
    clearing the details in the 1st detail itself when i traverse
    back to it from 2nd detail after inserting records...
    But this hanging problem is really driving me to Hang myself...
    Plz do suggest me to get rid of this problem...

    Developing proper transactional behavior with Oracle Forms
    in Grandparent-Parent-Child case is a problem.
    We must use some 'container' for 'non-visible' Child records
    (Child records with Parent different from current record in
    Parent block).
    I try to solve this problem in 2 different ways:
    1. Using POST built-in. In this case 'container' is Child
    database table. But, problem can be because POST built-in
    actually executes DML statements (this locks records and fires
    database triggers - so a deadlock can occur) before COMMIT_FORM.
    2. Using a 'temporary container'. 'Temporary container' can be
    (for example) temporary database table, PL/SQL table of records
    (defined in Forms package or database package), Forms record
    group. This variant has not problem with record locks/database
    triggers, but is much more complex for programming than 1.
    variant.
    In my development, when I haven't problem with record locks or
    database triggers, then I use POST. In other cases, I use 2.
    variant, with PL/SQL table of records (defined in Forms package)
    as 'temporary container'.
    Further, when we use POST, we can do this in more ways.
    One method is to use POST in Forms level WHEN-NEW-RECORD-
    INSTANCE trigger.
    Different method is to change code in CLEAR_ALL_MASTER_DETAILS.
    Instead of:
    CLEAR_BLOCK (ASK_COMMIT);
    we can write:
    IF mastblk = "name_of_master_block" THEN
    CLEAR_BLOCK (ASK_COMMIT);
    ELSE
    POST;
    END IF;
    Which method you use?
    Regards
    Zlatko Sirotic

  • How to create one Oprations button (Create Button Or CreateInsert Button )for all master And Detail block?

              hi
       I have master And Detail with 4 level ,I want to have on operations button for all block in data control .
      (similar to Oracle form toolbar)
    how to do it ?

    Well, if you tell us your jdev version and what exactly you try to do, without just telling us 'as in forms' we might be able to help.
    Most of us don't know how it's done in forms. So be specific when you describe your use case.
    Timo

  • Master/detail/detail

    using jsf/adf bc. I've got a jspx which needs to display data from a master/detail/detail setup. In a 'create' mode, i'm programmatically handling the create/insert stuff for the new master and detail rows. I'll try to explain my problem using a Departments/Employees/EmployeeAddresses example.
    I've created a view link between Departments and Employees. I've created a view link between Employees and EmployeeAddresses. These have all been added to the active data model so that it looks like this:
    DepartmentView
    -Employees via Employees1
    -EmployeeAddresses via EmployeeAddresses1
    The code i use to create/insert the master and subsequent detail rows is as follows:
    //create master (department) row
    ViewObjectImpl vo = getDepartmentView();
    Row departmentRow = vo.createRow();
    vo.insertRow(departmentRow);
    //create the detail (Employees) row to be associated with its master (Department)
    ViewObjectImpl employeesVO = getEmployees();
    Row newEmployeeRow = employeesVO.createRow();
    employeesVO.insertRow(newEmployeeRow);
    //create the detail/detail (EmployeeAddresses) row to be associated with its master (Employees)
    ViewObjectImpl employeeAddressVO = getEmployeeAddresses();
    Row newEmployeeAddressRow = employeeAddressVO.createRow();
    employeeAddressVO.insertRow(newEmployeeAddressRow);
    The problem seems to be with the last level detail row, the one for EmployeeAddresses. creating in this fashion doesn't seem to associate the new EmployeeAddress row to it's master, Employees. Although when the page is rendered, i can see that new rows have indeed been created/inserted for each of these view objects. After filling in valid values and committing, i get the JBO-27014 (Attribute is required) error for each attribute in the EmployeeAddresses table. So, it's as if this EmployeeAddress row that was created is not tied in with the Employees row, which is in turn tied in to the Department row.
    Note: if i remove the create/insert code for this last detail row (EmployeeAddress) and simply have a basic master/detail setup between Department and Employee, everything works great when i create new rows this way and save. It seems that my problem stems from the fact that i'm adding another detail level onto my master/detail setup. Is there something different i should be doing?

    Hi,
    Thanks guys for your response.. i did it myself following way..
    created 2 view links. having same source.
    added both vos to same source in application module it self.
    Regards,
    Santosh.

  • Insert master, then details

    I'm using JDeveloper 10.1.3.5. I've set up ADF BC EO's and VO's for a master table and a detail table. There is also a 1:* Association, and a 1:* View Link between the master and details and this has all been added to an Application Module. The primary key of the master table is a surrogate PK generated from a sequence in a trigger. So the PK attribute has been designated as a DBSequence and has Refresh after Insert turned on.
    I have a jspx page using ADF Faces. It has a Create Form based on the master table. That means that a Create action was added to the page definition, and an invokeAction set to make sure Create is done when the page is first displayed. I added an InputFile component set to an UploadedFile in a backing bean. The files that users will be uploading contain detail records to be associated with this master. So I added an Iterator, Create action named CreateDetail, and AttributeValues for each attribute in the detail table's VO to the page definition. There is also a Commit action in the page definition.
    In the backing bean, there is an ActionEvent method tied to a commandButton on the page. It takes the uploaded file and executes CreateDetail for each record in the uploaded file, parses the record and sets the attributes. Then it executes Commit.
    Here's the problem:
    If I execute Commit before I start creating the detail records from the uploaded file, then Commit again after creating details, this works fine. However, if there is an error when I process the details, the master has already been committed. I'd rather consider master and details as a single transaction to be committed or rolled back as a unit.
    If I don't commit before I start creating the detail records, the new primary key for the master record hasn't been retrieved yet. So the detail records don't have the foreign key that points to the master. So the commit fails - missing mandatory field.
    I tried changing the Create on the master record to a CreateInsert, hoping that the framework would do the Insert of the master and retrieve its PK before processing the details, but no dice - it still works only if I Commit before processing details.
    Any ideas?

    In 11g, I've had some issues with compositions automatically maintaining foreign-key relationships for a sequence-based PK correctly if both master and detail are new. Have you tried implementing the (Java) solution provided by the aforementioned section of the dev guide (even though you shouldn't need it for compositions)?
    If that doesn't work for you, I've found the "old" method to be successful:
    In master:
    public void postChanges(TransactionEvent e) {
    /* Only references if this is NEW */
    RowSet newDetailsBeforePost = null;
    if (getPostState() == STATUS_NEW) {
    // Store the rowset of details related
    // to this new image before calling super
    newDetailsBeforePost = (RowSet)getXXX(); // replace "getXXX" with your association accessor method
    super.postChanges(e);
    if (newDetailsBeforePost != null) {
    adjustDetails(newDetailsBeforePost);
    private void adjustDetails(RowSet details) {
    Number newFkValue = getYYY.getSequenceNumber(); // replace "getYYY" with the getter for your sequence-based PK attribute
    while (details.hasNext()) {
    DetailImpl detail= (DetailImpl) details.next(); // replace "DetailImpl" with your detail EO class
    detail.setZZZ(newFkValue); // replace "setZZZ" with the setter for the detail's FK attribute
    In detail:
    public void postChanges(TransactionEvent e) {
    MasterImpl master = getMaster(); // replace "MasterImpl" with master EO class, "getMaster" with assoc accessor method
    if (STATUS_NEW == master.getPostState()) {
    master.postChanges(e);
    super.postChanges(e);
    Even better is to create an EO framework class that just fixes this problem (in general) for you, but that's more complicated--<plug>see the forthcoming JDev11g handbook</plug>.
    Hope this helps,
    Avrom

  • Vendor Master CIN Details Tab

    Dear All,
    Where will we do the field settings for the fields in Vendor Master CIN Details Tab?
    Points will be awarded.
    Thanks in advance!
    SAP FC

    Hi,
    U want the Cin tab on the vendor master rite.
    It comes on the address screen.
    In the spro under LG -- tax on goods movement---india...
    drop down and u have a place where we give ur user id ... (new entry) gv ur user id and put a star * and save.
    then when u create vendor master now u will get the CIN tab.
    I have no sap so i could not tell u the exact path.
    Thanks & regards,
    Kiran

  • Delete of master in master-detail-detail doesn't work

    Hi,
    JDEV 11g, TP4, ADF BC.
    I have implemented a master-detail-detail page where master is a form layout and the both details are af:tables.
    On each level there is a delete button (cascading delete).
    ActionListener of master =onDeleteHead(). Before deleting the record the user has to confirm this within a dialog
        public void onDeleteHead(ActionEvent actionEvent) {
            ExpressionFactory ef = JSFUtils.getFacesContext().getApplication().getExpressionFactory();
            ELContext elCtx = JSFUtils.getFacesContext().getELContext();
            outputTextDlg.setValue(getResourceBundle().getString("DELETE_HEAD_MSG"));
            dialogOkCancel.setDialogListener(ef.createMethodExpression(elCtx, "#{Bob0012.onDialogDeleteHeadOk}", null, new Class[] {DialogEvent.class}));
            AdfFacesContext.getCurrentInstance().addPartialTarget(popupDlg); // refresh dialog texts
            JSUtils.showPopup(popupDlg.getId());       
        public void onDialogDeleteHeadOk(DialogEvent dialogEvent) {
            if (dialogEvent.getOutcome() == DialogEvent.Outcome.ok) {
                OperationBinding operationBinding = ADFUtils.getManagedBeanOperation("DeleteHead");
                Object result = operationBinding.execute();
                AdfFacesContext.getCurrentInstance().addPartialTarget(panelHeaderHead);
        }If I press delete button on master record operationBinding.execute(); is executed (confirmed with debugger) and everything seems to be OK.
    Even after commit (actionListener="#{bindings.Commit.execute}") the master record including the detail records seems to be deleted.
    Problem: No Delete-statement is executed on DB-Level (verified with v$sqlarea) !
    If I do the same e.g. on "middle" detail (which is itself a master) the delete works as expected and the corresponding delete statement is executed on DB-level.
    Has anyone faced similar problems with master-detail-detail ?
    Is this a known bug?
    regards
    Peter

    Hi,
    can you perform this operation from the ADF BC tester? This tells you the location of the problem. The Faces code looks okay except that you should use RequestContext instead of AdfFacesContext
    Also make sure that the row is deleted by querying for it in the DB.
    Frank

  • Master with Detail Tab Pages

    I have a master with multi-detail pages. I would like to have the master record appear on the top of each screen and have the user select one of the multi-tab pages to select which detail information they would like to see.
    Is this possable with Forms 6i and if so how do I put them together. When I tried to create the form I could see the master and detail together ONLY when I navigated to the detail records.
    To carry this a step further is it possable to have Multi-masters each with their own tab and each master have detail tab pages?
    Thanks

    You could try the following:
    Create 1 canvas and place the header items on the top portion. Create another canvas - Tab type and place or create all you tabs with the details on then. Then stack the tab canvas on top of the main header canvas, resize so that the header is visible an that is it.

  • Master Detail Detail Form

    Hello,
    Can someone point me to an example of a master detail detail form? I have searched this form and have not been able to find a complete example. There are several entries in this form about master detail detail however, they are incomplete or direct you to a web site that it is impossible to find the information. Please help.

    Sorry if my terminology is a little off but give me a break. This is a forum for App Exp not Oracle Forms. I'm trying to build a App Exp Master Detail Form that will display more than just one level of detail hence the title Master Detail Detail. I searched the App Exp Forum and can only find incomplete examples or links that direct me to a web site that I can not find what I am looking for. This is a question just about App Exp and not Oracle Forms. Any help with App Exp will ge greatly appreciated.

  • PAN No Mandatory in Vendor Master CIN Details

    Hi,
    I want to make PAN No as madatory field in Vendor Master CIN Details.
    Can anyone help.
    Regards,
    Anurag Khanna

    Hi,
    PAN number is not maintained in Vendor master.
    Procedure to maintain is -
    Transaction Code: J1ID
    Step 1: In the u2018Excise rate Maintenanceu2019 screen, select u2018Vendor Excise Detailsu2019 and click u2018Changeu2019 button.
    Step 2: Click u2018New Entriesu2019 and add the vendor PAN details.
    Step 3: Save
    Regards,
    Sridevi

Maybe you are looking for

  • When I open Firefox I get a black screen; how do I get rid of it?

    When I first click on Firefox my monitor shows an all black window for a home page. A small rotating circle shows up on the black window; the indicator that a web site is loading. After a few seconds the circle goes away and for a flash the screen sh

  • Windows 8.1 x64 Smart Search Outlook and OneNote 2013(x32) not returning results

    Is the 8.1 Smart Search([windows-key]-type)  supposed to return results from Outlook and/or OneNote? I am using Exchange Cached mode for Outlook if that matters. I have done the following to try and get results to show up: control panel...Indexing Op

  • Is there any way to recover data from bad ipod hard drive?

    My 60GB iPod photo shows a sad iPod icon, will not connect to iTunes and will not charge. I have recently replaced the battery and it was working for a day, but now I keep getting the sad iPod icon. If I take the hard drive out and connect it with a

  • Which Proof Setup view to use?

    When I'm in Photoshop and I go to View>Proof setup... which one should I have checked to make certain I'm getting correct colors etc. for the image I"m working on?  I want that image look the same to me as it's going to look when I send it to the lab

  • Cross-JTable selection

    In a scenario where there are two JTable's in order to implement "locked (frozen) columns", one has to address the cross-JTable selection issue that occurs when both tables' "columnSelection" and "rowSelection" properties are enabled, and the user cl