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

Как определить представление формы?

Все о том как сделать что-то с помощью скриптов.
jurist23rus
Эксперт
Сообщения: 2655
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 13 раз

Как определить представление формы?

Сообщение jurist23rus » Чт июн 29, 2017 9:48 pm

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

if MainWindow.FormViews[MainWindow.Pages.ActivePage] = vtGridOnly then

Что-то такое, но не такое :) Есть у кого идеи?
Destiny is a very convenient word for those who never take decisions.

jurist23rus
Эксперт
Сообщения: 2655
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 13 раз

Re: Как определить представление формы?

Сообщение jurist23rus » Пт июн 30, 2017 10:06 am

Никто не знает. Admin только на Вас надежда. Выручайте.
Destiny is a very convenient word for those who never take decisions.

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

Re: Как определить представление формы?

Сообщение admin » Пт июн 30, 2017 1:35 pm

Э-эх. Ну можно ведь было поискать в дереве классов что такое FormViews?! На данный момент узнать какое представление у формы нельзя. Можно только создать Представление (TFormView) нужного вида или окно списка.

jurist23rus
Эксперт
Сообщения: 2655
Зарегистрирован: Пт сен 30, 2016 9:42 am
Откуда: Майкоп
Благодарил (а): 2 раза
Поблагодарили: 13 раз

Re: Как определить представление формы?

Сообщение jurist23rus » Сб июл 01, 2017 11:09 am

admin писал(а):поискать в дереве классов что такое FormViews

Я посмотрел, но это не добавило мне понимания для чего нужен этот класс. Какое его предназначение? Из дерева компонентов видно, что это потомок TCustomPanel, то есть панель, но для чего эта панель в DX я не понимаю.
Destiny is a very convenient word for those who never take decisions.

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

Re: Как определить представление формы?

Сообщение admin » Сб июл 01, 2017 2:34 pm

FormView - это контейнер для формы и табличной части. Он в закладках, окнах списка.

neitri
Мастер скриптов
Сообщения: 539
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: Как определить представление формы?

Сообщение neitri » Вс июл 02, 2017 3:35 pm

Может добавить свойство ViewType в класс TdxForm?
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

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

Re: Как определить представление формы?

Сообщение admin » Вс июл 02, 2017 5:06 pm

Добавлю.

neitri
Мастер скриптов
Сообщения: 539
Зарегистрирован: Пн фев 13, 2017 5:42 pm

Re: Как определить представление формы?

Сообщение neitri » Вс июл 02, 2017 8:40 pm

Можно так по извращяться

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

var
  SQLG: TdxSQLQuery;
  sl:TStringlist;
  l,i:integer;
  q:string;
 begin
  q:='select FORM from DX_FORMS where ID='+inttostr(self.id);
  debug(q);
  SQLG:=SQLSelect(q);
  sl:=Tstringlist.create;
  With SQLG do
  Begin
    While not EOF do
    Begin
      debug(SQLG['FORM']);
      sl.text:=SQLG['FORM'];
      for l:=0 to sl.count-1 do
        if pos('ViewType',sl.strings[l])>0 then
          begin
            i:=pos('=',sl.strings[l]);
            debug(trim(copy(sl.strings[l],i+1,length(sl.strings[l])-i)));
          end;
      MoveNext;
    End;
    Free;
  End;
  sl.free;
 end;
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

Re: Как определить представление формы?

Сообщение YurAnt » Вс июл 02, 2017 8:50 pm

Через базу... Оригинально :) .
Изображение

Vofka18
Опытный
Сообщения: 260
Зарегистрирован: Вс мар 04, 2018 4:54 pm
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: Как определить представление формы?

Сообщение Vofka18 » Ср июн 12, 2019 12:48 pm

Подскажите как можно проверить ViewType формы, по имени формы (то-есть не через self), при подключении расширения?
В расширении мне нужно, что бы пользователь мог выбрать только простые формы. Или при подключении выдавать сообщение, что выбранная форма не является простой. Но например такой код, всегда возвращает ViewType =vtGridOnly.

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

  fm := TdxForm.Create('имя формы для проверки');
  fm.Open();
  if(fm.viewType<>vtSimpleForm) then
  begin
    msgbox('Ошибка','Можно использовать только простую форму!');
    fm.free;
    exit;
  end;

или может возможно в тегах фильтр установить?