Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2005
tiagor64 tiagor64 is offline
Miembro
 
Registrado: ene 2005
Posts: 48
Poder: 0
tiagor64 Va por buen camino
problema para devolver 2 valores en una funcion

Hola:

Estoy trabajando en un programa que me lee un condigo desde un edit, y tendria que devolverme despues de buscar en una funcion dos strings, uno con la descripcion y otro con las unidades y no se como hacerlo, os pego un trozo de codigo.

Código:
 function tform4.buscararticulo(celda : string) : string;
begin
qrycache.sql.text := 'select descripcion from articulos_cache where codigo = '' '+celda+'''';
qrycache.Open;
if dsarticulocache.DataSet.FieldByName('descripcion').AsString = '' then
   result := 'CODIGO NO ENCONTRADO'
   else result := dsarticulocache.DataSet.FieldByName('descripcion').AsString;
end;
procedure TForm4.Edit4Exit(Sender: TObject);
begin
edit5.text := buscararticulo(edit4.Text);
end;
procedure TForm4.Edit7Exit(Sender: TObject);
begin
edit8.text := buscararticulo(edit7.Text);
end;
asi es como lo tengo ahora, pq necesitaba q me devolviera solo la descripcion, pero para que me devuelva tb otro campo q son las unidades no se como hacerlo sin llamar otra funcion.

Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 06-05-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Hola tiagor64,

se me ocurren varias maneras:

Si esa "función" la vas a usar para pintar en los mismos edit siempre, puedes modificar directamente dentro de la funcion dichos edits, y la pondríamos como procedimiento. Es decir,
Código Delphi [-]
  procedure tform4.buscararticulo(celda : string);
  begin
    qrycache.sql.text := 'select descripcion, unidades from articulos_cache where codigo = '' '+celda+'''';
   qrycache.Open;
   if qrycache.Recordcount > 0 then begin  //si lo encuentra
     edit5.text := dsarticulocache.DataSet.FieldByName('descripcion').AsString;
     edit8.text := dsarticulocache.DataSet.FieldByName('unidades').Value;
   end
   else begin
     edit5.text := '';
     edit8.text := '';
   end;
end;

En otro caso tambien puedes hacer un procedimiento que pase 2 variables por "referencia":

Código Delphi [-]
  procedure tform4.buscararticulo(celda : string, Var Desc : String; Var Uds : Integer);
  begin
    qrycache.sql.text := 'select descripcion, unidades from articulos_cache where codigo = '' '+celda+'''';
   qrycache.Open;
   if qrycache.Recordcount > 0 then begin  //si lo encuentra
     Desc := dsarticulocache.DataSet.FieldByName('descripcion').AsString;
     Uds := dsarticulocache.DataSet.FieldByName('unidades').Value;
   end
   else begin
     Desc := '';
     Uds := 0;
   end;
end;

Un saludo.
Responder Con Cita
  #3  
Antiguo 06-05-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por hermes_32
(1)...Si esa "función" la vas a usar para pintar en los mismos edit siempre, puedes modificar directamente dentro de la funcion dichos edits,...
(2)...En otro caso tambien puedes hacer un procedimiento que pase 2 variables por "referencia":
Si ninguna duda el segundo.
En el primero estás perdiendo toda la abstracción/encapsulación.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 06-05-2005
Avatar de hermes_32
hermes_32 hermes_32 is offline
Miembro
 
Registrado: jul 2003
Posts: 94
Poder: 21
hermes_32 Va por buen camino
Tienes razón, es una guarrada de solución, pero...

un saludo.
Responder Con Cita
  #5  
Antiguo 06-05-2005
tiagor64 tiagor64 is offline
Miembro
 
Registrado: ene 2005
Posts: 48
Poder: 0
tiagor64 Va por buen camino
muchas gracias, me ha servido la solucion.
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


La franja horaria es GMT +2. Ahora son las 23:42:56.


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