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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 25-01-2008
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Poder: 19
david.rguez Va por buen camino
El valor de la traza que guardo no está vacío (lo compruebo pasando el ratón por encima de la variable cuando está en el punto de interrupción del Add, mostrando un cuadro emergente con el valor actual).

Os pongo la porción de código que se encarga del proceso:

Código Delphi [-]

        lista.Free;
        lista:= TStringList.Create;

        qtraza.SQL.Clear;

        if Label1.Caption = 'atras' then
            qtraza.SQL.Add('select * from trazavin where traza27 = :ref and traza05 = ''TRE''')
        else
            qtraza.SQL.Add('select * from trazavin where traza27 = :ref and traza05 = ''TRS''');
        qtraza.Parameters.ParamByName('ref').Value:= refPadre;
        qtraza.Open;

        while not qtraza.Eof do
        begin

            // En primer lugar debemos buscar si el parte actual está examinado. Si no lo está, continuamos.
            if not buscarLista(lista, qtrazaTRAZA12.Value) then
            begin

                qprocesos.Close;
                qprocesos.SQL.Clear;
                qprocesos.SQL.Add('select * from moviproce where mopromovi = arte and moproorden = rden');
                qprocesos.Parameters.ParamByName('parte').Value:= qtrazaTRAZA12.Value;
                qprocesos.Parameters.ParamByName('orden').Value:= qtrazaTRAZA23.Value;
                qprocesos.Open;
                while not qprocesos.Eof do
                begin
                    taprocesos.Open;
                    taprocesos.Locate('PROCODIGO',qprocesosMOPROCODIGO.Value,[]);
                    texto:= texto + taprocesosPRONOMBRE.Value + #13;
                    taprocesos.Close;
                    qprocesos.Next;
                end;
                // Ahora que ya está compuesto el texto lo agregamos
                conex.Text.Add(texto);
                conex.Style:= csSides;
                conex.Text.VertAlign:= vtaTop;
                conex.Text.Angle:= 90;

                // También debemos agregar este parte a la lista dinámica, para evitar que duplique la búsqueda
                lista.Add(qtrazaTRAZA12.AsString);


            end;

            qtraza.Next;


El Free y Create inicial es para asegurarme de que no quedan rastros si se producen ejecuciones consecutivas.
"qprocesos" y "qtraza" son componentes TADOQuery y "conex" es un componente de terceros para la composición de diagramas.

"buscarLista" es una función que he creado que comprueba mediante el método "IndexOf" si el elemento en cuestión está dentro de la lista.

Como veis, si el elemento no está, busca los datos necesarios, configura el componente del diagrama y agrega el elemento (o eso pretendía) a la lista para que si se repite en el bucle no vuelva a ejecutar todo el proceso.


Pd: Ahí puse "asString" porque fue lo último que probé, pero con "Value" el resultado es el mismo.

Última edición por jachguate fecha: 25-01-2008 a las 15:08:20. Razón: cambiar etiqueta code por delphi
Responder Con Cita
 



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
¡En un mes me caso! ContraVeneno La Taberna 54 23-10-2006 10:15:56
Caso específico sierraja Firebird e Interbase 9 12-01-2006 00:18:54
Caso con DLL. mlara Varios 12 19-08-2005 04:48:20
Caso SuperRaro con Transacciones AGAG4 SQL 2 19-08-2004 16:32:28
Caso real.... jafl1965 Humor 1 04-11-2003 10:36:05


La franja horaria es GMT +2. Ahora son las 19:01:10.


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