propiedad rowfilter

25/01/2007 - 21:55 por Chevy | Informe spam
Hola grupo...

tengo un dataview asociado a un datatable que contiene un campo tipo fecha.
Quiero establecer la propiedad rowfilter de modo que me filtre los registros
de un año determinado.

dtaviewX.rowfilter = " year(campofechaX) = 2006"

al asignar este valor, el sistema arroja un mensaje de error diciendo que la
función year() no está definida.

La pregunta es cómo hago este filtro y de ser posible, en dónde encuentro
ayuda en cuanto a las funciones que se pueden usar para expresiones de filtro.

mil gracias.

Eusebio

Preguntas similare

Leer las respuestas

#1 SoftJaén
26/01/2007 - 07:58 | Informe spam
"Chevy"

tengo un dataview asociado a un datatable que contiene un campo tipo
fecha.
Quiero establecer la propiedad rowfilter de modo que me filtre los
registros
de un año determinado.

dtaviewX.rowfilter = " year(campofechaX) = 2006"

al asignar este valor, el sistema arroja un mensaje de error diciendo que
la
función year() no está definida.



Hola:

La función «Year» no se encuentra soportada para utilizarla en una expresión
de criterio, ya que las únicas permitidas son las siguientes: Convert, Len,
IsNull, IIf y Substring.

Una vez que conozcas el valor del año, filtrarías los registros utilizando
el siguiente criterio:

Dim year As Int32 = 2006

dtaviewX.RowFilter = "CampoFechaX=" & year

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#2 Chevy
26/01/2007 - 15:20 | Informe spam
Greacias Enrique,

hice la prueba y el sistema arroja el siguiente mensaje:
"No se puede realizar la operación '=' en System.DateTime y System.Int32"




Eusebio


"SoftJaén" wrote:

"Chevy"
>
> tengo un dataview asociado a un datatable que contiene un campo tipo
> fecha.
> Quiero establecer la propiedad rowfilter de modo que me filtre los
> registros
> de un año determinado.
>
> dtaviewX.rowfilter = " year(campofechaX) = 2006"
>
> al asignar este valor, el sistema arroja un mensaje de error diciendo que
> la
> función year() no está definida.

Hola:

La función «Year» no se encuentra soportada para utilizarla en una expresión
de criterio, ya que las únicas permitidas son las siguientes: Convert, Len,
IsNull, IIf y Substring.

Una vez que conozcas el valor del año, filtrarías los registros utilizando
el siguiente criterio:

Dim year As Int32 = 2006

dtaviewX.RowFilter = "CampoFechaX=" & year

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.



Respuesta Responder a este mensaje
#3 Federico A. Colli
26/01/2007 - 20:25 | Informe spam
Hola.
Me parece que se debe utilizar el mismo formato que para SQLServer
(creeeeo), lo que seria:

'variable String dado que se debe concatenar al filtro
Dim year As String= "2006"

'El valor de fecha entre comillas simples
dtaviewX.RowFilter = "CampoFechaX='" & year "'"

o estático a ver si se percibe mejor:

dtaviewX.RowFilter = "CampoFechaX = '2006' "


Saludos

On 26 ene, 11:20, Chevy wrote:
Greacias Enrique,

hice la prueba y el sistema arroja el siguiente mensaje:
"No se puede realizar la operación '=' en System.DateTime y System.Int32"

Eusebio

"SoftJaén" wrote:
> "Chevy"

> > tengo un dataview asociado a un datatable que contiene un campo tipo
> > fecha.
> > Quiero establecer la propiedad rowfilter de modo que me filtre los
> > registros
> > de un año determinado.

> > dtaviewX.rowfilter = " year(campofechaX) = 2006"

> > al asignar este valor, el sistema arroja un mensaje de error diciendo que
> > la
> > función year() no está definida.

> Hola:

> La función «Year» no se encuentra soportada para utilizarla en una expresión
> de criterio, ya que las únicas permitidas son las siguientes: Convert, Len,
> IsNull, IIf y Substring.

> Una vez que conozcas el valor del año, filtrarías los registros utilizando
> el siguiente criterio:

> Dim year As Int32 = 2006

> dtaviewX.RowFilter = "CampoFechaX=" & year

> Un saludo

> Enrique Martínez
> [MS MVP - VB]

> Nota informativa: La información contenida en este mensaje, así como el
> código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
> garantías de ninguna clase, y no otorga derecho alguno. Usted asume
> cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
> sugerido en el presente mensaje.
Respuesta Responder a este mensaje
#4 Chevy
26/01/2007 - 20:43 | Informe spam
gracias,

lo que finalmente hice y que funcionó fué usar la función CONVERT para
convertir el campo fecha a string y luego con SUBSTRING obtener el año:

dtaviewX.RowFilter = " substring(convert(CampoFechaX,'System.String'),7,4) =
" & Quoted(year.ToString.Trim)

Nota: Quoted solo adiciona comillas simples al inicio y final del argumento.

Eusebio


"Federico A. Colli" wrote:

Hola.
Me parece que se debe utilizar el mismo formato que para SQLServer
(creeeeo), lo que seria:

'variable String dado que se debe concatenar al filtro
Dim year As String= "2006"

'El valor de fecha entre comillas simples
dtaviewX.RowFilter = "CampoFechaX='" & year "'"

o estático a ver si se percibe mejor:

dtaviewX.RowFilter = "CampoFechaX = '2006' "


Saludos

On 26 ene, 11:20, Chevy wrote:
> Greacias Enrique,
>
> hice la prueba y el sistema arroja el siguiente mensaje:
> "No se puede realizar la operación '=' en System.DateTime y System.Int32"
>
> Eusebio
>
> "SoftJaén" wrote:
> > "Chevy"
>
> > > tengo un dataview asociado a un datatable que contiene un campo tipo
> > > fecha.
> > > Quiero establecer la propiedad rowfilter de modo que me filtre los
> > > registros
> > > de un año determinado.
>
> > > dtaviewX.rowfilter = " year(campofechaX) = 2006"
>
> > > al asignar este valor, el sistema arroja un mensaje de error diciendo que
> > > la
> > > función year() no está definida.
>
> > Hola:
>
> > La función «Year» no se encuentra soportada para utilizarla en una expresión
> > de criterio, ya que las únicas permitidas son las siguientes: Convert, Len,
> > IsNull, IIf y Substring.
>
> > Una vez que conozcas el valor del año, filtrarías los registros utilizando
> > el siguiente criterio:
>
> > Dim year As Int32 = 2006
>
> > dtaviewX.RowFilter = "CampoFechaX=" & year
>
> > Un saludo
>
> > Enrique Martínez
> > [MS MVP - VB]
>
> > Nota informativa: La información contenida en este mensaje, así como el
> > código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
> > garantías de ninguna clase, y no otorga derecho alguno. Usted asume
> > cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
> > sugerido en el presente mensaje.


Respuesta Responder a este mensaje
#5 SoftJaén
27/01/2007 - 07:56 | Informe spam
"Chevy" escribió:

hice la prueba y el sistema arroja el siguiente mensaje:
"No se puede realizar la operación '=' en System.DateTime y System.Int32"



Si obtienes ese mensaje de excepción, me imagino que será porque no has
construido bien la cadena de criterio, al haber problemas de conversión
entre los tipos de datos DateTime e Int32 (Integer). Pero como no has
indicado la cadena que has intentando ejecutar, no lo puedo confirmar al
cien por cien.

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida