Последняя версия DataExpress 3 beta от 12 февраля 2020 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

Перестали работать скрипты

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
Develop-Soft
Сообщения: 1217
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 114 раз
Поблагодарили: 288 раз
Контактная информация:

Перестали работать скрипты

Сообщение Develop-Soft » Сб авг 10, 2019 2:43 pm

1. Открытие записи в обход блокировки

Вот такого вида скрипт:

Код: Выделить всё

procedure Self_Grid_OnDblClick(Sender: TObject);
var Fm:TdxForm;
    id:integer;
begin
  id := Self.recid;
  Fm := TdxForm.Create(Self.FormCaption);
  Fm.OpenRecord(id);
  Fm.Edit;
  Fm.EditWindow.ShowModal;
  if Fm.EditWindow.ModalResult=mrOk then
  Fm.Post else Fm.Cancel;
  Fm.Free;
  Self.Refresh;
  Self.GoToRecord(id);
end;

procedure Form_Create;
begin
 Self.Grid.OnDblClick:=@Self_Grid_OnDblClick;
end;   

в предыдущих версиях в сетевой БД без проблем открывает занятую запись игнорируя блокировку.
В последней версии он перестал работать и открывает занятую запись только в режиме чтения:
Изображение
Как это можно исправить?

Аватара пользователя
Develop-Soft
Сообщения: 1217
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 114 раз
Поблагодарили: 288 раз
Контактная информация:

Перестали работать скрипты

Сообщение Develop-Soft » Сб авг 10, 2019 5:55 pm

2. Создание формы

Код: Выделить всё

procedure test(Sender: TObject);
begin
   TdxForm.Create('Форма 1').EditWindow.ShowModal;
end;

procedure Form_Create;
begin
 dxButton1.OnClick:=@test;
end;     

Аналогично: в предыдущих версиях работал, теперь выдает:

Код: Выделить всё

[Window Title]
Неожиданное исключение
[Content]
Опа! Извините за неудобства. Неожиданное исключение.
Класс исключения: EDatabaseError
Сообщение:  : Field not found : "id"
Модуль: Форма 11
Тип модуля: Форма
Процедура: TEST
[ОК]

Аватара пользователя
admin
Разработчик
Сообщения: 4698
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 23 раза
Поблагодарили: 191 раз

Перестали работать скрипты

Сообщение admin » Сб авг 10, 2019 9:18 pm

1. Так всегда и работало. Edit не позволяет менять редактируемую запись и возвращает статус записи.
2. Не знаю как это может работать правильно, если набор данных закрыт. В любом случае сначала надо открыть набор данных.

Аватара пользователя
Develop-Soft
Сообщения: 1217
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 114 раз
Поблагодарили: 288 раз
Контактная информация:

Перестали работать скрипты

Сообщение Develop-Soft » Сб авг 10, 2019 9:50 pm

admin писал(а):1. Так всегда и работало.

Предварительно отработал этот же скрипт на ранней версии (под рукой оказалась ноябрьская 18) - в ней оба экземпляра, висящие на локалхосте, показали ок+отмена... Могу снять видос.

2. Аналогично. Старая версия не выдала ошибок. Всплыло ни с того ни с сего при передаче созданной формы в другую процедуру, хотя раньше идентичный прием не сбоил ни в одном скрипте.

P.S. Больше волнует 1-й скрипт. То, что Edit в скрипте игнорит таблицу блокировки - вычислил уже давно и планировал применить это для изменения логики в расширении. Сейчас же столкнулся с тем, что Edit не работает так как раньше...

Аватара пользователя
admin
Разработчик
Сообщения: 4698
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 23 раза
Поблагодарили: 191 раз

Перестали работать скрипты

Сообщение admin » Сб авг 10, 2019 10:08 pm

1. Добавлены были пользователи?
2. А что за форма?

Аватара пользователя
Develop-Soft
Сообщения: 1217
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 114 раз
Поблагодарили: 288 раз
Контактная информация:

Перестали работать скрипты

Сообщение Develop-Soft » Сб авг 10, 2019 11:01 pm

1. Да. 1 и 2. С правами разработчика. Перепроверил несколько раз...

2. Наскоряк созданная форма с одним полем, ничего лишнего (это уже потом создал специально для проверки, чтобы исключить конфликты). А изначально поймал эту ошибку при передаче формы как объекта в TTreeView и попытке ее вызова из Data.

Аватара пользователя
admin
Разработчик
Сообщения: 4698
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 23 раза
Поблагодарили: 191 раз

Перестали работать скрипты

Сообщение admin » Вс авг 11, 2019 12:43 pm

1. Так не должно было работать. Я не помню, чтобы я делал там какие-то изменения. Если бы это сработало в текущей версии, то считалось бы ошибкой.
2. В любом случае это было неправильно. Набор данных должен быть открыт перед показом окна.

Аватара пользователя
Develop-Soft
Сообщения: 1217
Зарегистрирован: Вт мар 05, 2019 6:09 pm
Благодарил (а): 114 раз
Поблагодарили: 288 раз
Контактная информация:

Перестали работать скрипты

Сообщение Develop-Soft » Вс авг 11, 2019 12:45 pm

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