RSS Подписка на статьи RSS Подписка на комментарии Панель инструментов

Блог профессионалов стал частью сайта технической поддержки DocsVision http://support.docsvision.com. Новые материалы будут появляться уже на этом сайте.

Поиск

Ярлыки

авто генерация кода (1) Администрирование DocsVision (60) Атрибутивный поиск (3) База данных (24) Базы знаний (1) Безопасность (1) Бизнес-процессы (20) Блог (2) Вы увидите это первыми (1) Групповые политики (1) Диаграммы (2) Задания (2) Интеграция (2) Карточки DocsVision (14) Конструктор Решений (11) Маркетинг и продажи (4) Навигатор (3) Новое (3) Новости (32) Опрос (4) Опросы DocsVision (4) Оптимизация (3) Отчеты (2) Ошибки (1) Поддержка (14) Полезные ссылки (1) Представления (4) Производительность (5) Разбор полетов (18) Разработка для Workflow (7) разработка карточек (2) Разработка на платформе DocsVision (41) Разработка решений (43) Расширение платформы (1) Расширенные отчеты (9) Решения на платформе DocsVision (6) Сервисы DocsVision (3) Сканеры (3) Справочник сотрудников (1) Справочник типов (1) Установка (1) Утилиты (13) Шлюз в SharePoint (8) Штрихкод (2) Cкрипты карточек (7) DocsVision внутри (1) DocsVision Live (1) FileStream (1) FireFox (2) Opera (1) Powershell (5) Safari (1) SharePoint2007 (1) SharePoint2010 (2) Silverlight (1) UltraViews (1) Vista (1)

Действия для ускорения работы с FileStream

В процессе исследования задачи генерации большого количества файлов были определены действия, которые могут существенно ускорить операции с файлами на FileStream. Их можно применить, если в вашей базе используется именно такой способ хранения файлов.

Оригинальная статья http://msdn.microsoft.com/ru-ru/library/dd206979%28SQL.100%29.aspx
  1. Отключить на диске с Filestream генерацию файлов в формате 8.3 (Volume_path – опциональный параметр): FSUTIL BEHAVIOR SET DISABLE8DOT3 1
    Об утилите FSUTIL
  2. Отключить обновление времени последнего доступа к файлу на сервере с Filestream: FSUTIL BEHAVIOR SET DISABLELASTACCESS 1
  3. Отключить на диске с Filestream индексирование операционной системы
  4. Добавить логический диск с Filestream в исключения антивирусных программ
  5. Дефрагментировать логический диск с Filestream
  6. Рекомендуемый размер кластера в NTFS – 64 Кб
  7. Не использовать RAID-5 для размещения Filestream
  8. Отключить опции AutoShrink и AutoClose в базе данных
Читать дальше

Оставить комментарий (всего: 0)

Програмное выделение номера в карточках конструктора решений

В карточках конструктора решений есть свойство типа "Нумератор". Оно позволяет пользователю выделить номер. Но как решить задачу автоматического выделения номера, например, при открытии карточки?

В текущих версиях конструктора сделать это можно только программно, и задача не тривиальная. поэтому приведу готовый кусок кода.


Обработчик события AfterActivate - будет выполнен сразу после открытия карточки.

на С#
// обработчик события AfterActivate - будет выполнен сразу после открытия карточки
private void cardControl_AfterActivate(System.Object sender, System.EventArgs e)
{
// получаем свойство типа "Нумератор". Нужно указать название свойства
var numeratorProperty = GetCardProperty("Регистрационный номер");
// если номер уже задан, то выходим из метода, ничего не делая
if (numeratorProperty.Value != null)
return;
// получаем атрибут правила и его значение (идентификатор)
var ruleAttribute = numeratorProperty.Description.GetAttribute("Rule");
Guid? ruleId = (Guid?)ruleAttribute.Value;
// с помощью преобразователя данных создаем новый номер по правилу
var numeratorMapper = new DocsVision.BackOffice.Model.CardProperties.DataAccess.NumeratorNumberMapper(
Session, CardData.Id, DomainObject.NumbersSectionId.Value);
var number = numeratorMapper.Create(ruleId.Value);
// устанавливаем новое значение свойства
numeratorProperty.Value = number;
// обновляем элементы карточки, чтобы отобразить новое значение
RefreshControls();
}

// вспомогательный метод поиска элемента по названию
private CardProperty GetCardProperty(string propertyName)
{
foreach (CardProperty property in PropertyController.CardProperties)
{
if (property.Name == propertyName)
return property;
}
return null;
}

Vb.net

Private Sub cardControl_AfterActivate(sender As System.Object, e As System.EventArgs)
 
  ' получаем свойство типа "Нумератор"
  Dim numeratorProperty AS DocsVision.BackOffice.Model.CardProperties.Entities.CardProperty  = GetCardProperty("Регистрационный номер")
  ' если номер уже задан, то выходим из метода, ничего не делая

  If numeratorProperty.Value IsNot Nothing Then
   Return
  End If
  ' получаем атрибут правила и его значение (идентификатор)
  Dim ruleAttribute as DocsVision.BackOffice.Model.Layouts.Entities.PropertyAttribute = numeratorProperty.Description.GetAttribute("Rule")
  
  Dim ruleId As System.Nullable(Of Guid) = CType(ruleAttribute.Value, System.Nullable(Of Guid))
  ' с помощью преобразователя данных создаем новый номер по правилу
  Dim numeratorMapper as DocsVision.BackOffice.Model.CardProperties.DataAccess.NumeratorNumberMapper  = New DocsVision.BackOffice.Model.CardProperties.DataAccess.NumeratorNumberMapper(me.Session, CardData.Id, DomainObject.NumbersSectionId.Value)
  Dim number as DocsVision.BackOffice.Model.CardProperties.Entities.NumeratorNumber  = numeratorMapper.Create(ruleId.Value)
  ' устанавливаем новое значение свойства
  numeratorProperty.Value = number
  ' обновляем элементы карточки, чтобы отобразить новое значение

  me.PropertyController.RefreshControls
  
    End Sub


 ' вспомогательный метод поиска элемента по названию
 Private Function GetCardProperty(propertyName As String) As DocsVision.BackOffice.Model.CardProperties.Entities.CardProperty 
  For Each [property] As DocsVision.BackOffice.Model.CardProperties.Entities.CardProperty In PropertyController.CardProperties
   If [property].Name = propertyName Then
    Return [property]
   End If
  Next
  Return Nothing
 End Function
Читать дальше

Оставить комментарий (всего: 0)

Ctrl-C

Так получилось, что под конец года совсем нет времени писать новые статьи в наш блог. В четвертом квартале сдается много проектов, и обычно количество инцидентов становится чуть больше (о распределении инцидентов в течение года расскажу позже :).
В этом есть плюс: по окончании решения будет много полезной информации из опыта.

Сейчас же, чтобы блог не простаивал сообщу полезный трюк. Во многих окнах сообщений об ошибках работает Ctrl-C. Т.е. можно скопировать только текст. Для сообщения из картинки выше.

[Window Title]
Trusted sites

[Content]
Sites added to this zone must use the  https:// prefix. This prefix assures a secure connection.

[OK]

p.s. В окнах сообщений DocsVision есть кнопка "Больше" и "Скопировать текст сообщения" Читать дальше

Оставить комментарий (всего: 0)