FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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å~~™ |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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 .... |
#4
|
||||
|
||||
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. |
#5
|
|||
|
|||
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å~~™ |
#6
|
||||
|
||||
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: ... 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. |
#8
|
|||
|
|||
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å~~™ |
|
|
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 |
|