Пошаговое руководство. Добавление страницы приложения в рабочий процесс
В этом пошаговом руководстве показано, как добавить страницу приложения, в которой отображаются данные, извлекаемые в рабочий процесс из проекта рабочего процесса.В нем используется проект, описанный в разделе Пошаговое руководство. Создание рабочего процесса с формами связывания и запуска.
В этом пошаговом руководстве показано выполнение следующих задач.
Добавление ASPX-страницы приложения в проект рабочего процесса SharePoint.
Получение и обработка данных из проекта рабочего процесса.
Отображение данных в таблице на странице приложения.
Примечание |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
Поддерживаемые выпуски Microsoft Windows и SharePoint.Дополнительные сведения см. в разделе Требования по разработке решений SharePoint;
Visual Studio.
Также необходимо создать проект, описанный в разделе Пошаговое руководство. Создание рабочего процесса с формами связывания и запуска.
Изменение кода рабочего процесса
Сначала добавьте в код рабочего процесса строку, задающую в столбце Outcome сумму, указанную в отчете о затратах.Это значение будет использоваться в дальнейшем для вычисления итоговой суммы по отчету.
Указание значения в столбце Outcome в рабочем процессе
Загрузите проект, созданный согласно инструкциям в разделе Пошаговое руководство. Создание рабочего процесса с формами связывания и запуска, в Visual Studio.
Откройте файле с кодом Workflow1.cs или Workflow1.vb (в зависимости от используемого языка программирования).
В конце метода createTask1_MethodInvoking добавьте следующий код.
createTask1_TaskProperties1.ExtendedProperties("Outcome") = workflowProperties.InitiationData
createTask1_TaskProperties1.ExtendedProperties["Outcome"] = workflowProperties.InitiationData;
Создание страницы приложения
Теперь добавьте в проект ASPX-форму.В ней будут отображаться данные, полученные из проекта рабочего процесса отчета о затратах.Для этого необходимо добавить страницу приложения.В странице приложения используется та же главная страница, что и в других страницах SharePoint, а значит она будет похожа на другие страницы сайта SharePoint.
Добавление страницы приложения в проект
Выберите проект ExpenseReport, а затем в строке меню выберите Проект, Добавление нового элемента.
В панели Шаблоны выберите шаблон Страница приложения, используйте имя по умолчанию для элемента проекта (ApplicaitonPage1.aspx) и нажмите кнопку Добавить.
В XML файла ApplicationPage1.aspx замените раздел PlaceHolderMain следующим кодом.
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server"> <asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Expenses that exceeded allotted amount" Font-Size="Medium"></asp:Label> <br /> <asp:Table ID="Table1" runat="server"> </asp:Table> </asp:Content>
Этот код добавляет на страницу таблицу с заголовком.
Добавьте заголовок страницы приложения, заменив раздел PlaceHolderPageTitleInTitleArea следующим кодом.
<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" > Expense Report Summary </asp:Content>
Программирование страницы приложения
Теперь добавьте код на страницу приложения сводки по отчету о затратах.Код реализует следующее поведение: когда пользователь открывает страницу, в списке задач SharePoint проверяется наличие сумм затрат, превышающих заданный лимит.В отчете указывается сумма затрат по каждому пункту.
Программирование страницы приложения
Выберите узел ApplicationPage1.aspx, а затем в строке меню выберите Вид, Код для отображения кода за страницей приложения.
Замените операторы using или Import (в зависимости от используемого языка программирования) в начале кода класса следующими строками:
Imports System Imports Microsoft.SharePoint Imports Microsoft.SharePoint.WebControls Imports System.Collections Imports System.Data Imports System.Web.UI Imports System.Web.UI.WebControls Imports System.Web.UI.WebControls.WebParts Imports System.Drawing Imports Microsoft.SharePoint.Navigation
using System; using Microsoft.SharePoint; using Microsoft.SharePoint.WebControls; using System.Collections; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Drawing; using Microsoft.SharePoint.Navigation;
Добавьте следующий код в метод Page_Load.
Try ' Reference the Tasks list on the SharePoint site. ' Replace "TestServer" with a valid SharePoint server name. Dim site As SPSite = New SPSite("http://TestServer") Dim list As SPList = site.AllWebs(0).Lists("Tasks") ' string text = ""; Dim sum As Integer = 0 Table1.Rows.Clear() ' Add table headers. Dim hr As TableHeaderRow = New TableHeaderRow hr.BackColor = Color.LightBlue Dim hc1 As TableHeaderCell = New TableHeaderCell Dim hc2 As TableHeaderCell = New TableHeaderCell hc1.Text = "Expense Report Name" hc2.Text = "Amount Exceeded" hr.Cells.Add(hc1) hr.Cells.Add(hc2) ' Add the TableHeaderRow as the first item ' in the Rows collection of the table. Table1.Rows.AddAt(0, hr) ' Iterate through the tasks in the Task list and collect those ' that have values in the "Related Content" and "Outcome" fields ' - the fields written to when expense approval is required. For Each item As SPListItem In list.Items Dim s_relContent As String = "" Dim s_outcome As String = "" Try ' Task has the fields - treat as expense report. s_relContent = item.GetFormattedValue("Related Content") s_outcome = item.GetFormattedValue("Outcome") Catch erx As System.Exception ' Task does not have fields - skip it. Continue For End Try ' Convert amount to an int and keep a running total. If (Not String.IsNullOrEmpty(s_relContent) And Not String.IsNullOrEmpty(s_outcome)) Then sum = (sum + Convert.ToInt32(s_outcome)) Dim relContent As TableCell = New TableCell relContent.Text = s_relContent Dim outcome As TableCell = New TableCell outcome.Text = ("$" + s_outcome) Dim dataRow2 As TableRow = New TableRow dataRow2.Cells.Add(relContent) dataRow2.Cells.Add(outcome) Table1.Rows.Add(dataRow2) End If Next ' Report the sum of the reports in the table footer. Dim tfr As TableFooterRow = New TableFooterRow tfr.BackColor = Color.LightGreen ' Create a TableCell object to contain the ' text for the footer. Dim ftc1 As TableCell = New TableCell Dim ftc2 As TableCell = New TableCell ftc1.Text = "TOTAL: " ftc2.Text = ("$" + Convert.ToString(sum)) ' Add the TableCell object to the Cells ' collection of the TableFooterRow. tfr.Cells.Add(ftc1) tfr.Cells.Add(ftc2) ' Add the TableFooterRow to the Rows ' collection of the table. Table1.Rows.Add(tfr) Catch errx As Exception System.Diagnostics.Debug.WriteLine(("Error: " + errx.ToString)) End Try
try { // Reference the Tasks list on the SharePoint site. // Replace "TestServer" with a valid SharePoint server name. SPSite site = new SPSite("http://TestServer"); SPList list = site.AllWebs[0].Lists["Tasks"]; // string text = ""; int sum = 0; Table1.Rows.Clear(); // Add table headers. TableHeaderRow hr = new TableHeaderRow(); hr.BackColor = Color.LightBlue; TableHeaderCell hc1 = new TableHeaderCell(); TableHeaderCell hc2 = new TableHeaderCell(); hc1.Text = "Expense Report Name"; hc2.Text = "Amount Exceeded"; hr.Cells.Add(hc1); hr.Cells.Add(hc2); // Add the TableHeaderRow as the first item // in the Rows collection of the table. Table1.Rows.AddAt(0, hr); // Iterate through the tasks in the Task list and collect those // that have values in the "Related Content" and "Outcome" // fields - the fields written to when expense approval is // required. foreach (SPListItem item in list.Items) { string s_relContent = ""; string s_outcome = ""; try { // Task has the fields - treat as expense report. s_relContent = item.GetFormattedValue("Related Content"); s_outcome = item.GetFormattedValue("Outcome"); } catch { // Task does not have fields - skip it. continue; } if (!String.IsNullOrEmpty(s_relContent) && !String.IsNullOrEmpty(s_outcome)) { // Convert amount to an int and keep a running total. sum += Convert.ToInt32(s_outcome); TableCell relContent = new TableCell(); relContent.Text = s_relContent; TableCell outcome = new TableCell(); outcome.Text = "$" + s_outcome; TableRow dataRow2 = new TableRow(); dataRow2.Cells.Add(relContent); dataRow2.Cells.Add(outcome); Table1.Rows.Add(dataRow2); } } // Report the sum of the reports in the table footer. TableFooterRow tfr = new TableFooterRow(); tfr.BackColor = Color.LightGreen; // Create a TableCell object to contain the // text for the footer. TableCell ftc1 = new TableCell(); TableCell ftc2 = new TableCell(); ftc1.Text = "TOTAL: "; ftc2.Text = "$" + Convert.ToString(sum); // Add the TableCell object to the Cells // collection of the TableFooterRow. tfr.Cells.Add(ftc1); tfr.Cells.Add(ftc2); // Add the TableFooterRow to the Rows // collection of the table. Table1.Rows.Add(tfr); } catch (Exception errx) { System.Diagnostics.Debug.WriteLine("Error: " + errx.ToString()); }
Внимание Следует заменить "TestServer" в коде с именем допустимого сервера, на котором запущен SharePoint.
Тестирование страницы приложения
Теперь проверьте, правильно ли отображаются данные о затратах на странице приложения.
Тестирование страницы приложения
Выберите ключ F5 для запуска и развертывания проекта в SharePoint.
Нажмите кнопку Главная, а затем выберите ссылку Общие документы на панели быстрого Запуска для отображения списка общих Документов на сайте SharePoint.
Для представления авансовые отчеты для этого примера, передайте некоторые новые документы в списке выбор соединения с Документы Документы на вкладке LibraryTools вверху страницы, а затем выбрать кнопку Отправить документ на ленте инструменты.
После загрузки некоторые документы, создайте экземпляр рабочего процесса путем выбора ссылку Библиотека на вкладке LibraryTools вверху страницы, а затем выбрать кнопку *** параметры библиотеки *** на ленте инструменты.
На странице *** параметры библиотеки документов *** выберите ссылку *** параметры рабочего процесса *** в разделе *** Разрешения и управление ими ***.
На странице *** параметры рабочего процесса *** выберите ссылку *** добавьте рабочий процесс ***.
На странице *** добавьте рабочий процесс *** выберите рабочий процесс ExpenseReport - Workflow1 введите имя для рабочих процессов, например, ExpenseTest, а затем нажмите кнопку Далее.
Откроется форма связывания рабочего процесса.Укажите в ней лимит суммы затрат.
В форме ассоциации, вставки 1000 в окно *** ограничение автоутверждения ***, а затем кнопку Сопоставить рабочий процесс.
Нажмите кнопку Главная, чтобы вернуться к домашней странице центра администрирования SharePoint.
Выберите ссылку Общие документы на панели быстрого Запуска.
Выберите один из переданных документов, и появится стрелка раскрывающегося меню, выберите ее, а затем выберите элемент Рабочие процессы.
Выберите изображение рядом с ExpenseTest для отображения формы запуска рабочего процесса.
В текстовом поле *** Сумма затрат *** введите значение, большее 1000, а затем нажмите кнопку Запустить рабочий процесс.
Если сумма затрат в отчете превышает заданный лимит, в список задач добавляется задача.Кроме того, в отчет о затратах в списке "Общие документы" добавляется столбец с именем ExpenseTest и значением Выполнен.
Повторите действия 11—13 для других документов в списке "Общие документы".(Точное количество документов не имеет значения.)
Откройте страницу приложения сводки по отчету о затратах, указав в адресной строке веб-браузера следующий URL-адрес: http://имя_системы/_layouts/ExpenseReport/ApplicationPage1.aspx.
На странице сводки по отчету о затратах приводятся все отчеты, в которых превышен лимит затрат, указывается сумма превышения для каждого отчета и общая сумма по всем отчетам.
Следующие действия
Дополнительные сведения о страницах приложений SharePoint см. в разделе Создание страниц приложений для SharePoint.
Дополнительные сведения о разработке страниц SharePoint с помощью Visual Web Designer в Visual Studio см. в следующих разделах.
См. также
Задачи
Пошаговое руководство. Создание рабочего процесса с формами связывания и запуска
Практическое руководство. Создание страницы приложения