
- •Аннотация
- •Введение
- •Примечание:
- •2.5 Разработка структуры по
- •2.5.1 Описание основных модулей, используемых в приложении в Таблице 2.4 описаны основные модули, используемые в приложении.
- •Рассмотрим взаимодействие программных модулей на диаграмме классов (Рис. 2.8).
- •2.6 Инструкция пользователя
- •График, построенный на основе Таблицы 3.1, приведен на Рис. 3.2.
- •Для оценки стоимости по или затрат на разработку в денежном выражении возможно составить таблицу следующего вида:
- •Стоимость часа оплаты труда разработчика с единым социальным налогом (0,34 от зарплаты) рассчитывается по формуле:
- •Для режима работы пк, соответствующего наличию выходных и праздничных дней, и 8-ми часовому рабочему дню, можно считать часовую амортизацию по формуле:
- •Рассчитаем затраты на разработку и приобретение программных комплексов:
- •Предполагается, что временной ресурс имеющегося оборудования:
- •Оценка затрат на информационное обеспечение в денежном выражении по каждому этапу проектирования представлена в таблице 5.8.
- •Затраты на организационное обеспечение включают расходы на написание инструкции пользователю и обучение сотрудников работе с проектом.
- •Годовая заработная плата сотрудника факультета повышения квалификации преподаваталей (фпкп) равна:
- •Приложение б. Код программы
- •Приложение в. Текст запросов Настройка модуля (Get_Params_Module )
- •Вид уровня образования (k_l_f)
- •Группы повышения квалификации (r_c_Groups)
- •Добавление спец.Мет.Компл. (Add_Com_Spec)
- •Добавление специальности (Add_Spec)
- •Должности в комиссии (Get_Posts_For_Members)
- •Изменение спец.Мет.Компл. (Update_Com_Spec)
- •Источники финансирования (s_f)
- •Комиссии (Get_List_Commissions_By_id_d_And_id_Spec)
- •Кураторы группы (Get_List_Curators_By_id_eg)
- •Методический комплекс (Met_Complex)
- •Организаторы обучения (Spec_div)
- •План пк (отчет) (Get_Data_For_Plan)
- •Позиции плана пк (r_c_Plan)
- •Программы (Get_List_Spec_By_Params)
- •Специальности мет.Комл. (Com_Spec)
- •Список институтов (Get_List_Institutes)
- •Список организаторов(подр) (Get_List_Divisions)
- •Удаление спец.Мет.Компл. (Delete_Com_Spec)
- •Удаление специальности (Delete_Spec)
- •Учебные группы (Ed_Groups)
- •Члены комиссии (Get_Members_Commission_By_id)
- •Должности (Posts)
- •Основания зачисления (Kind_Basis_Action)
- •Основания окончания (End_Education_kba)
- •Параграфы планов пк (Plan_Paragraphs)
- •Приказы человека (Orders)
- •Ссылка на договор (Contracts)
- •Сформировать начисление (Create_New_Nach)
- •Удаление студента (Delete_Student)
- •Участники (Listeners)
- •Виды сертификатов (Get_Kind_Documents)
- •Выдать сертификат об окончании (Make_New_Cert_By_Params)
- •Забрать сертификат (Delete_Certificate)
- •Поиск журнала (Find_Magazine_Reg_Dip)
- •Регистрационный номер в журнале (Get_Reg_Number_By_id_Paragraph)
- •Автопредставитель (Autorepr)
- •Виды договоров (Kind_Order)
- •Виды направлений (Kind_Direction)
- •Добавить направление (Add_Direction)
- •Добавление договора (Add_Contract)
- •Изменение параметра (Update_pc)
- •Параметры договора (Contr_Params)
- •Представители в договоре (Get_List_Representatives_By_id_Contract)
- •Удаление договора (Delete_Contract)
- •Прошедшее обучение (Get_Stat_Data_By_Period)
- •Приложение г. Образцы документов
- •Федеральное агентство железнодорожного транспорта
- •72 Учебных часа
- •Договор № _________ на оказание услуг по повышению квалификации
- •1. Предмет Договора
- •2. Цена и порядок расчетов
- •3. Права и обязанности сторон
- •4. Ответственность сторон
- •5. С рок действия Договора
- •6. Прочие условия
- •7. Адреса и банковские реквизиты сторон
- •Акт сдачи-приемки оказанных услуг
- •Федеральное агентство железнодорожного транспорта
- •Московский государственный университет путей сообщения (миит)
Приложение б. Код программы
program pk
uses
Forms,
Windows,
SysUtils,
Main in 'модули\Главная\Main.pas' {Form_Main},
About_cx in 'общие модули\Формы\О программе\About_cx.pas' {Form_About},
SysServices in 'общие модули\System\SysServices.pas',
wrappers in 'общие модули\System\wrappers.pas',
GridEditClass in 'общие модули\System\GridEditClass.pas',
LP_u_CX_tools in 'общие модули\System\LP_u_CX_tools.pas',
LP_u_MA_Interface in 'общие модули\System\LP_u_MA_Interface.pas',
Standart_new in 'общие модули\System\Standart_new.pas',
SqlStringList in 'общие модули\System\SqlStringList.pas',
Get_Admin_Data in 'общие модули\SQL_Data\Get_Admin_Data.pas',
Get_Single_Data in 'общие модули\SQL_Data\Get_Single_Data.pas',
Get_PK_PPS_Data in 'общие модули\SQL_Data\Get_PK_PPS_Data.pas',
uListener in 'общие модули\System\uListener.pas',
Event in 'модули\Мероприятия\Event.pas' {Form_Event},
SE in 'общие модули\Формы\Поиск\SE.pas' {Form_SE},
Find_Org in 'общие модули\Формы\Организации\Find_Org.pas' {Form_Find_Org},
UnivQuestionnaire in 'общие модули\Формы\Анкета\UnivQuestionnaire.pas' {FUnivQuestionare},
photo_U in 'общие модули\Формы\фото\photo_U.pas' {fPhoto},
New_For_All in 'общие модули\Формы\Ввод новых значений\New_For_All.pas' {Form_New_For_All},
address_U in 'общие модули\Формы\адреса\address_U.pas' {fAddr},
UnitDocuments in 'общие модули\Формы\Документы\UnitDocuments.pas' {FormDocuments},
RegService in 'общие модули\System\RegService.pas',
WebCam in 'общие модули\Формы\фото\WebCam.pas' {WebCamera},
Dictionaries in 'модули\Справочники\Dictionaries.pas' {Form_Dictionaries},
Plan in 'модули\Планирование\Plan.pas' {Form_Plan},
SysEnvironment in 'общие модули\System\SysEnvironment.pas';
{$R *.res}
const
KB_LANG_RUSSIAN = (SUBLANG_DEFAULT shl 10) or LANG_RUSSIAN;
begin
if not MSystemServices.Connect(True, True)
then Exit;
if System.DebugHook >0
then MSystemServices.IsDebugMode:=True;
// Включим по-умолчанию русский язык!
LoadKeyboardLayout(PChar(IntToHex(KB_LANG_RUSSIAN, 8)), KLF_ACTIVATE);
Application.Initialize;
//локализация DevExpress
LoadLocalizerOnce;
vnSessionAgent.RefreshLoginInfo;
vnSessionAgent.RefreshRolesInfo;
ShowWindow(Application.Handle, SW_HIDE);
Application.Title := 'Повышение квалификации';
Application.CreateForm(TForm_Main, Form_Main);
Application.Run;
end.
unit Main
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, dxBar, dxBarExtItems, cxClasses, ActnList, ImgList,
cxPropertiesStore, About_cx, Plan, Event, Dictionaries;
const
{ Путь для сохранения в реестре }
Reg_Path = '\Software\AS Pilot group\Parameters\Модуль повышения квалификации';
type
TForm_Main = class(TForm)
cxPropertiesStore1: TcxPropertiesStore;
cxPropertiesStore2: TcxPropertiesStore;
ImageList_Aple: TImageList;
ImageList16: TImageList;
ActionList1: TActionList;
Action_Plan: TAction;
Action_Exit: TAction;
ActionList2: TActionList;
Action_Options: TAction;
dxBarManager1: TdxBarManager;
dxBarManager1Bar1: TdxBar;
MAbout: TdxBarSubItem;
dxBarLargeButton5: TdxBarLargeButton;
MNastr: TdxBarSubItem;
dxBarLargeButton6: TdxBarLargeButton;
dxBarLargeButton4: TdxBarLargeButton;
dxBarLargeButton1: TdxBarLargeButton;
Panel_Main: TPanel;
Panel1: TPanel;
Action_Message: TAction;
dxBarButton1: TdxBarButton;
Action_Change_User: TAction;
Action_Refresh_Roles: TAction;
dxBarButton2: TdxBarButton;
dxBarLargeButton2: TdxBarLargeButton;
Action_Event: TAction;
dxBarLargeButton3: TdxBarLargeButton;
Action_Dictionaries: TAction;
procedure Action_MessageExecute(Sender: TObject);
procedure Action_Change_UserExecute(Sender: TObject);
procedure Action_Refresh_RolesExecute(Sender: TObject);
procedure Action_ExitExecute(Sender: TObject);
procedure Action_AboutExecute(Sender: TObject);
procedure Action_PlanExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Action_EventExecute(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Action_DictionariesExecute(Sender: TObject);
private
{ Private declarations }
{ Форма "О программе" }
F_About: TForm_About;
{ Форма "Планирование" }
F_Plan: TForm_Plan;
{ Форма "Мероприятия" }
F_Event: TForm_Event;
{ Форма "Справочники" }
F_Disctionaries: TForm_Dictionaries;
public
{ Public declarations }
ERP_NAME: string;
{ Обновить роли }
procedure Refresh_Roles;
{ Скрыть все }
procedure Hide_All;
end;
var
Form_Main: TForm_Main;
implementation
{$R *.dfm}
uses SysServices, LP_u_MA_Interface, grideditclass, standart_new, Get_PK_PPS_Data;
{ Обмен сообщениями }
procedure TForm_Main.Action_MessageExecute(Sender: TObject);
begin
(vnListAgent as IvnMessageAgent).MA_MessageWindow;
end;
{ Изменить текущего пользователя }
procedure TForm_Main.Action_Change_UserExecute(Sender: TObject);
begin
if not MSystemServices.Connect(True)
then Close
{ Обновить роли нового пользователя }
else Action_Refresh_Roles.Execute;
end;
{ Справочники }
procedure TForm_Main.Action_DictionariesExecute(Sender: TObject);
begin
{ Скрываем все }
Hide_All;
{ Если формы нет, создаем ее, инициализируем, проверяем роли и встраиваем }
if F_Disctionaries = nil
then begin
F_Disctionaries := TForm_Dictionaries.Create(Self);
F_Disctionaries.Init(Reg_Path+'\Справочники');
F_Disctionaries.Refresh_Roles;
F_Disctionaries.ManualDock(Panel1, nil, alClient);
end;
{ Показываем форму }
F_Disctionaries.Realign;
F_Disctionaries.PageControl_Main.Realign;
F_Disctionaries.Panel_Main.Realign;
F_Disctionaries.Panel_Filter.Realign;
F_Disctionaries.PopupEdit_Filter_Org.Realign;
if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Disctionaries.Caption
else Self.Caption := F_Disctionaries.Caption;
Application.Title := Self.Caption;
F_Disctionaries.Show;
end;
{ Скрыть все формы }
procedure TForm_Main.Hide_All;
begin
if F_Plan <> nil
then
if F_Plan.Visible
then F_Plan.Hide;
if F_Event <> nil
then
if F_Event.Visible
then F_Event.Hide;
//Self.Caption := My_Get_Version('InternalName');
Self.Caption := ERP_NAME;
Application.Title := Self.Caption;
end;
{ Обновить роли пользователя }
procedure TForm_Main.Refresh_Roles;
var data: olevariant; i: integer;
begin
data := MSystemServices.SelectData(Get_Params_Module, CreateVarAr(['2000']), i
, 'Не смогли прочитать настройку модуля');
if VarIsArray(data)
then ERP_NAME := VarToStr(data[0][0])
else ERP_NAME := '';
data := MSystemServices.SelectData(Get_Params_Module, CreateVarAr(['2014']), i
, 'Не смогли прочитать настройку модуля');
if VarIsArray(data)
then
begin
if ERP_NAME <> ''
then ERP_NAME := ERP_NAME + '. ';
ERP_NAME := ERP_NAME + VarToStr(data[0][0]);
end;
Self.Caption := ERP_NAME;
{ Проверка доступности показа формы планирования }
Action_Plan.Enabled := TForm_Plan.IsRoleAccessible;
if (F_Plan <> nil)
then begin
if F_Plan.Visible and not Action_Plan.Enabled
then Hide_All
else F_Plan.Refresh_Roles;
if F_Plan.Visible
then if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Plan.Caption
else Self.Caption := F_Plan.Caption;
end;
{ Проверка доступности показа формы мероприятий }
Action_Event.Enabled := TForm_Event.IsRoleAccessible;
if (F_Event <> nil)
then begin
if F_Event.Visible and not Action_Event.Enabled
then Hide_All
else F_Event.Refresh_Roles;
if F_Event.Visible
then
if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Event.Caption
else Self.Caption := F_Event.Caption;
end;
Action_Dictionaries.Enabled := TForm_Dictionaries.IsRoleAccessible;
if (F_Disctionaries <> nil)
then begin
if F_Disctionaries.Visible and not Action_Event.Enabled
then Hide_All
else F_Disctionaries.Refresh_Roles;
if F_Disctionaries.Visible
then
if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Disctionaries.Caption
else Self.Caption := F_Disctionaries.Caption;
end;
Application.Title := Self.Caption;
end;
{ Перечитать роли текущего юзверя }
procedure TForm_Main.Action_Refresh_RolesExecute(Sender: TObject);
begin
{ Если создана форма, то и там обновим роли }
if F_About <> nil
then Get_SqlData_cxGrid(F_About.Tree_Roles_User).Read_Data
{ Иначе - сами их прочтем и определим доступность }
else begin
vnSessionAgent.RefreshLoginInfo;
vnSessionAgent.RefreshRolesInfo;
Refresh_Roles;
end;
end;
{ Проведение мероприятий }
procedure TForm_Main.Action_EventExecute(Sender: TObject);
begin
{ Скрываем все }
Hide_All;
{ Если формы нет, создаем ее, инициализируем, проверяем роли и встраиваем }
if F_Event = nil
then begin
F_Event := TForm_Event.Create(Self);
F_Event.Init(Reg_Path+'\Мероприятия');
F_Event.Refresh_Roles;
F_Event.ManualDock(Panel1, nil, alClient);
end;
{ Показываем форму }
F_Event.Realign;
F_Event.PageControl_Main.Realign;
F_Event.Panel_Main.Realign;
if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Event.Caption
else Self.Caption := F_Event.Caption;
Application.Title := Self.Caption;
F_Event.Show;
end;
{ Выход из программы }
procedure TForm_Main.Action_ExitExecute(Sender: TObject);
begin
Close;
end;
{ Открыть форму о программе }
procedure TForm_Main.Action_AboutExecute(Sender: TObject);
begin
{ Если формы нет, создаем ее и инициализируем }
if F_About = nil
then begin
F_About := TForm_About.Create(Self);
F_About.Refresh_Roles := Refresh_Roles;
F_About.Init(Reg_Path+'\О программе');
end;
{ Показываем форму в модальном окне }
F_About.ShowModal;
end;
{ Планирование обучения }
procedure TForm_Main.Action_PlanExecute(Sender: TObject);
begin
{ Скрываем все }
Hide_All;
{ Если формы нет, создаем ее, инициализируем, проверяем роли и встраиваем }
if F_Plan = nil
then begin
F_Plan := TForm_Plan.Create(Self);
F_Plan.Init(Reg_Path+'\Планирование');
F_Plan.Refresh_Roles;
F_Plan.ManualDock(Panel1, nil, alClient);
end;
{ Показываем форму }
F_Plan.Realign;
F_Plan.PageControl_Main.Realign;
F_Plan.Panel_Main.Realign;
F_Plan.Panel_Filter.Realign;
F_Plan.PopupEdit_Filter_Org.Realign;
if Self.Caption <> ''
then Self.Caption := Self.Caption + '. ' + F_Plan.Caption
else Self.Caption := F_Plan.Caption;
F_Plan.Show;
end;
{ Сохраним параметры окна }
procedure TForm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
dxBarManager1.SaveToRegistry(Reg_Path+'\Главное окно\Меню');
cxPropertiesStore1.StoreTo(False);
{ При свернутости и распахнутости окна размеры не сохранять! }
if WindowState = wsNormal
then cxPropertiesStore2.StoreTo(False);
end;
{ Инициализация }
procedure TForm_Main.FormCreate(Sender: TObject);
begin
{ Загружаем параметры из реестра }
cxPropertiesStore1.StorageName:=Reg_Path+'\Главное окно';
cxPropertiesStore2.StorageName:=Reg_Path+'\Главное окно\Размеры';
Position:=poDesigned;
cxPropertiesStore1.RestoreFrom;
cxPropertiesStore2.RestoreFrom;
dxBarManager1.LoadFromRegistry(Reg_Path+'\Главное окно\Меню');
end;
procedure TForm_Main.FormShow(Sender: TObject);
begin
Refresh_Roles;
{ Скроем все }
Hide_All;
end;
end.
unit Dictionaries
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, cxPC, cxControls, cxSplitter, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
cxGridCustomView, cxGrid, cxEditRepositoryItems, cxClasses, cxTL,
cxContainer, cxPropertiesStore, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxLabel,wrappers, ActnList, cxLookAndFeels, cxLookAndFeelPainters, cxSpinEdit,
cxCalendar, GridEditClass, cxButtonEdit, cxTimeEdit, SE;
const
{ Роль на редактирование специальностей, организаторов обучения }
Action_Q_Edit_Spec = '1401';
{ Роль на редактирование учебных групп }
Action_Q_Edit_Groups = '1402';
{ Вид уровня специальности "Повышение квалификации" }
IDK_Level_Spec = '70';
{ Вид дисциплины "Повышение квалификации }
IDK_Discipline = '59454';
{ Вид уровня образования "Повышение квалификации" }
IDK_Level_Formation = '70508';
{ Путь для сохранения в реестре }
Reg_Path = '\Software\AS Pilot group\Parameters\Модуль повышения квалификации\Справочники';
{ Путь для сохранения списков }
Grid_Path = '\Параметры списков\';
{ Путь для добавления }
Add_Path = 'Модуль повышения квалификации\Справочники\Добавление\';
type
TForm_Dictionaries = class(TForm)
Panel_Main: TPanel;
cxEditStyleController1: TcxEditStyleController;
cxStyleRepository3: TcxStyleRepository;
st_Group: TcxStyle;
sf_s_ContentEVEN: TcxStyle;
st_Filter_Box: TcxStyle;
st_Footer: TcxStyle;
st_Inactive: TcxStyle;
st_Indicator: TcxStyle;
st_Preview: TcxStyle;
st_Selection: TcxStyle;
st_ContentOdd: TcxStyle;
st_Content_TEXT: TcxStyle;
st_Content_POPUP: TcxStyle;
st_Content_DATE: TcxStyle;
st_Content_QUALIFIER: TcxStyle;
st_Footer_Column: TcxStyle;
st_Content_ID: TcxStyle;
st_Content_Memo: TcxStyle;
st_Content_Project: TcxStyle;
st_Content_Cancel: TcxStyle;
st_Content_ProjectSend: TcxStyle;
st_Content_Owner: TcxStyle;
st_Content_NotOwner: TcxStyle;
st_Content_Hot_Track: TcxStyle;
st_Inc_Search: TcxStyle;
st_Group_By_Box: TcxStyle;
st_Header: TcxStyle;
cxTreeList_Style_1: TcxTreeListStyleSheet;
cxGrid_Style_1: TcxGridBandedTableViewStyleSheet;
cxEditRepository1: TcxEditRepository;
cxER_Date_None_Blank: TcxEditRepositoryDateItem;
cxER_Date_With_Blank: TcxEditRepositoryDateItem;
cxER_Spin_ID: TcxEditRepositorySpinItem;
cxER_Text_RO: TcxEditRepositoryTextItem;
cxER_Memo_RO: TcxEditRepositoryMemoItem;
cxER_Date_RO: TcxEditRepositoryDateItem;
cxPropertiesStore1: TcxPropertiesStore;
Panel_Filter: TPanel;
cxSplitter1: TcxSplitter;
cxLabel1: TcxLabel;
PopupEdit_Filter_Org: TcxPopupEdit;
cxER_Text: TcxEditRepositoryTextItem;
ActionList1: TActionList;
Action_Insert_Spec_Div: TAction;
Action_Insert_Spec: TAction;
Fill_tv_spec: TAction;
Fill_tv_spec_div: TAction;
Fill_tv_intitutes: TAction;
Fill_tv_kind_training: TAction;
Fill_tv_k_l_f: TAction;
Fill_tv_org_div: TAction;
Fill_tv_source_finansing: TAction;
Action_Insert_Ed_Group: TAction;
PageControl_Main: TcxPageControl;
cxTabSheet_Spec: TcxTabSheet;
cxGrid_Spec: TcxGrid;
tv_Spec: TcxGridBandedTableView;
tv_Spec_Name: TcxGridBandedColumn;
tv_Spec_Q: TcxGridBandedColumn;
tv_Spec_ID: TcxGridBandedColumn;
tv_Spec_IDK_Level_Spec: TcxGridBandedColumn;
tv_Spec_id_discipline: TcxGridBandedColumn;
tv_Spec_idk_discipline: TcxGridBandedColumn;
cxGrid_Spec_Level1: TcxGridLevel;
cxTabSheet_Org: TcxTabSheet;
cxGrid_Spec_Div: TcxGrid;
tv_spec_div: TcxGridBandedTableView;
tv_spec_div_name_spec: TcxGridBandedColumn;
tv_spec_div_name_div: TcxGridBandedColumn;
tv_spec_div_kind_training: TcxGridBandedColumn;
tv_spec_div_institute: TcxGridBandedColumn;
tv_spec_div_source: TcxGridBandedColumn;
tv_spec_div_d_start: TcxGridBandedColumn;
tv_spec_div_d_end: TcxGridBandedColumn;
tv_spec_div_id_spec_div: TcxGridBandedColumn;
tv_spec_div_id_spec: TcxGridBandedColumn;
tv_spec_div_id_d: TcxGridBandedColumn;
tv_spec_div_idk_training: TcxGridBandedColumn;
tv_spec_div_id_d_institute: TcxGridBandedColumn;
tv_spec_div_id_source: TcxGridBandedColumn;
tv_spec_div_idk_level_formation: TcxGridBandedColumn;
cxGridLevel1: TcxGridLevel;
cxGrid_Ed_Group: TcxGrid;
tv_ed_group: TcxGridBandedTableView;
tv_ed_group_name: TcxGridBandedColumn;
tv_ed_group_kind_group: TcxGridBandedColumn;
tv_ed_group_d_start: TcxGridBandedColumn;
tv_ed_group_d_end: TcxGridBandedColumn;
tv_ed_group_id_ed_group: TcxGridBandedColumn;
tv_ed_group_id_spec_div: TcxGridBandedColumn;
tv_ed_group_idk_group: TcxGridBandedColumn;
tv_ed_group_level_group: TcxGridBandedColumn;
cxGridLevel6: TcxGridLevel;
cxSplitter3: TcxSplitter;
cxTabSheet_Editing: TcxTabSheet;
cxPageControl1: TcxPageControl;
cxTabSheet_Division: TcxTabSheet;
cxGrid_Org_Division: TcxGrid;
tv_Org_Division: TcxGridBandedTableView;
tv_Org_Division_Abbr: TcxGridBandedColumn;
tv_Org_Division_Name: TcxGridBandedColumn;
tv_Org_Division_ID: TcxGridBandedColumn;
cxGrid_Org_Division_Level1: TcxGridLevel;
cxTabSheet_Institutes: TcxTabSheet;
cxGrid_Institutes: TcxGrid;
tv_institutes: TcxGridBandedTableView;
tv_institutes_Abbr: TcxGridBandedColumn;
tv_institutes_Name: TcxGridBandedColumn;
tv_institutes_ID: TcxGridBandedColumn;
cxGridLevel2: TcxGridLevel;
cxTabSheet_Kind_Training: TcxTabSheet;
cxGrid_Kind_Training: TcxGrid;
tv_Kind_Training: TcxGridBandedTableView;
tv_Kind_Training_Name: TcxGridBandedColumn;
tv_Kind_Training_IDK_TRAINING: TcxGridBandedColumn;
cxGridLevel4: TcxGridLevel;
cxTabSheet_K_L_F: TcxTabSheet;
cxGrid_K_L_F: TcxGrid;
tv_klf: TcxGridBandedTableView;
tv_klf_idk_lf: TcxGridBandedColumn;
tv_klf_name: TcxGridBandedColumn;
tv_klf_qualifer: TcxGridBandedColumn;
cxGridLevel3: TcxGridLevel;
cxTabSheet_SF: TcxTabSheet;
cxGrid_Source_Financing: TcxGrid;
tv_Source_Financing: TcxGridBandedTableView;
tv_Source_Financing_Abbreviation: TcxGridBandedColumn;
tv_Source_Financing_Name: TcxGridBandedColumn;
tv_Source_Financing_Abbr_Div: TcxGridBandedColumn;
tv_Source_Financing_Division: TcxGridBandedColumn;
tv_Source_Financing_Kind_Source: TcxGridBandedColumn;
tv_Source_Financing_Activity: TcxGridBandedColumn;
tv_Source_Financing_Date_Close: TcxGridBandedColumn;
tv_Source_Financing_ID: TcxGridBandedColumn;
tv_Source_Financing_ID_D: TcxGridBandedColumn;
tv_Source_Financing_ID_Kind_Source: TcxGridBandedColumn;
tv_Source_Financing_ID_Activity: TcxGridBandedColumn;
cxGridLevel7: TcxGridLevel;
cxTabSheet_Add: TcxTabSheet;
cxPageControl2: TcxPageControl;
cxTabSheet_Add_Spec: TcxTabSheet;
Panel_New_Spec: TPanel;
cxLabel22: TcxLabel;
cxTextEditNew_Spec_Name: TcxTextEdit;
cxTextEditNew_Spec_Quality: TcxTextEdit;
cxLabel6: TcxLabel;
cxTabSheet_New_Spec_Div: TcxTabSheet;
Panel_New_Spec_Div: TPanel;
cxLabel2: TcxLabel;
cxLabel24: TcxLabel;
cxLabel25: TcxLabel;
cxLabel4: TcxLabel;
cxLabel5: TcxLabel;
cxDateEditNew_Spec_Div_D_Start: TcxDateEdit;
cxDateEditNew_Spec_Div_D_End: TcxDateEdit;
cxPopupEditNew_Spec_Div_Institute: TcxPopupEdit;
cxLabel3: TcxLabel;
cxPopupEditNew_Spec_Div_Div: TcxPopupEdit;
cxPopupEditNew_Spec_Div_Spec: TcxPopupEdit;
cxPopupEditNew_Spec_Div_KT: TcxPopupEdit;
cxLabel8: TcxLabel;
cxPopupEditNew_Spec_Div_SF: TcxPopupEdit;
cxTabSheet_Ed_Group: TcxTabSheet;
Panel_New_Ed_Group: TPanel;
cxLabel12: TcxLabel;
cxTextEdit_New_Ed_Group_Name: TcxTextEdit;
cxLabel14: TcxLabel;
cxDateEdit_New_Ed_Group_D_End: TcxDateEdit;
cxDateEdit_New_Ed_Group_D_Start: TcxDateEdit;
cxLabel15: TcxLabel;
Panel_SD_Params: TPanel;
cxPageControl3: TcxPageControl;
cxTabSheet1: TcxTabSheet;
cxTabSheet2: TcxTabSheet;
cxGrid_Commission: TcxGrid;
TTree_Commission: TcxGridBandedTableView;
Tree_Commission_Order: TcxGridBandedColumn;
Tree_Commission_Kind: TcxGridBandedColumn;
Tree_Commission_Start: TcxGridBandedColumn;
Tree_Commission_End: TcxGridBandedColumn;
Tree_Commission_ID_Paragraph: TcxGridBandedColumn;
Tree_Commission_ID_Spec: TcxGridBandedColumn;
Tree_Commission_ID_D: TcxGridBandedColumn;
Tree_Commission_ID_Order: TcxGridBandedColumn;
cxGrid_Commission_Level5: TcxGridLevel;
cxTabSheet_New_Sommission: TcxTabSheet;
Panel_New_Commission: TPanel;
cxLabel7: TcxLabel;
cxLabel9: TcxLabel;
DateEdit_New_Commission_End: TcxDateEdit;
DateEdit_New_Commission_Start: TcxDateEdit;
cxLabel10: TcxLabel;
ButtonEdit_New_Commission: TcxButtonEdit;
Tree_Commission_IDK_Order: TcxGridBandedColumn;
Tree_Commission_Status_Order: TcxGridBandedColumn;
Tree_Commission_ID_MT: TcxGridBandedColumn;
Tree_Commission_ID_MO: TcxGridBandedColumn;
Tree_Commission_ID_ERP: TcxGridBandedColumn;
Tree_Commission_User: TcxGridBandedColumn;
Action_New_Commission: TAction;
Action_Insert_New_Commission: TAction;
Tree_Commission_ID: TcxGridBandedColumn;
Tree_Commission_ID_Kind: TcxGridBandedColumn;
cxGrid_Members: TcxGrid;
TTree_Members: TcxGridBandedTableView;
Tree_Members_Order: TcxGridBandedColumn;
Tree_Members_Kind: TcxGridBandedColumn;
Tree_Members_Start: TcxGridBandedColumn;
Tree_Members_End: TcxGridBandedColumn;
Tree_Members_User: TcxGridBandedColumn;
Tree_Members_ID_Paragraph: TcxGridBandedColumn;
Tree_Members_ID_Order: TcxGridBandedColumn;
Tree_Members_IDK_Order: TcxGridBandedColumn;
Tree_Members_Status_Order: TcxGridBandedColumn;
Tree_Members_ID_MT: TcxGridBandedColumn;
Tree_Members_ID_MO: TcxGridBandedColumn;
Tree_Members_ID_ERP: TcxGridBandedColumn;
Tree_Members_ID_Commission: TcxGridBandedColumn;
cxGrid_Members_Level1: TcxGridLevel;
Tree_Members_Post: TcxGridBandedColumn;
Tree_Members_FIO: TcxGridBandedColumn;
Tree_Members_ID_Post: TcxGridBandedColumn;
Tree_Members_ID_E: TcxGridBandedColumn;
cxSplitter2: TcxSplitter;
cxTabSheet_New_Member: TcxTabSheet;
Panel_New_Member: TPanel;
cxLabel11: TcxLabel;
cxLabel13: TcxLabel;
DateEdit_New_Member_End: TcxDateEdit;
DateEdit_New_Member_Start: TcxDateEdit;
cxLabel16: TcxLabel;
ButtonEdit_New_Member: TcxButtonEdit;
cxLabel17: TcxLabel;
cxGrid_Post: TcxGrid;
TTree_Post: TcxGridBandedTableView;
Tree_Post_Name: TcxGridBandedColumn;
Tree_Post_ID: TcxGridBandedColumn;
cxGrid_Post_Level1: TcxGridLevel;
PopupEdit_New_Member_Post: TcxPopupEdit;
Action_New_Member: TAction;
Tree_Members_ID: TcxGridBandedColumn;
cxLabel18: TcxLabel;
PopupEdit_New_Member_FIO: TcxPopupEdit;
Action_Insert_New_Member: TAction;
procedure FormDestroy(Sender: TObject);
procedure Action_Insert_Spec_DivExecute(Sender: TObject);
procedure Action_Insert_SpecExecute(Sender: TObject);
procedure Fill_tv_specExecute(Sender: TObject);
procedure PageControl_MainPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
procedure Fill_tv_spec_divExecute(Sender: TObject);
procedure Fill_tv_intitutesExecute(Sender: TObject);
procedure Fill_tv_kind_trainingExecute(Sender: TObject);
procedure Fill_tv_k_l_fExecute(Sender: TObject);
procedure Fill_tv_org_divExecute(Sender: TObject);
procedure Fill_tv_source_finansingExecute(Sender: TObject);
procedure tv_spec_div_institutePropertiesInitPopup(Sender: TObject);
procedure tv_spec_div_name_divPropertiesInitPopup(Sender: TObject);
procedure tv_spec_div_name_specPropertiesInitPopup(Sender: TObject);
procedure tv_spec_div_kind_trainingPropertiesInitPopup(Sender: TObject);
procedure tv_spec_div_sourcePropertiesInitPopup(Sender: TObject);
procedure PopupEdit_Filter_OrgPropertiesInitPopup(Sender: TObject);
procedure cxPopupEditNew_Spec_Div_DivPropertiesInitPopup(Sender: TObject);
procedure cxPopupEditNew_Spec_Div_SpecPropertiesInitPopup(Sender: TObject);
procedure cxPopupEditNew_Spec_Div_KTPropertiesInitPopup(Sender: TObject);
procedure cxPopupEditNew_Spec_Div_SFPropertiesInitPopup(Sender: TObject);
procedure Action_Insert_Ed_GroupExecute(Sender: TObject);
procedure cxPopupEditNew_Spec_Div_InstitutePropertiesInitPopup(
Sender: TObject);
procedure tv_SpecSelectionChanged(Sender: TcxCustomGridTableView);
procedure tv_SpecEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure tv_spec_divSelectionChanged(Sender: TcxCustomGridTableView);
procedure tv_spec_divEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure tv_ed_groupSelectionChanged(Sender: TcxCustomGridTableView);
procedure tv_ed_groupEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure FormShow(Sender: TObject);
procedure tv_SpecMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tv_SpecKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_ed_groupKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_ed_groupMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tv_spec_divKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_spec_divMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure PopupEdit_Filter_OrgPropertiesEditValueChanged(Sender: TObject);
procedure Action_New_CommissionExecute(Sender: TObject);
procedure cxPageControl3Change(Sender: TObject);
procedure Action_Insert_New_CommissionExecute(Sender: TObject);
procedure Action_New_MemberExecute(Sender: TObject);
procedure Action_Insert_New_MemberExecute(Sender: TObject);
private
{ Private declarations }
{ Доступность редактирования специальностей мет. комплекса, специальностей и организаторов обучения }
REdit_Spec: boolean;
{ Доступность редактирования учебных групп, сроков проведения и плана ПК }
REdit_Groups: boolean;
{ Объект для работы со списками }
FSqlData_TableView: TSqlData_cxGridTableView;
{ Путь реестра (для загрузки/сохранения параметров) }
Curr_Reg_Path: String;
{ Контейнеры оберток }
cW_Institute_Filter, cW_New_Spec, cW_New_Ed_Group, cW_New_Spec_Div
, cW_New_Commission, cw_New_Member: TContainerWrappers;
{ Форма поиска человека }
Current_Form_SE: TForm_SE;
{ Обработчики событий изменения в контейнерах оберток }
procedure DoChanged_cW_New_Spec(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_Spec_Div(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_Intitute_Filter(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_Ed_Group(AWrapper: TCustomEditWrapper);
procedure Before_Delete_Exchange(Sender: TSqlData_cxGridTableView;
ARecordIndex: Integer; var ExchangeParameters: OleVariant);
{ Смена записи в tv_spec_div }
procedure OnChoiceGridRecord_tv_spec_div(Sender: TSqlData_cxGridTableView; AGridRecord: TcxGridDataRow);
{ Установка доступности добавления }
procedure Allow_Insert(TV: TcxCustomGridTableView; Roles: array of boolean);
{ Установка доступности редактирования таблицы (с документом) }
function Allow_Editing(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean): boolean; overload;
{ Установка доступности редактирования таблицы (без документа) }
function Allow_Editing(TV: TcxCustomGridTableView; Roles: array of boolean): boolean; overload;
{ Установка доступности удаления из таблицы (с документом) }
procedure Allow_Delete(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean); overload;
{ Установка доступности удаления из таблицы (без документа) }
procedure Allow_Delete(TV: TcxCustomGridTableView; Roles: array of boolean); overload;
{ Сохранение/восстановление параметров списков }
procedure Save_Restore_Params(RReg_Path: String = Reg_Path; PIs_Load: Boolean = True);
public
{ Public declarations }
{ Инициализация формы }
procedure Init(AReg_Path: String = Reg_Path; AForm_SE: TForm_SE = nil);
{ Обновить роли }
procedure Refresh_Roles;
{ Проверка доступности ко всей форме без создания ее самой }
class function IsRoleAccessible: Boolean;
end;
var
Form_Dictionaries: TForm_Dictionaries;
implementation
{$R *.dfm}
uses SysServices, Get_PK_PPS_Data, standart_new, get_single_data, LP_u_CX_tools;
{ Сохранение/восстановление параметров списков }
procedure TForm_Dictionaries.Save_Restore_Params(RReg_Path: String = Reg_Path; PIs_Load: Boolean = True);
begin
cxPropertiesStore1.StorageName:=RReg_Path+'\Общие параметры';
if PIs_Load
{ Восстановление параметров }
then begin // 1
{ Восстановим общие параметры }
cxPropertiesStore1.RestoreFrom;
{ Восстановим значения фильтра по институтам }
if PopupEdit_Filter_Org.Tag <> 0
then begin // 2
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value := IntToStr(PopupEdit_Filter_Org.Tag);
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay := PopupEdit_Filter_Org.Text;
end // 2
else begin // 3
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value := '';
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay := '';
end; // 3
end // 1
{ Сохранение параметров }
else begin // 4
{ Сохраним значения фильтра по институтам }
if VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value) <> ''
then begin // 5
PopupEdit_Filter_Org.Tag := StrToInt(VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value));
PopupEdit_Filter_Org.Text := VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay);
end // 5
else begin // 6
PopupEdit_Filter_Org.Tag := 0;
PopupEdit_Filter_Org.Text := '';
end; // 6
{ Сохраним общие параметры }
cxPropertiesStore1.StoreTo(True);
end; // 4
{ Сохранение или загрузки параметров списков (в зависимости от параметра PIs_Load) }
Restore_cxGridTableView(tv_spec, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_spec).Table_Name);
Restore_cxGridTableView(tv_spec_div, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_spec_div).Table_Name);
Restore_cxGridTableView(tv_ed_group, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_ed_group).Table_Name);
Restore_cxGridTableView(tv_Org_Division, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_Org_Division).Table_Name);
Restore_cxGridTableView(tv_institutes, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_institutes).Table_Name);
Restore_cxGridTableView(tv_Kind_Training, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_Kind_Training).Table_Name);
Restore_cxGridTableView(tv_klf, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_klf).Table_Name);
Restore_cxGridTableView(tv_Source_Financing, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_Source_Financing).Table_Name);
Restore_cxGridTableView(TTree_Commission, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(TTree_Commission).Table_Name);
end;
{ Проверка доступности ко всей форме без создания ее самой! }
class function TForm_Dictionaries.IsRoleAccessible: Boolean;
begin
Result := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Spec)
or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Groups)
or vnSessionAgent.IsDBA;
end;
{ Проверка прав }
procedure TForm_Dictionaries.Refresh_Roles;
var DBA: boolean;
begin
{ Проверка наличия ролей }
DBA := vnSessionAgent.IsDBA;
REdit_Spec := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Spec) or DBA;
REdit_Groups := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Groups) or DBA;
if PageControl_Main.ActivePageIndex = 1
then cxPageControl3Change(cxPageControl3);
end;
{ Установка доступности добавления }
procedure TForm_Dictionaries.Allow_Insert(TV: TcxCustomGridTableView; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
if not FSqlData_TableView.IsFirstRead
then begin // 2
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionInsert.Enabled := Allow;
end // 2
else FSqlData_TableView.ActionInsert.Enabled := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (с документом) }
function TForm_Dictionaries.Allow_Editing(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean): boolean;
var status, id_erp: string;
i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
if (TV.DataController.FocusedRecordIndex <> -1)
then begin // 2
status := VarToStr(TV.DataController.Values[TV.DataController.FocusedRecordIndex
,Status_Column.Index]);
id_erp := VarToStr(TV.DataController.Values[TV.DataController.FocusedRecordIndex
,ID_ERP_Column.Index]);
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
Result := (status = '2') and (id_erp = vnSessionAgent.ID_ERP_User) and Allow;
end // 2
else Result := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (без документа) }
function TForm_Dictionaries.Allow_Editing(TV: TcxCustomGridTableView; Roles: array of boolean): boolean;
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
Result := (TV.DataController.FocusedRecordIndex <> -1) and Allow;
end // 1
else Result := False;
end;
{ Установка доступности удаления из таблицы (с документом) }
procedure TForm_Dictionaries.Allow_Delete(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled := Is_Value(Status_Column, '2', false)
and Is_Value(ID_ERP_Column, vnSessionAgent.ID_ERP_User, false)
and (TV.Controller.SelectedRecordCount > 0) and Allow;
end; // 1
end;
{ Установка доступности удаления из таблицы (без документа) }
procedure TForm_Dictionaries.Allow_Delete(TV: TcxCustomGridTableView; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled := (TV.Controller.SelectedRecordCount > 0)
and Allow;
end; // 1
end;
procedure TForm_Dictionaries.Before_Delete_Exchange(Sender: TSqlData_cxGridTableView;
ARecordIndex: Integer; var ExchangeParameters: OleVariant);
begin
if Sender.GridTableView = tv_spec
then with Sender.GridTableView.DataController do
ExchangeParameters := CreateVarAr([Values[FocusedRecordIndex, tv_Spec_ID.Index]]);
end;
procedure TForm_Dictionaries.tv_ed_groupEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
Allow_Editing(Sender, [REdit_Groups]);
end;
procedure TForm_Dictionaries.tv_ed_groupKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT
then Allow_Insert(tv_ed_group, [REdit_Groups]);
end;
procedure TForm_Dictionaries.tv_ed_groupMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight
then Allow_Insert(tv_ed_group, [REdit_Groups]);
end;
procedure TForm_Dictionaries.tv_ed_groupSelectionChanged(
Sender: TcxCustomGridTableView);
begin
if Sender = TTree_Commission
then with TTree_Commission.Controller do
Get_SqlData_cxGrid(TTree_Commission).ActionDelete.Enabled :=
(SelectedRowCount > 0)
and Get_SqlData_cxGrid(TTree_Commission).ActionInsert.Enabled
And Is_Value(Tree_Commission_Status_Order, '2', False)
and (vnSessionAgent.IsDBA or vnSessionAgent.IsRoleAccessible('', '', '902'
, [VarToStr(SelectedRows[0].Values[Tree_Commission_ID_MT.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_Commission_ID_MO.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_Commission_ID_ERP.Index])]))
else
if Sender = TTree_Members
then with TTree_Members.Controller do
Get_SqlData_cxGrid(TTree_Members).ActionDelete.Enabled :=
(SelectedRowCount > 0)
and Get_SqlData_cxGrid(TTree_Members).ActionInsert.Enabled
And Is_Value(Tree_Members_Start, '2', False)
and (vnSessionAgent.IsDBA or vnSessionAgent.IsRoleAccessible('', '', '902'
, [VarToStr(SelectedRows[0].Values[Tree_Members_ID_MT.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_Members_ID_MO.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_Members_ID_ERP.Index])]))
else Allow_Delete(Sender, [REdit_Groups]);
end;
procedure TForm_Dictionaries.tv_SpecEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
Allow_Editing(Sender,[REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_SpecKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT
then Allow_Insert(tv_spec, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_SpecMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight
then Allow_Insert(tv_spec, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_SpecSelectionChanged(Sender: TcxCustomGridTableView);
begin
Allow_Delete(Sender, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_spec_divEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
Allow_Editing(Sender, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_spec_divKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT
then Allow_Insert(tv_spec_div, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_spec_divMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight
then Allow_Insert(tv_spec_div, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_spec_divSelectionChanged(
Sender: TcxCustomGridTableView);
begin
Allow_Delete(Sender, [REdit_Spec]);
end;
procedure TForm_Dictionaries.tv_spec_div_institutePropertiesInitPopup(Sender: TObject);
begin
Fill_tv_intitutesExecute(self);
end;
procedure TForm_Dictionaries.tv_spec_div_kind_trainingPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_kind_trainingExecute(self);
end;
procedure TForm_Dictionaries.tv_spec_div_name_divPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_org_divExecute(self);
end;
procedure TForm_Dictionaries.tv_spec_div_name_specPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_specExecute(self);
end;
procedure TForm_Dictionaries.tv_spec_div_sourcePropertiesInitPopup(Sender: TObject);
begin
Fill_tv_source_finansingExecute(self);
end;
{ Настройка списков }
procedure TForm_Dictionaries.Init(AReg_Path: String = Reg_Path; AForm_SE: TForm_SE = nil);
begin
DateEdit_New_Commission_Start.Date := Date;
DateEdit_New_Member_Start.Date := Date;
if AForm_SE <> nil then
Current_Form_SE := AForm_SE;
if not assigned(Current_Form_SE) then
Current_Form_SE := TForm_SE.Create(self);
Curr_Reg_Path := AReg_Path;
{ Описание для различных оберток }
// *****************************************************************************
cW_Institute_Filter := TContainerWrappers.Create;
cW_Institute_Filter.AddPopupEdit(PopupEdit_Filter_Org, false, false, cxGrid_Institutes,
tv_institutes ,tv_institutes_ID, [tv_institutes_Abbr, tv_institutes_Name], '');
cW_Institute_Filter.OnChangedValueWrapper := DoChanged_cW_Intitute_Filter;;
// *****************************************************************************
// *****************************************************************************
cW_New_Spec := TContainerWrappers.Create;
cW_New_Spec.AddCustomEdit(cxTextEditNew_Spec_Name, true, false, '');
cW_New_Spec.AddCustomEdit(cxTextEditNew_Spec_Quality, false, false, '');
cW_New_Spec.OnChangeWrapper := DoChanged_cW_New_Spec;
// *****************************************************************************
// *****************************************************************************
cW_New_Ed_Group := TContainerWrappers.Create;
cW_New_Ed_Group.AddCustomEdit(cxTextEdit_New_Ed_Group_Name, true, false, '');
cW_New_Ed_Group.AddCustomEdit(cxDateEdit_New_Ed_Group_D_Start, true, false, '');
cW_New_Ed_Group.AddCustomEdit(cxDateEdit_New_Ed_Group_D_End, false, false, '');
cW_New_Ed_Group.OnChangeWrapper := DoChanged_cW_New_Ed_Group;
// *****************************************************************************
// *****************************************************************************
cW_New_Spec_Div := TContainerWrappers.Create;
cW_New_Spec_Div.AddPopupEdit(cxPopupEditNew_Spec_Div_Institute, true, false, cxGrid_Institutes,
tv_institutes, tv_institutes_ID, [tv_institutes_Abbr, tv_institutes_Name], '');
cW_New_Spec_Div.AddPopupEdit(cxPopupEditNew_Spec_Div_Div, true, false, cxGrid_Org_Division,
tv_Org_Division, tv_Org_Division_ID, [tv_Org_Division_Abbr, tv_Org_Division_Name], '');
cW_New_Spec_Div.AddPopupEdit(cxPopupEditNew_Spec_Div_Spec, true, false, cxGrid_Spec,
tv_spec, tv_Spec_ID, [tv_Spec_Name], '');
cW_New_Spec_Div.AddPopupEdit(cxPopupEditNew_Spec_Div_KT, true, false, cxGrid_Kind_Training,
tv_Kind_Training, tv_Kind_Training_IDK_TRAINING, [tv_Kind_Training_Name], '');
cW_New_Spec_Div.AddCustomEdit(cxDateEditNew_Spec_Div_D_Start, true, false, '');
cW_New_Spec_Div.AddCustomEdit(cxDateEditNew_Spec_Div_D_End, false, false, '');
cW_New_Spec_Div.AddPopupEdit(cxPopupEditNew_Spec_Div_SF, false, false, cxGrid_Source_Financing,
tv_Source_Financing, tv_Source_Financing_ID, [tv_Source_Financing_Name], '');
cW_New_Spec_Div.OnChangeWrapper := DoChanged_cW_New_Spec_Div;
// *****************************************************************************
// ---------------------------------------------
// добавление подразделение-организаторов обучения
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_Org_Division) = nil
then with TSqlData_cxGridTableView.Create(tv_Org_Division)
do begin
Table_Name := 'Организаторы обучения';
Editing := false;
GUID_Select := Get_List_Divisions;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec]);
Select_Columns.Add(tv_Org_Division_Abbr);
Select_Columns.Add(tv_Org_Division_Name);
Select_Columns.Add(tv_Org_Division_ID);
Key_Columns.Add(tv_Org_Division_ID);
Stat_Column := tv_Org_Division_Abbr;
NameColumnsForPopupEdit.Add(tv_Org_Division_Abbr);
NameColumnsForPopupEdit.Add(tv_Org_Division_Name);
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление институтов
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_institutes) = nil
then with TSqlData_cxGridTableView.Create(tv_institutes)
do begin
Editing := false;
Table_Name := 'Институты';
GUID_Select := Get_List_Institutes;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec]);
Select_Columns.Add(tv_institutes_Abbr);
Select_Columns.Add(tv_institutes_Name);
Select_Columns.Add(tv_institutes_ID);
Key_Columns.Add(tv_institutes_ID);
Stat_Column := tv_institutes_Abbr;
NameColumnsForPopupEdit.Add(tv_institutes_Abbr);
NameColumnsForPopupEdit.Add(tv_institutes_Name);
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление специальностей
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_Spec) = nil
then with TSqlData_cxGridTableView.Create(tv_Spec)
do begin
Editing := true;
Table_Name := 'Специальности';
GUID_Select := Get_List_Spec_By_Params;
GUID_Update := d_P_SPECIALITY;
GUID_Delete := Delete_Spec;
StepOnTopDataRecordMode := True;
OnBefore_Delete_Exchange := Before_Delete_Exchange;
Params := CreateVarAr([IDK_Level_Spec,'']);
Select_Columns.Add(tv_Spec_Name, 2);
Select_Columns.Add(tv_Spec_Q, 1);
Select_Columns.Add(tv_Spec_ID, 0);
Select_Columns.Add(tv_Spec_IDK_Level_Spec, 6);
Select_Columns.Add(tv_Spec_id_discipline);
Select_Columns.Add(tv_Spec_idk_discipline);
Key_Columns.Add(tv_Spec_ID, 0);
Stat_Column := tv_Spec_Name;
NameColumnsForPopupEdit.Add(tv_Spec_Name);
ActionInsert.OnExecute := Action_Insert_Spec.OnExecute;
end;
// ---------------------------------------------
// добавление организаторов обучения (специальности подразделений)
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_spec_div) = nil
then with TSqlData_cxGridTableView.Create(tv_spec_div)
do begin
Editing := true;
Single := false;
Table_Name := 'Специальности подразделений';
GUID_Select := Spec_div;
GUID_Update := d_P_SPECIALITIES_DIVISION;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec,'']);
Stat_Column := tv_spec_div_institute;
NameColumnForPopupEdit := tv_spec_div_institute;
with Select_Columns
do begin
Add(tv_spec_div_name_spec,1);
Add(tv_spec_div_name_div,2);
Add(tv_spec_div_kind_training,3);
Add(tv_spec_div_institute,6);
Add(tv_spec_div_source,12);
Add(tv_spec_div_d_start,4);
Add(tv_spec_div_d_end,5);
Add(tv_spec_div_id_spec_div,0);
Add(tv_spec_div_id_spec,1);
Add(tv_spec_div_id_d,2);
Add(tv_spec_div_idk_training,3);
Add(tv_spec_div_id_d_institute,6);
Add(tv_spec_div_id_source,12);
Add(tv_spec_div_idk_level_formation,8);
end;
Key_Columns.Add(tv_spec_div_id_spec_div,0);
Clear_Columns.Add(tv_spec_div_source,12);
with PopupColumnsList.Add(tv_spec_div_institute)
do begin
SelfKeyColumn := tv_spec_div_id_d_institute;
PopupKeyColumn := tv_institutes_ID;
PopupNameColumn := tv_institutes_Name;
end;
with PopupColumnsList.Add(tv_spec_div_name_div)
do begin
SelfKeyColumn := tv_spec_div_id_d;
PopupKeyColumn := tv_Org_Division_ID;
PopupNameColumn := tv_Org_Division_Name;
end;
with PopupColumnsList.Add(tv_spec_div_name_spec)
do begin
SelfKeyColumn := tv_spec_div_id_spec;
PopupKeyColumn := tv_Spec_ID;
PopupNameColumn := tv_Spec_Name;
end;
with PopupColumnsList.Add(tv_spec_div_kind_training)
do begin
SelfKeyColumn := tv_spec_div_idk_training;
PopupKeyColumn := tv_Kind_Training_IDK_TRAINING;
PopupNameColumn := tv_Kind_Training_Name;
end;
with PopupColumnsList.Add(tv_spec_div_source)
do begin
SelfKeyColumn := tv_spec_div_id_source;
PopupKeyColumn := tv_Source_Financing_ID;
PopupNameColumn := tv_Source_Financing_Name;
end;
with Insert_Columns
do begin
Add(tv_spec_div_id_spec,1);
Add(tv_spec_div_id_d,2);
Add(tv_spec_div_idk_training,3);
Add(tv_spec_div_d_start,4);
Add(tv_spec_div_d_end,5);
Add(tv_spec_div_id_d_institute,6);
Add(tv_spec_div_idk_level_formation,8);
Add(tv_spec_div_id_source,12);
end;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_Insert_Spec_Div.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(Clear_Columns.ClearActions[tv_spec_div_source]);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
LogicMode := lmLastChoice;
OnChoiceGridRecord := OnChoiceGridRecord_tv_spec_div;
end;
// ---------------------------------------------
//------------------------------------------------------------
//Вид обучения
with TSqlData_cxGridTableView.Create(tv_Kind_Training)
do begin
Editing:=False;
Table_Name:='Виды обучения';
GUID_Select:=Kind_Training;
StepOnTopDataRecordMode := True;
Single:=False;
with Select_Columns
do begin
Add(tv_Kind_Training_IDK_TRAINING);
Add(tv_Kind_Training_Name);
end;
Key_Columns.Add(tv_Kind_Training_IDK_TRAINING);
Stat_Column:=tv_Kind_Training_Name;
NameColumnForPopupEdit:=tv_Kind_Training_Name;
end;
//-----------------------------------------------------------
//------------------------------------------------------------
//Вид уровня образования
with TSqlData_cxGridTableView.Create(tv_klf)
do begin
Editing:=False;
Table_Name:='Виды уровня образования';
GUID_Select:=K_L_F;
StepOnTopDataRecordMode := True;
Single:=False;
with Select_Columns
do begin
Add(tv_klf_name);
Add(tv_klf_idk_lf);
Add(tv_klf_qualifer);
end;
Key_Columns.Add(tv_klf_idk_lf);
Stat_Column := tv_klf_name;
NameColumnForPopupEdit := tv_klf_name;
end;
//-----------------------------------------------------------
//-----------------------------------------
//Источник финансирования
if Get_SqlData_cxGrid(tv_Source_Financing) = nil
then with TSqlData_cxGridTableView.Create(tv_Source_Financing)
do begin
Table_Name:='Источники финансирования';
GUID_Select:=S_F;
StepOnTopDataRecordMode := True;
Editing := false;
ParametersCount := 1;
Select_Columns.Add(tv_Source_Financing_Abbreviation);
Select_Columns.Add(tv_Source_Financing_Name);
Select_Columns.Add(tv_Source_Financing_Abbr_Div);
Select_Columns.Add(tv_Source_Financing_Division);
Select_Columns.Add(tv_Source_Financing_Kind_Source);
Select_Columns.Add(tv_Source_Financing_Activity);
Select_Columns.Add(tv_Source_Financing_Date_Close);
Select_Columns.Add(tv_Source_Financing_ID);
Select_Columns.Add(tv_Source_Financing_ID_D);
Select_Columns.Add(tv_Source_Financing_ID_Kind_Source);
Select_Columns.Add(tv_Source_Financing_ID_Activity);
Key_Columns.Add(tv_Source_Financing_ID);
PopupActions.Add(ActionUpdate);
Stat_Column:=tv_Source_Financing_Abbreviation;
NameColumnForPopupEdit:=tv_Source_Financing_Name;
end;
//------------------------------------------------------------
// ---------------------------------------------
//Учебные группы
with TSqlData_cxGridTableView.Create(tv_ed_group)
do begin
Editing:=True;
Table_Name:='Учебные группы';
Params := CreateVarAr(['']);
GUID_Select := Ed_Groups;
GUID_Update := d_P_EDUCATIONAL_GROUP;
StepOnTopDataRecordMode := True;
Single:=False;
with Select_Columns
do begin
Add(tv_ed_group_name,1);
Add(tv_ed_group_kind_group,8);
Add(tv_ed_group_d_start,4);
Add(tv_ed_group_d_end,5);
Add(tv_ed_group_id_ed_group,0);
Add(tv_ed_group_id_spec_div,2);
Add(tv_ed_group_idk_group,8);
Add(tv_ed_group_level_group,3);
end;
with Insert_Columns
do begin
Add(tv_ed_group_name,1);
Add(tv_ed_group_id_spec_div,2);
Add(tv_ed_group_level_group,3);
Add(tv_ed_group_d_start,4);
Add(tv_ed_group_d_end,5);
Add(tv_ed_group_idk_group,8);
end;
Key_Columns.Add(tv_ed_group_id_ed_group,0);
ActionInsert.OnExecute := Action_Insert_Ed_Group.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
Stat_Column := tv_ed_group_name;
NameColumnForPopupEdit := tv_ed_group_name;
end;
// Комиссии
if Get_SqlData_cxGrid(TTree_Commission) = nil
then with TSqlData_cxGridTableView.Create(TTree_Commission)
do begin
Table_Name := TTree_Commission.Bands.Items[0].Caption;
GUID_Select := Get_List_Commissions_By_ID_D_And_ID_Spec;
GUID_Update := d_P_COMMISSION;
StepOnTopDataRecordMode := True;
LogicMode := lmLastChoice;
OnChoiceGridRecord := OnChoiceGridRecord_tv_spec_div;
ParametersCount := 2;
RequiredParemeters.Add([1, 2]);
Select_Columns.Add(Tree_Commission_Order);
Select_Columns.Add(Tree_Commission_Kind);
Select_Columns.Add(Tree_Commission_User);
Select_Columns.Add(Tree_Commission_Start, 4);
Select_Columns.Add(Tree_Commission_End, 5);
Select_Columns.Add(Tree_Commission_ID_Paragraph, 2);
Select_Columns.Add(Tree_Commission_ID_Order, 2);
Select_Columns.Add(Tree_Commission_IDK_Order, 2);
Select_Columns.Add(Tree_Commission_Status_Order, 2);
Select_Columns.Add(Tree_Commission_ID_ERP, 2);
Select_Columns.Add(Tree_Commission_ID_MT, 2);
Select_Columns.Add(Tree_Commission_ID_MO, 2);
Select_Columns.Add(Tree_Commission_ID_Spec, 8);
Select_Columns.Add(Tree_Commission_ID_D, 9);
Select_Columns.Add(Tree_Commission_ID, 1);
Select_Columns.Add(Tree_Commission_ID_Kind, 3);
Key_Columns.Add(Tree_Commission_ID, 1);
Insert_Columns.Add(Tree_Commission_ID_Paragraph, 2);
Insert_Columns.Add(Tree_Commission_ID_Spec, 8);
Insert_Columns.Add(Tree_Commission_ID_D, 9);
Insert_Columns.Add(Tree_Commission_ID_Kind, 3);
Insert_Columns.Add(Tree_Commission_Start, 4);
Insert_Columns.Add(Tree_Commission_End, 5);
OptionsOrder.Column_ID_order := Tree_Commission_ID_Order;
OptionsOrder.Column_ID_paragraph := Tree_Commission_ID_Paragraph;
OptionsOrder.Column_IDk_order := Tree_Commission_IDK_Order;
OptionsOrder.Column_ID_erp_user := Tree_Commission_ID_ERP;
OptionsOrder.Column_Status_Order := Tree_Commission_Status_Order;
OptionsOrder.Column_User_Name := Tree_Commission_User;
OptionsOrder.Column_Status_Text := Tree_Commission_Order;
OptionsOrder.Column_name_Kind_paragraph := Tree_Commission_Kind;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
Stat_Column := Tree_Commission_Order;
NameColumnForPopupEdit := Tree_Commission_Order;
ActionInsert.OnExecute := Action_New_Commission.OnExecute;
cW_New_Commission := TContainerWrappers.Create;
cW_New_Commission.AddButtonOrderEdit(ButtonEdit_New_Commission, True, False, ''
, ['306']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
cW_New_Commission.AddCustomEdit(DateEdit_New_Commission_Start, true, false, '');
cW_New_Commission.AddCustomEdit(DateEdit_New_Commission_End, false, false, '');
cW_New_Commission.ActionEnter := Action_Insert_New_Commission;
end;
// Должности в комиссиях
if Get_SqlData_cxGrid(TTree_Post) = nil
then with TSqlData_cxGridTableView.Create(TTree_Post)
do begin
Table_Name := TTree_Post.Bands.Items[0].Caption;
GUID_Select := Get_Posts_For_Members;
StepOnTopDataRecordMode := True;
Editing := false;
Select_Columns.Add(Tree_Post_Name);
Select_Columns.Add(Tree_Post_ID);
Key_Columns.Add(Tree_Post_ID);
PopupActions.Add(ActionUpdate);
Stat_Column := Tree_Post_Name;
NameColumnForPopupEdit := Tree_Post_Name;
end;
// Члены Комиссии
if Get_SqlData_cxGrid(TTree_Members) = nil
then with TSqlData_cxGridTableView.Create(TTree_Members)
do begin
Table_Name := TTree_Members.Bands.Items[0].Caption;
GUID_Select := Get_Members_Commission_By_ID;
GUID_Update := d_P_COMMISSION_MEMBERS;
StepOnTopDataRecordMode := True;
ParametersCount := 1;
RequiredParemeters.Add([1]);
Select_Columns.Add(Tree_Members_Order);
Select_Columns.Add(Tree_Members_Kind);
Select_Columns.Add(Tree_Members_Post, 7);
Select_Columns.Add(Tree_Members_FIO, 1);
Select_Columns.Add(Tree_Members_User, 3);
Select_Columns.Add(Tree_Members_Start, 4);
Select_Columns.Add(Tree_Members_End, 6);
Select_Columns.Add(Tree_Members_ID_Paragraph, 3);
Select_Columns.Add(Tree_Members_ID_Order, 3);
Select_Columns.Add(Tree_Members_IDK_Order, 3);
Select_Columns.Add(Tree_Members_Status_Order, 3);
Select_Columns.Add(Tree_Members_ID_ERP, 3);
Select_Columns.Add(Tree_Members_ID_MT, 3);
Select_Columns.Add(Tree_Members_ID_MO, 3);
Select_Columns.Add(Tree_Members_ID_Post, 7);
Select_Columns.Add(Tree_Members_ID_Commission, 2);
Select_Columns.Add(Tree_Members_ID_E, 1);
Select_Columns.Add(Tree_Members_ID, 0);
Key_Columns.Add(Tree_Members_ID, 0);
Insert_Columns.Add(Tree_Members_ID_Paragraph, 3);
Insert_Columns.Add(Tree_Members_ID_Commission, 2);
Insert_Columns.Add(Tree_Members_ID_Post, 7);
Insert_Columns.Add(Tree_Members_ID_E, 1);
Insert_Columns.Add(Tree_Members_Start, 4);
Insert_Columns.Add(Tree_Members_End, 6);
OptionsOrder.Column_ID_order := Tree_Members_ID_Order;
OptionsOrder.Column_ID_paragraph := Tree_Members_ID_Paragraph;
OptionsOrder.Column_IDk_order := Tree_Members_IDK_Order;
OptionsOrder.Column_ID_erp_user := Tree_Members_ID_ERP;
OptionsOrder.Column_Status_Order := Tree_Members_Status_Order;
OptionsOrder.Column_User_Name := Tree_Members_User;
OptionsOrder.Column_Status_Text := Tree_Members_Order;
OptionsOrder.Column_name_Kind_paragraph := Tree_Members_Kind;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
with PopupColumnsList.Add(Tree_Members_Post) do
begin
SelfKeyColumn := Tree_Members_ID_Post;
PopupKeyColumn := Tree_Post_ID;
PopupNameColumn := Tree_Post_Name;
end;
with PopupColumnsList.Add(Tree_Members_FIO) do
begin
SelfKeyColumn := Tree_Members_ID_E;
PopupKeyColumn := Current_Form_SE.cxGrid_FIO_ID_E;
PopupNameColumn := Current_Form_SE.cxGrid_FIO_Full;
end;
Stat_Column := Tree_Members_Post;
ActionInsert.OnExecute := Action_New_Member.OnExecute;
TcxPopupEditProperties(Tree_Members_FIO.Properties).PopupControl :=
Current_Form_SE;
PopupEdit_New_Member_FIO.Properties.PopupControl := Current_Form_SE;
cw_New_Member := TContainerWrappers.Create;
cw_New_Member.AddButtonOrderEdit(ButtonEdit_New_Member, True, False, ''
, ['306']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
cw_New_Member.AddPopupEdit(PopupEdit_New_Member_FIO, True, False
, Current_Form_SE.cxGrid1, Current_Form_SE.cxGrid_FIO
, Current_Form_SE.cxGrid_FIO_ID_E, [Current_Form_SE.cxGrid_FIO_Full], '');
cw_New_Member.AddPopupEdit(PopupEdit_New_Member_Post, True, False
, nil, nil, Tree_Post_ID, [Tree_Post_Name], '');
cw_New_Member.AddCustomEdit(DateEdit_New_Member_Start, true, false, '');
cw_New_Member.AddCustomEdit(DateEdit_New_Member_End, false, false, '');
cw_New_Member.ActionEnter := Action_Insert_New_Member;
end;
//-----------------------------------------------------------
{ Cкрываем ненужные страницы }
cxTabSheet_Editing.TabVisible := False;
cxTabSheet_Add.TabVisible := False;
{ Прочитаем параметры из реестра }
Save_Restore_Params(Curr_Reg_Path, True);
end;
procedure TForm_Dictionaries.Action_Insert_Ed_GroupExecute(Sender: TObject);
//const Name = 'Учебные группы';
var
mf: TSForm;
begin
try // 1
mf := CreateSForm(self, 'fNew_Ed_Group'
, cxTabSheet_Ed_Group.Caption
, Add_Path + cxTabSheet_Ed_Group.Caption, Panel_New_Ed_Group, tdb_Apply);
if VarToStr(cW_New_Ed_Group.Wrappers[cxDateEdit_New_Ed_Group_D_Start].Value) = ''
then cW_New_Ed_Group.Wrappers[cxDateEdit_New_Ed_Group_D_Start].Value :=
DateToStr(Date);
cW_New_Ed_Group.OnChangeWrapper(nil);
mf.Position := poScreenCenter;
if mf.ShowModal = mrOk
then begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_ed_group);
if FSqlData_TableView <> nil
then begin // 3
FSqlData_TableView.Insert_New(
CreateVarAr([
cW_New_Ed_Group.Wrappers[cxTextEdit_New_Ed_Group_Name].Value
,tv_spec_div.DataController.Values[tv_spec_div.DataController.FocusedRecordIndex
,tv_spec_div_id_spec_div.Index]
,'1'
,cW_New_Ed_Group.Wrappers[cxDateEdit_New_Ed_Group_D_Start].Value
,cW_New_Ed_Group.Wrappers[cxDateEdit_New_Ed_Group_D_End].Value
,'5'
]))
end; // 3
end; // 2
finally // 1
if assigned(mf)
then FreeAndNil(mf);
end; // 1
end;
{ Добавить новую комиссию}
procedure TForm_Dictionaries.Action_Insert_New_CommissionExecute(
Sender: TObject);
begin
cW_New_Commission.ChangesAcceptWrappers;
with cW_New_Commission, Get_SqlData_cxGrid(TTree_Commission) do
if Insert_New(CreateVarAr([VarToStr(Wrappers[ButtonEdit_New_Commission].Value)
, VarToStr(Parameters[2])
, VarToStr(Parameters[1])
, '3'
, VarToStr(Wrappers[DateEdit_New_Commission_Start].Value)
, VarToStr(Wrappers[DateEdit_New_Commission_End].Value)]))
then
begin
GetParentForm(Panel_New_Commission).ModalResult := mrok;
TButtonOrderEditWrapper(cW_New_Commission.Wrappers[ButtonEdit_New_Commission]).IsEmpty := False;
Read_Data;
end;
end;
{ Добавить члена комиссии}
procedure TForm_Dictionaries.Action_Insert_New_MemberExecute(Sender: TObject);
begin
cw_New_Member.ChangesAcceptWrappers;
with cw_New_Member, Get_SqlData_cxGrid(TTree_Members) do
if Insert_New(CreateVarAr([VarToStr(Wrappers[ButtonEdit_New_Member].Value)
, VarToStr(Parameters[1])
, VarToStr(Wrappers[PopupEdit_New_Member_Post].Value)
, VarToStr(Wrappers[PopupEdit_New_Member_FIO].Value)
, VarToStr(Wrappers[DateEdit_New_Member_Start].Value)
, VarToStr(Wrappers[DateEdit_New_Member_End].Value)]))
then
begin
GetParentForm(Panel_New_Member).ModalResult := mrok;
TButtonOrderEditWrapper(cw_New_Member.Wrappers[ButtonEdit_New_Member]).IsEmpty := False;
Read_Data;
end;
end;
procedure TForm_Dictionaries.Action_Insert_SpecExecute(Sender: TObject);
//const Name = 'Программа обучения';
var
mf: TSForm;
begin
try // 1
mf := CreateSForm(self, 'fNew_Spec', cxTabSheet_Add_Spec.Caption
, Add_Path + cxTabSheet_Add_Spec.Caption, Panel_New_Spec, tdb_Apply);
cW_New_Spec.OnChangeWrapper(nil);
mf.Position := poScreenCenter;
if mf.ShowModal = mrOk
then begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_Spec);
if FSqlData_TableView <> nil
then begin // 3
if MSystemServices.ExchangeData(Add_Spec,
CreateVarAr([cW_New_Spec.Wrappers[cxTextEditNew_Spec_Name].Value
,cW_New_Spec.Wrappers[cxTextEditNew_Spec_Quality].Value
,IDK_Level_Spec
,IDK_Discipline
])
,'Добавление программы обучения.')
then begin // 4
FSqlData_TableView.Read_Data;
FindGridRecord(tv_spec,[tv_Spec_Name,tv_Spec_Q]
,VarArrayOf([cW_New_Spec.Wrappers[cxTextEditNew_Spec_Name].Value
,cW_New_Spec.Wrappers[cxTextEditNew_Spec_Quality].Value])
,true);
end; // 4
end; // 3
end; // 2
finally // 1
if assigned(mf)
then FreeAndNil(mf);
end; // 1
end;
procedure TForm_Dictionaries.Action_Insert_Spec_DivExecute(Sender: TObject);
//const Name = 'Организаторы обучения';
var
mf: TSForm;
begin
try // 1
mf := CreateSForm(self, 'fNew_Spec_Div'
, cxTabSheet_New_Spec_Div.Caption
, Add_Path + cxTabSheet_New_Spec_Div.Caption, Panel_New_Spec_Div, tdb_Apply);
if VarToStr(cW_New_Spec_Div.Wrappers[cxDateEditNew_Spec_Div_D_Start].Value) = ''
then cW_New_Spec_Div.Wrappers[cxDateEditNew_Spec_Div_D_Start].Value := DateToStr(Date);
cW_New_Spec_Div.OnChangeWrapper(nil);
mf.Position := poScreenCenter;
if mf.ShowModal = mrOk
then begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_spec_div);
if FSqlData_TableView <> nil
then begin // 3
FSqlData_TableView.Insert_New(
CreateVarAr([
cW_New_Spec_Div.Wrappers[cxPopupEditNew_Spec_Div_Spec].Value
,cW_New_Spec_Div.Wrappers[cxPopupEditNew_Spec_Div_Div].Value
,cW_New_Spec_Div.Wrappers[cxPopupEditNew_Spec_Div_KT].Value
,cW_New_Spec_Div.Wrappers[cxDateEditNew_Spec_Div_D_Start].Value
,cW_New_Spec_Div.Wrappers[cxDateEditNew_Spec_Div_D_End].Value
,cW_New_Spec_Div.Wrappers[cxPopupEditNew_Spec_Div_Institute].Value
,IDK_Level_Formation
,cW_New_Spec_Div.Wrappers[cxPopupEditNew_Spec_Div_SF].Value
]))
end; // 3
end; // 2
finally // 1
if assigned(mf)
then FreeAndNil(mf);
end; // 1
end;
{ Добавление новой комиссии}
procedure TForm_Dictionaries.Action_New_CommissionExecute(Sender: TObject);
var new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_Commission'
, cxTabSheet_New_Sommission.Caption
, Add_Path + cxTabSheet_New_Sommission.Caption, Panel_New_Commission, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cW_New_Commission.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form)
then FreeAndNil(new_form);
end; // 1
end;
{ Добавление члена комиссии}
procedure TForm_Dictionaries.Action_New_MemberExecute(Sender: TObject);
var new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_Member'
, cxTabSheet_New_Member.Caption
, Add_Path + cxTabSheet_New_Member.Caption, Panel_New_Member, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cw_New_Member.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form)
then FreeAndNil(new_form);
end; // 1
end;
{ Обновим нужные данные}
procedure TForm_Dictionaries.cxPageControl3Change(Sender: TObject);
begin
if Get_SqlData_cxGrid(tv_ed_group) <> nil
then
if Sender = cxPageControl3
then
if cxPageControl3.ActivePageIndex = 0
then Get_SqlData_cxGrid(tv_ed_group).Read_Data_First
else Get_SqlData_cxGrid(TTree_Commission).Read_Data_First;
end;
procedure TForm_Dictionaries.cxPopupEditNew_Spec_Div_DivPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_org_divExecute(self);
end;
procedure TForm_Dictionaries.cxPopupEditNew_Spec_Div_InstitutePropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_intitutesExecute(self);
end;
procedure TForm_Dictionaries.cxPopupEditNew_Spec_Div_KTPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_kind_trainingExecute(self);
end;
procedure TForm_Dictionaries.cxPopupEditNew_Spec_Div_SFPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_source_finansingExecute(self);
end;
procedure TForm_Dictionaries.cxPopupEditNew_Spec_Div_SpecPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_specExecute(self);
end;
procedure TForm_Dictionaries.Fill_tv_intitutesExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_institutes);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Dictionaries.Fill_tv_kind_trainingExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_Kind_Training);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Dictionaries.Fill_tv_k_l_fExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_klf);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Dictionaries.Fill_tv_org_divExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_Org_Division);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Dictionaries.Fill_tv_source_finansingExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_Source_Financing);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Dictionaries.Fill_tv_specExecute(Sender: TObject);
var Param1: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_Spec);
if (FSqlData_TableView <> nil)
then begin // 1
Param1 := VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value);
if VarToStr(FSqlData_TableView.Params[1]) <> Param1
then begin // 2
FSqlData_TableView.Params[1] := Param1;
FSqlData_TableView.Read_Data;
end // 2
else
if FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end; // 1
end;
procedure TForm_Dictionaries.Fill_tv_spec_divExecute(Sender: TObject);
var Param1: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_spec_div);
if (FSqlData_TableView <> nil)
then begin // 1
Param1 := VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value);
if VarToStr(FSqlData_TableView.Params[1]) <> Param1
then begin // 2
FSqlData_TableView.Params[1] := Param1;
FSqlData_TableView.Read_Data;
end // 2
else
if FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end; // 1
end;
procedure TForm_Dictionaries.FormDestroy(Sender: TObject);
begin
{ Сохраним параметры в реестр }
Save_Restore_Params(Curr_Reg_Path, False);
end;
procedure TForm_Dictionaries.FormShow(Sender: TObject);
begin
{ Перечитываем списки }
if PageControl_Main.ActivePage = cxTabSheet_Spec
then Fill_tv_specExecute(self);
if PageControl_Main.ActivePage = cxTabSheet_Org
then Fill_tv_spec_divExecute(self);
end;
{ Изменили фильтр!}
procedure TForm_Dictionaries.PageControl_MainPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
begin
if NewPage = cxTabSheet_Spec
then Fill_tv_specExecute(self);
if NewPage = cxTabSheet_Org
then Fill_tv_spec_divExecute(self);
end;
{ Подразделение}
procedure TForm_Dictionaries.PopupEdit_Filter_OrgPropertiesEditValueChanged(
Sender: TObject);
begin
if cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org] <> nil then
if Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1]
<> VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value)
then
begin
Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1] :=
VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value);
Get_SqlData_cxGrid(tv_Source_Financing).IsFirstRead := True;
end;
end;
procedure TForm_Dictionaries.PopupEdit_Filter_OrgPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_intitutesExecute(self);
end;
procedure TForm_Dictionaries.DoChanged_cW_New_Spec(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_Spec, cW_New_Spec.IsNotEmptyMandatory);
end;
procedure TForm_Dictionaries.DoChanged_cW_New_Spec_Div(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_Spec_Div, cW_New_Spec_Div.IsNotEmptyMandatory);
end;
procedure TForm_Dictionaries.DoChanged_cW_New_Ed_Group(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_Ed_Group, cW_New_Ed_Group.IsNotEmptyMandatory);
end;
procedure TForm_Dictionaries.DoChanged_cW_Intitute_Filter(AWrapper: TCustomEditWrapper);
begin
if PageControl_Main.ActivePage = cxTabSheet_Spec
then Fill_tv_specExecute(self);
if PageControl_Main.ActivePage = cxTabSheet_Org
then Fill_tv_spec_divExecute(self);
end;
{ Выбрали новую специальность подразделения}
procedure TForm_Dictionaries.OnChoiceGridRecord_tv_spec_div(Sender: TSqlData_cxGridTableView; AGridRecord: TcxGridDataRow);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_ed_group);
if (FSqlData_TableView <> nil) and (Sender <> nil)
then
if Sender.GridTableView = tv_spec_div
then
begin
with Sender, GridTableView.DataController do
if (LastChoiceIndex >= 0)
and (LastChoiceIndex < GridTableView.DataController.RecordCount)
then
begin // 1
FSqlData_TableView.Params[0] :=
VarToStr(Values[Sender.LastChoiceIndex, tv_spec_div_id_spec_div.Index]);
FSqlData_TableView.IsFirstRead := True;
FSqlData_TableView.ActionInsert.Enabled := Sender.ActionDelete.Enabled;
Get_SqlData_cxGrid(TTree_Commission).ActionInsert.Enabled := Sender.ActionDelete.Enabled;
Get_SqlData_cxGrid(TTree_Commission).Parameters[1] :=
VarToStr(Values[Sender.LastChoiceIndex, tv_spec_div_id_d_institute.Index]);
if Get_SqlData_cxGrid(TTree_Commission).Parameters[2] <>
VarToStr(Values[Sender.LastChoiceIndex, tv_spec_div_id_spec.Index])
then
begin
Get_SqlData_cxGrid(TTree_Commission).Parameters[2] :=
VarToStr(Values[Sender.LastChoiceIndex, tv_spec_div_id_spec.Index]);
Get_SqlData_cxGrid(TTree_Commission).IsFirstRead := True;
end;
end // 1
else
begin
FSqlData_TableView.Params[0] := '';
FSqlData_TableView.ClearData;
FSqlData_TableView.ActionInsert.Enabled := False;
Get_SqlData_cxGrid(TTree_Commission).Parameters[1] := '';
Get_SqlData_cxGrid(TTree_Commission).Parameters[2] := '';
Get_SqlData_cxGrid(TTree_Commission).ClearData;
Get_SqlData_cxGrid(TTree_Commission).ActionInsert.Enabled := False;
end;
cxPageControl3Change(cxPageControl3);
end
else
if Sender.GridTableView = TTree_Commission
then
begin
with Sender.GridTableView.DataController do
if (Sender.LastChoiceIndex >= 0)
and (Sender.LastChoiceIndex < RecordCount)
then
begin
Get_SqlData_cxGrid(TTree_Members).ActionInsert.Enabled := Sender.ActionDelete.Enabled;
if Get_SqlData_cxGrid(TTree_Members).Parameters[1] <>
VarToStr(Values[Sender.LastChoiceIndex, Tree_Commission_ID.Index])
then
begin
Get_SqlData_cxGrid(TTree_Members).Parameters[1] :=
VarToStr(Values[Sender.LastChoiceIndex, Tree_Commission_ID.Index]);
Get_SqlData_cxGrid(TTree_Members).Read_Data;
end
else Get_SqlData_cxGrid(TTree_Members).Read_Data_First
end
else
begin
Get_SqlData_cxGrid(TTree_Members).Parameters[1] := '';
Get_SqlData_cxGrid(TTree_Members).ClearData;
Get_SqlData_cxGrid(TTree_Members).ActionInsert.Enabled := False;
end;
end;
end;
end.
unit Plan
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, cxPC, cxControls, cxSplitter, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
cxGridCustomView, cxGrid, cxEditRepositoryItems, cxClasses, cxTL,
cxContainer, cxPropertiesStore, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxLabel,wrappers, ActnList, cxLookAndFeels, cxLookAndFeelPainters, cxSpinEdit,
cxCalendar, GridEditClass,cxButtonEdit, cxTimeEdit;
const
{ Роль на редактирование специальностей мет. комплекса, специальностей,
организаторов обучения }
Action_Q_Edit_Spec = '1401';
{ Роль на редактирование учебных групп, сроков проведения и плана ПК }
Action_Q_Edit_Groups = '1402';
{ Вид уровня специальности "Повышение квалификации" }
IDK_Level_Spec = '70';
{ Вид дисциплины "Повышение квалификации }
IDK_Discipline = '59454';
{ Вид уровня образования "Повышение квалификации" }
IDK_Level_Formation = '70508';
{ Путь для сохранения в реестре }
Reg_Path = '\Software\AS Pilot group\Parameters\Модуль повышения квалификации\Планирование';
{ Путь для сохранения списков }
Grid_Path = '\Параметры списков\';
{ Путь для добавления }
Add_Path = 'Модуль повышения квалификации\Планирование\Добавление\';
type
TForm_Plan = class(TForm)
Panel_Main: TPanel;
PageControl_Main: TcxPageControl;
cxEditStyleController1: TcxEditStyleController;
cxStyleRepository3: TcxStyleRepository;
st_Group: TcxStyle;
sf_s_ContentEVEN: TcxStyle;
st_Filter_Box: TcxStyle;
st_Footer: TcxStyle;
st_Inactive: TcxStyle;
st_Indicator: TcxStyle;
st_Preview: TcxStyle;
st_Selection: TcxStyle;
st_ContentOdd: TcxStyle;
st_Content_TEXT: TcxStyle;
st_Content_POPUP: TcxStyle;
st_Content_DATE: TcxStyle;
st_Content_QUALIFIER: TcxStyle;
st_Footer_Column: TcxStyle;
st_Content_ID: TcxStyle;
st_Content_Memo: TcxStyle;
st_Content_Project: TcxStyle;
st_Content_Cancel: TcxStyle;
st_Content_ProjectSend: TcxStyle;
st_Content_Owner: TcxStyle;
st_Content_NotOwner: TcxStyle;
st_Content_Hot_Track: TcxStyle;
st_Inc_Search: TcxStyle;
st_Group_By_Box: TcxStyle;
st_Header: TcxStyle;
cxTreeList_Style_1: TcxTreeListStyleSheet;
cxGrid_Style_1: TcxGridBandedTableViewStyleSheet;
cxEditRepository1: TcxEditRepository;
cxER_Date_None_Blank: TcxEditRepositoryDateItem;
cxER_Date_With_Blank: TcxEditRepositoryDateItem;
cxER_Spin_ID: TcxEditRepositorySpinItem;
cxER_Text_RO: TcxEditRepositoryTextItem;
cxER_Memo_RO: TcxEditRepositoryMemoItem;
cxER_Date_RO: TcxEditRepositoryDateItem;
cxPropertiesStore1: TcxPropertiesStore;
Panel_Filter: TPanel;
cxLabel1: TcxLabel;
PopupEdit_Filter_Org: TcxPopupEdit;
cxER_Text: TcxEditRepositoryTextItem;
ActionList1: TActionList;
cxTabSheet_Editing: TcxTabSheet;
cxPageControl1: TcxPageControl;
cxTabSheet_Institutes: TcxTabSheet;
cxGrid_Institutes: TcxGrid;
tv_institutes: TcxGridBandedTableView;
tv_institutes_Abbr: TcxGridBandedColumn;
tv_institutes_Name: TcxGridBandedColumn;
tv_institutes_ID: TcxGridBandedColumn;
cxGridLevel2: TcxGridLevel;
cxTabSheet_Add: TcxTabSheet;
cxPageControl2: TcxPageControl;
Fill_tv_intitutes: TAction;
cxGrid_Com_Spec: TcxGrid;
tv_com_spec: TcxGridBandedTableView;
tv_com_spec_name_spec: TcxGridBandedColumn;
tv_com_spec_name_div: TcxGridBandedColumn;
tv_com_spec_kind_training: TcxGridBandedColumn;
tv_com_spec_id_spec_div: TcxGridBandedColumn;
tv_com_spec_id_spec: TcxGridBandedColumn;
tv_com_spec_id_d_spec_div: TcxGridBandedColumn;
tv_com_spec_idk_training: TcxGridBandedColumn;
cxGridLevel5: TcxGridLevel;
tv_com_spec_id_p_dp: TcxGridBandedColumn;
tv_com_spec_id_order: TcxGridBandedColumn;
tv_com_spec_idk_order: TcxGridBandedColumn;
tv_com_spec_status_text: TcxGridBandedColumn;
tv_com_spec_status_order: TcxGridBandedColumn;
tv_com_spec_id_met_complex: TcxGridBandedColumn;
Fill_tv_com_spec: TAction;
Action_Insert_Com_Spec: TAction;
cxTabSheet_New_Com_Spec: TcxTabSheet;
Panel_New_Com_Spec: TPanel;
cxLabel7: TcxLabel;
cxLabel9: TcxLabel;
cxLabel10: TcxLabel;
cxLabel11: TcxLabel;
cxPopupEdit_New_Com_Spec: TcxPopupEdit;
cxLabel13: TcxLabel;
cxPopupEdit_New_Com_Spec_Kind_Training: TcxPopupEdit;
cxPopupEdit_New_Com_Spec_Div: TcxPopupEdit;
cxButtonEdit_New_Com_Spec_Paragraph: TcxButtonEdit;
cxSpinEdit_New_Com_Spec_Hours: TcxSpinEdit;
tv_com_spec_hours: TcxGridBandedColumn;
tv_com_spec_id_e_l_umk: TcxGridBandedColumn;
cxTabSheet_Spec_Div: TcxTabSheet;
cxGrid_Spec_Div_Popup: TcxGrid;
tv_spec_div_popup: TcxGridBandedTableView;
tv_spec_div_popup_name_spec: TcxGridBandedColumn;
tv_spec_div_popup_name_div: TcxGridBandedColumn;
tv_spec_div_popup_kind_training: TcxGridBandedColumn;
tv_spec_div_popup_institute: TcxGridBandedColumn;
tv_spec_div_popup_source: TcxGridBandedColumn;
tv_spec_div_popup_d_start: TcxGridBandedColumn;
tv_spec_div_popup_d_end: TcxGridBandedColumn;
tv_spec_div_popup_id_spec_div: TcxGridBandedColumn;
tv_spec_div_popup_id_spec: TcxGridBandedColumn;
tv_spec_div_popup_id_d: TcxGridBandedColumn;
tv_spec_div_popup_idk_training: TcxGridBandedColumn;
tv_spec_div_popup_id_d_institute: TcxGridBandedColumn;
tv_spec_div_popup_id_source: TcxGridBandedColumn;
tv_spec_div_popup_idk_level_formation: TcxGridBandedColumn;
cxGridLevel8: TcxGridLevel;
Fill_tv_spec_div: TAction;
tv_com_spec_id_erp_user: TcxGridBandedColumn;
cxLabel85: TcxLabel;
cxSpinEdit_New_Com_Spec_Hours_SR: TcxSpinEdit;
procedure FormDestroy(Sender: TObject);
procedure Fill_tv_intitutesExecute(Sender: TObject);
procedure Fill_tv_com_specExecute(Sender: TObject);
procedure Action_Insert_Com_SpecExecute(Sender: TObject);
procedure tv_com_specEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure tv_com_specSelectionChanged(Sender: TcxCustomGridTableView);
procedure FormShow(Sender: TObject);
procedure tv_com_specKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_com_specMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Fill_tv_spec_divExecute(Sender: TObject);
procedure PopupEdit_Filter_OrgPropertiesInitPopup(Sender: TObject);
procedure cxPopupEdit_New_Com_SpecPropertiesInitPopup(Sender: TObject);
private
{ Private declarations }
{ Доступность редактирования специальностей мет. комплекса, специальностей и организаторов обучения }
REdit_Spec: boolean;
{ Доступность редактирования учебных групп, сроков проведения и плана ПК }
REdit_Groups: boolean;
{ Объект для работы со списками }
FSqlData_TableView: TSqlData_cxGridTableView;
{ Путь реестра (для загрузки/сохранения параметров) }
Curr_Reg_Path: String;
{ Контейнеры оберток }
cW_Institute_Filter: TContainerWrappers;
cW_New_Com_Spec: TContainerWrappers;
{ Обработчики событий изменения в контейнерах оберток }
procedure DoChanged_cW_Intitute_Filter(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_Com_Spec(AWrapper: TCustomEditWrapper);
procedure Before_Delete_Exchange(Sender: TSqlData_cxGridTableView;
ARecordIndex: Integer; var ExchangeParameters: OleVariant);
{ Действие перед изменением данных в tv_com_spec }
procedure Before_Update_Exchange(Sender: TSqlData_cxGridTableView;
UpdateValue: Variant; AItem: TcxCustomGridTableItem; ARecordIndex: Integer;
var ExchangeParameters: OleVariant; var Allow: Boolean);
{ Установка доступности добавления }
procedure Allow_Insert(TV: TcxCustomGridTableView; Roles: array of boolean);
{ Установка доступности редактирования таблицы (с документом) }
function Allow_Editing(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean): boolean; overload;
{ Установка доступности редактирования таблицы (без документа) }
function Allow_Editing(TV: TcxCustomGridTableView; Roles: array of boolean): boolean; overload;
{ Установка доступности удаления из таблицы (с документом) }
procedure Allow_Delete(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean); overload;
{ Установка доступности удаления из таблицы (без документа) }
procedure Allow_Delete(TV: TcxCustomGridTableView; Roles: array of boolean); overload;
{ Сохранение/восстановление параметров списков }
procedure Save_Restore_Params(RReg_Path: String = Reg_Path; PIs_Load: Boolean = True);
public
{ Public declarations }
{ Инициализация формы }
procedure Init(AReg_Path: String = Reg_Path);
{ Обновить роли }
procedure Refresh_Roles;
{ Проверка доступности ко всей форме без создания ее самой }
class function IsRoleAccessible: Boolean;
end;
var
Form_Plan: TForm_Plan;
implementation
{$R *.dfm}
uses SysServices, Get_PK_PPS_Data, standart_new, get_single_data, LP_u_CX_tools;
{ Сохранение/восстановление параметров списков }
procedure TForm_Plan.Save_Restore_Params(RReg_Path: String = Reg_Path; PIs_Load: Boolean = True);
begin
cxPropertiesStore1.StorageName:=RReg_Path+'\Общие параметры';
if PIs_Load
{ Восстановление параметров }
then begin // 1
{ Восстановим общие параметры }
cxPropertiesStore1.RestoreFrom;
{ Восстановим значения фильтра по институтам }
if PopupEdit_Filter_Org.Tag <> 0
then begin // 2
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value := IntToStr(PopupEdit_Filter_Org.Tag);
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay := PopupEdit_Filter_Org.Text;
end // 2
else begin // 3
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value := '';
cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay := '';
end; // 3
end // 1
{ Сохранение параметров }
else begin // 4
{ Сохраним значения фильтра по институтам }
if VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value) <> ''
then begin // 5
PopupEdit_Filter_Org.Tag := StrToInt(VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value));
PopupEdit_Filter_Org.Text := VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].ValueDisplay);
end // 5
else begin // 6
PopupEdit_Filter_Org.Tag := 0;
PopupEdit_Filter_Org.Text := '';
end; // 6
{ Сохраним общие параметры }
cxPropertiesStore1.StoreTo(True);
end; // 4
{ Сохранение или загрузки параметров списков (в зависимости от параметра PIs_Load) }
Restore_cxGridTableView(tv_com_spec, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_com_spec).Table_Name);
Restore_cxGridTableView(tv_spec_div_popup, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_spec_div_popup).Table_Name);
Restore_cxGridTableView(tv_institutes, PIs_Load, RReg_Path+Grid_Path+Get_SqlData_cxGrid(tv_institutes).Table_Name);
end;
{ Проверка доступности ко всей форме без создания ее самой! }
class function TForm_Plan.IsRoleAccessible: Boolean;
begin
Result := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Spec)
or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Groups)
or vnSessionAgent.IsDBA;
end;
procedure TForm_Plan.PopupEdit_Filter_OrgPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_intitutesExecute(self);
end;
{ Проверка прав }
procedure TForm_Plan.Refresh_Roles;
var DBA: boolean;
begin
{ Проверка наличия ролей }
DBA := vnSessionAgent.IsDBA;
REdit_Spec := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Spec) or DBA;
REdit_Groups := vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Groups) or DBA;
end;
{ Установка доступности добавления }
procedure TForm_Plan.Allow_Insert(TV: TcxCustomGridTableView; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
if not FSqlData_TableView.IsFirstRead
then begin // 2
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionInsert.Enabled := Allow;
end // 2
else FSqlData_TableView.ActionInsert.Enabled := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (с документом) }
function TForm_Plan.Allow_Editing(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean): boolean;
var status, id_erp: string;
i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
if (TV.DataController.FocusedRecordIndex <> -1)
then begin // 2
status := VarToStr(TV.DataController.Values[TV.DataController.FocusedRecordIndex
,Status_Column.Index]);
id_erp := VarToStr(TV.DataController.Values[TV.DataController.FocusedRecordIndex
,ID_ERP_Column.Index]);
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
Result := (status = '2') and (id_erp = vnSessionAgent.ID_ERP_User) and Allow;
end // 2
else Result := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (без документа) }
function TForm_Plan.Allow_Editing(TV: TcxCustomGridTableView; Roles: array of boolean): boolean;
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
Result := (TV.DataController.FocusedRecordIndex <> -1) and Allow;
end // 1
else Result := False;
end;
{ Установка доступности удаления из таблицы (с документом) }
procedure TForm_Plan.Allow_Delete(TV: TcxCustomGridTableView; Status_Column: TcxGridColumn;
ID_ERP_Column: TcxGridColumn; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled := Is_Value(Status_Column, '2', false)
and Is_Value(ID_ERP_Column, vnSessionAgent.ID_ERP_User, false)
and (TV.Controller.SelectedRecordCount > 0) and Allow;
end; // 1
end;
{ Установка доступности удаления из таблицы (без документа) }
procedure TForm_Plan.Allow_Delete(TV: TcxCustomGridTableView; Roles: array of boolean);
var i: integer;
Allow: boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0)
then begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1
do Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled := (TV.Controller.SelectedRecordCount > 0) and Allow;
end; // 1
end;
procedure TForm_Plan.tv_com_specEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
Allow_Editing(Sender, tv_com_spec_status_order, tv_com_spec_id_erp_user, [REdit_Spec]);
end;
procedure TForm_Plan.tv_com_specKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT
then Allow_Insert(tv_com_spec, [REdit_Spec]);
end;
procedure TForm_Plan.tv_com_specMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight
then Allow_Insert(tv_com_spec, [REdit_Spec]);
end;
procedure TForm_Plan.tv_com_specSelectionChanged(
Sender: TcxCustomGridTableView);
begin
Allow_Delete(Sender, tv_com_spec_status_order, tv_com_spec_id_erp_user, [REdit_Spec]);
end;
{ Настройка списков }
procedure TForm_Plan.Init(AReg_Path: String = Reg_Path);
begin
Curr_Reg_Path := AReg_Path;
{ Описание для различных оберток }
// *****************************************************************************
cW_Institute_Filter := TContainerWrappers.Create;
cW_Institute_Filter.AddPopupEdit(PopupEdit_Filter_Org, false, false, cxGrid_Institutes,
tv_institutes ,tv_institutes_ID, [tv_institutes_Abbr, tv_institutes_Name], '');
cW_Institute_Filter.OnChangedValueWrapper := DoChanged_cW_Intitute_Filter;;
// *****************************************************************************
// *****************************************************************************
cW_New_Com_Spec := TContainerWrappers.Create;
cW_New_Com_Spec.AddPopupEdit(cxPopupEdit_New_Com_Spec, true, false, cxGrid_Spec_Div_Popup,
tv_spec_div_popup, tv_spec_div_popup_id_spec_div, [tv_spec_div_popup_name_spec, tv_spec_div_popup_name_div, tv_spec_div_popup_kind_training], '');
cW_New_Com_Spec.AddButtonOrderEdit(cxButtonEdit_New_Com_Spec_Paragraph, True,
False, '', ['901'],[OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW], [nil,nil,nil,nil]);
cW_New_Com_Spec.AddCustomEdit(cxSpinEdit_New_Com_Spec_Hours, true, false, '');
cW_New_Com_Spec.AddCustomEdit(cxSpinEdit_New_Com_Spec_Hours_SR, true, false, '');
cW_New_Com_Spec.AddPopupEdit(cxPopupEdit_New_Com_Spec_Div, true, false, cxGrid_Spec_Div_Popup, tv_spec_div_popup, tv_spec_div_popup_id_d, [tv_spec_div_popup_name_div], '');
cW_New_Com_Spec.AddPopupEdit(cxPopupEdit_New_Com_Spec_Kind_Training, true, false, cxGrid_Spec_Div_Popup, tv_spec_div_popup, tv_spec_div_popup_idk_training, [tv_spec_div_popup_kind_training], '');
cW_New_Com_Spec.OnChangeWrapper := DoChanged_cW_New_Com_Spec;
// *****************************************************************************
// ---------------------------------------------
// добавление институтов
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_institutes) = nil
then with TSqlData_cxGridTableView.Create(tv_institutes)
do begin
Editing := false;
Table_Name := 'Институты';
GUID_Select := Get_List_Institutes;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec]);
Select_Columns.Add(tv_institutes_Abbr);
Select_Columns.Add(tv_institutes_Name);
Select_Columns.Add(tv_institutes_ID);
Key_Columns.Add(tv_institutes_ID);
Stat_Column := tv_institutes_Abbr;
NameColumnsForPopupEdit.Add(tv_institutes_Abbr);
NameColumnsForPopupEdit.Add(tv_institutes_Name);
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление обучаемых специальностей (специальности подразделений)
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_spec_div_popup) = nil
then with TSqlData_cxGridTableView.Create(tv_spec_div_popup)
do begin
Editing := false;
Single := false;
Table_Name := 'Обучаемые специальности';
GUID_Select := Spec_div;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec,'']);
Stat_Column := tv_spec_div_popup_institute;
NameColumnForPopupEdit := tv_spec_div_popup_institute;
with Select_Columns
do begin
Add(tv_spec_div_popup_name_spec,1);
Add(tv_spec_div_popup_name_div,2);
Add(tv_spec_div_popup_kind_training,3);
Add(tv_spec_div_popup_institute,6);
Add(tv_spec_div_popup_source,12);
Add(tv_spec_div_popup_d_start,4);
Add(tv_spec_div_popup_d_end,5);
Add(tv_spec_div_popup_id_spec_div,0);
Add(tv_spec_div_popup_id_spec,1);
Add(tv_spec_div_popup_id_d,2);
Add(tv_spec_div_popup_idk_training,3);
Add(tv_spec_div_popup_id_d_institute,6);
Add(tv_spec_div_popup_id_source,12);
Add(tv_spec_div_popup_idk_level_formation,8);
end;
Key_Columns.Add(tv_spec_div_popup_id_spec_div,0);
PopupActions.Add(ActionUpdate);
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление специальностей комплекса
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_com_spec) = nil
then with TSqlData_cxGridTableView.Create(tv_com_spec)
do begin
Editing := true;
Single := false;
Table_Name := 'Специальности комплекса';
GUID_Select := Com_Spec;
GUID_Delete := Delete_Com_Spec;
GUID_Update_Exchange := Update_Com_Spec;
StepOnTopDataRecordMode := True;
Params := CreateVarAr(['']);
Stat_Column := tv_com_spec_name_div;
NameColumnForPopupEdit := tv_com_spec_name_div;
OnBefore_Delete_Exchange := Before_Delete_Exchange;
OnBefore_Update_Exchange := Before_Update_Exchange;
with Select_Columns
do begin
Add(tv_com_spec_name_spec);
Add(tv_com_spec_name_div);
Add(tv_com_spec_kind_training);
Add(tv_com_spec_status_text);
Add(tv_com_spec_hours,5);
Add(tv_com_spec_id_spec_div);
Add(tv_com_spec_id_spec);
Add(tv_com_spec_id_d_spec_div);
Add(tv_com_spec_idk_training);
Add(tv_com_spec_status_order);
Add(tv_com_spec_id_p_dp);
Add(tv_com_spec_id_order);
Add(tv_com_spec_idk_order);
Add(tv_com_spec_id_met_complex);
Add(tv_com_spec_id_e_l_umk);
Add(tv_com_spec_id_erp_user);
end;
with IndividualEditInfoList.Add
do begin
GUID_Update := d_P_EDUCATIONAL_LOAD_UMK;
KeyColumns.Add(tv_com_spec_id_met_complex,1);
EditColumns.Add(tv_com_spec_hours,5);
end;
with PopupColumnsList.Add(tv_com_spec_name_spec)
do begin
SelfKeyColumn := tv_com_spec_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_name_spec;
end;
with PopupColumnsList.Add(tv_com_spec_name_div)
do begin
SelfKeyColumn := tv_com_spec_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_name_div;
end;
with PopupColumnsList.Add(tv_com_spec_kind_training)
do begin
SelfKeyColumn := tv_com_spec_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_kind_training;
end;
OptionsOrder.Column_Status_Text := tv_com_spec_status_text;
OptionsOrder.Column_ID_order := tv_com_spec_id_order;
OptionsOrder.Column_ID_paragraph := tv_com_spec_id_p_dp;
OptionsOrder.Column_IDk_order := tv_com_spec_idk_order;
ActionInsert.Visible:=True;
ActionInsert.OnExecute:=Action_Insert_Com_Spec.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
end;
// ---------------------------------------------
{ Cкрываем ненужные страницы }
cxTabSheet_Editing.TabVisible := False;
cxTabSheet_Add.TabVisible := False;
{ Прочитаем параметры из реестра }
Save_Restore_Params(Curr_Reg_Path, True);
end;
procedure TForm_Plan.Action_Insert_Com_SpecExecute(Sender: TObject);
//const Name = 'Содержание методического комплекса';
var
mf: TSForm;
begin
try // 1
mf := CreateSForm(self, 'fNew_Com_Spec'
, cxTabSheet_New_Com_Spec.Caption
, Add_Path + cxTabSheet_New_Com_Spec.Caption
, Panel_New_Com_Spec, tdb_Apply);
cW_New_Com_Spec.OnChangeWrapper(nil);
mf.Position := poScreenCenter;
if mf.ShowModal = mrOk
then begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_com_spec);
if FSqlData_TableView <> nil
then begin // 3
if MSystemServices.ExchangeData(Add_Com_Spec,
CreateVarAr([
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Div].Value
,cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec].Value
,cW_New_Com_Spec.Wrappers[cxButtonEdit_New_Com_Spec_Paragraph].Value
,cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Kind_Training].Value
,cW_New_Com_Spec.Wrappers[cxSpinEdit_New_Com_Spec_Hours].Value
,IDK_Discipline
,cW_New_Com_Spec.Wrappers[cxSpinEdit_New_Com_Spec_Hours_SR].Value
])
,'Добавление программы методического комплекса.')
then begin // 4
TButtonOrderEditWrapper(cW_New_Com_Spec.Wrappers[cxButtonEdit_New_Com_Spec_Paragraph]).IsEmpty := false;
FSqlData_TableView.Read_Data;
FindGridRecord(tv_com_spec, [tv_com_spec_id_spec_div, tv_com_spec_id_p_dp],
VarArrayOf([cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec].Value,
cW_New_Com_Spec.Wrappers[cxButtonEdit_New_Com_Spec_Paragraph].Value]), true);
end; // 4
end; // 3
end; // 2
finally // 1
if assigned(mf)
then FreeAndNil(mf);
end; // 1
end;
procedure TForm_Plan.Fill_tv_com_specExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_com_spec);
if (FSqlData_TableView <> nil)
then begin // 1
if PopupEdit_Filter_Org.Text <> ''
then Get_SqlData_cxGrid(tv_com_spec).Params[0] :=
VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value)
else Get_SqlData_cxGrid(tv_com_spec).Params[0] := '';
if FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First
else FSqlData_TableView.Read_Data;
end; // 1
end;
procedure TForm_Plan.Fill_tv_intitutesExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_institutes);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Plan.Fill_tv_spec_divExecute(Sender: TObject);
var Param1: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_spec_div_popup);
if (FSqlData_TableView <> nil)
then begin // 1
Param1 := VarToStr(cW_Institute_Filter.Wrappers[PopupEdit_Filter_Org].Value);
if VarToStr(FSqlData_TableView.Params[1]) <> Param1
then begin // 2
FSqlData_TableView.Params[1] := Param1;
FSqlData_TableView.Read_Data;
end // 2
else
if FSqlData_TableView.IsFirstRead
then FSqlData_TableView.Read_Data_First;
end; // 1
end;
procedure TForm_Plan.FormDestroy(Sender: TObject);
begin
{ Сохраним параметры в реестр }
Save_Restore_Params(Curr_Reg_Path, False);
end;
procedure TForm_Plan.FormShow(Sender: TObject);
begin
{ Перечитываем списки }
Fill_tv_com_specExecute(self);
end;
procedure TForm_Plan.DoChanged_cW_New_Com_Spec(AWrapper: TCustomEditWrapper);
begin
if AWrapper = cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec]
then begin // 1
if not cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec].IsClear
then begin // 2
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Kind_Training].Value :=
VarToStr(tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_idk_training.Index]);
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Kind_Training].ValueDisplay :=
VarToStr(tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_kind_training.Index]);
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Div].Value :=
VarToStr(tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_id_d.Index]);
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Div].ValueDisplay :=
VarToStr(tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_name_div.Index]);
end // 2
else begin // 3
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Div].Value := '';
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Div].ValueDisplay := '';
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Kind_Training].Value := '';
cW_New_Com_Spec.Wrappers[cxPopupEdit_New_Com_Spec_Kind_Training].ValueDisplay := '';
end; // 3
end; // 1
MakeEnable_OkButton(Panel_New_Com_Spec, cW_New_Com_Spec.IsNotEmptyMandatory);
end;
procedure TForm_Plan.DoChanged_cW_Intitute_Filter(AWrapper: TCustomEditWrapper);
begin
Fill_tv_com_specExecute(self);
end;
procedure TForm_Plan.Before_Delete_Exchange(Sender: TSqlData_cxGridTableView; ARecordIndex: Integer; var ExchangeParameters: OleVariant);
begin
if Sender.GridTableView = tv_com_spec
then with Sender.GridTableView.DataController do
ExchangeParameters := CreateVarAr([Values[FocusedRecordIndex, tv_com_spec_id_met_complex.Index]
,Values[FocusedRecordIndex, tv_com_spec_id_spec_div.Index]
,Values[FocusedRecordIndex, tv_com_spec_id_p_dp.Index]
]);
end;
procedure TForm_Plan.Before_Update_Exchange(Sender: TSqlData_cxGridTableView;
UpdateValue: Variant; AItem: TcxCustomGridTableItem; ARecordIndex: Integer;
var ExchangeParameters: OleVariant; var Allow: Boolean);
begin
if (Sender.GridTableView = tv_com_spec)
and (Sender.GridTableView.Controller.FocusedColumn <> tv_com_spec_hours)
then with Sender.GridTableView.DataController do
ExchangeParameters :=
CreateVarAr([Values[FocusedRecordIndex, tv_com_spec_id_met_complex.Index]
,Values[FocusedRecordIndex, tv_com_spec_id_spec_div.Index]
,Values[FocusedRecordIndex, tv_com_spec_id_p_dp.Index]
,tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_id_spec_div.Index]
,tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_idk_training.Index]
,tv_spec_div_popup.DataController.Values[tv_spec_div_popup.DataController.FocusedRecordIndex
,tv_spec_div_popup_id_d.Index]
]);
end;
procedure TForm_Plan.cxPopupEdit_New_Com_SpecPropertiesInitPopup(
Sender: TObject);
begin
Fill_tv_spec_divExecute(self);
end;
unit Event
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, cxPC, cxControls, cxSplitter, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridBandedTableView,
cxGridCustomView, cxGrid, cxEditRepositoryItems, cxClasses, cxTL,
cxContainer, cxPropertiesStore, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxLabel, wrappers, ActnList, cxLookAndFeels, cxLookAndFeelPainters,
cxSpinEdit,
cxCalendar, GridEditClass, cxButtonEdit, SE, cxGroupBox, Find_Org,
LP_u_MA_Interface,
UnivQuestionnaire, Menus, StdCtrls, cxButtons, cxCurrencyEdit, DateUtils,
cxMemo, OleServer, Excel2000, cxProgressBar, cxCheckBox, cxRadioGroup;
const
{ Роль на редактирование учебных групп, сроков проведения и плана ПК }
Action_Q_Edit_Groups = '1402';
{ Роль на просмотр мероприятий }
Action_Q_View_Event = '1403';
{ Полный доступ к мероприятиям }
Action_Q_Edit_Event = '1404';
{ Вид уровня специальности "Повышение квалификации" }
IDK_Level_Spec = '70';
IDK_Discipline = '59454';
{ Путь для сохранения в реестре }
Reg_Path = '\Software\AS Pilot group\Parameters\Модуль повышения квалификации\Мероприятия';
{ Путь для сохранения списков }
Grid_Path = '\Параметры списков\';
{ Путь для добавления }
Add_Path = 'Модуль повышения квалификации\Мероприятия\Добавление\';
// Выбор участника
Choice_Listener = 'Участник не выбран';
// Печать сертификата
View_Cert: TGUID = '{5F2398A1-75FE-4E65-B294-4F1A47315662}';
type
TForm_Event = class(TForm)
Panel_Main: TPanel;
cxSplitter2: TcxSplitter;
PageControl_Main: TcxPageControl;
cxTabSheet_R_C_Groups: TcxTabSheet;
cxEditStyleController1: TcxEditStyleController;
cxStyleRepository3: TcxStyleRepository;
st_Group: TcxStyle;
sf_s_ContentEVEN: TcxStyle;
st_Filter_Box: TcxStyle;
st_Footer: TcxStyle;
st_Inactive: TcxStyle;
st_Indicator: TcxStyle;
st_Preview: TcxStyle;
st_Selection: TcxStyle;
st_ContentOdd: TcxStyle;
st_Content_TEXT: TcxStyle;
st_Content_POPUP: TcxStyle;
st_Content_DATE: TcxStyle;
st_Content_QUALIFIER: TcxStyle;
st_Footer_Column: TcxStyle;
st_Content_ID: TcxStyle;
st_Content_Memo: TcxStyle;
st_Content_Project: TcxStyle;
st_Content_Cancel: TcxStyle;
st_Content_ProjectSend: TcxStyle;
st_Content_Owner: TcxStyle;
st_Content_NotOwner: TcxStyle;
st_Content_Hot_Track: TcxStyle;
st_Inc_Search: TcxStyle;
st_Group_By_Box: TcxStyle;
st_Header: TcxStyle;
cxTreeList_Style_1: TcxTreeListStyleSheet;
cxGrid_Style_1: TcxGridBandedTableViewStyleSheet;
cxEditRepository1: TcxEditRepository;
cxER_Date_None_Blank: TcxEditRepositoryDateItem;
cxER_Date_With_Blank: TcxEditRepositoryDateItem;
cxER_Spin_ID: TcxEditRepositorySpinItem;
cxER_Text_RO: TcxEditRepositoryTextItem;
cxER_Memo_RO: TcxEditRepositoryMemoItem;
cxER_Date_RO: TcxEditRepositoryDateItem;
cxPropertiesStore1: TcxPropertiesStore;
cxER_Text: TcxEditRepositoryTextItem;
cxGrid_R_C_Plan: TcxGrid;
tv_r_c_plan: TcxGridBandedTableView;
cxGrid_R_C_Plan_Level1: TcxGridLevel;
tv_r_c_plan_name_spec: TcxGridBandedColumn;
tv_r_c_plan_institute: TcxGridBandedColumn;
tv_r_c_plan_division: TcxGridBandedColumn;
tv_r_c_plan_kind_training: TcxGridBandedColumn;
tv_r_c_plan_d_start: TcxGridBandedColumn;
tv_r_c_plan_d_end: TcxGridBandedColumn;
tv_r_c_plan_status_text: TcxGridBandedColumn;
tv_r_c_plan_id_r_c_plan: TcxGridBandedColumn;
tv_r_c_plan_id_spec_div: TcxGridBandedColumn;
tv_r_c_plan_id_spec: TcxGridBandedColumn;
tv_r_c_plan_id_institute: TcxGridBandedColumn;
tv_r_c_plan_id_d: TcxGridBandedColumn;
tv_r_c_plan_idk_training: TcxGridBandedColumn;
tv_r_c_plan_id_paragraph: TcxGridBandedColumn;
tv_r_c_plan_id_order: TcxGridBandedColumn;
tv_r_c_plan_idk_order: TcxGridBandedColumn;
tv_r_c_plan_status_order: TcxGridBandedColumn;
cxGrid_R_C_Groups: TcxGrid;
tv_r_c_groups: TcxGridBandedTableView;
cxGrid_R_C_Groups_Level1: TcxGridLevel;
ActionList1: TActionList;
Action_Insert_tv_r_c_plan: TAction;
cxTabSheet_Add: TcxTabSheet;
cxTabSheet_Editing: TcxTabSheet;
cxPageControl1: TcxPageControl;
cxTabSheet1: TcxTabSheet;
Panel_New_R_C_Plan: TPanel;
cxLabel7: TcxLabel;
cxLabel10: TcxLabel;
cxPopupEdit_New_R_C_Plan_Spec_Div: TcxPopupEdit;
cxButtonEdit_New_R_C_Plan_Paragraph: TcxButtonEdit;
cxLabel15: TcxLabel;
cxDateEdit_New_R_C_Plan_D_Start: TcxDateEdit;
cxDateEdit_New_R_C_Plan_D_End: TcxDateEdit;
cxLabel14: TcxLabel;
cxPageControl2: TcxPageControl;
cxTabSheet2: TcxTabSheet;
cxGrid_Spec_Div_PopUp: TcxGrid;
tv_spec_div_popup: TcxGridBandedTableView;
tv_spec_div_popup_name_spec: TcxGridBandedColumn;
tv_spec_div_popup_name_div: TcxGridBandedColumn;
tv_spec_div_popup_kind_training: TcxGridBandedColumn;
tv_spec_div_popup_institute: TcxGridBandedColumn;
tv_spec_div_popup_source: TcxGridBandedColumn;
tv_spec_div_popup_d_start: TcxGridBandedColumn;
tv_spec_div_popup_d_end: TcxGridBandedColumn;
tv_spec_div_popup_id_spec_div: TcxGridBandedColumn;
tv_spec_div_popup_id_spec: TcxGridBandedColumn;
tv_spec_div_popup_id_d: TcxGridBandedColumn;
tv_spec_div_popup_idk_training: TcxGridBandedColumn;
tv_spec_div_popup_id_d_institute: TcxGridBandedColumn;
tv_spec_div_popup_id_source: TcxGridBandedColumn;
tv_spec_div_popup_idk_level_formation: TcxGridBandedColumn;
cxGridLevel8: TcxGridLevel;
Fill_tv_spec_div_popup: TAction;
tv_r_c_groups_name: TcxGridBandedColumn;
tv_r_c_groups_d_start: TcxGridBandedColumn;
tv_r_c_groups_d_end: TcxGridBandedColumn;
tv_r_c_groups_status_text: TcxGridBandedColumn;
tv_r_c_groups_id_rc_group: TcxGridBandedColumn;
tv_r_c_groups_id_ed_group: TcxGridBandedColumn;
tv_r_c_groups_id_met_complex: TcxGridBandedColumn;
tv_r_c_groups_id_paragraph: TcxGridBandedColumn;
tv_r_c_groups_id_order: TcxGridBandedColumn;
tv_r_c_groups_idk_order: TcxGridBandedColumn;
tv_r_c_groups_status_order: TcxGridBandedColumn;
cxTabSheet3: TcxTabSheet;
tv_r_c_groups_id_r_c_plan: TcxGridBandedColumn;
Action_Insert_tv_r_c_group: TAction;
cxTabSheet4: TcxTabSheet;
cxGrid_Ed_Group: TcxGrid;
tv_ed_group: TcxGridBandedTableView;
tv_ed_group_name: TcxGridBandedColumn;
tv_ed_group_kind_group: TcxGridBandedColumn;
tv_ed_group_d_start: TcxGridBandedColumn;
tv_ed_group_d_end: TcxGridBandedColumn;
tv_ed_group_id_ed_group: TcxGridBandedColumn;
tv_ed_group_id_spec_div: TcxGridBandedColumn;
tv_ed_group_idk_group: TcxGridBandedColumn;
tv_ed_group_level_group: TcxGridBandedColumn;
cxGridLevel6: TcxGridLevel;
Panel_New_R_C_Group: TPanel;
cxLabel1: TcxLabel;
cxLabel2: TcxLabel;
cxPopupEdit_New_R_C_Group_Ed_Group: TcxPopupEdit;
cxLabel3: TcxLabel;
cxDateEdit_New_R_C_Group_D_Start: TcxDateEdit;
cxDateEdit_New_R_C_Group_D_End: TcxDateEdit;
cxLabel4: TcxLabel;
cxPopupEdit_New_R_C_Group_Met_Complex: TcxPopupEdit;
cxTabSheet5: TcxTabSheet;
cxGrid_Com_Spec: TcxGrid;
tv_com_spec: TcxGridBandedTableView;
tv_com_spec_name_spec: TcxGridBandedColumn;
tv_com_spec_name_div: TcxGridBandedColumn;
tv_com_spec_kind_training: TcxGridBandedColumn;
tv_com_spec_status_text: TcxGridBandedColumn;
tv_com_spec_hours: TcxGridBandedColumn;
tv_com_spec_status_order: TcxGridBandedColumn;
tv_com_spec_id_spec_div: TcxGridBandedColumn;
tv_com_spec_id_spec: TcxGridBandedColumn;
tv_com_spec_id_d_spec_div: TcxGridBandedColumn;
tv_com_spec_idk_training: TcxGridBandedColumn;
tv_com_spec_id_p_dp: TcxGridBandedColumn;
tv_com_spec_id_order: TcxGridBandedColumn;
tv_com_spec_idk_order: TcxGridBandedColumn;
tv_com_spec_id_met_complex: TcxGridBandedColumn;
tv_com_spec_id_e_l_umk: TcxGridBandedColumn;
cxGridLevel5: TcxGridLevel;
Fill_tv_com_spec: TAction;
tv_com_spec_institute: TcxGridBandedColumn;
tv_com_spec_id_institute: TcxGridBandedColumn;
Fill_tv_ed_group: TAction;
Fill_tv_r_c_plan: TAction;
cxTabSheet_Listeners: TcxTabSheet;
cxGrid_Listeners: TcxGrid;
tv_listeners: TcxGridBandedTableView;
cxGridLevel1: TcxGridLevel;
tv_listeners_fio: TcxGridBandedColumn;
tv_listeners_ed_group: TcxGridBandedColumn;
tv_listeners_d_start: TcxGridBandedColumn;
tv_listeners_d_end: TcxGridBandedColumn;
tv_listeners_kind_basis_action: TcxGridBandedColumn;
tv_listeners_status_text_order_start: TcxGridBandedColumn;
tv_listeners_id_e: TcxGridBandedColumn;
tv_listeners_id_ed_group: TcxGridBandedColumn;
tv_listeners_id_paragraph_start: TcxGridBandedColumn;
tv_listeners_id_order_start: TcxGridBandedColumn;
tv_listeners_idk_order_start: TcxGridBandedColumn;
tv_listeners_status_order_start: TcxGridBandedColumn;
tv_listeners_id_student: TcxGridBandedColumn;
tv_listeners_idkba_transfer: TcxGridBandedColumn;
cxTabSheet7: TcxTabSheet;
Panel_New_Listener: TPanel;
cxLabel5: TcxLabel;
cxLabel6: TcxLabel;
cxPopupEdit_New_Listener_FIO: TcxPopupEdit;
cxButtonEdit_New_Listener_Order_Start: TcxButtonEdit;
cxLabel8: TcxLabel;
cxDateEdit_New_Listener_D_Start: TcxDateEdit;
cxDateEdit_New_Listener_D_End: TcxDateEdit;
cxPopupEdit_New_Listener_Ed_Group: TcxPopupEdit;
cxLabel11: TcxLabel;
cxLabel9: TcxLabel;
cxLabel12: TcxLabel;
cxPopupEdit_New_Listener_Kind_Basis_Action: TcxPopupEdit;
cxTabSheet8: TcxTabSheet;
cxGrid_KBA_Start: TcxGrid;
tv_kba_start: TcxGridBandedTableView;
cxGridLevel2: TcxGridLevel;
tv_kba_start_name: TcxGridBandedColumn;
tv_kba_start_id: TcxGridBandedColumn;
Fill_tv_r_c_groups: TAction;
Fill_tv_listeners: TAction;
Action_Insert_tv_listeners: TAction;
Fill_tv_kba_start: TAction;
cxGroupBox_New_Listener_Contract_Params: TcxGroupBox;
cxLabel13: TcxLabel;
cxPopupEdit_New_Listener_Kind_Order: TcxPopupEdit;
cxLabel16: TcxLabel;
cxPopupEdit_New_Listener_Order: TcxPopupEdit;
cxLabel17: TcxLabel;
cxDateEdit_New_Listener_Contract_D_Start: TcxDateEdit;
cxLabel18: TcxLabel;
cxDateEdit_New_Listener_Contract_D_End: TcxDateEdit;
cxLabel19: TcxLabel;
cxPopupEdit_New_Listener_Contract_Organization: TcxPopupEdit;
cxLabel20: TcxLabel;
cxLabel21: TcxLabel;
cxPopupEdit_New_Listener_Contract_Source_Finansing: TcxPopupEdit;
cxTabSheet6: TcxTabSheet;
cxGrid_Kind_Order: TcxGrid;
tv_kind_order: TcxGridBandedTableView;
tv_kind_order_name: TcxGridBandedColumn;
tv_kind_order_id: TcxGridBandedColumn;
cxGridLevel3: TcxGridLevel;
cxTabSheet9: TcxTabSheet;
cxGrid_Contracts: TcxGrid;
tv_contracts: TcxGridBandedTableView;
cxGridLevel4: TcxGridLevel;
tv_contracts_contract: TcxGridBandedColumn;
tv_contracts_d_start: TcxGridBandedColumn;
tv_contracts_d_end: TcxGridBandedColumn;
tv_contracts_kind_order: TcxGridBandedColumn;
tv_contracts_id_contract: TcxGridBandedColumn;
tv_contracts_id_paragraph: TcxGridBandedColumn;
tv_contracts_id_order: TcxGridBandedColumn;
tv_contracts_idk_order: TcxGridBandedColumn;
tv_contracts_status_order: TcxGridBandedColumn;
cxTabSheet10: TcxTabSheet;
cxGrid_Source_Financing: TcxGrid;
tv_Source_Financing: TcxGridBandedTableView;
tv_Source_Financing_Abbreviation: TcxGridBandedColumn;
tv_Source_Financing_Name: TcxGridBandedColumn;
tv_Source_Financing_Abbr_Div: TcxGridBandedColumn;
tv_Source_Financing_Division: TcxGridBandedColumn;
tv_Source_Financing_Kind_Source: TcxGridBandedColumn;
tv_Source_Financing_Activity: TcxGridBandedColumn;
tv_Source_Financing_Date_Close: TcxGridBandedColumn;
tv_Source_Financing_ID: TcxGridBandedColumn;
tv_Source_Financing_ID_D: TcxGridBandedColumn;
tv_Source_Financing_ID_Kind_Source: TcxGridBandedColumn;
tv_Source_Financing_ID_Activity: TcxGridBandedColumn;
cxGridLevel7: TcxGridLevel;
Fill_tv_kind_order: TAction;
Fill_tv_contracts: TAction;
Fill_tv_source_finansing: TAction;
tv_listeners_org: TcxGridBandedColumn;
tv_listeners_money: TcxGridBandedColumn;
tv_listeners_status_text_contract: TcxGridBandedColumn;
tv_listeners_status_text_order_end: TcxGridBandedColumn;
tv_listeners_id_contract: TcxGridBandedColumn;
Delete_tv_listeners: TAction;
cxPageControl_Student: TcxPageControl;
cxSplitter3: TcxSplitter;
cxTabSheet_Orders: TcxTabSheet;
cxGrid_Orders: TcxGrid;
tv_orders: TcxGridBandedTableView;
cxGridLevel9: TcxGridLevel;
tv_orders_id_order: TcxGridBandedColumn;
tv_orders_kind_paragraph: TcxGridBandedColumn;
tv_orders_status_text: TcxGridBandedColumn;
tv_orders_id_paragraph: TcxGridBandedColumn;
tv_orders_d_creation: TcxGridBandedColumn;
tv_orders_d_modification: TcxGridBandedColumn;
tv_orders_idk_order: TcxGridBandedColumn;
tv_orders_status_order: TcxGridBandedColumn;
Fill_tv_orders: TAction;
tv_listeners_id_paragraph_contract: TcxGridBandedColumn;
tv_r_c_plan_id_erp_user: TcxGridBandedColumn;
tv_r_c_groups_id_erp_user: TcxGridBandedColumn;
tv_listeners_id_erp_user: TcxGridBandedColumn;
tv_orders_ed_group: TcxGridBandedColumn;
tv_orders_spec: TcxGridBandedColumn;
tv_orders_d_start: TcxGridBandedColumn;
tv_orders_kind_training: TcxGridBandedColumn;
tv_orders_institute: TcxGridBandedColumn;
tv_orders_status_order_contract: TcxGridBandedColumn;
tv_orders_kind_paragraph_contract: TcxGridBandedColumn;
cxTabSheet_Anketa: TcxTabSheet;
tv_listeners_id_contractor: TcxGridBandedColumn;
Panel_Anketa: TPanel;
Fill_Anketa: TAction;
tv_r_c_groups_hours: TcxGridBandedColumn;
tv_listeners_hours: TcxGridBandedColumn;
cxTabSheet_Contracts: TcxTabSheet;
Panel_FIO: TPanel;
Label_FIO: TcxLabel;
tv_r_c_plan_id_source: TcxGridBandedColumn;
tv_r_c_plan_source: TcxGridBandedColumn;
cxGroupBox_Contract_Params: TcxGroupBox;
cxLabel22: TcxLabel;
cxDateEdit_PC_D_Start: TcxDateEdit;
cxLabel23: TcxLabel;
cxDateEdit_PC_D_End: TcxDateEdit;
cxLabel24: TcxLabel;
cxPopupEdit_PC_Org: TcxPopupEdit;
cxLabel25: TcxLabel;
cxLabel26: TcxLabel;
cxPopupEdit_PC_SF: TcxPopupEdit;
cxLabel27: TcxLabel;
cxButtonEdit_PC_Contract: TcxButtonEdit;
cxLabel28: TcxLabel;
cxPopupEdit_PC_Kind_Order: TcxPopupEdit;
cxLabel30: TcxLabel;
cxButtonEdit_PC_Create_Direction: TcxButtonEdit;
cxButtonEdit_PC_Direction: TcxButtonEdit;
cxLabel29: TcxLabel;
cxPopupEdit_PC_Kind_Direction: TcxPopupEdit;
Fill_Contract_Params: TAction;
cxTabSheet13: TcxTabSheet;
Panel_New_Direction: TPanel;
cxLabel31: TcxLabel;
cxPopupEdit_New_Direction: TcxPopupEdit;
Clear_Contract: TAction;
cxTabSheet14: TcxTabSheet;
cxGrid_Kind_Direction: TcxGrid;
tv_kind_direction: TcxGridBandedTableView;
tv_kind_direction_name: TcxGridBandedColumn;
tv_kind_direction_id: TcxGridBandedColumn;
cxGridLevel10: TcxGridLevel;
cxButton_PC_Apply: TcxButton;
cxButton_PC_Refuse: TcxButton;
cxButton_PC_Autorepresentative: TcxButton;
PC_Apply: TAction;
PC_Refuse: TAction;
PC_Autorepresentative: TAction;
Fill_tv_kind_direction: TAction;
Action_Insert_New_Direction: TAction;
Action_Add_Contract: TAction;
Action_Delete_Contract: TAction;
Action_End_Education: TAction;
cxTabSheet15: TcxTabSheet;
cxGrid_Kba_End: TcxGrid;
tv_kba_end: TcxGridBandedTableView;
tv_kba_end_name: TcxGridBandedColumn;
tv_kba_end_id: TcxGridBandedColumn;
cxGridLevel11: TcxGridLevel;
Fill_tv_kba_end: TAction;
cxTabSheet16: TcxTabSheet;
Panel_End_Education: TPanel;
cxLabel32: TcxLabel;
cxLabel33: TcxLabel;
cxPopupEdit_KBA_End: TcxPopupEdit;
cxButtonEdit_End_Education: TcxButtonEdit;
cxLabel34: TcxLabel;
cxDateEdit_End_Education: TcxDateEdit;
tv_listeners_d_end_plan: TcxGridBandedColumn;
cxCurrencyEdit_PC_Money: TcxCurrencyEdit;
cxCurrencyEdit_New_Listener_Contract_Money: TcxCurrencyEdit;
tv_listeners_hours_plan: TcxGridBandedColumn;
tv_r_c_plan_money: TcxGridBandedColumn;
tv_listeners_certificate: TcxGridBandedColumn;
cxGroupBox_PC_Representative: TcxGroupBox;
cxLabel35: TcxLabel;
cxTextEdit_PC_Basis: TcxTextEdit;
cxLabel36: TcxLabel;
cxLabel37: TcxLabel;
cxLabel38: TcxLabel;
cxTextEdit_PC_FIO: TcxTextEdit;
cxTextEdit_PC_FIO_R: TcxTextEdit;
cxPopupEdit_PC_Post: TcxPopupEdit;
cxTabSheet17: TcxTabSheet;
cxGrid_Posts: TcxGrid;
tv_posts: TcxGridBandedTableView;
tv_posts_name: TcxGridBandedColumn;
tv_posts_id: TcxGridBandedColumn;
cxGridLevel12: TcxGridLevel;
Fill_tv_posts: TAction;
cxGroupBox_New_Listener_Representative: TcxGroupBox;
cxLabel39: TcxLabel;
cxTextEdit_New_Listener_Basis: TcxTextEdit;
cxLabel40: TcxLabel;
cxLabel41: TcxLabel;
cxLabel42: TcxLabel;
cxTextEdit_New_Listener_FIO: TcxTextEdit;
cxTextEdit_New_Listener_FIO_R: TcxTextEdit;
cxPopupEdit_New_Listener_Post: TcxPopupEdit;
tv_listeners_last_date: TcxGridBandedColumn;
cxGroupBox_Plan: TcxGroupBox;
cxSpinEdit_Plan_Filters_Year: TcxSpinEdit;
cxLabel43: TcxLabel;
cxLabel44: TcxLabel;
cxLabel45: TcxLabel;
cxLabel46: TcxLabel;
cxTextEdit_Plan_Filters_Note: TcxTextEdit;
cxTextEdit_Plan_Filters_Summary: TcxTextEdit;
cxButton_Plan_Filters_Apply: TcxButton;
cxButton_Plan_Filters_Refuse: TcxButton;
cxPopupEdit_Plan_Filters_Plan: TcxPopupEdit;
cxTabSheet11: TcxTabSheet;
cxGrid_Plan: TcxGrid;
tv_plan: TcxGridBandedTableView;
cxGridLevel13: TcxGridLevel;
tv_plan_note: TcxGridBandedColumn;
tv_plan_summary: TcxGridBandedColumn;
tv_plan_status_text: TcxGridBandedColumn;
tv_plan_hisdate: TcxGridBandedColumn;
tv_plan_d_creation: TcxGridBandedColumn;
tv_plan_d_modification: TcxGridBandedColumn;
tv_plan_id_paragraph: TcxGridBandedColumn;
tv_plan_id_order: TcxGridBandedColumn;
tv_plan_idk_order: TcxGridBandedColumn;
tv_plan_status_order: TcxGridBandedColumn;
tv_plan_id_erp_user: TcxGridBandedColumn;
Fill_tv_plan: TAction;
Plan_Apply: TAction;
Plan_Refuse: TAction;
Panel_Curator: TPanel;
cxSplitter1: TcxSplitter;
cxGrid_Curator: TcxGrid;
TTree_Curator: TcxGridBandedTableView;
Tree_Curator_Start: TcxGridBandedColumn;
Tree_Curator_End: TcxGridBandedColumn;
Tree_Curator_ID_EG: TcxGridBandedColumn;
Tree_Curator_ID_E: TcxGridBandedColumn;
cxGrid_Curator_Level1: TcxGridLevel;
Tree_Curator_FIO: TcxGridBandedColumn;
Action_Insert_Curator: TAction;
Action_New_Curator: TAction;
TabSheet_New_Curator: TcxTabSheet;
Panel_New_Curator: TPanel;
cxLabel47: TcxLabel;
PopupEdit_New_Curator_FIO: TcxPopupEdit;
cxLabel48: TcxLabel;
DateEdit_New_Curator: TcxDateEdit;
tv_listeners_Main_Contract: TcxGridBandedColumn;
tv_listeners_ID_Contract_Main: TcxGridBandedColumn;
tv_listeners_Org_Contract_Main: TcxGridBandedColumn;
Action_Main_Contract: TAction;
TabSheet_Set_Main_Contract: TcxTabSheet;
Panel_Set_Main_Contract: TPanel;
cxLabel49: TcxLabel;
PopupEdit_Set_Main_Contract: TcxPopupEdit;
cxLabel50: TcxLabel;
DateEdit_Set_Main_Contract_Find: TcxDateEdit;
Action_Go_Set_Main_Contract: TAction;
cxGrid_Main_Contracts: TcxGrid;
TTree_Main_Contracts: TcxGridBandedTableView;
Tree_Main_Contracts_Contract: TcxGridBandedColumn;
cxGrid_Main_Contracts_Level14: TcxGridLevel;
Tree_Main_Contracts_Org_Name: TcxGridBandedColumn;
Tree_Main_Contracts_ID_Contract: TcxGridBandedColumn;
Tree_Main_Contracts_Number: TcxGridBandedColumn;
Action_Import: TAction;
TabSheet_Import: TcxTabSheet;
Panel_Import: TPanel;
cxLabel51: TcxLabel;
PopupEdit_Import_Plan: TcxPopupEdit;
cxLabel52: TcxLabel;
DateEdit_Import_Start: TcxDateEdit;
Import_File: TOpenDialog;
cxLabel53: TcxLabel;
cxLabel54: TcxLabel;
cxLabel55: TcxLabel;
ButtonEdit_Import_Plan: TcxButtonEdit;
PopupEdit_Import_Spec: TcxPopupEdit;
ButtonEdit_Import_Spec: TcxButtonEdit;
PopupEdit_Import_Spec_Div: TcxPopupEdit;
ButtonEdit_Import_Spec_Div: TcxButtonEdit;
PopupEdit_Import_UMK: TcxPopupEdit;
ButtonEdit_Import_UMK: TcxButtonEdit;
Action_Go_Import: TAction;
cxGrid_Spec: TcxGrid;
tv_Spec: TcxGridBandedTableView;
tv_Spec_Name: TcxGridBandedColumn;
tv_Spec_Q: TcxGridBandedColumn;
tv_Spec_ID: TcxGridBandedColumn;
tv_Spec_IDK_Level_Spec: TcxGridBandedColumn;
tv_Spec_id_discipline: TcxGridBandedColumn;
tv_Spec_idk_discipline: TcxGridBandedColumn;
cxGrid_Spec_Level1: TcxGridLevel;
TabSheet_New_Spec: TcxTabSheet;
Panel_New_Spec: TPanel;
cxLabel56: TcxLabel;
cxTextEditNew_Spec_Name: TcxTextEdit;
cxTextEditNew_Spec_Quality: TcxTextEdit;
cxLabel57: TcxLabel;
DateEdit_Import_End: TcxDateEdit;
TabSheet_New_Spec_Div: TcxTabSheet;
Panel_New_Spec_Div: TPanel;
cxLabel58: TcxLabel;
cxLabel59: TcxLabel;
cxLabel60: TcxLabel;
cxLabel61: TcxLabel;
DateEditNew_Spec_Div_D_Start: TcxDateEdit;
PopupEditNew_Spec_Div_Institute: TcxPopupEdit;
cxLabel63: TcxLabel;
PopupEditNew_Spec_Div_Div: TcxPopupEdit;
PopupEditNew_Spec_Div_Spec: TcxPopupEdit;
PopupEditNew_Spec_Div_KT: TcxPopupEdit;
cxLabel64: TcxLabel;
PopupEditNew_Spec_Div_SF: TcxPopupEdit;
cxGrid_Org_Division: TcxGrid;
tv_Org_Division: TcxGridBandedTableView;
tv_Org_Division_Abbr: TcxGridBandedColumn;
tv_Org_Division_Name: TcxGridBandedColumn;
tv_Org_Division_ID: TcxGridBandedColumn;
cxGrid_Org_Division_Level1: TcxGridLevel;
cxGrid_Kind_Training: TcxGrid;
tv_Kind_Training: TcxGridBandedTableView;
tv_Kind_Training_Name: TcxGridBandedColumn;
tv_Kind_Training_IDK_TRAINING: TcxGridBandedColumn;
cxGridLevel14: TcxGridLevel;
cxLabel62: TcxLabel;
PopupEdit_Import_EG: TcxPopupEdit;
ButtonEdit_Import_EG: TcxButtonEdit;
TabSheet_New_UMK: TcxTabSheet;
Panel_New_UMK: TPanel;
cxLabel68: TcxLabel;
SpinEdit_New_UMK_Hours: TcxSpinEdit;
Action_After_Show_New_Anketa: TAction;
Action_New_SE: TAction;
cxLabel65: TcxLabel;
ButtonEdit_Import_Order: TcxButtonEdit;
TabSheet_New_Contract_Main: TcxTabSheet;
Panel_New_Contract_Main: TPanel;
cxLabel66: TcxLabel;
PopupEdit_New_Contract_Main: TcxPopupEdit;
cxLabel67: TcxLabel;
ButtonEdit_New_Contract_Main: TcxButtonEdit;
cxLabel69: TcxLabel;
TextEdit_New_Contract_Main: TcxTextEdit;
cxLabel70: TcxLabel;
DateEdit_New_Contract_Main_Start: TcxDateEdit;
DateEdit_New_Contract_Main_End: TcxDateEdit;
Action_New_Contract_Main: TAction;
Action_Insert_Contract_Main: TAction;
cxER_Money: TcxEditRepositoryCurrencyItem;
cxLabel71: TcxLabel;
CurrencyEdit_Import_Money: TcxCurrencyEdit;
cxLabel72: TcxLabel;
CurrencyEdit_Import_NDS: TcxCurrencyEdit;
cxLabel73: TcxLabel;
DateEdit_Import_Start_Otrjv: TcxDateEdit;
DateEdit_Import_End_Otrjv: TcxDateEdit;
cxLabel74: TcxLabel;
ButtonEdit_Import_Nach: TcxButtonEdit;
ProgressBar_Import: TcxProgressBar;
cxLabel75: TcxLabel;
DateEdit_Import_Reference: TcxDateEdit;
cxTabSheet_Stages: TcxTabSheet;
cxGrid_Nach: TcxGrid;
TTree_Nach: TcxGridBandedTableView;
Tree_Nach_D_Start: TcxGridBandedColumn;
Tree_Nach_D_End: TcxGridBandedColumn;
Tree_Nach_ID_Stage: TcxGridBandedColumn;
Tree_Nach_ID_Account_Contract: TcxGridBandedColumn;
Tree_Nach_Document: TcxGridBandedColumn;
cxGrid_Nach_Level1: TcxGridLevel;
Tree_Nach_Status: TcxGridBandedColumn;
Tree_Nach_Sum: TcxGridBandedColumn;
Tree_Nach_ID_Basis_Salary: TcxGridBandedColumn;
Tree_Nach_ID_SF: TcxGridBandedColumn;
Tree_Nach_IDK_Order: TcxGridBandedColumn;
Tree_Nach_ID_Paragraph: TcxGridBandedColumn;
Tree_Nach_ID_Order: TcxGridBandedColumn;
Tree_Nach_ID_ERP: TcxGridBandedColumn;
Tree_Nach_User: TcxGridBandedColumn;
Action_Create_Nach: TAction;
TabSheet_New_Nach: TcxTabSheet;
Tree_Nach_Kind_Order: TcxGridBandedColumn;
tv_listeners_NDS: TcxGridBandedColumn;
Panel_New_Nach: TPanel;
cxLabel76: TcxLabel;
ButtonEdit_New_Nach: TcxButtonEdit;
cxLabel77: TcxLabel;
DateEdit_New_Nach: TcxDateEdit;
Action_Go_New_Nach: TAction;
Action_Go_Nach_All: TAction;
Action_Create_Nach_All: TAction;
TabSheet_Create_Nach_All: TcxTabSheet;
Panel_Create_Nach_All: TPanel;
cxLabel78: TcxLabel;
ButtonEdit_Create_Nach_All: TcxButtonEdit;
cxLabel79: TcxLabel;
DateEdit_Create_Nach_All: TcxDateEdit;
CheckBox_PC_NDS: TcxCheckBox;
cxLabel80: TcxLabel;
cxDateEdit_PC_D_Start_Otrjv: TcxDateEdit;
cxLabel81: TcxLabel;
cxDateEdit_PC_D_End_Otrjv: TcxDateEdit;
tv_listeners_ID_ERP_End: TcxGridBandedColumn;
tv_listeners_ID_Status_End: TcxGridBandedColumn;
tv_listeners_ID_Paragraph_End: TcxGridBandedColumn;
Action_Delete_Order_End: TAction;
cxLabel82: TcxLabel;
PopupEdit_Import_Curator: TcxPopupEdit;
TabSheet_Stat: TcxTabSheet;
cxGroupBox1: TcxGroupBox;
cxLabel83: TcxLabel;
DateEdit_Stat_Begin: TcxDateEdit;
cxLabel84: TcxLabel;
DateEdit_Stat_End: TcxDateEdit;
cxButton1: TcxButton;
Action_Read_Stat: TAction;
cxGrid_Stat: TcxGrid;
TTree_Stat: TcxGridBandedTableView;
Tree_Stat_FIO: TcxGridBandedColumn;
Tree_Stat_EG: TcxGridBandedColumn;
Tree_Stat_D_Start: TcxGridBandedColumn;
Tree_Stat_D_End: TcxGridBandedColumn;
Tree_Stat_Order_Start: TcxGridBandedColumn;
Tree_Stat_Order_End: TcxGridBandedColumn;
Tree_Stat_Contract: TcxGridBandedColumn;
Tree_Stat_Org: TcxGridBandedColumn;
Tree_Stat_Money: TcxGridBandedColumn;
Tree_Stat_Cert: TcxGridBandedColumn;
Tree_Stat_Hours_Fact: TcxGridBandedColumn;
Tree_Stat_Hours_Plan: TcxGridBandedColumn;
Tree_Stat_Last_Date: TcxGridBandedColumn;
Tree_Stat_ID_Student: TcxGridBandedColumn;
Tree_Stat_ID_E: TcxGridBandedColumn;
Tree_Stat_ID_EG: TcxGridBandedColumn;
Tree_Stat_ID_C: TcxGridBandedColumn;
Tree_Stat_Contract_Main: TcxGridBandedColumn;
Tree_Stat_Org_Main: TcxGridBandedColumn;
Tree_Stat_Money_NDS: TcxGridBandedColumn;
cxGrid_Stat_Level15: TcxGridLevel;
Tree_Stat_Spec_Name: TcxGridBandedColumn;
cxLabel85: TcxLabel;
SpinEdit_New_UMK_Hours_SR: TcxSpinEdit;
Action_Make_Certificate: TAction;
tv_listeners_Reg_Number: TcxGridBandedColumn;
TabSheet_New_Cert: TcxTabSheet;
Panel_New_Cert: TPanel;
cxLabel86: TcxLabel;
ButtonEdit_New_Cert: TcxButtonEdit;
cxLabel87: TcxLabel;
SpinEdit_New_Cert_Reg: TcxSpinEdit;
cxER_Spin_Integer: TcxEditRepositorySpinItem;
cxLabel88: TcxLabel;
SpinEdit_New_Cert_Number: TcxSpinEdit;
cxLabel89: TcxLabel;
PopupEdit_New_Cert_Kind_Doc: TcxPopupEdit;
Action_Go_New_Cert: TAction;
cxGrid_Kind_Doc_Cert: TcxGrid;
TTree_Kind_Doc_Cert: TcxGridBandedTableView;
Tree_Kind_Doc_Cert_Name: TcxGridBandedColumn;
Tree_Kind_Doc_Cert_ID: TcxGridBandedColumn;
cxGrid_Kind_Doc_Cert_Level15: TcxGridLevel;
tv_listeners_Kind_Cert: TcxGridBandedColumn;
tv_listeners_ID_Kind_Cert: TcxGridBandedColumn;
cxLabel90: TcxLabel;
SpinEdit_New_Cert_Hours: TcxSpinEdit;
RadioGroup_Import_Mode: TcxRadioGroup;
Tree_Stat_Inst: TcxGridBandedColumn;
Action_View_Certificate: TAction;
tv_listeners_ID_Certificate: TcxGridBandedColumn;
tv_listeners_ID_Doc_Cert: TcxGridBandedColumn;
tv_listeners_Cert_Date: TcxGridBandedColumn;
tv_listeners_ID_Reg: TcxGridBandedColumn;
Action_Delete_Certificate: TAction;
cxTabSheet_MC: TcxTabSheet;
cxGroupBox2: TcxGroupBox;
cxLabel91: TcxLabel;
DateEdit_Filter_Start: TcxDateEdit;
cxLabel92: TcxLabel;
DateEdit_Filter_End: TcxDateEdit;
cxLabel93: TcxLabel;
PopupEdit_Filter_Org: TcxPopupEdit;
cxGrid_MC: TcxGrid;
TTree_MC: TcxGridBandedTableView;
Tree_MC_Org: TcxGridBandedColumn;
Tree_MC_ID_Contract: TcxGridBandedColumn;
cxGrid_MC_Level15: TcxGridLevel;
Tree_MC_ID_CA: TcxGridBandedColumn;
Tree_MC_Start: TcxGridBandedColumn;
Tree_MC_End: TcxGridBandedColumn;
Tree_MC_Number: TcxGridBandedColumn;
Tree_MC_Old_Number: TcxGridBandedColumn;
Tree_MC_Kind: TcxGridBandedColumn;
Tree_MC_IDK_Order: TcxGridBandedColumn;
Tree_MC_ID_MT: TcxGridBandedColumn;
Tree_MC_ID_MO: TcxGridBandedColumn;
Tree_MC_ID_Paragraph: TcxGridBandedColumn;
Tree_MC_ID_Order: TcxGridBandedColumn;
Tree_MC_ID_ERP: TcxGridBandedColumn;
Tree_MC_ID_Status: TcxGridBandedColumn;
Tree_MC_User: TcxGridBandedColumn;
Tree_MC_Hisdate: TcxGridBandedColumn;
Tree_MC_Count: TcxGridBandedColumn;
Tree_MC_Order: TcxGridBandedColumn;
Action_New_MC: TAction;
Action_Insert_MC: TAction;
tv_com_spec_sam: TcxGridBandedColumn;
Action_Delete_Nach: TAction;
TabSheet_New_Money: TcxTabSheet;
Panel_New_Money: TPanel;
CurrencyEdit_New_Money: TcxCurrencyEdit;
cxLabel94: TcxLabel;
Action_New_Money: TAction;
Action_Go_New_Money: TAction;
procedure Action_Insert_tv_r_c_planExecute(Sender: TObject);
procedure Fill_tv_spec_div_popupExecute(Sender: TObject);
procedure tv_r_c_plan_name_specPropertiesInitPopup(Sender: TObject);
procedure cxPopupEdit_New_R_C_Plan_Spec_DivPropertiesInitPopup
(Sender: TObject);
procedure Action_Insert_tv_r_c_groupExecute(Sender: TObject);
procedure Fill_tv_com_specExecute(Sender: TObject);
procedure Fill_tv_ed_groupExecute(Sender: TObject);
procedure cxPopupEdit_New_R_C_Group_Met_ComplexPropertiesInitPopup
(Sender: TObject);
procedure Fill_tv_r_c_planExecute(Sender: TObject);
procedure cxPopupEdit_New_R_C_Group_Ed_GroupPropertiesInitPopup
(Sender: TObject);
procedure tv_r_c_groups_namePropertiesInitPopup(Sender: TObject);
procedure Fill_tv_r_c_groupsExecute(Sender: TObject);
procedure Fill_tv_listenersExecute(Sender: TObject);
procedure PageControl_MainPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
procedure Action_Insert_tv_listenersExecute(Sender: TObject);
procedure cxPopupEdit_New_Listener_Ed_GroupPropertiesEditValueChanged
(Sender: TObject);
procedure cxPopupEdit_New_Listener_Ed_GroupPropertiesInitPopup
(Sender: TObject);
procedure Fill_tv_kba_startExecute(Sender: TObject);
procedure cxPopupEdit_New_Listener_Kind_Basis_ActionPropertiesInitPopup
(Sender: TObject);
procedure Fill_tv_kind_orderExecute(Sender: TObject);
procedure cxPopupEdit_New_Listener_Kind_OrderPropertiesInitPopup
(Sender: TObject);
procedure Fill_tv_contractsExecute(Sender: TObject);
procedure cxPopupEdit_New_Listener_OrderPropertiesInitPopup
(Sender: TObject);
procedure Fill_tv_source_finansingExecute(Sender: TObject);
procedure
cxPopupEdit_New_Listener_Contract_Source_FinansingPropertiesInitPopup
(Sender: TObject);
procedure cxDateEdit_New_Listener_D_StartPropertiesEditValueChanged
(Sender: TObject);
procedure cxDateEdit_New_Listener_D_EndPropertiesEditValueChanged
(Sender: TObject);
procedure cxDateEdit_New_Listener_Contract_D_StartPropertiesEditValueChanged
(Sender: TObject);
procedure cxDateEdit_New_Listener_Contract_D_EndPropertiesEditValueChanged
(Sender: TObject);
procedure tv_listeners_ed_groupPropertiesInitPopup(Sender: TObject);
procedure tv_listeners_kind_basis_actionPropertiesInitPopup
(Sender: TObject);
procedure Delete_tv_listenersExecute(Sender: TObject);
procedure Fill_tv_ordersExecute(Sender: TObject);
procedure tv_listenersEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure tv_r_c_groupsEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure tv_listenersSelectionChanged(Sender: TcxCustomGridTableView);
procedure tv_r_c_planSelectionChanged(Sender: TcxCustomGridTableView);
procedure tv_r_c_groupsSelectionChanged(Sender: TcxCustomGridTableView);
procedure Fill_AnketaExecute(Sender: TObject);
procedure cxPageControl_StudentPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
procedure Fill_Contract_ParamsExecute(Sender: TObject);
procedure Clear_ContractExecute(Sender: TObject);
procedure PC_ApplyExecute(Sender: TObject);
procedure PC_RefuseExecute(Sender: TObject);
procedure PC_AutorepresentativeExecute(Sender: TObject);
procedure Fill_tv_kind_directionExecute(Sender: TObject);
procedure cxPopupEdit_PC_Kind_DirectionPropertiesInitPopup(Sender: TObject);
procedure Action_Insert_New_DirectionExecute(Sender: TObject);
procedure cxButtonEdit_PC_Create_DirectionClick(Sender: TObject);
procedure tv_listeners_d_startPropertiesEditValueChanged(Sender: TObject);
procedure Action_Delete_ContractExecute(Sender: TObject);
procedure Action_Add_ContractExecute(Sender: TObject);
procedure cxPopupEdit_New_DirectionPropertiesInitPopup(Sender: TObject);
procedure cxPopupEdit_New_Listener_OrderPropertiesEditValueChanged
(Sender: TObject);
procedure Fill_tv_kba_endExecute(Sender: TObject);
procedure cxPopupEdit_KBA_EndPropertiesInitPopup(Sender: TObject);
procedure Action_End_EducationExecute(Sender: TObject);
procedure tv_r_c_planKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_r_c_planMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tv_r_c_groupsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_r_c_groupsMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tv_listenersKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tv_listenersMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Fill_tv_postsExecute(Sender: TObject);
procedure cxPopupEdit_PC_PostPropertiesInitPopup(Sender: TObject);
procedure tv_r_c_planEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
procedure Fill_tv_planExecute(Sender: TObject);
procedure cxPopupEdit_Plan_Filters_PlanPropertiesInitPopup(Sender: TObject);
procedure Plan_ApplyExecute(Sender: TObject);
procedure Plan_RefuseExecute(Sender: TObject);
procedure Action_New_CuratorExecute(Sender: TObject);
procedure Action_Insert_CuratorExecute(Sender: TObject);
procedure Action_Main_ContractExecute(Sender: TObject);
procedure DateEdit_Set_Main_Contract_FindPropertiesEditValueChanged
(Sender: TObject);
procedure Action_Go_Set_Main_ContractExecute(Sender: TObject);
procedure Action_ImportExecute(Sender: TObject);
procedure PopupEdit_Import_SpecPropertiesEditValueChanged(Sender: TObject);
procedure ButtonEdit_Import_SpecClick(Sender: TObject);
procedure ButtonEdit_Import_Spec_DivClick(Sender: TObject);
procedure ButtonEdit_Import_UMKClick(Sender: TObject);
procedure ButtonEdit_Import_PlanClick(Sender: TObject);
procedure ButtonEdit_Import_EGClick(Sender: TObject);
procedure Action_After_Show_New_AnketaExecute(Sender: TObject);
procedure Action_New_SEExecute(Sender: TObject);
procedure Action_New_Contract_MainExecute(Sender: TObject);
procedure Action_Insert_Contract_MainExecute(Sender: TObject);
procedure Action_Create_NachExecute(Sender: TObject);
procedure Action_Go_New_NachExecute(Sender: TObject);
procedure Action_Go_Nach_AllExecute(Sender: TObject);
procedure Action_Create_Nach_AllExecute(Sender: TObject);
procedure Action_Delete_Order_EndExecute(Sender: TObject);
procedure Action_Read_StatExecute(Sender: TObject);
procedure Action_Make_CertificateExecute(Sender: TObject);
procedure Action_Go_New_CertExecute(Sender: TObject);
procedure ButtonEdit_New_CertPropertiesEditValueChanged(Sender: TObject);
procedure Action_View_CertificateExecute(Sender: TObject);
procedure Action_Delete_CertificateExecute(Sender: TObject);
procedure Filter_MC_Changed(Sender: TObject);
procedure Action_New_MCExecute(Sender: TObject);
procedure Action_Delete_NachExecute(Sender: TObject);
procedure Action_New_MoneyExecute(Sender: TObject);
procedure Action_Go_New_MoneyExecute(Sender: TObject);
procedure ButtonEdit_Import_OrderPropertiesEditValueChanged(
Sender: TObject);
private
{ Private declarations }
ea: Excel2000.TExcelApplication;
ew: _Workbook;
wsh: _Worksheet;
{ Доступность редактирования учебных групп, сроков проведения и плана ПК }
REdit_Groups: Boolean;
{ Доступность просмотра мероприятий }
RView_Event: Boolean;
{ Доступность всех действий с мероприятиями }
REdit_Event: Boolean;
{ Объект для работы со списками }
FSqlData_TableView: TSqlData_cxGridTableView;
{ Путь реестра (для загрузки/сохранения параметров) }
Curr_Reg_Path: String;
// Название программы и код подразделения при импорте
Import_Name_Spec, id_d_import, Import_Hours, Import_ID_EG, Import_EG_Name
,Import_FIO_Curator, Import_Hours_SR, id_d_kaf, idk_training: String;
{ Форма поиска человека }
Current_Form_SE: TForm_SE;
{ Форма поиска организации }
Current_Form_Find_Org: TForm_Find_Org;
{ Форма анкета }
Current_Form_Anketa, Form_Anketa_For_New: TFUnivQuestionare;
// Текущие значения из файла импорта
curr_sex, curr_surname, curr_name, curr_patronymic, curr_birthday
, curr_email, curr_phone: string;
{ Контейнеры оберток }
cW_New_R_C_Plan: TContainerWrappers;
cW_New_R_C_Group: TContainerWrappers;
cW_New_Listener: TContainerWrappers;
cW_Contract_Params: TContainerWrappers;
cW_New_Direction: TContainerWrappers;
cW_End_Education: TContainerWrappers;
cW_Plan_Filters: TContainerWrappers;
cW_New_Curator: TContainerWrappers;
cW_Set_Main_Contract, cw_Filter_Contracts_Main: TContainerWrappers;
cW_Import, cW_New_Spec, cW_New_Spec_Div, cw_New_UMK
, cw_New_Contract_Main, Cont_New_Nach, Cont_New_Nach_All
, Cont_Stat, Cont_Make_Cert, New_MC, cw_New_Money: TContainerWrappers;
{ Обработчики событий изменения в контейнерах оберток }
procedure DoChanged_cW_New_R_C_Plan(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_R_C_Group(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_Listener(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_Contract_Params(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_New_Direction(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_End_Education(AWrapper: TCustomEditWrapper);
procedure DoChanged_cW_Plan_Filters(AWrapper: TCustomEditWrapper);
{ Смена записи в tv_r_c_plan }
procedure ChoiceGridRecord(Sender: TSqlData_cxGridTableView;
AGridRecord: TcxGridDataRow);
{ Смена записи в tv_listeners }
procedure OnChoiceGridRecord_tv_listeners(Sender: TSqlData_cxGridTableView;
AGridRecord: TcxGridDataRow);
{ Действие перед изменением данных в tv_listeners }
procedure Before_Update_Exchange_tv_listeners
(Sender: TSqlData_cxGridTableView; UpdateValue: Variant;
AItem: TcxCustomGridTableItem; ARecordIndex: Integer;
var ExchangeParameters: OleVariant; var Allow: Boolean);
{ Установка доступности добавления }
procedure Allow_Insert(TV: TcxCustomGridTableView; Roles: array of Boolean);
{ Установка доступности редактирования таблицы (с документом) }
function Allow_Editing(TV: TcxCustomGridTableView;
Status_Column: TcxGridColumn; ID_ERP_Column: TcxGridColumn;
Roles: array of Boolean): Boolean; overload;
{ Установка доступности редактирования таблицы (без документа) }
function Allow_Editing(TV: TcxCustomGridTableView;
Roles: array of Boolean): Boolean; overload;
{ Установка доступности удаления из таблицы (с документом) }
procedure Allow_Delete(TV: TcxCustomGridTableView;
Status_Column: TcxGridColumn; ID_ERP_Column: TcxGridColumn;
Roles: array of Boolean); overload;
{ Установка доступности удаления из таблицы (без документа) }
procedure Allow_Delete(TV: TcxCustomGridTableView;
Roles: array of Boolean); overload;
{ Обработчик события после чтения в tv_listeners }
procedure After_Read_tv_listeners(Sender: TSqlData_cxGridTableView);
{ Включить/выключить параметры договора }
procedure ContractParamsEnabled(GB: TcxGroupBox; Enabled: Boolean);
{ Включить/выключить элементы для добавления студента/договора }
procedure StudentElementsEnabled(Enabled: Boolean);
{ Сохранение/восстановление параметров списков }
procedure Save_Restore_Params(RReg_Path: String = Reg_Path;
PIs_Load: Boolean = True);
procedure DoChanged_cW_Spec_Div(AWrapper: TCustomEditWrapper);
// Добавить-таки человека!
procedure OkNewEmp;
// Выбрать старого!}
procedure OkOldEmp;
// После удаления
procedure After_Delete(Sender: TSqlData_cxGridTableView);
// Параметры удаления
procedure Delete_Main_Contract(Sender: TSqlData_cxGridTableView; ARecordIndex: Integer;
var ExchangeParameters: OleVariant);
public
{ Public declarations }
// Настройка списков
procedure Init(AReg_Path: String = Reg_Path; AForm_SE: TForm_SE = nil;
AForm_Find_Org: TForm_Find_Org = nil;
AForm_Anketa: TFUnivQuestionare = nil;
AForm_Anketa_For_New: TFUnivQuestionare = nil);
// Обновить роли
procedure Refresh_Roles;
// Проверка доступности ко всей форме без создания ее самой!!!
class function IsRoleAccessible: Boolean;
end;
var
Form_Event: TForm_Event;
implementation
{$R *.dfm}
uses SysServices, Get_PK_PPS_Data, standart_new, get_single_data, LP_u_CX_tools;
{ Сохранение/восстановление параметров списков }
procedure TForm_Event.Save_Restore_Params(RReg_Path: String = Reg_Path;
PIs_Load: Boolean = True);
begin
cxPropertiesStore1.StorageName := RReg_Path + '\Общие параметры';
if PIs_Load then
begin
cxPropertiesStore1.RestoreFrom;
end
else
if VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value) <> ''
then cxPopupEdit_Plan_Filters_Plan.Tag := cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value;
cxPropertiesStore1.StoreTo(True);
{ Сохранение или загрузки параметров списков (в зависимости от параметра PIs_Load) }
Restore_cxGridTableView(tv_r_c_plan, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_r_c_plan).Table_Name);
Restore_cxGridTableView(tv_r_c_groups, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_r_c_groups).Table_Name);
Restore_cxGridTableView(tv_listeners, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_listeners).Table_Name);
Restore_cxGridTableView(tv_orders, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_orders).Table_Name);
Restore_cxGridTableView(tv_spec_div_popup, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_spec_div_popup).Table_Name);
Restore_cxGridTableView(tv_ed_group, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_ed_group).Table_Name);
Restore_cxGridTableView(tv_com_spec, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_com_spec).Table_Name);
Restore_cxGridTableView(tv_kba_start, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_kba_start).Table_Name);
Restore_cxGridTableView(tv_kind_order, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_kind_order).Table_Name);
Restore_cxGridTableView(tv_contracts, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_contracts).Table_Name);
Restore_cxGridTableView(tv_Source_Financing, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_Source_Financing)
.Table_Name);
Restore_cxGridTableView(tv_kind_direction, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_kind_direction).Table_Name);
Restore_cxGridTableView(tv_kba_end, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_kba_end).Table_Name);
Restore_cxGridTableView(tv_posts, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_posts).Table_Name);
Restore_cxGridTableView(tv_plan, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(tv_plan).Table_Name);
Restore_cxGridTableView(TTree_Curator, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_Curator).Table_Name);
Restore_cxGridTableView(TTree_Main_Contracts, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_Main_Contracts).Table_Name);
Restore_cxGridTableView(TTree_Nach, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_Nach).Table_Name);
Restore_cxGridTableView(TTree_Stat, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_Stat).Table_Name);
Restore_cxGridTableView(TTree_Kind_Doc_Cert, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_Kind_Doc_Cert).Table_Name);
Restore_cxGridTableView(TTree_MC, PIs_Load,
RReg_Path + Grid_Path + Get_SqlData_cxGrid(TTree_MC).Table_Name);
end;
{ Проверка доступности ко всей форме без создания ее самой! }
class function TForm_Event.IsRoleAccessible: Boolean;
begin
Result := vnSessionAgent.IsRoleSomehowAccessible('', '',
Action_Q_Edit_Groups) or vnSessionAgent.IsRoleSomehowAccessible('', '',
Action_Q_Edit_Event) or vnSessionAgent.IsRoleSomehowAccessible('', '',
Action_Q_View_Event) or vnSessionAgent.IsDBA;
end;
{ Проверка прав }
procedure TForm_Event.Refresh_Roles;
var
DBA: Boolean;
begin
{ Проверка наличия ролей }
DBA := vnSessionAgent.IsDBA;
REdit_Groups := DBA or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Groups);
REdit_Event := DBA or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Event);
Action_Import.Enabled := DBA or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Event);
{ Проверка ролей для анкеты }
Current_Form_Anketa.RefreshRoles(False);
Action_New_SE.Enabled := DBA
or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Event);
Get_SqlData_cxGrid(Current_Form_SE.cxGrid_FIO).ActionInsert.Enabled := Action_New_SE.Enabled;
{ Проверка доступности параметров договора }
DoChanged_cW_Contract_Params(cW_Contract_Params.wrappers
[cxButtonEdit_PC_Contract]);
tv_r_c_planSelectionChanged(tv_r_c_plan);
// Доступность добавления рамочного договора
Action_New_MC.Enabled := vnSessionAgent.IsDBA
or vnSessionAgent.IsRoleSomehowAccessible('', '', Action_Q_Edit_Event);
end;
{ Установка доступности добавления }
procedure TForm_Event.Allow_Insert(TV: TcxCustomGridTableView;
Roles: array of Boolean);
var
i: Integer;
Allow: Boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0) then
begin // 1
if not FSqlData_TableView.IsFirstRead then
begin // 2
Allow := False;
for i := 0 to Length(Roles) - 1 do
Allow := Allow or Roles[i];
FSqlData_TableView.ActionInsert.Enabled := Allow;
end // 2
else
FSqlData_TableView.ActionInsert.Enabled := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (с документом) }
function TForm_Event.Allow_Editing(TV: TcxCustomGridTableView;
Status_Column: TcxGridColumn; ID_ERP_Column: TcxGridColumn;
Roles: array of Boolean): Boolean;
var
status, id_erp: string;
i: Integer;
Allow: Boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0) then
begin // 1
if (TV.DataController.FocusedRecordIndex <> -1) then
begin // 2
status := VarToStr(TV.DataController.Values
[TV.DataController.FocusedRecordIndex, Status_Column.Index]);
id_erp := VarToStr(TV.DataController.Values
[TV.DataController.FocusedRecordIndex, ID_ERP_Column.Index]);
Allow := False;
for i := 0 to Length(Roles) - 1 do
Allow := Allow or Roles[i];
Result := (status = '2') and (id_erp = vnSessionAgent.ID_ERP_User)
and Allow;
end // 2
else
Result := False;
end; // 1
end;
{ Установка доступности редактирования таблицы (без документа) }
function TForm_Event.Allow_Editing(TV: TcxCustomGridTableView;
Roles: array of Boolean): Boolean;
var
i: Integer;
Allow: Boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0) then
begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1 do
Allow := Allow or Roles[i];
Result := (TV.DataController.FocusedRecordIndex <> -1) and Allow;
end // 1
else
Result := False;
end;
{ Установка доступности удаления из таблицы (с документом) }
procedure TForm_Event.Allow_Delete(TV: TcxCustomGridTableView;
Status_Column: TcxGridColumn; ID_ERP_Column: TcxGridColumn;
Roles: array of Boolean);
var
i: Integer;
Allow: Boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0) then
begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1 do
Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled := Is_Value(Status_Column, '2',
False) and Is_Value(ID_ERP_Column, vnSessionAgent.ID_ERP_User, False) and
(TV.Controller.SelectedRecordCount > 0) and Allow;
end; // 1
end;
{ Установка доступности удаления из таблицы (без документа) }
procedure TForm_Event.Allow_Delete(TV: TcxCustomGridTableView;
Roles: array of Boolean);
var
i: Integer;
Allow: Boolean;
begin
FSqlData_TableView := Get_SqlData_cxGrid(TV);
if (FSqlData_TableView <> nil) and (Length(Roles) > 0) then
begin // 1
Allow := False;
for i := 0 to Length(Roles) - 1 do
Allow := Allow or Roles[i];
FSqlData_TableView.ActionDelete.Enabled :=
(TV.Controller.SelectedRecordCount > 0) and Allow;
end; // 1
end;
{ Включить/выключить параметры договора }
procedure TForm_Event.Clear_ContractExecute(Sender: TObject);
begin
cW_Contract_Params.ClearWrappers;
end;
procedure TForm_Event.ContractParamsEnabled(GB: TcxGroupBox; Enabled: Boolean);
var
i: Integer;
begin
GB.Enabled := Enabled;
for i := 0 to GB.ControlCount - 1 do
begin
if GB.Controls[i] is TcxLabel then (GB.Controls[i] as TcxLabel)
.Enabled := Enabled;
if GB.Controls[i] is TcxDateEdit then (GB.Controls[i] as TcxDateEdit)
.Enabled := Enabled;
if GB.Controls[i] is TcxPopupEdit then (GB.Controls[i] as TcxPopupEdit)
.Enabled := Enabled;
if GB.Controls[i] is TcxSpinEdit then (GB.Controls[i] as TcxSpinEdit)
.Enabled := Enabled;
if GB.Controls[i] is TcxButtonEdit then (GB.Controls[i] as TcxButtonEdit)
.Enabled := Enabled;
if GB.Controls[i] is TcxCurrencyEdit then
(GB.Controls[i] as TcxCurrencyEdit)
.Enabled := Enabled;
if GB.Controls[i] is TcxTextEdit then (GB.Controls[i] as TcxTextEdit)
.Enabled := Enabled;
end;
end;
procedure TForm_Event.StudentElementsEnabled(Enabled: Boolean);
begin
cxLabel5.Enabled := Enabled;
cxLabel6.Enabled := Enabled;
cxLabel8.Enabled := Enabled;
cxLabel9.Enabled := Enabled;
cxLabel11.Enabled := Enabled;
cxLabel12.Enabled := Enabled;
cxPopupEdit_New_Listener_FIO.Enabled := Enabled;
cxPopupEdit_New_Listener_Ed_Group.Enabled := Enabled;
cxDateEdit_New_Listener_D_Start.Enabled := Enabled;
cxDateEdit_New_Listener_D_End.Enabled := Enabled;
cxPopupEdit_New_Listener_Kind_Basis_Action.Enabled := Enabled;
cxButtonEdit_New_Listener_Order_Start.Enabled := Enabled;
end;
procedure TForm_Event.tv_listenersEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
var
status, id_erp: string;
begin
{ Доступность редактирования столбцов: ФИО, Учебная группа, Дата начала,
Основание зачисления }
if (AItem = tv_listeners_fio) or (AItem = tv_listeners_ed_group) or
(AItem = tv_listeners_d_start) or (AItem = tv_listeners_kind_basis_action)
then
begin // 1
status := VarToStr(Sender.DataController.Values
[Sender.DataController.FocusedRecordIndex, tv_listeners_status_order_start.Index]);
id_erp := VarToStr(Sender.DataController.Values
[Sender.DataController.FocusedRecordIndex, tv_listeners_id_erp_user.Index]);
AAllow := (status = '2') and (id_erp = vnSessionAgent.ID_ERP_User)
and REdit_Event;
end // 1
else
{ Доступность сертификата}
if ((AItem = tv_listeners_certificate) or (AItem = tv_listeners_hours)
or (AItem = tv_listeners_Reg_Number) or (AItem = tv_listeners_Kind_Cert)
or (AItem = tv_listeners_Cert_Date))
then AAllow := not VarIsNull(tv_listeners.DataController.Values
[Sender.DataController.FocusedRecordIndex, tv_listeners_certificate.Index])
and REdit_Event
else
{ Доступность редактирования Даты окончания }
if (AItem = tv_listeners_d_end)
then AAllow := not VarIsNull(tv_listeners.DataController.Values
[Sender.DataController.FocusedRecordIndex, tv_listeners_status_text_order_end.Index])
and REdit_Event
else AAllow := False;
end;
procedure TForm_Event.tv_listenersKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
Allow_Insert(tv_listeners, [REdit_Event])
else if Key = VK_DELETE then
Allow_Delete(tv_listeners, tv_listeners_status_order_start,
tv_listeners_id_erp_user, [REdit_Event]);
end;
procedure TForm_Event.tv_listenersMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
begin // 1
Allow_Insert(tv_listeners, [REdit_Event]);
tv_listenersSelectionChanged(tv_listeners);
end; // 1
end;
{ Доступность действий на выделении}
procedure TForm_Event.tv_listenersSelectionChanged
(Sender: TcxCustomGridTableView);
var L: TIntegerList; i: integer;
begin
{ Установим доступность удаления студентов }
Allow_Delete(Sender, tv_listeners_status_order_start,
tv_listeners_id_erp_user, [REdit_Event]);
if (Sender.Controller.SelectedRecordCount > 0) then
begin // 1
{ Установим доступность добавления договора }
Action_Add_Contract.Enabled := VarIsNull
(Sender.DataController.Values
[Sender.DataController.FocusedRecordIndex,
tv_listeners_id_contract.Index]) and REdit_Event;
{ Установим доступность удаления договоров }
Action_Delete_Contract.Enabled := (not Is_Value(tv_listeners_id_contract,
'', True)) and REdit_Event;
// Рамочный договор
Action_Main_Contract.Enabled := Action_Delete_Contract.Enabled;
{ Установим доступность действия окончания обучения }
Action_End_Education.Enabled := Is_Value
(tv_listeners_status_text_order_end, '', False) and REdit_Event;
{ Установим доступность удаления окончания обучения }
Action_Delete_Order_End.Enabled := not Is_Value
(tv_listeners_status_text_order_end, '', True) and REdit_Event;
{ Установим доступность добавления удостоверения}
Action_Make_Certificate.Enabled := Is_Value(tv_listeners_certificate, '', True)
and (not Is_Value(tv_listeners_status_text_order_end, '', False))
and REdit_Event;
Action_View_Certificate.Enabled := not Is_Value(tv_listeners_certificate, '', True);
{ Установим доступность удаления удостоверения}
Action_Delete_Certificate.Enabled := not Is_Value(tv_listeners_certificate, '', True)
and REdit_Event;
{ Установим доступность выставления начислений}
Action_Create_Nach_All.Enabled := REdit_Event
and Action_Delete_Contract.Enabled;
{ Установим доступность изменения стоимости договоров}
Action_New_Money.Enabled := Action_Create_Nach_All.Enabled;
{ Установим доступность удаления начислений}
Action_Delete_Nach.Enabled := REdit_Event
and Action_Delete_Contract.Enabled;
{ Установим доступность удаления приказа об окончании}
if Action_Delete_Order_End.Enabled
then with Sender.DataController do
begin
Get_SqlData_cxGrid(tv_listeners).GetSelectedRecordIndexList(L);
For i := 0 to L.Count - 1 do
Action_Delete_Order_End.Enabled := Action_Delete_Order_End.Enabled
and (VarToStr(Values[L.Items[i], tv_listeners_ID_Status_End.Index]) = '2')
and (vnSessionAgent.IsDBA
or (VarToStr(Values[L.Items[i], tv_listeners_ID_ERP_End.Index]) = vnSessionAgent.ID_ERP_User));
end;
end
else
begin // 2
Action_Add_Contract.Enabled := False;
Action_Delete_Contract.Enabled := False;
Action_End_Education.Enabled := False;
Action_Delete_Order_End.Enabled := False;
Action_Make_Certificate.Enabled := False;
Action_View_Certificate.Enabled := False;
Action_Main_Contract.Enabled := False;
Action_Delete_Certificate.Enabled := False;
end; // 2
end;
procedure TForm_Event.tv_listeners_d_startPropertiesEditValueChanged
(Sender: TObject);
begin
cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start].Value := VarToStr
(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_d_start.Index]);
end;
procedure TForm_Event.tv_listeners_ed_groupPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_r_c_groupsExecute(self);
end;
procedure TForm_Event.tv_listeners_kind_basis_actionPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_kba_startExecute(self);
end;
procedure TForm_Event.tv_r_c_groupsEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
AAllow := Allow_Editing(Sender, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_groupsKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
Allow_Insert(tv_r_c_groups, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_groupsMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
Allow_Insert(tv_r_c_groups, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_groupsSelectionChanged
(Sender: TcxCustomGridTableView);
begin
if Sender = TTree_MC
then with TTree_MC.Controller do
Get_SqlData_cxGrid(TTree_MC).ActionDelete.Enabled :=
(SelectedRowCount > 0)
and Get_SqlData_cxGrid(TTree_MC).ActionInsert.Enabled
And Is_Value(Tree_MC_ID_Status, '2', False)
and (vnSessionAgent.IsDBA or vnSessionAgent.IsRoleAccessible('', '', '902'
, [VarToStr(SelectedRows[0].Values[Tree_MC_ID_MT.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_MC_ID_MO.Index])]
, [VarToStr(SelectedRows[0].Values[Tree_MC_ID_ERP.Index])]))
else Allow_Delete(Sender, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_groups_namePropertiesInitPopup(Sender: TObject);
begin
Fill_tv_ed_groupExecute(self);
end;
procedure TForm_Event.tv_r_c_planEditing(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
begin
AAllow := Allow_Editing(Sender, tv_r_c_plan_status_order,
tv_r_c_plan_id_erp_user, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_planKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
Allow_Insert(tv_r_c_plan, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_planMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
Allow_Insert(tv_r_c_plan, [REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_planSelectionChanged
(Sender: TcxCustomGridTableView);
begin
Allow_Delete(Sender, tv_r_c_plan_status_order, tv_r_c_plan_id_erp_user,
[REdit_Groups, REdit_Event]);
end;
procedure TForm_Event.tv_r_c_plan_name_specPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_spec_div_popupExecute(self);
end;
{ Добавить-таки человека!}
procedure TForm_Event.OkNewEmp;
var db: variant;
begin
if Form_Anketa_For_New.DATE_OF_BIRTH.text = ''
then dB := NULL
else dB := StrToDate(Form_Anketa_For_New.DATE_OF_BIRTH.text);
Current_Form_SE.SetNewFIO(1, VarArrayOf([StrToInt(Form_Anketa_For_New.ID_E)
, Form_Anketa_For_New.SURNAME.Text
, Form_Anketa_For_New.ENAME.Text
, Form_Anketa_For_New.PATRONYMIC.Text
, dB
, StrToInt(Form_Anketa_For_New.ID_CONTRACTOR)]));
end;
{ Выбрать старого!}
procedure TForm_Event.OkOldEmp;
var db: variant;
begin
with {Cont_New_PA_Single,} Form_Anketa_For_New, cxTableViewSimilar.DataController do
begin
if VarToStr(Values[FocusedRecordIndex, cxTableViewSimilarDATEOFBIRTH.index]) = ''
then dB := NULL
else dB := Values[FocusedRecordIndex, cxTableViewSimilarDATEOFBIRTH.index];
Current_Form_SE.SetNewFIO(1, VarArrayOf([
Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarID_E.index]
, Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarSurname.index]
, Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarName.index]
, Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarPatronymic.index]
, dB
, Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarIDContractor.index]]));
end;
end;
{ После удаления}
procedure TForm_Event.After_Delete(Sender: TSqlData_cxGridTableView);
begin
if Sender.GridTableView = TTree_Nach
then Sender.Read_Data;
end;
{ Параметры удаления}
procedure TForm_Event.Delete_Main_Contract(Sender: TSqlData_cxGridTableView; ARecordIndex: Integer;
var ExchangeParameters: OleVariant);
begin
if Sender.GridTableView = TTree_MC then
with TTree_MC.DataController do
ExchangeParameters := CreateVarAr([VarToStr(Values[ARecordIndex, Tree_MC_ID_Contract.Index])]);
end;
{ Импорт участников из внешнего файла }
procedure TForm_Event.Action_ImportExecute(Sender: TObject);
var
i, j, k, LCID, res: Integer;
curr_id_e, curr_id_contractor, last_dog, curr_day: String;
data: OleVariant;
new_form: TSForm;
need_find: boolean;
begin
// Если открыли файл
if Import_File.Execute then
try
ea := TExcelApplication.Create(self);
ea.ConnectKind := ckNewInstance;
ea.Connect;
ew := ea.Workbooks.Open(Import_File.FileName, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, LCID);
wsh := ew.Worksheets.Item[1] as _Worksheet;
i := 1;
while VarToStr(wsh.Cells.Item[i, 1]) = '' do
begin
i := i + 1;
end;
id_d_import := '';
id_d_kaf := '';
idk_training := '';
Import_EG_Name := VarToStr(wsh.Cells.Item[i + 4, 2]);
Import_FIO_Curator := VarToStr(wsh.Cells.Item[i + 4, 4]);
data := MSystemServices.SelectData(Get_ID_Spec_By_Name,
CreateVarAr([VarToStr(wsh.Cells.Item[i + 1, 2])
, VarToStr(wsh.Cells.Item[i, 2])
, VarToStr(wsh.Cells.Item[i + 2, 2])
, VarToStr(wsh.Cells.Item[i + 2, 3])
, VarToStr(wsh.Cells.Item[i + 5, 2])
, Import_EG_Name
, Import_FIO_Curator
, VarToStr(wsh.Cells.Item[i + 5, 4])
, VarToStr(wsh.Cells.Item[i, 4])])
, j, 'Не смогли найти программу');
// Если нет еще контейнера - создадим!
if cW_Import = nil then
begin
cW_Import := TContainerWrappers.Create;
cW_Import.AddCustomEdit(DateEdit_Import_Start, True, False, '');
cW_Import.AddCustomEdit(DateEdit_Import_End, True, False, '');
cW_Import.AddCustomEdit(DateEdit_Import_Start_Otrjv, False, False, '');
cW_Import.AddCustomEdit(DateEdit_Import_End_Otrjv, False, False, '');
cW_Import.AddCustomEdit(CurrencyEdit_Import_Money, False, False, '');
cW_Import.AddCustomEdit(CurrencyEdit_Import_NDS, False, False, '');
cW_Import.AddCustomEdit(DateEdit_Import_Reference, True, False, '');
cW_Import.AddPopupEdit(PopupEdit_Import_Spec, True, False, nil, nil,
tv_Spec_ID, [tv_Spec_Name], '');
cW_Import.AddPopupEdit(PopupEdit_Import_Spec_Div, True, False, nil, nil
, tv_spec_div_popup_id_spec_div
, [tv_spec_div_popup_institute, tv_spec_div_popup_name_div, tv_spec_div_popup_name_spec, tv_spec_div_popup_kind_training], '');
cW_Import.AddPopupEdit(PopupEdit_Import_UMK, True, False
, cxGrid_Com_Spec, tv_com_spec, tv_com_spec_id_met_complex
, [tv_com_spec_hours, tv_com_spec_sam, tv_com_spec_name_spec, tv_com_spec_name_div, tv_com_spec_kind_training], '');
cW_Import.AddPopupEdit(PopupEdit_Import_Plan, True, False
, cxGrid_R_C_Plan, tv_r_c_plan, tv_r_c_plan_id_r_c_plan
, [tv_r_c_plan_institute, tv_r_c_plan_name_spec, tv_r_c_plan_kind_training], '');
cW_Import.AddPopupEdit(PopupEdit_Import_EG, True, False
, cxGrid_Ed_Group, tv_ed_group, tv_ed_group_id_ed_group, [tv_ed_group_name], '');
PopupEdit_Import_Curator.Properties.PopupControl := Current_Form_SE;
cW_Import.AddPopupEdit(PopupEdit_Import_Curator, False, False,
Current_Form_SE.cxGrid1, Current_Form_SE.cxGrid_FIO,
Current_Form_SE.cxGrid_FIO_ID_E, [Current_Form_SE.cxGrid_FIO_Full], '');
cW_Import.AddButtonOrderEdit(ButtonEdit_Import_Order, True, False, ''
, ['200']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
cW_Import.AddButtonOrderEdit(ButtonEdit_Import_Nach, True, False, ''
, ['436']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
//cW_Import.ActionEnter := Action_Go_Import;
end;
cW_Import.ClearWrappers;
cW_Import.Wrappers[DateEdit_Import_Reference].Value := DateToStr(Date);
// Нашли программу?
if VarIsArray(data) then
begin
cW_Import.wrappers[DateEdit_Import_Start].Value := VarToStr(data[0][0]);
cW_Import.wrappers[DateEdit_Import_End].Value := VarToStr(data[0][1]);
cW_Import.Wrappers[DateEdit_Import_Start_Otrjv].Value := VarToStr(wsh.Cells.Item[i + 3, 2]);
cW_Import.Wrappers[DateEdit_Import_End_Otrjv].Value := VarToStr(wsh.Cells.Item[i + 3, 3]);
cW_Import.Wrappers[CurrencyEdit_Import_Money].Value := VarToStr(wsh.Cells.Item[i + 6, 2]);
cW_Import.Wrappers[CurrencyEdit_Import_NDS].Value := VarToStr(wsh.Cells.Item[i + 7, 2]);
if VarToStr(data[0][3]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_Spec].Value := VarToStr(data[0][3]);
cW_Import.wrappers[PopupEdit_Import_Spec].ValueDisplay := VarToStr(data[0][2]);
end;
// Специальность подразделения (Организатор)
if VarToStr(data[0][5]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value := VarToStr(data[0][5]);
// А если он пустой еще?
Get_SqlData_cxGrid(tv_spec_div_popup).Read_Data_First;
i := FindGridRecordIndex(tv_spec_div_popup, [tv_spec_div_popup_id_spec_div]
, CreateVarAr([VarToStr(data[0][5])]));
if i >= 0
then cW_Import.wrappers[PopupEdit_Import_Spec_Div].ValueDisplay :=
VarToStr(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_institute.Index])
+ ', ' + VarToStr(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_name_div.Index])
+ ', ' + VarToStr(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_name_spec.Index])
+ ', ' + VarToStr(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_kind_training.Index]);
end;
// План
if VarToStr(data[0][6]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_Plan].Value := VarToStr(data[0][6]);
cW_Import.wrappers[PopupEdit_Import_Plan].ValueDisplay :=
cW_Import.wrappers[PopupEdit_Import_Spec_Div].ValueDisplay;
end
// Нет плана - заполним поля для добавления!
else begin
cW_Import.Wrappers[PopupEdit_Import_Plan].Clear;
cW_New_R_C_Plan.Wrappers[cxPopupEdit_New_R_C_Plan_Spec_Div].Value :=
cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value;
cW_New_R_C_Plan.Wrappers[cxPopupEdit_New_R_C_Plan_Spec_Div].ValueDisplay :=
cW_Import.Wrappers[PopupEdit_Import_Spec_Div].ValueDisplay;
cW_New_R_C_Plan.Wrappers[cxDateEdit_New_R_C_Plan_D_Start].ValueDisplay :=
cW_Import.Wrappers[DateEdit_Import_Start].ValueDisplay;
cW_New_R_C_Plan.Wrappers[cxDateEdit_New_R_C_Plan_D_End].ValueDisplay :=
cW_Import.Wrappers[DateEdit_Import_End].ValueDisplay;
if VarToStr(data[0][10]) <> ''
then begin
cW_New_R_C_Plan.Wrappers[cxButtonEdit_New_R_C_Plan_Paragraph].Value := VarToStr(data[0][10]);
cW_New_R_C_Plan.Wrappers[cxButtonEdit_New_R_C_Plan_Paragraph].ValueDisplay := VarToStr(data[0][11]);
end;
end;
// УМК
if VarToStr(data[0][8]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_UMK].Value := VarToStr(data[0][8]);
i := FindGridRecordIndex(tv_com_spec, [tv_com_spec_id_met_complex]
, CreateVarAr([VarToStr(data[0][8])]));
if i >= 0
then cW_Import.wrappers[PopupEdit_Import_UMK].ValueDisplay :=
VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_hours.Index])
+ ', ' + VarToStr(VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_sam.Index])
+ ', ' + VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_name_spec.Index])
+ ', ' + tv_com_spec.DataController.Values[i, tv_com_spec_name_div.Index])
+ ', ' + VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_kind_training.Index]);
end;
// Учебная группа
if VarToStr(data[0][12]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_EG].Value := VarToStr(data[0][12]);
cW_Import.wrappers[PopupEdit_Import_EG].ValueDisplay := Import_EG_Name;
end
else cW_Import.Wrappers[PopupEdit_Import_EG].Clear;
// Куратор
if VarToStr(data[0][14]) <> ''
then
begin
cW_Import.wrappers[PopupEdit_Import_Curator].Value := VarToStr(data[0][14]);
cW_Import.wrappers[PopupEdit_Import_Curator].ValueDisplay := Import_FIO_Curator;
end
else cW_Import.Wrappers[PopupEdit_Import_Curator].Clear;
Import_Name_Spec := VarToStr(data[0][2]);
id_d_import := VarToStr(data[0][7]);
Import_Hours := VarToStr(data[0][9]);
Import_Hours_SR := VarToStr(data[0][15]);
Import_ID_EG := VarToStr(data[0][13]);
id_d_kaf := VarToStr(data[0][16]);
//id_d_import := VarToStr(data[0][17]);
end
else
begin
cW_Import.ClearWrappers;
cW_Import.wrappers[DateEdit_Import_Start].Value := VarToStr
(wsh.Cells.Item[i + 2, 2]);
cW_Import.wrappers[DateEdit_Import_End].Value := VarToStr
(wsh.Cells.Item[i + 2, 3]);
Import_Name_Spec := VarToStr(wsh.Cells.Item[i + 1, 2]);
end;
try
new_form := CreateSForm(self, 'fImport', TabSheet_Import.Caption,
Add_Path + TabSheet_Import.Caption, Panel_Import, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cW_Import.ActionEnter;
new_form.ShowModal;
{ Импортируем наконец-то...}
Self.Enabled := False;
if new_form.ModalResult = mrok then
begin
// Поиск договоров
i := 10;
res := 0;
last_dog := '';
while (VarToStr(wsh.Cells.Item[i, 2]) <> '') do
begin
// А зачем проверять его еще раз?
if ((last_dog = '') or (last_dog <> VarToStr(wsh.Cells.Item[i, 7])))
and (VarToStr(wsh.Cells.Item[i, 7]) <> '')
then
begin
last_dog := VarToStr(wsh.Cells.Item[i, 7]);
data := MSystemServices.SelectData(Find_Contract_By_Number
, CreateVarAr([VarToStr(wsh.Cells.Item[i, 7])
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Start].Value)])
, j);
// Нет такого договора - создадим!
if not VarIsArray(data) then
begin
cw_New_Contract_Main.ClearWrappers;
cw_New_Contract_Main.Wrappers[TextEdit_New_Contract_Main].Value
:= VarToStr(wsh.Cells.Item[i, 7]);
cw_New_Contract_Main.Wrappers[DateEdit_New_Contract_Main_Start].Value
:= '01.01.' + VarToStr(YearOf(StrToDate(VarToStr(cW_Import.Wrappers[DateEdit_Import_Start].Value))));
cw_New_Contract_Main.Wrappers[DateEdit_New_Contract_Main_End].Value
:= '31.12.' + VarToStr(YearOf(StrToDate(VarToStr(cW_Import.Wrappers[DateEdit_Import_End].Value))));
// Добавить договор
Action_New_Contract_Main.Execute;
end;
end;
i := i + 1;
end;
ProgressBar_Import.Properties.Min := 1;
ProgressBar_Import.Properties.Max := i - 10;
ProgressBar_Import.Visible := True;
ProgressBar_Import.Position := 0;
i := 10;
while VarToStr(wsh.Cells.Item[i, 2]) <> '' do
begin
ProgressBar_Import.Position := i - 9;
ProgressBar_Import.Refresh;
if Trim(VarToStr(wsh.Cells.Item[i, 6])) = '31.12.1899'
then curr_day := '01.01.1900'
else curr_day := Trim(VarToStr(wsh.Cells.Item[i, 6]));
{j := ord(Copy(VarToStr(wsh.Cells.Item[i, 3]), 10, 1));
HandymanFunctions.ShowVNDialog(vnd_Information
, IntToStr(ord(Copy(VarToStr(wsh.Cells.Item[i, 2]), 8, 1)))
, IntToStr(j));}
Label_FIO.Caption := //IntToStr(ord(Copy(VarToStr(wsh.Cells.Item[i, 3]), 10, 1)))
//+
Trim(VarToStr(wsh.Cells.Item[i, 2]))
+ ' ' + Trim(VarToStr(wsh.Cells.Item[i, 3]))
+ ' ' + Trim(VarToStr(wsh.Cells.Item[i, 4]))
+ ', ' + Trim(VarToStr(wsh.Cells.Item[i, 5]))
+ ', ' + curr_day;
Label_FIO.Refresh;
Application.ProcessMessages;
curr_id_e := '';
curr_id_contractor := '';
need_find := RadioGroup_Import_Mode.ItemIndex <> 2;
if not need_find
then
begin
need_find := not (FindGridRecord(tv_listeners, [tv_listeners_fio]
, CreateVarAr([VarToStr(Trim(VarToStr(wsh.Cells.Item[i, 2])))
+ ' ' + Trim(VarToStr(wsh.Cells.Item[i, 3]))
+ ' ' + Trim(VarToStr(wsh.Cells.Item[i, 4]))])) <> nil);
end;
// А надо ли искать человека?
if need_find then
begin
// Сначала поищем человека скрытно
with Get_SqlData_cxGrid(Form_Anketa_For_New.cxTableViewSimilar),
GridTableView.DataController do
begin
Parameters[1] := Trim(VarToStr(wsh.Cells.Item[i, 2]));
Parameters[2] := Trim(VarToStr(wsh.Cells.Item[i, 3]));
Parameters[3] := Trim(VarToStr(wsh.Cells.Item[i, 4]));
Parameters[4] := '';
Read_Data;
if RecordCount > 0
then begin
For k := 0 to RecordCount - 1 do
// 100% совпадение
if (VarToStr(Values[k, Form_Anketa_For_New.cxTableViewSimilarSimDegree.Index]) = '100')
// вплоть до дня рождения
and (StrToDate(VarToStr(Values[k, Form_Anketa_For_New.cxTableViewSimilarDATEOFBIRTH.Index]))
= (StrToDate(curr_day)))
then begin
curr_id_e := VarToStr(Values[k, Form_Anketa_For_New.cxTableViewSimilarID_E.Index]);
curr_id_contractor := VarToStr(Values[k, Form_Anketa_For_New.cxTableViewSimilarIDContractor.Index]);
end
end;
end;
// Все-таки не нашли однозначное соответствие, моделируем ввод новой анкеты!
if (curr_id_e = '') and (RadioGroup_Import_Mode.ItemIndex <> 1)
then
begin
Form_Anketa_For_New.ClearForm;
Form_Anketa_For_New.ModalResult := 0;
if (trim(VarToStr(wsh.Cells.Item[i, 5])) = 'ж')
or (trim(VarToStr(wsh.Cells.Item[i, 5])) = 'Ж')
then curr_sex := '2'
else curr_sex := '1';
curr_surname := Trim(VarToStr(wsh.Cells.Item[i, 2]));
curr_name := Trim(VarToStr(wsh.Cells.Item[i, 3]));
curr_patronymic := Trim(VarToStr(wsh.Cells.Item[i, 4]));
curr_birthday := curr_day;
curr_email := VarToStr(wsh.Cells.Item[i, 12]);
curr_phone := VarToStr(wsh.Cells.Item[i, 13]);
// Заполним поля - там откроется поиск, если надо с выбором
Action_After_Show_New_Anketa.Execute;
// Откроем поиск подобных без самой анкеты!
//curr_id_e := Form_Anketa_For_New.ShowSimilaryDialog(1, False);
if Form_Anketa_For_New.id_e <> ''
then with Form_Anketa_For_New.cxTableViewSimilar.DataController do
begin
curr_id_e := VarToStr(Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarID_E.Index]);
curr_id_contractor := VarToStr(Values[FocusedRecordIndex, Form_Anketa_For_New.cxTableViewSimilarIDContractor.Index]);
end
else
// Если никого не выбрали, то откроем окно ввода нового человека
begin
Form_Anketa_For_New.Not_Clear_On_Show := True;
Case Form_Anketa_For_New.ShowNewEmpForm of
QRInserted:
begin
curr_id_e := Form_Anketa_For_New.ID_E;
curr_id_contractor := Form_Anketa_For_New.ID_CONTRACTOR;
end;
QRSimChecked: with Form_Anketa_For_New.cxTableViewSimilar.DataController do
begin
curr_id_e := VarToStr(Values[FocusedRecordIndex
, Form_Anketa_For_New.cxTableViewSimilarID_E.Index]);
curr_id_contractor := VarToStr(Values[FocusedRecordIndex
, Form_Anketa_For_New.cxTableViewSimilarIDContractor.Index]);
end;
end;
Form_Anketa_For_New.Not_Clear_On_Show := False;
end;
end;
// Есть человек - Добавим все необходимое для слушателя!
if curr_id_e <> ''
then with cW_Import do
begin
// Сначала проверим наличие этого слушателя в группе
data := MSystemServices.SelectData(Get_ID_Student_By_ID_E_ID_EG
, CreateVarAr([curr_id_e
, VarToStr(cW_Import.Wrappers[PopupEdit_Import_EG].Value)
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Start].Value)])
, j, 'Не смогли найти слушателя в группе');
// Нет слушателя - добавим!
if not VarIsArray(data)
then
if MSystemServices.ExchangeData(Create_Slushatel
, CreateVarAr([curr_id_e
, VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)
, VarToStr(wsh.Cells.Item[i, 7])
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Start].Value)
, VarToStr(cW_Import.Wrappers[DateEdit_Import_End].Value)
, VarToStr(cW_Import.Wrappers[ButtonEdit_Import_Order].Value)
, VarToStr(cW_Import.Wrappers[PopupEdit_Import_EG].Value)
, VarToStr(wsh.Cells.Item[i, 11])
, VarToStr(wsh.Cells.Item[i, 9])
, VarToStr(wsh.Cells.Item[i, 10])
, VarToStr(wsh.Cells.Item[i, 8])
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Start_Otrjv].Value)
, VarToStr(cW_Import.Wrappers[DateEdit_Import_End_Otrjv].Value)
, VarToStr(cW_Import.Wrappers[CurrencyEdit_Import_Money].Value)
, VarToStr(cW_Import.Wrappers[CurrencyEdit_Import_NDS].Value)
, VarToStr(cW_Import.Wrappers[ButtonEdit_Import_Nach].Value)
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Reference].Value)
, VarToStr(cW_Import.Wrappers[PopupEdit_Import_Curator].Value)]))
then
begin
res := res + 1;
// Обновим им данные, пусть порадуются, что ли?
Get_SqlData_cxGrid(tv_listeners).Read_Data;
cxGrid_Listeners.Refresh;
TButtonOrderEditWrapper(cW_Import.Wrappers[ButtonEdit_Import_Order]).IsEmpty := False;
TButtonOrderEditWrapper(cW_Import.Wrappers[ButtonEdit_Import_Nach]).IsEmpty := False;
end
end;
end; // Надо искать?
i := i + 1;
end; // Цикл по людям в файле
HandymanFunctions.ShowVNDialog(vnd_Information, 'Результат обработки файла'
, 'Добавлено слушателей: ' + IntToStr(res));
if res > 0
then Get_SqlData_cxGrid(tv_listeners).Read_Data;
if tv_listeners.Controller.FocusedRecord <> nil
then OnChoiceGridRecord_tv_listeners(Get_SqlData_cxGrid(tv_listeners)
, TcxGridDataRow(tv_listeners.Controller.FocusedRecord))
else OnChoiceGridRecord_tv_listeners(Get_SqlData_cxGrid(tv_listeners)
, nil);
end; // Закрыли окно импорта
finally
if assigned(new_form)
then FreeAndNil(new_form);
ProgressBar_Import.Visible := False;
Self.Enabled := True;
end;
finally
ew.Close(False, EmptyParam, EmptyParam, LCID);
ea.Disconnect;
ea.Free;
Fill_tv_listenersExecute(self);
ProgressBar_Import.Visible := False;
end;
end;
{ Добавить новый договор }
procedure TForm_Event.Action_Insert_Contract_MainExecute(Sender: TObject);
begin
cw_New_Contract_Main.ChangesAcceptWrappers;
with cw_New_Contract_Main do
if MSystemServices.ExchangeData(Create_New_Contract_Main
, CreateVarAr([VarToStr(Wrappers[ButtonEdit_New_Contract_Main].Value)
, VarToStr(Wrappers[PopupEdit_New_Contract_Main].Value)
, VarToStr(Wrappers[DateEdit_New_Contract_Main_Start].Value)
, VarToStr(Wrappers[DateEdit_New_Contract_Main_End].Value)]))
then
begin
TButtonOrderEditWrapper(cw_New_Contract_Main.Wrappers[ButtonEdit_New_Contract_Main]).IsEmpty := False;
cw_New_Contract_Main.Wrappers[ButtonEdit_New_Contract_Main].Clear;
Get_SqlData_cxGrid(TTree_Main_Contracts).IsFirstRead := True;
GetParentForm(Panel_New_Contract_Main).ModalResult := mrok;
end;
end;
{ Добавление куратора в БД }
procedure TForm_Event.Action_Insert_CuratorExecute(Sender: TObject);
begin
cW_New_Curator.ChangesAcceptWrappers;
if Get_SqlData_cxGrid(TTree_Curator).Insert_New
(CreateVarAr([VarToStr(cW_New_Curator.wrappers[DateEdit_New_Curator]
.Value),
VarToStr(cW_New_Curator.wrappers[PopupEdit_New_Curator_FIO].Value),
VarToStr(Get_SqlData_cxGrid(TTree_Curator).Parameters[1])])) then
begin
GetParentForm(Panel_New_Curator).ModalResult := mrok;
SetForegroundWindow(GetParentForm(Panel_Import).Handle);
end;
end;
procedure TForm_Event.Action_Insert_New_DirectionExecute(Sender: TObject);
const
Name = 'Направление на оплату';
var
mf: TSForm;
ok: Boolean;
id_o, id_p, def_Ann, def_Basis, def_Note, def_Ass, NewContextIndex, IDk_List,
k_List_Name, ko_ID_Metaterm, kind_order, def_Ident, def_IdenDate,
ID_Period_Nubbering, id_NewSeries, NewSeries: WideString;
ks: TStringList;
begin
try // 1
mf := CreateSForm(self, 'fNew_Direction', Name, Add_Path + Name,
Panel_New_Direction, tdb_Apply);
cW_New_Direction.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
kind_order := VarToStr
(cW_New_Direction.wrappers
[cxPopupEdit_New_Direction].Value);
ks := TStringList.Create;
ks.Add(kind_order);
id_o := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm, '',
False);
if id_o = EmptyWideStr then
begin // 3
ks.Free;
exit;
end; // 3
id_p := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm, id_o,
False);
ks.Free;
if id_p = EmptyWideStr then
exit;
// отправить на подпись.
vnListAgent.LA_Send_Signature(id_o, '', datetostr(now), True);
vnListAgent.LA_SetIdentifier(id_o, def_Ident, ID_Period_Nubbering,
id_NewSeries, NewSeries, def_IdenDate, True, False,
'Регистрация направления.');
// добавить направление
ok := MSystemServices.ExchangeData(Add_Direction,
VarArrayOf([id_p,
VarToStr(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_id_contract.Index])
]));
if ok then
Fill_Contract_ParamsExecute(self);
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
end; // 1
end;
procedure TForm_Event.Action_Insert_tv_listenersExecute(Sender: TObject);
const
Name = 'Участники';
var
mf: TSForm;
id_o, id_p, def_Ann, def_Basis, def_Note, def_Ass, NewContextIndex, IDk_List,
k_List_Name, ko_ID_Metaterm, kind_order, def_Ident, def_IdenDate,
ID_Period_Nubbering, id_NewSeries, NewSeries: WideString;
ks: TStringList;
ok: Boolean;
begin
ok := False;
try // 1
mf := CreateSForm(self, 'fNew_Listeners', Name, Add_Path + Name,
Panel_New_Listener, tdb_Apply);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Contract_Source_Finansing]
.Value := VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_source.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Contract_Source_Finansing]
.ValueDisplay := VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_source.Index]);
cW_New_Listener.wrappers[cxCurrencyEdit_New_Listener_Contract_Money]
.Value := VarToStr(tv_r_c_plan.DataController.GetValue
(tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_money.Index));
cW_New_Listener.wrappers[cxCurrencyEdit_New_Listener_Contract_Money]
.ValueDisplay := tv_r_c_plan.DataController.GetDisplayText
(tv_r_c_plan.DataController.FocusedRecordIndex, tv_r_c_plan_money.Index);
cW_New_Listener.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_listeners);
if ((FSqlData_TableView <> nil) and (VarToStr(cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Order].Value) <> '') and
(cxPopupEdit_New_Listener_Order.Enabled) and
(VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Order]
.Value) = '')) then
begin // 3
kind_order := VarToStr(cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Order].Value);
ks := TStringList.Create;
ks.Add(kind_order);
id_o := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm, '',
False);
if id_o = EmptyWideStr then
begin // 4
ks.Free;
exit;
end; // 4
id_p := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm,
id_o, False);
ks.Free;
if id_p = EmptyWideStr then
exit;
// отправить на подпись.
vnListAgent.LA_Send_Signature(id_o, '', datetostr(now), True);
vnListAgent.LA_SetIdentifier(id_o, def_Ident, ID_Period_Nubbering,
id_NewSeries, NewSeries, def_IdenDate, True, False,
'Регистрация договора');
cxCurrencyEdit_New_Listener_Contract_Money.Properties.EditFormat :=
'0.00';
cxCurrencyEdit_New_Listener_Contract_Money.Properties.
UseThousandSeparator := False;
ok := MSystemServices.ExchangeData(Add_Contract,
VarArrayOf([cW_New_Listener.wrappers[cxPopupEdit_New_Listener_FIO]
.Value, cW_New_Listener.wrappers[
cxPopupEdit_New_Listener_Contract_Organization].Value,
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value,
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value,
id_p, cW_New_Listener.wrappers[
cxPopupEdit_New_Listener_Contract_Source_Finansing].Value,
VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_spec_div.Index]),
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Basis_Action]
.Value, cW_New_Listener.wrappers
[cxButtonEdit_New_Listener_Order_Start].Value,
VarToStr(cxCurrencyEdit_New_Listener_Contract_Money.EditValue),
'', cW_New_Listener.wrappers[cxTextEdit_New_Listener_Basis].Value,
cW_New_Listener.wrappers[cxTextEdit_New_Listener_FIO].Value,
cW_New_Listener.wrappers[cxTextEdit_New_Listener_FIO_R].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Post].Value]));
cxCurrencyEdit_New_Listener_Contract_Money.Properties.EditFormat :=
',0.00';
cxCurrencyEdit_New_Listener_Contract_Money.Properties.
UseThousandSeparator := True;
if ok then
ok := FSqlData_TableView.Insert_New
(CreateVarAr
([cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_FIO].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group]
.Value, cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Basis_Action].Value,
cW_New_Listener.wrappers[cxButtonEdit_New_Listener_Order_Start]
.Value, cW_New_Listener.wrappers
[cxDateEdit_New_Listener_D_Start].Value, id_p]));
end // 3
else
begin // 5
ok := FSqlData_TableView.Insert_New
(CreateVarAr([cW_New_Listener.wrappers[cxPopupEdit_New_Listener_FIO]
.Value, cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Ed_Group].Value,
cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Basis_Action]
.Value,
cW_New_Listener.wrappers
[cxButtonEdit_New_Listener_Order_Start].Value,
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Order].Value]));
end; // 5
if ok then
begin // 6
FSqlData_TableView.Read_Data;
TButtonOrderEditWrapper(cW_New_Listener.wrappers
[cxButtonEdit_New_Listener_Order_Start]).IsEmpty := False;
if cxPageControl_Student.ActivePage = cxTabSheet_Contracts then
Fill_Contract_ParamsExecute(self);
end; // 6
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
end; // 1
end;
procedure TForm_Event.Action_Insert_tv_r_c_groupExecute(Sender: TObject);
const
Name = 'Группы повышения квалификации';
var
mf: TSForm;
begin
try // 1
mf := CreateSForm(self, 'fNew_R_C_Groups', Name, Add_Path + Name,
Panel_New_R_C_Group, tdb_Apply);
cW_New_R_C_Group.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_r_c_groups);
if FSqlData_TableView <> nil then
begin // 3
if FSqlData_TableView.Insert_New(CreateVarAr
([cW_New_R_C_Group.wrappers[cxDateEdit_New_R_C_Group_D_End].Value,
cW_New_R_C_Group.wrappers[cxDateEdit_New_R_C_Group_D_Start].Value,
cW_New_R_C_Group.wrappers[cxPopupEdit_New_R_C_Group_Ed_Group]
.Value, cW_New_R_C_Group.wrappers
[cxPopupEdit_New_R_C_Group_Met_Complex].Value,
FSqlData_TableView.Params[0]
{tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_r_c_plan.Index]}])) then
FSqlData_TableView.Read_Data;
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
end; // 1
end;
procedure TForm_Event.Action_Insert_tv_r_c_planExecute(Sender: TObject);
const
Name = 'План повышения квалификации';
var
mf: TSForm;
FRI: Integer;
begin
try // 1
mf := CreateSForm(self, 'fNew_R_C_Plan', Name, Add_Path + Name,
Panel_New_R_C_Plan, tdb_Apply);
{ Устанавливаем значение по умолчанию }
if VarToStr(cW_New_R_C_Plan.wrappers[cxDateEdit_New_R_C_Plan_D_Start]
.Value) = '' then
cW_New_R_C_Plan.wrappers[cxDateEdit_New_R_C_Plan_D_Start].Value :=
datetostr(Date);
cxPopupEdit_Plan_Filters_PlanPropertiesInitPopup(cxPopupEdit_Plan_Filters_Plan);
if ((VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan]
.Value) <> '') and
(tv_plan.DataController.FocusedRecordIndex <> -1)) then
begin // 5
FRI := tv_plan.DataController.FocusedRecordIndex;
TButtonOrderEditWrapper(cW_New_R_C_Plan.wrappers
[cxButtonEdit_New_R_C_Plan_Paragraph]).SetListProperties
(VarToStr(tv_plan.DataController.Values[FRI, tv_plan_id_paragraph.Index]),
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_idk_order.Index]), '', '',
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_id_order.Index]), '', '',
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_hisdate.Index]),
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_status_order.Index]),
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_status_text.Index]),
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_d_creation.Index]),
VarToStr(tv_plan.DataController.Values[FRI, tv_plan_id_erp_user.Index]), '');
end // 5
else
cW_New_R_C_Plan.wrappers[cxButtonEdit_New_R_C_Plan_Paragraph].Clear;
cW_New_R_C_Plan.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_r_c_plan);
if FSqlData_TableView <> nil then
begin // 3
if FSqlData_TableView.Insert_New(CreateVarAr
([cW_New_R_C_Plan.wrappers[cxDateEdit_New_R_C_Plan_D_End].Value,
cW_New_R_C_Plan.wrappers[cxDateEdit_New_R_C_Plan_D_Start].Value,
cW_New_R_C_Plan.wrappers[cxPopupEdit_New_R_C_Plan_Spec_Div].Value,
cW_New_R_C_Plan.wrappers[cxButtonEdit_New_R_C_Plan_Paragraph].Value]
)) then
begin // 4
FSqlData_TableView.Read_Data;
TButtonOrderEditWrapper(cW_New_R_C_Plan.wrappers
[cxButtonEdit_New_R_C_Plan_Paragraph]).IsEmpty := False;
end; // 4
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
end; // 1
end;
{ Выбор рамочного договора }
procedure TForm_Event.Action_Main_ContractExecute(Sender: TObject);
var
new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fSet_Main_Contract',
TabSheet_Set_Main_Contract.Caption,
Add_Path + TabSheet_Set_Main_Contract.Caption, Panel_Set_Main_Contract,
tdb_Apply);
{ Устанавливаем значение по умолчанию }
if VarToStr(cW_Set_Main_Contract.wrappers[DateEdit_Set_Main_Contract_Find]
.Value) = '' then
cW_Set_Main_Contract.wrappers[DateEdit_Set_Main_Contract_Find].Value :=
datetostr(Date);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action :=
cW_Set_Main_Contract.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form) then
FreeAndNil(new_form);
end; // 1
end;
{ Выдача удостоверений}
procedure TForm_Event.Action_Make_CertificateExecute(Sender: TObject);
var new_form: TSForm; i: integer; data: olevariant;
begin
try // 1
new_form := CreateSForm(self, TabSheet_New_Cert.Name + '1'
, TabSheet_New_Cert.Caption
, Add_Path + TabSheet_New_Cert.Caption, Panel_New_Cert, tdb_Apply);
{ Устанавливаем значение по умолчанию }
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := Cont_Make_Cert.ActionEnter;
with tv_listeners.DataController do
Cont_Make_Cert.Wrappers[SpinEdit_New_Cert_Hours].Value :=
VarToStr(Values[FocusedRecordIndex, tv_listeners_hours_plan.Index]);
if VarToStr(Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert].Value) = ''
then begin
data := MSystemServices.SelectData(Find_Magazine_Reg_Dip
,CreateVarAr(['']), i, 'Не смогли найти журнал выдачи.');
if VarIsArray(data)
then begin
TButtonOrderEditWrapper(Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert]).
SetListProperties(VarToStr(data[0][0])
, VarToStr(data[0][1])
, VarToStr(data[0][2])
, VarToStr(data[0][3])
, VarToStr(data[0][4])
, VarToStr(data[0][5])
, VarToStr(data[0][6])
, VarToStr(data[0][7])
, VarToStr(data[0][8])
, VarToStr(data[0][9])
, VarToStr(data[0][10])
, VarToStr(data[0][11])
, VarToStr(data[0][12]));
Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert].Value := data[0][0];
//Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert].ValueDisplay := data[0][1];
end;
end
// Обновим начальные цифры в журнале
else ButtonEdit_New_CertPropertiesEditValueChanged(ButtonEdit_New_Cert);
new_form.ShowModal;
finally // 1
if assigned(new_form)
then FreeAndNil(new_form);
end; // 1
end;
{ Ввод нового рамочного договора }
procedure TForm_Event.Action_New_Contract_MainExecute(Sender: TObject);
var
new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_Contract_Main', TabSheet_New_Contract_Main.Caption,
Add_Path + TabSheet_New_Contract_Main.Caption, Panel_New_Contract_Main, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cw_New_Contract_Main.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form) then
FreeAndNil(new_form);
end; // 1
end;
{ Выберите рамочный договор }
procedure TForm_Event.Action_New_CuratorExecute(Sender: TObject);
var
new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_Curator', TabSheet_New_Curator.Caption,
Add_Path + TabSheet_New_Curator.Caption, Panel_New_Curator, tdb_Apply);
{ Устанавливаем значение по умолчанию }
if VarToStr(cW_New_Curator.wrappers[DateEdit_New_Curator].Value) = '' then
cW_New_Curator.wrappers[DateEdit_New_Curator].Value := datetostr(Date);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cW_New_Curator.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form) then
FreeAndNil(new_form);
end; // 1
end;
{ Ввод нового рамочного договора}
procedure TForm_Event.Action_New_MCExecute(Sender: TObject);
var
new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_MC', TabSheet_New_Contract_Main.Caption,
Add_Path + TabSheet_New_Contract_Main.Caption, Panel_New_Contract_Main, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cw_New_Contract_Main.ActionEnter;
new_form.ShowModal;
if new_form.ModalResult = mrok
then Get_SqlData_cxGrid(ttree_mc).Read_Data;
finally // 1
if assigned(new_form) then
FreeAndNil(new_form);
end; // 1
end;
{ Задайте новую стоимость договора}
procedure TForm_Event.Action_New_MoneyExecute(Sender: TObject);
var new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, 'fNew_Money', TabSheet_New_Money.Caption,
Add_Path + TabSheet_New_Money.Caption, Panel_New_Money, tdb_Apply);
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := cw_New_Money.ActionEnter;
new_form.ShowModal;
if new_form.ModalResult = mrok
then Get_SqlData_cxGrid(tv_listeners).Read_Data;
finally // 1
if assigned(new_form) then
FreeAndNil(new_form);
end; // 1
end;
{ Добавить новую анкету человека!}
procedure TForm_Event.Action_New_SEExecute(Sender: TObject);
begin
Case Form_Anketa_For_New.ShowNewEmpForm of
QRInserted: OkNewEmp;
QRSimChecked: OkOldEmp;
End;
end;
{ Получить статистику }
procedure TForm_Event.Action_Read_StatExecute(Sender: TObject);
begin
with Get_SqlData_cxGrid(TTree_Stat), Cont_Stat do
begin
Parameters[1] := VarToStr(Cont_Stat.Wrappers[DateEdit_Stat_Begin].Value);
Parameters[2] := VarToStr(Cont_Stat.Wrappers[DateEdit_Stat_End].Value);
Read_Data;
end;
end;
{ Просмотр удостоверения }
procedure TForm_Event.Action_View_CertificateExecute(Sender: TObject);
var L: TIntegerList;
i: integer;
s: String;
begin
with Get_SqlData_cxGrid(tv_listeners) do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
s := '';
with GridTableView.DataController do
for i := 0 to L.Count - 1 do
if s = ''
then s := VarToStr(Values[L.Items[i], tv_listeners_ID_Certificate.Index])
else s := s + ',' + VarToStr(Values[L.Items[i], tv_listeners_ID_Certificate.Index]);
// Размер сдвига по-Галиному:
{if cxSpinEdit1.Value<0 then
sdvig:=vartostr(45.35+abs(cxSpinEdit1.Value))
else sdvig:=vartostr(45.35-cxSpinEdit1.Value);}
MSystemServices.EndSequenceActions;
HandymanFunctions.PreviePaper(MSystemServices
, View_Cert
, CreateVarAr([s])
, VarArrayOf([AWP_PageSetup_TopMargin ,VarToStr(45.35 - 0)])
, True);
end;
end;
procedure TForm_Event.Fill_AnketaExecute(Sender: TObject);
var
DC: TcxGridDataController;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_listeners);
if FSqlData_TableView <> nil then
begin // 1
DC := FSqlData_TableView.GridTableView.DataController;
if (FSqlData_TableView.LastChoiceIndex >= 0) and
(FSqlData_TableView.LastChoiceIndex < DC.RecordCount) then
begin // 2
Current_Form_Anketa.ID_CONTRACTOR := VarToStr
(DC.Values[FSqlData_TableView.LastChoiceIndex,
tv_listeners_id_contractor.Index]);
Current_Form_Anketa.ID_E := VarToStr
(DC.Values[FSqlData_TableView.LastChoiceIndex,
tv_listeners_id_e.Index]);
end // 2
else
begin // 3
Current_Form_Anketa.ID_CONTRACTOR := '';
Current_Form_Anketa.ID_E := '';
end; // 3
Current_Form_Anketa.RefreshRoles(False);
Current_Form_Anketa.IsEnabled := True;
Current_Form_Anketa.Editing :=
Current_Form_Anketa.IsEnabled and vnSessionAgent.
IsRoleSomehowAccessible('', '', '7001');
if not Current_Form_Anketa.Visible then
Current_Form_Anketa.Show;
Panel_Anketa.Realign;
Current_Form_Anketa.Realign;
end; // 1
end;
procedure TForm_Event.Fill_Contract_ParamsExecute(Sender: TObject);
var
data: OleVariant;
DC: TcxDataController;
ID_C: string;
rID: Integer;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_listeners);
DC := tv_listeners.DataController;
if FSqlData_TableView <> nil then
begin // 1
if PC_Refuse.Enabled
then PC_Refuse.Execute;
ID_C := VarToStr(DC.Values[FSqlData_TableView.LastChoiceIndex,
tv_listeners_id_contract.Index]);
if ID_C <> '' then
begin // 2
data := MSystemServices.SelectData(Contr_Params, VarArrayOf([ID_C]), rID);
if VarIsArray(data) then
begin // 3
cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start].Value := VarToStr
(data[0][0]);
cW_Contract_Params.wrappers[cxDateEdit_PC_D_End].Value := VarToStr
(data[0][1]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Org].Value := VarToStr
(data[0][2]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Org].ValueDisplay := VarToStr
(data[0][20]);
cW_Contract_Params.wrappers[CheckBox_PC_NDS].Value := VarToStr
(data[0][21]);
if VarToStr(data[0][24]) = ''
then cW_Contract_Params.wrappers[cxCurrencyEdit_PC_Money].Clear
else cW_Contract_Params.wrappers[cxCurrencyEdit_PC_Money].Value :=VarToStr
(data[0][24]);
{cW_Contract_Params.wrappers[cxCurrencyEdit_PC_Money].Value := VarToStr
(DC.GetValue(DC.FocusedRecordIndex, tv_listeners_money.Index));
cW_Contract_Params.wrappers[cxCurrencyEdit_PC_Money].ValueDisplay :=
DC.GetDisplayText(DC.FocusedRecordIndex, tv_listeners_money.Index);}
if VarToStr(data[0][22]) = ''
then cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start_Otrjv].Clear
else cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start_Otrjv].Value :=
DateToStr(StrToDate(VarToStr(data[0][22])));
if VarToStr(data[0][22]) = ''
then cW_Contract_Params.wrappers[cxDateEdit_PC_D_End_Otrjv].Clear
else cW_Contract_Params.wrappers[cxDateEdit_PC_D_End_Otrjv].Value :=
DateToStr(StrToDate(VarToStr(data[0][23])));
cW_Contract_Params.wrappers[cxPopupEdit_PC_SF].Value := VarToStr
(data[0][3]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_SF].ValueDisplay := VarToStr
(data[0][4]);
TButtonOrderEditWrapper(cW_Contract_Params.wrappers
[cxButtonEdit_PC_Contract]).SetListProperties
(VarToStr(DC.Values[FSqlData_TableView.LastChoiceIndex,
tv_listeners_id_paragraph_contract.Index]), VarToStr(data[0][6]),
VarToStr(data[0][8]), '', VarToStr(data[0][5]), '', '', '',
VarToStr(data[0][7]),
VarToStr(DC.Values[FSqlData_TableView.LastChoiceIndex,
tv_listeners_status_text_contract.Index]), '', '', '');
cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Order].Value := VarToStr
(data[0][6]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Order].ValueDisplay :=
VarToStr(data[0][8]);
TButtonOrderEditWrapper(cW_Contract_Params.wrappers
[cxButtonEdit_PC_Direction]).SetListProperties
(VarToStr(data[0][9]), VarToStr(data[0][13]), VarToStr(data[0][14]),
'', VarToStr(data[0][10]), '', '', '', VarToStr(data[0][11]),
VarToStr(data[0][12]), '', '', '');
cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Direction].Value :=
VarToStr(data[0][13]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Direction]
.ValueDisplay := VarToStr(data[0][14]);
cW_Contract_Params.wrappers[cxTextEdit_PC_Basis].Value := VarToStr
(data[0][15]);
cW_Contract_Params.wrappers[cxTextEdit_PC_FIO].Value := VarToStr
(data[0][16]);
cW_Contract_Params.wrappers[cxTextEdit_PC_FIO_R].Value := VarToStr
(data[0][17]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Post].Value := VarToStr
(data[0][18]);
cW_Contract_Params.wrappers[cxPopupEdit_PC_Post].ValueDisplay :=
VarToStr(data[0][19]);
end // 3
else
cW_Contract_Params.ClearWrappers;
end // 2
else
cW_Contract_Params.ClearWrappers;
end; // 1
end;
{ Установить параметры текущего выбора и прочитать методические комплексы}
procedure TForm_Event.Fill_tv_com_specExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_com_spec);
if (FSqlData_TableView <> nil) then
begin // 1
if Sender = PopupEdit_Import_UMK then
begin
if FSqlData_TableView.Parameters[1] <> VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)
then begin
FSqlData_TableView.Parameters[1] := VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value);
FSqlData_TableView.Read_Data;
end
else FSqlData_TableView.Read_Data_First;
end
else
// Работа с текущим повышением плана (в редактировании грида)
begin
if FSqlData_TableView.Parameters[1] <> VarToStr
(tv_r_c_plan.DataController.Values[tv_r_c_plan.DataController.FocusedRecordIndex
,tv_r_c_plan_id_spec_div.Index])
then
begin
FSqlData_TableView.Parameters[1] := VarToStr
(tv_r_c_plan.DataController.Values[tv_r_c_plan.DataController.FocusedRecordIndex
, tv_r_c_plan_id_spec_div.Index]);
FSqlData_TableView.Read_Data;
end
else FSqlData_TableView.Read_Data_First;
end;
end; // 1
end;
procedure TForm_Event.Fill_tv_contractsExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_contracts);
if (FSqlData_TableView <> nil) then
begin // 1
FSqlData_TableView.Params[0] := cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Order].Value;
FSqlData_TableView.Params[1] := cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_FIO].Value;
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First
else
FSqlData_TableView.Read_Data;
end; // 1
end;
procedure TForm_Event.Fill_tv_ed_groupExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_ed_group);
if (FSqlData_TableView <> nil) then
begin // 1
FSqlData_TableView.Params[0] := VarToStr
(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_spec_div.Index]);
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First
else
FSqlData_TableView.Read_Data;
end; // 1
end;
procedure TForm_Event.Fill_tv_kba_endExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_kba_end);
if (FSqlData_TableView <> nil) then
begin // 1
if VarToStr(FSqlData_TableView.Params[0]) <> cW_End_Education.wrappers
[cxButtonEdit_End_Education].Value then
begin // 2
FSqlData_TableView.Params[0] := cW_End_Education.wrappers
[cxButtonEdit_End_Education].Value;
FSqlData_TableView.Read_Data;
end; // 2
end; // 1
end;
procedure TForm_Event.Fill_tv_kba_startExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_kba_start);
if (FSqlData_TableView <> nil) then
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Event.Fill_tv_kind_directionExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_kind_direction);
if (FSqlData_TableView <> nil) then
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Event.Fill_tv_kind_orderExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_kind_order);
if (FSqlData_TableView <> nil) then
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Event.Fill_tv_listenersExecute(Sender: TObject);
var
FSqlData_TableView2: TSqlData_cxGridTableView;
Param0: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_listeners);
FSqlData_TableView2 := Get_SqlData_cxGrid(tv_r_c_plan);
if (FSqlData_TableView <> nil) and (FSqlData_TableView2 <> nil) then
begin // 1
Param0 := VarToStr(FSqlData_TableView2.GridTableView.DataController.Values
[FSqlData_TableView2.LastChoiceIndex, tv_r_c_plan_id_r_c_plan.Index]);
if VarToStr(FSqlData_TableView.Params[0]) <> Param0 then
begin // 2
FSqlData_TableView.Params[0] := Param0;
FSqlData_TableView.Read_Data;
end
else FSqlData_TableView.Read_Data_First; // 2
end; // 1
end;
procedure TForm_Event.Fill_tv_ordersExecute(Sender: TObject);
var
Param0: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_orders);
if (FSqlData_TableView <> nil) then
begin // 1
Param0 := VarToStr(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_id_e.Index]);
if VarToStr(FSqlData_TableView.Params[0]) <> Param0 then
begin // 2
FSqlData_TableView.Params[0] := Param0;
FSqlData_TableView.Read_Data;
end; // 2
end; // 1
end;
procedure TForm_Event.Fill_tv_planExecute(Sender: TObject);
var
Param0: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_plan);
if (FSqlData_TableView <> nil) then
begin // 1
Param0 := VarToStr(cW_Plan_Filters.wrappers[cxSpinEdit_Plan_Filters_Year]
.Value);
if (VarToStr(FSqlData_TableView.Params[0]) <> Param0) then
begin // 2
FSqlData_TableView.Params[0] := Param0;
FSqlData_TableView.Read_Data;
end // 2
else FSqlData_TableView.Read_Data_First;
if (cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value) <> ''
then FindGridRecord(tv_plan, [tv_plan_id_paragraph]
, CreateVarAr([VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value)]));
end; // 1
end;
procedure TForm_Event.Fill_tv_postsExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_posts);
if (FSqlData_TableView <> nil) then
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Event.Fill_tv_r_c_groupsExecute(Sender: TObject);
var
FSqlData_TableView2: TSqlData_cxGridTableView;
Param0: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_r_c_groups);
FSqlData_TableView2 := Get_SqlData_cxGrid(tv_r_c_plan);
if (FSqlData_TableView <> nil) and (FSqlData_TableView2 <> nil) then
begin // 1
Param0 := VarToStr(FSqlData_TableView2.GridTableView.DataController.Values
[FSqlData_TableView2.LastChoiceIndex, tv_r_c_plan_id_r_c_plan.Index]);
if VarToStr(FSqlData_TableView.Params[0]) <> Param0 then
begin // 2
FSqlData_TableView.Params[0] := Param0;
FSqlData_TableView.Read_Data;
end
else FSqlData_TableView.Read_Data_First; // 2
end; // 1
end;
procedure TForm_Event.Fill_tv_r_c_planExecute(Sender: TObject);
var
Param0: string;
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_r_c_plan);
if (FSqlData_TableView <> nil) then
begin // 1
Param0 := VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan]
.Value);
if (VarToStr(FSqlData_TableView.Params[0]) <> Param0)
or FSqlData_TableView.IsFirstRead then
begin // 2
FSqlData_TableView.Params[0] := Param0;
FSqlData_TableView.Read_Data;
end; // 2
end; // 1
end;
procedure TForm_Event.Fill_tv_source_finansingExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_Source_Financing);
if (FSqlData_TableView <> nil) and FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end;
procedure TForm_Event.Fill_tv_spec_div_popupExecute(Sender: TObject);
begin
FSqlData_TableView := Get_SqlData_cxGrid(tv_spec_div_popup);
if (FSqlData_TableView <> nil) then
begin // 1
if FSqlData_TableView.IsFirstRead then
FSqlData_TableView.Read_Data_First;
end; // 1
end;
procedure TForm_Event.FormDestroy(Sender: TObject);
begin
{ Сохраним параметры в реестр }
Save_Restore_Params(Curr_Reg_Path, False);
end;
procedure TForm_Event.FormShow(Sender: TObject);
begin
{ Читаем списки }
Fill_tv_r_c_planExecute(self);
end;
{ Инициализация формы }
procedure TForm_Event.Init(AReg_Path: String = Reg_Path;
AForm_SE: TForm_SE = nil; AForm_Find_Org: TForm_Find_Org = nil;
AForm_Anketa: TFUnivQuestionare = nil;
AForm_Anketa_For_New: TFUnivQuestionare = nil);
begin
Curr_Reg_Path := AReg_Path;
DateEdit_Import_Reference.Date := Date;
DateEdit_New_Nach.Date := Date;
DateEdit_Create_Nach_All.Date := Date;
DateEdit_Stat_Begin.Date := StrToDate('01.01.' + IntToStr(YearOf(Date)));
DateEdit_Stat_End.Date := StrToDate('31.12.' + IntToStr(YearOf(Date)));
DateEdit_Filter_Start.Date := DateEdit_Stat_Begin.Date;
DateEdit_Filter_End.Date := DateEdit_Stat_End.Date;
if AForm_SE <> nil then
Current_Form_SE := AForm_SE;
if not assigned(Current_Form_SE) then
Current_Form_SE := TForm_SE.Create(self);
with Get_SqlData_cxGrid(Current_Form_SE.cxGrid_FIO) do
begin
ActionInsert.OnExecute := Action_New_SE.OnExecute;
ActionDelete.Enabled := False;
PopupActions.Add(ActionInsert);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
end;
if AForm_Find_Org <> nil then
Current_Form_Find_Org := AForm_Find_Org;
if not assigned(Current_Form_Find_Org) then
begin
Current_Form_Find_Org := TForm_Find_Org.Create(self);
Current_Form_Find_Org.Init;
end;
if AForm_Anketa <> nil
then Current_Form_Anketa := AForm_Anketa;
if not assigned(Current_Form_Anketa) then
begin
Current_Form_Anketa.Init(Current_Form_Anketa, [qpers, qphoto, qcont, qdocs,
qadr, QWithTabSheet, Qworkplaces, QWeb_User], ForWorkWith, nil,
Current_Form_SE);
//Current_Form_Anketa.FFormDocuments.TypeDoc := 3;
Current_Form_Anketa.FFormDocuments.ReadAdditionalInfo;
Current_Form_Anketa.IsEnabled := True;
Current_Form_Anketa.ManualDock(Panel_Anketa, nil, alClient);
Current_Form_Anketa.RefreshRoles(False);
end;
if AForm_Anketa_For_New <> nil
then Form_Anketa_For_New := AForm_Anketa_For_New;
if not assigned(Form_Anketa_For_New)
then
begin
Form_Anketa_For_New.Init(Form_Anketa_For_New
, [Qpers, Qdocs, QCont, QAdr]
, ForNew, nil, Current_Form_SE);
Form_Anketa_For_New.FFormDocuments.TypeDoc := 1;
//Form_Anketa_For_New.hm := HandymanFunctions;
Form_Anketa_For_New.SimilaryCheckModeOn := True;
Form_Anketa_For_New.PostOnEnter := True;
Form_Anketa_For_New.DisplayLookUps := False;
end;
// *****************************************************************************
cW_New_R_C_Plan := TContainerWrappers.Create;
cW_New_R_C_Plan.AddPopupEdit(cxPopupEdit_New_R_C_Plan_Spec_Div, True, False,
cxGrid_Spec_Div_PopUp, tv_spec_div_popup, tv_spec_div_popup_id_spec_div,
[tv_spec_div_popup_name_spec, tv_spec_div_popup_name_div,
tv_spec_div_popup_kind_training], '');
cW_New_R_C_Plan.AddButtonOrderEdit(cxButtonEdit_New_R_C_Plan_Paragraph, True,
False, '', ['902'], [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW],
[nil, nil, nil, nil]);
cW_New_R_C_Plan.AddCustomEdit(cxDateEdit_New_R_C_Plan_D_Start, True, False,
'');
cW_New_R_C_Plan.AddCustomEdit(cxDateEdit_New_R_C_Plan_D_End, False, False,
'');
cW_New_R_C_Plan.OnChangeWrapper := DoChanged_cW_New_R_C_Plan;
// *****************************************************************************
// *****************************************************************************
cW_New_R_C_Group := TContainerWrappers.Create;
cW_New_R_C_Group.AddPopupEdit(cxPopupEdit_New_R_C_Group_Ed_Group, True,
False, cxGrid_Ed_Group, tv_ed_group, tv_ed_group_id_ed_group,
[tv_ed_group_name], '');
cW_New_R_C_Group.AddPopupEdit(cxPopupEdit_New_R_C_Group_Met_Complex, True,
False, cxGrid_Com_Spec, tv_com_spec, tv_com_spec_id_met_complex,
[tv_com_spec_name_spec, tv_com_spec_status_text], '');
cW_New_R_C_Group.AddCustomEdit(cxDateEdit_New_R_C_Group_D_Start, True, False,
'');
cW_New_R_C_Group.AddCustomEdit(cxDateEdit_New_R_C_Group_D_End, True, False,
'');
cW_New_R_C_Group.OnChangeWrapper := DoChanged_cW_New_R_C_Group;
// *****************************************************************************
// *****************************************************************************
cW_New_Listener := TContainerWrappers.Create;
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_FIO, True, False,
Current_Form_SE.cxGrid1, Current_Form_SE.cxGrid_FIO,
Current_Form_SE.cxGrid_FIO_ID_E, [Current_Form_SE.cxGrid_FIO_Full], '');
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Ed_Group, True, False,
cxGrid_R_C_Groups, tv_r_c_groups, tv_r_c_groups_id_ed_group,
[tv_r_c_groups_name], '');
cW_New_Listener.AddCustomEdit(cxDateEdit_New_Listener_D_Start, True, False,
'');
cW_New_Listener.AddCustomEdit(cxDateEdit_New_Listener_D_End, True, False, '');
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Kind_Basis_Action,
True, False, cxGrid_KBA_Start, tv_kba_start, tv_kba_start_id,
[tv_kba_start_name], '');
cW_New_Listener.AddButtonOrderEdit(cxButtonEdit_New_Listener_Order_Start,
True, False, '', ['200'], [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE,
OBE_PREVIEW], [nil, nil, nil, nil]);
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Kind_Order, False,
False, cxGrid_Kind_Order, tv_kind_order, tv_kind_order_id,
[tv_kind_order_name], '');
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Order, False, False,
cxGrid_Contracts, tv_contracts, tv_contracts_id_paragraph,
[tv_contracts_contract], '');
cW_New_Listener.AddCustomEdit(cxDateEdit_New_Listener_Contract_D_Start,
False, False, '');
cW_New_Listener.AddCustomEdit(cxDateEdit_New_Listener_Contract_D_End, False,
False, '');
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Contract_Organization,
False, False, Current_Form_Find_Org.cxGrid_Org,
Current_Form_Find_Org.TTree_Org, Current_Form_Find_Org.Tree_Org_ID_CA,
[Current_Form_Find_Org.Tree_Org_Name], '');
cW_New_Listener.AddPopupEdit(
cxPopupEdit_New_Listener_Contract_Source_Finansing, False, False,
cxGrid_Source_Financing, tv_Source_Financing, tv_Source_Financing_ID,
[tv_Source_Financing_Name], '');
cW_New_Listener.AddCustomEdit(cxCurrencyEdit_New_Listener_Contract_Money,
False, False, '');
cW_New_Listener.AddCustomEdit(cxTextEdit_New_Listener_Basis, False, False,
'');
cW_New_Listener.AddCustomEdit(cxTextEdit_New_Listener_FIO, False, False, '');
cW_New_Listener.AddCustomEdit(cxTextEdit_New_Listener_FIO_R, False, False,
'');
cW_New_Listener.AddPopupEdit(cxPopupEdit_New_Listener_Post, False, False,
cxGrid_Posts, tv_posts, tv_posts_id, [tv_posts_name], '');
cW_New_Listener.OnChangeWrapper := DoChanged_cW_New_Listener;
// *****************************************************************************
// *****************************************************************************
cW_Contract_Params := TContainerWrappers.Create;
cW_Contract_Params.AddCustomEdit(cxDateEdit_PC_D_Start, False, True, '');
cW_Contract_Params.AddCustomEdit(cxDateEdit_PC_D_End, False, True, '');
cW_Contract_Params.AddCustomEdit(cxDateEdit_PC_D_Start_Otrjv, False, True, '');
cW_Contract_Params.AddCustomEdit(cxDateEdit_PC_D_End_Otrjv, False, True, '');
cW_Contract_Params.AddPopupEdit(cxPopupEdit_PC_Org, False, True,
Current_Form_Find_Org.cxGrid_Org, Current_Form_Find_Org.TTree_Org,
Current_Form_Find_Org.Tree_Org_ID_CA,
[Current_Form_Find_Org.Tree_Org_Name], '');
cW_Contract_Params.AddPopupEdit(cxPopupEdit_PC_SF, False, True,
cxGrid_Source_Financing, tv_Source_Financing, tv_Source_Financing_ID,
[tv_Source_Financing_Name], '');
cW_Contract_Params.AddCustomEdit(cxCurrencyEdit_PC_Money, False, True, '');
cW_Contract_Params.AddButtonOrderEdit(cxButtonEdit_PC_Contract, False, False,
'', ['68924'], [OBE_INNAVIGATE, OBE_PREVIEW], [nil, nil]);
cW_Contract_Params.AddPopupEdit(cxPopupEdit_PC_Kind_Order, False, True,
cxGrid_Kind_Order, tv_kind_order, tv_kind_order_id, [tv_kind_order_name],
'');
cW_Contract_Params.AddButtonOrderEdit(cxButtonEdit_PC_Direction, False,
False, '', ['431', '433', '434', '62'], [OBE_INNAVIGATE, OBE_PREVIEW],
[nil, nil]);
cW_Contract_Params.AddPopupEdit(cxPopupEdit_PC_Kind_Direction, False, True,
cxGrid_Kind_Direction, tv_kind_direction, tv_kind_direction_id,
[tv_kind_direction_name], '');
cW_Contract_Params.AddCustomEdit(cxTextEdit_PC_Basis, False, True, '');
cW_Contract_Params.AddCustomEdit(cxTextEdit_PC_FIO, False, True, '');
cW_Contract_Params.AddCustomEdit(cxTextEdit_PC_FIO_R, False, True, '');
cW_Contract_Params.AddPopupEdit(cxPopupEdit_PC_Post, False, True,
cxGrid_Posts, tv_posts, tv_posts_id, [tv_posts_name], '');
cW_Contract_Params.AddCustomEdit(CheckBox_PC_NDS, False, True, '');
cW_Contract_Params.ActionApply := PC_Apply;
cW_Contract_Params.ActionRefuse := PC_Refuse;
cW_Contract_Params.OnChangeWrapper := DoChanged_cW_Contract_Params;
// *****************************************************************************
cW_New_Direction := TContainerWrappers.Create;
cW_New_Direction.AddPopupEdit(cxPopupEdit_New_Direction, True, False,
cxGrid_Kind_Direction, tv_kind_direction, tv_kind_direction_id,
[tv_kind_direction_name], '');
cW_New_Direction.OnChangeWrapper := DoChanged_cW_New_Direction;
cw_New_UMK := TContainerWrappers.Create;
cw_New_UMK.AddCustomEdit(SpinEdit_New_UMK_Hours, True, False, '');
cw_New_UMK.AddCustomEdit(SpinEdit_New_UMK_Hours_SR, False, False, '');
// *****************************************************************************
// *****************************************************************************
cW_End_Education := TContainerWrappers.Create;
cW_End_Education.AddButtonOrderEdit(cxButtonEdit_End_Education, True, False,
'', ['201', '207'], [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW],
[nil, nil, nil, nil]);
cW_End_Education.AddPopupEdit(cxPopupEdit_KBA_End, True, False,
cxGrid_Kba_End, tv_kba_end, tv_kba_end_id, [tv_kba_end_name],
'');
cW_End_Education.AddCustomEdit(cxDateEdit_End_Education, True, False, '');
cW_End_Education.OnChangeWrapper := DoChanged_cW_End_Education;
// *****************************************************************************
// ---------------------------------------------
// добавление плана повышения квалификации
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_r_c_plan) = nil then
with TSqlData_cxGridTableView.Create(tv_r_c_plan) do
begin
Editing := True;
Single := False;
Table_Name := tv_r_c_plan.Bands.Items[0].Caption;
GUID_Select := R_C_Plan;
GUID_Update := d_P_REFRESHER_COURSE_PLAN;
Params := CreateVarAr(['']);
StepOnTopDataRecordMode := True;
Stat_Column := tv_r_c_plan_institute;
NameColumnForPopupEdit := tv_r_c_plan_institute;
with Select_Columns do
begin
Add(tv_r_c_plan_name_spec, 2);
Add(tv_r_c_plan_institute, 2);
Add(tv_r_c_plan_division, 2);
Add(tv_r_c_plan_kind_training, 2);
Add(tv_r_c_plan_d_start, 1);
Add(tv_r_c_plan_d_end, 0);
Add(tv_r_c_plan_source, 2);
Add(tv_r_c_plan_money);
Add(tv_r_c_plan_status_text, 3);
Add(tv_r_c_plan_id_r_c_plan, 4);
Add(tv_r_c_plan_id_spec_div, 2);
Add(tv_r_c_plan_id_spec, 2);
Add(tv_r_c_plan_id_institute, 2);
Add(tv_r_c_plan_id_d, 2);
Add(tv_r_c_plan_idk_training, 2);
Add(tv_r_c_plan_id_paragraph, 3);
Add(tv_r_c_plan_id_order, 3);
Add(tv_r_c_plan_idk_order, 3);
Add(tv_r_c_plan_status_order, 3);
Add(tv_r_c_plan_id_source, 2);
Add(tv_r_c_plan_id_erp_user);
end;
Key_Columns.Add(tv_r_c_plan_id_r_c_plan, 4);
with Insert_Columns do
begin
Add(tv_r_c_plan_d_end, 0);
Add(tv_r_c_plan_d_start, 1);
Add(tv_r_c_plan_id_spec_div, 2);
Add(tv_r_c_plan_id_paragraph, 3);
end;
with PopupColumnsList.Add(tv_r_c_plan_name_spec) do
begin
SelfKeyColumn := tv_r_c_plan_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_name_spec;
end;
with PopupColumnsList.Add(tv_r_c_plan_institute) do
begin
SelfKeyColumn := tv_r_c_plan_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_institute;
end;
with PopupColumnsList.Add(tv_r_c_plan_division) do
begin
SelfKeyColumn := tv_r_c_plan_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_name_div;
end;
with PopupColumnsList.Add(tv_r_c_plan_kind_training) do
begin
SelfKeyColumn := tv_r_c_plan_id_spec_div;
PopupKeyColumn := tv_spec_div_popup_id_spec_div;
PopupNameColumn := tv_spec_div_popup_kind_training;
end;
with PopupColumnsList.Add(tv_r_c_plan_source) do
begin
SelfKeyColumn := tv_r_c_plan_id_source;
PopupKeyColumn := tv_Source_Financing_ID;
PopupNameColumn := tv_Source_Financing_Name;
end;
OptionsOrder.Column_Status_Text := tv_r_c_plan_status_text;
OptionsOrder.Column_ID_order := tv_r_c_plan_id_order;
OptionsOrder.Column_ID_paragraph := tv_r_c_plan_id_paragraph;
OptionsOrder.Column_IDk_order := tv_r_c_plan_idk_order;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_Insert_tv_r_c_plan.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
LogicMode := lmLastChoice;
OnChoiceGridRecord := ChoiceGridRecord;
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление обучаемых специальностей (специальности подразделений)
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_spec_div_popup) = nil then
with TSqlData_cxGridTableView.Create(tv_spec_div_popup) do
begin
Single := False;
Table_Name := 'Обучаемые специальности';
GUID_Select := Spec_div;
GUID_Update := d_P_SPECIALITIES_DIVISION;
Params := CreateVarAr([IDK_Level_Spec, '']);
Stat_Column := tv_spec_div_popup_institute;
NameColumnForPopupEdit := tv_spec_div_popup_institute;
StepOnTopDataRecordMode := True;
with Select_Columns do
begin
Add(tv_spec_div_popup_name_spec, 1);
Add(tv_spec_div_popup_name_div, 2);
Add(tv_spec_div_popup_kind_training, 3);
Add(tv_spec_div_popup_institute, 6);
Add(tv_spec_div_popup_source, 12);
Add(tv_spec_div_popup_d_start, 4);
Add(tv_spec_div_popup_d_end, 5);
Add(tv_spec_div_popup_id_spec_div, 0);
Add(tv_spec_div_popup_id_spec, 1);
Add(tv_spec_div_popup_id_d, 2);
Add(tv_spec_div_popup_idk_training, 3);
Add(tv_spec_div_popup_id_d_institute, 6);
Add(tv_spec_div_popup_id_source, 12);
Add(tv_spec_div_popup_idk_level_formation, 8);
end;
with Insert_Columns
do begin
Add(tv_spec_div_popup_id_spec, 1);
Add(tv_spec_div_popup_id_d, 2);
Add(tv_spec_div_popup_idk_training, 3);
Add(tv_spec_div_popup_d_start, 4);
Add(tv_spec_div_popup_id_d_institute, 6);
Add(tv_spec_div_popup_idk_level_formation, 8);
Add(tv_spec_div_popup_id_source, 12);
end;
Key_Columns.Add(tv_spec_div_popup_id_spec_div, 0);
PopupActions.Add(ActionUpdate);
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление групп повышения квалификации
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_r_c_groups) = nil then
with TSqlData_cxGridTableView.Create(tv_r_c_groups) do
begin
Editing := True;
Single := False;
Table_Name := 'Группы повышения квалификации';
GUID_Select := R_C_Groups;
GUID_Update := d_P_REFRESHER_COURSE_GROUP;
StepOnTopDataRecordMode := True;
Params := CreateVarAr(['']);
Stat_Column := tv_r_c_groups_name;
NameColumnForPopupEdit := tv_r_c_groups_name;
with Select_Columns do
begin
Add(tv_r_c_groups_name, 2);
Add(tv_r_c_groups_d_start, 1);
Add(tv_r_c_groups_d_end, 0);
Add(tv_r_c_groups_status_text, 3);
Add(tv_r_c_groups_hours); ;
Add(tv_r_c_groups_id_rc_group, 4);
Add(tv_r_c_groups_id_ed_group, 2);
Add(tv_r_c_groups_id_met_complex, 3);
Add(tv_r_c_groups_id_paragraph, 3);
Add(tv_r_c_groups_id_order, 3);
Add(tv_r_c_groups_idk_order, 3);
Add(tv_r_c_groups_status_order, 3);
Add(tv_r_c_groups_id_r_c_plan, 5);
Add(tv_r_c_groups_id_erp_user);
end;
Key_Columns.Add(tv_r_c_groups_id_rc_group, 4);
with Insert_Columns do
begin
Add(tv_r_c_groups_d_end, 0);
Add(tv_r_c_groups_d_start, 1);
Add(tv_r_c_groups_id_ed_group, 2);
Add(tv_r_c_groups_id_met_complex, 3);
Add(tv_r_c_groups_id_r_c_plan, 5);
end;
with PopupColumnsList.Add(tv_r_c_groups_name) do
begin
SelfKeyColumn := tv_r_c_groups_id_ed_group;
PopupKeyColumn := tv_ed_group_id_ed_group;
PopupNameColumn := tv_ed_group_name;
end;
OptionsOrder.Column_Status_Text := tv_r_c_groups_status_text;
OptionsOrder.Column_ID_order := tv_r_c_groups_id_order;
OptionsOrder.Column_ID_paragraph := tv_r_c_groups_id_paragraph;
OptionsOrder.Column_IDk_order := tv_r_c_groups_idk_order;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_Insert_tv_r_c_group.OnExecute;
LogicMode := lmLastChoice;
OnChoiceGridRecord := ChoiceGridRecord;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
end;
// ---------------------------------------------
// ---------------------------------------------
// Учебные группы
with TSqlData_cxGridTableView.Create(tv_ed_group) do
begin
Editing := False;
Table_Name := 'Учебные группы';
Params := CreateVarAr(['']);
GUID_Select := Ed_Groups;
Single := False;
StepOnTopDataRecordMode := True;
Stat_Column := tv_ed_group_name;
NameColumnForPopupEdit := tv_ed_group_name;
with Select_Columns do
begin
Add(tv_ed_group_name, 1);
Add(tv_ed_group_kind_group, 8);
Add(tv_ed_group_d_start, 4);
Add(tv_ed_group_d_end, 5);
Add(tv_ed_group_id_ed_group, 0);
Add(tv_ed_group_id_spec_div, 2);
Add(tv_ed_group_idk_group, 8);
Add(tv_ed_group_level_group, 3);
end;
Key_Columns.Add(tv_ed_group_id_ed_group, 0);
PopupActions.Add(ActionUpdate);
end;
// Куратор текущей группы
with TSqlData_cxGridTableView.Create(TTree_Curator) do
begin
Table_Name := TTree_Curator.Bands.Items[0].Caption;
GUID_Select := Get_List_Curators_By_ID_EG;
GUID_Update := d_P_CURATOR_GROUP;
ParametersCount := 1;
RequiredParemeters.Add(1);
StepOnTopDataRecordMode := True;
Stat_Column := Tree_Curator_FIO;
with Select_Columns do
begin
Add(Tree_Curator_Start, 1);
Add(Tree_Curator_End, 0);
Add(Tree_Curator_FIO, 2);
Add(Tree_Curator_ID_E, 2);
Add(Tree_Curator_ID_EG, 3);
end;
with Insert_Columns do
begin
Add(Tree_Curator_Start, 1);
Add(Tree_Curator_ID_E, 2);
Add(Tree_Curator_ID_EG, 3);
end;
with PopupColumnsList.Add(Tree_Curator_FIO) do
begin
SelfKeyColumn := Tree_Curator_ID_E;
PopupKeyColumn := Current_Form_SE.cxGrid_FIO_ID_E;
PopupNameColumn := Current_Form_SE.cxGrid_FIO_Full;
end;
Key_Columns.Add(Tree_Curator_ID_E, 2);
Key_Columns.Add(Tree_Curator_ID_EG, 3);
Key_Columns.Add(Tree_Curator_Start, 1);
ActionInsert.OnExecute := Action_New_Curator.OnExecute;
TcxPopupEditProperties(Tree_Curator_FIO.Properties).PopupControl :=
Current_Form_SE;
PopupEdit_New_Curator_FIO.Properties.PopupControl := Current_Form_SE;
cW_New_Curator := TContainerWrappers.Create;
cW_New_Curator.AddCustomEdit(DateEdit_New_Curator, True, False, '');
cW_New_Curator.AddPopupEdit(PopupEdit_New_Curator_FIO, True, False,
Current_Form_SE.cxGrid1, Current_Form_SE.cxGrid_FIO,
Current_Form_SE.cxGrid_FIO_ID_E, [Current_Form_SE.cxGrid_FIO_Full], '');
cW_New_Curator.ActionEnter := Action_Insert_Curator;
end;
// -----------------------------------------------------------
// ------------------------------------------------------------
// ---------------------------------------------
// добавление специальностей комплекса
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_com_spec) = nil then
with TSqlData_cxGridTableView.Create(tv_com_spec) do
begin
Editing := False;
Single := False;
Table_Name := 'Методический комплекс';
GUID_Select := Met_Complex;
StepOnTopDataRecordMode := True;
ParametersCount := 1;
RequiredParemeters.Add(1);
Stat_Column := tv_com_spec_institute;
NameColumnForPopupEdit := tv_com_spec_institute;
with Select_Columns do
begin
Add(tv_com_spec_name_spec);
Add(tv_com_spec_institute);
Add(tv_com_spec_name_div);
Add(tv_com_spec_kind_training);
Add(tv_com_spec_status_text);
Add(tv_com_spec_hours);
Add(tv_com_spec_id_spec_div);
Add(tv_com_spec_id_spec);
Add(tv_com_spec_id_institute);
Add(tv_com_spec_id_d_spec_div);
Add(tv_com_spec_idk_training);
Add(tv_com_spec_status_order);
Add(tv_com_spec_id_p_dp);
Add(tv_com_spec_id_order);
Add(tv_com_spec_idk_order);
Add(tv_com_spec_id_met_complex);
//Add(tv_com_spec_id_e_l_umk);
Add(tv_com_spec_sam);
end;
PopupActions.Add(ActionUpdate);
end;
// Рамочные договора
with TSqlData_cxGridTableView.Create(TTree_Main_Contracts) do
begin
Editing := False;
Table_Name := TTree_Main_Contracts.Bands.Items[0].Caption;
GUID_Select := Get_List_Main_Contracts;
StepOnTopDataRecordMode := True;
ParametersCount := 1;
RequiredParemeters.Add(1);
with Select_Columns do
begin
Add(Tree_Main_Contracts_Contract);
Add(Tree_Main_Contracts_Org_Name);
Add(Tree_Main_Contracts_Number);
Add(Tree_Main_Contracts_ID_Contract);
end;
Key_Columns.Add(Tree_Main_Contracts_ID_Contract);
PopupActions.Add(ActionUpdate);
Stat_Column := Tree_Main_Contracts_Contract;
NameColumnForPopupEdit := Tree_Main_Contracts_Contract;
end;
// Виды сертификатов
with TSqlData_cxGridTableView.Create(TTree_Kind_Doc_Cert) do
begin
Editing := False;
Table_Name := TTree_Kind_Doc_Cert.Bands.Items[0].Caption;
GUID_Select := Get_Kind_Documents;
StepOnTopDataRecordMode := True;
with Select_Columns do
begin
Add(Tree_Kind_Doc_Cert_Name);
Add(Tree_Kind_Doc_Cert_ID);
end;
Key_Columns.Add(Tree_Kind_Doc_Cert_ID);
PopupActions.Add(ActionUpdate);
Stat_Column := Tree_Kind_Doc_Cert_Name;
NameColumnForPopupEdit := Tree_Kind_Doc_Cert_Name;
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление участников
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_listeners) = nil then
with TSqlData_cxGridTableView.Create(tv_listeners) do
begin
Editing := True;
Single := False;
Table_Name := 'Участники';
GUID_Select := Listeners;
GUID_Update := d_P_STUDENTS;
StepOnTopDataRecordMode := True;
OnAfter_Read := After_Read_tv_listeners;
Params := CreateVarAr(['']);
Stat_Column := tv_listeners_fio;
NameColumnForPopupEdit := tv_listeners_fio;
StepOnTopDataRecordMode := True;
with Select_Columns do
begin
Add(tv_listeners_fio, 1);
Add(tv_listeners_ed_group, 7);
Add(tv_listeners_d_start, 4);
Add(tv_listeners_d_end);
Add(tv_listeners_d_end_plan);
Add(tv_listeners_kind_basis_action, 8);
Add(tv_listeners_status_text_order_start, 3);
Add(tv_listeners_status_text_order_end);
Add(tv_listeners_status_text_contract);
Add(tv_listeners_org);
Add(tv_listeners_money);
Add(tv_listeners_certificate, 4);
Add(tv_listeners_hours, 20);
Add(tv_listeners_hours_plan);
Add(tv_listeners_last_date);
Add(tv_listeners_id_student, 0);
Add(tv_listeners_id_e, 1);
Add(tv_listeners_id_ed_group, 7);
Add(tv_listeners_idkba_transfer, 8);
Add(tv_listeners_id_paragraph_start, 3);
Add(tv_listeners_id_order_start, 3);
Add(tv_listeners_idk_order_start, 3);
Add(tv_listeners_id_contract);
Add(tv_listeners_status_order_start, 3);
Add(tv_listeners_id_paragraph_contract, 10);
Add(tv_listeners_id_erp_user);
Add(tv_listeners_id_contractor);
Add(tv_listeners_Main_Contract);
Add(tv_listeners_ID_Contract_Main);
Add(tv_listeners_Org_Contract_Main);
Add(tv_listeners_NDS);
Add(tv_listeners_ID_Paragraph_End);
Add(tv_listeners_ID_ERP_End);
Add(tv_listeners_ID_Status_End);
Add(tv_listeners_ID_Certificate, 0);
Add(tv_listeners_ID_Doc_Cert, 0);
Add(tv_listeners_Kind_Cert, 1);
Add(tv_listeners_ID_Kind_Cert, 1);
Add(tv_listeners_Cert_Date, 2);
Add(tv_listeners_Reg_Number, 0);
Add(tv_listeners_ID_Reg, 5);
Cont_New_Nach_All := TContainerWrappers.Create;
Cont_New_Nach_All.AddButtonOrderEdit(ButtonEdit_Create_Nach_All, True, False, ''
, ['436, 444']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
Cont_New_Nach_All.AddCustomEdit(DateEdit_Create_Nach_All, True, False, '');
Cont_New_Nach_All.ActionEnter := Action_Go_Nach_All;
end;
Key_Columns.Add(tv_listeners_id_student, 0);
with IndividualEditInfoList.Add do
begin
GUID_Update_Exchange := Update_FIO;
EditColumns.Add(tv_listeners_fio, 1);
end;
with IndividualEditInfoList.Add do
begin
GUID_Update_Exchange := Update_Ed_Group;
EditColumns.Add(tv_listeners_ed_group, 7);
EditColumns.Add(tv_listeners_d_start, 4);
end;
with IndividualEditInfoList.Add do
begin
GUID_Update_Exchange := Update_End_Date;
EditColumns.Add(tv_listeners_d_end);
end;
with IndividualEditInfoList.Add do
begin
GUID_Update := d_P_CERTIFICATE;
EditColumns.Add(tv_listeners_hours, 20);
KeyColumns.Add(tv_listeners_ID_Certificate, 0);
end;
with IndividualEditInfoList.Add do
begin
GUID_Update := d_P_MAGAZINE_REGISTR_DIPLOMAS;
EditColumns.Add(tv_listeners_Reg_Number, 0);
KeyColumns.Add(tv_listeners_ID_Reg, 5);
end;
with IndividualEditInfoList.Add do
begin
GUID_Update := d_P_DOCUMENTS;
EditColumns.Add(tv_listeners_Kind_Cert, 1);
EditColumns.Add(tv_listeners_Cert_Date, 2);
EditColumns.Add(tv_listeners_certificate, 4);
KeyColumns.Add(tv_listeners_ID_Doc_Cert, 0);
end;
OnBefore_Update_Exchange := Before_Update_Exchange_tv_listeners;
with Insert_Columns do
begin
Add(tv_listeners_id_e, 1);
Add(tv_listeners_id_ed_group, 7);
Add(tv_listeners_idkba_transfer, 8);
Add(tv_listeners_id_paragraph_start, 3);
Add(tv_listeners_d_start, 4);
Add(tv_listeners_id_paragraph_contract, 10);
end;
TcxPopupEditProperties(tv_listeners_fio.Properties).PopupControl :=
Current_Form_SE;
cxPopupEdit_New_Listener_FIO.Properties.PopupControl := Current_Form_SE;
cxPopupEdit_New_Listener_Contract_Organization.Properties.PopupControl :=
Current_Form_Find_Org;
// TcxPopupEditProperties(tv_listeners_org.Properties).PopupControl := Current_Form_Find_Org;
cxPopupEdit_PC_Org.Properties.PopupControl := Current_Form_Find_Org;
with PopupColumnsList.Add(tv_listeners_fio) do
begin
SelfKeyColumn := tv_listeners_id_e;
PopupKeyColumn := Current_Form_SE.cxGrid_FIO_ID_E;
PopupNameColumn := Current_Form_SE.cxGrid_FIO_Full;
end;
with PopupColumnsList.Add(tv_listeners_ed_group) do
begin
SelfKeyColumn := tv_listeners_id_ed_group;
PopupKeyColumn := tv_r_c_groups_id_ed_group;
PopupNameColumn := tv_r_c_groups_name;
end;
with PopupColumnsList.Add(tv_listeners_d_start) do
begin
SelfKeyColumn := tv_listeners_id_ed_group;
PopupKeyColumn := tv_r_c_groups_id_ed_group;
PopupNameColumn := tv_r_c_groups_d_start;
end;
with PopupColumnsList.Add(tv_listeners_kind_basis_action) do
begin
SelfKeyColumn := tv_listeners_idkba_transfer;
PopupKeyColumn := tv_kba_start_id;
PopupNameColumn := tv_kba_start_name;
end;
with PopupColumnsList.Add(tv_listeners_Kind_Cert) do
begin
SelfKeyColumn := tv_listeners_ID_Kind_Cert;
PopupKeyColumn := Tree_Kind_Doc_Cert_ID;
PopupNameColumn := Tree_Kind_Doc_Cert_Name;
end;
OptionsOrder.Column_Status_Text := tv_listeners_status_text_order_start;
OptionsOrder.Column_ID_order := tv_listeners_id_order_start;
OptionsOrder.Column_ID_paragraph := tv_listeners_id_paragraph_start;
OptionsOrder.Column_IDk_order := tv_listeners_idk_order_start;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_Insert_tv_listeners.OnExecute;
ActionDelete.OnExecute := Delete_tv_listeners.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(Action_Import);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(Action_Add_Contract);
PopupActions.Add(Action_Main_Contract);
PopupActions.Add(Action_New_Money);
PopupActions.Add(Action_Create_Nach_All);
PopupActions.Add(Action_Delete_Nach);
PopupActions.Add(Action_Delete_Contract);
PopupActions.Add(nil);
PopupActions.Add(Action_End_Education);
PopupActions.Add(Action_Delete_Order_End);
PopupActions.Add(nil);
PopupActions.Add(Action_Make_Certificate);
PopupActions.Add(Action_View_Certificate);
PopupActions.Add(Action_Delete_Certificate);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
LogicMode := lmLastChoice;
OnChoiceGridRecord := OnChoiceGridRecord_tv_listeners;
cW_Set_Main_Contract := TContainerWrappers.Create;
cW_Set_Main_Contract.AddCustomEdit(DateEdit_Set_Main_Contract_Find, True,
False, '');
cW_Set_Main_Contract.AddPopupEdit(PopupEdit_Set_Main_Contract, True,
False, cxGrid_Main_Contracts, TTree_Main_Contracts,
Tree_Main_Contracts_ID_Contract, [Tree_Main_Contracts_Contract], '');
cW_Set_Main_Contract.ActionEnter := Action_Go_Set_Main_Contract;
Cont_Make_Cert := TContainerWrappers.Create;
Cont_Make_Cert.AddButtonOrderEdit(ButtonEdit_New_Cert, True, False, ''
, ['225']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
Cont_Make_Cert.AddPopupEdit(PopupEdit_New_Cert_Kind_Doc, True, False
, nil, nil, Tree_Kind_Doc_Cert_ID, [Tree_Kind_Doc_Cert_Name]);
Cont_Make_Cert.AddCustomEdit(SpinEdit_New_Cert_Reg, True, False);
Cont_Make_Cert.AddCustomEdit(SpinEdit_New_Cert_Number, True, False);
Cont_Make_Cert.AddCustomEdit(SpinEdit_New_Cert_Hours, True, False);
Cont_Make_Cert.ActionEnter := Action_Go_New_Cert;
cw_New_Money := TContainerWrappers.Create;
cw_New_Money.AddCustomEdit(CurrencyEdit_New_Money, True, False);
cw_New_Money.ActionEnter := Action_Go_New_Money;
end;
// ---------------------------------------------
// ---------------------------------------------
// Основание зачисления
with TSqlData_cxGridTableView.Create(tv_kba_start) do
begin
Editing := False;
Table_Name := 'Основания зачисления';
GUID_Select := Kind_Basis_Action;
Single := False;
StepOnTopDataRecordMode := True;
with Select_Columns do
begin
Add(tv_kba_start_name);
Add(tv_kba_start_id);
end;
Key_Columns.Add(tv_kba_start_id);
PopupActions.Add(ActionUpdate);
Stat_Column := tv_kba_start_name;
NameColumnForPopupEdit := tv_kba_start_name;
end;
// -----------------------------------------------------------
// ---------------------------------------------
// Основание окончания
with TSqlData_cxGridTableView.Create(tv_kba_end) do
begin
Editing := False;
Table_Name := 'Основания окончания';
GUID_Select := End_Education_KBA;
Params := CreateVarAr(['']);
Single := False;
StepOnTopDataRecordMode := True;
Stat_Column := tv_kba_end_name;
NameColumnForPopupEdit := tv_kba_end_name;
with Select_Columns do
begin
Add(tv_kba_end_name);
Add(tv_kba_end_id);
end;
Key_Columns.Add(tv_kba_end_id);
PopupActions.Add(ActionUpdate);
end;
// -----------------------------------------------------------
// -----------------------------------------------------------
// ---------------------------------------------
// Должности
with TSqlData_cxGridTableView.Create(tv_posts) do
begin
Editing := False;
Table_Name := 'Должности';
GUID_Select := Posts;
Single := False;
StepOnTopDataRecordMode := True;
Stat_Column := tv_posts_name;
NameColumnForPopupEdit := tv_posts_name;
with Select_Columns do
begin
Add(tv_posts_name);
Add(tv_posts_id);
end;
Key_Columns.Add(tv_posts_id);
PopupActions.Add(ActionUpdate);
end;
// -----------------------------------------------------------
// ---------------------------------------------
// Вид договора
with TSqlData_cxGridTableView.Create(tv_kind_order) do
begin
Editing := False;
Table_Name := 'Виды договоров';
GUID_Select := kind_order;
Single := False;
StepOnTopDataRecordMode := True;
Stat_Column := tv_kind_order_name;
NameColumnForPopupEdit := tv_kind_order_name;
with Select_Columns do
begin
Add(tv_kind_order_name);
Add(tv_kind_order_id);
end;
Key_Columns.Add(tv_kind_order_id);
PopupActions.Add(ActionUpdate);
end;
// -----------------------------------------------------------
// ---------------------------------------------
// Вид направления
with TSqlData_cxGridTableView.Create(tv_kind_direction) do
begin
Editing := False;
Table_Name := 'Виды направлений';
GUID_Select := Kind_Direction;
Single := False;
StepOnTopDataRecordMode := True;
Stat_Column := tv_kind_direction_name;
NameColumnForPopupEdit := tv_kind_direction_name;
with Select_Columns do
begin
Add(tv_kind_direction_name);
Add(tv_kind_direction_id);
end;
Key_Columns.Add(tv_kind_direction_id);
PopupActions.Add(ActionUpdate);
end;
// -----------------------------------------------------------
// ---------------------------------------------
// Ссылка на договор
with TSqlData_cxGridTableView.Create(tv_contracts) do
begin
Editing := False;
Table_Name := 'Ссылки на договоры';
GUID_Select := Contracts;
Single := False;
StepOnTopDataRecordMode := True;
Params := CreateVarAr(['', '']);
Stat_Column := tv_contracts_contract;
NameColumnForPopupEdit := tv_contracts_contract;
with Select_Columns do
begin
Add(tv_contracts_contract);
Add(tv_contracts_kind_order);
Add(tv_contracts_d_start);
Add(tv_contracts_d_end);
Add(tv_contracts_id_contract);
Add(tv_contracts_id_paragraph);
Add(tv_contracts_id_order);
Add(tv_contracts_idk_order);
Add(tv_contracts_status_order);
end;
Key_Columns.Add(tv_contracts_id_contract);
PopupActions.Add(ActionUpdate);
end;
// -----------------------------------------------------------
// -----------------------------------------
// Источник финансирования
if Get_SqlData_cxGrid(tv_Source_Financing) = nil then
with TSqlData_cxGridTableView.Create(tv_Source_Financing) do
begin
Table_Name := 'Источники финансирования';
GUID_Select := S_F;
StepOnTopDataRecordMode := True;
ParametersCount := 1;
Editing := False;
Select_Columns.Add(tv_Source_Financing_Abbreviation);
Select_Columns.Add(tv_Source_Financing_Name);
Select_Columns.Add(tv_Source_Financing_Abbr_Div);
Select_Columns.Add(tv_Source_Financing_Division);
Select_Columns.Add(tv_Source_Financing_Kind_Source);
Select_Columns.Add(tv_Source_Financing_Activity);
Select_Columns.Add(tv_Source_Financing_Date_Close);
Select_Columns.Add(tv_Source_Financing_ID);
Select_Columns.Add(tv_Source_Financing_ID_D);
Select_Columns.Add(tv_Source_Financing_ID_Kind_Source);
Select_Columns.Add(tv_Source_Financing_ID_Activity);
Key_Columns.Add(tv_Source_Financing_ID);
PopupActions.Add(ActionUpdate);
Stat_Column := tv_Source_Financing_Abbreviation;
NameColumnForPopupEdit := tv_Source_Financing_Name;
end;
// ------------------------------------------------------------
// ---------------------------------------------
// добавление приказов человека
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_orders) = nil then
with TSqlData_cxGridTableView.Create(tv_orders) do
begin
Editing := False;
Single := False;
Table_Name := 'Приказы человека';
GUID_Select := Orders;
StepOnTopDataRecordMode := True;
Params := CreateVarAr(['']);
Stat_Column := tv_orders_kind_paragraph;
NameColumnForPopupEdit := tv_orders_kind_paragraph;
with Select_Columns do
begin
Add(tv_orders_kind_paragraph);
Add(tv_orders_status_text);
Add(tv_orders_ed_group);
Add(tv_orders_spec);
Add(tv_orders_d_start);
Add(tv_orders_kind_training);
Add(tv_orders_institute);
Add(tv_orders_status_order_contract);
Add(tv_orders_kind_paragraph_contract);
Add(tv_orders_d_creation);
Add(tv_orders_d_modification);
Add(tv_orders_id_order);
Add(tv_orders_id_paragraph);
Add(tv_orders_idk_order);
Add(tv_orders_status_order);
end;
Key_Columns.Add(tv_orders_id_order);
OptionsOrder.Column_Status_Text := tv_orders_status_text;
OptionsOrder.Column_ID_order := tv_orders_id_order;
OptionsOrder.Column_ID_paragraph := tv_orders_id_paragraph;
OptionsOrder.Column_IDk_order := tv_orders_idk_order;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_Insert_tv_r_c_group.OnExecute;
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
end;
// ------------------------------------------------------------
// ---------------------------------------------
// начисления
// ---------------------------------------------
if Get_SqlData_cxGrid(TTree_Nach) = nil then
with TSqlData_cxGridTableView.Create(TTree_Nach) do
begin
Table_Name := TTree_Nach.Bands.Items[0].Caption;
GUID_Select := Get_Nach_By_ID_Dog;
GUID_Update := d_P_ACCOUNTS_CONTRACT;
StepOnTopDataRecordMode := True;
ParametersCount := 1;
RequiredParemeters.Add(1);
Stat_Column := Tree_Nach_Document;
with Select_Columns do
begin
Add(Tree_Nach_D_Start);
Add(Tree_Nach_D_End);
Add(Tree_Nach_Kind_Order);
Add(Tree_Nach_Document);
Add(Tree_Nach_Sum);
Add(Tree_Nach_User);
Add(Tree_Nach_Status);
Add(Tree_Nach_ID_Stage);
Add(Tree_Nach_ID_Account_Contract);
Add(Tree_Nach_ID_Basis_Salary);
Add(Tree_Nach_ID_SF);
Add(Tree_Nach_IDK_Order);
Add(Tree_Nach_ID_Paragraph);
Add(Tree_Nach_ID_Order);
Add(Tree_Nach_ID_ERP);
end;
Key_Columns.Add(Tree_Nach_ID_Basis_Salary, 3);
Key_Columns.Add(Tree_Nach_ID_Paragraph, 0);
//Key_Columns.Add(Tree_Nach_D_Start);
OnAfter_Delete := After_Delete;
OptionsOrder.Column_Status_Text := Tree_Nach_Document;
OptionsOrder.Column_ID_order := Tree_Nach_ID_Order;
OptionsOrder.Column_ID_paragraph := Tree_Nach_ID_Paragraph;
OptionsOrder.Column_IDk_order := Tree_Nach_IDK_Order;
OptionsOrder.Column_ID_erp_user := Tree_Nach_ID_ERP;
ActionInsert.OnExecute := Action_Create_Nach.OnExecute;
PopupActions.Add(ActionInsert);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
Cont_New_Nach := TContainerWrappers.Create;
Cont_New_Nach.AddButtonOrderEdit(ButtonEdit_New_Nach, True, False, ''
, ['436, 444']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
Cont_New_Nach.AddCustomEdit(DateEdit_New_Nach, True, False, '');
Cont_New_Nach.ActionEnter := Action_Go_New_Nach;
end;
// ---------------------------------------------
// ---------------------------------------------
// добавление планов ПК
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_plan) = nil then
with TSqlData_cxGridTableView.Create(tv_plan) do
begin
Editing := False;
Single := False;
Table_Name := 'Планы ПК';
GUID_Select := Plan_Paragraphs;
StepOnTopDataRecordMode := True;
Params := CreateVarAr(['-1']);
Stat_Column := tv_plan_note;
NameColumnForPopupEdit := tv_plan_note;
with Select_Columns do
begin
Add(tv_plan_note);
Add(tv_plan_summary);
Add(tv_plan_status_text);
Add(tv_plan_hisdate);
Add(tv_plan_d_creation);
Add(tv_plan_d_modification);
Add(tv_plan_id_paragraph);
Add(tv_plan_id_order);
Add(tv_plan_idk_order);
Add(tv_plan_status_order);
Add(tv_plan_id_erp_user);
end;
Key_Columns.Add(tv_plan_id_paragraph);
OptionsOrder.Column_Status_Text := tv_plan_status_text;
OptionsOrder.Column_ID_order := tv_plan_id_order;
OptionsOrder.Column_ID_paragraph := tv_plan_id_paragraph;
OptionsOrder.Column_IDk_order := tv_plan_idk_order;
OptionsOrder.Column_Status_Order := tv_plan_status_order;
OptionsOrder.Column_ID_erp_user := tv_plan_id_erp_user;
OptionsOrder.Column_hisdate := tv_plan_hisdate;
OptionsOrder.Column_summary := tv_plan_summary;
OptionsOrder.Column_note := tv_plan_note;
OptionsOrder.Column_d_creation := tv_plan_d_creation;
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
end;
// Программы обучения в испорте
with TSqlData_cxGridTableView.Create(tv_Spec) do
begin
Editing := False;
Table_Name := tv_Spec.Bands.Items[0].Caption;
GUID_Select := Get_List_Spec_By_Params;
StepOnTopDataRecordMode := True;
ParametersCount := 2;
Parameters[1] := IDK_Level_Spec;
with Select_Columns do
begin
Add(tv_Spec_Name, 2);
Add(tv_Spec_Q, 1);
Add(tv_Spec_ID, 0);
Add(tv_Spec_IDK_Level_Spec, 6);
Add(tv_Spec_id_discipline);
Add(tv_Spec_idk_discipline);
end;
Key_Columns.Add(tv_Spec_ID, 0);
Stat_Column := tv_Spec_Name;
NameColumnsForPopupEdit.Add(tv_Spec_Name);
cW_New_Spec := TContainerWrappers.Create;
cW_New_Spec.AddCustomEdit(cxTextEditNew_Spec_Name, True, False, '');
cW_New_Spec.AddCustomEdit(cxTextEditNew_Spec_Quality, False, False, '');
end;
// Вид обучения
with TSqlData_cxGridTableView.Create(tv_Kind_Training) do
begin
Editing := False;
Table_Name := 'Виды обучения';
GUID_Select := Kind_Training;
StepOnTopDataRecordMode := True;
Single := False;
with Select_Columns do
begin
Add(tv_Kind_Training_IDK_TRAINING);
Add(tv_Kind_Training_Name);
end;
Key_Columns.Add(tv_Kind_Training_IDK_TRAINING);
Stat_Column := tv_Kind_Training_Name;
NameColumnForPopupEdit := tv_Kind_Training_Name;
end;
// ---------------------------------------------
// добавление подразделение-организаторов обучения
// ---------------------------------------------
if Get_SqlData_cxGrid(tv_Org_Division) = nil then
with TSqlData_cxGridTableView.Create(tv_Org_Division) do
begin
Table_Name := 'Организаторы обучения';
Editing := False;
GUID_Select := Get_List_Divisions;
StepOnTopDataRecordMode := True;
Params := CreateVarAr([IDK_Level_Spec]);
Select_Columns.Add(tv_Org_Division_Abbr);
Select_Columns.Add(tv_Org_Division_Name);
Select_Columns.Add(tv_Org_Division_ID);
Key_Columns.Add(tv_Org_Division_ID);
Stat_Column := tv_Org_Division_Abbr;
NameColumnsForPopupEdit.Add(tv_Org_Division_Abbr);
NameColumnsForPopupEdit.Add(tv_Org_Division_Name);
cW_New_Spec_Div := TContainerWrappers.Create;
cW_New_Spec_Div.AddCustomEdit(DateEditNew_Spec_Div_D_Start, True, False, '');
cW_New_Spec_Div.AddPopupEdit(PopupEditNew_Spec_Div_Spec, True, False,
cxGrid_Spec, tv_Spec, tv_Spec_ID, [tv_Spec_Name], '');
cW_New_Spec_Div.AddPopupEdit(PopupEditNew_Spec_Div_KT, True, False,
cxGrid_Kind_Training, tv_Kind_Training, tv_Kind_Training_IDK_TRAINING,
[tv_Kind_Training_Name], '');
cW_New_Spec_Div.AddPopupEdit(PopupEditNew_Spec_Div_SF, True, False,
cxGrid_Source_Financing, tv_Source_Financing, tv_Source_Financing_ID,
[tv_Source_Financing_Name], '');
cW_New_Spec_Div.AddPopupEdit(PopupEditNew_Spec_Div_Institute, True, False,
cxGrid_Org_Division, tv_Org_Division, tv_Org_Division_ID,
[tv_Org_Division_Abbr, tv_Org_Division_Name], '');
cW_New_Spec_Div.AddPopupEdit(PopupEditNew_Spec_Div_Div, True, False,
cxGrid_Org_Division, tv_Org_Division, tv_Org_Division_ID,
[tv_Org_Division_Abbr, tv_Org_Division_Name], '');
cW_New_Spec_Div.MakeSynchronize_Similar([PopupEditNew_Spec_Div_Institute,
PopupEditNew_Spec_Div_Institute], False);
cW_New_Spec_Div.OnChangeWrapper := DoChanged_cW_Spec_Div;
end;
// ---------------------------------------------
// добавление подразделение-организаторов обучения
// ---------------------------------------------
if Get_SqlData_cxGrid(TTree_Stat) = nil then
with TSqlData_cxGridTableView.Create(TTree_Stat) do
begin
Table_Name := TTree_Stat.Bands.Items[0].Caption;
Editing := False;
GUID_Select := Get_Stat_Data_By_Period;
StepOnTopDataRecordMode := True;
ParametersCount := 2;
Select_Columns.Add(Tree_Stat_Inst);
Select_Columns.Add(Tree_Stat_Spec_Name);
Select_Columns.Add(Tree_Stat_FIO);
Select_Columns.Add(Tree_Stat_EG);
Select_Columns.Add(Tree_Stat_D_Start);
Select_Columns.Add(Tree_Stat_D_End);
Select_Columns.Add(Tree_Stat_Order_Start);
Select_Columns.Add(Tree_Stat_Order_End);
Select_Columns.Add(Tree_Stat_Contract);
Select_Columns.Add(Tree_Stat_Org);
Select_Columns.Add(Tree_Stat_Money);
Select_Columns.Add(Tree_Stat_Money_NDS);
Select_Columns.Add(Tree_Stat_Cert);
Select_Columns.Add(Tree_Stat_Hours_Fact);
Select_Columns.Add(Tree_Stat_Hours_Plan);
Select_Columns.Add(Tree_Stat_Last_Date);
Select_Columns.Add(Tree_Stat_Contract_Main);
Select_Columns.Add(Tree_Stat_Org_Main);
Select_Columns.Add(Tree_Stat_ID_E);
Select_Columns.Add(Tree_Stat_ID_C);
Select_Columns.Add(Tree_Stat_ID_Student);
Select_Columns.Add(Tree_Stat_ID_EG);
Key_Columns.Add(Tree_Stat_ID_E);
Key_Columns.Add(Tree_Stat_ID_Student);
Stat_Column := Tree_Stat_FIO;
ActionUpdate.OnExecute := Action_Read_Stat.OnExecute;
Cont_Stat := TContainerWrappers.Create;
Cont_Stat.AddCustomEdit(DateEdit_Stat_Begin, False, False);
Cont_Stat.AddCustomEdit(DateEdit_Stat_End, False, False);
end;
if Get_SqlData_cxGrid(TTree_MC) = nil then
with TSqlData_cxGridTableView.Create(TTree_MC) do
begin
Single := False;
Table_Name := TTree_MC.Bands.Items[0].Caption;
Row_Name := 'рамочный договор';
GUID_Select := Get_List_MC;
GUID_Update := d_P_CONTRACTS;
GUID_Delete := GUID_Delete_Main_Contract;
OnBefore_Delete_Exchange := Delete_Main_Contract;
StepOnTopDataRecordMode := True;
ParametersCount := 3;
Stat_Column := Tree_MC_Org;
with Select_Columns do
begin
Add(Tree_MC_Org, 2);
Add(Tree_MC_Kind);
Add(Tree_MC_Hisdate);
Add(Tree_MC_Start, 3);
Add(Tree_MC_End, 4);
Add(Tree_MC_Count);
Add(Tree_MC_Order);
Add(Tree_MC_Number);
Add(Tree_MC_Old_Number);
Add(Tree_MC_User);
Add(Tree_MC_ID_Contract, 0);
Add(Tree_MC_ID_CA, 2);
Add(Tree_MC_ID_MT);
Add(Tree_MC_ID_MO);
Add(Tree_MC_ID_Paragraph);
Add(Tree_MC_ID_Order);
Add(Tree_MC_IDK_Order);
Add(Tree_MC_ID_ERP);
Add(Tree_MC_ID_Status);
end;
Key_Columns.Add(Tree_MC_ID_Contract, 0);
OptionsOrder.Column_Status_Text := Tree_MC_Order;
OptionsOrder.Column_identifier := Tree_MC_Number;
OptionsOrder.Column_ID_order := Tree_MC_ID_Order;
OptionsOrder.Column_ID_paragraph := Tree_MC_ID_Paragraph;
OptionsOrder.Column_IDk_order := Tree_MC_IDK_Order;
OptionsOrder.Column_ID_erp_user := Tree_MC_ID_ERP;
OptionsOrder.Column_User_Name := Tree_MC_User;
ActionInsert.Visible := True;
ActionInsert.OnExecute := Action_New_MC.OnExecute;
PopupActions.Add(Action_New_MC);
PopupActions.Add(ActionDelete);
PopupActions.Add(nil);
PopupActions.Add(OptionsOrder.ActionPreview);
PopupActions.Add(OptionsOrder.ActionNavigate);
PopupActions.Add(nil);
PopupActions.Add(ActionUpdate);
{cxPopupEdit_New_Listener_Contract_Organization.Properties.PopupControl :=
Current_Form_Find_Org;}
TcxPopupEditProperties(Tree_MC_Org.Properties).PopupControl := Current_Form_Find_Org;
with PopupColumnsList.Add(Tree_MC_Org) do
begin
SelfKeyColumn := Tree_MC_ID_CA;
PopupKeyColumn := Current_Form_Find_Org.Tree_Org_ID_CA;
PopupNameColumn := Current_Form_Find_Org.Tree_Org_Name;
end;
PopupEdit_Filter_Org.Properties.PopupControl := Current_Form_Find_Org;
cw_Filter_Contracts_Main := TContainerWrappers.Create;
cw_Filter_Contracts_Main.AddCustomEdit(DateEdit_Filter_Start, False, False);
cw_Filter_Contracts_Main.AddCustomEdit(DateEdit_Filter_End, False, False);
cw_Filter_Contracts_Main.AddPopupEdit(PopupEdit_Filter_Org
, False, False, Current_Form_Find_Org.cxGrid_Org
, Current_Form_Find_Org.TTree_Org, Current_Form_Find_Org.Tree_Org_ID_CA
, [Current_Form_Find_Org.Tree_Org_Name], '');
if PageControl_Main.ActivePageIndex = 3
then Filter_MC_Changed(DateEdit_Filter_Start);
end;
// ---------------------------------------------
DateEdit_New_Contract_Main_Start.Date := Date;
DateEdit_New_Contract_Main_End.Date := Date;
if cw_New_Contract_Main = nil
then
begin
PopupEdit_New_Contract_Main.Properties.PopupControl := Current_Form_Find_Org;
cw_New_Contract_Main := TContainerWrappers.Create;
cw_New_Contract_Main.AddPopupEdit(PopupEdit_New_Contract_Main
, True, False
, Current_Form_Find_Org.cxGrid_Org
, Current_Form_Find_Org.TTree_Org
, Current_Form_Find_Org.Tree_Org_ID_CA
, [Current_Form_Find_Org.Tree_Org_Name], '');
cw_New_Contract_Main.AddButtonOrderEdit(ButtonEdit_New_Contract_Main
, True, False, '', ['24790']
, [OBE_CHOOSE, OBE_NEW, OBE_INNAVIGATE, OBE_PREVIEW]
, [nil, nil, nil, nil]);
cw_New_Contract_Main.AddCustomEdit(TextEdit_New_Contract_Main, False, False, '');
cw_New_Contract_Main.AddCustomEdit(DateEdit_New_Contract_Main_Start, True, False, '');
cw_New_Contract_Main.AddCustomEdit(DateEdit_New_Contract_Main_End, False, False, '');
cw_New_Contract_Main.ActionEnter := Action_Insert_Contract_Main;
end;
{ Скрываем ненужные страницы }
cxTabSheet_Editing.TabVisible := False;
cxTabSheet_Add.TabVisible := False;
{ Прочитаем параметры из реестра }
Save_Restore_Params(Curr_Reg_Path, True);
// *****************************************************************************
// *****************************************************************************
cW_Plan_Filters := TContainerWrappers.Create;
cW_Plan_Filters.AddCustomEdit(cxSpinEdit_Plan_Filters_Year, False, False, '');
cW_Plan_Filters.AddPopupEdit(cxPopupEdit_Plan_Filters_Plan, False, False,
cxGrid_Plan, tv_plan, tv_plan_id_paragraph, [tv_plan_note], '');
cW_Plan_Filters.AddCustomEdit(cxTextEdit_Plan_Filters_Summary, False, True,
'');
cW_Plan_Filters.AddCustomEdit(cxTextEdit_Plan_Filters_Note, False, True, '');
cW_Plan_Filters.ActionApply := Plan_Apply;
cW_Plan_Filters.ActionRefuse := Plan_Refuse;
cW_Plan_Filters.OnChangeWrapper := DoChanged_cW_Plan_Filters;
{ Устанавливаем значение фильтра }
cW_Plan_Filters.wrappers[cxSpinEdit_Plan_Filters_Year].Value := IntToStr
(YearOf(Date));
if cxPopupEdit_Plan_Filters_Plan.Tag <> 0
then begin
cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value :=
VarToStr(cxPopupEdit_Plan_Filters_Plan.Tag);
cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].ValueDisplay :=
VarToStr(cxPopupEdit_Plan_Filters_Plan.Text);
end;
end;
{ Добавление организатора (специальности подразделения)}
procedure TForm_Event.ButtonEdit_Import_Spec_DivClick(Sender: TObject);
var
mf: TSForm;
i: Integer;
begin
try // 1
mf := CreateSForm(self, 'fNew_Spec_Div', TabSheet_New_Spec_Div.Caption,
Add_Path + TabSheet_New_Spec_Div.Caption, Panel_New_Spec_Div, tdb_Apply);
cW_New_Spec_Div.ClearWrappers;
cW_New_Spec_Div.wrappers[ DateEditNew_Spec_Div_D_Start].Value :=
cW_Import.wrappers[DateEdit_Import_Start].Value;
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Spec].Value :=
cW_Import.wrappers[PopupEdit_Import_Spec].Value;
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Spec].ValueDisplay :=
cW_Import.wrappers[PopupEdit_Import_Spec].ValueDisplay;
// Институт
if id_d_import <> ''
then
begin
Get_SqlData_cxGrid(tv_Org_Division).Read_Data_First;
i := FindGridRecordIndex(tv_Org_Division, [tv_Org_Division_ID]
, CreateVarAr([id_d_import]));
if i >= 0
then
begin
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Institute].Value :=
VarToStr(tv_Org_Division.DataController.Values[i, tv_Org_Division_ID.Index]);
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Institute].ValueDisplay :=
VarToStr(tv_Org_Division.DataController.Values[i, tv_Org_Division_Abbr.Index]);
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Div].Value :=
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Institute].Value;
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Div].ValueDisplay :=
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Institute].ValueDisplay;
end;
if Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1] <> id_d_import
then
begin
Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1] := id_d_import;
Get_SqlData_cxGrid(tv_Source_Financing).Read_Data;
if tv_Source_Financing.DataController.RecordCount = 1
then
begin
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_SF].Value :=
VarToStr(tv_Source_Financing.DataController.Values[0, tv_Source_Financing_ID.Index]);
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_SF].ValueDisplay :=
VarToStr(tv_Source_Financing.DataController.Values[0, tv_Source_Financing_Name.Index]);
end;
end;
end;
// Кафедра
if id_d_kaf <> ''
then
begin
Get_SqlData_cxGrid(tv_Org_Division).Read_Data_First;
i := FindGridRecordIndex(tv_Org_Division, [tv_Org_Division_ID]
, CreateVarAr([id_d_kaf]));
if i >= 0
then
begin
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Div].Value :=
VarToStr(tv_Org_Division.DataController.Values[i, tv_Org_Division_ID.Index]);
cW_New_Spec_Div.wrappers[PopupEditNew_Spec_Div_Div].ValueDisplay :=
VarToStr(tv_Org_Division.DataController.Values[i, tv_Org_Division_Name.Index]);
end;
end;
mf.Position := poScreenCenter;
if mf.ShowModal = mrok then
begin // 2
if Get_SqlData_cxGrid(tv_spec_div_popup).Insert_New(
CreateVarAr([VarToStr(cW_New_Spec_Div.Wrappers[PopupEditNew_Spec_Div_Spec].Value)
, VarToStr(cW_New_Spec_Div.Wrappers[PopupEditNew_Spec_Div_Div].Value)
, VarToStr(cW_New_Spec_Div.Wrappers[PopupEditNew_Spec_Div_KT].Value)
, VarToStr(cW_New_Spec_Div.Wrappers[DateEditNew_Spec_Div_D_Start].Value)
, VarToStr(cW_New_Spec_Div.Wrappers[PopupEditNew_Spec_Div_Institute].Value)
, '70508' // уровень образования
, VarToStr(cW_New_Spec_Div.Wrappers[PopupEditNew_Spec_Div_SF].Value)]))
then
begin // 3
i := tv_spec_div_popup.DataController.Values
[tv_spec_div_popup.DataController.FocusedRecordIndex, tv_spec_div_popup_id_spec_div.Index];
Get_SqlData_cxGrid(tv_spec_div_popup).Read_Data;
i := FindGridRecordIndex(tv_spec_div_popup, [tv_spec_div_popup_id_spec_div]
, CreateVarAr([IntToStr(i)]));
if i >= 0
then
begin
cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value := VarToStr
(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_id_spec_div.Index]);
cW_Import.wrappers[PopupEdit_Import_Spec_Div].ValueDisplay := VarToStr
(tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_institute.Index])
+ ', ' + VarToStr((tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_name_div.Index]))
+ ', ' + VarToStr((tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_name_spec.Index]))
+ ', ' + VarToStr((tv_spec_div_popup.DataController.Values[i, tv_spec_div_popup_kind_training.Index]));
end;
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
SetForegroundWindow(GetParentForm(ButtonEdit_Import_Spec).Handle);
if Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1] <> ''
then
begin
Get_SqlData_cxGrid(tv_Source_Financing).Parameters[1] := '';
Get_SqlData_cxGrid(tv_Source_Financing).IsFirstRead := True;
end;
end; // 1
end;
{ Добавление УМК}
procedure TForm_Event.ButtonEdit_Import_UMKClick(Sender: TObject);
var
mf: TSForm;
i: Integer;
begin
try // 1
mf := CreateSForm(self, 'fNew_UMK', TabSheet_New_UMK.Caption,
Add_Path + TabSheet_New_UMK.Caption, Panel_New_UMK, tdb_Apply);
mf.Position := poScreenCenter;
cw_New_UMK.Wrappers[SpinEdit_New_UMK_Hours].Value := Import_Hours;
cw_New_UMK.Wrappers[SpinEdit_New_UMK_Hours_SR].Value := Import_Hours_SR;
if mf.ShowModal = mrok then
begin // 2
if MSystemServices.ExchangeData(Create_UMK_By_ID_SD
,CreateVarAr([VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)
, VarToStr(cw_New_UMK.Wrappers[SpinEdit_New_UMK_Hours].Value)
, VarToStr(cw_New_UMK.Wrappers[SpinEdit_New_UMK_Hours_SR].Value)])
, 'Не смогли добавить методический комплекс.')
then
begin // 3
FSqlData_TableView.Read_Data;
i := FindGridRecordIndex(tv_com_spec, [tv_com_spec_id_spec_div],
VarArrayOf([VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)]));
if i >= 0 then
begin
cW_Import.wrappers[PopupEdit_Import_UMK].Value := VarToStr
(tv_com_spec.DataController.Values[i, tv_com_spec_id_met_complex.Index]);
cW_Import.wrappers[PopupEdit_Import_UMK].ValueDisplay := VarToStr
(tv_com_spec.DataController.Values[i, tv_com_spec_hours.Index])
+ ', ' + VarToStr(VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_sam.Index])
+ ', ' + VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_name_spec.Index])
+ ', ' + tv_com_spec.DataController.Values[i, tv_com_spec_name_div.Index])
+ ', ' + VarToStr(tv_com_spec.DataController.Values[i, tv_com_spec_kind_training.Index])
end;
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
SetForegroundWindow(GetParentForm(ButtonEdit_Import_Spec).Handle);
end; // 1
end;
{ Выбрали журнал - узнаем рег.номер}
procedure TForm_Event.ButtonEdit_New_CertPropertiesEditValueChanged(
Sender: TObject);
var i: integer; data: olevariant;
begin
if ((Sender = ButtonEdit_New_Cert) or (Sender = PopupEdit_New_Cert_Kind_Doc))
and (Cont_Make_Cert <> nil)
and (VarToStr(Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert].Value) <> '')
then begin
data := MSystemServices.SelectData(Get_Reg_Number_By_ID_Paragraph
, CreateVarAr([VarToStr(Cont_Make_Cert.Wrappers[ButtonEdit_New_Cert].Value)
, VarToStr(Cont_Make_Cert.Wrappers[PopupEdit_New_Cert_Kind_Doc].Value)])
, i, 'Не смогли узнать регистрационный номер в журнале.');
if VarIsArray(data)
then
begin
if VarToStr(data[0][0]) = ''
then Cont_Make_Cert.Wrappers[SpinEdit_New_Cert_Reg].Value := 1
else Cont_Make_Cert.Wrappers[SpinEdit_New_Cert_Reg].Value := VarToStr(data[0][0] + 1);
if VarToStr(data[0][1]) = ''
then Cont_Make_Cert.Wrappers[SpinEdit_New_Cert_Number].Value := 1
else Cont_Make_Cert.Wrappers[SpinEdit_New_Cert_Number].Value := VarToStr(data[0][1] + 1);
end;
end;
end;
procedure TForm_Event.cxButtonEdit_PC_Create_DirectionClick(Sender: TObject);
begin
Action_Insert_New_DirectionExecute(self);
end;
procedure TForm_Event.
cxDateEdit_New_Listener_Contract_D_EndPropertiesEditValueChanged
(Sender: TObject);
begin
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_End].Value;
end;
procedure TForm_Event.
cxDateEdit_New_Listener_Contract_D_StartPropertiesEditValueChanged
(Sender: TObject);
begin
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_Start].Value;
end;
procedure TForm_Event.cxDateEdit_New_Listener_D_EndPropertiesEditValueChanged
(Sender: TObject);
begin
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_End].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value;
end;
procedure TForm_Event.cxDateEdit_New_Listener_D_StartPropertiesEditValueChanged
(Sender: TObject);
begin
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_Start].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value;
end;
procedure TForm_Event.cxPageControl_StudentPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
begin
if NewPage = cxTabSheet_Orders then
Fill_tv_ordersExecute(self);
if NewPage = cxTabSheet_Anketa then
Fill_AnketaExecute(self);
if NewPage = cxTabSheet_Contracts then
Fill_Contract_ParamsExecute(self);
if NewPage = cxTabSheet_Stages
then Get_SqlData_cxGrid(TTree_Nach).Read_Data_First;
end;
procedure TForm_Event.cxPopupEdit_KBA_EndPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_kba_endExecute(self);
end;
procedure TForm_Event.cxPopupEdit_New_DirectionPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_kind_directionExecute(self);
end;
procedure TForm_Event.
cxPopupEdit_New_Listener_Contract_Source_FinansingPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_source_finansingExecute(self);
end;
procedure TForm_Event.
cxPopupEdit_New_Listener_Ed_GroupPropertiesEditValueChanged(Sender: TObject);
begin
if VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group]
.Value) <> '' then
begin // 1
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value := VarToStr
(tv_r_c_groups.DataController.Values
[tv_r_c_groups.DataController.FocusedRecordIndex,
tv_r_c_groups_d_start.Index]);
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value := VarToStr
(tv_r_c_groups.DataController.Values
[tv_r_c_groups.DataController.FocusedRecordIndex,
tv_r_c_groups_d_end.Index]);
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_Start].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value;
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_End].Value :=
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value;
end // 1
else
begin // 2
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value := '';
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value := '';
end; // 2
end;
procedure TForm_Event.cxPopupEdit_New_Listener_Ed_GroupPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_r_c_groupsExecute(self);
end;
procedure TForm_Event.
cxPopupEdit_New_Listener_Kind_Basis_ActionPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_kba_startExecute(self);
end;
procedure TForm_Event.cxPopupEdit_New_Listener_Kind_OrderPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_kind_orderExecute(self);
end;
procedure TForm_Event.cxPopupEdit_New_Listener_OrderPropertiesEditValueChanged
(Sender: TObject);
begin
if not cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Order].IsClear then
begin // 1
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_Start].Value :=
VarToStr(tv_contracts.DataController.Values
[tv_contracts.DataController.FocusedRecordIndex,
tv_contracts_d_start.Index]);
cW_New_Listener.wrappers[cxDateEdit_New_Listener_Contract_D_End].Value :=
VarToStr(tv_contracts.DataController.Values
[tv_contracts.DataController.FocusedRecordIndex,
tv_contracts_d_end.Index]);
end; // 1
end;
procedure TForm_Event.cxPopupEdit_New_Listener_OrderPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_contractsExecute(self);
end;
procedure TForm_Event.cxPopupEdit_New_R_C_Group_Ed_GroupPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_ed_groupExecute(self);
end;
procedure TForm_Event.cxPopupEdit_New_R_C_Group_Met_ComplexPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_com_specExecute(Sender);
end;
procedure TForm_Event.cxPopupEdit_New_R_C_Plan_Spec_DivPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_spec_div_popupExecute(self);
end;
procedure TForm_Event.cxPopupEdit_PC_Kind_DirectionPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_kind_directionExecute(self);
end;
procedure TForm_Event.cxPopupEdit_PC_PostPropertiesInitPopup(Sender: TObject);
begin
Fill_tv_postsExecute(self);
end;
procedure TForm_Event.cxPopupEdit_Plan_Filters_PlanPropertiesInitPopup
(Sender: TObject);
begin
Fill_tv_planExecute(self);
end;
procedure TForm_Event.DoChanged_cW_New_R_C_Plan(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_R_C_Plan, cW_New_R_C_Plan.IsNotEmptyMandatory);
end;
procedure TForm_Event.DoChanged_cW_New_R_C_Group(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_R_C_Group,
cW_New_R_C_Group.IsNotEmptyMandatory);
end;
{ Заполнение полей ввода при импорте из файла}
procedure TForm_Event.Action_After_Show_New_AnketaExecute(Sender: TObject);
begin
with Form_Anketa_For_New do
begin
if curr_sex = '1'
then SEX.ItemIndex := 0
else SEX.ItemIndex := 1;
SURNAME.Text := curr_surname;
ENAME.Text := curr_name;
PATRONYMIC.Text := curr_patronymic;
cxTextEditPhone_.Text := curr_phone;
cxTextEditEmail_.Text := curr_email;
DATE_OF_BIRTH.Date := StrToDate(curr_birthday);
CIT_D_START.Date := StrToDate(curr_birthday);
AnyPersEditValueChanged(DATE_OF_BIRTH);
if ID_E <> ''
then Form_Anketa_For_New.ModalResult := mryes;
end;
end;
{ Выставление новых начислений}
procedure TForm_Event.Action_Create_NachExecute(Sender: TObject);
var new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, TabSheet_New_Nach.Name + '1'
, TabSheet_New_Nach.Caption
, Add_Path + TabSheet_New_Nach.Caption, Panel_New_Nach, tdb_Apply);
{ Устанавливаем значение по умолчанию }
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := Cont_New_Nach.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form)
then FreeAndNil(new_form);
end; // 1
end;
{ Выставление новых начислений по выделенным договорам}
procedure TForm_Event.Action_Create_Nach_AllExecute(Sender: TObject);
var new_form: TSForm;
begin
try // 1
new_form := CreateSForm(self, TabSheet_New_Nach.Name + '1'
, TabSheet_Create_Nach_All.Caption
, Add_Path + TabSheet_Create_Nach_All.Caption, Panel_Create_Nach_All, tdb_Apply);
{ Устанавливаем значение по умолчанию }
new_form.Position := poScreenCenter;
new_form.PanelButtons.auto_cxOkButton.Action := Cont_New_Nach_All.ActionEnter;
new_form.ShowModal;
finally // 1
if assigned(new_form)
then FreeAndNil(new_form);
end; // 1
end;
{ Выставление новых начислений по выделенным участникам }
procedure TForm_Event.Action_Go_Nach_AllExecute(Sender: TObject);
var L: TIntegerList; i: integer;
begin
with Get_SqlData_cxGrid(tv_listeners), Cont_New_Nach_All do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
for i := 0 to L.Count - 1 do
MSystemServices.ExchangeData(Create_New_Nach
, CreateVarAr([VarToStr(GridTableView.DataController.
Values[L.Items[i], tv_listeners_id_contract.Index])
, VarToStr(Wrappers[DateEdit_Create_Nach_All].Value)
, VarToStr(Wrappers[ButtonEdit_Create_Nach_All].Value)]));
MSystemServices.EndSequenceActions;
Read_Data;
HandymanFunctions.ShowVNDialog(vnd_Information, 'Результат работы', 'Начисления сформированы.');
end;
end;
procedure TForm_Event.Action_Add_ContractExecute(Sender: TObject);
const
Name = 'Участники';
var
mf: TSForm;
id_o, id_p, def_Ann, def_Basis, def_Note, def_Ass, NewContextIndex, IDk_List,
k_List_Name, ko_ID_Metaterm, kind_order, def_Ident, def_IdenDate,
ID_Period_Nubbering, id_NewSeries, NewSeries: WideString;
ks: TStringList;
ok: Boolean;
DC: TcxDataController;
FRI: Integer;
begin
ok := False;
try // 1
mf := CreateSForm(self, 'fNew_Listeners', 'Договор', Add_Path + Name,
Panel_New_Listener, tdb_Apply);
StudentElementsEnabled(False);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Contract_Source_Finansing]
.Value := VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_source.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Contract_Source_Finansing]
.ValueDisplay := VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_source.Index]);
DC := tv_listeners.DataController;
FRI := tv_listeners.DataController.FocusedRecordIndex;
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_FIO].Value := VarToStr
(DC.Values[FRI, tv_listeners_id_e.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_FIO].ValueDisplay :=
VarToStr(DC.Values[FRI, tv_listeners_fio.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group].Value :=
VarToStr(DC.Values[FRI, tv_listeners_id_ed_group.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group].ValueDisplay :=
VarToStr(DC.Values[FRI, tv_listeners_ed_group.Index]);
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value := VarToStr
(DC.Values[FRI, tv_listeners_d_start.Index]);
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value := VarToStr
(DC.Values[FRI, tv_listeners_d_end_plan.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Basis_Action]
.Value := VarToStr(DC.Values[FRI,
tv_listeners_idkba_transfer.Index]);
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Basis_Action]
.ValueDisplay := VarToStr(DC.Values[FRI,
tv_listeners_kind_basis_action.Index]);
cW_New_Listener.wrappers[cxButtonEdit_New_Listener_Order_Start].Value :=
VarToStr(DC.Values[FRI, tv_listeners_id_paragraph_start.Index]);
cW_New_Listener.wrappers[cxButtonEdit_New_Listener_Order_Start]
.ValueDisplay := VarToStr(DC.Values[FRI,
tv_listeners_status_text_order_start.Index]);
cW_New_Listener.wrappers[cxCurrencyEdit_New_Listener_Contract_Money]
.Value := VarToStr(tv_r_c_plan.DataController.GetValue
(tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_money.Index));
cW_New_Listener.wrappers[cxCurrencyEdit_New_Listener_Contract_Money]
.ValueDisplay := tv_r_c_plan.DataController.GetDisplayText
(tv_r_c_plan.DataController.FocusedRecordIndex, tv_r_c_plan_money.Index);
cW_New_Listener.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
if (VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Order]
.Value) <> '') and (cxPopupEdit_New_Listener_Order.Enabled) and
(VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Order]
.Value) = '') then
begin // 3
kind_order := VarToStr(cW_New_Listener.wrappers
[cxPopupEdit_New_Listener_Kind_Order].Value);
ks := TStringList.Create;
ks.Add(kind_order);
id_o := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm, '',
False);
if id_o = EmptyWideStr then
begin // 4
ks.Free;
exit;
end; // 4
id_p := vnListAgent.LA_CreateList(ks, def_Ann, def_Basis, def_Note,
def_Ass, NewContextIndex, IDk_List, k_List_Name, ko_ID_Metaterm,
id_o, False);
ks.Free;
if id_p = EmptyWideStr then
exit;
// отправить на подпись.
vnListAgent.LA_Send_Signature(id_o, '', datetostr(now), True);
vnListAgent.LA_SetIdentifier(id_o, def_Ident, ID_Period_Nubbering,
id_NewSeries, NewSeries, def_IdenDate, True, False,
'Регистрация договора');
ok := MSystemServices.ExchangeData(Add_Contract,
VarArrayOf([cW_New_Listener.wrappers[cxPopupEdit_New_Listener_FIO]
.Value, cW_New_Listener.wrappers[
cxPopupEdit_New_Listener_Contract_Organization].Value,
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_Start].Value,
cW_New_Listener.wrappers[cxDateEdit_New_Listener_D_End].Value,
id_p, cW_New_Listener.wrappers[
cxPopupEdit_New_Listener_Contract_Source_Finansing].Value,
VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_id_spec_div.Index]),
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Ed_Group].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Basis_Action]
.Value, cW_New_Listener.wrappers
[cxButtonEdit_New_Listener_Order_Start].Value,
VarToStr(cxCurrencyEdit_New_Listener_Contract_Money.EditValue),
VarToStr(DC.Values[FRI, tv_listeners_id_student.Index]),
cW_New_Listener.wrappers[cxTextEdit_New_Listener_Basis].Value,
cW_New_Listener.wrappers[cxTextEdit_New_Listener_FIO].Value,
cW_New_Listener.wrappers[cxTextEdit_New_Listener_FIO_R].Value,
cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Post].Value]));
end; // 3
if ok then
begin // 6
Get_SqlData_cxGrid(tv_listeners).Read_Data;
if cxPageControl_Student.ActivePage = cxTabSheet_Contracts then
Fill_Contract_ParamsExecute(self);
end; // 6
end; // 2
finally // 1
if assigned(mf) then
begin // 7
FreeAndNil(mf);
StudentElementsEnabled(True);
end; // 7
end; // 1
end;
{ Забрать удостоверение}
procedure TForm_Event.Action_Delete_CertificateExecute(Sender: TObject);
Var L: tintegerlist; i: integer;
begin
if HandymanFunctions.ShowVNDialog(vnd_Confirmation, 'Подтверждение удаления'
, 'Удалить выделенные удостоверения ('
+ IntToStr(tv_listeners.Controller.SelectedRowCount) + ')?')
then with Get_SqlData_cxGrid(tv_listeners), GridTableView.DataController do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
for i := 0 to L.Count - 1 do
if MSystemServices.ExchangeData(Delete_Certificate
, CreateVarAr([VarToStr(Values[L.Items[i], tv_listeners_ID_Certificate.Index])])
, 'Не смогли удалить сертификат '
+ VarToStr(Values[L.Items[i], tv_listeners_certificate.Index]))
then
begin
Values[L.Items[i], tv_listeners_certificate.Index] := null;
Values[L.Items[i], tv_listeners_Cert_Date.Index] := null;
Values[L.Items[i], tv_listeners_Reg_Number.Index] := null;
Values[L.Items[i], tv_listeners_Kind_Cert.Index] := null;
Values[L.Items[i], tv_listeners_ID_Kind_Cert.Index] := null;
Values[L.Items[i], tv_listeners_ID_Certificate.Index] := null;
Values[L.Items[i], tv_listeners_ID_Doc_Cert.Index] := null;
Values[L.Items[i], tv_listeners_ID_Reg.Index] := null;
Values[L.Items[i], tv_listeners_hours.Index] := null;
end;
MSystemServices.EndSequenceActions;
end;
end;
procedure TForm_Event.Action_Delete_ContractExecute(Sender: TObject);
var
ID_C: string;
DC: TcxDataController;
ok: Boolean;
List: TIntegerList;
i: Integer;
begin
Get_SqlData_cxGrid(tv_listeners).GetSelectedRecordIndexList(List);
if (List.Count > 0) and HandymanFunctions.ShowVNDialog(vnd_Confirmation,
'Удаление договоров',
'Вы действительно хотите удалить договора у выбранных студентов (' +
IntToStr(List.Count) + ')?') then
begin // 1
MSystemServices.StartSequenceActions(False, True);
DC := tv_listeners.DataController;
for i := 0 to (List.Count - 1) do
begin // 2
ID_C := VarToStr(DC.Values[List.Items[i],
tv_listeners_id_contract.Index]);
ok := MSystemServices.ExchangeData(Delete_Contract, VarArrayOf([ID_C]));
if ok then
begin // 3
DC.Values[List.Items[i], tv_listeners_id_contract.Index] := null;
DC.Values[List.Items[i],
tv_listeners_id_paragraph_contract.Index] := null;
DC.Values[List.Items[i], tv_listeners_org.Index] := null;
DC.Values[List.Items[i], tv_listeners_money.Index] := null;
DC.Values[List.Items[i], tv_listeners_NDS.Index] := null;
DC.Values[List.Items[i],
tv_listeners_status_text_contract.Index] := null;
end; // 3
end; // 2
MSystemServices.EndSequenceActions;
if ok then
cW_Contract_Params.ClearWrappers;
end; // 1
end;
{ Удалить выставленные начисления}
procedure TForm_Event.Action_Delete_NachExecute(Sender: TObject);
var i: integer; L: TIntegerlist;
begin
if HandymanFunctions.ShowVNDialog(vnd_Confirmation, 'Удаление начислений'
, 'Удалить выставленные начисления у выделенных договоров?')
then with Get_SqlData_cxGrid(tv_listeners), GridTableView.DataController do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
for i := 0 to L.Count - 1 do
if MSystemServices.ExchangeData(Delete_Nach_By_ID_Dog
, CreateVarAr([VarToStr(Values[L.Items[i], tv_listeners_id_contract.Index])])
, 'Не смогли удалить начисления')
then begin
Values[L.Items[i], tv_listeners_money.Index] := null;
Values[L.Items[i], tv_listeners_NDS.Index] := null;
end;
MSystemServices.EndSequenceActions;
if cxPageControl_Student.ActivePage = cxTabSheet_Stages
then Get_SqlData_cxGrid(TTree_Nach).Read_Data
else Get_SqlData_cxGrid(TTree_Nach).IsFirstRead := True;
end;
end;
{ Удалить окончание}
procedure TForm_Event.Action_Delete_Order_EndExecute(Sender: TObject);
var
L: TIntegerList;
i: Integer;
begin
with Get_SqlData_cxGrid(tv_listeners) do
begin
GetSelectedRecordIndexList(L);
if HandymanFunctions.ShowVNDialog(vnd_Confirmation, 'Удаление приказа об окончании'
, 'Удалить приказы об окончании у выделенных слушателей ' + '(' + IntToStr(L.Count) + ')' +'?')
then with tv_listeners.DataController do
begin
MSystemServices.StartSequenceActions(False, True);
For i := 0 to L.Count - 1 do
if MSystemServices.DeleteData(d_P_ORDERS_STUDENTS
, CreateVarAr(['0', '1'])
, CreateVarAr([VarToStr(Values[L.Items[i], tv_listeners_id_student.Index])
, VarToStr(Values[L.Items[i], tv_listeners_ID_Paragraph_End.Index])])
, 'Не смогли удалить приказ об окончании.')
then begin
Values[L.Items[i], tv_listeners_ID_Paragraph_End.Index] := null;
Values[L.Items[i], tv_listeners_ID_Status_End.Index] := null;
Values[L.Items[i], tv_listeners_ID_ERP_End.Index] := null;
Values[L.Items[i], tv_listeners_status_text_order_end.Index] := null;
Get_SqlData_cxGrid(tv_listeners).IsFirstRead := True;
end;
MSystemServices.EndSequenceActions;
if cxPageControl_Student.ActivePage = cxTabSheet_Orders
then Fill_tv_ordersExecute(self);
end;
end;
end;
procedure TForm_Event.Action_End_EducationExecute(Sender: TObject);
const
Name = 'Окончание обучения';
var
mf: TSForm;
id: Integer;
List: TIntegerList;
i: Integer;
begin
try // 1
id := -1;
Get_SqlData_cxGrid(tv_listeners).GetSelectedRecordIndexList(List);
mf := CreateSForm(self, 'fEnd_Education', Name, Add_Path + Name,
Panel_End_Education, tdb_Apply);
cW_End_Education.wrappers[cxDateEdit_End_Education].Value := VarToStr
(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_d_end_plan.Index]);
cW_End_Education.OnChangeWrapper(nil);
if mf.ShowModal = mrok then
begin // 2
if (List.Count > 0) and HandymanFunctions.ShowVNDialog(vnd_Confirmation,
'Окончание обучения',
'Вы действительно хотите закончить обучение выбранных студентов (' +
IntToStr(List.Count) + ')?') then
begin // 3
MSystemServices.StartSequenceActions(False, True);
for i := 0 to (List.Count - 1) do
begin // 4
id := MSystemServices.InsertData(d_P_ORDERS_STUDENTS,
VarArrayOf([0, 1, 2, 3]),
VarArrayOf([tv_listeners.DataController.Values[List.Items[i],
tv_listeners_id_student.Index],
cW_End_Education.wrappers[cxButtonEdit_End_Education].Value,
cW_End_Education.wrappers[cxPopupEdit_KBA_End].Value,
cW_End_Education.wrappers[cxDateEdit_End_Education].Value]),
'Окончание обучения.');
if id >= 0 then
begin // 5
tv_listeners.DataController.Values[List.Items[i],
tv_listeners_d_end.Index] := VarToStr
(cW_End_Education.wrappers[cxPopupEdit_KBA_End].Value);
tv_listeners.DataController.Values[List.Items[i],
tv_listeners_status_text_order_end.Index] := VarToStr
(cW_End_Education.wrappers[cxButtonEdit_End_Education]
.ValueDisplay);
end; // 5
end; // 4
MSystemServices.EndSequenceActions;
if id >= 0 then
TButtonOrderEditWrapper(cW_End_Education.wrappers
[cxButtonEdit_End_Education]).IsEmpty := False;
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
end; // 1
end;
{ Выдать сертификат}
procedure TForm_Event.Action_Go_New_CertExecute(Sender: TObject);
var i, j: integer;
begin
with Get_SqlData_cxGrid(tv_listeners), GridTableView.Controller, Cont_Make_Cert do
begin
j := 0;
for i := 0 to SelectedRowCount - 1 do
if MSystemServices.ExchangeData(Make_New_Cert_By_Params
, CreateVarAr([VarToStr(SelectedRows[i].Values[tv_listeners_id_student.Index])
,VarToStr(Wrappers[ButtonEdit_New_Cert].Value)
,VarToStr(Wrappers[SpinEdit_New_Cert_Reg].Value)
,VarToStr(Wrappers[PopupEdit_New_Cert_Kind_Doc].Value)
,VarToStr(Wrappers[SpinEdit_New_Cert_Number].Value)
,VarToStr(Wrappers[SpinEdit_New_Cert_Hours].Value)])
, 'Не смогли выдать удостоверение.')
then
begin
j := j + 1;
{Values[L.Items[i], tv_listeners_Kind_Cert.Index] :=
VarToStr(Wrappers[PopupEdit_New_Cert_Kind_Doc].ValueDisplay);
Values[L.Items[i], tv_listeners_ID_Kind_Cert.Index] :=
VarToStr(Wrappers[PopupEdit_New_Cert_Kind_Doc].Value);
Values[L.Items[i], tv_listeners_Reg_Number.Index] :=
VarToStr(Wrappers[SpinEdit_New_Cert_Reg].Value);
Values[L.Items[i], tv_listeners_certificate.Index] :=
VarToStr(Wrappers[SpinEdit_New_Cert_Number].Value);
Values[L.Items[i], tv_listeners_hours.Index] :=
VarToStr(Wrappers[SpinEdit_New_Cert_Hours].Value);}
Wrappers[SpinEdit_New_Cert_Reg].Value := Wrappers[SpinEdit_New_Cert_Reg].Value + 1;
Wrappers[SpinEdit_New_Cert_Number].Value := Wrappers[SpinEdit_New_Cert_Number].Value + 1;
end;
// А что толку-то? Все равно id сертификатов неизвестны - придется перечитывать!
Read_Data;
HandymanFunctions.ShowVNDialog(vnd_Information, 'Результат работы'
, 'Выдано удостоверений: ' + IntToStr(j));
end;
end;
{ Установить новую стоимость выделенных договоров}
procedure TForm_Event.Action_Go_New_MoneyExecute(Sender: TObject);
var i, j: integer; L: TIntegerlist;
begin
cw_New_Money.ChangesAcceptWrappers;
with Get_SqlData_cxGrid(tv_listeners), GridTableView.DataController do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
CurrencyEdit_New_Money.Properties.EditFormat := '0.00';
CurrencyEdit_New_Money.Properties.UseThousandSeparator := False;
j := 0;
for i := 0 to L.Count - 1 do
if MSystemServices.ExchangeData(Update_PC
, VarArrayOf(['4'
, VarToStr(tv_listeners.DataController.Values
[L.Items[i], tv_listeners_id_contract.Index])
,''
,''
,''
,''
,''
,//VarToStr(cw_New_Money.Wrappers[CurrencyEdit_New_Money].Value) //
VarToStr(CurrencyEdit_New_Money.EditValue)
,''
,''
,''
,''
,''
,''
,''
,''])
, 'Не смогли изменить стоимость договора.')
then j := j + 1;
CurrencyEdit_New_Money.Properties.EditFormat := ',0.00';
CurrencyEdit_New_Money.Properties.UseThousandSeparator := True;
MSystemServices.EndSequenceActions;
if j > 0
then HandymanFunctions.ShowVNDialog(vnd_Information, 'Результат операции'
, 'Стоимость изменена в ' + IntToStr(j) + 'договорах.')
else HandymanFunctions.ShowVNDialog(vnd_Error, 'Результат операции'
, 'Не смогли изменить стоимость договоров');
end;
end;
{ Сформировать начисления}
procedure TForm_Event.Action_Go_New_NachExecute(Sender: TObject);
begin
Cont_New_Nach.ChangesAcceptWrappers;
with Cont_New_Nach, Get_SqlData_cxGrid(tv_listeners), GridTableView.DataController do
if MSystemServices.ExchangeData(Create_New_Nach
, CreateVarAr([VarToStr(Values[LastChoiceIndex, tv_listeners_id_contract.Index])
, VarToStr(Wrappers[DateEdit_New_Nach].Value)
, VarToStr(Wrappers[ButtonEdit_New_Nach].Value)]))
then
begin
Get_SqlData_cxGrid(TTree_Nach).Read_Data;
GetParentForm(Panel_New_Nach).ModalResult := mrok;
end;
end;
{ Уcтановить рамочный договор }
procedure TForm_Event.Action_Go_Set_Main_ContractExecute(Sender: TObject);
var
L: TIntegerList;
i: Integer;
begin
with Get_SqlData_cxGrid(tv_listeners), GridTableView.DataController do
begin
GetSelectedRecordIndexList(L);
MSystemServices.StartSequenceActions(False, True);
for i := 0 to L.Count - 1 do
if MSystemServices.UpdateData(d_P_CONTRACTS, CreateVarAr(['8']),
CreateVarAr([VarToStr(cW_Set_Main_Contract.wrappers
[PopupEdit_Set_Main_Contract].Value)]), CreateVarAr(['0']),
CreateVarAr([VarToStr(Values[L.Items[i], tv_listeners_id_contract.Index])])) then
begin
Values[L.Items[i], tv_listeners_ID_Contract_Main.Index] := VarToStr
(cW_Set_Main_Contract.wrappers[PopupEdit_Set_Main_Contract].Value);
Values[L.Items[i], tv_listeners_Main_Contract.Index] := VarToStr
(cW_Set_Main_Contract.wrappers[PopupEdit_Set_Main_Contract]
.ValueDisplay);
Values[L.Items[i], tv_listeners_Org_Contract_Main.Index] := VarToStr
(TTree_Main_Contracts.DataController.Values
[TTree_Main_Contracts.DataController.FocusedRecordIndex,
Tree_Main_Contracts_Org_Name.Index]);
end;
MSystemServices.EndSequenceActions;
end;
end;
{ Дата поиска рамочных договоров }
procedure TForm_Event.Filter_MC_Changed(
Sender: TObject);
begin
if (Get_SqlData_cxGrid(TTree_MC) <> nil)
//and (PageControl_Main.ActivePageIndex = 3)
then
with cw_Filter_Contracts_Main, Get_SqlData_cxGrid(TTree_MC) do
if (Parameters[1] <> VarToStr(Wrappers[DateEdit_Filter_Start].Value))
or (Parameters[2] <> VarToStr(Wrappers[DateEdit_Filter_End].Value))
or (Parameters[3] <> VarToStr(Wrappers[PopupEdit_Filter_Org].Value))
then
begin
Parameters[1] := VarToStr(Wrappers[DateEdit_Filter_Start].Value);
Parameters[2] := VarToStr(Wrappers[DateEdit_Filter_End].Value);
Parameters[3] := VarToStr(Wrappers[PopupEdit_Filter_Org].Value);
Read_Data;
end
else Read_Data_First;
end;
procedure TForm_Event.DateEdit_Set_Main_Contract_FindPropertiesEditValueChanged
(Sender: TObject);
begin
if cW_Set_Main_Contract <> nil then
if Get_SqlData_cxGrid(TTree_Main_Contracts).Parameters[1] <> VarToStr
(cW_Set_Main_Contract.wrappers[DateEdit_Set_Main_Contract_Find].Value)
then
begin
Get_SqlData_cxGrid(TTree_Main_Contracts).Parameters[1] := VarToStr
(cW_Set_Main_Contract.wrappers[DateEdit_Set_Main_Contract_Find].Value);
Get_SqlData_cxGrid(TTree_Main_Contracts).IsFirstRead := True;
end;
end;
procedure TForm_Event.Delete_tv_listenersExecute(Sender: TObject);
var
c: Boolean;
ok: Boolean;
List: TIntegerList;
i: Integer;
begin
Get_SqlData_cxGrid(tv_listeners).GetSelectedRecordIndexList(List);
if (List.Count > 0) and HandymanFunctions.ShowVNDialog(vnd_Confirmation,
'Удаление студентов',
'Вы действительно хотите удалить выбранных студентов вместе с договором ('
+ IntToStr(List.Count) + ')?') then
begin // 1
MSystemServices.StartSequenceActions(False, True);
for i := 0 to (List.Count - 1) do
begin // 2
c := VarToStr(tv_listeners.DataController.Values[List.Items[i],
tv_listeners_id_contract.Index]) <> '';
ok := MSystemServices.ExchangeData(Delete_Student,
VarArrayOf([VarToStr(tv_listeners.DataController.Values[List.Items[i],
tv_listeners_id_contract.Index]),
VarToStr(tv_listeners.DataController.Values[List.Items[i],
tv_listeners_id_student.Index])]), 'Удаление студента.');
{if ok and c then
MSystemServices.ExchangeData(Delete_Contract,
VarArrayOf
([VarToStr(tv_listeners.DataController.Values[List.Items[i],
tv_listeners_id_contract.Index])]), 'Удаление договора.');}
end; // 2
MSystemServices.EndSequenceActions;
if ok then
Get_SqlData_cxGrid(tv_listeners).Read_Data;
end; // 1
end;
procedure TForm_Event.DoChanged_cW_Contract_Params
(AWrapper: TCustomEditWrapper);
var
PEnabled, REnabled: Boolean;
begin
if AWrapper = cW_Contract_Params.wrappers[cxPopupEdit_PC_Org] then
begin // 1
REnabled := (cxPopupEdit_PC_Org.Text <> '') and REdit_Event;
ContractParamsEnabled(cxGroupBox_PC_Representative, REnabled);
end; // 1
if AWrapper = cW_Contract_Params.wrappers[cxButtonEdit_PC_Contract] then
begin // 2
PEnabled := (cxButtonEdit_PC_Contract.Text <> '') and REdit_Event;
REnabled := PEnabled and (cxPopupEdit_PC_Org.Text <> '');
ContractParamsEnabled(cxGroupBox_Contract_Params, PEnabled);
ContractParamsEnabled(cxGroupBox_PC_Representative, REnabled);
end; // 2
cxButton_PC_Autorepresentative.Enabled := cxGroupBox_Contract_Params.Enabled;
if AWrapper = cW_Contract_Params.wrappers[cxButtonEdit_PC_Contract] then
cxPopupEdit_PC_Kind_Order.Enabled := not AWrapper.IsClear;
if AWrapper = cW_Contract_Params.wrappers[cxButtonEdit_PC_Direction] then
cxPopupEdit_PC_Kind_Direction.Enabled := not AWrapper.IsClear;
end;
procedure TForm_Event.DoChanged_cW_New_Direction(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_Direction,
cW_New_Direction.IsNotEmptyMandatory);
end;
procedure TForm_Event.DoChanged_cW_End_Education(AWrapper: TCustomEditWrapper);
begin
cxPopupEdit_KBA_End.Enabled := not cW_End_Education.wrappers
[cxButtonEdit_End_Education].IsClear;
MakeEnable_OkButton(Panel_End_Education,
cW_End_Education.IsNotEmptyMandatory);
end;
procedure TForm_Event.DoChanged_cW_Plan_Filters(AWrapper: TCustomEditWrapper);
begin
{ Если изменили план }
if AWrapper = cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan] then
begin // 1
{ Заполняем примечание и аннотацию плана }
if VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value)
<> '' then
begin // 2
cW_Plan_Filters.wrappers[cxTextEdit_Plan_Filters_Note].Value := VarToStr
(tv_plan.DataController.Values
[tv_plan.DataController.FocusedRecordIndex, tv_plan_note.Index]);
cW_Plan_Filters.wrappers[cxTextEdit_Plan_Filters_Summary].Value :=
VarToStr(tv_plan.DataController.Values
[tv_plan.DataController.FocusedRecordIndex, tv_plan_summary.Index]);
end // 2
else
begin // 3
cW_Plan_Filters.wrappers[cxTextEdit_Plan_Filters_Note].Value := '';
cW_Plan_Filters.wrappers[cxTextEdit_Plan_Filters_Summary].Value := '';
end; // 3
{ Перечитаем позиции плана (если требуется) }
Fill_tv_r_c_planExecute(self);
end; // 1
end;
procedure TForm_Event.DoChanged_cW_New_Listener(AWrapper: TCustomEditWrapper);
var
c, PE, R: Boolean;
begin
{ Ссылка на договор доступна, если введен вид договора }
c := VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Kind_Order]
.Value) <> '';
cxLabel16.Enabled := c;
cxPopupEdit_New_Listener_Order.Enabled := c;
{ Параметры договора доступны, введен вид договора и ссылка на договор пуста }
PE := c and (VarToStr(cW_New_Listener.wrappers[cxPopupEdit_New_Listener_Order]
.Value) = '');
ContractParamsEnabled(cxGroupBox_New_Listener_Contract_Params, PE);
cW_New_Listener.MakeObligatory([cxDateEdit_New_Listener_Contract_D_Start,
cxDateEdit_New_Listener_Contract_D_End,
cxPopupEdit_New_Listener_Contract_Source_Finansing,
cxCurrencyEdit_New_Listener_Contract_Money], PE);
{ Представитель организации доступен, если доступны параметры договора и выбрана организация }
R := PE and (VarToStr(cW_New_Listener.wrappers[
cxPopupEdit_New_Listener_Contract_Organization].Value) <> '');
ContractParamsEnabled(cxGroupBox_New_Listener_Representative, R);
MakeEnable_OkButton(Panel_New_Listener, cW_New_Listener.IsNotEmptyMandatory);
end;
{ Выбор записи в списке}
procedure TForm_Event.ChoiceGridRecord(Sender: TSqlData_cxGridTableView;
AGridRecord: TcxGridDataRow);
begin
if (Sender.GridTableView = tv_r_c_plan) then
if (Sender.LastChoiceIndex >= 0) and
(Sender.LastChoiceIndex <
Sender.GridTableView.DataController.RecordCount) then
begin // 1
{ Сменим дату начала и дату окончания в сроках проведения }
cW_New_R_C_Group.wrappers[cxDateEdit_New_R_C_Group_D_Start].Value :=
VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_d_start.Index]);
cW_New_R_C_Group.wrappers[cxDateEdit_New_R_C_Group_D_End].Value :=
VarToStr(tv_r_c_plan.DataController.Values
[tv_r_c_plan.DataController.FocusedRecordIndex,
tv_r_c_plan_d_end.Index]);
{ Обновим списки в зависимости от активной страницы }
if PageControl_Main.ActivePage = cxTabSheet_R_C_Groups then
Fill_tv_r_c_groupsExecute(self);
if PageControl_Main.ActivePage = cxTabSheet_Listeners then
Fill_tv_listenersExecute(self);
end; // 1
// Выбор текущей учебной группы для обновления списка кураторов
if (Sender.GridTableView = tv_r_c_groups) then
with Get_SqlData_cxGrid(TTree_Curator) do
if (Sender.LastChoiceIndex >= 0) and
(Sender.LastChoiceIndex <
Sender.GridTableView.DataController.RecordCount) then
begin
Action_New_Curator.Enabled := REdit_Event;
if Parameters[1] <> VarToStr
(Sender.GridTableView.DataController.Values[Sender.LastChoiceIndex,
tv_r_c_groups_id_ed_group.Index]) then
begin
Parameters[1] := VarToStr
(Sender.GridTableView.DataController.Values
[Sender.LastChoiceIndex, tv_r_c_groups_id_ed_group.Index]);
Read_Data;
end
else
Read_Data_First;
end
else
begin
Parameters[1] := '';
ClearData;
Action_New_Curator.Enabled := False;
end;
end;
procedure TForm_Event.OnChoiceGridRecord_tv_listeners
(Sender: TSqlData_cxGridTableView; AGridRecord: TcxGridDataRow);
begin
if (Sender <> nil) then
if (Sender.LastChoiceIndex >= 0) and
(Sender.LastChoiceIndex <
Sender.GridTableView.DataController.RecordCount)
then with Sender.GridTableView.DataController do
begin // 1
if cxPageControl_Student.ActivePage = cxTabSheet_Orders then
Fill_tv_ordersExecute(self);
if cxPageControl_Student.ActivePage = cxTabSheet_Anketa then
Fill_AnketaExecute(self);
if cxPageControl_Student.ActivePage = cxTabSheet_Contracts then
Fill_Contract_ParamsExecute(self);
if Get_SqlData_cxGrid(TTree_Nach).Parameters[1] <>
VarToStr(Values[Sender.LastChoiceIndex, tv_listeners_id_contract.Index])
then begin
Get_SqlData_cxGrid(TTree_Nach).Parameters[1] :=
VarToStr(Values[Sender.LastChoiceIndex, tv_listeners_id_contract.Index]);
Get_SqlData_cxGrid(TTree_Nach).IsFirstRead := True;
if cxPageControl_Student.ActivePage = cxTabSheet_Stages
then Get_SqlData_cxGrid(TTree_Nach).Read_Data_First;
end;
Label_FIO.Caption := VarToStr
(Sender.GridTableView.DataController.Values[Sender.LastChoiceIndex,
tv_listeners_fio.Index]);
end // 1
else
begin
Label_FIO.Caption := Choice_Listener;
case cxPageControl_Student.ActivePageIndex of
0:begin
Get_SqlData_cxGrid(tv_orders).Params[0] := '';
Get_SqlData_cxGrid(tv_orders).ClearData;
end;
1:Current_Form_Anketa.ID_E := '';
2:Clear_Contract.Execute;
3:begin
Get_SqlData_cxGrid(TTree_Nach).Parameters[1] := '';
Get_SqlData_cxGrid(TTree_Nach).ClearData;
end;
end;
end;
end;
procedure TForm_Event.PageControl_MainPageChanging(Sender: TObject;
NewPage: TcxTabSheet; var AllowChange: Boolean);
begin
if NewPage = cxTabSheet_R_C_Groups then
Fill_tv_r_c_groupsExecute(self);
if NewPage = cxTabSheet_Listeners then
Fill_tv_listenersExecute(self);
if NewPage = cxTabSheet_MC then
Filter_MC_Changed(self);
end;
procedure TForm_Event.PC_ApplyExecute(Sender: TObject);
var
i: Integer;
CE: TcxCustomEdit;
P, s: string;
ok: Boolean;
begin
ok := False;
MSystemServices.StartSequenceActions(False, True);
for i := 0 to cW_Contract_Params.Count - 1 do
begin // 1
P := '-1';
if VarToStr((cW_Contract_Params.Items[i] as TCustomEditWrapper).EditValue)
<> VarToStr((cW_Contract_Params.Items[i] as TCustomEditWrapper).Value)
then
begin // 2
CE := (cW_Contract_Params.Items[i] as TCustomEditWrapper).Element;
if CE = cxDateEdit_PC_D_Start then
P := '0'
else if CE = cxDateEdit_PC_D_End then
P := '1'
else if (CE = cxPopupEdit_PC_Org) or (CE = cxTextEdit_PC_Basis) or
(CE = cxTextEdit_PC_FIO) or (CE = cxTextEdit_PC_FIO_R) or
(CE = cxPopupEdit_PC_Post) then
P := '2'
else if CE = cxPopupEdit_PC_SF then
P := '3'
else if CE = cxCurrencyEdit_PC_Money then
begin
P := '4';
cxCurrencyEdit_PC_Money.Properties.EditFormat := '0.00';
cxCurrencyEdit_PC_Money.Properties.UseThousandSeparator := False;
end
else if CE = cxPopupEdit_PC_Kind_Order then
P := '5'
else if CE = cxPopupEdit_PC_Kind_Direction then
P := '6'
else if CE = CheckBox_PC_NDS then
P := '7'
else if (CE = cxDateEdit_PC_D_Start_Otrjv) or (CE = cxDateEdit_PC_D_End_Otrjv)
then
begin
P := '8';
if VarToStr(cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start_Otrjv].EditValue) = ''
then s := ''
else s := VarToStr(cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start_Otrjv].EditValue)
+ ' по ' + VarToStr(cW_Contract_Params.wrappers[cxDateEdit_PC_D_End_Otrjv].EditValue);
end;
end; // 2
if P <> '-1' then
begin // 3
ok := MSystemServices.ExchangeData(Update_PC,
VarArrayOf([P,
VarToStr(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_id_contract.Index]),
VarToStr(cW_Contract_Params.wrappers[cxDateEdit_PC_D_Start]
.EditValue),
VarToStr(tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_id_contractor.Index]),
VarToStr(cW_Contract_Params.wrappers[cxDateEdit_PC_D_End]
.EditValue),
VarToStr(cW_Contract_Params.wrappers[cxPopupEdit_PC_Org].EditValue),
VarToStr(cW_Contract_Params.wrappers[cxPopupEdit_PC_SF].EditValue),
VarToStr(cxCurrencyEdit_PC_Money.EditValue),
VarToStr(cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Order]
.EditValue), VarToStr(cW_Contract_Params.wrappers
[cxPopupEdit_PC_Kind_Direction].EditValue),
VarToStr(cW_Contract_Params.wrappers[cxTextEdit_PC_Basis]
.EditValue),
VarToStr(cW_Contract_Params.wrappers[cxTextEdit_PC_FIO].EditValue),
VarToStr(cW_Contract_Params.wrappers[cxTextEdit_PC_FIO_R].EditValue),
VarToStr(cW_Contract_Params.wrappers[cxPopupEdit_PC_Post].EditValue),
My_BoolToStr(CheckBox_PC_NDS.Checked, 1, '0'),
s])
);
if ok then
case StrToInt(P) of // 4
2:
begin
if VarToStr(cW_Contract_Params.wrappers[cxPopupEdit_PC_Org]
.EditValue) = '' then
begin // 5
cW_Contract_Params.wrappers[cxTextEdit_PC_Basis].Clear;
cW_Contract_Params.wrappers[cxTextEdit_PC_FIO].Clear;
cW_Contract_Params.wrappers[cxTextEdit_PC_FIO_R].Clear;
cW_Contract_Params.wrappers[cxPopupEdit_PC_Post].Clear;
end; // 5
tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_org.Index] := VarToStr
(cW_Contract_Params.wrappers[cxPopupEdit_PC_Org]
.EditValueDisplay);
end;
4:
begin
tv_listeners.DataController.Values
[tv_listeners.DataController.FocusedRecordIndex,
tv_listeners_money.Index] := VarToStr
(cW_Contract_Params.wrappers[cxCurrencyEdit_PC_Money]
.EditValueDisplay);
cxCurrencyEdit_PC_Money.Properties.EditFormat := ',0.00';
cxCurrencyEdit_PC_Money.Properties.UseThousandSeparator := True;
end;
5:
cW_Contract_Params.wrappers[cxButtonEdit_PC_Contract]
.EditValueDisplay := TButtonOrderEditWrapper
(cW_Contract_Params.wrappers[cxButtonEdit_PC_Contract])
.L_status_text + ' (' + VarToStr
(cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Order]
.EditValueDisplay) + ')';
6:
cW_Contract_Params.wrappers[cxButtonEdit_PC_Direction]
.EditValueDisplay := TButtonOrderEditWrapper
(cW_Contract_Params.wrappers[cxButtonEdit_PC_Direction])
.L_status_text + ' (' + VarToStr
(cW_Contract_Params.wrappers[cxPopupEdit_PC_Kind_Direction]
.EditValueDisplay) + ')';
end; // 4
end; // 3
end; // 1
MSystemServices.EndSequenceActions;
if ok then
cW_Contract_Params.ChangesAcceptWrappers;
end;
procedure TForm_Event.PC_AutorepresentativeExecute(Sender: TObject);
begin
if HandymanFunctions.ShowVNDialog(vnd_Confirmation, 'Автопредставитель',
'Вы действительно хотите добавить автопредставителя?') then
begin // 1
MSystemServices.ExchangeData(Autorepr,
VarArrayOf
([VarToStr(cW_Contract_Params.wrappers
[cxButtonEdit_PC_Contract].Value)]))
end; // 1
end;
procedure TForm_Event.PC_RefuseExecute(Sender: TObject);
begin
cW_Contract_Params.ChangesRefuseWrappers;
end;
procedure TForm_Event.Plan_ApplyExecute(Sender: TObject);
var
ok: Boolean;
begin
if VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value)
<> '' then
begin // 1
ok := MSystemServices.ExchangeData(Update_Plan,
VarArrayOf([VarToStr(cW_Plan_Filters.wrappers
[cxTextEdit_Plan_Filters_Note].EditValue),
VarToStr(cW_Plan_Filters.wrappers
[cxTextEdit_Plan_Filters_Summary].EditValue),
VarToStr(cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].Value)
]));
if ok then
begin // 3
cW_Plan_Filters.ChangesAcceptWrappers;
tv_plan.DataController.Values[tv_plan.DataController.FocusedRecordIndex,
tv_plan_note.Index] := VarToStr(cW_Plan_Filters.wrappers
[cxTextEdit_Plan_Filters_Note].EditValue);
tv_plan.DataController.Values[tv_plan.DataController.FocusedRecordIndex,
tv_plan_summary.Index] := VarToStr(cW_Plan_Filters.wrappers
[cxTextEdit_Plan_Filters_Summary].EditValue);
cW_Plan_Filters.wrappers[cxPopupEdit_Plan_Filters_Plan].ValueDisplay :=
VarToStr(cW_Plan_Filters.wrappers[cxTextEdit_Plan_Filters_Note]
.EditValue);
end; // 3
end // 1
else
begin // 2
cxTextEdit_Plan_Filters_Note.Clear;
cxTextEdit_Plan_Filters_Summary.Clear;
cW_Plan_Filters.ChangesAcceptWrappers;
end; // 2
end;
procedure TForm_Event.Plan_RefuseExecute(Sender: TObject);
begin
cW_Plan_Filters.ChangesRefuseWrappers;
end;
{ Доступность создания запсией в специальности подразделения }
procedure TForm_Event.DoChanged_cW_Spec_Div(AWrapper: TCustomEditWrapper);
begin
MakeEnable_OkButton(Panel_New_Spec_Div, cW_New_Spec_Div.IsNotEmptyMandatory)
end;
{ Доступность создания запсией в импорте}
procedure TForm_Event.PopupEdit_Import_SpecPropertiesEditValueChanged
(Sender: TObject);
var i: integer;
begin
if Sender = PopupEdit_Import_Spec then
ButtonEdit_Import_Spec.Enabled := VarToStr
(cW_Import.wrappers[PopupEdit_Import_Spec].Value) = '';
if Sender = PopupEdit_Import_Spec_Div
then
begin
ButtonEdit_Import_Spec_Div.Enabled := VarToStr
(cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value) = '';
// Если есть выбранная запись, обновим по ней УМК!
if not ButtonEdit_Import_Spec_Div.Enabled
then cxPopupEdit_New_R_C_Group_Met_ComplexPropertiesInitPopup(PopupEdit_Import_UMK)
else
begin
if Get_SqlData_cxGrid(tv_r_c_groups).Params[0] <> VarToStr
(cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value)
then begin
Get_SqlData_cxGrid(tv_r_c_groups).Params[0] := VarToStr
(cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value);
Get_SqlData_cxGrid(tv_r_c_groups).Read_Data;
end;
end;
end;
if (Sender = PopupEdit_Import_UMK) or (Sender = PopupEdit_Import_Spec_Div) then
ButtonEdit_Import_UMK.Enabled := (VarToStr
(cW_Import.wrappers[PopupEdit_Import_UMK].Value) = '')
// Организатор должен быть задан!
And ((cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value) <> '');
if (Sender = PopupEdit_Import_Plan) or ( Sender = PopupEdit_Import_Spec_Div)
then
begin
ButtonEdit_Import_Plan.Enabled := (VarToStr
(cW_Import.wrappers[PopupEdit_Import_Plan].Value) = '')
// Организатор должен быть задан!
And ((cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value) <> '');
// Если позиция плана выбрана, то поищем ее в списке и выберем!
if VarToStr(cW_Import.wrappers[PopupEdit_Import_Plan].Value) <> ''
then
begin
i := FindGridRecordIndex(tv_r_c_plan, [tv_r_c_plan_id_r_c_plan]
, CreateVarAr([VarToStr(cW_Import.wrappers[PopupEdit_Import_Plan].Value)]));
if i >= 0
then Get_SqlData_cxGrid(tv_r_c_plan).LastChoiceIndex := i;
end;
end;
if (Sender = PopupEdit_Import_EG) or (Sender = PopupEdit_Import_Spec_Div)
or (Sender = PopupEdit_Import_UMK) then
ButtonEdit_Import_EG.Enabled := (VarToStr
(cW_Import.wrappers[PopupEdit_Import_EG].Value) = '')
// Организатор должен быть задан!
And ((cW_Import.wrappers[PopupEdit_Import_Spec_Div].Value) <> '')
// УМК должно быть задано!
And ((cW_Import.wrappers[PopupEdit_Import_UMK].Value) <> '');
if VarToStr(cW_Import.Wrappers[PopupEdit_Import_Plan].Value) <> '' then
if Get_SqlData_cxGrid(tv_r_c_groups).Params[0] <> VarToStr(cW_Import.Wrappers[PopupEdit_Import_Plan].Value)
then
begin
Get_SqlData_cxGrid(tv_r_c_groups).Params[0] := VarToStr(cW_Import.Wrappers[PopupEdit_Import_Plan].Value);
Get_SqlData_cxGrid(tv_r_c_groups).IsFirstRead := True;
end;
if VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value) <> '' then
if Get_SqlData_cxGrid(tv_r_c_groups).Params[0] <> VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)
then
begin
Get_SqlData_cxGrid(tv_ed_group).Params[0] := VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value);
Get_SqlData_cxGrid(tv_ed_group).IsFirstRead := True;
end;
end;
procedure TForm_Event.Before_Update_Exchange_tv_listeners
(Sender: TSqlData_cxGridTableView; UpdateValue: Variant;
AItem: TcxCustomGridTableItem; ARecordIndex: Integer;
var ExchangeParameters: OleVariant; var Allow: Boolean);
var
FC: TcxGridColumn;
DC: TcxGridDataController;
begin
FC := Sender.GridTableView.Controller.FocusedColumn;
{ Параметры для изменения Ф.И.О. }
if FC = tv_listeners_fio then
begin // 1
DC := Current_Form_SE.cxGrid_FIO.DataController;
ExchangeParameters := CreateVarAr([DC.Values[DC.FocusedRecordIndex,
Current_Form_SE.cxGrid_FIO_ID_E.Index],
Sender.GridTableView.DataController.Values[ARecordIndex,
tv_listeners_id_student.Index],
Sender.GridTableView.DataController.Values[ARecordIndex,
tv_listeners_id_contract.Index]]);
end; // 1
{ Параметры для изменения учебной группы и даты начала }
if (FC = tv_listeners_ed_group) or (FC = tv_listeners_d_start) then
begin // 2
DC := tv_r_c_groups.DataController;
ExchangeParameters := CreateVarAr([DC.Values[DC.FocusedRecordIndex,
tv_r_c_groups_d_start.Index], DC.Values[DC.FocusedRecordIndex,
tv_r_c_groups_id_ed_group.Index],
Sender.GridTableView.DataController.Values[ARecordIndex,
tv_listeners_id_student.Index],
Sender.GridTableView.DataController.Values[ARecordIndex,
tv_listeners_id_contract.Index]]);
end; // 2
{ Параметры для изменения даты окончания }
if (FC = tv_listeners_d_end) then
begin // 3
ExchangeParameters := CreateVarAr
([Sender.GridTableView.DataController.Values[ARecordIndex,
tv_listeners_id_student.Index], VarToStr(UpdateValue)]);
end; // 3
end;
{ Добавление группы обучения}
procedure TForm_Event.ButtonEdit_Import_EGClick(Sender: TObject);
var i: integer;
begin
if Import_ID_EG = '' then
begin
MSystemServices.InsertData(d_P_EDUCATIONAL_GROUP
, CreateVarAr(['1', '2', '3', '4'])
, CreateVarAr([Import_EG_Name
, VarToStr(cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value)
, '3' // Уровень группы
, VarToStr(cW_Import.Wrappers[DateEdit_Import_Start].Value)]));
Get_SqlData_cxGrid(tv_ed_group).Read_Data;
i := FindGridRecordIndex(tv_ed_group, [tv_ed_group_name]
, CreateVarAr([Import_EG_Name]));
if i >= 0 then
begin
Import_ID_EG := VarToStr(tv_ed_group.DataController.Values[i, tv_ed_group_id_ed_group.Index]);
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Ed_Group].Value := Import_ID_EG;
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Ed_Group].ValueDisplay := Import_EG_Name;
end;
end
else
begin
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Ed_Group].Value := Import_ID_EG;
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Ed_Group].ValueDisplay := Import_EG_Name;
end;
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Met_Complex].Value :=
cW_Import.Wrappers[PopupEdit_Import_UMK].Value;
cW_New_R_C_Group.Wrappers[cxPopupEdit_New_R_C_Group_Met_Complex].ValueDisplay :=
cW_Import.Wrappers[PopupEdit_Import_UMK].ValueDisplay;
cW_New_R_C_Group.Wrappers[cxDateEdit_New_R_C_Group_D_Start].Value :=
cW_Import.Wrappers[DateEdit_Import_Start].Value;
cW_New_R_C_Group.Wrappers[cxDateEdit_New_R_C_Group_D_End].Value :=
cW_Import.Wrappers[DateEdit_Import_End].Value;
// Откроем добавление группы обучения
if Action_Insert_tv_r_c_group.Execute
then
begin
i := FindGridRecordIndex(tv_r_c_groups, [tv_r_c_groups_name]
, CreateVarAr([Import_EG_Name]));
if i >= 0 then
begin
cW_Import.Wrappers[PopupEdit_Import_EG].Value :=
VarToStr(tv_r_c_groups.DataController.Values[i, tv_r_c_groups_id_ed_group.Index]);
cW_Import.Wrappers[PopupEdit_Import_EG].ValueDisplay :=
VarToStr(tv_r_c_groups.DataController.Values[i, tv_r_c_groups_name.Index]);
end;
end;
SetForegroundWindow(GetParentForm(ButtonEdit_Import_Spec).Handle);
end;
procedure TForm_Event.ButtonEdit_Import_OrderPropertiesEditValueChanged(
Sender: TObject);
begin
if (Sender = ButtonEdit_Import_Order)
then TButtonOrderEditWrapper(cW_Import.Wrappers[ButtonEdit_Import_Order]).IsEmpty := False
else if (Sender = ButtonEdit_Import_Nach)
then TButtonOrderEditWrapper(cW_Import.Wrappers[ButtonEdit_Import_Nach]).IsEmpty := False
end;
{ Добавление плана обучения}
procedure TForm_Event.ButtonEdit_Import_PlanClick(Sender: TObject);
begin
cW_New_R_C_Plan.Wrappers[cxPopupEdit_New_R_C_Plan_Spec_Div].Value :=
cW_Import.Wrappers[PopupEdit_Import_Spec_Div].Value;
cW_New_R_C_Plan.Wrappers[cxPopupEdit_New_R_C_Plan_Spec_Div].ValueDisplay :=
cW_Import.Wrappers[PopupEdit_Import_Spec_Div].ValueDisplay;
cW_New_R_C_Plan.Wrappers[cxDateEdit_New_R_C_Plan_D_Start].Value :=
cW_Import.Wrappers[DateEdit_Import_Start].Value;
if Action_Insert_tv_r_c_plan.Execute
then begin
cW_Import.Wrappers[PopupEdit_Import_Plan].Value :=
VarToStr(tv_r_c_plan.DataController.Values[tv_r_c_plan.DataController.FocusedRecordIndex
, tv_r_c_plan_id_r_c_plan.Index]);
cW_Import.Wrappers[PopupEdit_Import_Plan].ValueDisplay :=
cW_Import.wrappers[PopupEdit_Import_Spec_Div].ValueDisplay;
end;
SetForegroundWindow(GetParentForm(ButtonEdit_Import_Spec).Handle);
end;
{ Добавление программы (специальности)}
procedure TForm_Event.ButtonEdit_Import_SpecClick(Sender: TObject);
var
mf: TSForm;
i: Integer;
begin
try // 1
mf := CreateSForm(self, 'fNew_Spec', TabSheet_New_Spec.Caption,
Add_Path + TabSheet_New_Spec.Caption, Panel_New_Spec, tdb_Apply);
cW_New_Spec.wrappers[cxTextEditNew_Spec_Name].Value := Import_Name_Spec;
mf.Position := poScreenCenter;
if mf.ShowModal = mrok then
begin // 2
FSqlData_TableView := Get_SqlData_cxGrid(tv_Spec);
if FSqlData_TableView <> nil then
begin // 3
if MSystemServices.ExchangeData(Add_Spec,
CreateVarAr([cW_New_Spec.wrappers[cxTextEditNew_Spec_Name].Value,
cW_New_Spec.wrappers[cxTextEditNew_Spec_Quality].Value,
IDK_Level_Spec, IDK_Discipline]), 'Добавление программы обучения.')
then
begin // 4
FSqlData_TableView.Read_Data;
i := FindGridRecordIndex(tv_Spec, [tv_Spec_Name, tv_Spec_Q],
VarArrayOf([cW_New_Spec.wrappers[cxTextEditNew_Spec_Name].Value,
cW_New_Spec.wrappers[cxTextEditNew_Spec_Quality].Value]));
if i >= 0 then
begin
cW_Import.wrappers[PopupEdit_Import_Spec].Value := VarToStr
(tv_Spec.DataController.Values[i, tv_Spec_ID.Index]);
cW_Import.wrappers[PopupEdit_Import_Spec].ValueDisplay := VarToStr
(tv_Spec.DataController.Values[i, tv_Spec_Name.Index]);
end;
end; // 4
end; // 3
end; // 2
finally // 1
if assigned(mf) then
FreeAndNil(mf);
SetForegroundWindow(GetParentForm(ButtonEdit_Import_Spec).Handle);
end; // 1
end;
procedure TForm_Event.After_Read_tv_listeners(Sender: TSqlData_cxGridTableView);
begin
if Sender.GridTableView.DataController.RecordCount = 0 then
begin // 1
if cxPageControl_Student.ActivePage = cxTabSheet_Orders then
Get_SqlData_cxGrid(tv_orders).ClearData;
if cxPageControl_Student.ActivePage = cxTabSheet_Anketa then
Fill_AnketaExecute(self);
if cxPageControl_Student.ActivePage = cxTabSheet_Contracts then
Fill_Contract_ParamsExecute(self);
Label_FIO.Caption := '';
end; // 1
end;