Обновлять не весь мастер а одну запись (xDataSet.Refresh), в Detail - есть поле типа CheckBox, на PropertiesChange стоит Refresh Master DataSet, когда master Grid находится в GridMode, то все работает нормально, но нет сортировки/итогов(можно прописать вручную, но пока не хочется), когда Master Grid в режиме LoadAllRecord, получаем ошибку.
» Использование DevExpress
SerjP75
И это понятно, что называется пилить сук на котором сидишь. Любое изменение мастер записи приводит к обновлению детейла. Предлагаю посылать PostMessage своей форме, как и сам делаю, со своим специальным параметром Msg = WM_... В двух других wParam и lParam можно передавать id мастер записи, индекс или любую другую идентификацию мастер записи.
И это понятно, что называется пилить сук на котором сидишь. Любое изменение мастер записи приводит к обновлению детейла. Предлагаю посылать PostMessage своей форме, как и сам делаю, со своим специальным параметром Msg = WM_... В двух других wParam и lParam можно передавать id мастер записи, индекс или любую другую идентификацию мастер записи.
Есть проблема определения состояния редактирования ячейки TableView в обработке события BeforePost DataSet-a. Сейчас, для записи данных из Editora в DataSet использую следующую конструкцию, например,
if TVSpecPRICE_DOC.Editing then
if not TVSpec.DataController.SetEditValue(TVSpecPRICE_DOC.Index, TVSpecPRICE_DOC.EditValue, evsValue) then
begin
Abort;
end;
Но нутром чую, что надо и можно как-то проще
Что посоветуете, как делаете сами?
if TVSpecPRICE_DOC.Editing then
if not TVSpec.DataController.SetEditValue(TVSpecPRICE_DOC.Index, TVSpecPRICE_DOC.EditValue, evsValue) then
begin
Abort;
end;
Но нутром чую, что надо и можно как-то проще
Что посоветуете, как делаете сами?
KIRILLKV
DataController.PostEditingData
на knowalagebase есть статья на эту тему
DataController.PostEditingData
на knowalagebase есть статья на эту тему
uranic2
Статью не нашёл, если есть её номер, то поделитесь плиз
В справке у TcxGridDBDataController нет метода PostEditingData, по исходникам - это public метод, спасибо
Статью не нашёл, если есть её номер, то поделитесь плиз
В справке у TcxGridDBDataController нет метода PostEditingData, по исходникам - это public метод, спасибо
поставил июньских девок - появилась проблема с фаст репортом ( на майских не было, на более ранних была)
yuish
Цитата:
А что за проблема, как проявляется?
Цитата:
поставил июньских девок - появилась проблема с фаст репортом ( на майских не было, на более ранних была)
А что за проблема, как проявляется?
Alex47
Если в проекте есть фаст и девки и сначало закрыть проект. а потом закрыть д7, то когда открываешь чистый (без проектов) д7 и потом загружаешь в него свой проект - выскакивает ошибка на то что компоненты фаста не могут быть загружены, игнорируешь это все, закрываешь д7, и открываешь заново - т.е. если дельфя грузится сразу с твоим проектом - все открывается нормально.
эксперементил с голыми проектами - просто кидал на форму 5 грид и фастовский репорт - таже картина.
Задавал вопрос в поддержку фаст репортам - помочь не смогли. проблемы не было вплодь до октябрьской версии девок, потом появилась, с майскими исчезла. с июньскими замечена была вновь.
Если в проекте есть фаст и девки и сначало закрыть проект. а потом закрыть д7, то когда открываешь чистый (без проектов) д7 и потом загружаешь в него свой проект - выскакивает ошибка на то что компоненты фаста не могут быть загружены, игнорируешь это все, закрываешь д7, и открываешь заново - т.е. если дельфя грузится сразу с твоим проектом - все открывается нормально.
эксперементил с голыми проектами - просто кидал на форму 5 грид и фастовский репорт - таже картина.
Задавал вопрос в поддержку фаст репортам - помочь не смогли. проблемы не было вплодь до октябрьской версии девок, потом появилась, с майскими исчезла. с июньскими замечена была вновь.
yuish
Если Борланд пишет, что не может загрузить библиотеку, то должна быть написана и причина.
Если Борланд пишет, что не может загрузить библиотеку, то должна быть написана и причина.
У меня нет ФР, весь проект практически на голых девках: cxScheduler, cxGrid, cxSpreadSheetBook, и всякая мелочь. Поставил июньский инсталл - и поймал такие ошибки:
Unit cxExportSchedulerLink was compiled with a different version of cxGraphics.TcxCanvas.SetFont
Unit cxExportSchedulerLink was compiled with a different version of cxSchedulerCustomControls.TcxCustomScheduler
и т.п.
Я понимаю, несовместимость версий, и т.д..
Как это побороть? Удалить все компоненты со всех форм и собирать проект с нуля? Или есть что-то, чего я не знаю?
Подскажите, пожалуйста.
Unit cxExportSchedulerLink was compiled with a different version of cxGraphics.TcxCanvas.SetFont
Unit cxExportSchedulerLink was compiled with a different version of cxSchedulerCustomControls.TcxCustomScheduler
и т.п.
Я понимаю, несовместимость версий, и т.д..
Как это побороть? Удалить все компоненты со всех форм и собирать проект с нуля? Или есть что-то, чего я не знаю?
Подскажите, пожалуйста.
2 uranic2
>DataController.PostEditingData
>на knowalagebase есть статья на эту тему
Такой статьи(тей) нет искал в различных вариантах, может подскажешь куда еще смотреть?
>DataController.PostEditingData
>на knowalagebase есть статья на эту тему
Такой статьи(тей) нет искал в различных вариантах, может подскажешь куда еще смотреть?
Это похоже на то, что ты не корректно удалил старую версию.
"юнит такой то скомпилен с другой версией модуля такого то", можно попробовать пересобрать все пакеты.
поищи модули cxGraphics, cxSchedulerCustomControls, они либо старые либо их по 2 чтуки рахзных на винте.
"юнит такой то скомпилен с другой версией модуля такого то", можно попробовать пересобрать все пакеты.
поищи модули cxGraphics, cxSchedulerCustomControls, они либо старые либо их по 2 чтуки рахзных на винте.
Вообще-то у меня есть сомнения, что можно использовать DataController.PostEditingData в событии BeforePost, а именно там предлогалось использовать этот метод.
clockover
Sorry, бес попутал
наверное лучше посмотреть метод PostEditValue
// See http://devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=A343&kbss=&prod=X8&tech=X2
//How to set a value of another Grid column during editing of a cell
Sorry, бес попутал
наверное лучше посмотреть метод PostEditValue
// See http://devexpress.com/Support/KnowledgeBase/ShowArticle.xml?kbid=A343&kbss=&prod=X8&tech=X2
//How to set a value of another Grid column during editing of a cell
uranic2
Вообще-то KIRILLKV так и делает, как в этом примере.
Добавлено:
Правда если речь идет о замене TVSpec.DataController.SetEditValue... на TVSpecPRICE_DOC.PostEditValue, то будет короче и правильнее.
Вообще-то KIRILLKV так и делает, как в этом примере.
Добавлено:
Правда если речь идет о замене TVSpec.DataController.SetEditValue... на TVSpecPRICE_DOC.PostEditValue, то будет короче и правильнее.
ArtemiyUO, да, и из-за этого тоже, я тут напарился капитально.
Короче, если у кого-то установлен TMS planner и не устанавливается в палитру шедулер девок - нужно скрыть в настройках палитры закладку планнера от TMS. Блин, геморрой, не без этого. В моём случае, если не скрывать закладку, - шедулер девок не устанавливается. Его "как бы" нет. И активация необходимых bpl в опциях проекта ничего не даёт - они просто-напросто отсутствуют, т.е. активировать, по сути, нечего. Мистика.
И хрен его знает, что за нах...
Сейчас отключил планнер TMS, установил девок, да забил...
Добавлено:
Да, кстати, и ещё один глюк: когда устанавливаю TMS в палитру, где уже прописаны девки - TMS прописывается, компилится и устанавливается нормально (без ошибок), но в закладках компонентов TMS ничего не видно. Просто пустые пэйджи.
Выход: инсталлировать TMS в числе самых первых, т.е. вообще первыми в списке.
Ну, это так, вдруг, кто-нибудь столкнётся с таким.
Короче, если у кого-то установлен TMS planner и не устанавливается в палитру шедулер девок - нужно скрыть в настройках палитры закладку планнера от TMS. Блин, геморрой, не без этого. В моём случае, если не скрывать закладку, - шедулер девок не устанавливается. Его "как бы" нет. И активация необходимых bpl в опциях проекта ничего не даёт - они просто-напросто отсутствуют, т.е. активировать, по сути, нечего. Мистика.
И хрен его знает, что за нах...
Сейчас отключил планнер TMS, установил девок, да забил...
Добавлено:
Да, кстати, и ещё один глюк: когда устанавливаю TMS в палитру, где уже прописаны девки - TMS прописывается, компилится и устанавливается нормально (без ошибок), но в закладках компонентов TMS ничего не видно. Просто пустые пэйджи.
Выход: инсталлировать TMS в числе самых первых, т.е. вообще первыми в списке.
Ну, это так, вдруг, кто-нибудь столкнётся с таким.
В новых Девках новый глюк со свойством Nullable в cxCurrencyEdit и возможно других контролах. Если у кого есть горячий фикс плз в студию.
Здравствуйте!
Наверное, нубские вопросы, все же:
1. Как можно подсветить строку в Memo (или RichEdit) так, как это делает сама IDE, когда, например, ставим брейкпоинты или когда обнаруживает ошибку в тексте. То есть, целиком, а не только имеющийся текст? Пробую рисовать на Canvas у Memo - не выходит.
Наверное, нубские вопросы, все же:
1. Как можно подсветить строку в Memo (или RichEdit) так, как это делает сама IDE, когда, например, ставим брейкпоинты или когда обнаруживает ошибку в тексте. То есть, целиком, а не только имеющийся текст? Пробую рисовать на Canvas у Memo - не выходит.
jicoff
Чтобы использовать PostEditValue необходимо получить редактор Item-a, а как это сделать в событии BeforePost ? (то, что он Editing понятно)
Чтобы использовать PostEditValue необходимо получить редактор Item-a, а как это сделать в событии BeforePost ? (то, что он Editing понятно)
Hi All
Нету ли у кого-нибудь наработок для отображения кастомных хинтов к каждой ячейке DE-грида?
Т.е. есть грид с каким-либо содержимым, необходимо отображать хинт для каждой ячейки, причем хинт должен содержать не информацию из ячейки, а какую-нибудь кастомную информацию (зависящую от содержимого ячейки). Кроме этого, хочецца чтобы хинт показывался независимо от того, влазят данные в ячейку или нет...
Надеюсь не все запутались
P.S. О перекрытии событий OnHint и т.п. знаю, но хотелось бы решить этот вопрос на более высоком уровне...
Добавлено:
Нашел ответ Здесь
Нету ли у кого-нибудь наработок для отображения кастомных хинтов к каждой ячейке DE-грида?
Т.е. есть грид с каким-либо содержимым, необходимо отображать хинт для каждой ячейки, причем хинт должен содержать не информацию из ячейки, а какую-нибудь кастомную информацию (зависящую от содержимого ячейки). Кроме этого, хочецца чтобы хинт показывался независимо от того, влазят данные в ячейку или нет...
Надеюсь не все запутались
P.S. О перекрытии событий OnHint и т.п. знаю, но хотелось бы решить этот вопрос на более высоком уровне...
Добавлено:
Нашел ответ Здесь
KIRILLKV
Полагаю в событии BeforePost можно использовать GridView.Controller.EditingController.Edit, а GridView.Controller.EditingController.EditingItem будет соответствовать TVSpecPRICE_DOC, при условии, что Item еще находится в состоянии редактирования.
Добавлено:
Полагаю, что вообще можно не проверять какой именно Item находится в состоянии редактирования. Надо просто проверить GridView.Controller.EditingController.IsEditing. При положительном ответе вызвать GridView.Controller.EditingController.Edit.PostEditValue.
Полагаю в событии BeforePost можно использовать GridView.Controller.EditingController.Edit, а GridView.Controller.EditingController.EditingItem будет соответствовать TVSpecPRICE_DOC, при условии, что Item еще находится в состоянии редактирования.
Добавлено:
Полагаю, что вообще можно не проверять какой именно Item находится в состоянии редактирования. Надо просто проверить GridView.Controller.EditingController.IsEditing. При положительном ответе вызвать GridView.Controller.EditingController.Edit.PostEditValue.
jicoff
Согласен, про EditingController забыл
Согласен, про EditingController забыл
есть Grid на просмотр, т.е. редактирование добавление изменение запрещено, нужно при клике на записи менять значение полей некоторых.. в обычном гриде на OnClick весил:
table.edit
присваиваю значения
table.post
тут вылетает с ошибкой
table.edit
присваиваю значения
table.post
тут вылетает с ошибкой
Вчера решил себе поставить DevExpress, после его установки Делфи свалилась намертво, пришлось переустанавливать.
valmont
Первое, что приходит в голову, пошли PostMessage своей форме на OnClick, там и редактируй. В гриде есть события, где нельзя менять DataSet, вылетает ошибка. Возможно это тот случай.
Первое, что приходит в голову, пошли PostMessage своей форме на OnClick, там и редактируй. В гриде есть события, где нельзя менять DataSet, вылетает ошибка. Возможно это тот случай.
hobest
если делать через сам грид, то меняется, но последние изменения не постятся...
и еще в этом случае не всегда срабатывает OnClick, т.е. кликаю на запись и ничего, потоврно кликаю.. срабатывает
если делать через сам грид, то меняется, но последние изменения не постятся...
и еще в этом случае не всегда срабатывает OnClick, т.е. кликаю на запись и ничего, потоврно кликаю.. срабатывает
valmont
Возможно поможет метод DataController.PostEditingData ранее здесь обсуждавшийся.
Возможно поможет метод DataController.PostEditingData ранее здесь обсуждавшийся.
jicoff
вприныпе да, ошибки нет.. но опять же последние изменние не постится...
и еще:
на первый клик по записям ничего не просиходит, на творой редатируются, на третий опять ничего и т.д.... через раз работает..
вприныпе да, ошибки нет.. но опять же последние изменние не постится...
и еще:
на первый клик по записям ничего не просиходит, на творой редатируются, на третий опять ничего и т.д.... через раз работает..
valmont
Не совсем понял, во всех столбцах не постятся или в последнем измененном столбце?
А почему обязательно на двойной щелчек нужно редактировать, зачем такая сложность. Можно запретить появление редактора на первый клик, зато разрешть на второй, т.е разрешить редактировать нужные поля и выставив GridView.OptionsBehavior.ImmediateEditor = false.
Добавлено:
На счет двойного щелчка погорячился, о нем не было речи.
Добавлено:
Вообще еще раз внимательно прочитал первый пост. Почему нельзя просто запретить редактировать одни поля и разрешить редактировать другие?
Не совсем понял, во всех столбцах не постятся или в последнем измененном столбце?
А почему обязательно на двойной щелчек нужно редактировать, зачем такая сложность. Можно запретить появление редактора на первый клик, зато разрешть на второй, т.е разрешить редактировать нужные поля и выставив GridView.OptionsBehavior.ImmediateEditor = false.
Добавлено:
На счет двойного щелчка погорячился, о нем не было речи.
Добавлено:
Вообще еще раз внимательно прочитал первый пост. Почему нельзя просто запретить редактировать одни поля и разрешить редактировать другие?
jicoff
редактировать нельзя вообще никакие поля...
нужно когда мышкой кликаешь на сами записи менять поле одно
вешаю на onClickCell и срабатывает почему что через раз.. при том что последние изменение не постится вообще..
пишу
table.edit
присваиваю значение и все.. сам грид постит, с методом DataController.PostEditingData тоже не постит последнее значение
редактировать нельзя вообще никакие поля...
нужно когда мышкой кликаешь на сами записи менять поле одно
вешаю на onClickCell и срабатывает почему что через раз.. при том что последние изменение не постится вообще..
пишу
table.edit
присваиваю значение и все.. сам грид постит, с методом DataController.PostEditingData тоже не постит последнее значение
Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
Предыдущая тема: Kylix
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.