Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2006
janexa janexa is offline
Miembro
 
Registrado: ago 2006
Posts: 28
Poder: 0
janexa Va por buen camino
Question como cambiar un valor true por un caracter

HOLA necesito en el QUICKREPORT cambiar un valor por un caracter en el
QRDBTEXT ME genera true o false dependiendo dela base de datos pero
quiero cambiarlo por * si es true y SI ES false no desplegar...ya lo intente con el evento onPrint pero necesito validar si es truE o false y no se puede
COMO LE HAGO????

HELP ME¡¡¡¡¡¡¡¡plEASE
__________________


~~JÅn€xå~~
Responder Con Cita
  #2  
Antiguo 14-08-2006
Avatar de BuenaOnda
BuenaOnda BuenaOnda is offline
Miembro
 
Registrado: feb 2006
Ubicación: La Serena - Chile
Posts: 347
Poder: 19
BuenaOnda Va por buen camino
Cool espero que te sirva

Hola..

Mira para controlar el valor de unos de los campos retornados por alguna consulta, en el quickreport, debes acceder al evento "AfterOpen" del campo del "Query" (Consulta) retornado, me explico :

Supongamos que tienes esta tabla :


PERSONAS
========
Rut Integer
Nombre VarChar(100)
Ingles Boolean

para este ejemplo vamos a utilizar un componente Query y en su propiedad "Sql" vamos a escribir el siguiente codigo :

Select * From PERSONAS

luego aceptamos...
ahora le hacemos "doble click" al Componente Query y elejimos la opcion "Add Fields CTRL+A" y alli nos permitira agregar los campos solicitados en la consulta realizada en la Propiedad "SQL" del Componente Query.


Ahora vamos a utilizar el evento "AfterOpen" del componente Query...

Supongamos que queremos mostrar una etiqueta en el QuickReport que nos diga "Si habla ingles" si el campo "Ingles" de la Tabla Personas esta en True, bueno para esto vamos a poner una etiqueta llamada "LabelIngles" en el Quick report y en el evento "AfterOpen" del Query vamos a escribir lo siguiente :



procedure TfrmReportesPesticidas.QueryAfterOpen(DataSet: TDataSet);
begin
IF QueryIngles = True THEN
LabelIngles.caption='SI, habla ingles'
ELSE
LabelIngles.caption='NO, habla ingles'
end;


bueno..espero q' te sirva.


chao...mucha suerte.
Responder Con Cita
  #3  
Antiguo 15-08-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 20
luisgutierrezb Va por buen camino
no se que base de datos estes utilizando pero puede ser:
select campo1, campo2, iif(campoboolean, '*',Null) As CampoBooleanStr from ....
o tambien:
select campo1, campo2, case when campoboolean = 1 then '*' else Null end AS CampoBooleanStr from ....
Responder Con Cita
  #4  
Antiguo 15-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
En lugar de hacerlo en la propia consulta, tambien puedes hacerlo en el evento BeforePrint del componente que sea, es decir, si tienes un Qrdbtext, en el evento mencionado puedes cambiar el texto que aparecerá.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 15-08-2006
janexa janexa is offline
Miembro
 
Registrado: ago 2006
Posts: 28
Poder: 0
janexa Va por buen camino
Question Resp QuickReport

THANK YOU a todos los ke me contestaron... BuenaOnda] Hola..

hice lo ke me mandaron pero ke creen si funciona con el afterOpen pero no del todo ya ke si me cambia el valor qrdtext con el evento ONPrint y en quickreport ANTES me apareceCIA:
NOMBRE-ARCHIVAR-INFORMAR-NINGUNO ARRIBA <---
XYZ TRUE FALSE TRUE
ACE FALSE TRUE TRUE

AHORA ME SALE EN EL QUICKREPORT:
NOMBRE-ARCHIVAR-INFORMAR-NINGUNO
XYZ * *
ACE * *

PERO PARA CUANDO SON MAS CAMPOS HACIA ABAJO NO CAMBIA, LOS DEJA IGUAL A LOS DE ARRIBA Y DEBERIA DE HACER ALGO ASI:
NOMBRE-ARCHIVAR-INFORMAR-NINGUNO
XYZ * *
ACE * *

ESTE ES MI QUERY SI FUNCIONA PORKE ANTES SALIA LO DE ARRIBA <---
UTILIZO SQL SERVER
select A.* ,P.per_nombre
from tmp_asignacion_per2 A,personal P
where A.CE_Folio_id2=:ce_folio_id AND A.CE_a
ño_id2=:CE_año_id AND A.djs_id2=:djs_id AND A.rpe_id2=P.rpe_id

Y MIS CODIGOS EN DELPHI
procedure TDMCorrespondencia.QAsignacion_ceAfterOpen(DataSet: TDataSet);
begin
IF QAsignacion_cectrl_mod2.AsBoolean=true THEN
ctrl:=3
ELSE
ctrl:=4;
END;
END;
--------------------
procedure TFReporte.QRDBText13Print(sender: TObject; var Value: String);
begin
// FEntradas.e1.text:=inttostr(ctrl);
if ctrl=3 then
begin
value:='*';
end
else
begin
value:=' ';
end;
end;

Y AHORA COMO LE HAGO??????
HELP ME PLEASE....SE LO AGRADECERE MUCHO
__________________


~~JÅn€xå~~
Responder Con Cita
  #6  
Antiguo 16-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Se puede hacer todo en el BeforePrint (ojo BeforePrint):


Suponiendo que el QRDBText13 está enlazado con la consulta QAsignacion_ce y al campo ctrl_mod2, el código a usar sería:
Código Delphi [-]
procedure TFReporte.QRDBText13BeforePrint(sender: TObject; var Value: String);
begin
IF QAsignacion_cectrl_mod2.AsBoolean THEN
  value:='*'
else
  value:=' ';

end;
... y nada más.

Deberás repetir esto por cada campo que quieras sustituir sus valores, es decir, por cada QRDBText, QRlabel o lo que sea.

Ten en cuenta que si el valor que tiene es un nulo, porque no se ha asignado un valor, siempre saldrá un espacio en lugar del asterisco.


PD: Por favor, encierra el código entre

[ delphi ]
aqui vuestro codigo
[ /delphi ]

(sin espacios dentro de los corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 16-08-2006
janexa janexa is offline
Miembro
 
Registrado: ago 2006
Posts: 28
Poder: 0
janexa Va por buen camino
Question

:::HØlA::::
Lepe vbmenu_register("postmenu_152138", true);
eternamente Junior
muchas gracias¡¡¡¡ Si FUNCIONO.. te debo una
eres excelente en delphi THANKS YOU.....
saludos
__________________


~~JÅn€xå~~
Responder Con Cita
  #8  
Antiguo 17-01-2008
janexa janexa is offline
Miembro
 
Registrado: ago 2006
Posts: 28
Poder: 0
janexa Va por buen camino
Question HourSpan

hola tengo unpekeño problemita al hacer una suma de horas Código Delphi [-] totalon:=totalon+HourSpan(dom_hsc.Time,dom_hec.Time);
totalin:=totalin+HourSpan(dom_hs.Time,dom_he.Time);
totalin:=totalin-totalon;
tothrs.Text:=floattostr(totalin);






ejemplo tengo que sumar 09:00:00 a.m. a 05:30:00pm tiene ke darme 8:30 horas
pero solo me pone 8:50 hrs
__________________


~~JÅn€xå~~
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
En Delphi 5, "El valor de BOF o EOF es True, o el actual registro se eliminó, .... Lore Castillo SQL 1 02-02-2006 23:12:01
Como Cambiar Caracter ¥ por Ñ???? AGAG4 Varios 11 06-10-2005 01:22:43
El valor de BOF o EOF es true o el actual registro se eliminó jatorve Conexión con bases de datos 3 09-02-2005 16:14:45
Error: El valor EOF o BOF es True o el actuañ registro de eliminó lavtaro Conexión con bases de datos 2 30-06-2003 12:39:44


La franja horaria es GMT +2. Ahora son las 02:01:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi