Página 2 de 2

Re: Mensaje de espera en ventana reporte

Publicado: Mié Oct 16, 2019 12:15 pm
por roman0994
Mauricio escribió:
Mié Oct 16, 2019 7:13 am
Pero dónde estás abriendo esa ventana?
Dentro del ACCEPT?
Así es, dentro del Accepted del PauseButton. Antes de la rutina de creación de la tabla temporal.

Re: Mensaje de espera en ventana reporte

Publicado: Jue Oct 17, 2019 9:23 am
por Mauricio
Podés postear el código? O subir el clw generado?

Re: Mensaje de espera en ventana reporte

Publicado: Jue Oct 17, 2019 10:18 pm
por roman0994
Mauricio escribió:
Jue Oct 17, 2019 9:23 am
Podés postear el código? O subir el clw generado?
Mauricio, este es el código de la creación de la tabla temporal a mostrar en el reporte y la llamada a la ventana, dentro del Accepted:

Open(Proceso)
MESSAGE('Hola')
Loc:Contador = 0
NRO:NUMERO = 99999999
SET(NRO:K_AUX_NROS,NRO:K_AUX_NROS)
LOCK(AUX_NROS)
PREVIOUS(AUX_NROS)
IF ~ERROR() THEN Loc:numero= NRO:NUMERO + 1
ELSE Loc:numero = 1.
NRO:NUMERO = Loc:numero
ADD(AUX_NROS)
UNLOCK(AUX_NROS)

!ASI:NUMERO = Loc:NUMERO
Loc:FechaInicio = DATE(Loc:MES,01,Loc:ANIO)
Loc:FechaFinal = DATE(Loc:MES+1,01,Loc:ANIO) - 1
!GET(V_EMPRES,1)
!IF ERROR() THEN CLEAR(EMP:RECORD).

AIV:TERMINAL = Loc:numero

CLEAR(RPR:RECORD,-1)
RPR:ANIO = Loc:ANIO
RPR:MES = Loc:MES

SET(RPR:K_IVA,RPR:K_IVA)
LOOP UNTIL EOF(V_REL_PR)
NEXT(V_REL_PR)
IF RPR:ANIO <> Loc:ANIO THEN BREAK.
IF RPR:MES <> Loc:MES THEN BREAK.
PRO:NRO_PRO = RPR:NRO_PRO
GET(V_PROVEE,PRO:K_PRO)
IF ERROR() THEN CLEAR(PRO:RECORD).
IF RPR:TIPO_COM = 'F' or RPR:TIPO_COM = 'LC' THEN !Facturas proveedores
Loc:CONTADOR += 1 ! o liquidaciones de compra
Loc:IMP_NETO = 0
Loc:IMPORTE_IVA = 0
CLEAR(F_P:RECORD)
F_P:NRO_PRO = RPR:NRO_PRO
F_P:MODELO = RPR:MODELO
F_P:SUCURSAL = RPR:SUCURSAL
F_P:NRO_FAC = RPR:NRO_COM
SET(F_P:K_FAC_PROV,F_P:K_FAC_PROV)
LOOP UNTIL EOF(V_FAC_PR)
NEXT(V_FAC_PR)
IF F_P:NRO_PRO <> RPR:NRO_PRO THEN BREAK.
IF F_P:MODELO <> RPR:MODELO THEN BREAK.
IF F_P:SUCURSAL <> RPR:SUCURSAL THEN BREAK.
IF F_P:NRO_FAC <> RPR:NRO_COM THEN BREAK.
Loc:SUMA_IVA = 0
LOc:SUMA_NETO = 0
AIV:ALICUOTA = F_P:P_IVA
AIV:TIPO_COMPRO = RPR:TIPO_COM
AIV:SIT_IVA = PRO:SIT_IVA
GET(AUX_IVA,AIV:K_AUX_IVA)
IF ERROR() THEN CLEAR(AIV:RECORD)
AIV:TERMINAL = Loc:NUMERO
AIV:ALICUOTA = F_P:P_IVA
AIV:TIPO_COMPRO = RPR:TIPO_COM
AIV:SIT_IVA = PRO:SIT_IVA
Loc:P_U = F_P:PRECIO - (F_P:PRECIO * F_P:P_DESCUENTO/100)
AIV:IMP_GRAVADO = Loc:P_U * F_P:CANT_MER
AIV:IMP_IVA = (Loc:P_U * F_P:CANT_MER * F_P:P_IVA /100)
Loc:SUMA_IVA += AIV:IMP_IVA
Loc:SUMA_NETO += AIV:IMP_GRAVADO
Loc:IMP_NETO += (Loc:P_U * F_P:CANT_MER)
Loc:IMPORTE_IVA += (Loc:P_U * F_P:CANT_MER * F_P:P_IVA / 100)
IF AIV:IMP_GRAVADO + AIV:IMP_IVA > 0 THEN ADD(AUX_IVA).
ELSE
Loc:P_U = F_P:PRECIO - (F_P:PRECIO * F_P:P_DESCUENTO/100)
AIV:IMP_GRAVADO += (Loc:P_U * F_P:CANT_MER)
AIV:IMP_IVA += (Loc:P_U * F_P:CANT_MER*F_P:P_IVA/100)
Loc:SUMA_IVA += (Loc:P_U * F_P:CANT_MER)
Loc:SUMA_NETO += (Loc:P_U * F_P:CANT_MER*F_P:P_IVA/100)
PUT(AUX_IVA)
Loc:IMP_NETO += (Loc:P_U * F_P:CANT_MER)
Loc:IMPORTE_IVA += (Loc:P_U * F_P:CANT_MER * F_P:P_IVA / 100)
end ! if
end ! Loop
ELSIF RPR:TIPO_COM = 'D' OR RPR:TIPO_COM = 'ND' THEN
Loc:CONTADOR += 1
Loc:IMP_NETO = 0
Loc:IMPORTE_IVA = 0
CLEAR(DEB:RECORD)
DEB:NRO_PRO = RPR:NRO_PRO
DEB:MODELO = RPR:MODELO
DEB:SUCURSAL = RPR:SUCURSAL
DEB:NRO_DEB = RPR:NRO_COM
SET(DEB:K_DEV_MER,DEB:K_DEV_MER)
LOOP UNTIL EOF(V_DEB_PR)
NEXT(V_DEB_PR)
IF DEB:NRO_PRO <> RPR:NRO_PRO THEN BREAK.
IF DEB:MODELO <> RPR:MODELO THEN BREAK.
IF DEB:SUCURSAL <> RPR:SUCURSAL THEN BREAK.
IF DEB:NRO_DEB <> RPR:NRO_COM THEN BREAK.
Loc:SUMA_IVA = 0
Loc:SUMA_NETO = 0
AIV:ALICUOTA = DEB:P_IVA
AIV:TIPO_COMPRO = 'ND'
AIV:SIT_IVA = PRO:SIT_IVA
GET(AUX_IVA,AIV:K_AUX_IVA)
IF ERROR() THEN CLEAR(AIV:RECORD)
AIV:TERMINAL = Loc:NUMERO
AIV:ALICUOTA = DEB:P_IVA
AIV:TIPO_COMPRO = 'ND'
AIV:SIT_IVA = PRO:SIT_IVA
AIV:IMP_GRAVADO = DEB:PRECIO * DEB:CANT_MER
AIV:IMP_IVA = (DEB:PRECIO * DEB:CANT_MER * DEB:P_IVA /100)
Loc:SUMA_IVA += AIV:IMP_IVA
Loc:SUMA_NETO += AIV:IMP_GRAVADO
Loc:IMP_NETO += (DEB:PRECIO * DEB:CANT_MER)
Loc:IMPORTE_IVA += (DEB:PRECIO * DEB:CANT_MER * DEB:P_IVA / 100)
IF AIV:IMP_GRAVADO + AIV:IMP_IVA > 0 THEN add(aux_iva).
ELSE
AIV:IMP_GRAVADO += (DEB:PRECIO * DEB:CANT_MER)
AIV:IMP_IVA += (DEB:PRECIO*DEB:CANT_MER*DEB:P_IVA/100)
Loc:SUMA_IVA += (DEB:PRECIO * DEB:CANT_MER)
Loc:SUMA_NETO += (DEB:PRECIO*DEB:CANT_MER*DEB:P_IVA/100)
Loc:IMP_NETO += (DEB:PRECIO * DEB:CANT_MER)
Loc:IMPORTE_IVA += (DEB:PRECIO * DEB:CANT_MER * DEB:P_IVA / 100)
PUT(AUX_IVA)
end ! If
end ! Loop
ELSIF RPR:TIPO_COM = 'H' THEN
Loc:CONTADOR += 1
Loc:IMP_NETO = 0
Loc:IMPORTE_IVA = 0
CLEAR(CRE:RECORD)
CRE:NRO_PRO = RPR:NRO_PRO
CRE:MODELO = RPR:MODELO
CRE:SUCURSAL = RPR:SUCURSAL
CRE:NRO_CRE = RPR:NRO_COM
CRE:NRO_FAC = 0
CRE:NRO_MER = 0
SET(CRE:K_DEV_MER,CRE:K_DEV_MER)
LOOP UNTIL EOF(V_CRE_PR)
NEXT(V_CRE_PR)
IF CRE:NRO_PRO <> RPR:NRO_PRO THEN BREAK.
IF CRE:MODELO <> RPR:MODELO THEN BREAK.
IF CRE:SUCURSAL <> RPR:SUCURSAL THEN BREAK.
IF CRE:NRO_CRE <> RPR:NRO_COM THEN BREAK.
Loc:SUMA_IVA = 0
Loc:SUMA_NETO = 0
AIV:ALICUOTA = CRE:P_IVA
AIV:TIPO_COMPRO = 'NC'
AIV:SIT_IVA = PRO:SIT_IVA
GET(AUX_IVA,AIV:K_AUX_IVA)
IF ERROR() THEN CLEAR(AIV:RECORD)
AIV:TERMINAL = Loc:NUMERO
AIV:ALICUOTA = CRE:P_IVA
AIV:TIPO_COMPRO = 'NC'
AIV:SIT_IVA = PRO:SIT_IVA
AIV:IMP_GRAVADO = CRE:PRECIO * CRE:CANT_MER * (-1)
AIV:IMP_IVA = (CRE:PRECIO * CRE:CANT_MER * CRE:P_IVA /100 * (-1))
Loc:SUMA_IVA += AIV:IMP_IVA
Loc:SUMA_NETO += AIV:IMP_GRAVADO
Loc:IMP_NETO += (CRE:PRECIO * CRE:CANT_MER *(-1))
Loc:IMPORTE_IVA += (CRE:PRECIO * CRE:CANT_MER * CRE:P_IVA / 100 * (-1))
IF ABS(AIV:IMP_GRAVADO + AIV:IMP_IVA) > 0 THEN add(aux_iva).
ELSE
AIV:IMP_GRAVADO += (CRE:PRECIO * CRE:CANT_MER * (-1))
AIV:IMP_IVA += (CRE:PRECIO*CRE:CANT_MER*CRE:P_IVA/100 *(-1))
Loc:SUMA_IVA += (CRE:PRECIO * CRE:CANT_MER * (-1))
Loc:SUMA_NETO += (CRE:PRECIO*CRE:CANT_MER*CRE:P_IVA/100 * (-1))
Loc:IMP_NETO += (CRE:PRECIO * CRE:CANT_MER * (-1))
Loc:IMPORTE_IVA += (CRE:PRECIO * CRE:CANT_MER * CRE:P_IVA / 100 * (-1))
PUT(AUX_IVA)
end ! if
end ! Loop
end ! if
end ! Loop
Close(Proceso)



Y acá está la declaración de la ventana dentro de Local Data:

Proceso WINDOW('Cargando reporte'),AT(,,193,146),FONT('MS Sans Serif',8,,FONT:regular,CHARSET:DEFAULT),DOUBLE, |
CENTER,MDI,GRAY,IMM,SYSTEM
END

Re: Mensaje de espera en ventana reporte

Publicado: Sab Oct 19, 2019 10:38 am
por Mauricio
Ok, voy a hacer un pequeño ejemplo y te lo voy a pasar a ver si logro hacer lo mismo.

Re: Mensaje de espera en ventana reporte

Publicado: Lun Oct 21, 2019 2:28 am
por roman0994
Mauricio escribió:
Sab Oct 19, 2019 10:38 am
Ok, voy a hacer un pequeño ejemplo y te lo voy a pasar a ver si logro hacer lo mismo.
Muchisimas gracias Mauricio, sería de gran ayuda.