//создаем экземпляр вспомогательного класса, он нам понадобится для поиска элемента свойства
LayoutHelper layoutHelper = new LayoutHelper(CardControl.LayoutControl, CardControl.BarManager, Session, CardData.Type.Id);
//получаем элемент свойства
ICustomPropertyItem propitem = layoutHelper.GetCustomPropertyItem("fileList");
//если он null, то выходим
if(propitem == null)
return;
//получаем элемент управления файлами
FileListView fileListView = propitem.PropertyControl as DocsVision.BackOffice.View.WinForms.Controls.FileListView;
//если он null (вдруг это свойство не "Список файлов"), то выходим.
if(fileListView == null)
return;
После того как элемент управления файлами получен, можно выполнять интересующие нас операции.
1)Добавление файла.
a) явно передавая пути к файлам, которые необходимо добавить в список
//создаем переменную, типа "Список", записываем в нее пути к файлам, которые нужно добавить
System.Collections.Generic.Listfiles = new System.Collections.Generic.List ();
//например, в данном случае добавляется всего 1 файл (указывается полный путь к файлу)
files.Add(@"c:\dvmanagement.lic");
//вызываем метод добавления файлов у элемента управления файлами
fileListView.AddFiles(files);
//в этом методе есть небольшая недоработка, чтобы ее обойти, воспользуемся средствами рефлексии
//вызываем Protected метод OnListChanged с помощью Reflection, после его вызова элемент управления понимает, что нужно сохранять данные
Type filiListViewType = fileListView.GetType().BaseType;
if(filiListViewType == null)
return;
MethodInfo onListChangedMethidInfo = filiListViewType.GetMethod("OnListChanged", BindingFlags.Instance | BindingFlags.NonPublic);
if(onListChangedMethidInfo == null)
return;
onListChangedMethidInfo.Invoke(fileListView, new object[1]{ EventArgs.Empty });
б) с помощью выбора файлов с файловой системы
//вызываем метод добавления файлов у элемента управления файлами. появится диалог выбора файлов. после нажатия на Ok файлы добавятся в список.
fileListView.AddFiles();
в) с помощью выбора карточки файла из DocsVision
//будет показан диалог выбора карточки файла. параметр false определяет, показывать только карточки, не являющиеся шаблонами
fileListView.AddCardFile(false)
2) Удаление файла(ов)
Удалить выбранные в списке файлы можно следующим образом
fileListView.DeleteFiles();
3) Сохранение файлов на файловую систему
a) всех файлов
fileListView.SaveFiles();
б) выбранных файлов
fileListView.SaveFiles(fileListView.SelectedFileReferences);
4) Открытие файла
//булевский флаг readOnly определяет, открывать файл на редактирование или только чтение
fileListView.OpenSelectedFile(readOnly);
5) Блокировка выделенного файла
fileListView.CheckOut();
6) Снятие блокировки c выделенного файла с сохранением изменений
fileListView.CheckIn();
7) Снятие блокировки c выделенного файла с потерей изменений
fileListView.UndoCheckOut();
8) Добавление комментария к выделенному файлу
//будет показан специальный диалог
fileListView.AddFileComment();
9) Переименование выделенного файла
fileListView.Rename();
10) Вставить файл из буфера клавиатуры
fileListView.PasteFromClipboard();
Примечание.
1) Необходимо добавить ссылки на сборки
DocsVision.TakeOffice.ObjectModel.dll
DocsVision.Platform.CardLib.dll
DevExpress.Utils.v9.2.dll
DevExpress.Data.v9.2.dll
DevExpress.XtraLayout.v9.2.dll
2) Необходимо в код скрипта в заголовок вставить набор директив "using"
using System;
using System.Reflection;
using System.Windows.Forms;
using DocsVision.BackOffice.Model;
using DocsVision.BackOffice.Model.CardProperties.Entities;
using DocsVision.BackOffice.View.WinForms;
using DocsVision.BackOffice.View.WinForms.Controls;
using DocsVision.BackOffice.View.WinForms.PropertyControls;
using DocsVision.BackOffice.View.WinForms.LayoutItems;
using DocsVision.BackOffice.View.WinForms.Helpers;
using DocsVision.TakeOffice.ObjectModel;
using DocsVision.TakeOffice.ObjectModel.FileList;
using DocsVision.TakeOffice.ObjectModel.File;
using DocsVision.Platform.ObjectManager;
Читать дальше
3 коммент.:
Если выполняется fileListView.AddFiles(files); Есть ли способ избежать вопроса о поддержки версий файла?
Отправить комментарий