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 |
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. ;) |
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 .... |
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 |
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 |
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 |
:::HØlA::::
Lepe vbmenu_register("postmenu_152138", true); eternamente Junior muchas gracias¡¡¡¡ Si FUNCIONO.. te debo una;) eres excelente en delphi THANKS YOU..... saludos |
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 :confused: |
La franja horaria es GMT +2. Ahora son las 04:32:05. |
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