Hi,
I need to write a program such that users can input table name and fields name and then display the values of given fields of the given table of records.
Note - User can enter multiple fields as well. Do use sports database
I'm almost done with the program however issue is whenever I'm display fh:buffer-value .It only displays last value of the field in the record. Also let me know can we display column name at the top .
Suppose user enter following fields - name custnum country. It's only displaying country. rest of the fields are getting overlapped in the frame. Can you please help me out on this?
Below is the program -
def var table1 as character no-undo.
def var field1 as character format "x(50)" no-undo.
def var qh as handle no-undo.
def var bh as handle no-undo.
def var fh as handle no-undo.
def var ix as integer no-undo.
define variable fieldex as character extent 20.
define variable fieldey as character extent 20.
define variable lcquerystring as character no-undo.
Set table1 field1.
FIND FIRST _file WHERE _file._File-Name EQ table1 NO-LOCK NO-ERROR.
IF available(_file) then do:
ASSIGN lcQueryString = "FOR EACH " + table1.
end.
else do:
display "Table is not available".
return.
end.
create buffer bh for table table1.
create query qh.
qh:set-buffers( bh ).
qh:query-prepare( lcquerystring ).
qh:query-open.
display bh:name.
repeat WITH FRAME myFrame DOWN :
qh:GET-NEXT( no-lock ).
do ix = 1 to num-entries(field1," "):
assign fieldex[ix] = entry(ix,field1," ").
fh = bh:buffer-field(fieldex[ix]).
display fh:buffer-value FORMAT "x(30)" .
end.
end.
delete object bh.
delete object qh .
Thanks.
"
display fh:buffer-value FORMAT "x(30)" .
DOWN.
"
do ix = 1 to num-entries(field1," ") WITH FRAME a DOWN: