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 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Resumir tabla

Saludos amigos, espero puedan ayudarme en ésto...tengo q realizar una aplicacion q sume el calor por equipos en un local. El caso es que pueden haber en el local maximo 13 equipos y tengo una tabla con 27 tipos de equipos, osea cada uno de esos maximo 13 equipos puede ser de 27 tipos..

y para cada combobox aplica esta tabla

al final saco un calor total por equipos y lo mando a un label (Qte= Qe1*ne1+Qe2*ne2+...Qe13*ne13)
El hecho es q no sé trabajar con las StringGrids ocultas y no modificables; entonces para casos de tablas he hecho por CASE (claro para tablas mas cortas). Ésta vez también lo puedo hacer pero me va a ocupar demasiadas lineas de programa porque colocaría para el equipo 1 case para las 27 posiciones de la combobox diferentes valores para Qe1, equipo 2 case para las 27 posiciones Qe2 y asi sucesivamente...
Sé que hay casos q tienen el mismo valor y colocaria ejemplo 2,9: begin Qe1:=300; (pero eso no me resume casi nada)
¿Alguien podría ayudarme a resumirlas lo u optimizar?
Agradecido de antemano a los moderadores o usuarios que me puedan ayudar...
Responder Con Cita
  #2  
Antiguo 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
http://img10.imageshack.us/img10/9462/equiposd.jpg
http://img155.imageshack.us/img155/7...adevalores.jpg
Responder Con Cita
  #3  
Antiguo 04-07-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
hola
puedes colocar algo del codigo?
como lo estas haciendo hasta el momento?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Código Delphi [-]
//Equipos
CASE Combobox1.ItemIndex OF
0,5: Begin
Qeq1:=500;
end;
1: Begin
Qeq1:=23;
end;
.
.
.
//y asi hasta llegar al ultimo caso
26: Begin
Qeq1:=1000;
end;

CASE Combobox2.ItemIndex OF
0,5: Begin
Qeq2:=500;
1: Begin
Qeq2:=23;
.
.
.
//y asi hasta llegar al ultimo caso
26: Begin
Qeq1:=1000;
end;
.
.
.
//Y asi hasta llegar al ultimo combobox (13)
CASE Combobox13.ItemIndex OF
0,5: Begin
Qeq13:=500;
1: Begin
Qeq13:=23;
.
.
.
//y asi hasta llegar al ultimo caso
26: Begin
Qeq13:=1000;
end;
Qte:= Qe1*ne1+Qe2*ne2+...+Qe3*ne3;
(supongase q todas las variables están declaradas)
nex: numero de equipos "X"
Ven que sería demasiado largo!!
Responder Con Cita
  #5  
Antiguo 04-07-2011
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
Hola Chichero.

Si no entiendo mal tenes 13 elementos que pueden ser 27 tipos diferentes de artículos eléctricos.
Los tipos de artículos me imagino corresponderan con su gasto en Watts, calorias, o lo que sea. Pero la cantidad deberá corresponderse con el tipo. Es decir todos los tipos 5 consumirán lo mismo por ejemplo.

Entonces creo que se puede simplificar así:
Código Delphi [-]
{ Cargar los diferentes artículos con su consumo }
procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Items.AddObject('Cafetera',TObject(500));  // 500 watts
  ComboBox1.Items.AddObject('Heladera',TObject(1000)); // 1400 watts.
  ComboBox1.Items.AddObject('Notebook',TObject(450));
  ComboBox1.Items.AddObject('Fotocopiadora',TObject(1800));
  ComboBox1.Items.AddObject('Caloventor',TObject(1500));
  ComboBox1.Items.AddObject('Microoondas',TObject(1800));
  ComboBox1.Items.AddObject('Aire Acond.',TObject(2200));
  ... // 27 tipos
 
  ComboBox2.Items:= ComboBox1.Items;
  ComboBox3.Items:= ComboBox1.Items;
  ComboBox4.Items:= ComboBox1.Items; 
  ... 
  ComboBox13.Items:= comboBox1.Items;
 
end;

{ Mostrar la sumatoria de consumos de los equipos seleccionados }
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  Watts: Integer;
begin
  Watts:= 0;
  for i:= 0 to ComponentCount -1 do
    if Components[i].ClassType = TComboBox then
      with TComboBox(Components[i]) do
        if ItemIndex <> -1 then
          Watts:= Watts + Integer(Items.Objects[ItemIndex]);
  Label1.Caption:= IntToStr(Watts);
end;
...
En el ejemplo, la variable Watts almacena la sumatoria del consumo de los equipos seleccionados en los combos y muestra el total en la etiqueta Label1.

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 20:36:28.
Responder Con Cita
  #6  
Antiguo 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Hermano usted es un iluminado de verdad muchas gracias lo haré así! si sepudieran poner calificaciones positivas le pusiera 50!
Responder Con Cita
  #7  
Antiguo 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Otra pregunta brother, sí son dos valores por cada item (osea un calor sensible y uno latente), sería TObject1]y TObject2?? y claro otro watts2
Responder Con Cita
  #8  
Antiguo 04-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
osea q watts1 sume el sensible y watts2 sume el latente
Responder Con Cita
  #9  
Antiguo 04-07-2011
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
Hola.

No, no es posible hacer:
Código Delphi [-]
ComboBox1.Items.AddObject('aaa', TObject(x), TObject(y));

En ese caso creo que deberías usar un arreglo de registros, algo como:
Código Delphi [-]
...
implementation
type
  TRegConsumo = record
    VSensible: Integer;
    VLatente: Integer;
  end;
var
  Consumo: array [0..26] of TRegConsumo;

procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Items.Add('Cafetera');
  Consumo[0].VSensible:= 500;
  Consumo[0].VLatente:= 700;

  ComboBox1.Items.Add('Heladera');
  Consumo[1].VSensible:= 1000;
  Consumo[1].VLatente:= 1200;

  ComboBox1.Items.Add('Notebook');
  Consumo[2].VSensible:= 450;
  Consumo[2].VLatente:= 500;
  ComboBox2.Items:= ComboBox1.Items;
  //...
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  C1,C2: Integer;
begin
 C1:= 0;
  C2:= 0;
  for i:= 0 to ComponentCount -1 do
    if Components[i].ClassType = TComboBox then
      with TComboBox(Components[i]) do
        if ItemIndex <> -1 then
        begin
          C1:= C1 + Consumo[ItemIndex].VSensible;
          C2:= C2 + Consumo[ItemIndex].VLatente;
        end;
  Label1.Caption:= 'Sensible: '+IntToStr(C1)+#13+'Latente: '+IntToStr(C2);
end;
Donde aprovechas ItemIndex como índice del arreglo de registros, por supuesto deben corresponderse los índices.

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 22:44:46.
Responder Con Cita
  #10  
Antiguo 05-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Ok man muchas gracias no sabes cuántas lineas de prog me va a ahorrar eso!
Responder Con Cita
  #11  
Antiguo 05-07-2011
Avatar de Chichero
Chichero Chichero is offline
Miembro
 
Registrado: dic 2007
Ubicación: Venezuela
Posts: 22
Poder: 0
Chichero Va por buen camino
Saludos brother también quiero aprovechar esa informacion para otro prog q calcula calor pero por paredes exteriores, interiores , techo, piso.. cada uno puede estar compuesto de max 4 materiales de diferentes tipos (ya esta parte lo sé.. la cosa por ejemplo es que de el peso y resistencia de Paredes exteriores (Ppe, Rpe), Interiores (Ppi, Rpi), techo (Pti, Rti) y piso (psi, rsi)...
osea quiero saber como hacer para q el contador de Ppe y el de Rpe sume desde la combobox1 hasta la 4, Ppi y Rpi sume desde la 5 hasta la 9 y asi.. porque despues los usare para las diferentes formulas de calor. Y al final varios labels que diran el calor por paredes, otra para techo y asi...
Código Delphi [-]
//paredes esteriores
ppe:= 0;
Rpe:= 0;
Ape:= StrToFloat(Edit1.Text)
  for i:= 0 to ComponentCount -1 do
    if Components[i].ClassType = TComboBox then
      with TComboBox(Components[i]) do
        if ItemIndex <> -1 then // (COMO HAGO PARA QUE SEA DE La combobox1 a la 4 ésto es lo que me interesa)
        begin
          ppe:= ppe + Material[ItemIndex].VPeso;
          Rpe:= Rpe + Material[ItemIndex].VResist;
        end;
Qpe:= Ape*ppe*Dte
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
enviar registros de una tabla a un campo de otra tabla a travez de ciclo IF en MYSQL CLUSTERBIT SQL 8 23-10-2008 15:50:03
Tabla con varios lookups a otras. Y otra tabla con un lookup a la primera. En SQL Wonni Conexión con bases de datos 5 26-06-2007 00:15:49
Recorrer Tabla, contar registro repetidos y escribir totales en otra Tabla Lucas_diaz1810 Conexión con bases de datos 1 25-12-2006 13:04:34
Dbgrid para insertar en una tabla pero cogiendo datos de otra tabla taru MySQL 1 27-07-2006 15:36:12
Borrar registro en tabla maestra y todos los de la tabla detalles correspondientes jealousy Conexión con bases de datos 7 14-10-2003 12:46:23


La franja horaria es GMT +2. Ahora son las 19:12:46.


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