Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тестирование программного средства



 

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

Проведём тестирование на следующем подмножестве исходных данных, внесённых в базу данных:

документ №1: Заглавие: Информационные технологии для пользователей библиотеки образовательного учреждения. Авторы: А.А. Данькин, В.А.Петров, Г.И.Рогачева. Год издания: 2004.

документ №2: Заглавие: Информационные ресурсы России: науч.-методич. пособие. Автор: А.Б. Антропольский. Год издания: 2004.

документ №3: Заглавие: Проблемы адаптивных систем обучения. Авторы: А.И. Захаров, А.М. Матюшкин. Год издания: 1995.

На странице поиска составим список из следующих критериев:

(Автор включает «ов») и (Год издания больше или равно 1995).

После нажатия на кнопку «найти» система возвращает список из двух документов - №1 и №3. То есть система вернула верный результат: документы №1 и №3 удовлетворяют всем указанным критериям поиска, а документ №2 - лишь последнему из них, но поскольку критерии отбора соединяются через операнд «и», то должны быть выбраны лишь те документы, которые отвечают одновременно всем критериям отбора. При замене операнда «и» на операнд «или» система возвращает 3 документа, что является верным.

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


Заключение

 

При написании данного курсового проекта была создана подсистема учёта и поиска электронной литературы. Данная система реализует возможность поиска электронной литературы по ряду критериев и получения экземпляра, а также возможность добавления (удаления) электронной литературы к имеющемуся набору.

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


Приложение А

Листинг

код:

Default.aspx:

< %@ Page language=" c#" Codebehind=" default.aspx.cs" AutoEventWireup=" false" Inherits=" Biblioteka.WebForm1" %>

<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitional//EN" >

< HTML>

< HEAD>

< title> WebForm1< /title>

< meta name=" vs_showGrid" content=" True" >

< meta name=" GENERATOR" Content=" Microsoft Visual Studio.NET 7.1" >

< meta name=" CODE_LANGUAGE" Content=" C#" >

< meta name=" vs_defaultClientScript" content=" JavaScript" >

< meta name=" vs_targetSchema" content=" http: //schemas.microsoft.com/intellisense/ie5" >

< /HEAD>

< body bgColor=" #000033" >

< form id=" Form1" method=" post" runat=" server" >

< TABLE id=" Table1" style=" HEIGHT: 480px" cellSpacing=" 0" cellPadding=" 0" border=" 0" >

< TR>

< TD style=" HEIGHT: 34px" colSpan=" 1" rowSpan=" 1" > < /TD>

< TD style=" HEIGHT: 34px" bgColor=" #000033" >

< asp: HyperLink id=" HyperLink2" runat=" server" ForeColor=" Gold" Font-Names=" Verdana" Font-Size=" XX-Small" =" default.aspx" > Поиск литературы< /asp: HyperLink> & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

< asp: HyperLink id=" HyperLink1" runat=" server" ForeColor=" Gold" Font-Names=" Verdana" Font-Size=" XX-Small" =" WebFormLoginPass.aspx" > Редактировать базу литературы< /asp: HyperLink> < /TD>

< TD colSpan=" 1" rowSpan=" 1" style=" HEIGHT: 34px" > < /TD>

< /TR>

< TR>

< TD style=" BORDER-LEFT-COLOR: lightgrey; BORDER-BOTTOM-COLOR: lightgrey; BORDER-TOP-COLOR: lightgrey; HEIGHT: 337px; BORDER-RIGHT-COLOR: lightgrey" =" left" >

< P align=" center" > & nbsp; < /P>

< /TD>

< TD style=" FONT-SIZE: 9pt; WIDTH: 895px; FONT-FAMILY: Verdana; HEIGHT: 337px" background=" Images/mainfon.GIF" bgColor=" #699565" >

< P> & nbsp; < /P>

< asp: Panel id=" Panel1" runat=" server" Height=" 120px" BorderColor=" Aqua" BorderStyle=" Ridge" =" 4px" Font-Names=" Verdana" Font-Size=" X-Small" BackColor=" Orange" >

< P> добавьте условие отбора литературы: < /P>

< asp: Panel id=" PanelSoed" runat=" server" BackColor=" Gold" Height=" 40px" >

< P> соединитель:

< asp: DropDownList id=" DropDownList3" runat=" server" ForeColor=" Yellow" BackColor=" DarkBlue" >

< asp: ListItem Value=" И" > И< /asp: ListItem>

< asp: ListItem Value=" ИЛИ" > ИЛИ< /asp: ListItem>

< /asp: DropDownList> < /P>

< /asp: Panel>

< P> параметр:

< asp: DropDownList id=" DropDownList2" runat=" server" ForeColor=" White" BackColor=" Navy"

условие: & nbsp;

< asp: DropDownList id=" DropDownList1" runat=" server" ForeColor=" White" BackColor=" Navy" Width=" 110px" >

< asp: ListItem Value=" Включает" > Включает< /asp: ListItem>

< asp: ListItem Value=" Не включает" > Не включает< /asp: ListItem>

< asp: ListItem Value=" Равно" > Равно< /asp: ListItem>

< asp: ListItem Value=" Не равно" > Не равно< /asp: ListItem>

< asp: ListItem Value=" Начинается с" > Начинается с< /asp: ListItem>

< asp: ListItem Value=" Не начинается с" > Не начинается с< /asp: ListItem>

< asp: ListItem Value=" Больше" > Больше< /asp: ListItem>

< asp: ListItem Value=" Меньше" > Меньше< /asp: ListItem>

< asp: ListItem Value=" Больше или равно" > Больше или равно< /asp: ListItem>

< asp: ListItem Value=" Меньше или равно" > Меньше или равно< /asp: ListItem>

< asp: ListItem Value=" Есть значение" > Есть значение< /asp: ListItem>

< asp: ListItem Value=" Нет значения" > Нет значения< /asp: ListItem>

< /asp: DropDownList> & nbsp; & nbsp; значение:

< asp: TextBox id=" TextBox1" runat=" server" > < /asp: TextBox> < /P>

< P>

< asp: Button id=" Button1" runat=" server" Text=" Добавить условие" > < /asp: Button> < /P>

< /asp: Panel>

< P> & nbsp; < /P>

< P> & nbsp; < /P>

< P>

< asp: Panel id=" Panel2" runat=" server" BackColor=" Gold" >

< P> Условия отбора литературы: < /P>

< asp: Table id=" TableUslov" runat=" server" Font-Size=" X-Small" Font-Names=" Verdana" ForeColor=" Black" =" Gold" BorderBorderStyle=" Ridge" BorderColor=" Silver" GridLines=" Horizontal" CellSpacing=" 0" CellPadding=" 0" Font-Bold=" True" > < /asp: Table>

< asp: Button id=" Button2" runat=" server" Text=" Удалить последнее условие" > < /asp: Button>

< /asp: Panel>

< P> < /P>

< P>

< asp: ImageButton id=" ImageButton3" runat=" server" ImageUrl=" Images/button_find2.GIF" AlternateText=" НАЙТИ! " =" 45px" Width=" 150px" > < /asp: ImageButton> < /P>

< P> & nbsp; < /P>

< P> & nbsp; < /P>

< P> & nbsp; < /P>

< P>

< asp: Panel id=" Panel5" runat=" server" Height=" 64px" Width=" 767px" >

< P>

< asp: ImageButton id=" ImageButton4" runat=" server" Height=" 31px" AlternateText=" Предыдущий" =" Images/buttonPrev.GIF" > < /asp: ImageButton>

< asp: Label id=" LabelIZ" runat=" server" BackColor=" White" Height=" 26px" > 0 из 0< /asp: Label>

< asp: ImageButton id=" ImageButton5" runat=" server" Height=" 31px" AlternateText=" Следующий " =" Images/buttonNext.GIF" > < /asp: ImageButton> < /P> < P>

< asp: HyperLink id=" HyperLinkDownload" runat=" server" ForeColor=" Black" BackColor=" White" > HyperLink< /asp: HyperLink> < /P>

< asp: Table id=" TableDocInfo" runat=" server" Font-Size=" X-Small" Font-Names=" Verdana" ForeColor=" Black" =" Gold" BorderBorderStyle=" Ridge" BorderColor=" Silver" GridLines=" Horizontal" CellSpacing=" 0" CellPadding=" 0" > < /asp: Table>

< /asp: Panel> < /P>

< /TD>

< TD style=" HEIGHT: 337px" > < /TD>

< /TR>

< TR>

< TD> < /TD>

< TD style=" WIDTH: 895px" >

< asp: ListBox id=" ListBoxTableUslov" runat=" server" Height=" 46px" Visible=" False" > < /asp: ListBox>

< asp: ListBox id=" ListBox2" runat=" server" Height=" 46px" Visible=" False" > < /asp: ListBox> < /TD>

< TD>

< asp: Panel id=" Panel6" runat=" server" > Для поиска литературы необходимо сформировать список критериев отбора литературы. Для этого необходимо выбрать словарь, по которому будет проводиться поиск, значение, условие отбора и способ объединения условий отбора. Словарь выбирается с помощью элемента раскрывающийся список, в котором перечислены все словари. Далее необходимо указать одно из условий отбора, перечисленных в элементе управления раскрывающийся список, (например, «включает», «больше»). Затем пользователь указывает значение, по которому будет проводиться сравнение. Это значение вводится в элемент управления текстовое поле. Далее необходимо выбрать способ объединения критериев отбора («и», «или») в элементе раскрывающийся список. После этого нужно нажать на кнопку «добавить условие». При этом указанные пользователем значения будут добавлены в таблицу, отображающую список критериев поиска. Для поиска необходимо, чтобы таблица содержала хотя бы один критерий отбора. После указания всех необходимых параметров отбора нужно нажать на кнопку «Найти». При этом на странице появится подробное описание первого документа, удовлетворяющего критериям отбора. Перейти к описанию другого документа можно с помощью кнопок «следующий» и «предыдущий». Получить копию электронного документа (скачать) можно двумя способами: нажать мышью на ссылку «скачать», либо щёлкнуть на имя файла, отображаемое в таблице как ссылка. После этого браузер откроет стандартный диалог загрузки файлов.< /asp: Panel6>

< /TD>

< /TR>

< /TABLE>

& nbsp;

< /form>

< /body>

< /HTML>.aspx:

< %@ Page language=" c#" Codebehind=" WebFormLoginPass.aspx.cs" AutoEventWireup=" false" Inherits=" Biblioteka.WebFormLoginPass" %>

<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitional//EN" >

< HTML>

< HEAD>

< title> WebFormLoginPass< /title>

< meta name=" GENERATOR" Content=" Microsoft Visual Studio.NET 7.1" >

< meta name=" CODE_LANGUAGE" Content=" C#" >

< meta name=" vs_defaultClientScript" content=" JavaScript" >

< meta name=" vs_targetSchema" content=" http: //schemas.microsoft.com/intellisense/ie5" >

< /HEAD>

< body bgColor=" #000033" >

< form id=" Form1" method=" post" runat=" server" >

< P> & nbsp; < /P>

< P align=" center" >

< TABLE id=" Table1" border=" 0" style=" HEIGHT: 416px" >

< TR>

< TD width=" 10%" > < /TD>

< TD align=" center" >

< asp: HyperLink id=" HyperLink2" runat=" server" Font-Names=" Verdana" Font-Size=" XX-Small" ForeColor=" Gold" =" default.aspx" > Поиск литературы< /asp: HyperLink> < /TD>

< TD width=" 10%" > < /TD>

< /TR>

< TR>

< TD> < /TD>

< TD style=" TEXT-ALIGN: center" >

< P align=" center" >

< asp: Panel id=" Panel1" runat=" server" Height=" 168px" BorderColor=" Aqua" BorderStyle=" Ridge" =" 4px" BackColor=" Orange" Font-Names=" Verdana" Font-Size=" X-Small" HorizontalAlign=" Center" > < /P>

< asp: Label id=" Label2" runat=" server" Width=" 432px" > < /asp: Label> < /P>

< P> Введите логин и пароль: < /P>

< P> & nbsp; логин:

< asp: TextBox id=" TextBox1" runat=" server" Width=" 157px" > < /asp: TextBox> < /P>

< P> пароль:

< asp: TextBox id=" TextBox2" runat=" server" TextMode=" Password" > < /asp: TextBox> < /P>

< P align=" right" >

< asp: Button id=" Button1" runat=" server" Text=" Войти" > < /asp: Button< /P>

< P align=" center" > < /asp: Panel>

< asp: Panel id=" Panel2" runat=" server" Font-Size=" X-Small" Font-Names=" Verdana" HorizontalAlign=" Center" =" Orange" BorderBorderStyle=" Ridge" BorderColor=" Aqua" Visible=" False" > < /P>

< P> Выберите следующее действие: < /P> < P align=" right" >

< /P>

< P align=" center" > < asp: HyperLink id=" HyperLink3" runat=" server" NavigateUrl=" WebFormDBAdd.aspx" ForeColor=" Black" Font-Size=" X-Small" Font-Names=" Verdana" Font-Bold=" True" > Добавить документ< /asp: HyperLink> & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

< asp: HyperLink id=" HyperLink1" runat=" server" NavigateUrl=" WebFormDBDelete.aspx" ForeColor=" Black" Size=" X-Small" Font-Names=" Verdana" Font-Bold=" True" > Удалить документ< /asp: HyperLink> < /P>

< P align=" center" > & nbsp; < /P>

< P align=" center" >

< asp: Label id=" Label1" runat=" server" Font-Size=" XX-Small" Font-Names=" Verdana" вы желаете изменить параметры документа, то следует его сначала удалить, а затем снова добавить с новыми параметрами описания.< /asp: Label> < /P>

< P align=" center" > < /asp: Panel> < /P>

< /TD>

< TD> < /TD>

< /TR>

< /TABLE>

< /P>

< /form>

< /body>

< /HTML>.aspx:

< %@ Page language=" c#" Codebehind=" WebFormDBAdd.aspx.cs" AutoEventWireup=" false" Inherits=" Biblioteka.WebFormDBAdd" %>

<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitional//EN" >

< HTML>

< HEAD>

< title> WebFormDBAdd< /title>

< meta content=" Microsoft Visual Studio.NET 7.1" name=" GENERATOR" >

< meta content=" C#" name=" CODE_LANGUAGE" >

< meta content=" JavaScript" name=" vs_defaultClientScript" >

< meta content=" http: //schemas.microsoft.com/intellisense/ie5" name=" vs_targetSchema" >

< /HEAD>

< body bgColor=" #000033" >

< form id=" Form1" method=" post" runat=" server" >

< TABLE id=" Table1" border=" 0" >

< TR>

< TD width=" 10%" > < /TD>

< TD align=" center" > < asp: hyperlink id=" HyperLink2" runat=" server" NavigateUrl=" default.aspx" ForeColor=" Gold" Font-Size=" XX-Small" Names=" Verdana" > Поиск литературы< /asp: hyperlink> & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

< asp: hyperlink id=" HyperLink1" runat=" server" NavigateUrl=" WebFormDBDelete.aspx" ForeColor=" Gold" Size=" XX-Small" Font-Names=" Verdana" > Удалить документ< /asp: hyperlink> < /TD>

< TD width=" 10%" > < /TD>

< /TR>

< TR>

< TD> < /TD>

< TD style=" TEXT-ALIGN: center" >

< P align=" center" > < asp: panel id=" Panel1" runat=" server" Font-Size=" X-Small" Font-Names=" Verdana" HorizontalAlign=" Center" =" Orange" BorderBorderStyle=" Ridge" BorderColor=" Aqua" Height=" 352px" > < /P>

< P> & nbsp; < /P>

< P align=" center" >

< asp: Panel id=" Panel2" runat=" server" Font-Size=" X-Small" Font-Names=" Verdana" BackColor=" Orange" =" 4px" BorderStyle=" Ridge" BorderColor=" Silver" Height=" 152px" > < /P>

< P>

< P> добавьте описание экземпляра литературы: < /P>

< P> параметр:

< asp: DropDownList id=" DropDownList1" runat=" server" ForeColor=" White" BackColor=" Navy" Width=" 136px" > < /asp: DropDownList> & nbsp; & nbsp; & nbsp; значение:

< asp: TextBox id=" TextBox1" runat=" server" > < /asp: TextBox> < /P>

< P>

< asp: Button id=" Button1" runat=" server" Text=" Добавить значение" > < /asp: Button> < /P>

< P align=" center" > < /asp: Panel> < /P>

< P align=" center" > Не забудьте указать файл: < /P>

< P align=" center" > < INPUT style=" WIDTH: 687px; HEIGHT: 22px" type=" file" size=" 95" id=" File1" name=" File1" =" server" > < /P>

< P align=" center" > & nbsp; < /P>

< P align=" center" >

< asp: Panel id=" Panel3" runat=" server" BackColor=" Gold" Height=" 226px" Visible=" False" > & nbsp; < /P>

Описание документа:

< P align=" center" >

< asp: Table id=" TableUslov" runat=" server" ForeColor=" Black" Font-Size=" X-Small" Font-Names=" Verdana" =" Gold" BorderBorderStyle=" Ridge" BorderColor=" Silver" Font-Bold=" True" CellPadding=" 0" CellSpacing=" 0" GridLines=" Horizontal" > < /asp: Table>

< asp: Button id=" Button2" runat=" server" Text=" Удалить последнее значение" > < /asp: Button> < /P>

< P align=" center" >

< asp: ImageButton id=" ImageButton3" runat=" server" Height=" 45px" ImageUrl=" Images/button_ADD.GIF" =" Добавить документ в базу! " > < /asp: ImageButton> < /P>

< P align=" center" > & nbsp; < /P>

< /asp: Panel>

< P align=" center" >

< asp: Label id=" Label1" runat=" server" Font-Size=" X-Small" ForeColor=" Black" Font-Bold=" True" > < /asp: Label> < /P>

< /asp: panel>

< P> & nbsp; < /P>

< asp: Panel id=" Panel4" runat=" server" Font-Names=" Verdana" Font-Size=" XX-Small" ForeColor=" White" =" 60px" HorizontalAlign=" Justify" >

< P> Руководство: Каждый электронный экземпляр литературы (файл) должен иметь описание для удобного поиска. В описании файла вы должны указать несколько параметров и их& nbsp; значений (например: Автор-Иванов И.И.) Для удобного поиска рекомендуется обязательно указывать автора, заглавие и дисциплину. Остальные параметры - по желанию и необходимости. Имя файла система может& nbsp; изменить (при совпадении имён), что не помешает поиску если вы правильно создали описание документа. Убедительная просьба: проверяйте файлы на отсутствие вирусов и при возможности присылайте их в форматах архивов.zip и.rar. Спасибо.& nbsp; < /P>

< /asp: Panel> < /TD>

< TD>

< asp: ListBox id=" ListBoxTableUslov" runat=" server" Height=" 46px" Visible=" False" > < /asp: ListBox> < /TD>

< /TR>

< /TABLE>

< /form>

< /body>

< /HTML>


WebFormDbDelete.aspx:

< %@ Page language=" c#" Codebehind=" WebFormDBDelete.aspx.cs" AutoEventWireup=" false" Inherits=" Biblioteka.WebFormDBDelete" %>

<! DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.0 Transitional//EN" >

< HTML>

< HEAD>

< title> WebFormDBDelete< /title>

< meta name=" GENERATOR" Content=" Microsoft Visual Studio.NET 7.1" >

< meta name=" CODE_LANGUAGE" Content=" C#" >

< meta name=" vs_defaultClientScript" content=" JavaScript" >

< meta name=" vs_targetSchema" content=" http: //schemas.microsoft.com/intellisense/ie5" >

< /HEAD>

< body bgColor=" #000033" >

< form id=" Form1" method=" post" runat=" server" >

< TABLE id=" Table1" border=" 0" >

< TR>

< TD width=" 10%" > < /TD>

< TD align=" center" >

< asp: HyperLink id=" HyperLink2" runat=" server" Font-Names=" Verdana" Font-Size=" XX-Small" ForeColor=" Gold" =" default.aspx" > Поиск литературы< /asp: HyperLink> & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

< asp: HyperLink id=" HyperLink1" runat=" server" NavigateUrl=" WebFormDBAdd.aspx" ForeColor=" Gold" Size=" XX-Small" Font-Names=" Verdana" > Добавить документ< /asp: HyperLink> < /TD>

< TD width=" 10%" > < /TD>

< /TR>

< TR>

< TD> < /TD>

< TD style=" TEXT-ALIGN: center" >

< P align=" center" >

< asp: Panel id=" Panel1" runat=" server" Font-Names=" Verdana" Font-Size=" X-Small" Height=" 228px" =" 1067px" BorderColor=" Aqua" BorderStyle=" Ridge" BorderBackColor=" Orange"

HorizontalAlign=" Center" > < /P>

< P> Показать документы, у которых:

< asp: DropDownList id=" DropDownList1" runat=" server"

имеет значение:

< asp: TextBox id=" TextBox1" runat=" server" Width=" 223px" > < /asp: TextBox>

< /P>

< P align=" center" >

< asp: Button id=" Button1" runat=" server" Text=" Сформировать список" > < /asp: Button> < /P>

< P align=" center" > & nbsp; < /P>

< asp: Panel id=" Panel2" runat=" server" >

< P align=" center" >

< asp: Table id=" TableSpisok" runat=" server" ForeColor=" Black" Font-Size=" X-Small" Font-Names=" Verdana" =" Gold" BorderBorderStyle=" Ridge" BorderColor=" Silver" GridLines=" Horizontal" CellSpacing=" 0" CellPadding=" 0" > < /asp: Table> < /P> ключ

удаляемого документа:

< asp: DropDownList id=" DropDownList2" runat=" server"

< asp: Button id=" Button2" runat=" server" Text=" Удалить выбранный документ" > < /asp: Button>

< asp: Label id=" Label1" runat=" server" > < /asp: Label> < /asp: Panel> < /asp: Panel>

< /TD>

< TD>

< asp: ListBox id=" ListBox2" runat=" server" Height=" 46px" Visible=" False" > < /asp: ListBox>

< asp: Panel id=" Panel4" runat=" server" Font-Names=" Verdana" Font-Size=" XX-Small" ForeColor=" White" =" 60px" HorizontalAlign=" Justify" >

< P> Для удаления электронных документов пользователь должен указать уникальный ключ удаляемого документа. Чтобы узнать этот ключ, необходимо выбрать один из словарей в элементе раскрывающийся список и ввести значение, которое соответствует документу, который пользователь желает удалить (например, словарь «дисциплина», значение «физика»). После этого нужно нажать на кнопку «сформировать список». При этом на странице появится список документов, имеющих в указанном словаре то же значение, что и введённое пользователем. В этом списке указаны уникальные ключи документов и краткое описание этих документов (автор, дисциплина, заглавие). Все ключи документов будут помещены в элемент раскрывающийся список, в котором пользователь должен будет выбрать нужный ключ и нажать на кнопку «удалить документ из базы данных». < /P> < /asp: Panel> < /TD>

< /TR>

< /TABLE>

& nbsp;

< /form>

< /body>

< /HTML>

Скрипт-код на языке C#:

using System; System.Collections; System.ComponentModel; System.Data; System.Drawing; System.Web; System.Web.SessionState; System.Web.UI; System.Web.UI.WebControls; System.Web.UI.HtmlControls; Biblioteka

{

/// < summary>

/// Summary description for WebForm1.

/// < /summary> class WebForm1: System.Web.UI.Page

{System.Web.UI.WebControls.Panel Panel1; System.Web.UI.WebControls.TextBox TextBox1; System.Web.UI.WebControls.DropDownList DropDownList1; System.Web.UI.WebControls.DropDownList DropDownList2; System.Web.UI.WebControls.DropDownList DropDownList3; System.Web.UI.WebControls.Table TableUslov; System.Web.UI.WebControls.Button Button1; System.Web.UI.WebControls.ImageButton ImageButton3; System.Web.UI.WebControls.ListBox ListBoxTableUslov; System.Web.UI.WebControls.Panel PanelSoed; System.Web.UI.WebControls.ListBox ListBox2; System.Web.UI.WebControls.Table TableDocInfo; System.Web.UI.WebControls.Panel Panel5; System.Web.UI.WebControls.ImageButton ImageButton4; System.Web.UI.WebControls.ImageButton ImageButton5; System.Web.UI.WebControls.Button Button2; System.Web.UI.WebControls.HyperLink HyperLink1; System.Web.UI.WebControls.HyperLink HyperLink2; System.Web.UI.WebControls.Label LabelIZ; System.Web.UI.WebControls.HyperLink HyperLinkDownload; System.Web.UI.WebControls.Panel Panel2; void Page_Load(object sender, System.EventArgs e)

{(Session[" DocNom" ]! =null).порядковыйНомерТекущегоДокумента=Convert.ToInt32(Session[" DocNom" ]); ();

}

#region Web Form Designer generated codeprotected void OnInit(EventArgs e)

{();.OnInit(e);

}void InitializeComponent()

{.Button1.Click += new System.EventHandler(this.Button1_Click);.TableUslov.DataBinding += new System.EventHandler(this.TableUslov_DataBinding);.Button2.Click += new System.EventHandler(this.Button2_Click);.ImageButton3.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton3_Click);.ImageButton4.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton4_Click);.ImageButton5.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton5_Click);.Load += new System.EventHandler(this.Page_Load);.PreRender += new System.EventHandler(this.WebForm1_PreRender);

}

#endregion

//-----------------------------------------------------------

#region глобальные переменныеslovari

{string TableName; string RussianCaption; bool used;

}uslov

{string Словарь; string Условие; string Терм; string Операнд; string Таблица;

}[] словарь;

uslov[] условие;

порядковыйНомерТекущегоДокумента=0;

#endregion

//-----------------------------------------------------------

private void Button1_Click(object sender, System.EventArgs e)

{.ListBoxTableUslov.Items.Add(this.DropDownList2.SelectedItem.Text+" |" +.DropDownList1.SelectedItem.Text+" |" +.TextBox1.Text+" |" +.DropDownList3.SelectedItem.Text);.TextBox1.Text=" ";

//this.TableUslov.DataBind();

}void WebForm1_PreRender(object sender, System.EventArgs e)

{(Session[" DocNom" ]! =null).порядковыйНомерТекущегоДокумента=Convert.ToInt32(Session[" DocNom" ]); (this.ListBoxTableUslov.Items.Count> 0)

{.LabelIZ.Text=Convert.ToString(this.порядковыйНомерТекущегоДокумента+1)+" из " +Convert.ToString(this.ListBox2.Items.Count);.ImageButton3.Visible=true;.PanelSoed.Visible=true;.Panel2.Visible=true;

}

{.ImageButton3.Visible=false;.PanelSoed.Visible=false;.Panel2.Visible=false;

}.TableUslov.DataBind(); (this.ListBox2.Items.Count< =0).Panel5.Visible=false;

{.Panel5.Visible=true; ();

}

}void TableUslov_DataBinding(object sender, System.EventArgs e)

{(int i=0; i< this.ListBoxTableUslov.Items.Count; i++)

{(i==0)

{[] данные=this.ListBoxTableUslov.Items[i].Text.Split(" |".ToCharArray()); tr=new TableRow();.BackColor=Color.Orange; tc1=new TableCell();.Text=данные[0];.Cells.Add(tc1); tc2=new TableCell();.Text=данные[1];.Cells.Add(tc2); tc3=new TableCell();.Text=данные[2];.Cells.Add(tc3);.TableUslov.Rows.Add(tr);.TableUslov.Rows[0].Cells[0].Width=System.Web.UI.WebControls.Unit.Parse(" 25%" );.TableUslov.Rows[0].Cells[1].Width=System.Web.UI.WebControls.Unit.Parse(" 25%" );.TableUslov.Rows[0].Cells[2].Width=System.Web.UI.WebControls.Unit.Parse(" 50%" );

}

{[] данные=this.ListBoxTableUslov.Items[i].Text.Split(" |".ToCharArray()); tr1=new TableRow();.Height=40; tc1111=new TableCell();.Text=" ";.Cells.Add(tc1111); tc4=new TableCell();.Text=данные[3];.HorizontalAlign=System.Web.UI.WebControls.HorizontalAlign.Right;.Cells.Add(tc4);.TableUslov.Rows.Add(tr1); tr=new TableRow();.BackColor=Color.Orange; tc1=new TableCell();.Text=данные[0];.Cells.Add(tc1); tc2=new TableCell();.Text=данные[1];.Cells.Add(tc2); tc3=new TableCell();.Text=данные[2];.Cells.Add(tc3);.TableUslov.Rows.Add(tr);

}

}

}void ReadDocInfo()

{

#region чтаем инфо о документе(this.ListBox2.Items.Count> 0)

{.HyperLinkDownload.Visible=false;.TableDocInfo.Rows.Clear(); (this.порядковыйНомерТекущегоДокумента> this.ListBox2.Items.Count-1).порядковыйНомерТекущегоДокумента=this.ListBox2.Items.Count-1;.TableDocInfo.Rows.Add(new TableRow());.TableDocInfo.Rows[0].Cells.Add(new TableCell());.TableDocInfo.Rows[0].Cells[0].Text=" Тип";.TableDocInfo.Rows[0].Cells[0].TableCell());.TableDocInfo.Rows[0].Cells[1].Text=" Значение";.TableDocInfo.Rows[0].Cells[1].Width=System.Web.UI.WebControls.Unit.Parse(" 75%" );

//++++++++++++++.Data.DataSet ds=new DataSet();.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @" Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Request.MapPath(Request.ApplicationPath)+" /vgtu_lib.mdb" );.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter(" SELECT * FROM METAIDX", oleDbConnection1);.Data.OleDb.OleDbCommand команда=new System.Data.OleDb.OleDbCommand(" SELECT * FROM METAIDX", oleDbConnection1);.SelectCommand=команда;.Open(); (int k=0; k< словарь.Length; k++)

{

#region отбор ключей терм

команда.CommandText=" SELECT IDX_ID FROM IDX" +this.словарь[k].TableName+" X WHERE DOC_ID=" +this.ListBox2.Items[this.порядковыйНомерТекущегоДокумента].Text+" ";

try

{.Tables.Clear();.Fill(ds); //с этого момента датасет хранит ключи подходящих термов

}

{

}

#endregion

{(ds.Tables[0].Rows.Count> 0) //если есть подходящие термы, то выбираем значения

{

#region отбор терм

команда.CommandText=" SELECT TERM FROM IDX" +this.словарь[k].TableName+" WHERE IDX_ID IN ("; (int i=0; i< ds.Tables[0].Rows.Count; i++)

{(i! =ds.Tables[0].Rows.Count-1)

команда.CommandText+=" " +ds.Tables[0].Rows[i][0].ToString()+", ";

команда.CommandText+=" " +ds.Tables[0].Rows[i][0].ToString()+" ";

}

команда.CommandText+=" )";

{.Tables.Clear();

adapter1.Fill(ds); //с этого момента датасет хранит термы

}

{

}

#endregion(ds.Tables[0].Rows.Count> 0)

{.TableDocInfo.Rows.Add(new TableRow());.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells.Add(new TableCell());.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[0].Text=this.словарь[k].RussianCaption;.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells.Add(new TableCell());.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text=" "; (int i=0; i< ds.Tables[0].Rows.Count; i++)

{(i! =ds.Tables[0].Rows.Count-1)

{.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+= ds.Tables[0].Rows[i][0].ToString()+" < br> ";

}

{(this.словарь[k].RussianCaption==" Имя файла" )

{.HyperLinkDownload.Visible=true;.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=" < a id='HiperLink12345' href='Files/" +ds.Tables[0].Rows[i][0].ToString()+" '> ";.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=ds.Tables[0].Rows[i][0].ToString();.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=" < /a> ";.HyperLinkDownload.NavigateUrl=" Files/" +ds.Tables[0].Rows[i][0].ToString();.HyperLinkDownload.Text=" Скачать файл";

}.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=ds.Tables[0].Rows[i][0].ToString();

}

}

}}}

{

}

}.Close();

//++++++++++++++

}

#endregion

}

//-----------------------------------------------------------void ReadSlovari()

{

#region заполняем....Data.DataSet ds=new DataSet();.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @" Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +Request.MapPath(Request.ApplicationPath)+" /vgtu_lib.mdb" );.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter(" SELECT * FROM METAIDX", oleDbConnection1);.Open();.Fill(ds);.Close();.словарь=new slovari[ds.Tables[0].Rows.Count]; (int i=0; i< ds.Tables[0].Rows.Count; i++)

{[] sep=new char[1]; [0]=', '; [] tabnamestemp=new string[ds.Tables[0].Rows[i][" TAGS" ].ToString().Split(sep).Length]; =ds.Tables[0].Rows[i][" TAGS" ].ToString().Split(sep);.словарь[i].TableName=tabnamestemp[0];.словарь[i].RussianCaption=ds.Tables[0].Rows[i][" CAPTION" ].ToString();

}(Session[" PageCreated" ]! =null)

{

//for(int i=0; i< ds.Tables[0].Rows.Count; i++)

//this.словарь[i].used=this.CheckBoxList1.Items[i].Selected;

}

{[" PageCreated" ]=true;

}(this.DropDownList2.Items.Count==0)

{.DropDownList2.Items.Clear(); (int i=0; i< ds.Tables[0].Rows.Count; i++)

{.словарь[i].TableName=ds.Tables[0].Rows[i][" TAGS" ].ToString();.словарь[i].RussianCaption=ds.Tables[0].Rows[i][" CAPTION" ].ToString();.DropDownList2.Items.Add(this.словарь[i].RussianCaption);

}

}

#endregion;

}void ImageButton3_Click(object sender, System.Web.UI.ImageClickEventArgs e)

{

#region ищем документы.порядковыйНомерТекущегоДокумента=0; [" DocNom" ]=this.порядковыйНомерТекущегоДокумента.ToString();

#region подготовка.....ListBox2.Items.Clear();

//ReadSlovari();

условие=new uslov[this.ListBoxTableUslov.Items.Count]; (int i=0; i< this.ListBoxTableUslov.Items.Count; i++)

{[] str=new string[4]; [] sep=new char[1]; [0]='|'; =this.ListBoxTableUslov.Items[i].Text.Split(sep);

условие[i].Словарь=str[0];

условие[i].Условие=str[1];

условие[i].Терм=str[2]; (i> 0)

условие[i-1].Операнд=str[3];

условие[i].Операнд=str[3];

for(int k=0; k< словарь.Length; k++)(str[0].Trim()==словарь[k].RussianCaption.Trim())

{.словарь[k].used=true;.условие[i].Таблица=this.словарь[k].TableName;

}

}.Data.DataSet ds=new DataSet();

//System.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @" Integrated Security=SSPI; User ID=Администратор; Data Source=" " DIPLOM20-27A214" "; Tag with column collation when possible=False; Initial Catalog=vgtu_lib; Use Procedure for Prepare=1; Auto Translate=True; Persist Security Info=False; Provider=" " SQLOLEDB.1" "; Workstation ID=" " DIPLOM20-27A214" "; Use Encryption for Data=False; Packet Size=4096" );.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @" Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" +Request.MapPath(Request.ApplicationPath)+" /vgtu_lib.mdb" );.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter(" SELECT * FROM METAIDX", oleDbConnection1);.Data.OleDb.OleDbCommand команда=new System.Data.OleDb.OleDbCommand(" SELECT * FROM METAIDX", oleDbConnection1);.SelectCommand=команда;.Open();

//++++++++++++++++

#endregion

#region отбор ключей терм.Tables.Clear(); (int w=0; w< условие.Length; w++)

{

//команда.CommandText=" SELECT IDX_ID FROM ";

команда.CommandText=" SELECT ";

команда.CommandText+=" IDX" +this.условие[w].Таблица+".IDX_ID ";

команда.CommandText+=" FROM ";

команда.CommandText+=" IDX" +this.условие[w].Таблица+" ";

команда.CommandText+=" WHERE "; (условие[w].Терм.Trim()! =" " | условие[w].Условие==" Есть значение" | условие[w].Условие==" Нет значения" )

{(условие[w].Условие)

{" Равно": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM='"; break; " Не равно": команда.CommandText+=" NOT " +" IDX" +this.условие[w].Таблица+"." +" TERM='"; break; " Включает": команда.CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM LIKE '%"; break; " Не включает": команда. CommandText+=" NOT " +" IDX" +this.условие[w]. Таблица+"." +" TERM LIKE '%"; break; " Начинается с": команда.CommandText+=" IDX" +this.условие[w]. Таблица+"." +" TERM LIKE '"; break; " Не начинается с": команда. CommandText+=" NOT " +" IDX" +this.условие[w].Таблица+"." +" TERM LIKE '"; break; " Больше": команда.CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM > '"; break; " Больше или равно": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM > ='"; break; " Меньше": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM < '"; break; " Меньше или равно": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM < ='"; break; " Есть значение": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM IS NOT NULL"; break; " Нет значения": команда. CommandText+=" IDX" +this.условие[w].Таблица+"." +" TERM IS NULL"; break;

}(условие[w].Условие! =" Есть значение" & условие[w].Условие! =" Нет значения" )

команда.CommandText+=условие[w].Терм; (условие[w].Условие)

{

case " Равно": команда.CommandText+=" '"; break; " Не равно": команда.CommandText+=" '"; break; " Включает": команда.CommandText+=" %'"; break;

case " Не включает": команда.CommandText+=" %'"; break; " Начинается с": команда.CommandText+=" %'"; break; " Не начинается с": команда.CommandText+=" %'"; break;

case " Больше": команда.CommandText+=" '"; break;

case " Больше или равно": команда.CommandText+=" '"; break;

case " Меньше": команда.CommandText+=" '"; break;

case " Меньше или равно": команда.CommandText+=" '"; break;

}

}

{.SelectCommand=команда;.Tables.Add();

adapter1.Fill(ds.Tables[ds.Tables.Count-1]); //с этого момента датасет хранит ключи подходящих термов

}

{

}

}

#endregionFindKeys=true;

{stroka=ds.Tables[0].Rows[0][0].ToString();

}

{=false;

}

//ds.WriteXml(Request.MapPath(Request.ApplicationPath)+" /1.xml" );

if(FindKeys) //если есть подходящие термы, то выбираем ключи документов

{

#region отбор ключей документов

команда.CommandText=" ";

//System.Data.DataSet ds2=new DataSet(); (int w=0; w< условие.Length; w++)

{

команда.CommandText+=" SELECT IDX" +this.условие[w].Таблица+

" X.DOC_ID FROM IDX" +this.условие[w].Таблица+" X WHERE IDX" +.условие[w].Таблица+" X.IDX_ID IN("; (ds.Tables[w].Rows.Count> 0)

{(int i=0; i< ds.Tables[w].Rows.Count; i++)(i! =ds.Tables[w].Rows.Count-1)

команда.CommandText+=" " +ds.Tables[w].Rows[i][0].ToString()+", ";

команда.CommandText+=" " +ds.Tables[w].Rows[i][0].ToString()+" ";

{

команда.CommandText+=" 'невозможная комбинация'";

}

команда.CommandText+=" )";

(w! =0)(условие[w].Операнд==" ИЛИ" | w==условие.Length-1)

for(int i=w-1; i> =0; i--)

{(условие[i].Операнд! =" ИЛИ" )

команда.CommandText+=" )";;

}(w! =условие.Length-1)

{(условие[w].Операнд==" И" )

команда.CommandText+=" AND IDX" +this.условие[w].Таблица+" X.DOC_ID IN ("; (условие[w].Операнд==" ИЛИ" )

команда.CommandText+=" UNION "; (условие[w].Операнд==" И НЕ" )

команда.CommandText+=" AND NOT IDX" +this.условие[w].Таблица+" X.DOC_ID IN (";

}

}

{.SelectCommand=команда;.Tables.Clear();

adapter1.Fill(ds); //с этого момента датасет хранит ключи подходящих документов

}

{

}

//добавим ключи подходящих доков в список

try

{stroka=ds.Tables[0].Rows[0][0].ToString();

}

{=false;

}

//this.Label1.Text+=" /////////" +ds.Tables[0].Rows[0][0].ToString(); (FindKeys)(int i=0; i< ds.Tables[0].Rows.Count; i++)

{include=false; (int j=0; j< this.ListBox2.Items.Count; j++)(this.ListBox2.Items[j].Text==ds.Tables[0].Rows[i][0].ToString())=true; (! include).ListBox2.Items.Add(ds.Tables[0].Rows[i][0].ToString());

}

#endregion

}

//+++++++++++++++++.Close(); (this.ListBox2.Items.Count> 0)

{.Panel5.Visible=true;

}

//this.TableUslov.DataBind();

#endregion

}void ImageButton4_Click(object sender, System.Web.UI.ImageClickEventArgs e)

{(this.порядковыйНомерТекущегоДокумента> 0).порядковыйНомерТекущегоДокумента--; [" DocNom" ]=this.порядковыйНомерТекущегоДокумента.ToString();

}void ImageButton5_Click(object sender, System.Web.UI.ImageClickEventArgs e)

{(this.порядковыйНомерТекущегоДокумента< this.ListBox2.Items.Count-1).порядковыйНомерТекущегоДокумента++; [" DocNom" ]=this.порядковыйНомерТекущегоДокумента.ToString();

}void Button2_Click(object sender, System.EventArgs e)

{(this.ListBoxTableUslov.Items.Count> 0)

{.ListBoxTableUslov.Items.RemoveAt(this.ListBoxTableUslov.Items.Count-1);

}

}}}


Приложение Б

Диаграмма DFD

 


Приложение В

Диаграмма вариантов использования

 


Поделиться:



Последнее изменение этой страницы: 2020-02-17; Просмотров: 63; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.388 с.)
Главная | Случайная страница | Обратная связь