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)

Партнерский форум 2010.


Завершился 5-й Партнерский форум DocsVision.
Как и в прошлые годы форум был насыщен интересными докладами.

Кто не смог приехать в этом году – может приобщиться к нему посредством выложенных на нашем сайте материалов и фотографий.


http://partners.docsvision.com/V%20%20%20DocsVision/Forms/AllItems.aspx
ftp://ftp.docsvision.com/Forum2010/Foto/1/
ftp://ftp.docsvision.com/Forum2010/Foto/2/ Читать дальше

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

Скрипт для переноса базы DocsVision 4.5 с редакции Enterprise на другую

В продолжение статьи.

Для переноса базы DocsVision 4.5 с MS SQL Enterprice (Developer), на редакцию MS SQL Standart. Необходимо предварительно выполнить специальный скрипт, а затем создавать и переносить бекап.

Скачать скрипт для DocsVision 4.5

Скрипт для предыдущих версий 4.1 и 4.3 Читать дальше

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

Поиск по свойству-коллекции

Довольно часто вызывает проблему построение поискового запроса по свойству-коллекции или по табличным свойствам, которые по сути также являются коллекциями.
Для обычных свойств поиск обычно выполняется по полям Значение и Отображаемое значение секции Свойства. Значения же свойства-коллекции хранятся в подчиненной по отношению к секции Свойства секции Выбранные значения, и поиск с учетом типа свойства необходимо выполнять по полю Выбранное значение именно этой секции.
В поле Отображаемое значение секции свойства хранятся все строковые значения свойства через точку с запятой. По этому полю можно выполнять поиск с условием Содержит.


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





Читать дальше

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

Пример разработки собственного отчета на Silverlight

В этой статье я бы хотел показать, как можно быстро создать гибкий и красивый (зависит от фантазии дизайнера) отчет с применением технологии Silverlight. К числу преимуществ WEB-отчета (Silverlight в частности) можно вписать:
  • Простота развертки (не надо каждый раз при обновлении разворачивать на клиентах msi'ники)
  • Возможность просмотра как в навигаторе (настроив папку на отображения отчета по URL), так и вне его (просто в браузере).
  • Так как физически отчет находится на сервере – это значит, что удобно использовать MSSQL Server напрямую для выборки данных для отчета (хотя никто не мешает задействовать и DV API)

Silverlight предоставляет возможность создавать действительно «богатые» интерфейсы (rich UI) декларативно на языке XAML (так же, как и в WPF). Например, небольшими усилиями можно сделать таблицу, похожую на ту, что используется в навигаторе: 

При том, что исходный код страницы на C# выглядит очень минималистично:


using System.Windows.Data;

namespace IDoc.DvWebReports
{
public partial class MainPage
{
public MainPage()
{
InitializeComponent();
//генерация набора тестовых данных:
Tasks = new PagedCollectionView(TaskInfo.GetTaskInfoForTest());
//группировка:
Tasks.GroupDescriptions.Add(new PropertyGroupDescription("Author"));
Tasks.GroupDescriptions.Add(new PropertyGroupDescription("Executer"));
}

///
/// Поручения
///

public PagedCollectionView Tasks { get; set; }
}
}

А представление этих тестовых данных (через Binding) полностью настраивается декларативно в XAML по средствам дизайнера в Visual Studio или такого интересного инструмента, как Expression Blend. На создание такого «фейкового» отчета у меня ушло меньше часа. 

Теперь перейдем к «реальным отчетам». В качестве примера, рассмотрим отчет о кол-ве созданных в системе карточек (в виде круговой диаграммы). Silverlight – это, по сути, клиентская часть, поэтому в проекте SL приложения мы не можем получить прямой доступ к данным (например, по средствам ADO.NET). Поэтому нам необходима отдельная служба, которую очень просто реализовать, используя технологию WCF. Ну и наконец, нам нужен ASP.NET проект, который будет хостом для нашего клиентского xap пакета (Silverlight приложения) и нашей службы WCF (с basicHttpBinding, т.к. только этот вид привязки поддерживается сильверлайтом). Структура солюшна в VS выглядит следующим образом:

Для развертки всего решения достаточно воспользоваться командой Publish и опубликовать на удаленном сервере прямо с машины разработчика.
В качестве доступа к данным в своём примере я использовал “недо-ОRM” LINQ to SQL, в котором накидал в дизайнере пару нужных для отчета таблиц и составил вот такой запрос:

    /// 
/// Получить информацию по кол-вам карточек в системе
///

public static CardsCountInfoRow[] GetCardCountsInfo(string connectionString,
DateTime rangeStart, DateTime rangeEnd)
{
using (var dataContext = CreateDataContext(connectionString))
{
var result =
from instancesGroup in
(from instance in dataContext.dvsys_instances
join instanceDate in dataContext.dvsys_instances_dates
on instance.InstanceID equals instanceDate.InstanceID
where
//Не удалена
(!instance.Deleted.HasValue || !instance.Deleted.Value) &&
//Не шаблон
(!instance.Template.HasValue || !instance.Template.Value) &&
//создана в указанный период
instanceDate.CreationDateTime >= rangeStart &&
instanceDate.CreationDateTime <= rangeEnd
group instance by instance.CardTypeID into g
select new { CardTypeID = g.Key, Count = g.Count()})
join def in dataContext.dvsys_carddefs
on instancesGroup.CardTypeID equals def.CardTypeID
select new CardsCountInfoRow(instancesGroup.Count, def.Icon,
def.CardTypeID, def.XMLSchema);
return result.ToArray();
}
}

Исходный код страницы отчета:

using System;
using System.Windows;
using DvReports.Reporting;

namespace DvReports
{
public partial class MainPage
{
public MainPage()
{
InitializeComponent();
RangeStart = new DateTime(DateTime.Now.Year, 1, 1);
RangeEnd = DateTime.Now;
}

///
/// Начало периода создания карточек
///

public DateTime RangeStart { get; set; }

///
/// Окончание периода создания карточек
///

public DateTime RangeEnd { get; set; }

private void btShowData_Click(object sender, RoutedEventArgs e)
{
var client = new ReportServiceClient();
client.GetCardCountsInfoCompleted += GetCardCountsInfoCompleted;
//посылаем запрос службе
client.GetCardCountsInfoAsync(RangeStart,
RangeEnd == DateTime.MinValue ? DateTime.MaxValue : RangeEnd);
}

//пришел ответ
private void GetCardCountsInfoCompleted(object sender, GetCardCountsInfoCompletedEventArgs e)
{
pieChart.Visibility = Visibility.Visible;
//отдаем данные диаграмме
pieChart.DataContext = e.Result;
}
}
}

Далее на XAML описал представление, развернул сайт на IIS и указал в одной из папок дв его отображение по URL:


На этом не остановился, и там же сделал ещё один отчет – отчет по продолжительностям сессий у сотрудников:


Тут используется обычный компонент ListBox с применением такой интересной "фичи", как DataTemplate – шаблон представления данных элемента, который удобно создавать в Expression Blend:

Для исполнения Silverlight приложений на клиентах, у них должен быть установлен Silverlight Runtime (~9mb), при этом наличие исполняемой среды .NET какой-либо версии не обязательно. Cовместимость Silverlight с различными операционными системами можно увидеть в таблице тут

Некоторые ссылки по теме:


  1. Step by step руководство по созданию Silverlight + WCF приложения 
  2. Видео-доклады на techdays.ru по Silverlight и WCF 

Исходники демонстрационных приложений: DvReportsSample и DataGridSample Читать дальше

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

Релиз конструктора решений

Эта новость прошла незаметно для нашего блога. Состоялся долгожданный релиз конструктора решений. Скачать можно из раздела "Загрузки" нашего сайта. Напомню, Конструктор решений отличный высокоуровневый инструмент для разработки собственных карточек, и не только. Причем разрабатывать карточки можно как средствами настроек (включая создание интерфейса), так и программируя действия на определенные события. Читать дальше

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