Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: andreybear
Дата сообщения: 31.01.2012 09:04
Опять провисел.
Кто-нибудь выскажите мысли по поводу определения порядка band'ов, пожалуйста.
Автор: mdid
Дата сообщения: 31.01.2012 09:23
andreybear
в смысле? что значит "определения порядка band'ов"?
Автор: andreybear
Дата сообщения: 31.01.2012 09:42
mdid
Сообщение с примером структуры на предыдущей странице.
Автор: AndreyAgrh
Дата сообщения: 31.01.2012 10:06
tanaseduard, если ограничить то ошибки нет. Я так понимаю, что 01-янв-0001 используется в виде отсутствующего значения..
andreybear, записи нужны безусловно, не нужны эти неверные значения...

Самое любопытное, что в дизайн тайм при активной таблице cxGrid вместо этих ошибочных данных отображает пустые ячейки!!! И ошибок не выдает!!

Автор: andreybear
Дата сообщения: 31.01.2012 10:27
AndreyAgrh
TcxDateEdit не воспринимает даты меньше "01.01.100".
Вариант с фильтрацией подобных дат как предлагалось выше не подходит?
Автор: korstin
Дата сообщения: 31.01.2012 11:41
AndreyAgrh, если эти значения больше нигде не используются, присвойте им всем NULL одним запросом - ошибка исчезнет


Цитата:
01-янв-0001 используется в виде отсутствующего значения

Странное, мягко говоря, решение
Автор: salexn1
Дата сообщения: 31.01.2012 12:39
AndreyAgrh
я думаю, что если сделать настройку NLS нормальную, то все будет ок
у UniDAC должна быть настройка на сессию и задайте NLS_DATE_FORMAT: DD.MM.YYYY
в крайнем случае можно так
alter session set NLS_DATE_FORMAT='DD.MM.YYYY';
Автор: wasilissk
Дата сообщения: 31.01.2012 12:43
salexn1
Наверняка на конвертации поля к TDateTime валится. Тем более что в дизайнтайм все отображается. Форматная же строка только на отображение влияет.
Автор: salexn1
Дата сообщения: 31.01.2012 12:59
wasilissk
В дизайнтайм отображается только пустые ячейки...

>Форматная же строка только на отображение влияет.
Ну это не совсем верное утверждение...
Автор: wasilissk
Дата сообщения: 31.01.2012 13:50
salexn1

Цитата:
Ну это не совсем верное утверждение...

Я имел в виду применительно к данному конкретному случаю. По крайней мере ODAC конвертит буффер поля непосредственно к TDateTime без оглядки на форматную строку. Не думаю, что в UniDAC что-то новое придумали. И уже TDateTime конвертится самим девэкспрессом при отображение в гриде.
Автор: AndreyAgrh
Дата сообщения: 31.01.2012 13:57
salexn1, NLS_DATE_FORMAT задал в UniDAC - не помогло...

korstin, присвоить им всем NULL одним запросом не дает начальство.. это древняя АБС, которая еще работает, не известно что начнет падать у пользователей или в ней самой...
Автор: wasilissk
Дата сообщения: 31.01.2012 14:02
AndreyAgrh
Так to_char то чем не устраивает?
Редактировать как TDateTime такие значения вы все равно не сможете.
Автор: salexn1
Дата сообщения: 31.01.2012 14:10
AndreyAgrh
Остается последнее - руками отрисовывать данные, т.е. на GetText
Автор: AndreyAgrh
Дата сообщения: 31.01.2012 14:18
wasilissk, да собственно хочется иметь автоматическую фильтрацию по датам в гриде ..
Наверное еще можно через case в sql запросе выдавать NULL если дата равна 01.01.0001, надеюсь хоть это будет нормально обрабатываться..
Автор: korstin
Дата сообщения: 31.01.2012 14:52

Цитата:
через case в sql запросе выдавать NULL если дата равна 01.01.0001

Плюсую, сам хотел это предложить, если нельзя сделать update. Я бы в этом случае создал представление (view), где обошел бы это поле по этому правилу. И использовал в запросе бы его. Но я бы все таки присвоил NULL для некорректных дат хотя бы на тестовой базе с тестированием, не должно быть таких полей

Добавлено:
Кстати, вспомнилось, что KOL (который Key Objects Library) ведет отсчет именно с 01.01.0001, что не совпадает с VCL-ным 01.12.1899. Возможно, это причина всех несчастий?
Автор: AndreyAgrh
Дата сообщения: 31.01.2012 14:57
korstin
Оффтопик: А не подскажите, а как проверить именно на некорректность даты.. а то мало ли какие еще там могут быть не верные значения кроме 01.01.0001?
Автор: salexn1
Дата сообщения: 31.01.2012 15:30
если в оракле, то писать функцию типа ISDATE
если Delphi, то... лучше тоже написать свою, которая бы перебирала форматы
Автор: X11
Дата сообщения: 31.01.2012 15:46
Народ, может хватит? Гляньте на название темы!
Автор: Lena44
Дата сообщения: 31.01.2012 18:49
Здравствуйте. Для решения моей задачи, мне посоветовали ExpressQuantumTreeList _http://devexpress.com/Products/VCL/ExQuantumTreeList/
Или я не до конца поняла как он работает, или он не подходит для моей задачи. Это дерево, как я поняла, создает общие колонки для всех узлов. Мне же надо решить такую задачу:

Пользователь должен сам в программе иметь возможность формировать сколь угодно сложное дерево. Сложность состоит в том, что в момент создания узла дерева надо одновременно создавать таблицу, которая должна быть привязана к этому узлу.
Например, если пользователь создает самый первый узел "Структурное подразделение", то с этим узлом надо одновременно создать таблицу:
Код
Наименование структурного подразделения
Комментарий

Далее если пользователь создает дочерний узел типа "Структурное отделение", то создается таблица с другими колонками:
Код
Наименование структурного подразделения
Наименование структурного отделения
Комментарий

Если создает еще на этом уровне узел "Структурное отделение", то и с этим новым узлом создается такая же отдельная таблица:
Код
Наименование структурного подразделения
Наименование структурного отделения
Комментарий

Если дерево разрастается и создается новый дочерний узел типа "Статья доходов", то и с этим новым дочерним узлом надо создавать другую таблицу типа:
Код структурного подразделения
Код структурного отделения
Наименование статья доходов.
Описание доходов.

и т.д.
При переходе на соответствующий узел должна отображаться соответствующая таблица, которую пользователь может заполнять. Таким образом, дерево используется как иерархический удобный навигатор по таблицам.
Подскажите, пожалуйста, мне DevExpress может помочь в данной ситуации?
Как решить такую задачу?
Спасибо.

P.S.
Вот по такой структуре мне нужна навигация: http://imageshack.us/photo/my-images/163/treefp.jpg/
Мне DevExpress может помочь в данной ситуации?

Автор: Dima335
Дата сообщения: 31.01.2012 22:20
Вопрос по bandedtableview. Если я поставил свойство properties у колонки на combobox, то как заполнить эти combobox'ы item'ами? И если я добавляю новую строку, то надо ли каждый раз это делать?
Автор: korstin
Дата сообщения: 01.02.2012 01:19
Lena44, одна из типичных задач Master-Detail. Ее можно решить с помощью DevExpress, но понадобится cxGrid. Можно решить в пределах одного грида (с помощью уровней), либо несколькими гридами (и настройкой отношений в самих датасетах). Что выбрать - решать вам, но в любом случае придется очень подумать для реализации удобного пользователям интерфейса

Добавлено:
Dima335, какая задача стоит перед вами? Дать пользователю настраивать положение колонок и бандов? Но у DevExpress есть свой диалог кастомизации с драг-энд-дропом, очень удобный.
Автор: andreybear
Дата сообщения: 01.02.2012 03:06
Dima335
Если в design time, то в Properties в свойстве Items прописываешь необходимые элементы.
Если в run time, то вот пример для 0 колонки:

Код: var i: integer;
cmbProp: TcxComboBoxProperties;
begin
cmbProp := TcxComboBoxProperties(BandedView.Columns[0].Properties);
for i := 1 to 5 do
cmbProp.Items.Add('Элемент ' + IntToStr(i));
end;
Автор: wasilissk
Дата сообщения: 01.02.2012 04:45
Lena44
Я так понимаю, что таблица отличается от списка наличием нескольких столбцов, однако пример по вашей ссылке говорит об обратном. То что изображено на примере по ссылке легко делается обычным трилистом.
Или таблица, которая должна появляться не отображена в вашем примере?
Автор: andreybear
Дата сообщения: 01.02.2012 04:57
wasilissk
Вы модель БД смотрели? Можно пример со списком?
Автор: delover
Дата сообщения: 01.02.2012 05:07
Здравствуйте уважаемый ALL.
У меня вопросик. Мы используем компонентик TdxBarManager. У него есть замечательная возможность сохранять пользовательские настройки ToolBar-ов. Но вот незадача, - при переходе на новую версию в Главном меню появляются новые акции, а их пользователь не увидит пока не удалить из реестра все настройки. Вопрос в следующем, можно ли запретить сохранение настроек Главного меню, а сохранять только ToolBar-ы? Либо как то принудительно сбрасывать настройки главного меню? Мне бы какое нибудь адекватное решение этого вопроса.
Автор: andreybear
Дата сообщения: 01.02.2012 05:17
delover

Цитата:
Вопрос в следующем, можно ли запретить сохранение настроек Главного меню, а сохранять только ToolBar-ы?

Попробуйте TcxPropertiesStore - укажите в нем, что нужно хранять.

Добавлено:

Цитата:
Либо как то принудительно сбрасывать настройки главного меню?

Ну или удаляйте ненужные ветки из реестра перед загрузкой свойств с помощью TRegistry.))
Автор: wasilissk
Дата сообщения: 01.02.2012 05:41
andreybear

Цитата:
Вы модель БД смотрели?

А она была? Я даже упоминание о БД не нашел.
Есть словесное описание структуры, есть визуальный пример. Где создаются эти таблицы (на картинке - списки, а не таблицы) и что представляют собой, необходимо уточнить у вопрошающего.
Хотя конечно допускаю, что ваш экстрасенсорный скилл выше моего.
Автор: andreybear
Дата сообщения: 01.02.2012 05:51
wasilissk

Цитата:
Хотя конечно допускаю, что ваш экстрасенсорный скилл выше моего.

Возможно.))
Я на картинке увидел инфологическую модель (может показалось, ведь каждый видит то, что хочет видеть). К тому же, без БД смысла нет создавать все эти записи, ведь после завершения работы все вернется к истокам.))
Но это мое мнение.
Lena44
Уточните задачу.
Автор: Lena44
Дата сообщения: 01.02.2012 10:05

Цитата:
Сомневаюсь в том, что это будет "удобно", учитывая количество таблиц, которое вы хотите видеть одновременно.


При переходе на узел надо видеть только одну таблицу, таблицу этого узла. Другие таблицы не надо отображать.


Цитата:
А она была? Я даже упоминание о БД не нашел.


Программа однопользовательская. Я ведь могу хранить таблицы в ClientDataSet как xml файлы.


Цитата:
на картинке - списки, а не таблицы


На картинке название узлов и под ними структуры таблиц (колонки таблиц раскрашены цветом), которые должны быть ассоциированы с каждым конкретным узлом. Сколько узлов, столько таблиц.
Автор: andreybear
Дата сообщения: 01.02.2012 10:32

Цитата:
При переходе на узел надо видеть только одну таблицу, таблицу этого узла. Другие таблицы не надо отображать.

В любом случае, чтобы увидеть таблицу 4 уровня, необходимо раскрыть предыдущих 3!

Цитата:
Программа однопользовательская. Я ведь могу хранить таблицы в ClientDataSet как xml файлы.

Даже не знаю что сказать. Ваш выбор.
Вообще, все это хозяйство можно хранить всего лишь в 1 таблице в БД.

Цитата:
Сколько узлов, столько таблиц.

Я, походу, другими категориями размышляю. Тогда уж не таблицы, а записи, имеющие определенную структуру. Или я что-то не так понял.
Например, у вас 5 структурных подразделений. Это значит у вас 5 таблиц? Или 5 записей? Или еще что-то?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.