powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Знатокам DBGridEh вопрос
19 сообщений из 19, страница 1 из 1
Знатокам DBGridEh вопрос
    #39258641
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Наткнулся на странное поведение DBGridEh.
Лежит этот грид на форме, привязан к TOracleDataSet (из DOA).

Делаю Insert, появляется новая строка, теперь в ячейку этой строки хочу вставить данные из буфера обмена.
Стандартным копипастом Ctrl-C/Ctrl-V

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

В проекте использована версия 3.6, менять пока её нельзя.
Но я проверил на версии 8.2 - поведение аналогичное.

В модуле DBGridEhImpExp.pas есть такой вот код, который и вставляет лишнюю строку:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
procedure TDBGridEhImport.ImportFromStream(AStream: TStream; IsImportAll: Boolean);
var i: Integer;
  ColList: TColumnsEhList;
  Inserting: Boolean;
  Appending: Boolean;

  procedure DoInserting;
  begin
    with DBGridEh.DataSource.Dataset do
      while not Eos do
      begin             
        //@@@ >>> if Appending then Append else Insert;   { это тот самый код }    
        ReadRecord(ImpCols);
        Post;
        if not Appending then Next;
      end
  end;
begin



Это всё хорошо, если я, например, копирую несколько значений из Excel и вставляю в грид - тогда он корректно создаёт строки в таблице.
Но вот просто вставить данные из буфера в ячейку нифига нельзя.

Может быть, есть решение без правки генофонда ?
поправить-то я могу его (например, в той строке проверять, находится ли DataSet в состоянии редактирования,
и если находится, то обойти эту строку),

но если есть другой вариант, готов выслушать.
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258738
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator> теперь в ячейку этой строки хочу вставить данные из буфера обмена.

Что значит "теперь в ячейку"? Редактор (курсор) где находится?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258751
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Гаджимурадов Рустамdefecator> теперь в ячейку этой строки хочу вставить данные из буфера обмена.

Что значит "теперь в ячейку"? Редактор (курсор) где находится?


в ячейке, естественно

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

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

1. Открываем таблицу, она пустая
2. Нажимаем Вставить запись в навигаторе
3. Становимся на поле и вставляем из буфера данные. Вставилось нормально, всё хорошо.
4. Добавляем вторую запись, тыкаем в поле и нажимаем Ctrl-V - данные из буфера вставляются в поле,
но при этом почему-то происходит коммит записи и курсор перескакивает на другую запись !

Но ведь не все поля ещё заполнены, и в случае, например, такого коммита с незаполненными Not Null полями ловим сообщение об ошибке из базы.

То есть при вставке из буфера обмена данных запись не должна самопроизвольно коммититься, а она упорно коммитится.
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258760
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получается повторить. Там случаем нет перевода строки во вставляемых данных?
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258761
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дядь Миш, EditActions => geaPasteEh
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258763
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
чччДДядь Миш, EditActions => geaPasteEh

так там False стоит
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258769
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Саппорт EhLib ответил вот что:
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258770
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorчччДДядь Миш, EditActions => geaPasteEh

так там False стоит
Там глюк.

2592040
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258772
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorСаппорт EhLib ответил вот что:
Смешно.
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258773
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator> в ячейке, естественно

Русский язык заварка, однозначно.
Понятно, что в ячейке. Редактор
активирован, текст вводится?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258777
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно. У меня (на 5.6) поначалу глючило, как у тебя (с выключенными EditActions), потом я поклацал их туда - сюда - заработало нормально. Тоже с выключенными EditActions.
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258814
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччД> потом я поклацал их туда - сюда - заработало нормально

Проверь как они хранятся и дефолтные значения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39258824
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
проблема-то не во вставке данных из буфера, а в том, что запись самопроизвольно коммитится
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39260700
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
чем больше ковыряю код EhLib, тем больше вижу, какая это какашка ((((
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39260874
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorчем больше ковыряю код EhLib, тем больше вижу, какая это какашка ((((
Ну, да, весенний бред.
Но зато хоть исходники вполне обозримы. В отличии от DevExpress.
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39261787
iobox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А свойство FrozenCols нормально работает? Я пробовал менять в 8.1 - вылетала ошибка "Range Error".
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39261857
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое чуйство что тестов у Ehlib вообще никаких, такой хороший грид, но к сожалению добавили массу фукционала который глючит с страшной силой, а люди которые заплатили не такие уж и маленькие деньги за годовую подписку числятся бета тестерами всех старых и вновь добавленных глюков. На форуме автор четко требует создавать демки глюка, без этого сообщения об ошибках посути игнорируются или делается вид что никакой проблемы нет :)
Глюки тащатся из версии в версию, отслеживать что там поправилось, а что еще в прогрессе практически невозможно. Багтрекер, не, не слышал :)
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39261967
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начиная ещё где-то с 4.* версии Дима стал
относиться к детище более коммерчески,
нежели профессионально, увы.

P.S. 3.6 фарева.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Знатокам DBGridEh вопрос
    #39274635
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вышла новая версия EhLib.v8.2.013
Ошибку пофиксили.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Знатокам DBGridEh вопрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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