mfmsg04.i

andycrack

New Member
I'm currently develop a restriccion for an explorer for the range of dates.
The main idea is restrict dates only 4 days of diference between fch and fch1.

But when i run the explorer not display the error msg.

Help please.


DEF VAR diferencia AS INT.
DEF VAR eff AS DATE.
DEF VAR eff1 AS DATE.
DEF VAR eff2 AS DATE.



FORM
site COLON 20 LABEL "Almacén"
/* site1 COLON 49 LABEL {t001.i} */
hr COLON 20
hr1 COLON 49 LABEL {t001.i}
nbr COLON 20 LABEL "Orden"
nbr1 COLON 49 LABEL {t001.i}
eff COLON 20 LABEL "Fecha Autoriz"
eff1 COLON 49 LABEL {t001.i}
fch COLON 20 LABEL "Fecha Ingreso"
fch1 COLON 49 LABEL {t001.i}
tipo COLON 20 LABEL "Tipo"
tipo1 COLON 49 LABEL {t001.i}
subtipo COLON 20 LABEL "Sub-Tipo"
subtipo1 COLON 49 LABEL {t001.i}
cust COLON 20 LABEL "Cliente"
cust1 COLON 49 LABEL {t001.i}
SKIP(1)
WITH FRAME a SIDE-LABELS WIDTH 80.


ASSIGN
eff = TODAY
eff1 = TODAY
fch = TODAY
fch1 = TODAY.

Mainloop:
REPEAT :

IF hr1 = hi_char THEN hr1 = "".
IF nbr1 = hi_char THEN nbr1 = "".
IF tipo1 = hi_char THEN tipo1 = "".
IF subtipo1 = hi_char THEN subtipo1 = "".
IF cust1 = hi_char THEN cust1 = "".
IF eff1 = hi_date THEN eff1 = ?.
IF eff = low_date THEN eff = ?.
IF fch1 = hi_date THEN fch1 = ?.
IF fch = low_date THEN fch = ?.
diferencia = fch1 - fch.
diferencia2 = eff1 - eff.



if diferencia > 4 then do:
{mfmsg04.i '"Diference Too Long"' 3}
next-prompt eff1 with frame a.
undo,retry.
end.

if diferencia2 > 4 then do:
{mfmsg04.i '"Diference Too Long"' 3}
next-prompt eff1 with frame a.
undo, retry.
end.


 
1. you need to check 1st for empty date value: ? after the user input statement
2. where is the user input statement (update/set..) ?!
3. what version of MFG you have ?
 
{mfdtitle.i}

DEF VAR hr AS CHAR FORMAT "x(8)" LABEL "Hoja Ruta".
DEF VAR hr1 LIKE hr.
DEF VAR nbr LIKE so_nbr.
DEF VAR nbr1 LIKE so_nbr.
DEF VAR eff LIKE so_ord_date.
DEF VAR eff1 LIKE so_ord_date.
DEF VAR fch LIKE so_ord_date.
DEF VAR fch1 LIKE so_ord_date.
DEF VAR site LIKE so_site.
/* DEF VAR site1 LIKE so_site. */
DEF VAR tipo LIKE xxtpdev-cod.
DEF VAR tipo1 LIKE xxtpdev-cod.
DEF VAR subtipo LIKE xxtpdev-cod.
DEF VAR subtipo1 LIKE xxtpdev-cod.
DEF VAR cust LIKE so_cust.
DEF VAR cust1 LIKE so_cust.

DEF VAR deleted AS LOG.
DEF VAR kk AS INT.
DEF VAR diferencia AS INT.
DEF VAR diferencia2 AS INT.

DEF TEMP-TABLE tt-mstr
FIELD tt-site LIKE ih_site /* Almacen */
FIELD tt-sls LIKE ih_slspsn[1] /* Vendedor */
FIELD tt-nbr LIKE ih_nbr /* Orden */
FIELD tt-hr LIKE ih__chr03 /* HojaRuta */
FIELD tt-tmid LIKE xxtm-addr /* ID Trasportista */
FIELD tt-tmname LIKE ad_name /* Trasportist name */
FIELD tt-vehi LIKE xxhr-pate /* Patente */
FIELD tt-inv LIKE ih_po /* Factura */
FIELD tt-nc LIKE ih_inv_nbr /* NC */
FIELD tt-bill LIKE ih_bill /* Cliente bill */
FIELD tt-cust LIKE ih_cust /* Cliente Cust */
FIELD tt-name LIKE ad_name /* Razon Social */
FIELD tt-sort LIKE cm_sort /* Nombre */
FIELD tt-date LIKE ih_inv_date /* Fch Dev */
FIELD tt-dateok LIKE ih_inv_date /* Fch Autorizacion */
FIELD tt-tipo LIKE ih__chr02 /* Tipo */
FIELD tt-cmtype LIKE cm_type /* Tipo Cliente */
FIELD tt-dtipo AS CHAR /* DescTipo */
FIELD tt-stipo LIKE ih__chr03 /* Subtipo */
FIELD tt-dstipo AS CHAR /* DescSub-Tipo */
FIELD tt-canal LIKE ih_channel /* canal */
FIELD tt-part LIKE idh_part /* Articulo */
FIELD tt-desc AS CHAR /* Descripcion */
FIELD tt-qty LIKE idh_qty_inv /* Cantidad */
FIELD tt-price LIKE idh_price /* Precio */
FIELD tt-pricet AS DEC /* Precio.Total */
FIELD tt-lppr LIKE pt_prod_line /* Linea.Prod */
FIELD tt-um LIKE sod_um /* Unidad Medida */
FIELD tt-qty-ord LIKE idh_qty_inv /* Cnt Ordeneda */
FIELD tt-ok AS CHAR.

FORM
site COLON 20 LABEL "Almacén"
/* site1 COLON 49 LABEL {t001.i} */
hr COLON 20
hr1 COLON 49 LABEL {t001.i}
nbr COLON 20 LABEL "Orden"
nbr1 COLON 49 LABEL {t001.i}
eff COLON 20 LABEL "Fecha Autoriz"
eff1 COLON 49 LABEL {t001.i}
fch COLON 20 LABEL "Fecha Ingreso"
fch1 COLON 49 LABEL {t001.i}
tipo COLON 20 LABEL "Tipo"
tipo1 COLON 49 LABEL {t001.i}
subtipo COLON 20 LABEL "Sub-Tipo"
subtipo1 COLON 49 LABEL {t001.i}
cust COLON 20 LABEL "Cliente"
cust1 COLON 49 LABEL {t001.i}
SKIP(1)
WITH FRAME a SIDE-LABELS WIDTH 80.


ASSIGN
eff = TODAY
eff1 = TODAY
fch = TODAY
fch1 = TODAY.

Mainloop:
REPEAT :

/* IF site1 = hi_char THEN site1 = "". */

IF hr1 = hi_char THEN hr1 = "".
IF nbr1 = hi_char THEN nbr1 = "".
IF tipo1 = hi_char THEN tipo1 = "".
IF subtipo1 = hi_char THEN subtipo1 = "".
IF cust1 = hi_char THEN cust1 = "".
IF eff1 = hi_date THEN eff1 = ?.
IF eff = low_date THEN eff = ?.
IF fch1 = hi_date THEN fch1 = ?.
IF fch = low_date THEN fch = ?.
diferencia = date(fch1) - date(fch).
diferencia2 = date(eff1) - date(eff).

if diferencia > 4 then do:
{mfmsg04.i '"error"' 3}
next-prompt fch1 with frame a.
undo, retry.
end.

if diferencia2 > 4 then do:
{mfmsg04.i '"error"' 3}
next-prompt eff1 with frame a.
undo, retry.
end.

UPDATE
site
hr hr1
nbr nbr1
eff eff1
fch fch1
tipo tipo1
subtipo subtipo1
cust cust1
WITH FRAME a.


IF hr1 = "" THEN hr1 = hi_char.
IF nbr1 = "" THEN nbr1 = hi_char.
IF tipo1 = "" THEN tipo1 = hi_char.
IF subtipo1 = "" THEN subtipo1 = hi_char.
IF cust1 = "" THEN cust1 = hi_char.
IF eff1 = ? THEN eff1 = hi_date.
IF eff = ? THEN eff = low_date.
IF fch1 = ? THEN fch1 = hi_date.
IF fch = ? THEN fch = low_date.

/* Eliminar Tabla Temporal */
FOR EACH tt-mstr: DELETE tt-mstr. END.

/* no Autorizadas no posteadas */

MFG 2009
Progress 2008
 
you should move this:
Code:
if diferencia > 4 then do:
{mfmsg04.i '"error"' 3}
next-prompt fch1 with frame a.
undo, retry.
end.

if diferencia2 > 4 then do:
{mfmsg04.i '"error"' 3}
next-prompt eff1 with frame a.
undo, retry.
end.

right after the update statement, if you want to check/restrict user input to 4 days diff
 
Back
Top