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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
1-9207
knyaz17
2002-02-12 12:01
2002.03.04
Как вставить в Word текст из буфера обмена?


1-9122
vic_vm
2002-02-16 16:46
2002.03.04
Вопрос по Excel.


1-9162
foks
2002-02-02 11:19
2002.03.04
У меня не работает Delphi 5.0 из под Windows XP


7-9301
Aleksey123
2001-11-28 04:51
2002.03.04
Перенаправление звука на Speaker


7-9315
SWW
2001-11-27 10:59
2002.03.04
Как определить количество полученной/переданной информации на сетевом адапторе?





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