Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-03-2005
kryna kryna is offline
Miembro
 
Registrado: mar 2005
Posts: 46
Poder: 0
kryna Va por buen camino
consulta de parametros de 2combobox

Hola a Todos....
Muchas gracias por su ayuda

La instruccion
if (rgservicios.ItemIndex = 0) and (comboemergencia.ItemIndex in [0]) then

Funciona muy bien; el problema se me presenta cuando la consulta es mas grande, osea: Tengo en el combo rgservicios 3 opciones, sin embargo cuando el rgservicios=0; el comboemergencia tiene 6 opciones; entonces es con 6 las opciones con las que debe realizar la comparacion, y para cada caso se debe crear y mostrar un tabla en particular... estoy haciendolo con IF sin embargo aunque funciona muy bien tiene mucho codigo... sera que tengo que utilizar un WHILE DO o REPEAT UNTIL

Mi pregunta es como tengo que hacer estas comparaciones cuando rgservicios=0 y comboemergencia = 1,2,3,4,5 ó 6........ y a su vez cuando rgservicios=1 y combocomplementario= 1,2,3,4,5,6,7,8, ó 9...... y tambien rgservicios=2 y combohono= 1,2,3,4,5,6,7,8,9,10 ó 11....... como puedo hacer este modulo de una manera que sea muy funcional y sin tantos IF.

Ademas como hago para crear y mostrar la tabla, si tengo que utilizar Tquery, como la llamo desde mi programa sin que me genere errores.


Espero que me halla podido explicar y me puedan ayudar..

Gracias de antemano
Responder Con Cita
  #2  
Antiguo 28-03-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kryna
Espero que me halla podido explicar y me puedan ayudar..
Sinceramente no te has explicado muy bien. El problema es que presupones que todos estamos al tanto de tus mensajes y de lo que tu aplicación debe hacer.

En cuanto a lo primero, toma en cuenta que en estos foros se publican muchos hilos y no es posible guardar en la memoria todos ellos.

En cuanto a lo segundo, pasa muchas veces que para uno la pregunta es clara porque uno es el que está trabajando en el problema pero para otros la pregunta está descontextualizada.

Yo te propongo que nos describas con más cuidado lo que pretendes hacer para así poder pensar una mejor solución.

// Saludos
Responder Con Cita
  #3  
Antiguo 28-03-2005
kryna kryna is offline
Miembro
 
Registrado: mar 2005
Posts: 46
Poder: 0
kryna Va por buen camino
Hola...


Mi problema es el siguiente..

tengo 1radiogroup llamado rgservicios cuando este es 0.. me activa un combobox llamado comboemergencia.... comboemergencia tiene 6 opciones para la seleccion o1, o2, o3, o4, o5, o6....

Si rgservicios es 1 activa un combobox llamado combocomple que a su vez tiene algunas opciones para la seleccion.

Si rgservicios es 2 activa un combobox llamado combocombo que a su vez tiene algunas opciones para la seleccion.

si yo utilizo el siguiente codigo..

if (rgservicios.ItemIndex = 0) and (comboemergencia.ItemIndex in [0]) then
ds.DataSet := qryemergencia;
tabla1.Visible := true;

if (rgservicios.ItemIndex = 0) and (comboemergencia.ItemIndex in [1]) then
{muestra tablas}

if (rgservicios.ItemIndex = 0) and (comboemergencia.ItemIndex in [2]) then
{muestra tablas}

.
.
.
if (rgservicios.ItemIndex = 1) and (combocomple.ItemIndex in [6]) then
{muestra tablas}


if (rgservicios.ItemIndex = 1) and (combocomple.ItemIndex in [0]) then
{muestra tablas}

if (rgservicios.ItemIndex = 1) and (combocomple.ItemIndex in [1]) then
{muestra tablas}

if (rgservicios.ItemIndex = 1) and (combocomple.ItemIndex in [2]) then
{muestra tablas}

.
.
.
if (rgservicios.ItemIndex = 1) and (combocomple.ItemIndex in [9]) then
{muestra tablas}



if (rgservicios.ItemIndex = 2) and (combocombo.ItemIndex in [0]) then
{muestra tablas}

if (rgservicios.ItemIndex = 2) and (combocombo.ItemIndex in [1]) then
{muestra tablas}

if (rgservicios.ItemIndex = 2) and (combocombo.ItemIndex in [2]) then
{muestra tablas}

.
.
.
if (rgservicios.ItemIndex = 2) and (combocombo.ItemIndex in [15]) then
{muestra tablas}

Yo quisiera saber si no hay otra manera de hacer esto, para no utilizar tantos if anidados.

gracias
Responder Con Cita
  #4  
Antiguo 29-03-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por kryna
tengo 1radiogroup llamado rgservicios cuando este es 0.. me activa un combobox llamado comboemergencia....

[...]

Si rgservicios es 1 activa un combobox llamado combocomple que a su vez tiene algunas opciones para la seleccion.

Si rgservicios es 2 activa un combobox llamado combocombo que a su vez tiene algunas opciones para la seleccion
Según entiendo de lo que describes, cada uno de los tres combos estará activo sólo si la correspondiente opción del RadioGroup está seleccionada.

Entonces no entiendo por qué quieres juntar todas las comprobaciones en un sólo lugar.

Tal como veo las cosas tienes que manejar un case en el evento OnClick del RadioGroup:

Código Delphi [-]
case rgservicios.ItemIndex of
  0: { activas comboemergencia }
  1: { activas combocomple }
  2: { activas combocombo }
end;

y manejas las opciones de cada combo en su correspondiente evento OnChange:

Código Delphi [-]
procedure comboemergenciaChange(Sender: TObject);
begin
  case comboemergencia.ItemIndex of
    0: { muestras tabla para opción 0 }
    1: { muestras tabla para opción 1 }
    ...
    6: { muestras tabla para opción 6 }
  end;
end;

Código Delphi [-]
procedure combocompleChange(Sender: TObject);
begin
  case combocomple.ItemIndex of
    0: { muestras tabla para opción 0 }
    1: { muestras tabla para opción 1 }
    ...
    9: { muestras tabla para opción 9 }
  end;
end;

Código Delphi [-]
procedure combocomboChange(Sender: TObject);
begin
  case combocombo.ItemIndex of
     0: { muestras tabla para opción  0 }
     1: { muestras tabla para opción  1 }
    ...
    15: { muestras tabla para opción 15 }
  end;
end;

en comboEmergenciaChange abarcas las opciones de tu primer bloque pues si se entra a este evento es porque rgservicios.ItemIndex = 0, en combocomple abarcas las opciones de tu segundo bloque pues si se entra a este evento es porque rgservicios.ItemIndex = 1 y en combocomboChange abarcas las opciones de tu tercer bloque pues si se entra a este evento es porque rgservicios.ItemIndex = 2.

// Saludos
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 03:29:41.


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