Pequeña consulta ADORDD

Pequeña consulta ADORDD

Postby JoseLuis » Fri Jun 20, 2008 8:30 am

Hola amigos

Ya me voy enterando y haciendo cosas con ADORDD, ahora estoy un poco atascado en el tema de filtros.

Quiero hacer un filtro muy sencillo, y éste me funciona si lo hago metiendole el valor a filtrar directamente, pero si lo hago con una variable no se como hacerlo, me explico.

Quiero filtrar un campo expedicion que tenga el valor "0014", si hago lo siguiente funciona
Code: Select all  Expand view  RUN
  SET FILTER TO "expedicion ='00014'"


Pero claro, yo quiero dar este valor mediante un get y una variable a que que llamo valor, y he probado así y no me va:
Code: Select all  Expand view  RUN
  SET FILTER TO "expedicion"=comienzo


Tampoco me va asi
Code: Select all  Expand view  RUN
  SET FILTER TO "expedicion =(comienzo)"


Y ya me pierdo en probar.

Saludos

Jose Luis
JoseLuis
 
Posts: 427
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby MOISES » Fri Jun 20, 2008 8:47 am

SET FILTER TO FIELD->EXPEDICION = cVariable

Un saludo
MOISES
 
Posts: 838
Joined: Wed Aug 22, 2007 10:09 am

Postby JoseLuis » Fri Jun 20, 2008 9:17 am

Hola

Ya probé como me dices pero nada, sólo me funciona cuando como te digo, utilizo directamente el valor

Saludos

Jose Luis
JoseLuis
 
Posts: 427
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby RenOmaS » Fri Jun 20, 2008 9:49 am

SET FILTER TO "expedicion == '" + cvariable + "'"
User avatar
RenOmaS
 
Posts: 205
Joined: Fri Oct 07, 2005 5:07 pm

Postby Antonio Linares » Fri Jun 20, 2008 9:49 am

Jose Luis,

Prueba asi:
Code: Select all  Expand view  RUN
SET FILTER TO "expedicion='" + comienzo + "'"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42160
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby JoseLuis » Sun Jun 22, 2008 6:02 pm

Antonio

Ya lo había intentado de esa y varias otras formas, pero los resultados son:

- Si hago
Code: Select all  Expand view  RUN
SET FILTER TO "expedicion = '000410001330'"

Funciona el listbox que viene después perfectamente.

- Pero si hago
Code: Select all  Expand view  RUN
SET FILTER TO "expedicion='" + comienzo + "'"


Me da el siguiente error en el listbox:
    Application
    ===========
    Path and name: C:\fuentes\xharbour\GESPAQ08\gespaqn.Exe (32 bits)
    Size: 1,012,736 bytes
    Time from start: 0 hours 0 mins 24 secs
    Error occurred at: 22/06/08, 19:56:51
    Error description: Error ADODB.Recordset/16389 E_FAIL: MOVEFIRST
    Args:

    Stack Calls
    ===========
    Called from: win32ole.prg => TOLEAUTO:MOVEFIRST(0)
    Called from: => ADO_SKIPRAW(383)
    Called from: => DBSKIP(0)
    Called from: wbrowse.prg => TWBROWSE:PAINT(1048)
    Called from: wbrowse.prg => TWBROWSE:DISPLAY(2880)
    Called from: CONTROL.PRG => TWBROWSE:HANDLEEVENT(0)

El codigo fuente de todo es:
Code: Select all  Expand view  RUN
#include "FiveWin.ch"
#include "adordd.ch"
#include "btnget.ch"

REQUEST ADORDD
Memvar Publicas
function access()
local oDlg,olbx
local Titulo:="Paquetes mecanizados"
local base:="Registro.mdb"
local comienzo:=space(12),final,oini,ofin,oboton,oboton1
local continua:=.F.,i,osay

  DEFINE DIALOG oDlg RESOURCE "DESDEFEHORA" BRUSH Publicas:oBrush1 TRANSPARENT Font Publicas:oWPpal:ofont
  for i = 10 to 11
    REDEFINE SAY osay ID i OF oDlg
  next i
  REDEFINE BTNGET oini VAR comienzo ID 101 OF oDlg
  REDEFINE BTNGET ofin VAR final ID 102 OF oDlg
  REDEFINE BUTTON oboton ID 550 OF oDlg PROMPT "Aceptar" ;
            ACTION (Continua := .T., oDlg:End())
  REDEFINE BUTTON oboton1 ID 551 OF oDlg PROMPT "Cancelar" ;
                                ACTION (oDlg:End()) CANCEL
  ACTIVATE DIALOG oDlg CENTERED

if Continua
  USE (Publicas:rMDB+base) VIA "ADORDD" alias paquetes NEW TABLE "UltimoRegistro"
if paquetes->(Recno())>=1
  //SET FILTER TO "expedicion = '000410001330'"
   SET FILTER TO "expedicion='" + comienzo + "'"
  DEFINE DIALOG oDlg FROM 1, 1 TO 25, 79
  oDlg:cTitle:=titulo
  @ 1, 1 LISTBOX oLbx FIELDS paquetes->UFecha,; 
  paquetes->Expedicion                            ,;
  paquetes->UPeso          ,;
  (paquetes->UVolumen),;
  paquetes->Bulto                                   ;
  HEADERS "Fecha","Codigo","Peso","Volumen","Bulto";
  FIELDSIZES 80,200,80,80,80;
  SIZE 284, 137 OF oDlg
  oLbx:nLineStyle := 1
  oLbx:nClrBackHead := RGB(248,191,36)
  oLbx:bTextColor:= {|nRow,nCol,nStyle| If( nStyle==0 .and. nCol==8,CLR_HRED, ) }
  oLbx:nClrPane:={||iIF((oLbx:cAlias)->(OrdKeyNo())%2==0,nRGB(242,247,252),nRGB(226,226,208))}

  @154,08  BTNBMP LEFT PROMPT " Agregar"   SIZE 50,19 OF oDlg RESOURCE "grabasql" // ACTION (Descarga(aAlias),oDlg:End())
  @154,67  BTNBMP LEFT PROMPT " Modificar" SIZE 50,19 OF oDlg RESOURCE "modifisql" ACTION oDlg:End()
  @154,125 BTNBMP LEFT PROMPT " Borrar"    SIZE 50,19 OF oDlg RESOURCE "borrasql"  //ACTION BorraU(oLbx )
  @154,184 BTNBMP LEFT PROMPT " Buscar"    SIZE 50,19 OF oDlg RESOURCE "buscasql"  //ACTION BuscaU(oLbx,3,"Color")
  @154,242 BTNBMP LEFT PROMPT " Salir"     SIZE 50,19 OF oDlg RESOURCE "salirsql"  ACTION (oDlg:End())

  ACTIVATE DIALOG oDlg CENTERED
else
msgstop("No hay Datos","ATENCION")
endif
set filter to
paquetes->(Dbclosearea())
endif
return nil


Que puede ser?

Saludos

Jose Luis
JoseLuis
 
Posts: 427
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Postby Antonio Linares » Mon Jun 23, 2008 8:30 am

Jose Luis,

Prueba a llamar a la función directamente en vez de usar el comando:

dbSetFilter( <{exp}>, <"exp"> )

Posiblemente el fallo viene del preprocesado. Mira el fichero PPO generado al usar el comando, compilando con /p
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42160
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Mon Jun 23, 2008 8:33 am

Prueba asi tambien:

cCondicion = "expedicion='" + comienzo + "'"

SET FILTER TO cCondicion
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42160
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 41 guests

cron