BBjNavigator::getTargetRecordSet

Description

In BBj 4.0 and higher, this method returns the Target RecordSet associated with a BBjNavigator.

Syntax

Return Value

Method

BBjRecordSet

getTargetRecordSet()

Parameters

None.

Return Value

Returns the target BBjRecordSet associated with a Navigator.

Remarks

There can be two RecordSets associated with a Navigator control. The Target RecordSet, if set, is the RecordSet affected by button clicks in the Navigator. The Bound RecordSet, if set, is the RecordSet containing the field that is displayed in the middle of the Navigator as the user navigates through records.

Example

REM Return the RecordSet associated with a Navigator

REM Obtain the instance of the BBjAPI object
LET myAPI!=BBjAPI()

REM Open the SysGui device
SYSGUI=UNT
OPEN (SYSGUI)"X0"

rem ' If the client is Java 1.4.2 or later on Windows XP, set XP L&F
if (info(3,6)="0" and info(0,0)="Windows XP" and info(1,1)>="1.4.2") or (info(3,6)<>"0" and
:  BBjAPI().getThinClient(err=*next).getClientOSName(err=*next)="Windows XP" and
:  BBjAPI().getThinClient(err=*next).getClientJavaVersion(err=*next)>="1.4.2") then
:  if java.lang.System.getProperty("swing.noxp")=null() then
:     BBjAPI().getSysGui().setLookAndFeel("WindowsXPLookAndFeel")

REM Obtain the instance of the BBjSysGui object
LET mySysGui!=myAPI!.getSysGui()

REM Set addWindow param values
X=200
Y=200
WIDTH=500
HEIGHT=500
TITLE$="BBjNavigator Sample"

REM Set the current context
mySysGui!.setContext(0)

REM Create work file and RecordSet
file$="BBjNavigator.dat"
GOSUB MAKE_FILE
RecordSet! = myAPI!.createFileRecordSet(file$,$$,template$)

REM Create a window
myWindow! = mySysGui!.addWindow(X,Y,WIDTH,HEIGHT,TITLE$)

myWindow!.addStaticText(800,10,50,100,25,"Static Text: id")
myWindow!.addStaticText(801,10,100,100,25,"Static Text: num")
myWindow!.addStaticText(802,10,150,100,25,"CheckBox: num")
myWindow!.addStaticText(803,10,200,100,25,"CEdit: name")
myWindow!.addStaticText(804,10,250,100,25,"InputE: name")
myWindow!.addStaticText(805,10,300,100,25,"InputN: num")
myWindow!.addStaticText(806,10,350,100,25,"InputD: date")
myWindow!.addStaticText(807,300,50,100,25,"ListButton: name")
myWindow!.addStaticText(808,300,150,100,25,"ListEdit: name")
myWindow!.addStaticText(809,300,250,100,25,"ListBox: num")

stat! = myWindow!.addStaticText(102,150,50,40,25,"text")
stat!.bindRecordSet(RecordSet!,"id")

num! = myWindow!.addStaticText(103,150,100,40,25,"num")
num!.bindRecordSet(RecordSet!,"num")

checkbox! = myWindow!.addCheckBox(104,150,150,80,25,"num:")
checkbox!.bindRecordSet(RecordSet!,"num")

cedit! = myWindow!.addCEdit(105,150,200,80,20,"")
cedit!.bindRecordSet(RecordSet!,"name")

inpute! = myWindow!.addInputE(106,150,250,80,20,"")
inpute!.bindRecordSet(RecordSet!,"name")

inputn! = myWindow!.addInputN(107,150,300,80,20,"")
inputn!.bindRecordSet(RecordSet!,"num")

inputd! = myWindow!.addInputD(108,150,350,80,20,"")
inputd!.bindRecordSet(RecordSet!,"julian")

listbu! = myWindow!.addListButton(109,400,50,80,80,"")
listbu!.bindRecordSet(RecordSet!,"name")
listbu!.fillFromRecordSet(RecordSet!,"name")

listed! = myWindow!.addListEdit(110,400,150,80,80,"")
listed!.fillFromRecordSet(RecordSet!,"name")
listed!.bindRecordSet(RecordSet!,"name")

listbox! = myWindow!.addListBox(111,400,250,80,80,"")
listbox!.fillFromRecordSet(RecordSet!,"num")
listbox!.bindRecordSet(RecordSet!,"num")

myNavigator! = myWindow!.addNavigator(201,10,400,250,30,"NAV")
myNavigator!.setCallback(myNavigator!.ON_NAV_FIRST,"firstRecord")
myNavigator!.setCallback(myNavigator!.ON_NAV_PREVIOUS,"previousRecord")
myNavigator!.setCallback(myNavigator!.ON_NAV_NEXT,"nextRecord")
myNavigator!.setCallback(myNavigator!.ON_NAV_LAST,"lastRecord")

rem ' TargetRecordSet is only useful with Navigators from resource files.
print "Navigator RecordSet =",myNavigator!.getTargetRecordSet(err=*next)

save! = myWindow!.addButton(114,280,400,80,25,"Save")
save!.setCallback(save!.ON_BUTTON_PUSH,"doSave")

quit! = myWindow!.addButton(116,380,400,80,25,"Close")
quit!.setCallback(quit!.ON_BUTTON_PUSH,"APP_CLOSE")

myWindow!.setCallback(myWindow!.ON_CLOSE,"APP_CLOSE")

process_events

firstRecord:
print "FIRST"
RecordSet!.first()
return

previousRecord:
print "PREV"
RecordSet!.previous(err=*next)
return

nextRecord:
print "NEXT"
RecordSet!.next(err=*next)
return

lastRecord:
print "LAST"
RecordSet!.last()
return

doSave:
if RecordSet!.isDirty() then
   rd! = RecordSet!.getRecordData()
   RecordSet!.saveRecordData(rd!)
   print 'rb',"Save"
endif
return

APP_CLOSE:
release

MAKE_FILE:
template$ = "id:n(6),num:n(6),Julian:U(4):DATE=Julian:,name:c(1*)"
erase file$,err=*next
mkeyed file$,[1:6],0,40
chan=unt
open(chan)file$

dim r$:template$,names$[11]
names$[0] = "zero"
names$[1] = "one"
names$[2] = "two"
names$[3] = "three"
names$[4] = "four"
names$[5] = "five"
names$[6] = "six"
names$[7] = "seven"
names$[8] = "eight"
names$[9] = "nine"
names$[10] = "ten"

today = JUL(0,0,0)
for i = 0 to 10
    r.num=i
    r.id = i
    r.JULIAN = today + i
    r.name$ = names$[i]
    write record(chan)r$
next i
return

See Also

BBjAPI

BBjNavigator

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.