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

Открыть запись в режиме просмотра

Все о том как сделать что-то с помощью скриптов.
Alexis
Новичок
Сообщения: 20
Зарегистрирован: Вс сен 23, 2018 2:07 pm
Благодарил (а): 2 раза

Открыть запись в режиме просмотра

Сообщение Alexis » Пн май 06, 2019 7:27 pm

Такая ситуация: есть простая форма с запросом и кнопкой. Как из этой формы открыть в модальном окне запись из другой формы (справочника в моей базе) в режиме просмотра? Чтобы при этом не было перехода к другой вкладке.
ID нужной записи узнаю. А вот что написать в обработчике OnClick кнопки, чтоб запись открылась на просмотр чего-то не соображу.

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

Re: Открыть запись в режиме просмотра

Сообщение Develop-Soft » Пн май 06, 2019 7:42 pm

1. Можно просто открыть окно методом ShowModal без последующей обработки ModalResult (изменения нечем будет сохранить)
или
2. Выполнить TdxForm.Cancel после открытия записи (поля формы станут недоступны для изменения).

kok80
Эксперт
Сообщения: 289
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 12 раз

Re: Открыть запись в режиме просмотра

Сообщение kok80 » Пн май 06, 2019 11:28 pm

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

procedure FormShowModal(FormName:string; RecID:integer; EditFlag:boolean);
var fm:tdxform;
begin
  if RecID = 0 then
    exit;
  fm:=TdxForm.create(FormName);
  fm.OpenRecord(recid);
  if EditFlag then
    fm.edit;
  if fm.EditWindow.ShowModal=1 then
    fm.post
  else
    fm.cancel;
  fm.free;
end;

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

Re: Открыть запись в режиме просмотра

Сообщение Develop-Soft » Вт май 07, 2019 12:09 am

Ну да. Как-то так...

Alexis
Новичок
Сообщения: 20
Зарегистрирован: Вс сен 23, 2018 2:07 pm
Благодарил (а): 2 раза

Re: Открыть запись в режиме просмотра

Сообщение Alexis » Вт май 07, 2019 9:51 am

Спасибо, помогли! Все работает!
Чтобы открыть на просмотр запись из формы (справочника "Продукция") нужно знать ее id. На другой форме, в полях запроса есть поля этого объекта (Продукция|Название, например). Я добавлял в запрос дополнительное поле, которое содержит сам объект (Продукция), точнее id этого объекта и таким образом вызываю нужную запись на просмотр.

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

procedure ShowGuide(Sender: TObject);
var recid:Integer;
begin
  recid:=dxQueryGrid1.Fields['Ид_Продукции'];
  FormShowModal('Продукция',recid,false);
end;

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