Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Bases";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

El problema con la preparación de la solicitud y su salida en QReport. Encontrar ramas similares


Andrey Pogorelov   (2001-12-02 10:49) [0]

Mesa 3 disponible
Table1 Registro de animales
id
vid
categoría
--------------
id vid categoria
1, 1, 2
2, 1, 2
3, 2, 1
--------------
Table2 Especies de animales
id
nombre
--------------
1, Perros
2, Gatos
--------------
Table3 - Categorías de animales
id
nombre
--------------
1, Casero
2, sin hogar
--------------
Es necesario calcular el número de animales en la base de datos, el número de hogares y personas sin hogar por tipos y los resultados colocados en el QReport
esos se ponen en la forma
Tipo de personas sin hogar sin hogar
Perros 0 2
Gatos 1 0
Total: 3
La ayuda es muy necesaria, de antemano Muchas gracias.



asafr   (2001-12-03 15:14) [1]

Toma TQuery, llámelo, por ejemplo qr_Work. Escribiendo una solicitud:
SELECT VID, CATHEGORY, COUNT(*) AS SUM_ FROM TABLE1
GROUP BY VID, CATHEGORY
- este qr_Work se declara una fuente para QReport. Resultado de la consulta:
VID CATHEGORY SUM_
1 2 2
2 1 1

En QReport en DetailBand haces esto:
----------------------------------------
<- DetailHeader
Vid categoria sum_
----------------------------------------
<- Banda de detalle
[QRLabel1] [QRLabel2] [QRDBText1]
----------------------------------------
QRDBText1 - enlace al campo Sum_

En Eventos QRLabel1 escribes:
procedure TForm1.QRLabel1Print(sender: TObject; var Value: String);
begin
if qr_Work.FirldByName("vid").AsInteger=1 then QRLabel1.Caption:="Собаки"
else QRLabel1.Caption:="Кошки"
end;


Por consiguiente
procedure TForm1.QRLabel2Print(sender: TObject; var Value: String);
begin
if qr_Work.FirldByName("cathegory").AsInteger=1
then QRLabel2.Caption:="Домашнее"
else QRLabel2.Caption:="Бездомное"
end;



Bueno, TOTAL: - Se puede encontrar de varias maneras. Use QRExpr o en QRDBText1Print agregue los valores Sum_ de cada línea. Justo antes de imprimir, no olvide hacer Suma _: = 0, porque entonces los valores de cada impresión se agregarán entre sí.




Dick Gonsales   (2001-12-04 03:14) [2]

Solicitud
/ * Aquí, dependiendo de cómo quieras que se vea * /
/ * Opción 1 * /
SELECCIONE T3.name, T2.name, count (T1. *)
DESDE T3, T2, T1
DONDE T3.id = T1.categoria y T2.id = T1.vid
GRUPO POR T3.name, T2.name
UNIÓN
SELECCIONE T3.name, "Total", cuenta (T1. *)
/ * espacio para que funcione correctamente ordenado por * /
DESDE T3, T1
DONDE T3.id = T1.categoria
GRUPO POR T3.name
ORDEN POR T3.name
/ * Category1 View1 qty * /
/ * Category1 View2 qty * /
/ * Category1 Cantidad total * /
/ * Category2 View1 qty * /
/ * Category1 View2 qty * /
/ * Category1 Cantidad total * /

/ * Opción 2 * /
SELECCIONE T2.name, T3.name, count (T1. *)
DESDE T3, T2, T1
DONDE T3.id = T1.categoria y T2.id = T1.vid
GRUPO POR T2.name, T3.name
UNIÓN
SELECCIONE T2.name, "Total", cuenta (T1. *)
DESDE T2, T1
DONDE T2.id = T1.vid
GRUPO POR T2.name
ORDEN POR T2.name
/ * View1 Category1 qty * /
/ * View1 Category2 qty * /
/ * View1 Cantidad total * /
/ * View2 Category1 qty * /
/ * View2 Category2 qty * /
/ * View2 Cantidad total * /



Cuelga la solicitud en Informe y pinta campos,
pero en principio puedes usar
Delphi master para generar reporte
Usando el SELECT anterior y hará todo por ti.

La opción que ofrece asafr puede ser utilizada.
Si tienes pocas categorías y tipos y no van a cambiar,
porque Ellos son codificados duro Aquí no importa.



Páginas: 1 rama entera

Foro: "Bases";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.56 MB
Tiempo: 0.024 c
1-22155
Arte
2001-12-20 16:32
2002.01.08
¡Bloquea la carpeta!


1-22119
Socol
2001-12-15 10:45
2002.01.08
Ayuda con dos preguntas!


14-22406
VEG
2001-11-10 12:56
2002.01.08
Sucedió aquí conmigo diferente ...


6-22272
Shadow
2001-10-06 18:26
2002.01.08
Pregunta con zakovyrkoy!


1-22174
chva
2001-12-21 00:50
2002.01.08
Pausa en el trabajo





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español