Setting background color in multi record block

Hi all!
I've a table with around 150 records of colors with html-color-names and rgb codes.
I would like to have a sample item in my form 9.0.4 to display the color as a preview for
each record in a multi-record block when querying the table.
I would not like to create a visual attribute for each color. So display_item() is no choice.
(except: somebody show me how to create va's with the japi)
Somebody knows a way to accomplish this?
Thanks in advance and regards
Stauder

Here's a solution which should work :
1. Use a mirror item for the numeric item which has to
be displayed
using the format mask based on value in column1
The data type of the mirror item : Char
X and Y co-ordinates : Same as the item
on which it is
mirrored
Size and Height : Same as the item
on which it is
mirrored
2. On normal display, Mirror item is displayed
3. When Mouse-Click or Pre-Text Item trigger on the
Mirror Item :
- Use the Go_Item ('Actual Numeric Item');
This will bring up the Numeric Item and the Mirror
item goes in hiding
- A VWI trigger on Numeric Item should Then be :
If ( :col1 = 'A' ) Then
:Mirror_Item :=
To_char(:NumericItem, ',999,999.99');
Else
:Mirror_Item :=
To_char(:NumericItem, '99999999');
End If;
4. A key-Next-Item (On Numeric Item) or other trigger ??
should then
use Go_Item (:Mirror Item) to bring forward the
formatted numeric item
-- Shailender Mehta --

Similar Messages

  • Setting FORMAT_MASK in a multi-record block using a PJC

    Hello,
    We have a requirement to apply different format masks to different records in a multi-record block. I'm investigating using a PJC to do this, but without any decent documentation of the VTextField class, I'm struggling a little to figure out what method(s) to call.
    setDisplayStringFilter() sounds promising, it seems to take a DisplayStringFilter object as its argument, but beyond that, I'm lost... Has anyone done anything similar?
    Cheers,
    James

    Assuming you can find the right method you still have a problem. The second argument in the set_custom_property procedure relates to the row within the block, not the the row within the resultset. So when someone moves the scrollbar you'll have to have each instance of the pjc change its format mask to whatever is appropriate for the new data. The pjc will have to be able to listen for changes to the data in the columns which determine what the format mask should be.
    Perhaps you could use a text item and set the format in post-query/when-validate.

  • How I can Change records color in multi record block

    Hi,
    I am using Form 6i, No. of records displayed 15 in a block EMP, now at run time I want to see that employees who belong to dept No. 10 , their records color is RED.
    And employees who belong to dept No. 20 , their records color is BLUE
    And employees who belong to dept No. 30 , their records color is GREEN
    Pleased send me the solution on urgently basis. If possible send FMB file of this problem solution to me. E_Mail: [email protected]
    Best regards,
    Shahzad

    Hi,
    this shouldn't be a problem with use of VISUAL_ATTRIBUTES, post_query trigger and SET_ITEM_INSTANCE_PROPERTY built_in:
    steps:
    1) create VISUAL_ATTRIBUTES
    2) in post_query of block use Set_Item_Instance_Property built in
    SET_ITEM_INSTANCE_PROPERTY(item_id ITEM,
    record_number NUMBER,
    property NUMBER,
    value VARCHAR2);
    example from Forms documentation for use of set_item_instance_property is
    Set_Item_Instance_Property( cur_itm,
    CURRENT_RECORD,
    VISUAL_ATTRIBUTE,
    'My_Favorite_Named_Attribute');

  • Changing colors of individual records in multi-record block

    Can any point me to where I should place the code to programmatically change the color of a record in a multi-record block based on a particular column value?
    For instance, if block.col1='OPEN', I'd like the entire row to display as BLUE. If block.col1='CLOSED', I'd like the entire row to display as RED. I've tried placing my code at the block POST_QUERY level and WHEN_NEW_RECORD instance level without success.
    I'm a relative forms newbie, so any advice would be appreciated.

    I tried putting it in the 'when new record instance' trigger but it did not work completely. I put them same code in the Post_Query trigger of the multiple record block along with the 'When new record instance' trigger and it worked perfectly.
    I'm not forms expert, and there's probably a reason why I needed to put it in two places to make it work for me but that's a question of a forms expert.
    Ron

  • How to set default settings to display record count in multi record block

    Hi All
    Whenever I query my multi record block, I get 1/? as record count at the console in standard Oracle Applications. Is there any setting so that it displays 1/50 (in case total record queried is 50). I don't want to set query all property of block as I don't have any control in standard Apps forms.
    Thanks in advance
    Navdeep

    Check out the next_navigation_item option for the get_item_property procedure. If you use this you can do the process without having to navigate from one item to the next.
    You can do something like this (untested) to move and resize the items (other than the first in the block):
    PROCEDURE move_and_resize(p_item IN ITEM, p_width IN PLS_INTEGER) IS
      prev_item ITEM := Get_Item_Property(p_item, PREVIOUS_NAVIGATION_ITEM);
    BEGIN
      Set_Item_Property(p_item, WIDTH, Get_Item_Property(p_item, WIDTH) + p_width);
      Set_Item_Property(p_item, X_POS, Get_Item_Property(prev_item, WIDTH) +
                                       Get_Item_Property(prev_item, X_POS));
    END move_and_resize;
    move_and_resize(myitem, -30);

  • How can I create a loop in a multi-record block (on the background)

    I have a multi-record block.
    In one item I change a value.
    Upon this change, in the when-validate-item I would like to
    change other records in the same block.
    I planned to loop the block with go_record and to do my things
    in each record. Unfortunately the go_record built-in is
    restricted and cannot be used in a wvi-trigger.
    Another approach can be to update the records in the database
    and to perform an execute_query after this change. Also this
    procedure cannot be used in a wvi.
    How can I easily loop in a multi-record block???

    You can try to put loop with go_record in KEY-NEXT-ITEM on that
    field.
    Or if you change something and then press KEY-COMMIT you can
    update another records in database and after commit do again
    execute_query. Something like :
    on KEY-COMMIT:
    update_another_records;
    commit_form;
    execute_query;

  • How to convert a puch button disabled in a multi record block?

    Hi!
    I have a multi-record block and I need to set some specific item to disabled.
    I tried using set_item_instance_property with the following sentence:
    set_item_instance_property('INAF_ESC.EEAS_TIPO' ,CURRENT_RECORD, ENABLED , PROPERTY_FALSE);
    but it didn´t work.
    Anyone have any idea?
    Thanks
    Vero

    Hi,
    ENABLED is not supported SET_ITEM_INSTANCE_PROPERTY built-in.
    If you are env. has no mouse enabled, you can disable NAVIGABLE property using above builtin.
    There is a way make the end-user to feel like it is disabled.
    Create a visual attribute DISABLE_VA, with colors simillar to disabled buttion and set thie DISABLE_VA when the conditon is failed.
    Inside the button-pressed trigger check whether the conditon is true or false. If the conditon is failed you simply do nothing.
    ~Gouri Sankar
    But we can not stop the click action,

  • How to do it in multi-record block

    Hi all,
    i have 1 text items in a multi-record block number of record displayed 10
    and i have values like 100 , 50, 30 in first 3 records and in 5th record i want to put some value like
    20 then i want to calculate all values like 100 + 50 + 30 +20 = 200 and i want to put the total value in a single record block.
    but my problem is i cannot able to calculate all the value because for the totale value i have to
    write a for loop to loop through the record
    but go_block() is not working in post_change .
    if any solution is there plz suggest.......

    Hi zeeshan
    my problem is i cannot able to calculate all the value because for the total value
    put the total value in a single record block.
    First pls the following...
    Guidelines for Working with Calculated Items Calculated items_
    1- They are display-only control items.
    2-Calculated items cannot be database items.
    3.While you can set a calculated item's Enabled, Mouse Navigate, and Keyboard Navigable properties to Yes,
    you cannot set the Insert Allowed or Update Allowed properties to Yes
    Second Keyword: TOTAL is a reserved oracle key word... pls read the Details...
    go_block() is not working in post_change .well u can use timers but no need for it u can reference block item but first u have to accumulate the values per record in WHEN-VALIDATE-ITEM TRIGGER in the last calculated item which is inserted by the user and assign it to the display item in ur current multi-record block :*block_name.total_item*.. as follow...
    :block_name.total_item := :item1 + .... ; Then u create a second display item > no of records property = 1 , named e.g. final_summarized_totals
    In order to summarize this total values accumulated in the multi-record display item named e.g. block_name.total_item
    Finally using PRE-INSERT , PRE-UPDATE,PRE-DELETE Triggers to assign the value calculated into the display item * block_name.total_item* into the db_item into the previously mentioned Trigger Block-Level Off-course.
    :block_name.total_db_tem := :i:block_name.final_summarized_totals ; Hope this helps...
    Regards,
    Amatu Allah

  • Another multi-record block question

    I have always struggled with this. I have a muti-record block(10 records displayed). Eventhough my block is a db block, I have not assigned it a table. Hence, it is a non-db block. If I set enabled on a txt box, it
    is enabling the entire column. I need to enable only the text box on which the cursor is/user navigated to.
    How to do it?
    Thanks,
    Chiru
    Edited by: Megastar_Chiru on Sep 21, 2010 2:03 PM

    ok..here is the explanation of the issue
    in my multi-record block, there is a drop down list column with 2 values "Monthly %" and "Half-Rent". So, for example, in record 1, the drop-down could be chosen as "Monthly %" while in rec2, it could be "Half-rent". Right next to this list column, I have a text box. When the user chooses "Monthly %", the text box need to be enabled to allow keying a % value (say 5%). While in rec2, since the user chooses "Half-rent", the text box needs to be disabled for this record. How to accomplish this?
    Thanks,
    Chiru

  • Could set background color of scrollbar?

    Hy
    is it possibile set background color of scrollbar?
    thanks

    From my experience on this - yes, setting the colour (or the Visual Attribute) of the Block object will determine the background colour of the scrollbar. As far as I can see, it doesn't affect anything else.
    I've had to ensure all my Blocks have a background colour set (to r88g88b88), because if it's left as <unspecified>, then the background of the scrollbar will be transparent. In Client-Server 6i, this isn't too bad, as the scrollbar still has a visible 'edge', but in 10.1.2.0.2 WebForms, this edge isn't present, meaning the background of the scrollbar isn't visible at all, just the two ends and a disembodied drag button. Not the end of the world, but some users thought it looked funny.

  • Enabling and disabling the button in the multi record block

    hi all,
    i am using
    Forms [32 Bit] Version 6.0.8.24.1 (Production)
    Oracle Database 10g Release 10.2.0.1.0 - Production
    i have a multi record block each block contains a button(button is to approve the record in terms of changing the status)
    i have the items like date,remarks and button
    the button should be enabled if the remarks is not null otherwise it should be disabled.
    for this in pre-record trigger i have written
    if :record is null then
       set_item_property('button',enabled,property_false);
    else
          set_item_property('button',enabled,property_false);
    end if;what problem is enable and disable is impacting on all the buttons in the block. in other words if first record's remarks is null then all the records button is disabled. if first record's remarks column is not null then all the records of the button column is enabled.
    i have to make enable and disable the button for the corresponding record.that means if first record's remarks column is not null then only first records button should be enabled others should be disabled.
    Thanks..

    You need to set the No. of items displayed to 1 as Ammad had said, additionally you can set the X and Y Position (Just Y will do and having fixed X) of the button depending upon the current record.
    can u explain this part alone bit more (setting the position of x and y)You need to calculate the variable Y_POS depending upon the current position of the cursor that is the current record.
    You can find the current record Y_POS using combination of
    V_CURRENT_RECORD := :SYSTEM.CURSOR_RECORD;
    V_TOP_RECORD := GET_BLOCK_PROPERTY ('BLOCK_NAME', TOP_RECORD);
    V_ITEM_Y_POS := GET_ITEM_PROPERTY ('ITEM_NAME', Y_POS);
    -- Also needs to add the Y_POS of the relative other items in the muti-record block
    V_HEIGHT := GET_ITEM_PROPERTY ('BUTTON_NAME', HEIGHT);
    -- Note :- TOP_RECORD  Returns the record number of the topmost visible record in the given block.
    V_Y_POS := V_ITEM_Y_POS + ((V_CURRENT_RECORD - V_TOP_RECORD) * V_HEIGHT);
    -- You will need to add Distance between Items in records if anyThen you can Set the current Y_POS of the button.
    SET_ITEM_PROPERTY ('BUTTON_NAME', Y_POS, V_Y_POS);
    [/code[
    Hope this helps
    Best Regards
    Arif Khadas
    Edited by: Arif Khadas on Feb 24, 2011 4:58 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Disabling radio buttons in multi record block

    Need to be able to disable/enable one or more radio buttons in a group dynamically in multiple record block. Tried setting enabled properties but it sets for all records in the block. At the very least, I need to reset an item using radio to previous value if setting is invalid but when-radio-changed has already set value. Thank you.

    Your one row record has 5 items, then I assume empno, ename, ssn, phone, deptno 5 items on your multi-record block.
    you entered first row record as,
    empno, ename, ssn, phone, deptno
    100 John Smith 123-45-9999 234-333-9999 2
    101 Al Brown 222-34-1111 123-456-7890 2(duplicated)
    You want your code to duplicate the second deptno record as 2 instead of typing in, right?
    If so, then you add KEY-NEXT-ITEM trigger on item :phone, inside put,
    go_item('deptno');
    duplicate_item;
    It will copy the first deptno record 2 for the second record as showed above.

  • About populating a non-database item in a multi-records block

    Hi, all
    I have a problem about populating a non-database item in a
    multi-records block. This block is set to database block with a
    controlled item which needs to be populated after query. so I
    create a post-query trigger, but my problem is when the records
    listed in this block are less than 10 ( the record number is set
    to 10), the trigger fires no problem. but when the retrieved
    records are greater than 10, the error message is 'post query
    trigger raised unhandled exception ora 01403'. anyone can help me
    fix this problem?
    Thanks in advance
    Diana

    Diana,
    When you have an unbound item in a block and want to fetch
    some data into it you need to write a post-query trigger.What
    you have done is right.But it seems that u are getting a No data
    found error.I am sure about how u r populating data into that
    field.If u have written a select statement to fetch the data in
    post-query trigger, kindly handle an exception and find out the
    problem.Having a look at ur code(pos-query) would be much more
    helpful for giving a better solution.Try this a let me know.
    Thanks
    Vinod.

  • 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.

  • Re-sequencing records in a multi record block

    I have a multirecord block with sequence No field which is unique no and other fiels which is showing from the values which I have stored in a table say sequence No from 1 to 10 along with other fields.If I change the record which has the sequence No say 6 to become seq no 2 ,then the record with seq no 2 should become seq no 3 and the rec with seq no 3 should become seq no 4 and rec with seq no 4 should become seq no 5 and rec ord with seq no 5 should become seq no 6.This should automatically happen when the user changes say
    seq no 6 to seq no 2 .User may change any seqq no like this.
    We will provide 2 text box serialNo from and Serial No 2 and a button click should swap the records in between this two seq no and show it on the screen in the multi record block.Please help me to code this.
    Regards
    Jayshree Suresh

    User455091,
    1- You can add a non based checkbox item to your block. To resequence a record, you may have to check the record you want to change and then, check the position you want to change it for. Example: if you want to change the 6th to seq 2, you check the record 6 and check the record 2 right after (you can choose any logic to implement your sequence change. this is only an example).
    2- When you check the first record, set a global variable "seq_from" with the value of the sequence field (or :system.cursor_record if the block is ordered by this sequence)
    3- When you check the 2nd record, set a global variable "seq_to" and proceed to the resequence.
    4- Manage the change down and change up (if "seq_from">"seq_to" or "seq_from"<"seq_to")
    5- You have to change the values of all the record fields for all the records between seq_from and seq_to. by doing a loop between seq_from and seq_to. You may have to use previous_record or next_record depending on if it is a change_qown or a change_up.
    6- When the resequence is done, reset all the variables to blank, and don't forget your checkbox!
    This seems difficult, but only think about it. It is easier than what you expect. This method is more user-freindly but, just think about it....

Maybe you are looking for