Последняя версия DataExpress 3 beta от 27 мая 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

Действие "Сохранить как"

Предложения по новому функционалу и развитию существующего.
Гocть
Опытный
Сообщения: 345
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: Действие "Сохранить как"

Сообщение Гocть » Ср апр 18, 2018 8:02 am

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

{@action
ID=62900B52-9BF5-4E72-833F-9B47AB4F4399
OrigName=QG_DUPLICATE
Name="Дублировать" в запросе
Group=Расширение возможностей компонентов
UI=<ui>
<query name="_qg" caption="Выберите запрос"/>
<form name="_fm" caption="Выберите форму" source=_qg/>
<list name="_ls" caption="Режим копирования"
items="Только форма;Форма+Подчиненные таблицы"
defaultvalue="Родитель+Подчиненные таблицы"/>
</ui>
Description=<b>Действие дублирует запись указанного запроса.<b><br>
<i>(работает только если в запросе указан 1 источник без группировок)</i><p>
@}
 
procedure QG_DUPLICATE(query,form,modedp:string);
var
  Fm:TdxForm;
  ID,RCount:integer;
  QG:TdxQueryGrid;
  Message:string;
begin
  if (query='') or (form='') then exit;
    QG:=Self.Queries[query];
    ID:=QG.Recid;
    QG.MoveLast;
    RCount:=QG.RecordCount;
    QG.GotoRecord(ID);
    Fm:=TdxForm.Create(form);
    Fm.Open;
    Fm.GotoRecord(ID);
    if ID<>Fm.Recid then
   begin
      MsgBox('Ошибка копирования',
      'Копируемая запись уже удалена другим пользователем.');
      QG.Refresh;
      exit;
   end;
  if Fm.CanEdit = asLocked then
    MsgBox('Внимание!','Копируемая запись открыта другим пользователем.'+
    ' Данные могут быть неактуальны.');
  if modedp='Только форма' then
    Fm.Grid.PopupMenu.Items[MI_FORM_DUPLICATE].Click
  else Fm.Grid.PopupMenu.Items[MI_FORM_DUPLICATEALL].Click;
    Fm.Free;
    QG.Refresh;
  if QG.RecordCount>RCount then
    QG.MoveLast else QG.GotoRecord(ID);
end;
Фрилансер. Разработка на заказ. Консультирование.

Nikxdrummer
Интересующийся
Сообщения: 177
Зарегистрирован: Чт фев 16, 2017 10:56 am
Откуда: Новосибирск

Re: Действие "Сохранить как"

Сообщение Nikxdrummer » Ср апр 18, 2018 8:08 am

Гocть писал(а):

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

{@action
ID=62900B52-9BF5-4E72-833F-9B47AB4F4399
OrigName=QG_DUPLICATE
Name="Дублировать" в запросе
Group=Расширение возможностей компонентов
UI=<ui>
<query name="_qg" caption="Выберите запрос"/>
<form name="_fm" caption="Выберите форму" source=_qg/>
<list name="_ls" caption="Режим копирования"
items="Только форма;Форма+Подчиненные таблицы"
defaultvalue="Родитель+Подчиненные таблицы"/>
</ui>
Description=<b>Действие дублирует запись указанного запроса.<b><br>
<i>(работает только если в запросе указан 1 источник без группировок)</i><p>
@}
 
procedure QG_DUPLICATE(query,form,modedp:string);
var
  Fm:TdxForm;
  ID,RCount:integer;
  QG:TdxQueryGrid;
  Message:string;
begin
  if (query='') or (form='') then exit;
    QG:=Self.Queries[query];
    ID:=QG.Recid;
    QG.MoveLast;
    RCount:=QG.RecordCount;
    QG.GotoRecord(ID);
    Fm:=TdxForm.Create(form);
    Fm.Open;
    Fm.GotoRecord(ID);
    if ID<>Fm.Recid then
   begin
      MsgBox('Ошибка копирования',
      'Копируемая запись уже удалена другим пользователем.');
      QG.Refresh;
      exit;
   end;
  if Fm.CanEdit = asLocked then
    MsgBox('Внимание!','Копируемая запись открыта другим пользователем.'+
    ' Данные могут быть неактуальны.');
  if modedp='Только форма' then
    Fm.Grid.PopupMenu.Items[MI_FORM_DUPLICATE].Click
  else Fm.Grid.PopupMenu.Items[MI_FORM_DUPLICATEALL].Click;
    Fm.Free;
    QG.Refresh;
  if QG.RecordCount>RCount then
    QG.MoveLast else QG.GotoRecord(ID);
end;

Куда это вставлять?)

Гocть
Опытный
Сообщения: 345
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: Действие "Сохранить как"

Сообщение Гocть » Ср апр 18, 2018 8:38 am

Создайте пустой модуль расширений в режиме эксперта, вставьте в него код, сохраните. Потом в кнопку вставить действие.
Фрилансер. Разработка на заказ. Консультирование.


Вернуться в «Предложения по развитию проекта.»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей