Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2

Модерирует : ShIvADeSt

ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, начало тут
 

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:16 29-01-2007 | Исправлено: VitaliM, 15:47 24-11-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот так заполняю. Всего 809 записей. А что ты ещё предлагаешь? Пользователю требуется дать возможно мультивыбора.

Код:
 
procedure TfmApartSearch.FeelInfosource();
Var
 CheckComboboxItem: TcxCheckComboboxItem;
begin
  with dm do
    with fibdsInfoSource do begin
      Open;
      First;
      FetchAll;
      clbInfosource.Items.BeginUpdate;
      clbExclusive.Items.BeginUpdate;
      checkboxCHANGE.Properties.Items.BeginUpdate;
 
      clbInfosource.Clear;
      clbExclusive.Clear;
      checkboxCHANGE.Properties.Items.Clear;
 
      While not Eof do begin
          clbInfosource.AddItem(FieldByName('NAME').AsString, Pointer(FieldByName('ID').AsInteger));
          clbExclusive.AddItem( FieldByName('NAME').AsString, Pointer(FieldByName('ID').AsInteger));
 
          CheckComboboxItem     := checkboxCHANGE.Properties.Items.AddCheckItem(FieldByName('NAME').AsString);
          CheckComboboxItem.Tag := FieldByName('ID').AsInteger;
 
 
          Next;
      end;
      close;
      clbInfosource.Items.EndUpdate;
      clbExclusive.Items.EndUpdate;
      checkboxCHANGE.Properties.Items.EndUpdate;
    end;
end;
 

 
Как видите, из одного датасета заполняются три контрола, два из них это TCheckListBox, которые работают прекрасно, дело в том, что на форму больше нет возможности тулить ещё один TCheckListBox.
 
фух, вроде отредактировал ))

----------
/не мы такие, жизнь такая/

Всего записей: 3260 | Зарегистр. 24-11-2005 | Отправлено: 23:56 07-09-2008 | Исправлено: X11, 00:03 08-09-2008
sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
использую cxGrid1TableView, динамически подгружаю данные (класический  вариант,  почти как в Демо и хелпе.) Как очистить данные,  что-бы при след. открытие формы (не запуска приложения)  создать новые данные, или упростив  вопрос,  как очстить данные и получить пустой грид
 
afiget
 

Цитата:
Кол-во записей?  
Какие возможности грида включены?  
Скины есть?  
Есть ли свои (самописные) обработки: стили, рисование, фильтры?  
Какие едиторы проставлены?

1. от десятка до пару сотен тысяч
2. все  что ненужно поотключал
3.  ничего нет, скины в версии х.38 отсутствуют

Всего записей: 757 | Зарегистр. 15-06-2005 | Отправлено: 01:41 08-09-2008 | Исправлено: sldaac, 01:58 08-09-2008
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11

Цитата:
А что ты ещё предлагаешь? Пользователю требуется дать возможно мультивыбора.

ListBox, конечно. Можно с чекбоксами внутри, если очень надо. Хотя список с множественным выбором самодостаточен.
Хотя тут все же нажно смотреть на пользователя, нормально ли он работает с Ctrl+Click. Чекбоксы удобнее при работе с клавиатуры или при плохом владении мышкой.

Цитата:
дело в том, что на форму больше нет возможности тулить ещё один TCheckListBox.

Настолько все плохо? Фигасе, какие широкие у тебя листбоксы!
Ну я бы все равно уходил от комбика. В зависимости от назначения и частоты использования ListBox можно применить разные методы.
Например, можно сделать окно для выбора значения, пошаговый мастер...
 
По поводу проблемы - надо подумать. Сходу ничего в голову не приходит.
 
sldaac

Цитата:
1. от десятка до пару сотен тысяч

И что, все эти десятки тысяч нужны на клиенте? Вообще-то тормоза при таком кол-ве записей вполне нормальны для cxGrid с выключеным GridMode.
Я не еще спрашивал что показывает DB Monitor. Есть ли дополнительные запросы на сервер.
Как установлен DataController.DataModeController.SmartRefresh?
Если true, то как делаешь удаление (методом какого компонента)?
При GridMode = True cxGrid ведет себя как обычный грид?
 

Цитата:
динамически подгружаю данные (класический  вариант,  почти как в Демо и хелпе.) Как очистить данные,  что-бы при след. открытие формы (не запуска приложения)  создать новые данные

Так может быть и форму динамически создавать.
Если уж очень хочется чистить грид, то достаточно закрыть-открыть датасет.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 02:52 08-09-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
ListBox, конечно. Можно с чекбоксами внутри, если очень надо.

так это у меня и есть почти листбокс с вложенными чекбоксами.
 

Цитата:
Настолько все плохо? Фигасе, какие широкие у тебя листбоксы!  

их просто много, программа по недвижимости, полей там вагон и маленькая тележка, т.е. много справочников
 
программа работает уже давно, пользователей очень много и всех перечивать.... а там и люди пожилые есть, которые не очень давно комп увидели в глаза.
Ну на крайний случай уменьшу что-нить и поставлю ещё один TCheckListBox.
 
Добавлено:
Прикинь, в новом приложении, только что кинул на форму кнопку и TcxCheckComboBox, заполнил, пытаюсь отметки поставить, ставить только до 64-го элемента включительно, дальше нивкакую )))))))
 
 

Код:
procedure TForm2.Button1Click(Sender: TObject);
Var
 i:integer;
begin
  for I := 0 to 1000 do
    cxCheckComboBox1.Properties.Items.AddCheckItem(IntToStr(i), IntToStr(i));
end;
 

 
Добавлено:
Поставил свойство EditValueFormat := cvfCaptions и всё заработало, нужно почитаь про это свойство.
 
Добавлено:
Просто при типе EditValueFormat = cvfInteger, расчет EditValue идет по числам кратным 2-м. 2^64 - это уже бигинт.  
на SQL.ru нашёл


----------
/не мы такие, жизнь такая/

Всего записей: 3260 | Зарегистр. 24-11-2005 | Отправлено: 03:07 08-09-2008
sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Так может быть и форму динамически создавать.  
Если уж очень хочется чистить грид, то достаточно закрыть-открыть датасет.

 
cxGrid1TableView1-  DataSet-????

Всего записей: 757 | Зарегистр. 15-06-2005 | Отправлено: 09:50 08-09-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я опять про TcxCheckComboBox
 
CheckComboBox.EditText всегда возвращает пустое значение, даже если ты отметил хоть один чекбокс в списке
 
Добавлено:
О, нашёл в букваре
cxCheckComboBox.Properties.GetDisplayText(AnyIntegerValue)

----------
/не мы такие, жизнь такая/

Всего записей: 3260 | Зарегистр. 24-11-2005 | Отправлено: 12:45 08-09-2008
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11

Цитата:
так это у меня и есть почти листбокс с вложенными чекбоксами.

Вот это "почти" и есть отличие в назначении контрола и удобстве его использования, имхо.
 
Нашел тоже кое-что интересное по поводу твоей проблемы:
http://www.devexpress.com/issue=DS12773
Вот такие вот пироги.
 
sldaac

Цитата:
cxGrid1TableView1-  DataSet

Угу. Хотя быстрее к нему обращаться напрямую.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 14:46 08-09-2008
sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Угу. Хотя быстрее к нему обращаться напрямую.

 
cxGrid1TableView1  не  cxGrid1DBTableView1  , чегото  я не наблюдал в cxGrid1TableView1 ДатаСет

Всего записей: 757 | Зарегистр. 15-06-2005 | Отправлено: 15:40 08-09-2008
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://www.devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=A1454
жаль, что этой статиь уже нет в базе знаний

----------
/не мы такие, жизнь такая/

Всего записей: 3260 | Зарегистр. 24-11-2005 | Отправлено: 16:34 08-09-2008
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
cxGrid1TableView1  не  cxGrid1DBTableView1

Это я стормозил.
GridView.DataController.RecordCount:=0;
?
 
Добавлено:
sldaac
И еще. Когда-то читал на сайте Девок, что они рекомендуют вместо встроенного Датасета грида все же использовать dxMemData. Насколько я помню, речь шла о производиельности при большом кол-ве записей.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 17:52 08-09-2008
sldaac



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
И еще. Когда-то читал на сайте Девок, что они рекомендуют вместо встроенного Датасета грида все же использовать dxMemData. Насколько я помню, речь шла о производиельности при большом кол-ве записей.

Врут  они,  бессовестно врут, при кол-ве больше 20 тыс. (и меньше то-же, говорю сколько было на момент теста) записей в dxMemData те-же  тормоза, перебробовал и Ehlib и kbmMemtab, результ то-же, при удаление хоть 1 записи тормоза в 2-3 сек на переход на след запись.

Всего записей: 757 | Зарегистр. 15-06-2005 | Отправлено: 23:48 08-09-2008
SANiONE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, плз!
У меня есть БД на faerbird, использую DevExpress-x36may2008.  
В базе данных есть таблица содержащая список сотрудников и таблица со списком отделов к которым они принадлежат, также есть связующая таблица. Для отображения данных в программе использую csGrid. Данный компонент предоставляет возможность добавления подуровней в отображаемой таблице, что я и делаю при отображении отделов(т.е. отображается отдел и под ним список всех сотрудников, принадлежащих ему). Проблема заключается в том что сотрудники у которых индекс(ключ таблицы коем является автоинкрементное поле) 100 и более не отображаются на подуровне. SQL запрос проверял в IBExpert, там данные отобразились правильно, поэтому подразумеваю что выборка происходит правильно, а я чтото пропустил при работе с компонентом.  
Может кто сталкивался  с данным траблом или имеет хоть какиенибудь идеи решения данной проблемы поделитесь советом, плз.

Всего записей: 5 | Зарегистр. 09-09-2008 | Отправлено: 22:21 10-09-2008
sergiuz1303



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANiONE
Это навряд ли траблы грида, скорее всего не правильно созданы таблицы. Ты бы выложил структуру для наглядности, а то из твоего сообщения
"В базе данных есть таблица содержащая список сотрудников и таблица со списком отделов к которым они принадлежат, также есть связующая таблица"  
я не понимаю зачем связающующия таблица не проще сделать так:
Tbl_sotrudnik: таблица сотрудников
id_sptrudnik : индекс таблицы сотрудников автоинкрементное поле
id_otdel: индекс таблицы отделов (связующее поле для таблицы отделов)
fio: ФИО
.....
Tbl_otdel: таблица отделов
id_otdel  индекс таблицы отделов автоинкрементное поле
name: наименование таблицы
....
А потом в гриде делаешь простой мастер-детайл по этим двум таблицам. Главное что бы связующие поле табл1 совпадало названием с индексным полем табл2.  
И тогда все коректно отображаеться.

Всего записей: 46 | Зарегистр. 11-06-2007 | Отправлено: 11:28 11-09-2008
Sufferer



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Потерялся мой вопрос
Ладно, повторюсь снова:
1. Подскажите, как в SpreadSheet реализовать отметку и выделение колонок/столбцов аля эксел. Т.е. непонятно, как отследить нажатие мышой на столбец/строку.
Если киненте примером по моим вопросам буду просто счастлив.
2. Столкнулся с проблемой получения даты/времени из ячейки SpreadSheet.  
Загружаю в SpreadSheet ексельный файлик в котором формат ячейки Custom ДД-ММ-ГГГГ чч:мм:сс, а SpreadSheet определяет формат ячеки как m/d/yy h:mm. При этом отображение идет в исходном формате, а вот взять из дату из ячейки получается только в формате m/d/yy h:mm, т.е. без секунд. Как мне получить дату с секундами?

Всего записей: 271 | Зарегистр. 21-07-2001 | Отправлено: 11:45 12-09-2008
SANiONE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergiuz1303
 
Вкладую изображение на которых структура таблицы, на них я отметил поля которые являются ключами таблицы. Использую таблицу для связи так как планирую вести историю кто в каком отделе трудился. Может проблема и не в гриде, но как я говорил sql-запросы работают правильно, тогда где предположительно может быть проблема?  
     

 
ЗЫ:спасибо за ответ

Всего записей: 5 | Зарегистр. 09-09-2008 | Отправлено: 14:51 12-09-2008
sergiuz1303



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
SANiONE
стучи в аську 456363847

Всего записей: 46 | Зарегистр. 11-06-2007 | Отправлено: 15:11 12-09-2008
AvGSoft

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
проблема при использовании скинов, сильно напрягает при движении по cxDBTree мерцание названия столбцов, а при отключении все нормально но вид не тот . Может где нужно какую опцию включить/выключить.
Причем в cxGrid прорисовывается один раз и потом не мерцает, а в дереве как только переходишь с записи на запись прорисовывается постоянно.

Всего записей: 262 | Зарегистр. 03-07-2006 | Отправлено: 15:03 17-09-2008
HighTower



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребята, подскажите, как получить в гриде ссылку на строку, которая находится под курсором при движении мыши?
надо для того, чтобы показывать хинт, содержание которого ассоциировано с каждой строкой в гриде...

----------
Бог у всех один, провайдеры - разные.

Всего записей: 998 | Зарегистр. 09-08-2001 | Отправлено: 15:33 17-09-2008
f3ka

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи, а кто нить может подсказать в такой проблеме - используются скины от последней версии (38) и есть dxBar, на нем dxBarButton. Так вот проблема с этой dxBarButton - если дизайне установить свойство Down в True, то кнопка отрисовывается нажатой, но как только запускаешь прогу, то кнопка отображается отжатой и больше не нажимается (в смысле не фиксируется нажатие). Где копать??? Устал уже изучать внутренний код Девок, но никаких успехов пока что. ПОМОГИТЕ ПЛЗ.

Всего записей: 497 | Зарегистр. 02-03-2007 | Отправлено: 17:09 17-09-2008
korobovmax



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HighTower, вот пример:
http://www.devexpress.com/Support/Center/KB/p/A2666.aspx
 
Для конкретно вашей цели, надо перебирать в цикле DisplayTexts.
 
 

Всего записей: 276 | Зарегистр. 23-01-2005 | Отправлено: 17:47 17-09-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2
ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru