I found a very fast and workable alternative to the "Property Search" question 
I had posted earlier. Perhaps it can be of use to others. To recap, I needed to 
be 
able to pull up a complex form, (not based on a grid or list view) and give the 
ability 
for a user to quickly move to any desired record in the table and from there be 
able 
to move forward or backward a row at a time in the order the form was called up 
in. 
In this case, I was dealing with Item Master and Bill of Material Master 
tables. 

Karen Tellef responded that she used the "Property ..jumpto" function with 
grids 
and suggested a method of possibly using a grid by sizing it to a single data 
field. 
However, when looking at the command, it does not reference any form control, 
but 
was a table command, so it had to work at the table level and I did not need to 
use 
a grid. 

So my solution was this. 

1)Place an autonum column in the table. I named it Bom_Rec_No. Autonum the 
data using the ORDER BY clause. This number now corresponds to the internal 
record number in the Rbase table. 

AUTONUM Bom_Rec_no IN bomheader USING 1 1 order by item num 

2)On my form, I placed a button with the eep that contained following core 
code. 
(I did not list all the error checking etc. here) 

... ask for the desired item number, conduct various checks and error routines 
then 

Set var vRecNumber = Bom_Rec_No in BomHeader where item = .vitem 

....other various checks and messages 



SET VAR vQuotes = (CVAL('QUOTES')) 




set var vSearch = ('Property Table BomHeader ' + .vQuotes ++ 
'JumpTo ' + (CTXT(.vRecNumber)) + .vQuotes) 




--goto first record as this speeds up search 




Property Table BomHeader 'FIRST' 




--Jump to desired record 

&vSearch 







I call the form by 

Edit BOM_Master order by Item asc 




This puts the records in the same order as the autonum column 

and in the logical order for the user. 




When the user clicks the office button, they are asked for an item number, 

the form jumps directly to that item very quickly. They can then move forward 

or backward in the table. So they can enter item 750, it jumps to 750. The NEXT 
button goes to 751, 752, etc. etc. The PREV button goes to 749, 748 etc. etc., 

using the standard NEXT ROW / PREV ROW eep's. 




I placed the above AUTONUM command in the app that creates new Items or 

Bill of Materials. So that if items are added, they are properly numbered in 
item 

sequence. New Items and BoM's are added only occasionally, so the renumbering 

is not a big issue in my case. 




A nice feature might be for Rbase to allow the retrieval of the internal table 
record number, 

similar to the Grid's GetProperty function, but allow you to obtain it with a 
WHERE clause. 

This would eliminate the need for the AUTONUM column and coding above. 




Set var vRecNumber = RBTI_Table_RecordNum in tablename where column_name = 
.vValue 




Thanks Karen for a suggestion that led to a final solution! 




-Bob 

Reply via email to