Problema con option group

hola buenas tardes, tengo un programa que captura
pedidos, tengo dos campos entrego y cantidad,
en cantidad guardo el total de materiales y en
entrego los que ya se surtieron. Tengo un grid,
un boton y un option group, quiero que al momento
de presionar una opcion me muestre el el grid
los materiales que tienen el 90% surtido
tengo este codigo pero no me funciona
CASE thisform.optiongroup1.Value=3
**surtido 90% o más del pedido
SCAN FOR no_pedidof=nopedido
PUBLIC porcentaje
porcentaje=(entregof/cantidadf)*100
endscan
SET FILTER TO porcentaje >=90

1 Respuesta

Respuesta
1

Si entrego es el total de lo que ya le dieron y cantidad es lo que se le debe dar seria cantidad----100%

Entrego------- por

Osea que porcentaje=entrego*100/cantidad y para poder filtrarlo deberías guardarlo en algún campo por ese porcentaje solo se guarda en una variable. Me parece que te falta mucho por resolver o la idea no esta clara de lo que quieres

tengo un grid y un option group
con 2 opciones
surtido, pendiente por surtir
lo que quiero es que en el grid me aparezcan los
pedidos que satisfacen mi código esta así
IF thisform.optiongroup1.Value=2
**pendiente por surtir falta entre el 10% en base a cantidad
SCAN FOR no_pedidof=nopedido
public porcentaje
*porcentaje=(entregof/cantidadf)*100
porcentaje=entregof*100/cantidadf
MESSAGEBOX("porcentaje"+TRANSFORM(porcentaje))
ENDSCAN
IF porcentaje<90
SET FILTER TO porcentaje<90
ENDIF
endif
IF thisform.optiongroup1.Value=3
**surtido 90% o más del pedido
SCAN FOR no_pedidof=nopedido AND clavef=clavep
PUBLIC porcentaje
*porcentaje1=(entregof/cantidadf)*100
MESSAGEBOX("porcentaje1"+TRANSFORM(porcentaje))
endscan
IF porcentaje1 >=90
SET FILTER TO porcentaje1 >=90
ENDIF
endif
el problema es que en el grid no me aparece nada

muchas gracias por tu respuesta :)

Claro no te aparece nada porque no se si la variable porcentaje es un campo que debe actualizarse registro por registro por que al hacer un scan lo único que haces es calcular el porcentaje de entrega en una variable pero no la gurdas en ninguna parte(en un campo del registro) para a que luego puedas usar filter. No se si me deje entender tu tabla debe tener el campo porcentaje y debes guardar allí el calculo de porcentaje entregado con REPLA ...

Así mismo corrige la formula en los otros if

hola, gracias por contestar, mi código nuevo es este, porcentaje es un campo de mi base de datos.

SELECT detpedidosfox
IF thisform.optiongroup1.Value=1
SET FILTER TO no_pedidof=nopedido
GO top
ENDIF
IF thisform.optiongroup1.Value=2
**pendiente por surtir falta entre el 10% en base a cantidad
SCAN FOR no_pedidof=nopedido
*porcentaje=(entregof/cantidadf)*100
replace porcentaje WITH (entregof*100)/cantidadf
ENDSCAN
*IF detpedidosfox.porcentaje<90
SET FILTER TO porcentaje<90 AND no_pedidof=nopedido
GO top
*ENDIF
endif
IF thisform.optiongroup1.Value=3
**surtido 90% o más del pedido
SCAN FOR no_pedidof=nopedido
*porcentaje1=(entregof/cantidadf)*100
replace porcentaje WITH (entregof*100)/cantidadf
endscan
*IF detpedidosfox.porcentaje >=90
SET FILTER TO porcentaje>=90 AND no_pedidof=nopedido
GO top
*ENDIF
endif

pero no me los muestra en el grid :( y no se por que. Gracias por tu ayuda :)

IF thisform.optiongroup1.Value=2
**pendiente por surtir falta entre el 10% en base a cantidad
SCAN FOR no_pedidof=nopedido
*porcentaje=(entregof/cantidadf)*100
replace porcentaje WITH (entregof*100)/cantidadf
ENDSCAN
*IF detpedidosfox.porcentaje<90

set filter to && por si acaso se quede filtrado por otra cosa
SET FILTER TO porcentaje<90 AND no_pedidof=nopedido
GO top

brow && verificare primero si en la tabla hay datos antes de cargarlo al grid
*ENDIF
endif

thisform.grid1.recordsource='detpedidosfox'

Thisform. Grid1. Refresh

Avisame como te fue y si no puedes en las noches me puedes ubicar en skype ingesoftsrl

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas