Форум: "Основная";
Текущий архив: 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