Trabajando con formularios. Crear campo calculado.

Tengo un formulario principal con un subformulario. Este subformulario contiene un campo valor y varios registros. Quisiera para mis análisis poder tener un campo en algún lugar del formulario principal que a partir de que yo haga clic en campos de valor aislados me muestre la suma de esos campos seleccionados. Tal vez tenga que hacer el clic junto con una tecla ¿esto es posible?

3 respuestas

Respuesta
2

Alexis, no dices si quieres que ese valor se guarde en algún lado. Vamos a suponer que no, si fuera sí, bastaría con ponerle un origen del control. Supongamos también que ese cuadro de texto del formulario se llama SumaParcial. En el evento Al hacer clic del cuadro de texto de ese subformulario( o al hacer doble clic, como prefieras) puedes poner

me.parent!sumaparcial=nz(me.parent!sumaparcial) + subtotal

Es decir que a medida que vayas haciendo clic sobre el cuadro de texto Subtotal del subformulario, en ese cuadro de texto del formulario te va apareciendo la suma acumulada.

De todas formas, si quieres, dilo y te mando un ejemplo. Y por cierto, una cosa es que el cursor llegue a un control haciendo uso del tabulador y otra cosa es que se haga clic sobre él.

Respuesta
1

La fórmula más sencilla es añadiendo un campo más al origen de datos y condicionar la suma a que ese campo tenga la marca adecuada.

Suponiendo que ese campo se le llamase 'control' y fuese de tipo booleano, que la suma se utilice en el pie (o cabecera, nunca en la sección detalle).

Para sumar los seleccionados se les multiplica por el campo booleano que devuelve un cero para los noes y un menos uno para los síes (y al total resultante por menos uno)

Cualquier método que permita marcar a voluntad y diferenciar esa marca, permite hacer cálculos parciales.

Sobre el botón... un buen uso seria que devolviese el valor no (falso) a la selección actual (por defecto que ponga a todos a cero, suele ser más efectivo)

Aclaremos:

La respuesta de Julián NO necesita nada más que lo por el expuesto, puede tener un inconveniente, corregir dinámicamente el resultado (un dato que se añadió por error o eliminar un dato de los seleccionados).

Pero cumple con lo solicitado y ese 'inconveniente' tiene una sencilla solución: un Click suma / un DobleClick resta.

La que he propuesto supone añadir un campo de control (algo que abre muchas posibilidades) pesa poco y la respuesta es inmediata, incluso permite más cosas ( por ejemplo: formato condicional y resaltar la selección o estar a disposición para selecciones/usos aun no planificados) y si en algún momento molesta: se le anula y ...

Respuesta
1

Alexis, la idea de Julián es una aproximación, pero también como le indica Enrique debe tener un campo de tipo booleano para poder hacer la suma de los registros cuyo valor sea True. Personalmente utilizaría una función para llamarla en el evento Después de actualizar del campo boleano.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas