Page 1 of 1

FastReport Empezando

Posted: Thu Oct 17, 2013 2:24 pm
by VitalJavier
Hola, buen día a todos.

Alguien me podría dar un ejemplo de FR pero con "DbSetfilter"

CallHbFunc('DbSetFilter', [par1,par2);

En par1 y par2 ya le puse de todo y no me hace el filtrado
Agradezco su ayuda.

Re: FastReport Empezando

Posted: Thu Oct 17, 2013 3:09 pm
by xmanuel
El primer parámetro es un codeblock y el segundo un string ambos con la condición de filtro:
Ej.
par1 := {|| MYALIAS->NUMERIC > 2 .AND. MYALIAS->NUMERIC < 8 }
par2 := "MYALIAS->NUMERIC > 2 .AND. MYALIAS->NUMERIC < 8"

CallHbFunc( 'DbSetFilter', par1, par2 );


Espero que te valga :D

Re: FastReport Empezando

Posted: Thu Oct 17, 2013 4:21 pm
by VitalJavier
Manuel, buen dia.
Le estoy haciendo asi :

Code: Select all

procedure Button1OnClick(Sender: TfrxComponent);
var
 cCad1,cCad2: String;
begin
  cCad1 := '{||"COLA"$ARTICULOS->NOMBRE}';    <=== Este es el codeblock
  cCad2 := '"COLA"$ARTICULOS->NOMBRE';         
  CallHbFunc('DbSelectArea', ['ARTICULOS']);
  CallHbFunc('DbSetFilter', [cCad1,cCad2]);          
  IF RadioButton1.checked then CallHbFunc('OrdSetFocus', [2]);       
  IF RadioButton2.checked then CallHbFunc('OrdSetFocus', [1]);                   
end;

 
Asi no me funciona

Re: FastReport Empezando

Posted: Thu Oct 17, 2013 7:01 pm
by VitalJavier
hice _ y sigue sin funcionar

Code: Select all

procedure Button1OnClick(Sender: TfrxComponent);
var
 cCad3, cCad2: String;
 cCad1: Integer;                                         
begin
  cCad3 := '{||"'+Edit1.text+'"$ARTICULOS->NOMBRE}';
  cCad2 := '"'+Edit1.text+'"$ARTICULOS->NOMBRE';      
  cCad1 := CreateCodeBlock(cCad3);
  CallHbFunc('DbSelectArea', ['ARTICULOS']);
  IF RadioButton1.checked then CallHbFunc('OrdSetFocus', ['NOMBRE']);       
  IF RadioButton2.checked then CallHbFunc('OrdSetFocus', ['ARTICULO']);      
  CallHbFunc('DbSetFilter', [cCad1,cCad2]);          
end;
 

Re: FastReport Empezando

Posted: Fri Oct 18, 2013 5:16 pm
by nnicanor
Tienes varias opciones
1) Envia la informacion filtrada antes a fastreport.
2) Has una relacion master detail

Slds

Re: FastReport Empezando

Posted: Fri Oct 18, 2013 9:51 pm
by xmanuel
En teoría si lo está haciendo así estás enviando una cadena:

cCad1 := '{||"COLA"$ARTICULOS->NOMBRE}'; <=== Este es el codeblock

Prueba sin las comillas simples:

cCad1 := {||"COLA"$ARTICULOS->NOMBRE}; <=== Este es el codeblock

Re: FastReport Empezando

Posted: Fri Oct 18, 2013 10:16 pm
by xmanuel
Perdón, perdón ahora me doy cuentas que es código Pascal o el que usa FastReport...
La verdad es que ya se me escapa pues no he usado FastReport nunca pero bueno prueba a compilar el codeblock con una macro:

cCad1 := '&( [{||"COLA"$ARTICULOS->NOMBRE}])';