Date: Tue, 14 May 2002 11:06:23 -0400
Reply-To: "Richard A. DeVenezia" <radevenz@IX.NETCOM.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Richard A. DeVenezia" <radevenz@IX.NETCOM.COM>
Organization: MindSpring Enterprises
Subject: Re: List box control problem
Content-Type: text/plain;
"Bill Österlund" <billiboj@hotmail.com> wrote in message
news:1717fa352ba8a229fffcbb9dfec97476.24400@mygate.mailgate.org...
> Hi all.
>
> I have a list box problem. First I create a list holding all unique
> values in a varable. The problem is that when I load my list box with
> the scl list the first values get blank, although they do have a value
> in the list. Doing a call putlist(the_list) confirms that.
>
> It seems like the problem is that the list is too long, it's 956 items
> long. If I create a list contaning only the first 927 items in the list
> it works fine, but when I use the complete list (or the first 928 items)
> the values of first three or four items get blank.
>
> The values in the list looks like -0.22 -0.15 -0.08 -0.07 -0.05 -0.04
> -0.03 -0.02 -0.01 0 0.01 0.02 and so on to the highest value that is
> approximatly 4000.
>
> Does anybody know how to deal with this problem?
>
> Cheers
> Bill
>
>
> --
> Posted via Mailgate.ORG Server - http://www.Mailgate.ORG
What SAS version, host platform and memory ?
How do you populate the list ? LVARLEVEL ?
Is the variable numeric or character (guessing numeric) ?
LVARLEVEL should collapse all missing values to a single item.
Do you have options active that multiple types of missing values ?
If the data _is_ character, there could be many variations of unprintable
strings in your data causing the 3 or 4 'blank' lines.
This is some host resource based upper limit for the number of items, for
instance, 50,000 items locks up my SAS session pretty good, and 5,000 is
barely fast enough to meet my standard of fast enough. The time
consumption comes from the listbox1.items assignment.
Try this snippet. Do 1,000 items show up in your list box ?
init:
items = makelist();
do i = 1 to 1000;
rc = insertc (items, put(i,best8.));
end;
listbox1.items=items;
rc = dellist (items);
return;
or this snippet
init:
dsid = open ('myData', 'NEW');
rc = newvar (dsid, 'myVariable', 'N');
rc = close (dsid);
dsid = open ('myData', 'U');
call set (dsid);
do i = 1 to 1000;
myVariable = (i-500) / 314 ;
rc = append (dsid);
end;
rc = close (dsid);
items = makelist ();
dsid = open ('myData');
nlevels = 0;
rc = lvarlevel (dsid, 'myVariable', nlevels, items);
rc = close (dsid);
listbox1.items = items;
rc = dellist (items);
return;
--
Richard A. DeVenezia
SAS/AF example - Maintaining Aspect
http://www.devenezia.com/downloads/sas/af/index.php?id=17