powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отображение и редактирование в Grid
21 сообщений из 21, страница 1 из 1
отображение и редактирование в Grid
    #39936983
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

на форме типа "Счет" или "Заказ" есть грид, заполняется источником вью. Есть редактирование в гриде, в некоторых колонках грида встроен комбо, который по rightclick() становится текущим контролом.

Столкнулся с такой историей - на моей форме отображается 15 строк включительно, и при их редактировании проблем не возникает. Когда с помощью скрола переходим к другим строкам, начиная с ранее не видимой 16-й, то возникает какая-то ерунда - при rightclick либо равнозначном кейпресс не происходит смена контрола с текстбокса на комбо, предыдущее значение контрола теряется, фокус с ячейки скачет произвольно в другую, где повторяется та же история, редактирование невозможно.

Такая история возникает только в документах, где записей больше, чем видно в гриде на форме при загрузке.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937288
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Приведите репо-код, демонстрирующий проблему.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937294
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

я прошу меня извинить, но что именно привести? мне термин не знаком, я далекий от программирования самоучка
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937296
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример кода демонстрирующий проблему. Весь свой проект не надо выкладывать. В идеале надо сделать мини-проект где проблема проявляется и выложить его сюда.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937297
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

попробую
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937356
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделать пример не получается, это основная и самая нагруженная форма, куча таблиц, в том числе наверчено всего и всяких костылей в том гриде... с моими навыками я умру, прежде чем повторю ее.

Попробую объяснить на пальцах, вдруг да и поможет.

в гриде в рассматриваемой колонке есть текст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-й, и т.д.

Может хоть какие будут соображения в какую сторону думать?
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937375
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Курите DynamicCurrentControl, и тогда танцы с правой педалью мыши будут не нужны.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937392
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist
DmitryKn,

Курите DynamicCurrentControl, и тогда танцы с правой педалью мыши будут не нужны.


покурил, спасибо )

Проблема строки уходит. Приходит другая.

DynamicCurrentControl задал в ините грида, по условию редактирую, не редактирую. Контролы поменялись, и на первый план выходит комбо и первый же клик его раскрывает. Так получилось, что у меня этих комбо в строке 4 подряд, и от значение последующих зависит от предыдущих.
Другими словами, первый же тык в редактируемую строку очистит выбранные ранее данные, а заполняют их разные люди, и последние не владеют, что подвигло сделать такой выбор первых.

Правая педаль мыши нужна была для осознанного тыка в ячейку (
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937420
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем, убрал все методы из грида, раскраску, рефреш - все дефолтное, проблема не ушла.

при заполнении грида проблемы нет, в других строках - нет, но если начать с глюкнутой, то все строки грида выше - тоже глючат, ниже нет.

Не делать же отдельную форму для заполнения строк.

DynamicCurrentControl, как посоветовал PaulWist, работает, значит, моих косяков в форме скорее всего нет, но способ очень не удобный.

Если вдруг есть еще какое-либо не сильно оскорбительное соображение, прошу поделиться.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937690
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А для чего все это? Какую задачу решаете таким способом? Возможно, если озвучите саму задачу, Вам подскажут другой способ решения


Например, если Вы хотите чтобы в качестве выбранного значения отображалось что-то, чего нет в раскрывающемся списке. Ну, условно, в раскрывающемся списке числа 1,2,3, а когда выбрали, то в ячейке Grid отображаются слова "Один", "Два", "Три"

То для этого можно использовать "фичу" ComboBox. В качестве выбранного значения (Combo.DisplayValue) всегда отображается значение из первого столбца выпадающего списка Combo. Всегда. Это не изменить настройками. Однако первый столбец раскрывающегося списка можно скрыть, задав ему нулевую ширину

ComboBox.ColumnWidths = "0,100"

В результате, в качестве выбранного значения будет отображаться то, чего, вроде бы, нет в выпадающем списке. И это все без каких-либо замен объектов
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937758
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

здравствуйте!

в гриде форме несколько комбобоксов, их заполнение идет по такой схеме Тип - Группа - Наименование - Вид работы - Организация

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

После набора заказа, его несколько раз нужно редактировать - устанавливают сроки и результаты работы.
На этапе набора никаких проблем не возникает, пользователь последовательно становится на ячейку, правой клавишей активирует комбо и выбирает значение. Помимо ячеек с комбо есть и обычные (количество, номер и т.п.) с ними проблем тоже нет.
На этапе последующего редактирования, как правило, используется только один комбо, значения которого " ", "годен", "не годен".

На гриде формы видны 15 строк и обычно редко бывает, что бы число записей в документе было больше 15, и с проблемой сталкивались очень редко, при этом считалось, что пользователь совершил какие-то немыслимые действия, которые привели к порче документа неустановленным мистическим образом.
И вот случайно установили, что когда редактирование происходит именно в строке, следующей за видимой на форме, этот комбо не активируется, затем выяснили, что никакой не активируется, а вот в строках ниже работают. Но если неудачно попытаться изменить злополучную строку и не сделать отмену, точно также "подвисают" все строки выше, ниже - нет.

Я менял размер грида, эта магия сохраняется, например, если отображается 10, то проблема появляется в 11-й, и т.п.

Вид формы в процессе редактирования прикладываю

Модератор: Вложение удалено.

Модератор: Вложение удалено.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937760
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу извинить, не разобрался, как спрятать под спойлер
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937980
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не про то, как это работает, а про то, почему Вам надо именно прятать ComboBox и заменять его на TextBox? Пусть в режиме просмотра те же ComboBox и остаются, просто не активные. Сделать столбец ReadOnly. Ну да, в режиме просмотра будет не очень красиво. Ну и что?

Как вариант, можно рассмотреть дополнительную форму. Не ComboBox активизировать, а форму. По месту нажатия мышки. Там будут свои проблемы, но зато глюков с Combo тоже не будет.

Еще вариант - ShortCut-меню, пункты которого - это как раз элементы, которые наполняют ComboBox. Выбираешь пункт меню и он заменяет значение в поле таблицы. По сути, та же форма, но менее универсальная. Сейчас ведь все-равно ShortCut меню есть, вот и дополнить его следующим уровнем по пункту, который активизирует Combo
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937984
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

combo без text не очень удобно, поскольку, например, при последующем редактировании, пользователь обязательно ткнет в любой не нужный combo, хотя бы просто , что бы стать на строку, и тот выдаст список, что вызовет панику и непредсказуемые действие пользователя.

с ShortCut-меню еще не сталкивался, спасибо большое за совет, изучу. Если не пойдет, так сделаю, наверное, отдельной формой ввод, хотя мне это не очень нравится с эстетической точки зрения.

Но какова же природа глюка? Может мне просто форму переделать долгими весенними вечерами, делал я ее очень давно, и многие решения сегодня бы уже не применил.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937987
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn
Но какова же природа глюка? Может мне просто форму переделать долгими весенними вечерами, делал я ее очень давно, и многие решения сегодня бы уже не применил.

Переделай, т.к. мы тут тебе ничем не поможем. Ты там понаписал кучу всякой всячины, а тут хочешь чтобы по фотографии тебе диагноз поставили, извиняй, телепатов нет. Или даешь код с демонстрацией проблемы или сам разгребай.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39937999
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

ну я надеялся услышать, что, мол, да, есть у комбо или грида такой момент, в таком-то свойстве надо поставить то-то.

А по поводу кода - бывает так, что бы в одном и том же гриде один и тот же код работал бы не во всех идентичных случаях?

Попробую переделать.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39938006
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn
Dima T,

ну я надеялся услышать, что, мол, да, есть у комбо или грида такой момент, в таком-то свойстве надо поставить то-то.

Проблема сложная и редкая, поэтому шаблонных советов нет ни у кого.

DmitryKn
А по поводу кода - бывает так, что бы в одном и том же гриде один и тот же код работал бы не во всех идентичных случаях?

Не бывает. Бывает так что код отлично работает в одном режиме, а в другом никто не догадался его потестить.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39938142
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T,

все-таки сделал пример, оказалось все наверченное мною на форме и в гриде не влияет, таже проблема в практически пустом примере, так что это не было сложно.

Есть таблица с какими-то данными и из нее вью, есть грид на форме, комбо во 2-й и 3-й колонке, и кнопка выход.

На форме видны 12 строк, становимся на любую из них, правой клавишей активируем комбо и выбираем.
Делаем скролл на 13-ю строку и пытаемся правой клавишей мыши активировать комбо. После можно повторить попытки в строках выше и ниже.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39938548
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

может есть какие-либо идеи у кого-нибудь по поводу моего примера?
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39938572
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,
замените ActivateCell() на SetFocus() и не занимайтесь надеванием штанов через голову.
...
Рейтинг: 0 / 0
отображение и редактирование в Grid
    #39938589
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Sizov,

вы правы - через голову крайне неудобно :)

Спасибо вам большое, все получилось, и все не так страшно, как казалось.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / отображение и редактирование в Grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]