Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Formato de salida en TForm (https://www.clubdelphi.com/foros/showthread.php?t=55229)

aanil 10-04-2008 21:22:52

Formato de salida en TForm
 
Buenas a todos.

Para que tomen la idea de los que quiero saber le explico:

Tengo un Form, en el mismo tengo tres TDBText ( DBText1, DBText2, DBText3), todos están conectados a su correspondientes:

DBText1, para Nombres
DBText2, para Apellido1
DBText3, para Apellido2

DBText1 DBText2 DBText3

En algunos casos nombres y apellidos se juntan o se separan mucho.

Que se hace para que quede como ANTONIO AÑIL HERNANDEZ y no como
ANTONIOANILNDEZ oANTONIO AÑIL HERNANDEZ.

Gracias

keyboy 10-04-2008 21:37:50

Aunque podrías jugar un poco con DBText.Canvas.TextWidth(DBText.Caption) para ajustar el ancho de los controles sobre la marcha, yo lo que haría es usar un campo calculado que concatene los apellidos y nombres y asociarlo a un único DBText. El campo calculado lo puedes crear en el cliente o bien, si usas SQL, desde la propia consulta.

Bye

maeyanes 10-04-2008 21:39:04

Hola...

La verdad es que no entendí lo que quieres lograr...

Podrías explicarte mejor?


Saludos...

BlueSteel 10-04-2008 21:44:36

Hola aanil

lo que te dice keyboy es que puedes hacer algo como esto

Opcion 1. en la sentencia SQL concatenar los campos Nombre+' '+Apellido1+' '+Apellido2

para esto no recuerdo muy bien la sentencia y puede que varie si trabajas en SQL Server - Interbase - Firebird..

Opcion 2. realizar un proceso por codigo y mostrar el resultado en un TEdit.. y no en un DBTexto..

Ejemplo

Código Delphi [-]
 
TEdit1.Text := Concat( Tabla['Nombre],' ',Tabla['Apellido1'],' ',Tabla['Apellido2']);

Trata de entregar un poco más de información para ver con que componentes trabajas y así poder indicarte más pasos....

Salu2 :p:D

keyboy 10-04-2008 21:58:27

Yo añadiría la opción 3:

3.

a) Se abre el editor de campos del dataset asociado
b) Se agregan los campos que se requieran
c) Se agrega un nuevo campo con las siguientes propiedades:

Name: el nombre del campo, por ejemplo, NombreCompleto
Type: String
Size: lo suficiente para almacenar los tres campos pegados

d) En el evento OnCalcFields del dataset se programa el valor del campo:

Código Delphi [-]
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  DataSet['NombreCompleto'] :=
    DataSet['Nombres'] + DataSet['Apellido1'] + DataSet['Apellido2'];
end;

e) Asocio a este campo un DBText.

Bye

aanil 10-04-2008 21:58:40

Bueno eso es mas o menos lo que estoy tratando de hacer.

Yo estoy trabajando con DELPHI, en un form1 tengo un DbGrid que tiene NOMBRES APELLIDO1 APELLIDOS2. Luego a menidas que muevo el cursos al siguiente registro quiero que por los datos de esos registros se vean en grande por los TDBTexts que he puesto en el FORM, pero que no se separen mucho ni se junte. Es mas o menos lo que creo que ustedes ha entendido, voy a probar con el codigo que me han enviado.

BlueSteel 10-04-2008 22:06:25

Cita:

Empezado por keyboy (Mensaje 279106)
Yo añadiría la opción 3:

3.

a) Se abre el editor de campos del dataset asociado
b) Se agregan los campos que se requieran
c) Se agrega un nuevo campo con las siguientes propiedades:

Name: el nombre del campo, por ejemplo, NombreCompleto
Type: String
Size: lo suficiente para almacenar los tres campos pegados
d) En el evento OnCalcFields del dataset se programa el valor del campo:
e) Asocio a este campo un DBText.

Tienes razon keyboy... me faltaba esa opción....pero como con suerte la use una vez...

salu2:p

aanil 10-04-2008 22:23:30

La opcion 3 funciona, pero el nombre y los apellidos quedan a continuacion o sea pegados no hay un espacio entre ellos.

ANTONIOANILHERNANDEZ
ANTONIO ANIL HERNANDEZ

GRACIAS

keyboy 10-04-2008 22:28:13

Ya, bueno, una pequeña falencia :)

Código Delphi [-]
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
  DataSet['NombreCompleto'] :=
    DataSet['Nombres'] + ' ' + DataSet['Apellido1'] + ' '  + DataSet['Apellido2'];
end;

Bye

aanil 11-04-2008 02:36:15

Gracias mis hermanos eso era lo que buscaba, puede cerrar el tema

AAnil


La franja horaria es GMT +2. Ahora son las 11:24:44.

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