lunes, 7 de diciembre de 2009

desplegar Dos Campos en un combobox que esten alineados

Estimados lectores, ha sido una experiencia agradable el hacer este blog y tener algunos lectores que comparten el gusto por la programación; actualmente estoy empezando otro proyecto, muy personal,  con tecnología web  que espero compartir con toda la comunidad de programadores y necesito recursos porque es algo muy personal y mi situación financiera no es muy buena.

 Si alguien desearía apoyarme  tengo una tarjeta Oxxo Saldazo con el número:  4766-8408-7508-1593, cualquier apoyo lo pueden hacer en cualquier tienda Oxxo o en Banamex, les agradezco y que sus proyectos lleguen a buen fin.

Seguramente en ocasiones se han visto en la necesidad de presentar dos o mas campos en el despliegue de un combobox. La mayoria de las soluciones sugieren concatenar dos campos en un stored procedure. El problema es que al hacer esto los datos aparecen desalineados.
La solución seria hacer un stored procedure en sql-server mas o menos como este:
CREATE PROCEDURE sp_traedatoscliente
as
select clave, RTRIM(nombre) + REPLICATE(' ', 60 - LEN(RTRIM(nombre))) +'|'+ clave AS descrip
from clientes order by Nombre
GO
Notas: primero el nombre se tiene que limpiar de espacios a la derecha, lo cual logramos con el Rtrim. El replicate nos llena de espacios la longitud del campo - la longitud del nombre, en este caso mi campo esta definido de 60 caracteres.
Se supone que trae los datos para rellenar el combo, en visual basic sería mas o menos asi
With cboCliente
.DataPropertyName = "clave"
.HeaderText = "Nombre Cliente"
.DataSource = dtcbocliente 'es una tabla de donde se extraen los datos con el stored
.DisplayMember = "descrip"
.ValueMember = "clave"
.Width = 450
.DropDownWidth = 500
End With
y para que los datos aparezcan alineados y no de la siguiente manera:
Agustín solis |001
Roberto Bolaños |002
David Lizama Ortuño |003
el combo debe tener como fuente un tipo de datos courier que es monoespaciada por lo tanto aparecera alineada.
Espero que les sea de utilidad y si conocen otra forma de hacerlos no duden en enviarme su solucion

No hay comentarios:

Publicar un comentario