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

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

Автор: sergbl2003
Дата сообщения: 14.05.2005 23:27
Подскажите как отменить в QuantumGrid edit.
В pFIBDataSet->OnPostError хочу отменить оперцию Post. Чтобы юзер не нажимал 2 раза ESC.
cxgDBTableView1->DataController->Cancel(); - не помогает
Автор: CAPM32
Дата сообщения: 17.05.2005 18:02
В последней версии ДевЭкс обнаружен мерзкий глюк: при редактировании поля, имеющего маску типа emkRegEx - приложение уходит в глубокий ступор и вываливается с ошибкой StackOverflow.

Уточнение: проявляется только если параметры маски берутся из репозитория. Если прописать их локально - все работает как часы.

Кто-нибудь еще сталкивался?
Автор: VKab
Дата сообщения: 18.05.2005 09:36
Вот такой вопрос к знатокам:
VerticalGrid. Как сделать, чтобы вокруг заголовка CategoryRow при фокусе не появлялась пунктирная рамка? Ручная перерисовка CategoryRow не дали никакого результата - пунктирная рамка рисуется, причем не всегда точно определяются размеры рамки и она отображается не вокруг, а прямо по тексту заголовка.

Поможете?
Автор: xokc
Дата сообщения: 22.05.2005 23:28
Похоже выход один - файл cxVGrid, метод TcxvgPainter.DrawCategoryRowHeader(ARowHeader: TcxCustomRowHeaderInfo).
Там ищешь строки
if not cxRectIsEmpty(FocusRect) and not VerticalGrid.IsDesigning then
Canvas.DrawFocusRect(FocusRect);
Переписываешь их так, как тебе надо (напирмер вообще комментаришь) и пользуешься.
Автор: VKab
Дата сообщения: 25.05.2005 09:06
Эх, были бы исходники - проблем бы не было
Но все равно спасиб! Найду грид с исходниками - проверю....
Автор: Alex47
Дата сообщения: 25.05.2005 15:00
VKab

Цитата:
Эх, были бы исходники - проблем бы не было


Тебе сюда (смотри внимательнее):
http://forum.ru-board.com/topic.cgi?forum=35&topic=24919#lt
Автор: Kr_Alex
Дата сообщения: 26.05.2005 15:33
Использую cxDBTreeList основанный на временной таблице (SQL Server). Есть поле CheckBox. Мне нужно при Update этого поля (при установке в 1) сделать update всех верхних уровней

procedure TFReps.cxDBTreeList9InRepPropertiesEditValueChanged(
Sender: TObject);
begin
cxDBTreeList9.DataController.DataSet.Post;
dmRepPeriod.qUpdInRep.ExecSQL;
cxDBTreeList9.DataController.DataSet.Refresh;
end;

Вылезает ошибка - недостаточно сведений ключевого поля для обновления
В чем дело?

С точно такой же таблицей (по структуре) но не временной все нормально
Автор: xokc
Дата сообщения: 26.05.2005 21:27
Это особенность ADO. Добавь в изменяемую таблицу ключевое поле и всё будет работать.
Автор: Widoms
Дата сообщения: 27.05.2005 06:49
Подскажите как в девках добавить русский язык в интерфейсе ?
Помнится проскакивала какая я то компонента....но не могу найти.
Автор: Kr_Alex
Дата сообщения: 27.05.2005 09:17
xokc
Так есть ключевое поле. Временная таблица создается по скрипту сгенерированному на SQL, если интересно:
CREATE TABLE [#RepDebitCatDebit] (
[ID_CatDebit] [int] NOT NULL ,
[ID_CatDebitPre] [int] NULL ,
[SumDebitChCat] [decimal](18, 3) NULL ,
[SumDebitChCatPlan] [decimal](18, 3) NULL ,
[CatDebitName] [nvarchar] (200),
[CatDebitCode] [nvarchar] (20),
[InRep] [bit] DEFAULT (0),
CONSTRAINT [PK_RepDebitCatDebit] PRIMARY KEY CLUSTERED
(
[ID_CatDebit]
) ON [PRIMARY]
)

Автор: VKab
Дата сообщения: 27.05.2005 09:48
Widoms
Насчет компонента не слышал, но на сайте у девов встечал описание:
_http://www.devexpress.com/Support/BestPractices/.NET/Localization/

И еще в примерах их компонентов.
Удачи!

Добавлено:
Alex47
Смотрю постоянно, но к файлохранилищу ре3ус-а у меня доступа пока нет, поэтому
Но спасиб за отклик!
Автор: Alex47
Дата сообщения: 27.05.2005 13:18
Widoms

Цитата:
Подскажите как в девках добавить русский язык в интерфейсе ?


Я использую их процедуру cxSetResourceString.
Пример:
cxSetResourceString(@scxGridDeletingConfirmationCaption, 'Подтвердите');
Раньше пользовался компонентой стороннего разработчика, но отказался,
чтобы не зависеть от него в условиях частых обновлений от DevExpress
Автор: VKab
Дата сообщения: 27.05.2005 14:53
Подскажите, как отловить изменение стиля по умолчанию LookAndFeel?
Что-то не удается подцепить событие компонента StyleChanged из раздела LookAndFeel?
Что-то не так делаю
Автор: xxxxsoft
Дата сообщения: 28.05.2005 10:52
VKab
Если нужны исходники для VCL то есть сурсы от 4 мя!

Добавлено:
У кого нибудь есть пример работы с MemData в VCL?
Что за зверь придумал DevEx?
Автор: Alex47
Дата сообщения: 28.05.2005 13:43
xxxxsoft

Цитата:
У кого нибудь есть пример работы с MemData в VCL?
Что за зверь придумал DevEx?

MemData - один из вариантов построения таблиц в памяти,
наряду, к примеру, с kbmmemtable.
По свойствам и методам похожа на TTable.
Автор: xxxxsoft
Дата сообщения: 28.05.2005 14:11
Alex47
Понятно
Автор: xxxxsoft
Дата сообщения: 28.05.2005 20:48
Как сделать так, чтобы когда с помощью drag & drop я добавил запись в treelist он с позиционировался на эту ноду:

Код:
это собственно возникает, когда я щелкаю по три листу и получаю нужные данные
void __fastcall TfrmMain::tlGroupSelectionChanged(TObject *Sender)
{

if(ASite) {
if (ASite->Dragging())
return;
}
if (kontr)
kontr->GetOnGroup(((TcxDBTreeList *) Sender)->DataController->DataSet->FieldByName(((TcxDBTreeList *) Sender)->DataController->KeyField)->AsString);
}
а вот это происходит, когда заканчивается драг и дроп, только почему то он позиционируется на корень, а хотелось бы на ноду
void __fastcall TfrmMain::tlGroupDragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{

if (Sender == Source || !IsHitAtNode((TcxDBTreeList*)Sender, X, Y))
return;
TcxTreeListDataNode *AHitNode =
(TcxTreeListDataNode*)((TcxDBTreeList*)Sender)->HitTest->HitNode;
TcxDragControlObject * DragObject;
TcxGridSite * GSite;
DragObject = dynamic_cast<TcxDragControlObject*>(Source);
if (DragObject) GSite = dynamic_cast<TcxGridSite*>(DragObject->Control);
if(Sender->ClassNameIs("TcxDBTreeList") && DragObject!=NULL && GSite!=NULL) {
if (GSite->GridView->PatternGridView == tvKontragent) {
kontr->PutInGroup(AHitNode->KeyValue);
}
}
}
Автор: VKab
Дата сообщения: 28.05.2005 23:35
xxxxsoft
Не, спасибо, работаю в .NET.

Так что с LookAndFeel? Никто не сталкивался?
Автор: xxxxsoft
Дата сообщения: 29.05.2005 05:47
VKab
Я тоже наверно скоро на .Net перейду на MS VC++ . Net

Добавлено:
Проблемы с экспортом пишу:

Код:
ExportGrid4ToExcel("c:\\temp\\test.xls", MainGrid,false, false, false,"xls");
Автор: bask1982
Дата сообщения: 31.05.2005 12:56
Может кто-знает: как можно по-своему отсортировать колонки в VirtualGrid'е?
Заранее спасибо.
Автор: Alex47
Дата сообщения: 31.05.2005 14:08
CAPM32

Цитата:
В последней версии ДевЭкс обнаружен мерзкий глюк: при редактировании поля, имеющего маску типа emkRegEx - приложение уходит в глубокий ступор и вываливается с ошибкой StackOverflow.


Эта ситуация похожа на описанную недавно в новостной группе (30.05):

"I upgrade Grid From 5.2 to 5.5. But when i do it i've got a lot of error..
in edit change usually I get "stack over flow" error for all edit
components.
These errors occurs if edits have a "Repository".
When i drop repository problem to disappear.."

Там же предложен временный вариант лечения (я не проверял):

"now its works...
in cxGridCustomTableView in "TcxGridEditingController.PrepareEdit" procedure
they used "FEdit.RepositoryItem" in Grid5.5
when you change this procedure with old Grid5.2 version this error to
dissappear..
"
Еще один вариант лечения:

"It seems that if you define "Properties" for your editors, and also define a
Repository Item, they cause each other problems. The solution I've found use
either one or the other: If you have a repository item that you're using,
completely clear the "Properties" item of the editor -- in other words,
delete the "Properties" value in the object inspector so that it is blank.
If you're not using repository items, defining the properties works OK.
"


Автор: VKab
Дата сообщения: 31.05.2005 14:33
А в источнике данных отсортировать не помогает?
Автор: Kr_Alex
Дата сообщения: 01.06.2005 14:47
Есть cxGrid (cxView скажем простая таблица) нужно на DragDrop сделать что то (для этого нужно знать ID записи которую берут и ID записи на которую бросают)
1 - я знаю как узнать, а как узнать второе?

Код: procedure TForm1.v1DragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
showmessage(inttostr(v1.DataController.Values[v1.DataController.FocusedRecordIndex, v1ID_Depart.Index]));
end;
Автор: Alex47
Дата сообщения: 02.06.2005 08:46
Kr_Alex

Думаю, полезно будет прочитать:

http://www.devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=303&prod=&tech=&kbss=drag
Автор: Kr_Alex
Дата сообщения: 02.06.2005 09:17
Alex47
Спасибо, уже не первый раз помогаешь
Автор: VKab
Дата сообщения: 03.06.2005 11:44
Вопрос по ExtraGrid (что-то меня клинит )

Есть ExtraGrid в BoundMode и есть inplaceEditor типа PopupControlEdit, в котором собственно должны редактироваться данные текущей строки грида (данные редактируются через VerticalGrid в PopupControlEdit, в VerticalGrid должна отражаться только текщая запись).

Вопрос: как передать данные текущей строки для редактирования в VerticalGrid PopupControl'а?
1. Можно использовать VerticalGrid в UnboundMode и ручками добавлять/редактировать данные - не красиво, полей бывает оч. много.
2. VerticalGrid в BoundMode.

Тогда при редактировании существующей записи проблем не возникает: подключаем к VerticalGrid тотже источник данных, что и у Грида с фильтром по id текущей записи - все работает.
Проблема возникает при добавлении новой записи. Как передать в VerticalGrid еще не добавленную в DataSet запись? Какой DataSource должен быть у VerticalGrid?
Автор: Alex47
Дата сообщения: 05.06.2005 12:11
VKab


Цитата:
Есть ExtraGrid в BoundMode и есть inplaceEditor типа PopupControlEdit, в котором собственно должны редактироваться данные текущей строки грида (данные редактируются через VerticalGrid в PopupControlEdit, в VerticalGrid должна отражаться только текщая запись).


1. Наверное речь идет о QuantumGrid, а не о ExtraGrid.
2. Если QuantumGrid и VerticalGrid подключить к одному DataSource, запретив
Insert, Edit, Append в QuantumGrid и разрешив все это в VerticalGrid, то изменения
данных через VerticalGrid будут доступны для просмотра в QuantumGrid (возможно
через Refresh).
3. Возникает вопрос: чем VerticalGrid лучше отдельных контролов для
редактирования полей записи? К тому же DataController VerticalGrid засосет в себя
все записи DataSet (если не в Grid Mode), тоже самое сделает DataController
QuantumGrid (если не в Grid Mode). и соответственно будем иметь в памяти два
комплекта записей таблицы.
Автор: VKab
Дата сообщения: 06.06.2005 09:28
Alex47
1. Очепятка. Не ExtraGrid, а XtraGrid, под .NET. Но суть не меняется.
2. Я вообщем-то и хотел в VerticalGrid редактировать только текущую запись, заливать не весь DataController
3. Выбор в сторону VerticalGrid пал из-за большого количества полей для редактирования, требующих логической группировки и скрытия редко редактируемых полей. Ну и единобразия интерфейса.

Вообщем-то, перепробовав много вариантов, остановился на VerticalGrid в UnboundMode и добавление/редактирование записей вручную. Избавился от многих проблем с отслеживанием синхронизации. И кода пришлось писать меньше!
Автор: Alex47
Дата сообщения: 06.06.2005 14:59
VKab
Может и мне пригодится сие решение.
Автор: mln141
Дата сообщения: 07.06.2005 09:18
Здравствуйте!

Столкнулся с такой проблемой: при печати cxGrida через Printing System (задаю раскрытие всех уровней деталировки) на экране все уровни тоже становятся развернутыми. Можно ли сделать так, чтобы печаталось с раскрытием, а на экране оставалось как было (часть свернута, часть развернута). Создавать второй грид (не видимый на экране), переносить туда текущие фильтры, группировки и т.д. и печатать уже его, конечно можно, но не хочется.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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