Beruflich Dokumente
Kultur Dokumente
BBO Crystal CLaser supply BBO crystal for laser non-linear application www.claser-sh.com
Yellow Professional Dynamics AX Functional and Technical Consulting www.yellowprofessional.com
Planes Movistar Elige entre Prepago y Planes para Tus Llamadas. Aprovecha Descuentos! www.movistar.com.mx
SelectionFormula
Aquí vemos la madre de todas las propiedades. Con ella montamos los filtros que queremos usar para que nuestro
informe muestra una u otra cosa.
Su uso
o…
Total_Final = Val(Total.Text)
o…
o…
Bueno, esto está claro para este tipo de cosas. Recordemos que lo que va entre corchetes es:
Esta propiedad admite encadenamientos de tipo AND , así como reordenamientos de ficheros con ORDER BY. Su
síntaxis es de tipo SQL aunque no admite todos sus parámetros y tiene ciertas particularidades.
Veamos como se comporta SelectionFormula en un selección sobre un rango de fechas, que es donde difiere de
verdad del SQL tradicional.
Ultima = CDate(Fecha2.Text)
Agno1 = Year(Primera)
Dia2 = Day(Ultima)
Mes2 = Month(Ultima)
Agno2 = Year(Ultima)
& Dia1 & ") to Date(" & Agno2 & "," & Mes2 & "," & Dia2 & ")"
CR1.Destination=1
CR1.Action=1
Como puedes ver es un "prodigio" de sencillez, un ejercicio de estilo propio de los mas refinados creadores de
motores de bases de datos.
Ultima = CDate(Fecha2.Text)
MySQL= "SELECT * FROM Ofertas WHERE OferFechaPropuesta BETWEEN #" & Primera & "#
AND #" & Ultima & "#"
Observad como para que la formula reconozca el formato fecha, se introduce la variable entre
Fecha = Date$
Me he extendido mas en el tema de rango de fechas, porque el otro, a poco que conozcais la sintaxis SQL lo
dominais sin problemas.
La forma más facil de depurar estas formulas, es usar el Debug.Print CR1.SelectionFormula y poner un Stop
inmediatamente después. Asi revisamos la formula antes de su impresión. Con esto veremos si un argumento que
debe ser numérico aparece entre comillas, o si una cadena cerece de ellas.
"{Ofertas.Total} =1275"
si obtenemos este
Antes de desesperaros, y empezar a acordarse de los parientes y afectos de los programadores del Crystal, cosa
que yo he hecho miles de veces, os aconsejo usar este metodo. Tanta comilla puede dar errores de esos que no
vemos ni a la de tres y tenemos delante de los ojos.
WindowControlBox
Cr1. WindowControlBox=True
Nos muestra la caja de control de Maximizar, minimizar y cerrar. Con false no lo hace
WindowState
CR1.WindowState = 0
CR1.WindowState = 1
CR1.WindowState = 2
WindowTitle
Pone un titulo a la ventana de previsualización. Tambien podemos usar variables del tipo que queramos para cargar
esta propiedad
o…
CR1.WindowTitle = TipoListado
Bueno, y con esto ya se pueden hacer , práctimanente, todos los informes que querais.
Dentro de unos días, cuando esté más despejado, prepararé una documento donde explique algunos trucos e
historias específicas para casos poco normales. También quiero dar una idea de trucos para el diseñador y otras
cosillas más, pero ya os digo, dentro de unos dias.
Por lo demás, podeis seguir consultandome en falvarez@interec.com y tened un poco de paciencia porque estoy
"muy cargado".
Gracias a todos