Hi all,
I have a .w file where I dynamically create checkboxes. While creating them, I store them into a temp-table to check afterwards if they are checked or not! This is my code:
DEF TEMP-TABLE ttWidgets
FIELD ttId AS INT
FIELD ttWidget AS HANDLE.
DEF VAR cServers AS CHAR NO-UNDO
INIT "server1 (BE), server2 (FR), server3 (PL), server4 (IE), server5 (EN)".
DEF VAR hdlToggle AS HANDLE NO-UNDO.
DEF VAR hdlFrame AS HANDLE NO-UNDO.
DEF VAR i AS INT NO-UNDO.
DEF VAR intRow AS INT NO-UNDO INIT 5.
DEF VAR intCol AS INT NO-UNDO INIT 10.
ASSIGN hdlFrame = FRAME {&FRAME-NAME}:HANDLE.
DO i = 1 TO NUM-ENTRIES(cServers) BY 1:
CREATE TOGGLE-BOX hdlToggle
ASSIGN
ROW = intRow
COLUMN = intCol
LABEL = ENTRY(i,cServers)
FRAME = hdlFrame
CHECKED = FALSE
VISIBLE = TRUE
SENSITIVE = TRUE.
CREATE ttWidgets.
ASSIGN
ttWidgets.ttId = i
ttWidgets.ttWidget = hdlToggle.
intRow = intRow + 1.
IF i = 5 THEN ASSIGN intCol = 30.
IF i = 5 THEN ASSIGN intRow = 5.
END.
Now, when I press a button I want to loop through all dynamic checkboxes to verify if they are checked or not, if checked then display the checkbox' label.
(Next procedure is NOT running but I just pasted here to make my point).
PROCEDURE (Press Button):
DEF VAR hBuffer AS HANDLE NO-UNDO.
DEF VAR bttWidgets AS HANDLE NO-UNDO.
DEF VAR qttWidgets AS HANDLE NO-UNDO.
bttWidgets = TEMP-TABLE ttWidgets: DEFAULT-BUFFER-HANDLE.
CREATE QUERY qttWidgets.
qttWidgets:SET-BUFFERS(TEMP-TABLE ttWidgets: DEFAULT-BUFFER-HANDLE).
qttWidgets:QUERY-PREPARE("for each " + TEMP-TABLE ttWidgets:NAME).
qttWidgets:QUERY-OPEN().
hBuffer = qttWidgets:GET-BUFFER-HANDLE(1).
qttWidgets:GET-FIRST().
DO WHILE NOT qttWidgets:QUERY-OFF-END:
IF hBuffer:BUFFER-FIELD(1):CHECKED THEN
MESSAGE STRING(hBuffer:BUFFER-FIELD("ttWidgets"):LABEL)) VIEW-AS ALERT-BOX.
qttWidgets:GET-NEXT().
END.
END.
END PROCEDURE.
I think I'm making it too complicated ... Does somebody know how it should be syntaxed?
Thx in advance!
I have a .w file where I dynamically create checkboxes. While creating them, I store them into a temp-table to check afterwards if they are checked or not! This is my code:
DEF TEMP-TABLE ttWidgets
FIELD ttId AS INT
FIELD ttWidget AS HANDLE.
DEF VAR cServers AS CHAR NO-UNDO
INIT "server1 (BE), server2 (FR), server3 (PL), server4 (IE), server5 (EN)".
DEF VAR hdlToggle AS HANDLE NO-UNDO.
DEF VAR hdlFrame AS HANDLE NO-UNDO.
DEF VAR i AS INT NO-UNDO.
DEF VAR intRow AS INT NO-UNDO INIT 5.
DEF VAR intCol AS INT NO-UNDO INIT 10.
ASSIGN hdlFrame = FRAME {&FRAME-NAME}:HANDLE.
DO i = 1 TO NUM-ENTRIES(cServers) BY 1:
CREATE TOGGLE-BOX hdlToggle
ASSIGN
ROW = intRow
COLUMN = intCol
LABEL = ENTRY(i,cServers)
FRAME = hdlFrame
CHECKED = FALSE
VISIBLE = TRUE
SENSITIVE = TRUE.
CREATE ttWidgets.
ASSIGN
ttWidgets.ttId = i
ttWidgets.ttWidget = hdlToggle.
intRow = intRow + 1.
IF i = 5 THEN ASSIGN intCol = 30.
IF i = 5 THEN ASSIGN intRow = 5.
END.
Now, when I press a button I want to loop through all dynamic checkboxes to verify if they are checked or not, if checked then display the checkbox' label.
(Next procedure is NOT running but I just pasted here to make my point).
PROCEDURE (Press Button):
DEF VAR hBuffer AS HANDLE NO-UNDO.
DEF VAR bttWidgets AS HANDLE NO-UNDO.
DEF VAR qttWidgets AS HANDLE NO-UNDO.
bttWidgets = TEMP-TABLE ttWidgets: DEFAULT-BUFFER-HANDLE.
CREATE QUERY qttWidgets.
qttWidgets:SET-BUFFERS(TEMP-TABLE ttWidgets: DEFAULT-BUFFER-HANDLE).
qttWidgets:QUERY-PREPARE("for each " + TEMP-TABLE ttWidgets:NAME).
qttWidgets:QUERY-OPEN().
hBuffer = qttWidgets:GET-BUFFER-HANDLE(1).
qttWidgets:GET-FIRST().
DO WHILE NOT qttWidgets:QUERY-OFF-END:
IF hBuffer:BUFFER-FIELD(1):CHECKED THEN
MESSAGE STRING(hBuffer:BUFFER-FIELD("ttWidgets"):LABEL)) VIEW-AS ALERT-BOX.
qttWidgets:GET-NEXT().
END.
END.
END PROCEDURE.
I think I'm making it too complicated ... Does somebody know how it should be syntaxed?
Thx in advance!