Solved

programatically List Item problem

Posted on 2004-09-25
2
483 Views
Last Modified: 2013-12-12
I have list item and following code at form level 's "When - new - form - instance"

DECLARE
          CURSOR C1 IS  SELECT distinct remarks FROM stock where remarks is not null;
          LV_dname      stock.remarks%type;
          LN_count      NUMBER := 1;
          list_id          ITEM;
     BEGIN
          list_id := Find_Item( 'remarks' );
          OPEN C1;
          LOOP
               FETCH C1 INTO LV_Dname;
               EXIT WHEN C1%NOTFOUND;
               Add_List_Element( list_id, LN_count,
                    LV_dname,  LV_dname);
               LN_count := LN_count + 1;
          END LOOP;
          CLOSE C1;
     END;

The code is fine and worked but it creates duplicate rows when I insert more than one record in the same session. I use this with when new record instance and when new item instance but the problem is same that after first record inserted it shows duplicate and then tripplicate and so so records as it picks every time the values from the database and included in the existing records. I want if I put this trigger at 'when new record instance' then it collects data from the database only for newer values not for each and every value.

Suppose there are two values in the remarks.
LOOM
LOOM2

At first time when I loaded the form it shows these two values but when i select one of these and save. The next time( in the same session with out exiting the form) it shows
LOOM
LOOM2
LOOM
LOOM2

I want to eliminate this duplication.

I hope you understand this
0
Comment
Question by:neeha
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 1

Accepted Solution

by:
Kagiejot earned 250 total points
ID: 12154023
Probably you forgot about CLEAR_LIST routine.

DECLARE
  list_id       ITEM;
  LN_count      NUMBER := 1;
CURSOR C IS
  SELECT distinct remarks FROM stock where remarks is not null;
BEGIN
  list_id := FIND_ITEM ('block_name.remarks');
  CLEAR_LIST('block_name.remarks');
  FOR C_REC IN C LOOP
    add_list_element(Item_ID, LN_count, C_REC.REMARKS, C_REC.REMARKS);
    LN_count := LN_count + 1;
  END LOOP;
END;

Good Luck
0
 

Author Comment

by:neeha
ID: 12156787
oh God thanks Kagiejot ,

I definately forgot the clear_list, I tried several times using clear_item. But millions of thanks for helping me.

Thanks again

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to trim oracle sql sentence in unix 17 69
Deleting Rows from an Oracle Database - Performance 19 73
sum of columns in a row in oracle 3 42
format dd/mm/yyyy parameter 16 48
Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
When it comes to protecting Oracle Database servers and systems, there are a ton of myths out there. Here are the most common.
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
This video shows how to copy an entire tablespace from one database to another database using Transportable Tablespace functionality.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question