Solved

programatically List Item problem

Posted on 2004-09-25
2
484 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

[Webinar] Code, Load, and Grow

Managing multiple websites, servers, applications, and security on a daily basis? Join us for a webinar on May 25th to learn how to simplify administration and management of virtual hosts for IT admins, create a secure environment, and deploy code more effectively and frequently.

Question has a verified solution.

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

Introduction A previously published article on Experts Exchange ("Joins in Oracle", http://www.experts-exchange.com/Database/Oracle/A_8249-Joins-in-Oracle.html) makes a statement about "Oracle proprietary" joins and mixes the join syntax with gen…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
Via a live example show how to connect to RMAN, make basic configuration settings changes and then take a backup of a demo database
Via a live example, show how to restore a database from backup after a simulated disk failure using RMAN.

732 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