![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несандартное отображение данных [D5]
Russel © (2004-08-11 11:41:00)Добрый день всем.
Сложно эту проблему описать кратко, но все-таки попробую...
В БД есть много табличек. Нас интересуют две: заказы и продкция.
в первой содержится информация о заказах, во второй - о продукции. Связаны они кодом продукции.
Нужно отображать таблице примерно так:
заказ_1 заказ_2 ... заказ_n
____________________________________________
продукция 1 0 2 0
продукция 2 5 2 0
...
продукция n 1 2 1
____________________________________________
цифры - заказанное количество.
Проблема в том, что количество заказов постоянно меняется.
И sql тут не подходит вроде бы.
Собственно вопрос: с помощью чего можно изловчиться, чобы отображать это как требуется?
Если что не понятно в вопросе, огу объяснить подробнее.
Заранее спасибо.
Russel (2004-08-12 10:22:00) [1]2Ega23 © (12.08.04 10:11) [22]
Нда. Ладно, буду сражаться, авось, удастся юзеров переубедить...
2All. Спасибо за помощь. Удачи :)
Ega23 (2004-08-12 10:11:00) [2]2 Russel (12.08.04 09:54) [17]
Редактирование - в ClientDataSet, вычислял, какая ячейка изменилась, помечал её для изменения; потом по всем помеченным прогонял процедуру апдейта...
В общем, ничего хорошего...
2 Danilka © (12.08.04 10:07) [21]
Конечно это наиболее правильное решение. Заказчику я пытался объяснить, что выборка будет очень долгой, редактирование неудобным и т.п. В общем проявил чудеса дипломатии, но тщенто: "Пусть долго, зато привычно."
Danilka (2004-08-12 10:07:00) [3][16] Ega23 © (12.08.04 09:51)
Мда..
Все-таки, думаю, наиболее правильное - стандартное решение: [10] Rule © (12.08.04 09:39)
Но, конечно, тут основная проблема заказчику мозги вправить, который привык к экселю.
Russel (2004-08-12 10:06:00) [4]:)))
Начальство платит за то, чтобы работало как хочется юзерам и на существующем оборудовании... Но может стоит с юзерами побеседовать...
Спасибо за помощь. Буду осмысливать и пробовать :)
Sergey13 (2004-08-12 09:59:00) [5]2[17] Russel (12.08.04 09:54)
Сажи начальству что для нормальной работы по такой схеме надо сервак штук за 20 баксов и сетку гигабитную. Но ты сможешь сделать немного по другому, но на текущей конфигурации. 8-)
Russel (2004-08-12 09:59:00) [6]Ну, товаров у меня около 1000, заказов поменьше - 5-10 в день... Т.е. выборка поменьше будет. Но легче на душе от этого не становится :)
Russel (2004-08-12 09:54:00) [7][13] Ega23
А редактирование как делал? Потому что мне именно такое и надо...
Ну и морока с этим делом :(
Ega23 (2004-08-12 09:51:00) [8]Кошмар! :))
Угу. Когда товаров ~2500 и заказов около 100 в день. Вот и получается выборка 100х2500...
Russel (2004-08-12 09:48:00) [9]Вот именно.
У юзера уже есть нечто, что кое-как это все делает на Excel'e.
И есть требование, чтоб интерфейс был почти такой же :(((
Danilka (2004-08-12 09:47:00) [10][11] Russel (12.08.04 09:43)
[12] Ega23 © (12.08.04 09:43)
Кошмар! :))
Ну, тогда, как вариант, сделать простой запрос с тремя колонками: продукция, заказ и количество, результат запроса вставить в StringGrid или его наследника.
Ega23 (2004-08-12 09:46:00) [11]Russel (12.08.04 09:43) [11]
Я делал так: на клиенте делал подзапрос - сколько заказов за такой-то день. Дальше генерил динамический запрос, объединяя данные через JOIN, потом его на сервер.
Ega23 (2004-08-12 09:43:00) [12]Rule © (12.08.04 09:39) [10]
Я бы тоже так сделал, но заказчик ТРЕБОВАЛ именно так, причём с возможностью редактирования количества товара в каждой ячейке с последующим сохранением в базу.
Russel (2004-08-12 09:43:00) [13]Постараюсь кратенько ответить всем.
СУБД у меня DBISAM.
Отчеты тут не подходят - надо предоставить воможность юзеру и вносить данные - сколько продукции по какому заказу отгрузить.
Rule (2004-08-12 09:39:00) [14]А я бы координалонь не так сделал, я бы просто вывел в одной таблице список заказов, а во второй тот товар который был заказан и количество, естественно эти 2 таблицы связаны мастер-детайлом, причем главная таблица - это таблица с заказами а подчиненная - это таблица с товарами в данном заказе, вот и все, чего велосипед то придумывать ...
И отчеты таким образом строить и нагляднее намного
Sergey13 (2004-08-12 09:37:00) [15]2[5] Russel (12.08.04 09:30)
>Запрос, или что еще?
Насколько я слышал Аксес может делать крос-запросы или как там они называются. Фаст репорт может делать крос-отчеты. Но по большому счету это все может приемлемо работать только на небольшом объеме данных. ИМХО. Делать можно и ручками - вложенными циклами заполняя нечто вроде RxMemoryData (я так делал) или нечто похожее. Но не советую. Лучше 2 читаемых отчета чем один нечитаемый.
Russel (2004-08-12 09:37:00) [16]2Мастер:
Слыхал я про Decision Cube. Проблема в том, что он только под BDE, как я понял. Мне это не подходит. Но на вский случай брось, если можешь, ссылок, где про него почитать можно. Спасибо.
Ega23 (2004-08-12 09:36:00) [17]Russel (12.08.04 09:30) [5]
СУБД какая? Для MS SQL я такую фигню как-то раз делал, правда крови мне это стоило...
Соловьев (2004-08-12 09:36:00) [18]http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/treasury/nxdbgrid.htm
Russel (2004-08-12 09:30:00) [19]2Sergey13:
>Это две разных аналитики (или что там у тебя). Первый по продукции, второй по заказам. Показать можно много чего. Главное что с этим показом делать. Или у тебя проекционный телевизор вместо монитора? 8-)
Нет, монитор :) Но можно показать одновременно, скажем, 10 заказов. Или 5. Чтоб на экран влезали. Но как показать? Запрос, или что еще? Я в ступоре что-то :(
Мастер (2004-08-11 18:07:00) [20]>Russel (11.08.04 11:41)
Посмотри в сторону Decision Cube.