Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.04;
Скачать: CL | DM;

Вниз

Custom Grid   Найти похожие ветки 

 
BlankAlex ©   (2002-02-11 10:58) [0]

Здравствуйте, уважаемые мастера.
Мне необходимо написать свой Grid, в котором колонками д.б. годы, кварталы, месяцы, дни и т.д. При этом юзер сам решает детализация до какого уровня ему нужна, т.е. Grid должен перестраиваться молниеносно (при этом в кажой ячейке еще отображаются графические данные). Кто когда-нибудь работал в сфере разработки приложений для сетевого планирования, подскажите. М.б. у кого уже есть наработки?


 
BlankAlex ©   (2002-02-11 12:19) [1]

Мой вопрос настолько глуп, что никто даже опускается до такого уровня?


 
Юрий Зотов ©   (2002-02-11 13:16) [2]

Вопрос не глуп, он просто не совсем понятен. Попробую ответить на похожий вопрос - как сделать TDBGrid с любой функциональностью колонок.

1. Пишете свою колонку (потомок TColumn), в которую и запихиваете все, что эта новая колонка должна уметь.

2. Пишете свою коллекцию этих колонок (по образцу TDBGridColumns), в которую тоже можно добавить все, что считаете нужным.

3. Пишете свой потомок TCustomDBGrid. По минимуму, в нем надо заместить метод CreateColumns, в котором и создаете колонки своего класса. Естественно, опять же никто не мешает добавить в новый компонент все, что угодно.


Вот и вся наука, а образец можно посмотреть в VCL. Также рекомендую прочитать статью "Коллекции и работа с ними" ( http://delphi.vitpc.com раздел "Hello, World!")


 
Ura   (2002-02-11 14:23) [3]

А может нужно использовать не GRID?
1. Неравномерная ширина столбца в зависимости от строки!!!
2. Хранение данных в гриде не очень хорошо будет реализовано для сетевой модели. Т.е. у тебя будет еще отдельная структура И СКОРЕЕ ВСЕГО ОНА БУДЕТ НАПОМИНАТЬ ТРЕЕВЬЮ!!!


 
BlankAlex ©   (2002-02-11 16:51) [4]

Все не так просто. На экране должен присутствовать и TreeView, в котором отображается иерархия работ и что-то??? для отображения длительности и последовательности этих самых работ. Я тоже не могу докумекать, что это должно быть. Действительно при режиме показа месяц-неделя идет смещение столбцов, а как такой вариант отрисовывать я не знаю. Кто подскажет от чего вообще отталкиваться?


 
Polevi ©   (2002-02-11 17:38) [5]

Насколько я понимаю нужен аналог сводных таблиц в Excel - можно исользовать ActiveX PivotTable из Microsoft Web Components - входит в поставку MS Office 2000


 
Ura   (2002-02-11 18:19) [6]

Посмотри MS проджект. Там все это уже написано!!!
По идее тебе нужно...
1. Хранилище древовидное + хранилище связей со сылками
2. Представление древоводного хранилища в виде графа (отображает зависимости работ + позволит добавить работу и ее связи ,и определить ее свойства )
3. Представление работ по временному графику (то что ты хочешь).
Могу кинуть недоделаный проект.


 
BlankAlex ©   (2002-02-13 09:24) [7]

> Ura.
Спасибо, MS Project я видел. Именно это все мне и надо сделать, вопрос "зачем" не ко мне, а к боссу.
По поводу дерева мне вроде все ясно, трудности как раз с представлением работ по временному графику. Если ты с этим работал, и есть наработки или идеи, сбрось мне пожалуйста на BlankAlex@mail.ru


 
Sergey13 ©   (2002-02-13 10:21) [8]

А мне кажется это надуманныя проблема навеянная придуманым "красивым" интерфейсом. Твоя программа будет 45% времени рисовать эту самую гридину, 45% вычислять все поля для выбраного вида детализации и только 10% на собственно полезный функционал. Цифры могут меняться, но, скорее всего, первые 2 будут расти а третья уменьшаться. И все из за того что ты (или твой шеф) напридумывали себе "красивый UI". Кто, например, мешает пользователю сначала выбрать уровень детализации, а потом ее(детализацию) увидеть(в простом гриде). И вообще такие вещи лучше(и проще, а значит производительнее) делать в разных контролах(не обязательно гридах). Юзера не оценят твои навороты - им чем проще тем лучше. И в этом есть какая то сермяжная правдаю. По моему не надо писать такой грид - надо постараться убедиить босса в ошибочности его требований. Для этого могу посоветовать склонить на свою сторону пару-тройку потенциальных юзеров и использовать их как таран - вроде это не я это народ так хочет. Кстати поговорить с будущим юзером об юзерском интерфейсе - вещь всегда очень полезная и поучительная.


 
Ura   (2002-02-13 11:43) [9]

> BlankAlex ©
Скину только завтра... Исходники дома... Или вечером...
Есть 2 варианта на Visual C++ (MFC+ др.библиотеки) и на Delphi.
Но это писалось за 2 дня... Но идею напишу щас.
1. Рисовал на Bitmape.
2. Отображал только активную ветку..
-- Проект (300 дней старт 01.01.2002)
!--Работа 1 (10 дней)
> !--Работа 2 (20 дней) <
! !-- Работа 21 (8)
! !-- Работа 22 (8) (зависит от Р21)
!--Работа 3

1.Расчитывал на сколько делим делений Bitmap (по Работе 2)
2.Определяем дату начала работ2 (По вышестоящей ветке)
3.Линеим линейку Х, где указываем даты и выходные (праздники)
4.Определяем колличество работ.
5.Линеим линейку по У.
6.Определяем первые работы внутри Р2, т.е. те которые не от кого независят
7.Рисуем их на своих местах. длиной в определенной кол дней. Считать не недо, все задано.
8.Дальше чуть сложнее. Определяем время сдвига Mах для каждой зависимой работы. Тут придеться просчитать все пути и определить махсимальный.(Лучше всего использовать рекурсивный алгоритм). Ну потом рисуем их со сдвигом.
Пиши сам пока, завтра посмотришь как работает мой вариант. Может у тебя резвее получиться. У меня много динамических массивов и перерасчетов на ходу...


 
vlv ©   (2002-02-13 14:35) [10]

Можно регулировать детализацию видимостью столбцов.


 
BlankAlex ©   (2002-02-14 15:20) [11]

>Ura
Скажи пожалуйста, а при большом количестве работ не будет ли bitmap медленно отрисовываться? Пишу прикладную для строительства, программа должна импортировать данные из сметы, а там записей ...

>VLV
Видимсоть столбцов не подходит, т.к. есть сдвиг по Y на уровне месяц-неделя. И при большом временном диапазоне Grid сам повесится отрисовываться. Надо рисовать быстро с минимумом левой информации.

>Sergey13
В этом случае нельзя ограничивать юзера, т.к. по крайней мере д.б. возможность перетаскивать группы работ с одной ветки на другую и много других подобных функций. При том что здесь неограниченная вложенность, а каждая верхняя ветка является суммарной для нижележащих.
Вообще шикарная прога такого уровня на www.spiderproject.ru. Но там ребята писали все полностью ручками на c++, а моя контора - Delphi-сты и боссу ничего я не докажу, т.к. он уже видел этот проект.



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

Текущий архив: 2002.03.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
3-9087
Марина
2002-02-07 11:19
2002.03.04
Выборка по частичному соответствию (LIKE)


4-9323
Alexey(Me)
2002-01-03 14:11
2002.03.04
E-Mail


6-9246
Snake2000
2001-12-13 15:15
2002.03.04
ТВебБраузер


1-9159
Priz_Datiy
2002-02-13 17:06
2002.03.04
Загрузка информации из файла


1-9123
cypher
2002-02-16 16:00
2002.03.04
Весь инет перекопал... =(