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 19-09-2005
Avatar de FunBit
FunBit FunBit is offline
Miembro
 
Registrado: jun 2005
Ubicación: Santa Maria d'Oló
Posts: 572
Poder: 20
FunBit Va por buen camino
Código Delphi [-]
while not Eof do begin
  if DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'A' then
    begin
    ... //Acciones que deseas si el caracter obtenido es 'A'
    end else begin
    if  DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'PA' then
      begin
      ...//Acciones que deseas si el caracter obtenido es 'PA'
      end else begin
      ...
 end;
y así succesivamente con las 6 posibles opciones que tienes.

Es eso lo que preguntas?

Un saludo!
__________________
Brot Psicòtik
Responder Con Cita
  #2  
Antiguo 19-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Cita:
Empezado por FunBit
Código Delphi [-]
while not Eof do begin
    if DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'A' then
      begin
      ... //Acciones que deseas si el caracter obtenido es 'A'
      end else begin
      if  DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'PA' then
        begin
        ...//Acciones que deseas si el caracter obtenido es 'PA'
        end else begin
        ...
   end;
y así succesivamente con las 6 posibles opciones que tienes.

Es eso lo que preguntas?

Un saludo!
Gracias por la resupuesta.

El problema con esa solucion que me planteas, es que si primero me sale 'A', me creara la fila Alternadores y si despues me sale 'PA', me creara otra fila llamada Alternadores cosa que no quiero, dado que 'A' se refiere a la maquina Alternadores y 'PA' se refiere a las piezas que componen un alternador, estan contempladas en la misma fila.

Un posible resultado seria: 'A','PA','M,'PM','C','PC'

y Me tendria que generar solo 3 filas:

Alternadores
M.C.Continua
M.Arranque

Es decir, tanto si me sale una, la otra o las dos, solo habra una fila llamada Alternadores.

Mi unica intencion es intentar encontrar una forma elegante de hacerlo, que usando el if y funciones, mas o menos se por donde tirar, pero con lo novato que soy, a lo mejor hay alguna funcion que me resuelve esto de una manera mas clara.

Última edición por papulo fecha: 19-09-2005 a las 12:53:09. Razón: Matizando
Responder Con Cita
  #3  
Antiguo 19-09-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Diferentes opciones:

1- Por que no lo haces con SQL (la sintaxis puede variar dependiendo del motor)?

Código SQL [-]
 SELECT * FROM TABLA WHERE Campo IN ('A','PA','M,'PM','C','PC')

2- Puedes usar las funciones de RTI de Delphi y utilizar una enumeracion, que haga:

Código Delphi [-]
 type
   TCosasEnum = (Alternadores,PiezasAlternador...) ;
  
  
  uses TypInfo;
 
  var s: string;
 
  s := GetEnumName(TypeInfo(TCosasEnum ),
                    integer(tpDelphi)) ;
  
  //s='Alternadores'
 
 
 
 //Devolver a ENUM
 
 Cosa := TCosasEnum(GetEnumValue(TypeInfo(TCosasEnum ),s)) ;

Puedes crear un objeto, que interno maneje un Array. Me gusta un poco mas esto, porque es mas extensible (y solo si lo del SQL no se puede, aunque lo dudo)

Código Delphi [-]
 
 ObjetoDeCosas.EstaEnTipos(DataModule2.IBSQL1.FieldByName('ref_type').AsString

Ademas, la sintaxis del if se escribe de forma mas clara y sin tantas anidaciones

Código Delphi [-]
 if DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'A' then
begin
  ... //Acciones que deseas si el caracter obtenido es 'A'
end else begin
if  DataModule2.IBSQL1.FieldByName('ref_type').AsString = 'PA' then
begin
   ...//Acciones que deseas si el caracter obtenido es 'PA'
end else begin end;//if
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 19-09-2005
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
La consulta en SQL me ha venido genial, si bien, el problema es que tengo 3 funciones que hacer, 2 condiciones por funcion que las cumplen y una excluye a la otra.

O sea, tanto si sale 'A' como 'PA' se realizara la funcion de Dibujar la fila Alternadores, si bien, si se cumple una, 'A' o 'PA', la otra no.

Por eso las soluciones que me dais no me acban de convencer.

Intentare poner un booleano en la condicion, para que una vez dibujada la fila, si se vuelve a cumplir los requisitos para dibujarla de nuevo, vea que ya lo esta y no la duplique.

Ya posteare la chapuza que me salga.
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 15:23:06.


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