![]() |
*.EoF = mas de una condicion para un solo resultado
Quiero hacer algo asi, si es posible. Juntar dos condiciones para un if y que me realicen la misma operacion, dado que no puedo usar case/of porque son strings y en la ayuda me especifica que con ese tipo de variables no funciona. ¿Alguna sugerencia? |
Se puede usar el operador in si los resultados fueran elementos de un conjunto enumerado, aunque claro, entonces también podrías usar el case. Cuando me encuentro algo así suelo usar el Pos, que me indica si una subacadena se encuentra dentro de una cadena:
Código:
Saludos. |
Post Data:
Se me había olvidado el AsString: Código:
|
Por otra parte ...
es equivalente a las condiciones anidadas...
Saludos!! |
No comprendo bien como funciona lo que me explicas, pero sere mas claro con mi problema.
Yo estoy realizando una consulta con IBSQL sobre una BD, cuyos resultados pueden ser 'A', 'PA', 'M', 'PM', 'C' y 'PC'. La consulta sobre los resultados lo hago secuencial, de principio a fin, con la condicion para terminar. Mi idea es comparar cada resultado de la consulta con los 6 resultados. Ademas, quiero que, si ya ha detectado primero 'A' y ha dibujado la columna correspondiente a 'A' (Alternadores), cuando localice 'PA'(Partes de Alternadores), omita la parte de creacion de la columna, dado que sino, tengo dos veces la columna alternadores. En caso que no exista 'A' pero si 'PA' que me cree la columna predefinida para 'A'. En caso de que me haya explicado fatal, preguntad que intentare ser mas claro. PD: La "ayuda" no me ha ayudado demasiado... jejeje. (De buen rollito, Roman) |
y así succesivamente con las 6 posibles opciones que tienes. Es eso lo que preguntas? Un saludo! |
Cita:
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. |
Diferentes opciones:
1- Por que no lo haces con SQL (la sintaxis puede variar dependiendo del motor)?
2- Puedes usar las funciones de RTI de Delphi y utilizar una enumeracion, que haga:
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)
Ademas, la sintaxis del if se escribe de forma mas clara y sin tantas anidaciones
|
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. |
La franja horaria es GMT +2. Ahora son las 00:24:34. |
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