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

Вниз

Несандартное отображение данных   Найти похожие ветки 

 
Russel   (2004-08-11 11:41) [0]

Добрый день всем.
Сложно эту проблему описать кратко, но все-таки попробую...
В БД есть много табличек. Нас интересуют две: заказы и продкция.
в первой содержится информация о заказах, во второй - о продукции. Связаны они кодом продукции.
Нужно отображать таблице примерно так:
             заказ_1   заказ_2 ...  заказ_n
____________________________________________
продукция 1     0          2            0  
продукция 2     5          2            0
...
продукция n     1          2            1
____________________________________________
цифры - заказанное количество.

Проблема в том, что количество заказов постоянно меняется.
И sql тут не подходит вроде бы.
Собственно вопрос: с помощью чего можно изловчиться, чобы отображать это как требуется?
Если что не понятно в вопросе, огу объяснить подробнее.
Заранее спасибо.


 
stas_x   (2004-08-11 12:06) [1]

Перекрестный запрос должен помочь !
Как его сделать зависит от СУБД.


 
Sergey13 ©   (2004-08-11 12:13) [2]

2Russel   (11.08.04 11:41)
ИМХО.
Это не нестандартное отображение, а стандартно неправильное отображение. Это удобно когда по горизонтали конечное (и не очень большое) число элементов. Например дни месяца. Раз заказов до фига, то прикинь во что выльется такой показ.


 
Sergey13 ©   (2004-08-11 18:02) [3]

2Russel   (11.08.04 11:41)
А че по почте то? Я ее и смотрю то редко. Не надо. Тем более, что я не Оракул Дельфийский, и говорю не истину в последней инстанции (иногда 8-).

>Какое отображение тогда будет правильным? Заказов может быть, скажем,
до сотни. Продукции - больше. Показать это можно. Главное, как получить
данные дл такого показа?

А зачем смешивать бульдога и носорога? Это две разных аналитики (или что там у тебя). Первый по продукции, второй по заказам. Показать можно много чего. Главное что с этим показом делать. Или у тебя проекционный телевизор вместо монитора? 8-)


 
Мастер ©   (2004-08-11 18:07) [4]

>Russel   (11.08.04 11:41)  
Посмотри в сторону Decision Cube.


 
Russel   (2004-08-12 09:30) [5]

2Sergey13:
>Это две разных аналитики (или что там у тебя). Первый по продукции, второй по заказам. Показать можно много чего. Главное что с этим показом делать. Или у тебя проекционный телевизор вместо монитора? 8-)

Нет, монитор :) Но можно показать одновременно, скажем, 10 заказов. Или 5. Чтоб на экран влезали. Но как показать? Запрос, или что еще? Я в ступоре что-то :(


 
Соловьев ©   (2004-08-12 09:36) [6]

http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/treasury/nxdbgrid.htm


 
Ega23 ©   (2004-08-12 09:36) [7]

Russel   (12.08.04 09:30) [5]

СУБД какая? Для MS SQL я такую фигню как-то раз делал, правда крови мне это стоило...


 
Russel   (2004-08-12 09:37) [8]

2Мастер:
Слыхал я про Decision Cube. Проблема в том, что он только под BDE, как я понял. Мне это не подходит. Но на вский случай брось, если можешь, ссылок, где про него почитать можно. Спасибо.


 
Sergey13 ©   (2004-08-12 09:37) [9]

2[5] Russel   (12.08.04 09:30)
>Запрос, или что еще?
Насколько я слышал Аксес может делать крос-запросы или как там они называются. Фаст репорт может делать крос-отчеты. Но по большому счету это все может приемлемо работать только на небольшом объеме данных. ИМХО. Делать можно и ручками - вложенными циклами заполняя нечто вроде RxMemoryData (я так делал) или нечто похожее. Но не советую. Лучше 2 читаемых отчета чем один нечитаемый.


 
Rule ©   (2004-08-12 09:39) [10]

А я бы координалонь не так сделал, я бы просто вывел в одной таблице список заказов, а во второй тот товар который был заказан и количество, естественно эти 2 таблицы связаны мастер-детайлом, причем главная таблица - это таблица с заказами а подчиненная - это таблица с товарами в данном заказе, вот и все, чего велосипед то придумывать ...
И отчеты таким образом строить и нагляднее намного


 
Russel   (2004-08-12 09:43) [11]

Постараюсь кратенько ответить всем.
СУБД у меня DBISAM.
Отчеты тут не подходят - надо предоставить воможность юзеру и вносить данные - сколько продукции по какому заказу отгрузить.


 
Ega23 ©   (2004-08-12 09:43) [12]

Rule ©   (12.08.04 09:39) [10]

Я бы тоже так сделал, но заказчик ТРЕБОВАЛ именно так, причём с возможностью редактирования количества товара в каждой ячейке с последующим сохранением в базу.


 
Ega23 ©   (2004-08-12 09:46) [13]

Russel   (12.08.04 09:43) [11]

Я делал так: на клиенте делал подзапрос - сколько заказов за такой-то день. Дальше генерил динамический запрос, объединяя данные через JOIN, потом его на сервер.


 
Danilka ©   (2004-08-12 09:47) [14]

[11] Russel   (12.08.04 09:43)
[12] Ega23 ©   (12.08.04 09:43)

Кошмар! :))

Ну, тогда, как вариант, сделать простой запрос с тремя колонками: продукция, заказ и количество, результат запроса вставить в StringGrid или его наследника.


 
Russel   (2004-08-12 09:48) [15]

Вот именно.
У юзера уже есть нечто, что кое-как это все делает на Excel"e.
И есть требование, чтоб интерфейс был почти такой же :(((


 
Ega23 ©   (2004-08-12 09:51) [16]

Кошмар! :))

Угу. Когда товаров ~2500 и заказов около 100 в день. Вот и получается выборка 100х2500...


 
Russel   (2004-08-12 09:54) [17]

[13] Ega23
А редактирование как делал? Потому что мне именно такое и надо...
Ну и морока с этим делом :(


 
Russel   (2004-08-12 09:59) [18]

Ну, товаров у меня около 1000, заказов поменьше - 5-10 в день... Т.е. выборка поменьше будет. Но легче на душе от этого не становится :)


 
Sergey13 ©   (2004-08-12 09:59) [19]

2[17] Russel   (12.08.04 09:54)
Сажи начальству что для нормальной работы по такой схеме надо сервак штук за 20 баксов и сетку гигабитную. Но ты сможешь сделать немного по другому, но на текущей конфигурации. 8-)


 
Russel   (2004-08-12 10:06) [20]

:)))
Начальство платит за то, чтобы работало как хочется юзерам и на существующем оборудовании... Но может стоит с юзерами побеседовать...
Спасибо за помощь. Буду осмысливать и пробовать :)


 
Danilka ©   (2004-08-12 10:07) [21]

[16] Ega23 ©   (12.08.04 09:51)
Мда..

Все-таки, думаю, наиболее правильное - стандартное решение: [10] Rule ©   (12.08.04 09:39)
Но, конечно, тут основная проблема заказчику мозги вправить, который привык к экселю.


 
Ega23 ©   (2004-08-12 10:11) [22]

2 Russel   (12.08.04 09:54) [17]

Редактирование - в ClientDataSet, вычислял, какая ячейка изменилась, помечал её для изменения; потом по всем помеченным прогонял процедуру апдейта...

В общем, ничего хорошего...

2 Danilka ©   (12.08.04 10:07) [21]

Конечно это наиболее правильное решение. Заказчику я пытался объяснить, что выборка будет очень долгой, редактирование неудобным  и т.п. В общем проявил чудеса дипломатии, но тщенто: "Пусть долго, зато привычно."


 
Russel   (2004-08-12 10:22) [23]

2Ega23 ©   (12.08.04 10:11) [22]
Нда. Ладно, буду сражаться, авось, удастся юзеров переубедить...

2All. Спасибо за помощь. Удачи :)



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

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

Наверх




Память: 0.5 MB
Время: 0.036 c
6-1088602619
maxistent
2004-06-30 17:36
2004.09.05
Связь компов через INTERNET


1-1092821913
Mox Fulder
2004-08-18 13:38
2004.09.05
Minimize


14-1092384888
User_OKA
2004-08-13 12:14
2004.09.05
Полифония wav


3-1091771361
strelok-47
2004-08-06 09:49
2004.09.05
Как перерисовать конкретную ячейку грида, а не весь грид?


14-1092908033
Ega23
2004-08-19 13:33
2004.09.05
Зацепило сильно...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский