Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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 27-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola Delphitest
Trabaje un rato en lo de las sumas, va bien pero tengo un problema con los tipos de datos de la base de datos, tendras que verificarlo tu, si te parecen los cambios pon otro adelanto, con la base de datos completa.
Veras que he puesto dos botones, uno calcula el importe del albaran y otro suma todo, base importe + iva - descuentos = Total.
Bueno por hoy me canse, nos vemos el lunes, en linea.
Aqui te envio los cambios, revisalos y corre el programa para que los entiendas mejor.
Aqui esta:
http://rapidshare.com/files/934431/Projects.zip.html
Saludos y buen fin de semana
Responder Con Cita
  #2  
Antiguo 31-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
Hola delphitest

¿podrías poner las fórmulas que usas para hacer los cálculos del albarán? Yo no tengo muchos conocimientos de contabilidad. Tampoco se que es la base imponible.

¿Como hago para cargar los datos de una tabla por partes?
Caral dijo algo sobre eso hace unos días.

Tengo una tabla con 1.5 millones de registros y si un programa los lee todos a la vez va a resultar extremadamente lento.

saludos
Responder Con Cita
  #3  
Antiguo 31-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Hola Robert, ¿Qué tipo de operación quieres hacer?, ¿afectaría a todos los registros?

Lo normal sería hacerlo por una consulta (TQuery), donde se restrinja los datos:
Código SQL [-]
select * from tabla where codigoCliente = 23

Aunque estamos seleccionando todos los campos (columnas) de la tabla, esa consulta debería ser muy rápida, ya que afectará a 1 registro. Incluso afectando a 1.000 clientes, debe ser inmediato.

Lo normal es acelerar las búsquedas creando índices secundarios (sobre los campos de búsqueda), a menos que sean clave primaria, que entonces, ya llevan un índice.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 31-10-2006
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 21
Robert01 Va por buen camino
hola lepe

con repecto a la búsqueda es para encontrar personas digamos que empiezan con una letra, sílaba o dos sílabas en un campo donde está apellido, nombres y direcciones. Yo buscaría por el apellido.

Si trato de ordenar por el mismo tarda mucho en hacerlo entonces creo que la alternativa es filtrar sin ordenar.

Por lo que dijeron antes si el programa lee todos los datos de la tabla va a ser muy lento pero no se cuanto

saludos
Responder Con Cita
  #5  
Antiguo 31-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola Robert 01
Como dice lepe, se puede hacer una consulta con sql y es realmente rapida, tambien puedes hacer una consulta con sql y filtrarla para encontrar los datos segun quieras, por ejemplo, digamos que tienes una tabla que se llama clientes y un campo que se llama apellido que es el que quieres filtrar entonces haces una consulta y un filtro de la misma en un query, asi:
Colocas un query y en el evento oncreate del form pones esto:
Código Delphi [-]
   Query1.clear;
   Query1.sql.Text:= 'Select apellido from clientes';
   Query1.Open;
Tambien lo puedes poner en otro evento el que te convenga.

Ademas pones un edit en el form y en el evento OnChange del edit pones esto:
Código Delphi [-]
var
   Filtro : String;
begin
      If (Edit1.Text <> '') then
   begin
      Query1.Filtered := False;
      Filtro := 'apellido Like '''+ Edit1.Text + '*'''
      Query1.Filter := Filtro;
      Query1.Filtered := True
Con esto la consulta esta hecha en sql y es rapida y el filtro esta hecho en el edit, con este ira buscando en apellido por la primera letra que introduzcas.
Saludos
Responder Con Cita
  #6  
Antiguo 31-10-2006
Delphitest Delphitest is offline
Miembro
 
Registrado: sep 2006
Ubicación: Salamanca-España
Posts: 249
Poder: 20
Delphitest Va por buen camino
No hay forma humana de seguir con esto, cada hora que pasa estoy mas perdido, me llegan errores por todos los lados y ya no se por donde tirar.

Pese al esfuerzo de ayer que hizo Ena0 que dedico parte de la tarde en echarme una mano no hay forma de conseguir calcular el total de los importes.

Os cuento exactamente lo que me pasa para ver si alguien fuese tan amable de ayudarme.

Sigo atascado en el FAlbaran, el tema es que necesito meter la suma del campo ImporteLineal (de DesgloseAlbaran) en el campo Base (tabla Albaranes).

Con este código consigo que se sume y lo lleve a la pantalla, que no es poco, pero me da un error en cuanto uso "SUM" despues de select. (Para no liarme de momento todo esto está en el evento click del Button2, ya lo cambiare cuando funcione).

Código Delphi [-]
procedure TFAlbaranes.Button2Click(Sender: TObject);
var
b : double;
begin
//Cierro la consulta
  ADOQAlbaran.Close;
// Selecciono la suma del campo ImporteLineal y lo vuelco a BaseImp
  ADOQAlbaran.Sql.add ('Select sum([Desglose_Albaran].ImporteLineal) AS BaseImp');
// en la tabla Desglose_albaran
  ADOQAlbaran.Sql.add ('From Desglose_Albaran');
// Solo los que coincidan con el nº albaran 8
  ADOQAlbaran.Sql.add ('Where Num_Albaran = 8');
// Abro la consulta
  ADOQAlbaran.Open;
// Asigno el valor de la suma a la variable B
  B:= ADOQAlbaran.FieldByName ('BaseImp').asFloat;
// Muestro un mensaje con el total
  ShowMessage('El importe total es ' + FloatToStr(B));
end;


He hecho pruebas quitandolo y deja de darlo, pero claro, no suma nada. El error que da es:

http://cjoint.com/data/kFrMbPX0o5.htm


Aqui os subo todo actualizado pero con ese error

Gracias a los que podais echarme una mano, no pienso tirar la toalla pero la verdad es que cuando se queda uno así sin saber por donde continuar es un poco duro.
__________________
Mi proyecto paso a paso (Parte I)
Responder Con Cita
  #7  
Antiguo 31-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 289
Poder: 24
kalimero Va por buen camino
Hola Delphitest.
dices:
"Con este código consigo que se sume y lo lleve a la pantalla, que no es poco, pero me da un error en cuanto uso "SUM" despues de select."

¿Podrias explicarte un poco mejor?. No entiendo a que te refieres

Saludos
Responder Con Cita
  #8  
Antiguo 31-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Robert01

También puedes hacerlo así:
Esto en el Oncreate de la forma:
Código Delphi [-]
 Query1.sql.Text:= 'Select apellido from clientes where apellido like :Ape'  ;
 Query1.Prepare;

Ahora en el Edit, en su evento OnkeyDown:
Código Delphi [-]
if key = vk_return then // al pulsar la tecla intro en el edit, hacemos la busqueda
begin
  Query1.Close;
  query1.Parambyname('Ape').AsString:= '%'+ Edit1.text + '%';
  query1.Open;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Ejecutar Query Paso a Paso??? juliopag1 SQL 0 17-06-2006 01:51:10
Novato (Paso a Paso de una consulta) enecumene Conexión con bases de datos 2 29-05-2006 20:52:19
Motor Paso a Paso jluisx C++ Builder 3 12-09-2005 16:48:07
Red Paradox paso a paso Aldo Josué Conexión con bases de datos 2 13-12-2003 13:53:37
procedure paso a paso Silver Varios 1 26-08-2003 20:24:00


La franja horaria es GMT +2. Ahora son las 17:52:30.


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