PDA

Ver la Versión Completa : problemas de impresion con Qreport y SQL


viverosjosem
13-01-2023, 17:08:42
Hola Estimados.

Estoy migrando mis aplicaciones desde Paradox a SQL. Tengo un reporte muy sencillo, con cuatro bandas de detalle. Una banda para los titulos, una banda para agrupar por una expresion, una banda para el detalle de productos, y una banda para los totales. Este reporte muestra los detalles de venta de un cliente, y subTotaliza por mes.

Este reporte funciona perfecto con delphi y paradox. Pero ahora al trabajar con SQL-Firebird, al poner un valor en la "propiedad Expresion" (Campo: Mes) de la segunda banda (Banda tipo: TQRGroup), me aparece un mensaje que dice: "Operation not allowed on a unidirectional dataset". Si quito el valor en la propiedad "expresion", este funciona correctamente. Pero necesito sub-Totalizar por mes.

El archivo que estoy tratando de imprimir esta ordenado por el campo: Mes.

Alguna idea de que pasa? , y como solucionar esto?

Gracias de antemano.

Saludos.
Jose Miguel B.

Casimiro Notevi
13-01-2023, 20:07:05
El dataset que estás usando tiene la propiedad unidirectional deshabilitada, habilítala.

https://i.imgur.com/iq1d6yY.png

viverosjosem
13-01-2023, 23:15:43
Hola Casimiro.
Agradesco tu respuesta. Pero estoy usando Componentes DbExpres, y el DataSet no tiene esa propiedad que me indicas. :(

Saludos.
Jose Miguel.

Casimiro Notevi
14-01-2023, 10:14:08
Pues que yo recuerde, de forma predeterminada los dataset de DBExpress son unidereccionales, así que el problema debe venir de otro lugar a pesar de ese mensaje.

viverosjosem
15-01-2023, 16:35:22
Hola Casimiro.
E revisado todo e probado de distintas maneras y el problema es el mismo. El problema se produce solo si en la propiedad: "Expresion", de la Banda: "TQRGroup", va un campo que es parte de la consulta. (Tipodoc, Mes, Codigo, descrip, etc..) cualquiera de ellos presenta el error. Pero si en la propiedad "Expresion", va un campo que no es parte de la consulta, o dejo la propiedad vacia, no presenta el problema.

Esta es la consulta que estoy usando.


SQL_String.Close;

SQL_Text := 'SELECT DetFact.TipoDoc, DetFact.Rut, DetFact.CodAux, DetFact.Numero, ' +
'DetFact.FechaEmi, DetFact.Mes, DetFact.Codigo, DetFact.Descrip, DetFact.Cantidad, ' +
'DetFact.TotalLinDe, DetFact.Vendedor, Vendedores.Nombre ' +
'FROM DetFact ' +
'LEFT JOIN Vendedores ' +
'ON Vendedores.Codigo=DetFact.Vendedor ' +
'WHERE DetFact.FechaEmi>=' + QuotedStr( sFechaSel ) + ';';

SQL_String.CommandText := SQL_Text;
SQL_String.Open;




Alguna idea?

Saludos.
Jose Miguel.
:(

Casimiro Notevi
15-01-2023, 19:55:01
¿Y esa sentencia funciona?

viverosjosem
15-01-2023, 21:36:07
Si.
Funciona perfectamente.

El problema se produce en el reporte.

Como te comentaba. Cuando agrego en propiedad "Expresion", de la segunda banda (Banda tipo: TQRGroup), algun dato, como el campo: "Mes", para que subtotalize por mes, me presenta el mensaje de error. Si no agrego nada en esa propiedad, o agrego algun campo que no esta en la consulta, presenta el informe correspondiente, sin ningun tipo de error.

El problema es solo que no puedo subtotalizar un informe. :confused:

Alguna idea?

Gracias.

Saludos.
Jose Miguel.