Error populating list box #5063 (ViP Specific)
At 17 OCT 1997 02:11:41PM Donald Patti wrote:
Hi fellow VIPers:
I am having a little trouble populating my list box with data using the columncontentsunique method. I know the problem relates to the number of rows of the source column, but don't know a way around it.
If I limit query results to 25, all is fine. However, if I remove the limit, I receive the message:
Revelation Vip Runtime Error 5063
objectname.ColumnCotentsUnique: The data has been truncated.
Any ideas how to get around this?
Thanks for the help.
–dp
At 17 OCT 1997 03:51PM Stephen Bellefontaine Revelation wrote:
Hello Donald,
1. To work-around the issue place the following code in the Public Module …
'
'SUB FillComboList
'DESCRIPTION: Replacement function for columncontentsunique which fails on large
' amounts of data).
'
public sub FillComboList( DataObj as Data, ListObj as ComboBox, SrcColumn as Long )
dim x as long
dim TempString as string
ListObj.Clear
for x=1 to DataObj.ResultRowCount
TempString=DataObj.CellGetString( x, SrcColumn )
if TempString "" then
if ListObj.ItemFindExact( TempString, 0 )=-1 then
status%=ListObj.ItemAdd( TempString )
end if
end if
next x
end sub
'
'SUB FillList
'DESCRIPTION: Replacement function for columncontentsunique which fails on large
' amounts of data).
'
public sub FillList( DataObj as Data, ListObj as ListBox, SrcColumn as Long )
dim x as long
dim TempString as string
ListObj.Clear
for x=1 to DataObj.ResultRowCount
TempString=DataObj.CellGetString( x, SrcColumn )
if TempString "" then
if ListObj.ItemFindExact( TempString, 0 )=-1 then
status%=ListObj.ItemAdd( TempString )
end if
end if
next x
end sub
2. In the AppWin1, Init event place the following code …
Data1.ExecuteQuery
Call FillList(Data1,List1,1)
Call FillComboList(Data1,Combo1,1)
3. Add a connected Data Object(Data1) to your AppWindow with atleast one column.
4. Place one ListBox(List1) and one ComboBox(Combo1) on the AppWindow.
5. Run the application.
Note: Having a listbox with over 1000 records slows the data retrieval process for both your application and your users.As another workaround, I would suggest that you further filter the records within the data object. For example try setting selection criteria to match a date range. This will allow you to return a smaller result set of records that meet a certain date range, and you will be able to display them in your listbox and performance will also increase.
At 30 OCT 1997 10:07AM Donald Patti wrote:
This response was extremely helpful! I'd love to cut down on the data we have to churn through, but the application necessitates this route.
Thanks again for the outstanding support.
–dp