Multi-record / spread table...moveable fields in designer generated form

Good morning all;
I hope you are doing good...
Imagine a multi-record block layout with it's overflow property set to spread-table to accomodate 10 varchar2(25) fields. Now, of the hundreds of users working with this generated form, not one of them wants to see the fields in the same order on the screen.
What i would like to do is generate the form from designer so that a user could 'drag'n drop' let say, field #10 to the field #2 spot on the screen. Something like windows explorer where you can move the 'Size' column around so it is viewable without having to use the spread-table bar at the bottom of the screen...
Any idea on how to generate this form from designer?
Thank you and wish me luck!

I don't know a solution, but I think a solution could be easier found if it was a read-only block. You did not specify that. Then maybe you could dynamically change the query behind the block.
Good luck, Paul.

Similar Messages

  • Querying wide (multi-record case) table data in oracle 10g

    I've got a set of "wide" (multi-record case data format) tables similar to the format described in Oracle's "Oracle Data Mining Concepts" book in chapter 2 (http://download-west.oracle.com/docs/cd/B14117_01/datamine.101/b10698/2data.htm#1010394).
    I like the flexibility of this format, especially since it can handle thousands of attributes. But the main problem I have with this format is in determining how to write efficient, complex queries against the data.
    I've included some sample data below to demonstrate my problem. I've got two tables, one with people and the other with the attributes and values of age, income, height and weight. If I try to generate a complex query against this data, I seem to either have to rely on multisets and functions, or on a large number of self joins. Neither of which seems to scale well or perform well for large amounts of data. I know I could also add a pipelined TABLE function to filter the data more, but none of these options seem like great solutions. Does anyone have any ideas for a better way to form complex well performing queries against this type of data layout?
    For example, with my sample data below I'd like to select everyone whose (income = 2000) or (income = 50000 and weight = 210), but the only way I see of doing this is with a query like the following (which won't take advantage of any indexes on the data):
    select * from people_attributes_view
    where find_eq_attr(AttributeValue('income',2000),attribute_values) is not null
    or (find_eq_attr(AttributeValue('income',50000),attribute_values) is not null
    and
    find_eq_attr(AttributeValue('weight',210),attribute_values) is not null);
    Any help is greatly appreciated.
    Thanks.
    -- My full example starts here ----------------
    -- Create the sample tables and data
    create table people (id int, name varchar(30));
    create table attributes (id int, attribute varchar(10), value NUMBER);
    insert into people values (1,'tom');
    insert into people values (2,'jerry');
    insert into people values (3,'spike');
    commit;
    insert into attributes values (1,'age',23);
    insert into attributes values (1,'income',1000);
    insert into attributes values (1,'height',5);
    insert into attributes values (1,'weight',120);
    insert into attributes values (2,'age',20);
    insert into attributes values (2,'income',2000);
    insert into attributes values (3,'age',30);
    insert into attributes values (3,'income',50000);
    insert into attributes values (3,'weight',210);
    commit;
    -- Create some types, functions and views for the search
    CREATE OR REPLACE TYPE AttributeValue AS OBJECT
    (attribute varchar(30),
    value NUMBER);
    CREATE OR REPLACE TYPE AttributeValues AS TABLE OF AttributeValue;
    create or replace function find_eq_attr (val AttributeValue, vals AttributeValues) RETURN AttributeValue IS
    begin
    for i in vals.FIRST .. vals.LAST
    LOOP
    if ((val.attribute = vals(i).attribute) and
    (val.value = vals(i).value)) then
    return vals(i);
    end if;
    END LOOP;
    return null;
    end;
    create or replace view people_attributes_view as
    select p.name, p.id,
    cast(multiset(select attribute,value from attributes a where a.id = p.id)
    as AttributeValues) attribute_values
    from people p;
    -- Search for everyone whose (income = 2000) or (income = 50000 and weight = 210)
    select * from people_attributes_view
    where find_eq_attr(AttributeValue('income',2000),attribute_values) is not null
    or (find_eq_attr(AttributeValue('income',50000),attribute_values) is not null
    and
    find_eq_attr(AttributeValue('weight',210),attribute_values) is not null);

    I like the flexibility of this format, especially
    since it can handle thousands of attributes. But the
    main problem I have with this format is in
    determining how to write efficient, complex queries
    against the data. Can't be done. The flexibility is achieved at the cost of simplicity and performance, it is a trade off.
    See this thread for a full discussion on the subject.
    http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:10678084117056

  • Headstart Designer generated form crashes with Java EOF error

    When closing a form while in Enter Query mode, the form crashes & user is
    disconnected from the database with error:
    FRM-92100: Your connection to the server was interrupted.
    Details:
    Java Excepton
    java.io.EOF Exception
    at java.io.DataInputStream.readUnsignedByte(Unknown Source)
    at oracle.forms.engine.Message.readDetails(Unknown Source)
    at oracle.forms.netStreamMessageReader.run(Unknown Source)

    Designer generates the ON-ERROR block level trigger. It has
    execution style of BEFORE. Therefore, both the block level and
    form level ON-ERROR triggers will fire.
    Normally, in the block level trigger, Designer will generate
    calls to its own message handling package to display any
    constraint errors. However, Designer also allows you to specify
    your own custom message handling package.
    The package must contain:
    - a procedure called PUSH
    - a function called MSGGETTEXT, and
    - a procedure called RAISE_FAILURE.
    The preference MSGSFT, Package Used for Messaging, allows you to
    record the name of the custom package.
    Once you have recorded this in the preference, whenever you
    generate a form, Designer will use your package and procedures
    for its error handling code. That is why you see calls to
    Headstart specific code in the block level ON-ERROR triggers.
    If you want to customize the ON-ERROR triggers, you need to make
    sure you understand how the MSGSFT preference is used. Read the
    online help. Then, you can customize individual blocks by adding
    application logic to the block, or you can add your own ON-ERROR
    trigger to the object library in the CG$BLOCK object.
    However, be warned that the Headstart error handling mechanism
    depends on this code. Depending on what you do, you could end up
    breaking things.

  • Count records in table where fields not used in Report

    Hi
    I was wondering if anyone could help me with a problem I have. I am new to Crystal Reports... I am using CR2008 and XSD as a datasource.
    I have the following tables used in the report.
    Programme Table          Risk Table          Control Table          Test Table
    ID               ID               ID               ID
    Name               ProgrammeID          RiskID               ControlID
    Details               Description          Description          Description
    Opinion               Notes               Notes               Notes
                   Risk Recs Table          Control Recs Table     Test Rec Table
                   ID               ID               ID     
                   RiskID               ControlID          TestID
                   Description          Description          Description
    In the report that I have to design, I need to display the Notes from each of the Risk, Control and Test tables in hierarchical order and also display the notes when there are one or more recommendations attached to each Notes.
              Risk Notes     - Display only when risk rec count <> 0
              Control Notes     - Display only when control rec count <> 0
              Test Notes     - Display only when test rec count <> 0
    So far I have designed the report as follows:
    I have grouping around the Risk Notes, Control Notes and Test Notes as
         Group 1 - Group by ProgrammeID
         Group 2 - Group by RiskID
         Group 3 - Group by ControlID
         Group 4 - Group by TestID
    (This is giving me the notes in the order that I want)
    Since I want to know if each of the risk, control and test have got any recommendations, I created summary counts to get the recommendation count for Risk, Control and Tests. But I am not able to get the right count. Effectively, what I need to do is go through the Risk Recommendation table and count the recommendations that belong to that particular RiskID. If the count = 0 then I want to supress the Risk Notes (Group Header 2.)
    Can anyone suggest how to get the count?
    Thanks

    Hi
    I am using Distinct Count.
    When there are no recommendations then the count always comes out as 1 and the count is correct for the first grouping. After that even if there are more than one recommendation, the count is always 1!
    How do I reset a summary count?
    I even tried writing a formula to do the count..
    NumberVar riskCount;
    WhilePrintingRecords;
    riskCount := DistinctCount ({RiskRec.ID}, {Control.RiskID})
    and another formula to reset this count, even then the count is still coming out incorrect. It brings a value 1 when there are no recommendations and the count is right for one set of grouping only.
    I have just recently started using CR and havent quite mastered it yet!
    Thanks...

  • Upload a document in PDF form (Adobe live cycle Designer generated form)

    Hello,
    I generated a PDF form using abode live cycle designer.
    It works well to read, write and display. Techincally, read, write,and populate functionalities of the PDF form are working without any trouble.
    I was trying to upload a doc file using the PDF form. I could not make the upload functionality work.
    Can anybody help me with uploading a file to the webserver through PDF form?
    Can you please give step by step instuctions to follow to upload a file to the webserver through PDF form?
    Thank you.
    Aruna

    Hi,
         I will try to find the standard function module. If there is no such standard function module, then we need to create a custom function module.
    Check this link:
    [https://www.sdn.sap.com/irj/sdn/adobe]
    Points that you can note:
    1) Adobe Interactive forms can be created & connected to SAP database using ABAP Workbench, through WebDynpro.
    2) Also adobe Interactive forms can be created & connected to SAP database using Transaction SFP.
    3) And for both of the above 'Adobe Live cycle Designer' should be installed on the front end.

  • No base table multi record block...updation

    hello all,
    i have a multi record block with two fields order & datetime to capture the time of the order. but this block is not based on any table. and i want to update another table with the datetime based on the order captured.
    how to do that...? there may be n number of records coming into the block at a time.
    thx in adv.
    Kris

    the best way is make it as a database block .and palace your insert statement in pre-insert trigger when you are inserting the record and place your update trigger in pre-update trigger u can also place your insert and update statement in back end, "i prefer the backend triggers").I think this is the best way because if you are using the go_block and next_record, that may take lots of time time to traverse record by record.
    regards
    mathew

  • Query about multi record block

    Abdetu
    Please clarify this
    I have a multi record group on the canvas, which displays 5 records at a time. The block is based on a table. All the items, except 3 items are displayed items.Now in the block I have a list item, in which I have two values "PO" and "TSF".. If user selects PO, associated text items will get enabled and user will be entering the values .. Same is the case with TSF .. And at the end user selects Ok button to save the record to the database
    Now while fetching the records (based on query) ..once the records are fetched, control will be on PO/TSF list box, now the user can either change PO to TSF or TSF to PO ..or he/she may opt not to change also.. If user changes PO to TSF, only that particular record's TSF fields should get enabled .. The problem what I am facing is, when the control comes to PO/TSF list box.. since its multi record block, all the record's PO/TSF list box are getting enabled
    In the sense, if control is in the 1st record of multi record block, only those fields should get enabled, once the user navigates to the text item which is the last of that particular record, then 2nd record should get enabled....
    Can I know the solution
    Regards
    Message was edited by:
    Seshu
    Message was edited by:
    Seshu

    Hello Seshu
    ur case explanation should be in points 1,2,etc as possible leaving extra lines and spaces in between .. and the case should be more clear and summarized like:
    1- I have multi-records data block.
    2- I have a static list item with 2 values eg. (a and b).
    3- Depending on selecting from the list some items r enabled.etc.
    Kindly note that, this will facilitate ur problem to be more readable,recognizable and save time and effort of someone who wants to help u.
    Here comes the confusion:
    Now while fetching the records (based on query)
    The problem what I am facing is, when the control comes to PO/TSF list box.. >since its multi record block, all the record's PO/TSF list box are getting enabled i think with the piece of code i have just posted to u this can't be happened since it disable all the record's PO/TSF.
    if this didn't solve ur problem i suggest either u post ur code to help u or u try to put some validations with :
    if statment inside the loop depending on the list item's values which will enable or disable related items to the list.
    Hope this help u,
    If any Questions pls let me know..
    Regards,
    Abdetu..

  • Oracle Forms - need to update multi-record block - Help needed asap

    Hi,
    We are using Oracle apps release 11i - Oracle forms 6i.
    I have a field "project_start_date" in project_block in a custom form. There is another multi-record block called role_block in the same custom form and it has a field named start_date. Requirement is when ever I make change in the project_start_date in project_block, that should reflect in role_block.start_date. I tried different means and could update only the very first record of the multi-record block - role_block. I need to update all the records in the role_block with the same project_start_date. Used looping and several other methods. But could not achieve. Any help is really appreciated.
    Thanks
    Akil

    Hi;
    For your issue i suggest close your thread here as changing thread status to answered and move it to Forum Home » Application Development in PL/SQL » Forms which you can get more quick response
    Regard
    Helios

  • Multi Record Block Problem

    Hi,
    I have a multi record block with two fields NAME and DATE. On clicking the Save Button a procedure (PROC_BEFORE_SAVE) is called which loops through this block, and deletes empty records.
    PROC_BEFORE_SAVE
    LOOP
         IF :TI_NAME IS NULL THEN
              DELETE_RECORD;
         END IF;
         NEXT_RECORD;
         EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
    END LOOP;
    The proc fails and throws error (Oracle Error Unable to Update Records) only for the case that the first few records are null. Sample data given below.
    Name  -  Date
    NULL  -  NULL
    NULL  -  NULL
    NULL  -  NULL
    AJ  -  10/02/2005
    JA  -  12/12/2004
    AJV  -  12/12/2002
    This happens because it tries to update the NOT NULL field NAME as NULL.
    Could somebody please tell me why this is happening? Is there something wrong with the procedure?
    I am using Oracle Forms 6.0.8.8.0 in Windows 2000 Professional edition.
    Any help would be greatly appreciated.
    Thanks,
    Anoop

    Hi,
    Thanks for the reply. But CLEAR_RECORD also doesn't seem to work.
    Thanks,
    Anoop

  • Cursor Jumping to last record when query mode for Multi-record block.

    I have a multi-record block. the seq field has this validation to check that there should not be a gap
    in sequence for S_type and cer_dl field.The program unit is as below.
    PROCEDURE seq_validation IS
    --Validation to check that there is no gaps in sequence for S_TYPE and cer_dl fields
    l_value_to_check varchar2(100);
    l_seq_found number;
    l_curr_sequence number;
    l_new_value varchar2(100);
    l_found boolean:=FALSE;
    l_new_set boolean := FALSE; --s_type and cer_dl are different from previous set.
    begin
    if trim(:b1.s_type) is not null
    or trim(:b1.cer_dl) is not null
    then
    -- Program continues here only if all the items are not null
    -- Get information from record that needs to be validated
    l_value_to_check := trim(:b1.s_type) || ':'|| trim(:b1.cer_dl) ;
    l_curr_sequence := :sequence;
    if :SYSTEM.CURSOR_RECORD = '1' then
    ---to check sequence is entered as 1 in the first record
    message('Error:Sequence should start with 1');
    raise form_trigger_failure;
    end if;
    go_item('b1.XYZ');
    else
    FIRST_RECORD;
    while :SYSTEM.LAST_RECORD != 'TRUE'
    loop
    l_found := FALSE;
    l_new_value := trim(:b1.S_type) || ':'|| trim(:cer_dl) ;
    if l_new_value = l_value_to_check then --
    l_new_set:= FALSE;
    l_seq_found := :seq;
    if l_seq_found >= l_curr_sequence then
    go_item('b1.seq');
    l_new_set := FALSE;
    elsif l_seq_found < l_curr_sequence - 1 then
    go_item('b1.sequence');
    l_found := FALSE;
    elsif l_seq_found = l_curr_sequence - 1 then
    l_found:= TRUE;
    go_item('b1.xyz); --go to next item
    end if;
    else
    l_new_set := TRUE;
    end if;
    NEXT_RECORD;
    end loop;
    if l_new_set then
    go_item('b1.xyz'); -- go to next item
    else
    if not l_found then
    message('Error:Sequence should be in order.');
    go_item('b1.seq');
    raise form_trigger_failure;
    end if;
    end if;
    go_item('b1.xyz'); ---go to next item
    end if;
    end if;
    end;     
    In the insert mode its working fine(unless you gurus feel to change to make it more perfect.
    When I say enter-query and put 'IAS' in the s_type field and then do a execute query it brings all the records of 'IAS'.
    Now as I want to update the records, and when I navigate across field(s_type,cer_dl,Seq,xyz) using tab and move the cursor down on second
    record(IAS N 2 N), what happens is when I navigate to sequence field the cursor jumps to LAST RECORD( IAS Y 3 N ) of LAST field XYZ.
    I am putting the sample record
    s_type cer_dl seq xyz
    IAS N 1 N
    IAS N 2 N
    IAS N 3 N
    IAS N 4 N
    IAS Y 1 N
    IAS Y 2 N
    IAS Y 3 N
    The cursor moves to last record --IAS -Y -3-N when I tab across the second record.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    When I say enter-query and put 'IAS' in the s_type field...For your validation to work you must not allow users to enter records in the middle of a block, clear records from the block or query specific records. If you allow the users to enter a query then you are allowing 2 of the rules to be broken.

  • Calculated non-base table field in a tabular form

    I am struggling with creating a non-base table calculated field in a tabular form in ApEx 3.1
    Can you point me in the right direction
    I thought this would be fairly easy to do, but I cant work out how to do it
    Requirements
    1) Tabular Form based on a table with QTY and PRICE columns
    2) TOTAL is a non-base table field, based on QTY * PRICE
    3) If the Qty or Price changes, the TOTAL should be re-calculated
    Example
    QTY   PRICE  TOTAL
    ===    =====  =====
    3       5          15
    10      50         500
    20      3           60
    Environment
    ApEx 3.1, Oracle 10 and Oracle 11 databases
    I recommended to upgrade to a newer version of ApEx but the request was rejected so Im stuck with 3.1

    Thanks, but its not the solution that I am after
    I am looking for a solution that will ...
           1) not require the calculated value TOTAL to be stored in the table
    and 2) re-calculate the TOTAL when I modify the dependent values (QTY and PRICE) before I save the changes to the database
    I am still looking for a solution if anyone can help

  • Single record in a multi record block

    How do I disable a single record in a multi record block keeping only the display option in Forms 4.5

    you can't in 4.5 you can do it in 6.0 with the set_item_instance_property.

  • Raise form_trigger_failure is not working in multi-record block?

    raise form_trigger_failure is not working in multi-record block.
    Why?
    I am using Form 9i.
    Thanks and regards,
    Vikas

    Here is my code. Workorder_master is single block, workorder_dtls is multi-block.
    This code is written in KEY-NEXT-ITEM of labour_code in workorder_dtls.
    If suspended labour, invalid labour etc. is selected then it should not leave labour_code, but does not happen as I like. What will be the solution?
    DECLARE
    v_count                         NUMBER;
    v_status                    CHAR(1);
    v_workorder_no     VARCHAR2(15);
    v_pass_no                    VARCHAR2(15);
    v_rec_pos                    NUMBER;
    BEGIN
         IF :workorder_dtls.labour_code IS NOT NULL THEN
              v_rec_pos := :SYSTEM.CURSOR_RECORD;
              SELECT COUNT(*) INTO v_count FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
              IF v_count > 0 THEN --if labour exist.
                   SELECT status INTO v_status FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
                   IF v_status = 'I' THEN--'I' stands for busy.
                        --check if labour is for extension i.e. if labour is working for same workorder
                        SELECT COUNT(*) INTO v_count FROM workorder_dtls
                                            WHERE labour_code = :workorder_dtls.labour_code
                                            AND workorder_no = :workorder_dtls.workorder_no
                                            AND to_dt <= SYSDATE;
                        IF v_count > 0 THEN
                             --if working in same workorder then for extension, then give from_dt, to_dt
                             SELECT MAX(TO_DT)+1 INTO :workorder_dtls.from_dt FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND workorder_no = :workorder_dtls.workorder_no
                                                 AND to_dt <= SYSDATE;
                        ELSE
                             --if not working in same workorder then give message.
                             SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND to_dt <= SYSDATE;
                             MESSAGE('This labour is already working through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                             MESSAGE('This labour is already working through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                             RAISE FORM_TRIGGER_FAILURE;
                        END IF;
                   ELSIF v_status = 'A' THEN--'A' stands for available.
                        :workorder_dtls.from_dt := SYSDATE;
                   ELSIF v_status = 'H' THEN--'H' stands for help-up.
                             SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND to_dt <= SYSDATE;
                        MESSAGE('This labour has been held-up for not submitting gatepass.');
                        MESSAGE('This labour has been held-up for not submitting gatepass.');
                        RAISE FORM_TRIGGER_FAILURE;
                   ELSIF v_status = 'S' THEN--'S' stands for suspend.
                             SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND to_dt <= SYSDATE;
                        MESSAGE('This labour has been suspended through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                        MESSAGE('This labour has been suspended through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                        RAISE FORM_TRIGGER_FAILURE;
                   END IF;
                   IF v_status IN ('A', 'I') THEN
                        :BLK_TEMP_WORKORDER.LABOUR_CODE := :WORKORDER_DTLS.LABOUR_CODE;     
                        GO_BLOCK('WORKORDER_DTLS_IMG');
                        EXECUTE_QUERY(NO_VALIDATE);      
                        GO_RECORD(v_rec_pos);
                        GO_ITEM('WORKORDER_DTLS.FROM_DT');
                        IF :workorder_dtls.from_dt + 180 <= :workorder_master.to_dt THEN
                             :workorder_dtls.to_dt := :workorder_dtls.from_dt + 180;
                        ELSE
                             :workorder_dtls.to_dt := :workorder_master.to_dt;
                        END IF;
                   END IF;
              ELSE --if labour does not exist.
                   MESSAGE('Invalid labour code');
                   RAISE FORM_TRIGGER_FAILURE;
              END IF;
         END IF;
    END;

  • Check duplicate data entry in multi record block,which is a mandatory field

    Dear all,
    I have a situation where i have to check duplicate data entry(on a particular field,which is a mandatory field,i.e. it cannot be skipped by user without entering value) while data key-in in a Multi Record block.
    As for reference I have used a logic,such as
    1>In a When-Validate-Record trigger of that block I am assigning the value of that current item in Table type variable(collection type)
    as this trigger fire every time as soon as i leave that record,so its assigning the value of that current time.And this process continues
    then
    2>In a When-Validate-Item trigger of that corresponding item(i.e. the trigger is at item level) has been written,where it compares the value of that current item and the value stored in Table type variable(collection type) of When-Validate-Record trigger.If the current item value is matched with any value stored in Table type variable I am showing a message of ('Duplicate Record') following by raise_form_trigger failure
    This code is working fine for checking duplicate value of that multi record field
    The problem is that,if user enter the value in that field,and then goes to next field,enter value to that field and then press 'Enter Query 'icon,the bolth Validate trigger fires.As result first when-validate record fires,which stores that value,and then when-validate-item fires,as a result it shows duplicate record message
    Please give me a meaningful logic or code for solving this problem
    Any other logic to solve this problem is also welcome

    @Ammad Ahmed
    first of all thanks .your logic worked,but still i have some little bit of problem,
    now the requirement is a master detail form where both master and detail is multirecord ,where detail cannot have duplicate record,
    such as..........
    MASTER:--
    A code
    A1
    A2
    DETAIL:--
    D code
    d1
    d2 <-valid as for master A1 , detail d1 ,d2 are not duplicate
    d2 <--invalid as as for master A1 , detail d2 ,d2 are duplicate
    validation rule:  A Code –D Code combination is unique. The system will stop users from entering duplicate D Code for a A Code. Appropriate error message will be displayed.*
    actually i am facing a typical problem,the same logic i have been applied in detail section ,its working fine when i am inserting new records.problem starts when i query,after query in ' a ' field say 2 records (i.e. which has been earlier saved) has been pasted,now if i insert a new record with the value exactly same with the already present value in the screen(i.e. value populated after query) its not showing duplicate.................could u tell me the reason?and help me out...............its urgent plzzzzzzzzz
    Edited by: sushovan on Nov 22, 2010 4:34 AM
    Edited by: sushovan on Nov 22, 2010 4:36 AM
    Edited by: sushovan on Nov 22, 2010 8:58 AM

  • FETCHING VALUES IN MULTI RECORD BLOCK FROM ANOTHER TABLE USING SELECT STATEMENT.

    Hi,
    I have one multi record block in which i want to fetch values
    (more then one record) from another table using select statement
    IN KEY NEXT ITEM.I am getting following error.
    ORA-01422: exact fetch returns more than requested number of rows
    Thanks in advance.

    In your case I see no reason to use non-database block and to try to populate it from a trigger with a query, instead of using the default forms functionality where you can associate the block and the fields with table, create where clause using bind variables and simply use execute_query() build-in to populate the block. The power of the forms is to use their build-in functionality to interact with the database.
    Also, you can base your block on a query, not on a table and you dynamically change this query using set_block_property() build-in. You can use any dynamic queries (based on different data sources) and you simply need to control the column's data type, the number of the columns and their aliases. Something like creating inline views as a block data source.
    However, you can replace the explicit cursor with implicit one like
    go_block('non_db_block_name');
    first_record();
    FOR v_tab IN (SELECT *
    FROM tab
    WHERE col_name = :variable)
    LOOP
    :non_db_block_name.field1 := v_tab.col1;
    :non_db_block_name.field2 := v_tab.col2;
    next_record();
    END LOOP;

Maybe you are looking for

  • Ipod shuffle 2nd gen in the colour GOLD ???

    dear community, i´m just wondering about a shuffle 2nd gen in the colour GOLD. i bought it new and sealed in the usa via ebay but couldn´t find any information that apple ever produced the 2nd gen ipod shuffle in this colour. it isn´t gold plated but

  • My iPhone5 lost in 2013.7.1, I have the phone's serial number and IMEI, how to get back?

    Serial No. DNWJVY0QDTWD IMEI/MEID 01346700242689 How to find the mobile phone number using the phone now?

  • Bookmarks Panel and Page Display

    BACKGROUND: I am using Adobe Acrobat Pro 9 and now when I convert a Word2010 doc to PDF using Acrobat 9 Pro Create PDF. Once the file oepns in Acrobat, I then make the following changes: File > Properties > Initial View >Navigation Tab (Set to Bookma

  • I'm having probs with Adobe.

    I keep getting a "Blocked Plug-in" message whenever I try to play a video clip from YouTube or Facebook.  I have tried downloading the latest updates from Adobe and they appear in my Downloads list, but I still can't open the videos. I checked my Pre

  • Inventory Management Scenario

    Hi BW Experts, I was working on the Inventory Management screnario as in How to Handle Inventory Management Scenarios in BW with cumulative KFs. I read many of the forum postings but I am still little bit confused about the sequence of the loading. A