BBjTopLevelWindow::getValues

Description

In BBj 17 and higher, the this method returns a BBjWindowValues object which contains the values of all simple controls on this BBjTopLevelWindow. Because this value is returned in a single operation, network overhead across distributed client/server connections is minimized. Complex controls containing multiple values (like grids) are not included in this data structure.

Syntax

Return Value

Method

BBjWindowValues

getValues()

Parameters

None.

Return Value

Returns a BBjWindowValues object which contains the values of all simple controls on this BBjTopLevelWindow. Because this value is returned in a single operation, network overhead across distributed client/server connections is minimized. Complex controls containing multiple values (like grids) are not included in this data structure.

Remarks

This is similar to the data structure returned by BBjFormValidationEvent and BBjCloseEvent.

Example

rem ' BBjTopLevelWindow::getValues

sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
title$ = "BBjTopLevelWindow::getValues"
window! = sysgui!.addWindow(50,50,340,325,title$,$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
menubar! = window!.addMenuBar()
menu! = menubar!.addMenu(-100,"&File")
titem! = menu!.addMenuItem(-101,"get&Text")
titem!.setCallback(titem!.ON_MENU_ITEM_SELECT,"getText")
vitem! = menu!.addMenuItem(-102,"get&Values")
vitem!.setCallback(vitem!.ON_MENU_ITEM_SELECT,"getValues")
exit! = menu!.addMenuItem(-103,"E&xit")
exit!.setCallback(exit!.ON_MENU_ITEM_SELECT,"eoj")
list$="";for i = asc("A") to asc("Z");list$ = list$+chr(i)+$0a$;next i
gosub init; rem ' temp file + recordset
fast_touch_click$ = stbl("!OPTIONS","FAST_TOUCH_CLICK = TRUE")
navigator! = window!.addNavigator(100,10,10,320,25,"Navigator",$$)
navigator!.setToolTipText("BBjNavigator")
navigator!.bindRecordSet(recordset!,"key")
navigator!.setCallback(navigator!.ON_NAV_FIRST,"nav_first")
navigator!.setCallback(navigator!.ON_NAV_PREVIOUS,"nav_previous")
navigator!.setCallback(navigator!.ON_NAV_NEXT,"nav_next")
navigator!.setCallback(navigator!.ON_NAV_LAST,"nav_last")
listbox! = window!.addListBox(101,10,45,100,60,list$,$$)
listbox!.setToolTipText("BBjListBox")
listbox!.bindRecordSet(recordset!,"listbox")
listbutton! = window!.addListButton(102,120,45,100,160,list$,$$)
listbutton!.setToolTipText("BBjListButton")
listbutton!.bindRecordSet(recordset!,"listbutton")
listedit! = window!.addListEdit(103,230,45,100,160,list$,$$)
listedit!.setToolTipText("BBjListEdit")
listedit!.bindRecordSet(recordset!,"listedit")
editbox! = window!.addEditBox(104,120,80,100,25,"",$$)
editbox!.setToolTipText("BBjEditBox")
editbox!.bindRecordSet(recordset!,"editbox")
password! = window!.addEditBox(105,230,80,100,25,"",$0400$)
password!.setToolTipText("BBjEditBox (Password)")
password!.bindRecordSet(recordset!,"password")
cedit! = window!.addCEdit(106,10,115,100,60,"",$8106$)
cedit!.setToolTipText("BBjCEdit")
cedit!.bindRecordSet(recordset!,"cedit")
text! = window!.addStaticText(107,10,185,100,25,"",$$)
text!.setToolTipText("BBjStaticText")
text!.bindRecordSet(recordset!,"text")
inpute! = window!.addInputE(108,120,115,100,25,$$,"XXXX-XXXX-XXXX-XXXX")
inpute!.setToolTipText("BBjInputE")
inpute!.bindRecordSet(recordset!,"inpute")
inputn! = window!.addInputN(109,120,150,100,25,$$,"$###,###,###.00-")
inputn!.setToolTipText("BBjInputN")
inputn!.bindRecordSet(recordset!,"inputn")
inputd! = window!.addInputD(110,120,185,100,25)
inputd!.setToolTipText("BBjInputD")
inputd!.bindRecordSet(recordset!,"inputd")
checkbox! = window!.addCheckBox(111,230,115,100,25,"CheckBox",$$)
checkbox!.setToolTipText("BBjCheckBox")
checkbox!.bindRecordSet(recordset!,"checkbox")
radio1! = window!.addRadioButton(112,230,150,100,25,"Radio1",$$)
radio1!.setToolTipText("BBjRadioButton")
radio1!.bindRecordSet(recordset!,"radio1")
radio1!.setCallback(radio1!.ON_CHECK_ON,"check")
radio1!.setCallback(radio1!.ON_CHECK_OFF,"check")
radio2! = window!.addRadioButton(113,230,185,100,25,"Radio2",$$)
radio2!.setToolTipText("BBjRadioButton")
radio2!.bindRecordSet(recordset!,"radio2")
radio2!.setCallback(radio2!.ON_CHECK_ON,"check")
radio2!.setCallback(radio2!.ON_CHECK_OFF,"check")
slider! = window!.addHorizontalSlider(114,10,220,320,50)
slider!.setMajorTickSpacing(10)
slider!.setMinorTickSpacing(5)
slider!.setPaintTicks(1)
slider!.setPaintLabels(1)
slider!.setToolTipText("BBjSlider")
slider!.bindRecordSet(recordset!,"slider")
form! = window!.addButton(1,10,285,125,25,"FormValidation",$$)
form!.setCallback(form!.ON_BUTTON_PUSH,"form")
form!.setCallback(form!.ON_FORM_VALIDATION,"formvalidation")
getValues! = window!.addButton(2,140,285,95,25,"getValues",$$)
getValues!.setCallback(getValues!.ON_BUTTON_PUSH,"getValues")
getText! = window!.addButton(3,240,285,90,25,"getText",$$)
getText!.setCallback(getText!.ON_BUTTON_PUSH,"getText")
radiogroup! = window!.addRadioGroup()
radiogroup!.add(radio1!)
radiogroup!.add(radio2!)
print recordset!.getCurrentRecordData()
for id = 101 to 114
    window!.getControl(id).setCallback(window!.ON_LOST_FOCUS,"blur",err=*next)
next id
process_events

eoj:
    rem ' gosub dirty
    recordset!.close()
    erase filename$
release

init:
    mkdir "./files",err=*next
    filename$ = "./files/navigator"+str(dec(info(3,0)))+".dat"
    erase filename$,err=*next
    vkeyed filename$,[0:1:4],0,1024
    temp = unt
    open (temp)filename$
    template$ = "key:c(4),slider:n(3*),listbox:c(1*),listbutton:c(1*),listedit:c(1*),"
    template$ = template$ + "radio1:n(1*),radio2:n(1*),checkbox:n(1*),inputn:n(9*),"
    template$ = template$ + "inputd:n(7*),text:c(10*),editbox:c(10*),password:c(10*),"
    template$ = template$ + "inpute:c(10*),cedit:c(99* = )"
    dim rec$:template$
    for rec = 1 to 100
        rec.key$ = str(rec*10:"0000"); rem str(rnd(9999):"0000")
        rec.slider = rnd(100)
        rec.listbox$ = chr(asc("A")+rnd(26))
        rec.listbutton$ = chr(asc("A")+rnd(26))
        rec.listedit$ = chr(asc("A")+rnd(26))
        rec.radio2 = mod(rec,2)
        rec.radio1 = !(rec.radio2)
        rec.checkbox = rnd(2)
        rec.inputn = rnd(0) * 9999999
        rec.inputd = rnd(1000) + jul(0,0,0) - 500
        gosub text; rec.text$ = text$
        gosub text; rec.editbox$ = text$
        gosub text; rec.password$ = text$
        gosub text; rec.inpute$ = text$
        rec.cedit$ = ""
        for x = 0 to rnd(16);gosub text;rec.cedit$ = rec.cedit$+text$+" ";next x
        writerecord(temp)rec$
    next rec
    close (temp)
    recordset! = bbjapi().createFileRecordSet(filename$,"",fattr(rec$))
return

text:
    text$ = ""
    for i = 1 to rnd(16)
        text$ = text$ + chr(asc("a")+rnd(26))
    next i
return

check:
    event! = sysgui!.getLastEvent()
    control! = event!.getControl()
    print control!," ",event!
return

nav_first:
    gosub dirty
    recordset!.first(err=*next)
    print recordset!.getCurrentRecordData()
return

nav_previous:
    gosub dirty
    recordset!.previous(err=*next)
    print recordset!.getCurrentRecordData()
return

nav_next:
    gosub dirty
    recordset!.next(err=*next)
    print recordset!.getCurrentRecordData()
return

nav_last:
    gosub dirty
    recordset!.last(err=*next)
    print recordset!.getCurrentRecordData()
return

dirty:
    if (recordset!.isCurrentRecordDirty()) then
        print recordset!.getCurrentRecordData()
        i = msgbox("Save record?",4+32+256,"Record Changed")
        if (i = 6) then
            recordset!.update(recordset!.getCurrentRecordData())
        endif
    endif
return

form:
    event! = sysgui!.getLastEvent()
    print event!.getEventName()
return

getText:
    html! = new StringBuilder("<html>")
    dim text$[101:114]
    ms = System.currentTimeMillis()
    text$[101] = window!.getControl(101).getText()
    text$[102] = window!.getControl(102).getText()
    text$[103] = window!.getControl(103).getText()
    text$[104] = window!.getControl(104).getText()
    text$[105] = window!.getControl(105).getText()
    text$[106] = window!.getControl(106).getText()
    text$[107] = window!.getControl(107).getText()
    text$[108] = window!.getControl(108).getText()
    text$[109] = window!.getControl(109).getText()
    text$[110] = str(window!.getControl(110).getValue())
    text$[111] = str(window!.getControl(111).isSelected())
    text$[112] = str(window!.getControl(112).isSelected())
    text$[113] = str(window!.getControl(113).isSelected())
    text$[114] = str(window!.getControl(114).getValue())
    ms = System.currentTimeMillis() - ms
    title$ = "getText time for 14 controls: " + str(ms) + " msec."
    for id = 101 to 114
        control! = window!.getControl(id)
        control$ = control!.toString()
        control$ = control$(1,pos("@"=control$)-1)
        html!.append(control$).append(" ").append(str(id)).append(" = ")
        html!.append("""").append(cvs(text$[id],16)).append("""").append("<br>")
    next id
    a = msgbox(html!.toString(),0,title$)
return

formvalidation:
    event! = sysgui!.getLastEvent()
    event$ = event!.getEventName()
    html! = new StringBuilder("<html>")
    dim text$[101:114]
    ms = System.currentTimeMillis()
    for id = 101 to 114
        text$[id] = event!.getText(window!.getControl(id))
    next id
    event!.accept(event!.isSelected(checkbox!))
    ms = System.currentTimeMillis() - ms
    title$ = event$ + " time for 14 controls: " + str(ms) + " msec"
    for id = 101 to 114
        control! = window!.getControl(id)
        control$ = control!.toString()
        control$ = control$(1,pos("@"=control$)-1)
        html!.append(control$).append(" ").append(str(id)).append(" = ")
        html!.append("""").append(cvs(text$[id],16)).append("""").append("<br>")
    next id
    a = msgbox(html!.toString(),0,title$)
return

getvalues:
    ms = System.currentTimeMillis()
    values! = window!.getValues()
    map! = values!.getMap()
    html! = new StringBuilder("<html>")
    dim text$[101:114]
    for id = 101 to 114
        text$[id] = values!.getText(window!.getControl(id))
    next id
    ms = System.currentTimeMillis() - ms
    title$ = "getValues time for 14 controls: " + str(ms) + " msec"
    for id = 101 to 114
        control! = window!.getControl(id)
        control$ = control!.getToolTipText()
        html!.append(control$).append(" ").append(str(id)).append(" = ")
        html!.append("""").append(cvs(text$[id],16)).append("""").append("<br>")
    next id
    a = msgbox(html!.toString(),0,title$)
return

blur:
    event! = sysgui!.getLastEvent()
    print event!.getEventName()," ",event!.getText()," ",event!.isTemporary()
return

See Also

BBjAPI

BBjCloseEvent

BBjFormValidationEvent

BBj Object Syntax

BBj Object Diagram for an illustration of the relationship between BBjObjects.