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

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

Автор: X11
Дата сообщения: 19.10.2011 15:38

Цитата:
На OnGetDisplayText подсовывешь текст из тескта нода по сохраненому ID.

А после сворачивания дерева закрывается и НД, к которому привязано дерево.
Мало того, дерево одно на несколько cxGridTableView, хотя cxGrid у них один, общий.
Пока что сделал доп. колонку, куда записываю KeyValue.
Автор: linker_2009
Дата сообщения: 19.10.2011 15:56
Как знаешь...
В идеале не нужно закрывать НД, в TcxEditRepository создать LookupComboBox, настройть и вешать его на все необходимые поля.
Автор: X11
Дата сообщения: 19.10.2011 16:18
Мне не нужно его держать открытым.
Я говорю про дерево, а ты мне предлагаешь LookupComboBox.
Я просто именно от LookupComboBox`а ушёл к дереву
Автор: andreybear
Дата сообщения: 20.10.2011 07:50
Добрый день!
Вопрос по экспорту данных в Excel из cxGrid.
Можно ли как-нибудь при экспорте указать существующий файл Excel с данными и чтобы эти данные не были затерты, а еще лучше указать лист, на который необходимо экспортировать данные?
Если нет, то второй вопрос.
Имеется несколько файлов эксель с одним листом в каждом. Необходимо скопировать данные из всех этих файлов в один файл на разные листы.
Как можно скопировать данные с листа одной книги на лист другой книги используя TXLSFile?
Автор: exteris
Дата сообщения: 20.10.2011 08:01
Я думаю, ни cxGrid ни TXLSFile вам тут не помогут. Работайте непосредственно с Excel.
Автор: andreybear
Дата сообщения: 20.10.2011 08:09
Дело в том, что я тоже так думаю!)) Что вы имеете ввиду под "непосредственно с Excel "? И не создаст ли трудности непосредственная работа с Excel в случае отсутствия последнего на компьютере пользователя?
Автор: X11
Дата сообщения: 20.10.2011 09:09
Создаст.
И непосредственно с эксель - это значит, что забудь про встроенный девовский экспорт и экспортируй сам, ручками так сказать, подключившись к эксельке через OLE
Автор: andreybear
Дата сообщения: 20.10.2011 09:35
Про девовский экспорт не получится забыть - у таблицы сложная шапка. Есть алгоритм, по которому строится эта шапка, других вариантов не знаю.
Хочется, чтобы экспорт был независимо от того, установлен Excel на компьютере пользователя или нет.
Неужели нет способа скопировать информацию с листа первой книги на лист второй с помощью TXLSFile? Просто активно его использую, не хотелось бы добавлять еще чего-то.
Автор: X11
Дата сообщения: 20.10.2011 10:04

Цитата:
Хочется, чтобы экспорт был независимо от того, установлен Excel на компьютере пользователя или нет.


Тогда Вам в тему про компоненты, а не в эту про DevExpress.



Цитата:
Неужели нет способа скопировать информацию с листа первой книги на лист второй с помощью TXLSFile

Но это уже другая история.
Автор: andreybear
Дата сообщения: 20.10.2011 10:42

Цитата:
Тогда Вам в тему про компоненты, а не в эту про DevExpress.

Особенности экспорта компонента DevExpress привели к неизбежному появлению кучи файлов.
Ясно, значит буду искать ответ в другом месте.
Автор: GeXamin
Дата сообщения: 20.10.2011 11:41
Я все со своей проблемой:

Цитата:
Подскажите по cxDateNavigator. Я подсовываую ini-файл в cxLocalizer, все локализируется кроме него - я так понимаю он завязан на региональные настройки системы. Как его вымучить. Спс.


- неужто никто не сталкивался ?
Автор: X11
Дата сообщения: 20.10.2011 12:04
Скорее всего он недопереведен.
Автор: linker_2009
Дата сообщения: 20.10.2011 12:27
Дело не в переводе. Перевод присутствует. Дело в самом cxDateNavigator, нехочет даже подтягивать из ShortDayNames, LongMonthNames, LongDayNames. Ищу пока решение.
Автор: GeXamin
Дата сообщения: 20.10.2011 12:43
linker_2009
По результатам отпишитесь, пожалуйста, буду признателен.
Автор: X11
Дата сообщения: 20.10.2011 16:20
Не могу понять, что я делаю не так.
cxDBTreeList привязан FibDataSet. Запросы прописаны.


Код: SELECT
ID,
PARENT,
NAME,
CCOUNT,
SORTINDEX,
IMAGEINDEX,
STATEINDEX
FROM
REGIONS

INSERT INTO REGIONS(
ID,
PARENT,
NAME,
SORTINDEX,
IMAGEINDEX,
STATEINDEX
)
VALUES(
:ID,
:PARENT,
:NAME,
:SORTINDEX,
:IMAGEINDEX,
:STATEINDEX
)
Автор: AlexCoRu
Дата сообщения: 23.10.2011 21:37
Как дев-то 1.7 хочется...
А то ж "A memo column ignores dcoAnsiSort" мне покоя не даёт. Тем более, что не только в memo.
Автор: indapublic
Дата сообщения: 24.10.2011 08:26
Есть cxGrid, в нем два Level, один подчинен другому. Как программно раскрыть первый Level, оставив свернутым второй? Спасибо
Автор: BlackVetal
Дата сообщения: 24.10.2011 09:32
AlexCoRu
На c# уже 1.8
Автор: VadimLou
Дата сообщения: 25.10.2011 07:10
indapublic

[more]


Код:
procedure cxGrid_ExpandGroupLevel(AView: TcxGridTableView; ALevel: Integer);
var
i: Integer;
begin
if ALevel < 0 then
Exit;
AView.BeginUpdate;
try
AView.DataController.Groups.FullExpand;
for i := AView.DataController.RowCount - 1 downto 0 do
if AView.DataController.GetRowInfo(i).Level > ALevel then
AView.DataController.Groups.ChangeExpanding(i, False, True);
finally
AView.EndUpdate;
end;
end;

procedure cxGrid_ExpandGroupColumn(AView: TcxGridTableView; Column: TcxGridColumn);
begin
if Column.GroupIndex >= 0 then
cxGrid_ExpandGroupLevel(AView, Column.GroupIndex);
end;

Автор: xyebiz
Дата сообщения: 26.10.2011 09:03
Добрый день, подскажите пожалуйста как в cxGrid'е организовать сортировку таким образом, чтобы первые 4 строки, всегда оставались наверху вне зависимости от типа сортировки (по возр. или убыв.).

При этом есть условие не изменять сам запрос. Возможно ли такое?

Спасибо всем заранее.
Автор: X11
Дата сообщения: 26.10.2011 09:46
Как вариант. Сделать в таблице спец поле для сортировки. в первые 4 записи записывать значение 0 или 1,2,3,4. А в остальные записи уже сам думай что и как записывать.
Автор: xyebiz
Дата сообщения: 26.10.2011 10:54
Спасибо, поразмыслю над этим вариантом.

Просто думал, что гриде реализована гибкая настройка сортировки (учитывая насколько хорошо в нем сделан фильтр), но видимо это не так.

Добавлено:
Видимо такой вариант не прокатит, т.к. полей довольно много, все содержат разные типы и данные. По-мимо этого в гриде довольно большое кол-во строк и если делать спец. поле для сортировки, то его придется каждый раз заполнять от начала до конца, что не очень быстро получается.

Либо я несу бред.
Автор: X11
Дата сообщения: 26.10.2011 11:16
Сделай одно поле и сортируй в первую очередь по нему, а потом по остальным полям.
В этом поле у нужных четырёх записей запиши значение ноль, а у остальных пусть будет всегда 1 или больше.
Автор: Man_Without_Face
Дата сообщения: 26.10.2011 12:19
Есть такая процедура [more] procedure TfrmMain.acAcceptExecute(Sender: TObject);
var s: string;
i: integer;
ARowIndex: Integer;
ARecordIndex: Integer;
lok: integer;
begin
s := '';
with cxGridQDBTableView1.DataController do
for I := 0 to GetSelectedCount - 1 do
begin
ARowIndex := GetSelectedRowIndex(I);
ARecordIndex := GetRowInfo(ARowIndex).RecordIndex;
if (GetSelectedCount - 1) = i then
s := s + inttostr(Values[ARecordIndex, cxGridQDBTableView1ID.Index])
else
s := s + inttostr(Values[ARecordIndex, cxGridQDBTableView1ID.Index]) + ',';
end;

lok := qQuestionnaires.FieldByName('ID').AsInteger;

qTemp.SQL.Clear;
qTemp.SQL.Text := 'update dba.Questionnaires c '+
'set c.flag = 1 '+
'where c.ID in (' + s +')';

qTemp.ExecSQL;
qQuestionnaires.Close;
qQuestionnaires.Open;
qQuestionnaires.Locate('ID', lok, [loPartialKey]);
qQuestionnaires.Next;
end; [/more], висит на кнопке. Во вью multiselect := true. После второго нажатия на кнопку переменная "s" не заполняется. Как сделать выделение строки в Grid'e после первой отработки процедуры, как будто я нажал на нее мышкой?
Автор: X11
Дата сообщения: 26.10.2011 12:32

Цитата:
Как сделать выделение строки в Grid'e


Примерно так:


with <TcxGridDBTableView> do
if DataController.RecordCount > 0 then
Controller.FocusedRow.Selected := True;
Автор: Man_Without_Face
Дата сообщения: 26.10.2011 13:00
X11
Спасибо, теперь все отрабатывает нормально. Еще бы цвет выделенной строки сделать такой же как при выделении мышкой (а то так выделение еле заметно).
Автор: xyebiz
Дата сообщения: 26.10.2011 13:11

Цитата:
Сделай одно поле и сортируй в первую очередь по нему, а потом по остальным полям.


Я так понимаю, это есть групповая сортировка? Не подскажете как примерно это реализуется программно?
Автор: SergKhM
Дата сообщения: 26.10.2011 22:32
подскажите, что нужно сделать, чтобы после изменения стиля для колонки cxGrid эта колонка перерисовалась с нужным цветом.
При снятии назначенного стиля переоткрытие Query помогает, а вот при назначении пока не пройдешься курсором, нужного цвета не увидишь
Автор: linker_2009
Дата сообщения: 27.10.2011 00:10
SergKhM

<TcxGridDBTableView>.DataController.Refresh;
Автор: marser
Дата сообщения: 27.10.2011 07:15
SergKhM

Цитата:
подскажите, что нужно сделать, чтобы после изменения стиля для колонки cxGrid эта колонка перерисовалась с нужным цветом.
При снятии назначенного стиля переоткрытие Query помогает, а вот при назначении пока не пройдешься курсором, нужного цвета не увидишь

Принудительно заставте грид перерисоваться: <cxGrid>.Invalidate или <TcxGridDBTableView>.Invalidate

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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