Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2012
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Poder: 17
gustavosv Va por buen camino
string como expresión

Hola, estoy creando una clase para mostrar de manera estándar en una grilla información de cualquier tabla, pero me encuentro con el siguiente problema: el título (string) debe ser el resultado de cualquier expresión de la BD, p.ej. FieldNombre + FieldApellido o FieldPais + FieldRegion + FieldCiudad, o …
El asunto es que pretendo enviar la expresión como una propiedad tipo string, Expresion := ' FieldNombre + FieldApellido' y luego (no se cómo) asociarla al título así: Titulo := Expresion, esperando que en el título me quede Titulo = 'Martino Carrasquin'.
Cómo puedo convertir el string en una expresión que luego se evalúe y de el resultado que espero …? Alguien puede ayudarme … Gracias
Responder Con Cita
  #2  
Antiguo 13-02-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
El asunto es que pretendo enviar la expresión como una propiedad tipo string, Expresion := ' FieldNombre + FieldApellido' y luego (no se cómo) asociarla al título así: Titulo := Expresion, esperando que en el título me quede Titulo = 'Martino Carrasquin'.
Hola gustavosv.

Realmente no sé si entendí lo que deseas hacer, pero este código hace estrictamente lo que solicitas arriba. Es decir, brindando los nombres de campos devuelve una cadena con sus contenidos.
Código Delphi [-]
type
  TForm1 = class(TForm)
    ...
    procedure Button1Click(Sender: TObject);
  private
    FExpresion: string;
    function GetExpresion: string;
    procedure SetExpresion(const Value: string);
  public
    property Expresion: string read GetExpresion write SetExpresion;
  end;

...

implementation

function TForm1.GetExpresion: string;
var
  TS: TStrings;
  i,j: Integer;
begin
  TS:= TStringList.Create;
  try
    TS.Delimiter:= '+';
    TS.DelimitedText:= FExpresion;
    for i:= 0 to TS.Count-1 do
      for j:= 0 to DataSet.FieldCount-1 do
        if DataSet.Fields[j].FieldName = TS[i] then
          Result:= Result +' '+ DataSet.Fields[j].AsString;
  finally
   TS.Free;
  end;
end;

procedure TForm1.SetExpresion(const Value: string);
begin
  if (FExpresion <> Value) and (Value > '') then
    FExpresion:= UpperCase(Value);
end;
...

Llamada de ejemplo:
Código Delphi [-]
begin
  Caption:= '';
  Expresion:= 'Nombre + Apellido+Domicilio+ Telefono +ID';
  Caption:= Expresion;
end;
Tendrías que adecuar el código a tu clase y de ser necesario alguna otra evaluación en el procedimiento SetExpresion.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 13-02-2012 a las 07:44:19. Razón: ortografía.
Responder Con Cita
  #3  
Antiguo 14-02-2012
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Poder: 17
gustavosv Va por buen camino
Hola ecfisa, si tienes toda la razón, funciona perfectamente. Gracias !
Responder Con Cita
  #4  
Antiguo 14-02-2012
gustavosv gustavosv is offline
Miembro
 
Registrado: mar 2008
Posts: 51
Poder: 17
gustavosv Va por buen camino
Hola, también podríamos cambiar el código:
Código Delphi [-]
      for j:= 0 to DataSet.FieldCount-1 do
        if DataSet.Fields[j].FieldName = TS[i] then
          Result:= Result +' '+ DataSet.Fields[j].AsString;
por:
Código Delphi [-]
Result:= Result +' '+ DataSet.FieldsByName(TS[i])

Saludos.
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
Ayuda con error! expresion demasiado compleja en la expresion de consulta escorpionrojo43 SQL 8 16-07-2011 22:03:16
la expresión String s = new String("hola"); David JAVA 4 22-02-2008 19:33:20
Expresion Regular D-MO Varios 3 30-06-2007 18:51:59
Expresión FormatNumeric davidgaldo Impresión 3 12-05-2005 18:00:25
expresion matematicas Irina Impresión 4 21-05-2003 00:49:51


La franja horaria es GMT +2. Ahora son las 20:10:14.


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