Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
ayuda con salida de indices

hola, no se si es el sitio adecuando, asi que por si acaso, mis disculpas..


vereis estoy intentando llenar un tlistview con todos los registros de una base de datos, el codigo en concreto es este:

Código Delphi [-]
lista:= listview1.Items.Add;
campo:= form1.adoTabla.IndexFields[1].AsString;   
for i:= 0 to form1.adotabla.RecordCount -1 do     
lista.SubItems.Add (campo)


el problema es que me da error de index out of bound -1 o algo similar, y de otro modo cuando le quito el for, añade el item en la segunda columna no en la primera.
La bd esta habierta por supuesto, y para mas detalles, la primera columna seria para los apellidos de los clientes, la segunda para el nombre y la tercera para el tinte de pelo que usa (es para una peluqueria de una amiga)

a ver si me echais una mano.
saludos.
Responder Con Cita
  #2  
Antiguo 04-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Hola.

Un ejemplo de como podrías implementarlo:
Código Delphi [-]
...
var
  ListItem: TListItem;
  ListColumn: TListColumn;
  i: Integer;
begin 
  ListView1.ViewStyle:= vsReport;
  ListView1.Columns.Clear;
  ListColumn:= ListView1.Columns.Add;
  ListView1.Columns[0].Width:= 0;
  for i:= 0 to ADOTable.FieldCount -1 do
  begin
    ListColumn:= ListView1.Columns.Add;
    ListColumn.Caption:= ADOTable.Fields[i].FieldName;
  end;
  ADOTable.First;
  while not ADOTable.Eof do
  begin
    with ListView1.Items.Add do
      for i:= 0 to ADOTable.FieldCount -1 do
        SubItems.Add(ADOTable.Fields[i].AsString);
    ADOTable.Next;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 04-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
muchas gracias ecfisa,

esto era lo que necesitaba, aunque esto tiene que hacerlo cuando una consulta SQL de vuelva los resultados de una busqueda.

Por otra parte, pones esto:
Código Delphi [-]
listview1.columns[0].with:= 0;

Pero yo quiero que las columnas tengan el ancho exacto de 150, si cambio el 0 por el 150, lo que hace es crear una primera columna con ese ancho y a continuacion, 3 columnas mas con el ancho minimo marcado supongo por el .with:= 0

No se como arreglar esto.

un saludo y gracias.
Responder Con Cita
  #4  
Antiguo 04-07-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Hola.

Código Delphi [-]
var
  ListItem: TListItem;
  ListColumn: TListColumn;
  i: Integer;
begin
  ListView1.ViewStyle:= vsReport;
  ListView1.Columns.Clear;
  ListColumn:= ListView1.Columns.Add;
  ListView1.Columns[0].Width:= 0; //Ocultar columna 0
  for i:= 0 to ADOTable.FieldCount -1 do
  begin
    ListColumn:= ListView1.Columns.Add;
    ListColumn.Width:= 150; // <- Aqui le das el ancho de 150 a las columnas
    ListColumn.Caption:= ADOTable.Fields[i].FieldName;
  end;
  ADOTable.First;
  while not ADOTable.Eof do
  begin
    with ListView1.Items.Add do
      for i:= 0 to ADOTable.FieldCount -1 do
        SubItems.Add(ADOTable.Fields[i].AsString);
    ADOTable.Next;
  end;
end;

En cuanto a traerlo de una consulta, sólo debes cambiar el TADOTable por un TADOQuery. Yo usé una tabla por que en el código de tu primer mensaje:
Código Delphi [-]
campo:= form1.adoTabla.IndexFields[1].AsString;   
for i:= 0 to form1.adotabla.RecordCount -1 do
Estas usando una tabla y no una consulta.

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 04-07-2011 a las 23:45:20.
Responder Con Cita
  #5  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola ecfisa,

muchas gracias por la ayuda, la verdad es que hacia casi 2 años que no hacia nada de esto y ahora me salido este programita y claro, me veo en la situacion de aver olvidado muchas cosas, pero que a medida que se va desarrolando el codigo empiezo a recordar.

Por otra parte, la idea de la cosulta es por que se realizaran dos tipos de busquedas de clientes, todos aquellos cuyo apellidos empiecen por una letra determinada y contenida en un combobox o por el apellido completo.

Puede ser algo asi...
Código
Código SQL [-]
SELECT CLIENTE 
FROM TABLA1 
WHERE APELLIDO LIKE "S*"


mas o menos. ahora mirare como implementarlo en el codigo.

un saludo y muchisimas gracias.
Responder Con Cita
  #6  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola, a ver si sabes por que me tira el error...


Código Delphi [-]
adoquery1.DataSource:= form1.dtSource;
  AdoQuery1.Close;
  AdoQuery1.SQL.Clear;
  AdoQuery1.SQL.Add ('Select Apellidos, Nombre, Tinte');
  AdoQuery1.SQL.Add ('FROM database.mdb');
  AdoQuery1.SQL.Add ('WHERE Apellido like ' + combobox1.text);
  AdoQuery1.Open;

  ListView1.ViewStyle:= vsReport;
  ListView1.Columns.Clear;
  ListColumn:= ListView1.Columns.Add;
  ListView1.Columns[0].Width:= 0;
  for i:= 1 to adoquery1.FieldCount -3 do
  begin
    ListColumn:= ListView1.Columns.Add;
    ListColumn.Width:= 160;
    ListColumn.Caption:= adoquery1.Fields[i].FieldName;
  end;
  adoquery1.First;
  while not adoquery1.Eof do
  begin
    with ListView1.Items.Add do
      for i:= 1 to adoquery1.FieldCount -3 do
        SubItems.Add(adoquery1.Fields[i].AsString);
        adoquery1.Next;
  end;

El error lo da en la linea del
Código SQL [-]
FROM database.mdb
dice que hay un error de sintaxis.

A ver si puedes ayudarme ecfisa por que creo que el from esta bien puesto. Y la base de datos se encuentra en el mismo directorio que la aplicacion.

saludos.
Responder Con Cita
  #7  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola ahora el error lo da en la siguiente linea

Código SQL [-]
AdoQuery1.SQL.Add ('WHERE APELLIDOS LIKE '+combobox1.text+'*');

sigue dando da error de sintaxis, sin embargo en access, la sintaxis:

Código SQL [-]
SELECT Tabla1.[APELLIDOS], Tabla1.[NOMBRE], Tabla1.[Tinte] FROM Tabla1 WHERE TABLA1.APELLIDOS Like "S*";
da el resultado esperado.

saludos y echame el cable tio/a
gracias.
Responder Con Cita
  #8  
Antiguo 05-07-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
claro es que las comillas simples te están confundiendo.


Código Delphi [-]
AdoQuery1.SQL.Add ('WHERE APELLIDOS LIKE '+QuotedStr(combobox1.text+'*'));
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola, gracias por la ayuda, ahora si que si XDDD

de todos modos, ahora no me devuelve nada en el listview, lo deja en blanco y estoy seguro de que hay registros que empiezan por la letra "s" por ejemplo. Pero voy a comerme un poco el coco antes de gritar pidiendo auxilio xdd

saludos y gracias.
Responder Con Cita
  #10  
Antiguo 05-07-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
s minúscula o mayúscula...
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola lepe,

nada solucionado, ya va corriendo, faltan algunas cosillas como los mensajes de aviso en caso de borrar registros.
El problema ahora es otro, que no me lo han dicho hasta ahora cuando ya estaba todo acabado practimante, resulta que la aplicacion la quiere para un ordenador que le ha llegado, pero ese ordenador corre android, asi que ahora si que no tengo ni idea de como arreglar esto. He buscado algun emulador que corra aplicaciones windows en android pero no encuentro nada.

asi que ya ves.....

un saludo y gracias.
Responder Con Cita
  #12  
Antiguo 05-07-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
no me río de tí, me río de las tonterías que hacen algunos jefes ignorantes.
En principio, no puedes ejecutar ese programa salvo con algún emulador, pero además la base de datos, los componentes, etc.
Resumiendo, en principio, simplemente, no se puede hacer.
Responder Con Cita
  #13  
Antiguo 05-07-2011
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 16
danielmj Va por buen camino
hola, la cara que se me quedo fue de a cuadros, y me lo dicen ahora, las bases de datos era otra de las cosas que me tenian mosqueado por el tema android. Asi que na, trabajo y tiempo perdido.

Seguramente la acabe, pero ya por mi mismo, no me gusta dejar programas a medio terminar.
saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Necesito ayuda con indices .ndx para archivos dbf dinover7 Conexión con bases de datos 1 21-05-2007 21:41:34
¡¡Ayuda!! Callejon sin salida NEG1414 C++ Builder 0 27-03-2007 20:22:32
ayuda con indices NTX utilizando los componentes VK DBF weke Varios 2 16-06-2006 09:28:44
Ayuda con los indices de una tabla paradox JefeNet Conexión con bases de datos 8 25-10-2004 15:33:27
Orden de Salida kwan Varios 7 09-12-2003 02:11:31


La franja horaria es GMT +2. Ahora son las 22:20:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi