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

» Использование DevExpress

Автор: vmr90
Дата сообщения: 12.07.2005 07:38
xokc
К сожалению так и придется делать

Добавлено:
makz
Мне нужно и дата и время и выпадающий календарь с часами
и все замечательно работае за одним исключением когда фокус на ячейку появляются секунды и в вып окне тоже сек
Автор: makz
Дата сообщения: 12.07.2005 08:41
vmr90
Извиняюсь, невнимательно прочел вопрос. Думаю можно что-то сделать, есть там класс TcxFormatController в модуле cxFormats, там и ковырять маску.
Автор: xxxxsoft
Дата сообщения: 12.07.2005 09:55
Всем привет кто нибудь сталкивался с экспортом у девок особенно интересно экспорт из DBTreeList-a:


Код:

Cxexporttl4link::cxExportTL4ToExcel(beFileOpen->Text,FTL,rbExportAll->Checked);

Автор: golkanavt
Дата сообщения: 12.07.2005 10:31
xxxxsoft
может в стройке по-другому, но у меня следующая конструкция работает на "ура":

Код:
ExportGrid4ToExcel(AFileName, MyGrid, false);
Автор: xxxxsoft
Дата сообщения: 12.07.2005 11:40
golkanavt
ДА так тоже пробывал, еще раньше, но если не использовать namespase-ы, то вообще муть какая-то, Все говорят, что у них работает, млин а вот у меня не работает даже грид, Пришлось использовать компоненты EMS для экспорта из грида.
Автор: Alex1978
Дата сообщения: 14.07.2005 08:22
Есть Grid, у грида Level, у лэвела несколько DBTableView при переключении между DBTableView закрываются группы у неактивных DBTableView. Как этого избежать?
Автор: golkanavt
Дата сообщения: 16.07.2005 11:28
Alex1978
у Лэвела не может быть несколько вью, может быть несколько уровней одинакового порядка с разными вьюхами или я тебя не так понял? или ты к одному и тому же лэвелу в зависимости от условий лепишь разные вьюхи?
Автор: Alex1978
Дата сообщения: 16.07.2005 14:00
golkanavt
к одному и тому же левелу леплю в зависимости от условий вьюхи
Автор: golkanavt
Дата сообщения: 18.07.2005 10:16
Alex1978
а группы только закрываются или вообще пропадает группировка? попробуй сохранять настройки вьюхи в реестр перед сменой
Автор: Alex1978
Дата сообщения: 18.07.2005 12:26
golkanavt группы только закрываются. все работает тип-топ , вот только закрытие групп?
Автор: golkanavt
Дата сообщения: 19.07.2005 10:20
Alex1978
это нормальное поведение вьюх, можешь принудительно делать раскрытие всех групп после назначения левелу конкретной вьюхи
Автор: Alex1978
Дата сообщения: 19.07.2005 11:03
golkanavt
можно ли держать все группы постоянно открытыми?
как определить произошел ли двойной клик на записи или же на заголовке группы?
Автор: golkanavt
Дата сообщения: 19.07.2005 11:45
можно


Код:
var
P: TPoint;
AHitTest: TcxCustomGridHitTest;
begin
GetCursorPos(P);
with TcxGridSite(Sender) do
begin
P := ScreenToClient(P);
AHitTest := YourViewName.ViewInfo.GetHitTest(P);
if (AHitTest.HitTestCode in [htCell, htRecord, htColumnHeader, htHeader, htFilter]) <-- выбрать нужное тебе
then DoSomething;
end;
end;
Автор: xxxxsoft
Дата сообщения: 20.07.2005 07:57
Всем привет! На днях столкнуля с одной не приятной ошибкой природу которой так и неудалось установить. Проблема следуюющая:
Есть DBTreeList в нем есть колонка у которой Properties = ProgressBar, в designtime все нормально, но вот когда прога запускается то вылетает ошибка(причем критическая) в которой пишется что не возможно прочитать путь: (Название Моей колонки)->Properties->PealValue...
Что за беда?
Что самое интересное у меня есть проект где все это работает на ура, в новом проекте, я скопировал от туда DBTreeList сов семи колонками, все работает, кроме этой колонки....
Что делать?
Автор: golkanavt
Дата сообщения: 20.07.2005 10:37
xxxxsoft
попробуй ее (колонку) просто пересоздать, может при переносе какое свойство потерялось
Автор: xxxxsoft
Дата сообщения: 20.07.2005 11:28
golkanavt
Да пробывал уже ничего не помогает Если пользуешься icq выходи на связь мой номер 222570121
Автор: IgorXI
Дата сообщения: 24.07.2005 13:00
Кто-нибудь знает как у ExpressQuantimGrid на каждую ячейку свой Hint повесить
Автор: Alex47
Дата сообщения: 24.07.2005 14:22
IgorXI
1. Сам не пользуюсь, но у View есть свойство (в дизайнере):
OptionsBehavior.CellHints = False/True.
"Specifies whether a hint is displayed for a cell when the text does not fit into the cell’s area"
2. Вопрос:
Is it possible to have custom hints in EQG5 at cell level, if so, how?
Ответ:
The following is my final mouse move code (iHintRec is a global integer) :
procedure TMyForm.GridViewMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
Site : TcxGridSite;
HitTest : TcxCustomGridHitTest;
Item : TcxCustomGridTableItem;
Rec : TcxCustomGridRecord;
sNewHint : string;
begin
Site := Sender as TcxGridSite;
HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y);
if HitTest is TcxGridRecordCellHitTest then begin
Item := TcxGridRecordCellHitTest(HitTest).Item;
Rec := TcxGridRecordCellHitTest(HitTest).GridRecord;
if Item.Index = MyHintField.Index then begin
sNewHint := 'New hint goes here';
if (Grid.Hint <> sNewHint) or (Rec.RecordIndex <> iHintRec) then begin
iHintRec := Rec.RecordIndex;
Grid.ShowHint := false;
Grid.Hint := sNewHint;
end
else Grid.ShowHint := true;
end
else begin
Grid.ShowHint := false;
end;
end;
end;

Автор: Alex1978
Дата сообщения: 25.07.2005 10:37
Как запретить выбор определенного узла в TcxTreeList
procedure TMainForm.trlMainCanSelectNode(Sender: TObject;
ANode: TcxTreeListNode; var Allow: Boolean);
begin
if ANode.Level = 0 then
Allow := False;
end;
не пашет.
Автор: XPSDim
Дата сообщения: 25.07.2005 21:38
Dev Express Grid v.4 - за июль от feandy.
Есть трехуровневая связка Master-Detail на TcxGridDBTableView. Пытаюсь искать запись в датасете связанном с вьюхой самого нижнего уровня - Locate. При эмом иногда на экране отображается в самом низу запись первого уровня, естественно - нужная запись находится где-то далеко внизу; иногда вовсе не происходи никаких изменений на экране, хотя в обоих случаях дерево разворачивается до нужной записи.

Как можно синхронизировать позицию в датасете с Гридом. Может нужно как-то искать в самом гриде?
Автор: Alex47
Дата сообщения: 26.07.2005 08:01
XPSDim
Можно использовать:
View.DataController.LocateByKey();
Автор: NameSoname
Дата сообщения: 26.07.2005 16:40
Здравствуйте!
Тут _ttp://www.devexpress.com/Downloads/NET/WFComponentsCollection/files/WinFormsCollectionEval-2.0.4.exe лежит последняя (на 26.07.2005) полная (с исходными текстами) версия набора компонентов для платформы .NET от Developer Express.
Скажите, пожалуйста, может ли кто-нибудь поделиться серийным номером данного продукта?
Спасибо за внимание.

Добавлено:
Здравствуйте!
Тут _ttp://www.devexpress.com/Downloads/NET/WFComponentsCollection/files/WinFormsCollectionEval-2.0.4.exe лежит последняя (на 26.07.2005) полная (с исходными текстами) версия набора компонентов для платформы .NET от Developer Express - Developer Express .NET Windows Forms Components Suite 2.0.4.
Скажите, пожалуйста, может ли кто-нибудь поделиться серийным номером данного продукта?
Спасибо за внимание.
Автор: Alex1978
Дата сообщения: 27.07.2005 11:51
Если включить режим GridMode, то сортировка по клику на зоголовке столбца не пашет.
Так и должно быть?
ver 5.7
Автор: XPSDim
Дата сообщения: 27.07.2005 13:03

Цитата:
XPSDim
Можно использовать:
View.DataController.LocateByKey();


Не пашет. Справки по данному методу нет. Я в качестве аргумента передавал нужное значение поля соответствующее KeyFieldNames Датаконтроллера.
При поиске вообще ничего не происходит.

Как же все-таки искать в многоуровневых таблицах?
Автор: golkanavt
Дата сообщения: 27.07.2005 13:22
NameSoname


Цитата:
Здравствуйте!
Тут _ttp://www.devexpress.com/Downloads/NET/WFComponentsCollection/files/WinFormsCollectionEval-2.0.4.exe лежит последняя (на 26.07.2005) полная (с исходными текстами) версия набора компонентов для платформы .NET от Developer Express - Developer Express .NET Windows Forms Components Suite 2.0.4.
Скажите, пожалуйста, может ли кто-нибудь поделиться серийным номером данного продукта?
Спасибо за внимание.


тебе сюда

Добавлено:
Alex1978
да, это нативное поведение. в грид-моде данные подгружаются по мере необходимости, поэтому самые вкусные фичи - сортировка, фильтрация - не работают. хотя можно сделать вручную заполнение списка фильтрация и все такое.
Автор: Alex47
Дата сообщения: 28.07.2005 08:11
XPSDim

Цитата:
Не пашет.


У меня работает в нескольких местах.
Предположим, что нам надо будет потом найти строку на которой сейчас стоит фокус.
Код, примерно, такой:
1. Находим индекс строки на которой стоит фокус:
RecordIndex := TcxGridDBTableView(cxGrid1.FocusedView).DataController.FocusedRecordIndex;
2. По индексу находим идентификатор строки и запоминаем его:
RecordId := TcxGridDBTableView(cxGrid1.FocusedView).DataController.GetRecordId(RecordIndex);
3. В нужный момент в нужном обработчике используем запомненный идентификатор
строки для LocateByKey:
TcxGridDBTableView(cxGrid1.FocusedView).DataController.LocateByKey(RecordId);
4. Для DetailView надо всегда использовать конструкцию
TcxGridDBTableView(cxGrid1.FocusedView) - чтобы обратиться к созданному клону DetailView.
5. Если не получится, приведи свой фрагмент кода с логикой продвижения по обработчикам
Автор: XPSDim
Дата сообщения: 28.07.2005 09:34
Alex47


Цитата:
У меня работает в нескольких местах.


Делаю по твоему совету:

procedure TfrmMain.tbFindClick(Sender: TObject);
var RecordIndex, RecordId: integer;
begin
With TfrmFind.Create(Application) do
begin
if ShowModal=mrOk then
if cbKind.Text=Прайсовый номер' then
begin
if not tblItemsDetal.Locate('price_num',edtText.Text,[])
then
Showmessage('Ничего не найдено')
else
begin
{1} RecordIndex := TcxGridDBTableView(cxGrid.FocusedView).DataController.FocusedRecordIndex;
{2} RecordId := TcxGridDBTableView(cxGrid.FocusedView).DataController.GetRecordId(RecordIndex);
TcxGridDBTableView(cxGrid.FocusedView).DataController.LocateByKey(RecordId);
end;
end;
end;
end;

Структура грида:
Level1->GroupsView
Level2->ItemsView
Level3->ItemsDetalView

Locate делаю по датасэту связанному с ItemsDetalView.
Пры выполнении строки {1} FocusedView=GroupsView;
Если до начала поиска мышкой установить фокус на ItemsView или ItemsDetalView
группы отличной от искомой - происходит исключение Invalid Variant Type Conversion.

Проблема, как мне кажется, в том, что после Locate не передается фокус на соответствующий View третьего уровня.

Так как же все-таки лечить?
Автор: Alex47
Дата сообщения: 28.07.2005 13:20
XPSDim
1. Если нужен только поиск по одной из колонок третьего уровня, то почему бы не
использовать incremental search по этой колонке?
2. Попробуй вместо tblItemsDetal.Locate('price_num',edtText.Text,[]) сразу
строку TcxGridDBTableView(cxGrid.FocusedView).DataController.LocateByKey(edtText.Text).
Фокус должен быть гарантированно на View третьего уровня и DataController.KeyFieldNames должно быть правильно установлено - (price_num).
SmartRefresh желательно False.
Или так:
TcxGridDBTableView(cxGrid.FocusedView).DataController.BeginUpdate;
TcxGridDBTableView(cxGrid.FocusedView).DataController.LocateByKey(edtText.Text).
TcxGridDBTableView(cxGrid.FocusedView).DataController.EndUpdate;
3. Еще можешь попробовать конструкцию:
<View>.DataController.BeginLocate;
try
<View>.DataController.DataSet.Locate( ... );
finally
<View>.DataController.EndLocate;
end;
Автор: XPSDim
Дата сообщения: 28.07.2005 14:21
To Alex47

1. Поиcк нужен не только по одной колонке, по некоторым даже необходим посик вхождения строки.

2. Мне кажется, я немножко неправильно объяснил проблему.
Изначально будем считать, что все группы и подгууппы свернуты. Когда я делаю Locate по датасету - где-то там внизу разворачивается группа и подгруппа. Моя задача установить фокус на эту самую запись и вывести ее в пределах видимости окна.
При этом групп где-то около 500, в каждой группе приблизительно 10-500 подгрупп,
а в самом нижнем уровне, чаще всего, 1-2 записи.
Поэтому второй предложенный вариант выглядит как-то неуместно. Ведь если я установлю вручную фокус на нужный грид 3-го уровня, то искать уже ничего не надо будет

Может поставить 5-ый cxGrid?
Автор: Alex47
Дата сообщения: 29.07.2005 09:39
XPSDim
Не понял, что надо от locate.
Первый уровень - некие группы;
Второй уровень - состав групп в неких товарах;
Третий уровень - описание неких модификаций товаров.
Мы стоим на первом уровне, то есть фокус на какой-то строке группы и
делаем locate по третьему уровню (модификации товаров)?
Вопрос: будет ли такой locate однозначным? То есть, в пределах выбранной на первом уровне группы, существует только одна конкретная строка третьего уровня, которую мы ищем?
Если существует только одна запись, можно попробовать следущее.
Исходная ситуация - стоим на первом уровне, то есть фокус на какой-то строке группы, начинаем поиск.
1. DataController2 := <MasterView>.DataController.GetDetailDataController() - находим контроллер второго уровня.
2. По найденному контроллеру находим контроллер третьего уровня:
DataController3 := DataController2.GetDetailDataController() - если он будет не nil.
3. Ищем запись:
DataController3.LocateByKey(edtText.Text).
Еще такой вариант. Может вместо поиска записи сделать фильтр по dataset третьего уровня - чтобы остальные записи были просто не видны. Фильтр можно сделать средствами dataset или самого Grid.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Kylix


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