Tengo una pregunta que seguramente ustedes ya saben como se hace, y pido su ayuda para resolver mi problema
La idea es que tengo formulario en donde presento una cabecera de facturas y su detalle en un control visor de datos
aquí yo puedo ir dando de alta registros en el detalle, cada registro me genera un importe, el cual se va descontando
de un límite de crédito del cliente.
La idea es que cuando llegue a ese limite, no se permita seguir creando nuevos registros, pero si se puedan seleccionar
los ya existentes en el visor, para poder eliminarlos o bien modificar cantidades. (obviamente cuidando que siempre sea
a la baja)
Ahora lo que hago es: que cuando se llega al limite, bloqueo el control VISOR DE DATOS, pero esto no me permite hacer
nada mas en los registros.
no se como hacer para que cuando el usuario de Doble click al control de Visor de datos, donde esta la rejilla
no genere una nueva ficha de detalle o bien que cuando de botón derecho de mouse no pueda dar de alta una ficha
pero que esto se pueda controlar cuando la condición de limite de crédito superado se cumpla
Tienes que usar los eventos de la rejilla.
Ahora de memoria no recuero el nombre, pero hay un evento previo al aceptar el registro. Ahí tienes que controlar el crédito.
No puedes evitar que entre e intente el alta pero si no hacerla y avisar al usuario de lo ocurrido.
Yo creo que lo que wikan quiere decirte es que en el propio formulario de alta o de modificación controles que no se pueda dar ese alta o esa modificación si se ha superado el crédito. Por ejemplo, condiciona el botón aceptar del formulario a que no se haya superado el crédito.
La idea es que cuando llegue a ese limite, no se permita seguir creando nuevos registros
En este caso, tienes que comprobar la condición en el evento PRE_INI del formulario de Edición del Detalle.
- Velneo induce automáticamente el ID de la Factura a la Línea de detalle
- Por lo tanto, en el PRE_INI ya podemos consultar desde la Línea los detalles de la Factura
- Si en el PRE_INI devolvemos 0 o NO el formulario no se ejecuta
If ( (#ID = 0) & ((#FACTURA.IMPORTE + 1) > #FACTURA.CLIENTE.CREDITO) )
-- Rem ( Superado el Crédito del Cliente )
-- Set retorno proceso = NO
-- Finalizar proceso
Esto para nuevas altas. Para editar líneas de detalle existentes tendrás que crear un Manejador de evento asociado al evento Aceptar del formulario y comprobar que no se supera el Crédito del Cliente.