Создать структуру папок в Панели файлов

Автор zazakey, 28.03.13, 09:55:49

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

zazakey

Здравствуйте. У меня возник вопрос по созданию плагина, содержание задачи таково:
- стоим на объекте Проект, нажимаем команду "Создать структуру папок в Панели файлов"
- по определенному пути (путь запоминаем в атрибуте '#Настройки') лежит папка, в ней еще папки, надо, чтобы в Панели файлов нужного проекта появилась такая же структура (без верхней папки).

кнопка далжна находится на форме Панели файлов.

Заранее благодарю за ответ

Chaa

Цитата: zazakey от 28.03.13, 09:55:49
Заранее благодарю за ответ
Не совсем понятно, в чем вопрос. И напишите, для чего плагин вы делаете. Я так понял, судя по "Панели файлов", что для Лоцман ПГС?
+ Благодарностей: 1

LDL

А Вы знаете, что многие вопросы решаються и без программирования.

zazakey

Да Лоцман ПГС, нужно как то создать структуру папок в Лоцман ПГС в панели файлов, эта структура находится в определенной определенной директории, то бишь сами папки, а путь к этой директории должна быть в атрибуте #Настройки. Я совсем недавно познакомился с Лоцман ПГС и не совсем понимаю где хранится структура файлов, Если будут какие то советы как это сделать, я буду очень благодарен! А почему с программированием то думаю так больше возможностей откроется уже при модернизации данной задачи в более сложную)

LDL

Если без програмирования, то можно воспользоваться командой "Сервис" - "Импортировать папку" и выбрать заранее созданную папку со вложенной структурой подпапок.
+ Благодарностей: 1

zazakey

Хотел еще спросить о использовании PluginCall.
var
  ds:IDataSet;
  txt:string;
begin
  ds := PluginCall.GetDataSet('GetProjectList', VarArrayOf(['']));
  if Assigned(ds) then begin
    txt := '';
ds.First;
    while not ds.Eof do begin
      txt := txt + ds.FieldValue['_PRODUCT'] + #13;
      ds.Next;
    end;
    MessageDlg(txt, mtConfirmation, [mbOK], 0);
  end;
end;

С помощью данной функции можно вывести можно вывести типы, ключевые атрибуты, номер версии и т.д. корневого каталога имеющейся базы.
Если использовать метод GetLinkedFast в место GetProgectList то можно вывести потомков корневого каталога.

var
  ds:IDataSet;
  txt:string;
begin
  ds := PluginCall.GetDataSet('GetLinkedFast', VarArrayOf([PluginCall.IdVersion,'Состоит из...', false]));
  if Assigned(ds) then begin
    txt := '';
    ds.First;
    while not ds.Eof do begin
      txt := txt + ds.FieldValue['_PRODUCT'] + #13;
      ds.Next;
    end;
    MessageDlg(txt, mtConfirmation, [mbOK], 0);
  end;
end;

И у меня возникли два вопроса:
1: можно ли таким образом выводить структуру папок определенного проекта?
2: каким методом можно вставить папки в данную структуру проекта?

Заранее благодарю вас за выделенное время!!!

caduser

Во вложении описание структуры объектов для отображения в Панели файлов. Собственно для создания новых объектов используйте метод InsertObject(). Для папок верхнего уровня в Панели файлов в качестве родителя указывайте необходимый проект.
+ Благодарностей: 3