Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
error con un reporte sql...

saludos a todos.

expongo mi duda, tengo un reporte que me imprime entradas o salidas seleccionandolo con un TradioGroup, este status es para una tabla de stock, eligiendo por fechas de inicio y final y dado caso por vendedor(siendo opcional si la queremos buscar por vendedor),
Ahora se require que se imprima tanto entradas y salidas, en el radio group le agrege un item "Ambas" (engloba E/S).

case grpVendedor.ItemIndex of
0 : strMovimiento := 'E'; // E = entrada S =salida
1 : strMovimiento := 'S';
2 : strMovimiento := 'A'; //ambas
end

Primero lanzo un vista previa con un procediemiento, este es codigo que me da un error de missing operator or semicolon

procedure
var
strSQL, strCondicion1, strCondicion2, strCondicion3, strCondicion4 : string;
begin
strSQL := 'SELECT '+
' CLIENTES.CLIENTE_COMERCIAL, '+
' STOCK.STOCK_NOMBRE, '+
' MOV_STOCK.MOVS_TIPO_MOV, '+
' MOV_STOCK.MOVS_ENTRADA, '+
' MOV_STOCK.MOVS_SALIDA, '+
' STOCK.STOCK_MILLARES, '+
' VENDEDORES.VENDEDOR_NOMBRE, '+
' MOV_STOCK.MOVS_FECHA_REG, '+
' STOCK.STOCK_LARGO, '+
' STOCK.STOCK_ANCHO, '+
' MOV_STOCK.MOVS_ESTADO '+
' FROM '+
' MOV_STOCK '+
' INNER JOIN STOCK ON (MOV_STOCK.MOVS_STOCK_ID = STOCK.STOCK_ID) '+
' INNER JOIN CLIENTES ON (STOCK.STOCK_CLIENTE_ID = CLIENTES.CLIENTE_ID) '+
' INNER JOIN VENDEDORES ON (CLIENTES.CLIENTE_VENDEDOR_ID = VENDEDORES.VENDEDOR_ID) ';
//MOVS_TIPO_MOV solo tiene el valor E o S
if Movimiento <> 'A' then
strCondicion1 := 'WHERE (MOV_STOCK.MOVS_TIPO_MOV =:TipoMov) '+
'AND(MOV_STOCK.MOVS_FECHA_REG BETWEEN :fInicio AND :fFinal) ' +
'AND(MOV_STOCK.MOVS_ESTADO = :Estado)'
else
if Movimiento = 'A' then //englobaria ambas
strCondicion1 := 'WHERE (MOV_STOCK.MOVS_TIPO_MOV ='E' AND MOV_STOCK.MOVS_TIPO_MOV ='S')'+ ----->error en 'E' y 'S'
' AND (MOV_STOCK.MOVS_FECHA_REG BETWEEN :fInicio AND :fFin) ' +
' AND (MOV_STOCK.MOVS_ESTADO =:Estado)';
if strVendedor <> '' then
strCondicion2 := 'AND (VENDEDORES.VENDEDOR_NOMBRE starting with :Parametro) ';
strCondicion3 := 'ORDER BY VENDEDORES.VENDEDOR_NOMBRE';
with qryReporteStock do
begin
Close;
SQL.Clear;
SQL.Add(strSQL);
SQL.Add(strCondicion1);
SQL.Add(strCondicion2);
SQL.Add(strCondicion3);
if Movimiento <> 'A' then
paramByName('TipoMov').AsString := Movimiento;
ParamByName('fInicio').AsString := fechaInicio;
ParamByName('fFinal').AsString := fechaFinal;
ParamByName('Estado').AsString := 'A';
if strVendedor <> '' then
ParamByName('Parametro').AsString := strVendedor;
Prepare;
Open;
if RecordCount <> 0 then
crea_destruye
else showmessage('No hay registros');
end
end; //fin del procedimeinto
les agradesco si me puede ayudar enque esta mal mi condicion.
Gracias Club.
Responder Con Cita
  #2  
Antiguo 03-05-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

Cita:
Empezado por uper
strCondicion1 := 'WHERE (MOV_STOCK.MOVS_TIPO_MOV ='E' AND MOV_STOCK.MOVS_TIPO_MOV ='S')'+ ----->error en 'E' y 'S'
' AND (MOV_STOCK.MOVS_FECHA_REG BETWEEN :fInicio AND :fFin) ' +
' AND (MOV_STOCK.MOVS_ESTADO =:Estado)';
Verifica aqui.

Donde esta la condiocn '... = 'E' ...';

para usas comillas simples en un cadena debe ser asi '... = ''E'' ...';
Nota. Noes doble comilla son dos comillas simples.

Ha una cosa hermano. Usas las etiquetas para que pueda entender tu pregunta. Por que nadie te va a responder asi ok.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
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 19:33:04.


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