<div dir="ltr"><div>El filtrado de registros es bastante limitado, y lo fue siempre desde delphi.<br></div>Creo que lo mejor es hacer el firtro en el where de la consulta y traer solo que que necesitas.<br></div><div class="gmail_extra"><br><div class="gmail_quote">El 22 de febrero de 2017, 17:37, Ismael L. Donis Garcia via Lazarus-es <span dir="ltr"><<a href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">lazarus-es@lists.lazarus-ide.org</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><u></u>







<div bgcolor="#ffffff">
<div><font size="2" face="Arial">Muchas gracias Jesús pero casi estoy seguro que es 
un problema del FPC.</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">El campo haber no es entero ya que es un campo 
donde se guarda el valor de los adeudos, por ese motivo es 
monetario.</font></div>
<div><font size="2" face="Arial">Filtro para ver si una persona ya a pagado algún 
tipo específico de adeudo en el año.</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Analizando me di cuenta "o al menos pienso yo" que 
es un problema del FPC ya que me puse a analizar el error y cambié la consulta y 
me funcionó.</font></div>
<div> </div>
<div><font size="2" face="Arial">Antes tenía la consulta. Campo Haber como Decimal, 
así está por diseño en la BD.</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">select ....., a.haber, ... from creditos a 
....</font> </div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">De esta forma me da error al intentar filtrar el 
SQLQuery. Entonces probé de la siguiente forma:</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">
<div><font size="2" face="Arial">select ....., cast(a.haber as double 
precision) as haber, ... from creditos a ....</font> </div></font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Y de esta forma el filtro me funciona 
correctamente.</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Por ese motivo es que creo que es un problema de 
tipos del FPC que no está definido los tipos de campos DECIMALES de 
firebird</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">No probé lo que me dijiste del filtro en el evento 
OnFilterRecord ya que el filtro es dinámico, ósea cambia según los datos 
devueltos por la consulta.</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Yo solo en la pregunta puse un caso específico de 
filtro, pero de todos modos se podría probar a ver que pasa, pero estoy casi 
seguro que va a fallar por el error:</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">SErrIndexBasedOnInvField = 'Field "%s" has an 
invalid field type (%s) to base index on.';</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">de la unit dbconst</font></div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial"></font> </div>
<div><font size="2" face="Arial">Saludos Cordiales</font></div>
<div><font size="2">========<br>| ISMAEL |<br>========</font></div>
<div>----- Original Message ----- </div>
<blockquote style="PADDING-RIGHT:0px;PADDING-LEFT:5px;MARGIN-LEFT:5px;BORDER-LEFT:#000000 2px solid;MARGIN-RIGHT:0px">
  <div style="BACKGROUND:#e4e4e4;FONT:10pt arial"><b>From:</b> 
  <a title="lazarus-es@lists.lazarus-ide.org" href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">Jesus Reyes A. via 
  Lazarus-es</a> </div>
  <div style="FONT:10pt arial"><b>To:</b> <a title="lazarus-es@lists.lazarus-ide.org" href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">Spanish version of Lazarus 
  List</a> </div>
  <div style="FONT:10pt arial"><b>Cc:</b> <a title="jesusrmx@gmail.com" href="mailto:jesusrmx@gmail.com" target="_blank">Jesus Reyes A.</a> </div>
  <div style="FONT:10pt arial"><b>Sent:</b> Wednesday, February 22, 2017 3:04 
  PM</div>
  <div style="FONT:10pt arial"><b>Subject:</b> Re: [Lazarus-es] Error: Field 
  "Nombre_Campo" has an invalid field type (BCD) to base index on.</div><div><div class="h5">
  <div><br></div>On Wed, 22 Feb 2017 13:49:13 -0600, Ismael L. Donis Garcia via 
  Lazarus-es <<a href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">lazarus-es@lists.lazarus-ide.<wbr>org</a>> 
  wrote:<br><br>
  <blockquote style="PADDING-LEFT:1ex;MARGIN:0px 0px 0.8ex;BORDER-LEFT:#0000ff 2px solid">
    <div><font size="2" face="Arial">Estoy tratando de filtar un SQLQuery incluyendo 
    un campo Decimal de Firebird 2.5 y Lazarus me devuelve el siguiente 
    error:</font></div>
    <div> </div><font size="2" face="Arial"><font size="2">
    <div>Field "Haber" has an invalid field type (BCD) to base index on.</div>
    <div> </div>
    <div>Si quito dicho campo no se produce el error.</div>
    <div> </div>
    <div>Como podré filtrar el SQLQuery con dichos tipos de campos 
    "Decimales"?</div>
    <div>Esto es un error de Lazarus o del FPC?</div>
    <div>Es posible solventarlo de alguna forma?</div>
    <div> </div>
    <div>dm.rssc5.Filter:='((cuenta = ' +  
    dm.rssc1.FieldByName('cuenta')<wbr>.AsString + ') and (subcta = ''' +  
    dm.rssc1.FieldByName('subcta')<wbr>.AsString + ''') and (capitulo = ''' +  
    dm.rssc1.FieldByName('<wbr>capitulo').AsString + ''') and (subcap = ''' +  
    dm.rssc1.FieldByName('subcap')<wbr>.AsString + ''') and (elemento = '''') and 
    (empresa = ''' + stremp + ''') and (haber > 0))'<br></div>
    <div>Desde ya Gracias</div></font></font>
    <div><font size="2">========<br>| ISMAEL |<br>========</font></div></blockquote>
  <div><br></div>
  <div>Seguro es Haber>0 y no Haber.AsInteger ?</div>
  <div><br></div>
  <div>En caso de que este no sea el caso y Haber es una variable entera 
  derivado de Haber.asInteger entonces es probable sea un problema de 
  implementación en sqldb (o sea FPC). </div>
  <div><br></div>
  <div>Aún podrías filtrar el dataset usando el evento OnFilterRecord, cuando 
  haces dataset.Filtered := true, se dispara el evento OnFilterRecord para cada 
  uno de los registros, en este evento solo tienes que regresar accept := 
  true/false; y de esta manera el registro aparecerá o no como parte del 
  dataset. En tu caso quizás se podría implementar de esta manera:</div>
  <div><br></div>
  <div>accept := (elemento = '''') and</div>
  <div>          (empresa = ''' + stremp + ''') 
  and</div>
  <div>          (haber > 0) and</div>
  <div>          
  (cuenta=dm.rssc1.FieldByName('<wbr>cuenta').AsString) and</div>
  <div>          (subcta = ''' +  
  dm.rssc1.FieldByName('subcta')<wbr>.AsString + ''') and</div>
  <div>          (capitulo = ''' +  
  dm.rssc1.FieldByName('<wbr>capitulo').AsString + ''') and</div>
  <div>          (subcap = ''' +  
  dm.rssc1.FieldByName('subcap')<wbr>.AsString + ''');</div>
  <div><br></div>
  <div>Jesus Reyes A.</div>
  <div> </div>
  </div></div><p>
  </p><hr>

  <p></p>______________________________<wbr>_________________<br>Lazarus-es mailing 
  list<br><a href="mailto:Lazarus-es@lists.lazarus-ide.org" target="_blank">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br><a href="http://lists.lazarus-ide.org/listinfo/lazarus-es" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br><p></p></blockquote></div>
<br>______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus-ide.org">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br>
<a href="http://lists.lazarus-ide.org/listinfo/lazarus-es" rel="noreferrer" target="_blank">http://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">El que pregunta aprende, y el que contesta aprende a responder.<br><br>No a la obsolecencia programada: <a href="http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml" target="_blank">http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml</a><br><br>Linux User #495070<br><a href="http://domonetic.com/blog" target="_blank">http://domonetic.com/blog</a></div>
</div>