Иерархия классов MIS3 — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(TfmIBISTab)
 
(не показано 40 промежуточных версий 5 участников)
Строка 3: Строка 3:
 
== TfmIBISTab ==
 
== TfmIBISTab ==
  
Предок для форм которые  реализуют набор кнопок на главном RIBBON. Основной функционал мержить на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: '''Tfm<имя cущьности>Tab'''. Например TfmTeamTab
+
Предок для форм которые  реализуют набор кнопок на главном RIBBON. Основной функционал мержить (объединять) на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: '''Tfm<имя cущьности>Tab'''. Например TfmTeamTab
 +
 
 +
=== Создание ===
 +
 
 +
1. Создаем новую форму VCL (убираем из autocreate)
 +
 
 +
2. Добавляем:
 +
 
 +
  interface
 +
    uses fIBISWinTab
 +
 
 +
3. Наследуем
 +
  type
 +
    TfmVaccinDictTAB = class(fmIBISWinTab)
 +
 
 +
4. Добавляем в implementation
 +
  implementation
 +
  uses
 +
  fMIS3FrameworkUtil,dMain, dImages;
 +
 
 +
4. Секцию инициализации
 +
 
 +
initialization
 +
 
 +
  MIS3WintabList.Add('TfmVaccinDictTAB');
 +
  RegisterClass(TfmVaccinDictTAB );
 +
 
 +
 
 +
5. Дальше все как обычно
 +
Добавляем TdxBarmanager, прописываем ImageOption
 +
Добавляем TdxRibbon, дизайним кнопки
  
[[Категория:MIS3]]
 
  
 
== TfmIBISBaseForm ==
 
== TfmIBISBaseForm ==
Строка 20: Строка 49:
 
* CTRL+ENTER вызывает  обработчик кнопки "СОХРАНИТЬ И ЗАКРЫТЬ"
 
* CTRL+ENTER вызывает  обработчик кнопки "СОХРАНИТЬ И ЗАКРЫТЬ"
 
* поддерживает скины (а также изменение вида в зависимости от главной формы)
 
* поддерживает скины (а также изменение вида в зависимости от главной формы)
 +
* свойство    TagBig : Int64;  //  ID могуть быть очень большими, нужно чтобы отличать формы друг от друга
  
 
== TfmWINOnTask ==
 
== TfmWINOnTask ==
* устанавливает стиль окна
+
* весь функционал наследуемый от TfmIBISBaseForm и устанавливает стиль окна
  
 
Наследники от этого класса должны именоваться по правилу '''Tfm<имя сущности>WOT'''. Например: TfmTeamWOT, TfmTeamScheduleList
 
Наследники от этого класса должны именоваться по правилу '''Tfm<имя сущности>WOT'''. Например: TfmTeamWOT, TfmTeamScheduleList
 +
 +
=== Создание ===
 +
 +
1. Создаем новую форму VCL (убираем из autocreate)
 +
 +
2. Добавляем:
 +
interface
 +
  uses fWinOnTask,uSFMessages
 +
 +
3. Наследуем
 +
 +
type
 +
  TfmMedDocWOT = class(TfmWinOnTask)
 +
4.
 +
implementation
 +
uses
 +
  dImages, dMain, uSFVCLUtils
 +
 +
5. Прописываем конструктор
 +
  public
 +
    constructor Create(AOwner:TComponent;AID:Integer=0);overload;
 +
 +
constructor .. .Create(AOwner: TComponent; AID: Integer;
 +
  AREadOnly: Boolean);
 +
begin
 +
  inherited Create(AOwner);
 +
  dmImages.il16.GetIcon(45,Self.Icon); // Себе иконку
 +
 +
 +
6. Прописываем процедуру
 +
 +
procedure OpenMedDoc(AID:Int64);
 +
var
 +
  Form : TForm;
 +
begin
 +
  Form:=FindFormByTag(TfmMedDocWOT,AID);
 +
  if Form=nil then
 +
  begin
 +
    Form := TfmMedDocWOT.Create(Application,AID);
 +
    Form.Show;
 +
  end;
 +
end;
 +
 +
7. Дальше все как обычно
 +
* Добавляем TdxBarmanager, прописываем ImageOption
 +
* Добавляем TdxRibbon, дизайним кнопки
 +
 +
=== Создание из шаблона ===
 +
 +
# Копируем два файла IBIS\trunk\ER3\Source\SRCTemplate\fTileButtonWOT.*
 +
# Заменяем в обоих файлах TileButton на нужное
 +
# Переименовываем оба файла.
 +
# Подключаем в проект
 +
# для BIGInt немного правим процедуры
  
 
== TfmIBISWinList ==
 
== TfmIBISWinList ==
Строка 37: Строка 121:
 
** Фильтр (CTRL+F) - только shortcut
 
** Фильтр (CTRL+F) - только shortcut
 
* дабл клик на gride вызывает кнопку редактировать
 
* дабл клик на gride вызывает кнопку редактировать
 +
 +
Имена наследников должны оканчиваться на '''LIST'''. Например TfmTeamList
 +
 +
=== Создание ===
 +
1. Создаем новую форму VCL (убираем из autocreate)
 +
2. Добавляем:
 +
interface
 +
  uses fIBISWinList,uSFMessages
 +
 +
3. Наследуем
 +
type
 +
  TfmPacAmbList = class(TfmIBISWinList)
 +
 +
4. Добавляем в implementation
 +
implementation
 +
uses
 +
  fMIS3FrameworkUtil,dMain, dImages;
 +
 +
5.  Прописываем секцию инициализации
 +
initialization
 +
 +
  RegisterClass(TfmPacAmbList);
 +
  MIS3RibbonTabWinValues.Add('Списки пациентов=TfmPacAmbList');  // для вызова по умолчанию
 +
 +
6. Кладем на форму TdxBarManager, TdxRIBBON (лучше именно в этом порядке), добавляем закладку и кнопки. Прописываем свойства:
 +
* TdxBarManager.ImageOption
 +
 +
7. Не забываем менять следующие свойства у формы:
 +
* ICON  (можно в конструкторе  dmImages.il16.GetIcon(116,Self.Icon))
 +
* Caption
 +
 +
{{warning}} На событии onShow нельзя вызывать методы SetFocus у контролов.
 +
 +
{{warning}} Если есть OnCreate, OnClose , то они должны обязательно вызывать inherited
 +
 +
== TfmIBISaTopForm==
 +
* Наследник формы TfmWinOnTask. форма поверх другой формы (но не модальная). Используется в формах выбора, редакторах сущностей (т.е. пока не выбрали что либо, вернуться на вызывающую форму нельзя). В отличии от модальной формы блокирует переключение только на вызывающую форму.
 +
 +
 +
[[Категория:Руководство программиста MIS3]]

Текущая версия на 14:16, 26 марта 2018

MIS3-inheritance.png

TfmIBISTab

Предок для форм которые реализуют набор кнопок на главном RIBBON. Основной функционал мержить (объединять) на главный RIBBON закладки с кнопками вызова других форм. Наследники от этой формы должны именоваться по правилу: Tfm<имя cущьности>Tab. Например TfmTeamTab

Создание

1. Создаем новую форму VCL (убираем из autocreate)

2. Добавляем:

 interface
   uses fIBISWinTab

3. Наследуем

 type
   TfmVaccinDictTAB = class(fmIBISWinTab)

4. Добавляем в implementation

 implementation
 uses
 fMIS3FrameworkUtil,dMain, dImages;

4. Секцию инициализации

initialization

 MIS3WintabList.Add('TfmVaccinDictTAB');
 RegisterClass(TfmVaccinDictTAB );


5. Дальше все как обычно Добавляем TdxBarmanager, прописываем ImageOption Добавляем TdxRibbon, дизайним кнопки


TfmIBISBaseForm

  • устанавливает шорткаты и иконки для кнопок RIRIBBON с заголовками:
    • Добавить
    • Редактировать
    • Обновить
    • Удалить
    • Выбрать
    • Закрыть
  • Обрабатывает кнопку ESCAPE - если есть изменённые данные в актином контроле, то отменяет их, иначе закрывает форму
  • CTRL+S вызывает обработчик кнопки "СОХРАНИТЬ"
  • CTRL+ENTER вызывает обработчик кнопки "СОХРАНИТЬ И ЗАКРЫТЬ"
  • поддерживает скины (а также изменение вида в зависимости от главной формы)
  • свойство TagBig : Int64; // ID могуть быть очень большими, нужно чтобы отличать формы друг от друга

TfmWINOnTask

  • весь функционал наследуемый от TfmIBISBaseForm и устанавливает стиль окна

Наследники от этого класса должны именоваться по правилу Tfm<имя сущности>WOT. Например: TfmTeamWOT, TfmTeamScheduleList

Создание

1. Создаем новую форму VCL (убираем из autocreate)

2. Добавляем: interface

 uses fWinOnTask,uSFMessages

3. Наследуем

type

 TfmMedDocWOT = class(TfmWinOnTask)

4. implementation uses

 dImages, dMain, uSFVCLUtils

5. Прописываем конструктор

 public
   constructor Create(AOwner:TComponent;AID:Integer=0);overload;

constructor .. .Create(AOwner: TComponent; AID: Integer;

 AREadOnly: Boolean);

begin

 inherited Create(AOwner);
 dmImages.il16.GetIcon(45,Self.Icon); // Себе иконку


6. Прописываем процедуру

procedure OpenMedDoc(AID:Int64); var

 Form : TForm;

begin

 Form:=FindFormByTag(TfmMedDocWOT,AID);
 if Form=nil then
 begin
   Form := TfmMedDocWOT.Create(Application,AID);
   Form.Show;
 end;

end;

7. Дальше все как обычно

  • Добавляем TdxBarmanager, прописываем ImageOption
  • Добавляем TdxRibbon, дизайним кнопки

Создание из шаблона

  1. Копируем два файла IBIS\trunk\ER3\Source\SRCTemplate\fTileButtonWOT.*
  2. Заменяем в обоих файлах TileButton на нужное
  3. Переименовываем оба файла.
  4. Подключаем в проект
  5. для BIGInt немного правим процедуры

TfmIBISWinList

  • создает на главном RIBBON необходимые закладки
  • управляет видимостью закладки (TAB) на главном RIBBON в зависимости от активности формы. Т.е. если окно становится активным, то становиться актновной соответсвующая закладка на RIBBON
  • устанавливает imageindex и shortcut для следующих кнопок:
    • Добавить (плюс на доп клавиатуре)
    • Редактировать (F4)
    • Обновить (F5)
    • Закрыть (F12)
    • УДАЛИТЬ (Shift+DEL)
    • Фильтр (CTRL+F) - только shortcut
  • дабл клик на gride вызывает кнопку редактировать

Имена наследников должны оканчиваться на LIST. Например TfmTeamList

Создание

1. Создаем новую форму VCL (убираем из autocreate) 2. Добавляем: interface

 uses fIBISWinList,uSFMessages

3. Наследуем type

 TfmPacAmbList = class(TfmIBISWinList)

4. Добавляем в implementation implementation uses

 fMIS3FrameworkUtil,dMain, dImages;

5. Прописываем секцию инициализации initialization

 RegisterClass(TfmPacAmbList);
 MIS3RibbonTabWinValues.Add('Списки пациентов=TfmPacAmbList');  // для вызова по умолчанию

6. Кладем на форму TdxBarManager, TdxRIBBON (лучше именно в этом порядке), добавляем закладку и кнопки. Прописываем свойства:

  • TdxBarManager.ImageOption

7. Не забываем менять следующие свойства у формы:

  • ICON (можно в конструкторе dmImages.il16.GetIcon(116,Self.Icon))
  • Caption

Warning Внимание: На событии onShow нельзя вызывать методы SetFocus у контролов.

Warning Внимание: Если есть OnCreate, OnClose , то они должны обязательно вызывать inherited

TfmIBISaTopForm

  • Наследник формы TfmWinOnTask. форма поверх другой формы (но не модальная). Используется в формах выбора, редакторах сущностей (т.е. пока не выбрали что либо, вернуться на вызывающую форму нельзя). В отличии от модальной формы блокирует переключение только на вызывающую форму.