![]() |
Como extraer inforcion de un campo en dos columnas de un dbgrid!!!!
Buenos Dias
Mi dilema es que de un campo de una tabla tengo que sacar dos columnas pero la info que debe haber en una no debe salir en la otra. Ejemplo: tabla->MO12..... campo->MONTOMOV . . . . .Columns de DBGRID-> DEBE . . . . . HABER . . . . . ------------ . . . . . . . . . . . . . . . . . . . --------- . . ------------ inform-> 300.16 . . . . . . . . . . . . . . . . . . . . . . . 300.16 . . . . . . 200.34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200.34 . . . . . . . 16.34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16.34 en la tabla hay otro campo que clasifica los numeros del MONTOMOV: campo->DEBE_HABER . . . . . .------------- Iinform-> . . .D . . . . . . . . . .H . . . . . . . . . .H Y no se como hacer para que el DBGRID agarre la tabla MONTOMOV y la divida en 2 y los clasifique. Hise el siguiiente codigo: procedure TfrmModelo1.FormShow(Sender: TObject); begin Tab:= 'MO' + FormatDateTime('mmyy', Now) + '01'; query1.sql.text:= 'SELECT NUM_CTA,NUMDEPTO,CONCEP_PO,TIPCAMBIO, CASE WHEN DEBE_HABER='+QUOTEDSTR('D')+' THEN SELECT MONTOMOV as DEBE FROM '+Tab+' END, CASE WHEN DEBE_HABER='+QUOTEDSTR('H')+' THEN SELECT MONTOMOV as HABER FROM '+Tab+' END from '+Tab+' WHERE DEBE_HABER= '+QUOTEDSTR('H')+' OR DEBE_HABER= '+QUOTEDSTR('D')+''; Query1.Active:=True; end; Pero me tira error GRACIAS DE ANTEMANO |
Hola jomah.
Por favor, cuando incluyas código en tus mensaje usa TAG's, su uso es: ![]() Saludos y gracias por tu colaboración. |
Cita:
Recuerda nuestra guía de estilo, gracias. |
Hola
Cita:
No se que cuesta poner TODA la información. No me habéis dicho desde cuando cobráis por letra.:):eek: Saludos |
y el errorn que me da cuando intenta entrar en la informacion de la tablame dice token: when |
Hola
Solo por arreglar algo esta consulta, sin modificarla. Saludos |
bueno en el codigo pegado dice whem no wheN, tal vez sea el error
|
no el error me sigue apareciendo y dice asi:
invalid use of keyword token: WHEN Line number: 1. |
Hola.
La sintáxis (al menos en Firebird) es: Código:
CASE
Saludos. |
no el error todavia me sigue apareciendo
ya nno ayo que acer con ese case |
Cita:
|
que ya no allo que hacer con ese 'case'
|
¿Puedes copiar aquí exactamente el código que estás usando?
|
|
Hola
Son dos condiciones: Saludos |
Hola
Con Case es igual, son dos condiciones, si no es una entonces es la otra: Saludos |
Hola jomah.
Te marcaba error en "When" porque cerrabas el Case prematuramente. Según te mostró ecfisa en mensajes anteriores, el End del case va después de todas las opciones "When". O sea que no es un "End" por cada When, sino un sólo "End" al final del Case. :) En cuanto a la marca Acer de tu computadora, no creo que sea factor en este caso. ;) |
Hola
Otra opción: No estoy muy seguro de esta, me gustan mas las otras dos. Saludos |
gracias muchas gracias por la ayuda
ahora ya no me tira error en el when ahora me dice token: = osea error en el igual |
Hola
Tokem....... Que ?. No creo que sea solo eso el error, que dice el error completo ?. Cual de todos los codigos te ha funcionado, asi nos entendemos mejor ? Saludos |
Hola
Una pregunta bien tonta: Donde declaras la variable Tab ?. Saludos Edito: Me respondo, global. |
El Error Dice :
Invalid Use Of Keywork Token: = Line Number: 1. Ese Es Lo Que Dice El Error |
Hola
Puedes hacer esta prueba para descartar cosas: ; Saludos |
Hola
Cualquiera de estas dos funciona perfectamente:
o esta, para mi mas sencilla:
Las dos generan el mismo resultado. NO se puede, o por lo menos en Firebird no me dejo poner el nombre del campo, creo que ese es el problema. Saludos |
Hola jomah.
De este modo también funciona: Con todas las propuestas que has recibido, logicamente no podía ser un código muy original... :p:) Saludos. |
Cuando realicéis una SQL, que os cuesta hacerla bien, a la hora de detectar un error, no será mejor si la SQL está bien distribuida.
Esto es para SQL SERVER, si es lo que estas usando y sino encuentra la forma correcta para tu motor. upsss, creo que ecfisa se me ha adelantado Un saludo. |
el codigo lo modifique ya que al ser tablas paradox no me permite utilizar case y solo agunas veces el if lo modifique de la siguiente manera:
espero que me puedan ayudar porque aun no me muestra nada en los campos nuevos que cree en el clienmtdataset y tambien muchas gracias por la ayuda hasta el momento |
| La franja horaria es GMT +2. Ahora son las 15:23:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi