|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Добрый день, на форме типа "Счет" или "Заказ" есть грид, заполняется источником вью. Есть редактирование в гриде, в некоторых колонках грида встроен комбо, который по rightclick() становится текущим контролом. Столкнулся с такой историей - на моей форме отображается 15 строк включительно, и при их редактировании проблем не возникает. Когда с помощью скрола переходим к другим строкам, начиная с ранее не видимой 16-й, то возникает какая-то ерунда - при rightclick либо равнозначном кейпресс не происходит смена контрола с текстбокса на комбо, предыдущее значение контрола теряется, фокус с ячейки скачет произвольно в другую, где повторяется та же история, редактирование невозможно. Такая история возникает только в документах, где записей больше, чем видно в гриде на форме при загрузке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 11:37 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
DmitryKn, Приведите репо-код, демонстрирующий проблему. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 20:09 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
PaulWist, я прошу меня извинить, но что именно привести? мне термин не знаком, я далекий от программирования самоучка ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 20:34 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Пример кода демонстрирующий проблему. Весь свой проект не надо выкладывать. В идеале надо сделать мини-проект где проблема проявляется и выложить его сюда. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 20:44 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Dima T, попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
13.03.2020, 20:46 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Сделать пример не получается, это основная и самая нагруженная форма, куча таблиц, в том числе наверчено всего и всяких костылей в том гриде... с моими навыками я умру, прежде чем повторю ее. Попробую объяснить на пальцах, вдруг да и поможет. в гриде в рассматриваемой колонке есть текст1 и комбо. Райтклик : thisform.pgfOrd.pagOrd.grdDt.column2.CurrentControl='cboGdsTyp' thisform.pgfOrd.pagOrd.grdDt.column2.cboGdsTyp.Value = '' thisform.pgfOrd.pagOrd.grdDt.ActivateCell(thisform.pgfOrd.pagOrd.grdDt.ActiveRow,2) после выбора в комбо, lostfocus: THISFORM.pgfOrd.pagOrd.grdDt.column2.CurrentControl='text1' Форма выполнена так, что видны "на поверхности" 15 строк грида. Если, например, в документе 15+n строк, и при редактировании скролим, все правильно работает во всех строках кроме 16-й. Если поставить месседжбоксы в готфокус и лостфокус обоих контролов, то именно в строке, следующей за последней изначально видимой, в моем случае 16-й, то именно в этой строке текст1 получает фокус, но райтклик не происходит, а происходит сразу лостфокус комбо, затем на последнюю видимую строку перепрыгивает курсор и в новой строке получает фокус текст1 и там отрабатывает райтклик. Удаление конкретной записи ни к чему не приводит. Если изменить размер грида, так, что видны будут 10 строк - тогда проблема будет в 11-й, и т.д. Может хоть какие будут соображения в какую сторону думать? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 09:16 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
DmitryKn, Курите DynamicCurrentControl, и тогда танцы с правой педалью мыши будут не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 12:13 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
PaulWist DmitryKn, Курите DynamicCurrentControl, и тогда танцы с правой педалью мыши будут не нужны. покурил, спасибо ) Проблема строки уходит. Приходит другая. DynamicCurrentControl задал в ините грида, по условию редактирую, не редактирую. Контролы поменялись, и на первый план выходит комбо и первый же клик его раскрывает. Так получилось, что у меня этих комбо в строке 4 подряд, и от значение последующих зависит от предыдущих. Другими словами, первый же тык в редактируемую строку очистит выбранные ранее данные, а заполняют их разные люди, и последние не владеют, что подвигло сделать такой выбор первых. Правая педаль мыши нужна была для осознанного тыка в ячейку ( ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 13:29 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
В общем, убрал все методы из грида, раскраску, рефреш - все дефолтное, проблема не ушла. при заполнении грида проблемы нет, в других строках - нет, но если начать с глюкнутой, то все строки грида выше - тоже глючат, ниже нет. Не делать же отдельную форму для заполнения строк. DynamicCurrentControl, как посоветовал PaulWist, работает, значит, моих косяков в форме скорее всего нет, но способ очень не удобный. Если вдруг есть еще какое-либо не сильно оскорбительное соображение, прошу поделиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.03.2020, 16:24 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
А для чего все это? Какую задачу решаете таким способом? Возможно, если озвучите саму задачу, Вам подскажут другой способ решения Например, если Вы хотите чтобы в качестве выбранного значения отображалось что-то, чего нет в раскрывающемся списке. Ну, условно, в раскрывающемся списке числа 1,2,3, а когда выбрали, то в ячейке Grid отображаются слова "Один", "Два", "Три" То для этого можно использовать "фичу" ComboBox. В качестве выбранного значения (Combo.DisplayValue) всегда отображается значение из первого столбца выпадающего списка Combo. Всегда. Это не изменить настройками. Однако первый столбец раскрывающегося списка можно скрыть, задав ему нулевую ширину ComboBox.ColumnWidths = "0,100" В результате, в качестве выбранного значения будет отображаться то, чего, вроде бы, нет в выпадающем списке. И это все без каких-либо замен объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 00:12 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
ВладимирМ, здравствуйте! в гриде форме несколько комбобоксов, их заполнение идет по такой схеме Тип - Группа - Наименование - Вид работы - Организация данные берутся из курсоров , т.е. - для такого типа выбираем группу, для группы - название, для группы же - вид возможной работы - и предприятия, которые могут ее выполнить. , потом в строку на основании этих выборов подтягивается цены, сроки, и заполняется результат. После набора заказа, его несколько раз нужно редактировать - устанавливают сроки и результаты работы. На этапе набора никаких проблем не возникает, пользователь последовательно становится на ячейку, правой клавишей активирует комбо и выбирает значение. Помимо ячеек с комбо есть и обычные (количество, номер и т.п.) с ними проблем тоже нет. На этапе последующего редактирования, как правило, используется только один комбо, значения которого " ", "годен", "не годен". На гриде формы видны 15 строк и обычно редко бывает, что бы число записей в документе было больше 15, и с проблемой сталкивались очень редко, при этом считалось, что пользователь совершил какие-то немыслимые действия, которые привели к порче документа неустановленным мистическим образом. И вот случайно установили, что когда редактирование происходит именно в строке, следующей за видимой на форме, этот комбо не активируется, затем выяснили, что никакой не активируется, а вот в строках ниже работают. Но если неудачно попытаться изменить злополучную строку и не сделать отмену, точно также "подвисают" все строки выше, ниже - нет. Я менял размер грида, эта магия сохраняется, например, если отображается 10, то проблема появляется в 11-й, и т.п. Вид формы в процессе редактирования прикладываю Модератор: Вложение удалено. Модератор: Вложение удалено. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 11:14 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Прошу извинить, не разобрался, как спрятать под спойлер ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 11:16 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Я не про то, как это работает, а про то, почему Вам надо именно прятать ComboBox и заменять его на TextBox? Пусть в режиме просмотра те же ComboBox и остаются, просто не активные. Сделать столбец ReadOnly. Ну да, в режиме просмотра будет не очень красиво. Ну и что? Как вариант, можно рассмотреть дополнительную форму. Не ComboBox активизировать, а форму. По месту нажатия мышки. Там будут свои проблемы, но зато глюков с Combo тоже не будет. Еще вариант - ShortCut-меню, пункты которого - это как раз элементы, которые наполняют ComboBox. Выбираешь пункт меню и он заменяет значение в поле таблицы. По сути, та же форма, но менее универсальная. Сейчас ведь все-равно ShortCut меню есть, вот и дополнить его следующим уровнем по пункту, который активизирует Combo ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 18:59 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
ВладимирМ, combo без text не очень удобно, поскольку, например, при последующем редактировании, пользователь обязательно ткнет в любой не нужный combo, хотя бы просто , что бы стать на строку, и тот выдаст список, что вызовет панику и непредсказуемые действие пользователя. с ShortCut-меню еще не сталкивался, спасибо большое за совет, изучу. Если не пойдет, так сделаю, наверное, отдельной формой ввод, хотя мне это не очень нравится с эстетической точки зрения. Но какова же природа глюка? Может мне просто форму переделать долгими весенними вечерами, делал я ее очень давно, и многие решения сегодня бы уже не применил. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 19:12 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
DmitryKn Но какова же природа глюка? Может мне просто форму переделать долгими весенними вечерами, делал я ее очень давно, и многие решения сегодня бы уже не применил. Переделай, т.к. мы тут тебе ничем не поможем. Ты там понаписал кучу всякой всячины, а тут хочешь чтобы по фотографии тебе диагноз поставили, извиняй, телепатов нет. Или даешь код с демонстрацией проблемы или сам разгребай. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 19:20 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Dima T, ну я надеялся услышать, что, мол, да, есть у комбо или грида такой момент, в таком-то свойстве надо поставить то-то. А по поводу кода - бывает так, что бы в одном и том же гриде один и тот же код работал бы не во всех идентичных случаях? Попробую переделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 19:46 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
DmitryKn Dima T, ну я надеялся услышать, что, мол, да, есть у комбо или грида такой момент, в таком-то свойстве надо поставить то-то. Проблема сложная и редкая, поэтому шаблонных советов нет ни у кого. DmitryKn А по поводу кода - бывает так, что бы в одном и том же гриде один и тот же код работал бы не во всех идентичных случаях? Не бывает. Бывает так что код отлично работает в одном режиме, а в другом никто не догадался его потестить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2020, 20:23 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Dima T, все-таки сделал пример, оказалось все наверченное мною на форме и в гриде не влияет, таже проблема в практически пустом примере, так что это не было сложно. Есть таблица с какими-то данными и из нее вью, есть грид на форме, комбо во 2-й и 3-й колонке, и кнопка выход. На форме видны 12 строк, становимся на любую из них, правой клавишей активируем комбо и выбираем. Делаем скролл на 13-ю строку и пытаемся правой клавишей мыши активировать комбо. После можно повторить попытки в строках выше и ниже. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 11:06 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
Добрый день, может есть какие-либо идеи у кого-нибудь по поводу моего примера? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 09:45 |
|
отображение и редактирование в Grid
|
|||
---|---|---|---|
#18+
DmitryKn, замените ActivateCell() на SetFocus() и не занимайтесь надеванием штанов через голову. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2020, 10:12 |
|
|
start [/forum/topic.php?fid=41&fpage=5&tid=1581577]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 416ms |
0 / 0 |