ebolo | |
| 2006-07-03 18:48 - Respuestas: 11 - Tema nº: 2416074
Hola jopeme, es que hay un error que igual ha sido culpa mía, y es que faltan " " en la primera parte del DSUM:
=[Suma De TOTAL POR COD VENTA]-DSuma("[TOTAL POR COD VENTA]";"Consulta Tipo Utilizacion pidiendo fecha";"COD VENTA='A' or COD VENTA='B'")
Ups!! saludos.
| |
|
|
jopeme | |
|
Re: Calcular un campo en informe - 2006-07-05 00:53 - Respuesta 7
Como no consigo que me funcione lo he intentado con lo que me has dicho al principio y obtengo solo valor cero en el campo a calcular.
En la seccion pie modelo tengo el campo "Suma De TOTAL POR COD VENTA" con al suma total(antes totalA) y añado el campo INCENTIVOC con el valor "=SiInm([COD VENTA]="A" O [COD VENTA]="B";[TOTAL POR COD VENTA];0)" tal y como me has indicado(el solo me cambia el iff a SiInm).
Esto es lo que finalmente tengo en lo del visual basic al darle a procedimiento de evento(a mi me aparece option compare):
Option Compare Database
Dim TotalB As Double
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
End Sub
Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
TotalB = TotalB + Me.IncentivoCuantitativo
End Sub
Private Sub PieDelGrupo1_Print(Cancel As Integer, PrintCount As Integer)
Me.TOTAL_B = TotalB
End Sub
| |
|
|
ebolo | |
|
Re: Calcular un campo en informe - 2006-07-05 09:24 - Respuesta 8
Hola jopeme:
[Quote=Jopeme]
En la seccion pie modelo tengo el campo "Suma De TOTAL POR COD VENTA" con al suma total(antes totalA) y añado el campo INCENTIVOC con el valor "=SiInm([COD VENTA]="A" O [COD VENTA]="B";[TOTAL POR COD VENTA];0)" tal y como me has indicado(el solo me cambia el iff a SiInm)
[/Quote]
Yo te puse:
Quote:
... en la sección detalle del informe tienes un campo de texto que se llama CODIGOVENTA, vamos a colocar otro cuadro de texto, que se llame xej.: PARCIALCV, y en el origen de datos de este cuadro de texto pones:
=iif(CODIGOVENTA="a" or CODIGOVENTA="b"; [venta total];0)
Es en la sección DETALLE donde tienes que poner el campo de texto (INCENTIVOC), con el origen de datos condicional, porque es en el evento de la sección detalle donde tienes el sumador.
En tu caso, el origen de datos del cuadro de texto INCENTIVOC debería ser algo así:
=SiInm([COD VENTA]="A" O [COD VENTA]="B";[TOTAL POR COD VENTA];0)
Code:
Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
TotalB = TotalB + Me.INCENTIVOC
End Sub
En la sección del pie, debes colocar un cuadro de texto, independiente (sin ningún origen de datos), que llamarás TOTAL_B. En el evento Print pones:
Code:
Private Sub PieDelGrupo1_Print(Cancel As Integer, PrintCount As Integer)
Me.TOTAL_B = TotalB
End Sub
PD: es lo mismo IIF(...), que SiInm(...).
Saludos.
| |
|
|
jopeme | |
|
Re: Calcular un campo en informe - 2006-07-06 00:12 - Respuesta 9
Sigue saliendo mal. Lo primero es que en la seccion detalle no quiero mostrar el campo INCENTIVOC, aunque lo puedo ocultar y solucionado, pero te muestro el ejemplo de lo que me pone
modelo cod venta total por cod venta
azul 1 1
incentivoc 0
2 2
incentivoc 0
B 5
incentivoc 5
Suma por cod venta 8
total_b 25
Como puedes ver el calculo final(total_b) es incorrecto ya que deberia salir como resultado 3(resultado de restar a 8 los que son a y b en este caso solo hay b que es 5).
| |
|
|
ebolo | |
|
Re: Calcular un campo en informe - 2006-07-06 09:02 - Respuesta 10
Hola de nuevo, como has dicho si no lo quieres ver lo ocultas, pero debe estar ahí para que pueda tener un valor.
Lo que te está haciendo es que te está sumando cada vez el valor del artículo 'b', como seguramente hayas hecho 5 pruebas, por 5 que es su valor, pues te va acumulando, por eso el 25, supongo.
Para soluicionar esto, debes poner el valor de la variable totalb=0, en el evento Report_Open, es decir, vas a las propiedades del Informe, y en el evento al abrir, eliges Procedimiento de evento, y ahí le colocas la línea:
totalb=0
para que cada vez que abras el informe no te acumule el valor.
Ahora, si quieras ver la diferencia pues restas, bien en otro campo de texto ó en el mismo.
Para hacértelo más claro, colocas, en la sección del pie:
- un cuadro de texto, que llamamos ST, y en su origen de datos pones:
=suma[venta total]
- otro cuadro de texto, que llamamos Diferencia, independiente.
- en el evento print, del pie:
Me.Diferencia= Me.ST - Me.Total_B
Bueno a ver si ya sale, si no vuelvo a la carga.
| |
|
|
|