Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo ecfisa,

Mira la captura del listview con su distribución de columnas sería esta:


El codigo es este:
Código Delphi [-]
for i:= 0 to lista.Items.Count -1 do
begin
     total:= total + (StrToFloat(lista.Items.Item[10].Caption ));
     Label35.Caption:= FloatToStr(total);
end;

Me estaba liando con el indice, no contaba con la columna 0 que no se ve por eso de tener el width a 0. En lugar de poner 10, usaba el indice 9.
A parte de eso, lo unico que he cambiado es que esta parte del codigo ahora se inicia en el oncreate del formulario. He hecho estos cambios y ya no tira ningun error, eso si, sigue sin sumarme nada. Ahora me pondre con eso para que sume todas las cantidades.

Gracias y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 12-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código Delphi [-]
for i:= 0 to lista.Items.Count -1 do
begin
     total:= total + (StrToFloat(lista.Items.Item[ i ].Caption ));
     Label35.Caption:= FloatToStr(total);
end;

Última edición por Casimiro Notevi fecha: 12-11-2014 a las 19:20:44.
Responder Con Cita
  #3  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola casimiro, gracias pero me temo que no funciona. Practicamente he copiado y pegado tu código y no suma nada, lo unico que hace es meter en "label35.caption" el precio del ultimo articulo introducido, pero no suma este con los anteriores.



La columna de al lado de "precio" está vacia por que aún ando liado con ella para agregar elementos desde otro formulario.

Como puedes ver en la captura, hace eso, mostrar el ultimo precio introducido pero no los suma.

Saludos
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #4  
Antiguo 12-11-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No entiendo el contexto, ¿puedes explicarlo y también poner el código que usas, y qué valores tiene esa lista y cómo y dónde lo asignas?
Responder Con Cita
  #5  
Antiguo 12-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola,

mira el siguiente es el codigo del evento oncreate:
Código Delphi [-]
procedure TrForm.FormCreate(Sender: TObject);
var
  i: integer;
  total: extended;
//  total2: extended;

begin
  total:= 0;
  for i:= 0 to lista.Items.Count -1 do
    begin
//      total:= total + (StrToFloat(lista.Items.Item[i].Caption )); //total + (StrToFloat(lista.Items.Item[10].SubItems[i]));// .Caption ));
//      total2:= StrToFloat(label35.Caption) + total;
//      Label35.Caption:= FloatToStr(total);// label35.Caption  FloatToStr(total);

        total:= total + (StrToFloat(lista.Items.Item[ i ].Caption ));
        Label35.Caption:= FloatToStr(total);
    end;
end;

**Lo que está como comentario, son pruebas que he ido haciendo sin mayor importancia **

Por otra parte, el código que le manda el valor precio a la lista (TlistView) es este:
Código Delphi [-]
procedure TpDatos.Button2Click(Sender: TObject);
var
  valores : array[1..100 , 1..100] of longint;
  i,j, valor: longint;

begin
  
  ...


    with rForm.lista.Items.Add do
    begin

    ...
     if Form1.ch3.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');

      if Form1.ch4.Checked then
        subItems.Add('Si')
      else
        subItems.Add('No');
      SubItems.Add(form1.Label17.Caption);
    ...
    end;

...
end;

A su vez, Label17 parte del formulario 1 y almacena la suma de los precios segun los articulos seleccionados por el cliente. Al hacer clic sobre el boton2 se envia el valor de label17 del formulario 1 directamente a la columna de precios de la lista. Así cada vez que se agregan nuevos articulos, al final, en el oncreate del rForm (ver más arriba), debería sumar esa columna de precios, pero como has visto solo muestra el valor del ultimo elemento introducido en la lista.

Espero haberme explicado mejor ahora. Otra cosa, lo del label17 del formulario 1 que va directamente a la lista del formulario rForm... etc sé que no es lo mas elegante ni lo mas eficiente, pero no conozco otra forma de hacerlo, quiero decir, sin saltar de un form a otro.

Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #6  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Sigo sin poder sumar nada, y probando cosas, he situado un boton en el formulario y en su evento clic, el siguiente codigo:
Código Delphi [-]
label36.Caption:= lista.Items.Item[3].SubItems[5]

Mi pregunta es ¿tal como está esa linea debería mostrar en el label36, el valor 5 de la columna 3 del listview? por que no entiendo muy bien, y esa linea da error cuando pulso el boton.

La idea es saber si almacena o no valores en la etiqueta y de este modo ver si se suman valores de la lista o no.

Gracias y un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #7  
Antiguo 13-11-2014
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola de nuevo,

he cambiado el codigo a esto:
Código Delphi [-]
procedure TrForm.FormActivate(Sender: TObject);
var
  i: integer;
  total: extended;
  total2: TStringList; //variable de pruebas

begin
  total2.Create;
  for i:= 0 to lista.Items.Count -1 do
    begin
      total2.Add(lista.Items[i].SubItems[9]); //Esta linea da error "access violation"
      total:= total + strToFloat(total2.Text) ; //(StrToFloat(lista.Items.Item[i].SubItems[11]));
      Label35.Caption:= FloatToStr(total);
      label36.Caption:= total2.Text;
    end;
end;

He intentado basarme en este código:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
   i : Integer;
   StrList : TStringList;
begin
   StrList := TStringList.Create;
   StrList.Duplicates := dupIgnore;
   StrList.Sorted := True;
   for i := ListView1.Items.Count-1 downto 0 do
   begin
      if LowerCase(ListView1.Items[i].SubItems[0]) = LowerCase(Edit1.Text) then
         StrList.Add(ListView1.Items[i].SubItems[0])
      else
         ListView1.Items.Delete(i);
   end;
   ShowMessage(StrList.Text);
   StrList.Free;
end;

Que peternece a este post http://www.clubdelphi.com/foros/showthread.php?t=82673, ahí se usa un messagebox para mostrar el valor y yo uso una etiqueta, creo que es la unica diferencia, aun asi, no me funciona. Ni puedosumar los valores de una columna ni me muestra en el label el contenido de una celda de la lista.
Ya estoy desesperao, incluso he cerrado delphi varias veces cabreao y al rato vuelvo a insistir en vano.

En fin, saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.

Última edición por danielmj fecha: 13-11-2014 a las 12:51:20.
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
Error Sumando Columnas SQL martini002 Conexión con bases de datos 44 25-08-2012 20:28:57
sumando dos float no pbtengo valor real lmpadron C++ Builder 2 12-09-2011 21:33:03
Sumando columnas con Qreport ? Coco_jac Varios 5 27-01-2006 14:57:56
error sumando campos weke SQL 2 02-06-2004 14:52:33
Sumando columnas/Filas StartKill Firebird e Interbase 5 27-05-2004 09:42:32


La franja horaria es GMT +2. Ahora son las 06:34:29.


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