Error -1108
Posted in 1999
Hi Folks
I have 4gl program in Informix5.x. I moved it my new box which has
informix7.23.
I have the followinf files
1. a.4gl
2. a.per
I compiled it and compilation went through OK.
I am getting a runtime error -1108 which says record not found in the
screen.
I checked both my files and the record in both the files have the same
names.
Infact I want to use the a.4gl as my lib file as I nedd it at many
places in my application.
MY PROBLEM IS I AM NOT ABLE TO GO TO MY SECOND FILED
Here is my .per code
DATABASE FORMONLY
SCREEN
{
[a ] [b ] [c
]
Input Date : [f000 ]
Printer name :[d|f001 ]
Number of Copies:[f002]
}
END
ATTRIBUTES
a = FORMONLY.progname,NOENTRY,color = REVERSE;
b = FORMONLY.title,NOENTRY,color = REVERSE;
c = FORMONLY.logname,NOENTRY,color = REVERSE;
f000 = FORMONLY.i_date TYPE DATE,UPSHIFT,
color = UNDERLINE,FORMAT = "mm/dd/yyyy",AUTONEXT,COMMENTS =
"Enter report date <ENTER>-Run
<CTRL-E>-Quit";
d = FORMONLY.p_sel,AUTONEXT,COMMENTS =
"Enter <SPACEBAR> to select printer <ENTER>-Run
<CTRL-E>-Quit";
f001 = FORMONLY.prname,NOENTRY,color = UNDERLINE,AUTONEXT,COMMENTS =
"Enter printer/spooler name <ENTER>-Run
<CTRL-E>-Quit";
f002 = FORMONLY.ncopy TYPE SMALLINT,
color = UNDERLINE,DEFAULT = 1,COMMENTS =
"Enter number of copies to print <ENTER>-Run
<CTRL-E>-Quit";
END
INSTRUCTIONS
delimiters " "
END
Here is my 4gl code
DATABASE locator
FUNCTION get_one_date (title, prt_type)
DEFINE title CHAR(30) ## program title
DEFINE prt_type CHAR(1) ## printer type to return L -
landscape P - Portrait
DEFINE ncopy SMALLINT
DEFINE p_sel CHAR(1)
DEFINE QUIT SMALLINT
DEFINE prt_cnt,i,do_rpt INTEGER
DEFINE prname CHAR(14) ## selected printer name
DEFINE i_date DATE ## input date
DEFINE progname CHAR(10) ## name of the program
DEFINE logname CHAR(20) ## user's login name
DEFINE usr_rec RECORD LIKE cosmic:users.* ## users record
DEFINE prt_rec RECORD LIKE cosmic:printers.* ## printers record
DEFINE prt_arr ARRAY[50] OF CHAR(14) ## maximum of 50 printer
selections
SET ISOLATION TO DIRTY READ
LET progname = UPSHIFT (ARG_VAL(0))
LET logname = UPSHIFT (fgl_getenv ("LOGNAME")) CLIPPED
LET title = fgl_center(title, 30)
OPTIONS INPUT WRAP, ACCEPT KEY CONTROL-m
INITIALIZE usr_rec.* TO NULL
INITIALIZE prt_rec.* TO NULL
## get users info
SELECT * INTO usr_rec.*
FROM cosmic:users
WHERE us_user = logname
IF status = 100 THEN
ERROR "ERR : Getting user info"
SLEEP 5
EXIT PROGRAM
END IF
DECLARE pr_cur CURSOR FOR
SELECT pr_name FROM cosmic:printers
WHERE pr_name != usr_rec.us_printer AND pr_type = "HP"
LET prt_arr[1] = usr_rec.us_printer
LET i = 2
## get printer list
FOREACH pr_cur INTO prt_arr[i]
LET i = i + 1
IF i > 50 THEN
ERROR "Print Array Overflow"
EXIT FOREACH
END IF
END FOREACH
LET prt_cnt = i - 1
OPEN WINDOW tsk_win AT 5,4 WITH 15 ROWS , 74 COLUMNS
ATTRIBUTE(BORDER)
OPEN FORM tsk_form FROM "inp_one_dt"
LET i = 1
LET prname = prt_arr[1]
LET p_sel = " "
LET QUIT = FALSE
LET do_rpt = FALSE
LET i_date = TODAY
DISPLAY FORM tsk_form
CLEAR FORM
DISPLAY BY NAME title,progname,logname
LET ncopy = 1
## get input range , and report destination from the user
INPUT BY NAME i_date, p_sel, prname, ncopy WITHOUT DEFAULTS
ON KEY (CONTROL-e)
LET QUIT = TRUE
LET do_rpt = FALSE
EXIT INPUT
AFTER FIELD p_sel
IF ((fgl_lastkey() != fgl_keyval("up")) AND
(fgl_lastkey() != fgl_keyval("down")) AND
(fgl_lastkey() != fgl_keyval("tab")) AND
(fgl_lastkey() != fgl_keyval("return")) AND
(fgl_lastkey() != fgl_keyval("prevpage")) AND
(fgl_lastkey() != fgl_keyval("nextpage")) AND
(fgl_lastkey() != fgl_keyval("accept"))) THEN
IF p_sel <> " " THEN
LET p_sel = " "
DISPLAY BY NAME p_sel
NEXT FIELD p_sel
END IF
LET i = i + 1
IF i > prt_cnt THEN
LET i = 1
END IF
LET prname = prt_arr[i]
DISPLAY BY NAME prname
NEXT FIELD p_sel
END IF
AFTER INPUT
IF i_date IS NULL IS NULL THEN
ERROR "ERR: Enter report date"
NEXT FIELD i_date
END IF
SELECT * INTO prt_rec.*
FROM cosmic:printers
WHERE pr_name = prname
IF status = 100 THEN
ERROR "ERR: Printer Not defined in the printerstable "
NEXT FIELD p_sel
END IF
LET do_rpt = TRUE
LET QUIT = TRUE
END INPUT
IF do_rpt THEN ## if everything ok
DISPLAY "Processing... please wait" AT 14,2
END IF
IF prt_type = "L" THEN
LET prname = prt_rec.pr_landscape CLIPPED
ELSE
LET prname = DOWNSHIFT (prname)
END IF
##close window tsk_win
RETURN do_rpt, i_date, prname, ncopy
END FUNCTION
I appreciate your help
Saleem