Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];

Вниз

Кросс-отчет в FastReport   Найти похожие ветки 

 
kirat ©   (2010-09-09 16:15) [0]

Извините если не в тему. Столкнулся с проблемой. Есть 3 таблички
CREATE TABLE CLIENT (
   ID      INTEGER,
   NAME_S  VARCHAR(30),
   MEMO    VARCHAR(50)
);
ID NAME_S MEMO

1 Klient1
2 Klient2
3 Klient3
4 Klient4
5 Klient5

CREATE TABLE TOVAR (
   ID      INTEGER,
   NAME_S  VARCHAR(30)
);

ID NAME_S

1 Tovar1
2 Tovar2
3 Tovar3
4 Tovar4
5 Tovar5

CREATE TABLE PRICE (
   ID        INTEGER,
   IDCLIENT  INTEGER,
   IDTOVAR   INTEGER,
   CENA      INTEGER,
   KOL       NUMERIC(15,2)
);

ID IDCLIENT IDTOVAR CENA           KOL
   
1   1             1        12,00          1,00
2   1             4         13,00          2,00
3   2              5        14,00          3,00
4   3             2       151,00          4,00
5   3             3        16,00          5,00
6   4             2        17,00          6,00
7   4             1       178,00          7,00
8   5             2        8,00          8,00
9   5             3        7,00          9,00
10   5             4        6,00         10,00

Как мне построить отчет чтобы показывало какой клиент сколько товара заказал.
Примерно в виде
[img]http://www.tarik.nm.ru/rep.JPG[/img]

Громадное спасибо!


 
kirat ©   (2010-09-09 16:19) [1]

http://www.tarik.nm.ru/rep.JPG


 
kirat ©   (2010-09-10 13:21) [2]

Ну кто нибудь ПОДСКАЖИТЕ ПОЖАЛУЙСТА!


 
George ©   (2010-09-10 13:24) [3]

В Microsoft SQL"ах есть инструкция TRANSFORM..PIVOT для таких целей. Вроде бы.


 
George ©   (2010-09-10 13:28) [4]


> George ©   (10.09.10 13:24) [3]

Вру немножко, нужен просто оператор PIVOT, который есть в MS SQL Server не ниже 2005ой версии. В остальных видимо курсором бегать и преобразовывать. Я не знаю, я бы так как-то делал. Ваще че за СУБД то?


 
Inovet ©   (2010-09-10 13:46) [5]

Ну а чем кроссотчёт из ФР не устроил. Где, кстати, сколько заказали клиенты, это что ли TABLE PRICE?
Делай запрос модно и прямо в ФР чтобы получилось
Клиент, наименование, количество
потом в кросс ФР его и подсовывай.


 
Inovet ©   (2010-09-10 13:47) [6]

> [5] Inovet ©   (10.09.10 13:46)
> модно

можно


 
kirat ©   (2010-09-10 16:33) [7]

firebird 1.5 делаю я из ФР, но все накидал накидал а выдает чепуху.


 
Inovet ©   (2010-09-10 16:58) [8]

> [7] kirat ©   (10.09.10 16:33)
> firebird 1.5 делаю я из ФР, но все накидал накидал а выдает чепуху.

Что возвращает запрос проверял? И ФР-то какой версии?


 
Kirat ©   (2010-09-10 18:38) [9]

С кросс отчетами сталкиваюсь впервые.
Ну смотрите, если я правильно понял. Я делаю
на Query1
select client.name_s from price, client where client.id=price.idclient order by client.id
на Query2
select  * from price order by idclient
В ФР ложу MasterData источник Query1, потом горизонтальный MasterData источник Query2 на пересечение ставлю Query2.Kol
Выводит мне вот такое

http://tarik.nm.ru/rep2.JPG

Что и где я не прав? Как мне его построить?
Громадное спасибо.


 
kirat ©   (2010-09-10 18:40) [10]

ФР Free или ФР3.24


 
Inovet ©   (2010-09-10 18:50) [11]

> [10] kirat ©   (10.09.10 18:40)
> ФР Free или ФР3.24

В FR Free не знаю, но вроде тоже есть новый кросс. В FR 3.x, 4.x есть специальный "компонент" на палитре. Вот его и пользуй. Он работает с одним набором, как я выше показал.
Имя_клиента, Имя_товара, Количество
Или больше полей, которые можно группировать по разному.


 
boriskb ©   (2010-09-10 19:02) [12]

Кросс отчет во ФР штука мощная и удобная.
Тем не менее пару раз мне приходилось для создания нужного отчета создавать временную таблицу.
Благо объем был удобоваримый.
То есть из нескольких таблиц выдергивал нужные поля (в том числе и вычислимые) а потом уже отчет по новой таблице делал.


 
PEAKTOP ©   (2010-09-11 13:20) [13]

http://sql.ru/forum/actualthread.aspx?tid=787898&pg=-1


 
Inovet ©   (2010-09-11 14:04) [14]

> [13] PEAKTOP ©   (11.09.10 13:20)

Хм.
Короче, автор, в запросе таблицу PRICE свяжи с помощью LEFT JOIN со справочными CLIENT и TOVAR, заодно и сгруппируй как надо SUM() и GROUP BY, чтобы не напрягать ФР.


 
kirat ©   (2010-09-13 10:43) [15]

Всем большое спасибо за помощь! Разобрался что к чему.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
15-1283798468
Юрий Зотов
2010-09-06 22:41
2010.12.19
На этот раз - транзакции


15-1284018704
12
2010-09-09 11:51
2010.12.19
оцените изврат


11-1226657574
Xenus
2008-11-14 13:12
2010.12.19
Timage или что то подобное


11-1227267675
Sergey1991
2008-11-21 14:41
2010.12.19
Неправильно отображаются большие числа в TTable


2-1285589072
harikolo
2010-09-27 16:04
2010.12.19
Чтение и запись данных в Interbase через Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский