Разработка подсистемы учёта и поиска электронной литературы
Формирование требований к подсистеме учёта и поиска электронной литературы. Проектирование архитектуры, интерфейса программного средства. Организация взаимодействия подсистемы с базой данных, руководство пользователя. Диаграмма вариантов использования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.08.2012 |
Размер файла | 235,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
</asp:DropDownList> значение:
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox></P>
<P>
<asp:Button id="Button1" runat="server" Text="Добавить условие"></asp:Button></P>
</asp:Panel>
<P> </P>
<P> </P>
<P>
<asp:Panel id="Panel2" runat="server" Width="714px" BackColor="Gold">
<P>Условия отбора литературы:</P>
<asp:Table id="TableUslov" runat="server" Font-Size="X-Small" Font-Names="Verdana" ForeColor="Black"
BackColor="Gold" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Silver" Width="717px"
Height="48px" GridLines="Horizontal" CellSpacing="0" CellPadding="0" Font-Bold="True"></asp:Table>
<asp:Button id="Button2" runat="server" Width="203px" Text="Удалить последнее условие"></asp:Button>
</asp:Panel>
<P></P>
<P>
<asp:ImageButton id="ImageButton3" runat="server" ImageUrl="Images/button_find2.GIF" AlternateText="НАЙТИ!"
Height="45px" Width="150px"></asp:ImageButton></P>
<P> </P>
<P> </P>
<P> </P>
<P>
<asp:Panel id="Panel5" runat="server" Height="64px" Width="767px">
<P>
<asp:ImageButton id="ImageButton4" runat="server" Width="150px" Height="31px" AlternateText="Предыдущий"
ImageUrl="Images/buttonPrev.GIF"></asp:ImageButton>
<asp:Label id="LabelIZ" runat="server" BackColor="White" Width="156px" Height="26px">0 из 0</asp:Label>
<asp:ImageButton id="ImageButton5" runat="server" Width="150px" Height="31px" AlternateText="Следующий "
ImageUrl="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"
BackColor="Gold" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Silver" Width="720px"
Height="48px" 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" Width="56px" Visible="False"></asp:ListBox>
<asp:ListBox id="ListBox2" runat="server" Height="46px" Width="57px" Visible="False"></asp:ListBox></TD>
<TD>
<asp:Panel id="Panel6" runat="server">Для поиска литературы необходимо сформировать список критериев отбора литературы. Для этого необходимо выбрать словарь, по которому будет проводиться поиск, значение, условие отбора и способ объединения условий отбора. Словарь выбирается с помощью элемента раскрывающийся список, в котором перечислены все словари. Далее необходимо указать одно из условий отбора, перечисленных в элементе управления раскрывающийся список, (например, «включает», «больше»). Затем пользователь указывает значение, по которому будет проводиться сравнение. Это значение вводится в элемент управления текстовое поле. Далее необходимо выбрать способ объединения критериев отбора («и», «или») в элементе раскрывающийся список. После этого нужно нажать на кнопку «добавить условие». При этом указанные пользователем значения будут добавлены в таблицу, отображающую список критериев поиска. Для поиска необходимо, чтобы таблица содержала хотя бы один критерий отбора. После указания всех необходимых параметров отбора нужно нажать на кнопку «Найти». При этом на странице появится подробное описание первого документа, удовлетворяющего критериям отбора. Перейти к описанию другого документа можно с помощью кнопок «следующий» и «предыдущий». Получить копию электронного документа (скачать) можно двумя способами: нажать мышью на ссылку «скачать», либо щёлкнуть на имя файла, отображаемое в таблице как ссылка. После этого браузер откроет стандартный диалог загрузки файлов.</asp:Panel6>
</TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
WebFormLoginPass.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> </P>
<P align="center">
<TABLE id="Table1" width="100%" 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"
NavigateUrl="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" Width="458px" BorderColor="Aqua" BorderStyle="Ridge"
BorderWidth="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> логин:
<asp:TextBox id="TextBox1" runat="server" Width="157px"></asp:TextBox></P>
<P>пароль:
<asp:TextBox id="TextBox2" runat="server" Width="159px" TextMode="Password"></asp:TextBox></P>
<P align="right">
<asp:Button id="Button1" runat="server" Width="98px" Text="Войти"></asp:Button</P>
<P align="center"></asp:Panel>
<asp:Panel id="Panel2" runat="server" Font-Size="X-Small" Font-Names="Verdana" HorizontalAlign="Center"
BackColor="Orange" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Aqua" Width="458px"
Height="168px" 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>
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="WebFormDBDelete.aspx" ForeColor="Black"
Font-Size="X-Small" Font-Names="Verdana" Font-Bold="True">Удалить документ</asp:HyperLink></P>
<P align="center"> </P>
<P align="center">
<asp:Label id="Label1" runat="server" Font-Size="XX-Small" Font-Names="Verdana" Width="440px">Если вы желаете изменить параметры документа, то следует его сначала удалить, а затем снова добавить с новыми параметрами описания.</asp:Label></P>
<P align="center"></asp:Panel></P>
</TD>
<TD></TD>
</TR>
</TABLE>
</P>
</form>
</body>
</HTML>
WebFormDBAdd.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" width="100%" 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"
Font-Names="Verdana">Поиск литературы</asp:hyperlink>
<asp:hyperlink id="HyperLink1" runat="server" NavigateUrl="WebFormDBDelete.aspx" ForeColor="Gold"
Font-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"
BackColor="Orange" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Aqua" Width="727px" Height="352px"></P>
<P> </P>
<P align="center">
<asp:Panel id="Panel2" runat="server" Font-Size="X-Small" Font-Names="Verdana" BackColor="Orange"
BorderWidth="4px" BorderStyle="Ridge" BorderColor="Silver" Width="717px" Height="152px"></P>
<P>
<P>добавьте описание экземпляра литературы:</P>
<P>параметр:
<asp:DropDownList id="DropDownList1" runat="server" ForeColor="White" BackColor="Navy" Width="136px"></asp:DropDownList> значение:
<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"
runat="server"></P>
<P align="center"> </P>
<P align="center">
<asp:Panel id="Panel3" runat="server" BackColor="Gold" Width="714px" Height="226px" Visible="False"> </P>
Описание документа:
<P align="center">
<asp:Table id="TableUslov" runat="server" ForeColor="Black" Font-Size="X-Small" Font-Names="Verdana"
BackColor="Gold" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Silver" Width="717px"
Height="48px" Font-Bold="True" CellPadding="0" CellSpacing="0" GridLines="Horizontal"></asp:Table>
<asp:Button id="Button2" runat="server" Width="203px" Text="Удалить последнее значение"></asp:Button></P>
<P align="center">
<asp:ImageButton id="ImageButton3" runat="server" Width="150px" Height="45px" ImageUrl="Images/button_ADD.GIF"
AlternateText="Добавить документ в базу!"></asp:ImageButton></P>
<P align="center"> </P>
</asp:Panel>
<P align="center">
<asp:Label id="Label1" runat="server" Font-Size="X-Small" ForeColor="Black" Width="708px" Font-Bold="True"></asp:Label></P>
</asp:panel>
<P> </P>
<asp:Panel id="Panel4" runat="server" Font-Names="Verdana" Font-Size="XX-Small" ForeColor="White"
Height="60px" Width="768px" HorizontalAlign="Justify">
<P>Руководство: Каждый электронный экземпляр литературы (файл) должен иметь описание для удобного поиска. В описании файла вы должны указать несколько параметров и их значений (например: Автор-Иванов И.И.) Для удобного поиска рекомендуется обязательно указывать автора, заглавие и дисциплину. Остальные параметры - по желанию и необходимости. Имя файла система может изменить (при совпадении имён), что не помешает поиску если вы правильно создали описание документа. Убедительная просьба: проверяйте файлы на отсутствие вирусов и при возможности присылайте их в форматах архивов.zip и.rar. Спасибо. </P>
</asp:Panel></TD>
<TD>
<asp:ListBox id="ListBoxTableUslov" runat="server" Width="56px" 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" width="100%" 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"
NavigateUrl="default.aspx">Поиск литературы</asp:HyperLink>
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl="WebFormDBAdd.aspx" ForeColor="Gold"
Font-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"
Width="1067px" BorderColor="Aqua" BorderStyle="Ridge" BorderWidth="4px" BackColor="Orange"
HorizontalAlign="Center"></P>
<P>Показать документы, у которых:
<asp:DropDownList id="DropDownList1" runat="server" Width="228px"></asp:DropDownList>
имеет значение:
<asp:TextBox id="TextBox1" runat="server" Width="223px"></asp:TextBox>
</P>
<P align="center">
<asp:Button id="Button1" runat="server" Width="158px" Text="Сформировать список"></asp:Button></P>
<P align="center"> </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"
BackColor="Gold" BorderWidth="4px" BorderStyle="Ridge" BorderColor="Silver" Width="1050px"
Height="40px" GridLines="Horizontal" CellSpacing="0" CellPadding="0"></asp:Table></P>ключ
удаляемого документа:
<asp:DropDownList id="DropDownList2" runat="server" Width="188px"></asp:DropDownList>
<asp:Button id="Button2" runat="server" Width="199px" Text="Удалить выбранный документ"></asp:Button>
<asp:Label id="Label1" runat="server"></asp:Label></asp:Panel></asp:Panel>
</TD>
<TD>
<asp:ListBox id="ListBox2" runat="server" Width="57px" Height="46px" Visible="False"></asp:ListBox>
<asp:Panel id="Panel4" runat="server" Font-Names="Verdana" Font-Size="XX-Small" ForeColor="White"
Height="60px" Width="768px" HorizontalAlign="Justify">
<P> Для удаления электронных документов пользователь должен указать уникальный ключ удаляемого документа. Чтобы узнать этот ключ, необходимо выбрать один из словарей в элементе раскрывающийся список и ввести значение, которое соответствует документу, который пользователь желает удалить (например, словарь «дисциплина», значение «физика»). После этого нужно нажать на кнопку «сформировать список». При этом на странице появится список документов, имеющих в указанном словаре то же значение, что и введённое пользователем. В этом списке указаны уникальные ключи документов и краткое описание этих документов (автор, дисциплина, заглавие). Все ключи документов будут помещены в элемент раскрывающийся список, в котором пользователь должен будет выбрать нужный ключ и нажать на кнопку «удалить документ из базы данных». </P></asp:Panel></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
Скрипт-код на языке C#:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Biblioteka
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class WebForm1: System.Web.UI.Page
{
protected System.Web.UI.WebControls.Panel Panel1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.DropDownList DropDownList1;
protected System.Web.UI.WebControls.DropDownList DropDownList2;
protected System.Web.UI.WebControls.DropDownList DropDownList3;
protected System.Web.UI.WebControls.Table TableUslov;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.ImageButton ImageButton3;
protected System.Web.UI.WebControls.ListBox ListBoxTableUslov;
protected System.Web.UI.WebControls.Panel PanelSoed;
protected System.Web.UI.WebControls.ListBox ListBox2;
protected System.Web.UI.WebControls.Table TableDocInfo;
protected System.Web.UI.WebControls.Panel Panel5;
protected System.Web.UI.WebControls.ImageButton ImageButton4;
protected System.Web.UI.WebControls.ImageButton ImageButton5;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.HyperLink HyperLink1;
protected System.Web.UI.WebControls.HyperLink HyperLink2;
protected System.Web.UI.WebControls.Label LabelIZ;
protected System.Web.UI.WebControls.HyperLink HyperLinkDownload;
protected System.Web.UI.WebControls.Panel Panel2;
private void Page_Load(object sender, System.EventArgs e)
{
if(Session["DocNom"]!=null)
this.порядковыйНомерТекущегоДокумента=Convert.ToInt32(Session["DocNom"]);
ReadSlovari();
}
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.TableUslov.DataBinding += new System.EventHandler(this.TableUslov_DataBinding);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.ImageButton3.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton3_Click);
this.ImageButton4.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton4_Click);
this.ImageButton5.Click += new System.Web.UI.ImageClickEventHandler(this.ImageButton5_Click);
this.Load += new System.EventHandler(this.Page_Load);
this.PreRender += new System.EventHandler(this.WebForm1_PreRender);
}
#endregion
//-----------------------------------------------------------
#region глобальные переменные
struct slovari
{
public string TableName;
public string RussianCaption;
public bool used;
}
struct uslov
{
public string Словарь;
public string Условие;
public string Терм;
public string Операнд;
public string Таблица;
}
slovari[] словарь;
uslov[] условие;
int порядковыйНомерТекущегоДокумента=0;
#endregion
//-----------------------------------------------------------
private void Button1_Click(object sender, System.EventArgs e)
{
this.ListBoxTableUslov.Items.Add(this.DropDownList2.SelectedItem.Text+"|"+
this.DropDownList1.SelectedItem.Text+"|"+
this.TextBox1.Text+"|"+
this.DropDownList3.SelectedItem.Text);
this.TextBox1.Text="";
//this.TableUslov.DataBind();
}
private void WebForm1_PreRender(object sender, System.EventArgs e)
{
if(Session["DocNom"]!=null)
this.порядковыйНомерТекущегоДокумента=Convert.ToInt32(Session["DocNom"]);
if(this.ListBoxTableUslov.Items.Count>0)
{
this.LabelIZ.Text=Convert.ToString(this.порядковыйНомерТекущегоДокумента+1)+" из "+Convert.ToString(this.ListBox2.Items.Count);
this.ImageButton3.Visible=true;
this.PanelSoed.Visible=true;
this.Panel2.Visible=true;
}
else
{
this.ImageButton3.Visible=false;
this.PanelSoed.Visible=false;
this.Panel2.Visible=false;
}
this.TableUslov.DataBind();
if(this.ListBox2.Items.Count<=0)
this.Panel5.Visible=false;
else
{
this.Panel5.Visible=true;
ReadDocInfo();
}
}
private void TableUslov_DataBinding(object sender, System.EventArgs e)
{
for(int i=0;i<this.ListBoxTableUslov.Items.Count;i++)
{
if(i==0)
{
string[] данные=this.ListBoxTableUslov.Items[i].Text.Split("|".ToCharArray());
TableRow tr=new TableRow();
tr.BackColor=Color.Orange;
TableCell tc1=new TableCell();
tc1.Text=данные[0];
tr.Cells.Add(tc1);
TableCell tc2=new TableCell();
tc2.Text=данные[1];
tr.Cells.Add(tc2);
TableCell tc3=new TableCell();
tc3.Text=данные[2];
tr.Cells.Add(tc3);
this.TableUslov.Rows.Add(tr);
this.TableUslov.Rows[0].Cells[0].Width=System.Web.UI.WebControls.Unit.Parse("25%");
this.TableUslov.Rows[0].Cells[1].Width=System.Web.UI.WebControls.Unit.Parse("25%");
this.TableUslov.Rows[0].Cells[2].Width=System.Web.UI.WebControls.Unit.Parse("50%");
}
else
{
string[] данные=this.ListBoxTableUslov.Items[i].Text.Split("|".ToCharArray());
TableRow tr1=new TableRow();
tr1.Height=40;
TableCell tc1111=new TableCell();
tc1111.Text=" ";
tr1.Cells.Add(tc1111);
TableCell tc4=new TableCell();
tc4.Text=данные[3];
tc4.HorizontalAlign=System.Web.UI.WebControls.HorizontalAlign.Right;
tr1.Cells.Add(tc4);
this.TableUslov.Rows.Add(tr1);
TableRow tr=new TableRow();
tr.BackColor=Color.Orange;
TableCell tc1=new TableCell();
tc1.Text=данные[0];
tr.Cells.Add(tc1);
TableCell tc2=new TableCell();
tc2.Text=данные[1];
tr.Cells.Add(tc2);
TableCell tc3=new TableCell();
tc3.Text=данные[2];
tr.Cells.Add(tc3);
this.TableUslov.Rows.Add(tr);
}
}
}
private void ReadDocInfo()
{
#region чтаем инфо о документе
if(this.ListBox2.Items.Count>0)
{
this.HyperLinkDownload.Visible=false;
this.TableDocInfo.Rows.Clear();
if(this.порядковыйНомерТекущегоДокумента>this.ListBox2.Items.Count-1)
this.порядковыйНомерТекущегоДокумента=this.ListBox2.Items.Count-1;
this.TableDocInfo.Rows.Add(new TableRow());
this.TableDocInfo.Rows[0].Cells.Add(new TableCell());
this.TableDocInfo.Rows[0].Cells[0].Text="Тип";
this.TableDocInfo.Rows[0].Cells[0].Width=System.Web.UI.WebControls.Unit.Parse("25%");
this.TableDocInfo.Rows[0].Cells.Add(new TableCell());
this.TableDocInfo.Rows[0].Cells[1].Text="Значение";
this.TableDocInfo.Rows[0].Cells[1].Width=System.Web.UI.WebControls.Unit.Parse("75%");
//++++++++++++++
System.Data.DataSet ds=new DataSet();
System.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ Request.MapPath(Request.ApplicationPath)+"/vgtu_lib.mdb");
System.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM METAIDX",oleDbConnection1);
System.Data.OleDb.OleDbCommand команда=new System.Data.OleDb.OleDbCommand("SELECT * FROM METAIDX",oleDbConnection1);
adapter1.SelectCommand=команда;
oleDbConnection1.Open();
for(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
{
ds.Tables.Clear();
adapter1.Fill(ds);//с этого момента датасет хранит ключи подходящих термов
}
catch
{
}
#endregion
try
{
if(ds.Tables[0].Rows.Count>0) //если есть подходящие термы, то выбираем значения
{
#region отбор терм
команда.CommandText="SELECT TERM FROM IDX"+this.словарь[k].TableName+" WHERE IDX_ID IN (";
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if(i!=ds.Tables[0].Rows.Count-1)
команда.CommandText+=""+ds.Tables[0].Rows[i][0].ToString()+", ";
else
команда.CommandText+=""+ds.Tables[0].Rows[i][0].ToString()+"";
}
команда.CommandText+=")";
try
{
ds.Tables.Clear();
adapter1.Fill(ds);//с этого момента датасет хранит термы
}
catch
{
}
#endregion
if(ds.Tables[0].Rows.Count>0)
{
this.TableDocInfo.Rows.Add(new TableRow());
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells.Add(new TableCell());
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[0].Text=this.словарь[k].RussianCaption;
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells.Add(new TableCell());
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text="";
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
if(i!=ds.Tables[0].Rows.Count-1)
{
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+= ds.Tables[0].Rows[i][0].ToString()+"<br>";
}
else
{
if(this.словарь[k].RussianCaption=="Имя файла")
{
this.HyperLinkDownload.Visible=true;
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+="<a id='HiperLink12345' href='Files/"+ds.Tables[0].Rows[i][0].ToString()+"'>";
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=ds.Tables[0].Rows[i][0].ToString();
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+="</a>";
this.HyperLinkDownload.NavigateUrl="Files/"+ds.Tables[0].Rows[i][0].ToString();
this.HyperLinkDownload.Text="Скачать файл";
}
else
this.TableDocInfo.Rows[this.TableDocInfo.Rows.Count-1].Cells[1].Text+=ds.Tables[0].Rows[i][0].ToString();
}
}
}}}
catch
{
}
}
oleDbConnection1.Close();
//++++++++++++++
}
#endregion
}
//-----------------------------------------------------------
private void ReadSlovari()
{
#region заполняем...
System.Data.DataSet ds=new DataSet();
System.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Request.MapPath(Request.ApplicationPath)+"/vgtu_lib.mdb");
System.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM METAIDX",oleDbConnection1);
oleDbConnection1.Open();
adapter1.Fill(ds);
oleDbConnection1.Close();
this.словарь=new slovari[ds.Tables[0].Rows.Count];
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
char[] sep=new char[1];
sep[0]=',';
string[] tabnamestemp=new string[ds.Tables[0].Rows[i]["TAGS"].ToString().Split(sep).Length];
tabnamestemp=ds.Tables[0].Rows[i]["TAGS"].ToString().Split(sep);
this.словарь[i].TableName=tabnamestemp[0];
this.словарь[i].RussianCaption=ds.Tables[0].Rows[i]["CAPTION"].ToString();
}
if(Session["PageCreated"]!=null)
{
//for(int i=0;i<ds.Tables[0].Rows.Count;i++)
//this.словарь[i].used=this.CheckBoxList1.Items[i].Selected;
}
else
{
Session["PageCreated"]=true;
}
if(this.DropDownList2.Items.Count==0)
{
this.DropDownList2.Items.Clear();
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
this.словарь[i].TableName=ds.Tables[0].Rows[i]["TAGS"].ToString();
this.словарь[i].RussianCaption=ds.Tables[0].Rows[i]["CAPTION"].ToString();
this.DropDownList2.Items.Add(this.словарь[i].RussianCaption);
}
}
#endregion;
}
private void ImageButton3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
#region ищем документы
this.порядковыйНомерТекущегоДокумента=0;
Session["DocNom"]=this.порядковыйНомерТекущегоДокумента.ToString();
#region подготовка....
this.ListBox2.Items.Clear();
//ReadSlovari();
условие=new uslov[this.ListBoxTableUslov.Items.Count];
for(int i=0;i<this.ListBoxTableUslov.Items.Count;i++)
{
string[] str=new string[4];
char[] sep=new char[1];
sep[0]='|';
str=this.ListBoxTableUslov.Items[i].Text.Split(sep);
условие[i].Словарь=str[0];
условие[i].Условие=str[1];
условие[i].Терм=str[2];
if(i>0)
условие[i-1].Операнд=str[3];
else
условие[i].Операнд=str[3];
for(int k=0;k<словарь.Length;k++)
if(str[0].Trim()==словарь[k].RussianCaption.Trim())
{
this.словарь[k].used=true;
this.условие[i].Таблица=this.словарь[k].TableName;
}
}
System.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");
System.Data.OleDb.OleDbConnection oleDbConnection1=new System.Data.OleDb.OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Request.MapPath(Request.ApplicationPath)+"/vgtu_lib.mdb");
System.Data.OleDb.OleDbDataAdapter adapter1=new System.Data.OleDb.OleDbDataAdapter("SELECT * FROM METAIDX",oleDbConnection1);
System.Data.OleDb.OleDbCommand команда=new System.Data.OleDb.OleDbCommand("SELECT * FROM METAIDX",oleDbConnection1);
adapter1.SelectCommand=команда;
oleDbConnection1.Open();
//++++++++++++++++
#endregion
#region отбор ключей терм
ds.Tables.Clear();
for(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 ";
if(условие[w].Терм.Trim()!="" | условие[w].Условие=="Есть значение" | условие[w].Условие=="Нет значения")
{
switch(условие[w].Условие)
{
case "Равно": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM='";break;
case "Не равно": команда.CommandText+="NOT "+"IDX"+this.условие[w].Таблица+"."+"TERM='";break;
case "Включает": команда.CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM LIKE '%";break;
case "Не включает": команда. CommandText+="NOT "+"IDX"+this.условие[w]. Таблица+"."+"TERM LIKE '%";break;
case "Начинается с": команда.CommandText+="IDX"+this.условие[w]. Таблица+"."+"TERM LIKE '";break;
case "Не начинается с": команда. CommandText+="NOT "+"IDX"+this.условие[w].Таблица+"."+"TERM LIKE '";break;
case "Больше": команда.CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM >'";break;
case "Больше или равно": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM >='";break;
case "Меньше": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM <'"; break;
case "Меньше или равно": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM <='";break;
case "Есть значение": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM IS NOT NULL";break;
case "Нет значения": команда. CommandText+="IDX"+this.условие[w].Таблица+"."+"TERM IS NULL";break;
}
if(условие[w].Условие!="Есть значение" & условие[w].Условие!="Нет значения")
команда.CommandText+=условие[w].Терм;
switch(условие[w].Условие)
{
case "Равно":команда.CommandText+="'";break;
case "Не равно":команда.CommandText+="'";break;
case "Включает":команда.CommandText+="%'";break;
case "Не включает":команда.CommandText+="%'";break;
case "Начинается с":команда.CommandText+="%'";break;
case "Не начинается с":команда.CommandText+="%'";break;
case "Больше":команда.CommandText+="'";break;
case "Больше или равно":команда.CommandText+="'";break;
case "Меньше":команда.CommandText+="'";break;
case "Меньше или равно":команда.CommandText+="'";break;
}
}
try
{
adapter1.SelectCommand=команда;
ds.Tables.Add();
adapter1.Fill(ds.Tables[ds.Tables.Count-1]);//с этого момента датасет хранит ключи подходящих термов
}
catch
{
}
}
#endregion
bool FindKeys=true;
try
{
string stroka=ds.Tables[0].Rows[0][0].ToString();
}
catch
{
FindKeys=false;
}
//ds.WriteXml(Request.MapPath(Request.ApplicationPath)+"/1.xml");
if(FindKeys) //если есть подходящие термы, то выбираем ключи документов
{
#region отбор ключей документов
команда.CommandText="";
//System.Data.DataSet ds2=new DataSet();
for(int w=0;w<условие.Length;w++)
{
команда.CommandText+="SELECT IDX"+this.условие[w].Таблица+
"X.DOC_ID FROM IDX"+this.условие[w].Таблица+"X WHERE IDX"+
this.условие[w].Таблица+"X.IDX_ID IN(";
if(ds.Tables[w].Rows.Count>0)
{
for(int i=0;i<ds.Tables[w].Rows.Count;i++)
if(i!=ds.Tables[w].Rows.Count-1)
команда.CommandText+=""+ds.Tables[w].Rows[i][0].ToString()+",";
else
команда.CommandText+=""+ds.Tables[w].Rows[i][0].ToString()+"";
}
elsе
{
команда.CommandText+="'невозможная комбинация'";
}
команда.CommandText+=")";
if(w!=0)
if(условие[w].Операнд=="ИЛИ" | w==условие.Length-1)
for(int i=w-1;i>=0;i--)
{
if(условие[i].Операнд!="ИЛИ")
команда.CommandText+=")";
else
break;
}
if(w!=условие.Length-1)
{
if(условие[w].Операнд=="И")
команда.CommandText+="AND IDX"+this.условие[w].Таблица+"X.DOC_ID IN (";
if(условие[w].Операнд=="ИЛИ")
команда.CommandText+=" UNION ";
if(условие[w].Операнд=="И НЕ")
команда.CommandText+="AND NOT IDX"+this.условие[w].Таблица+"X.DOC_ID IN (";
}
}
try
{
adapter1.SelectCommand=команда;
ds.Tables.Clear();
adapter1.Fill(ds);//с этого момента датасет хранит ключи подходящих документов
}
catch
{
}
//добавим ключи подходящих доков в список
try
{
string stroka=ds.Tables[0].Rows[0][0].ToString();
}
catch
{
FindKeys=false;
}
//this.Label1.Text+="/////////"+ds.Tables[0].Rows[0][0].ToString();
if(FindKeys)
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
bool include=false;
for(int j=0;j<this.ListBox2.Items.Count;j++)
if(this.ListBox2.Items[j].Text==ds.Tables[0].Rows[i][0].ToString())
include=true;
if(!include)
this.ListBox2.Items.Add(ds.Tables[0].Rows[i][0].ToString());
}
#endregion
}
//+++++++++++++++++
oleDbConnection1.Close();
if(this.ListBox2.Items.Count>0)
{
this.Panel5.Visible=true;
}
//this.TableUslov.DataBind();
#endregion
}
private void ImageButton4_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(this.порядковыйНомерТекущегоДокумента>0)
this.порядковыйНомерТекущегоДокумента--;
Session["DocNom"]=this.порядковыйНомерТекущегоДокумента.ToString();
}
private void ImageButton5_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
if(this.порядковыйНомерТекущегоДокумента<this.ListBox2.Items.Count-1)
this.порядковыйНомерТекущегоДокумента++;
Session["DocNom"]=this.порядковыйНомерТекущегоДокумента.ToString();
}
private void Button2_Click(object sender, System.EventArgs e)
{
if(this.ListBoxTableUslov.Items.Count>0)
{
this.ListBoxTableUslov.Items.RemoveAt(this.ListBoxTableUslov.Items.Count-1);
}
}}}
Приложение Б
Диаграмма DFD
Приложение В
Диаграмма вариантов использования
Размещено на Allbest.ru
Подобные документы
Требования к подсистеме создания Scorm-пакетов. Построение диаграммы потоков данных. Проектирование программного средства. Выбор средств реализации подсистемы. Организация взаимодействия приложения с базой данных. Реализация пользовательского интерфейса.
курсовая работа [634,2 K], добавлен 16.08.2012Описание алгоритмов поиска пути. Диаграмма объектов предметной области. Разработка структурной схемы. Проектирование интерфейса пользователя. Выбор и обоснование комплекса программных средств. Разработка пользовательского меню. Диаграмма компонентов.
курсовая работа [3,5 M], добавлен 10.04.2015Выявление требований к информационной системе. Диаграмма вариантов использования. Проектирование информационного обеспечения с использованием семантических моделей. Проектирование пользовательского интерфейса. Реализация программы на Visual Studio.
дипломная работа [590,2 K], добавлен 28.08.2012Формирование требований к системе. Описание входной и выходной информации. Концептуальное и логическое проектирование структуры и пользовательского интерфейса. Выбор средств реализации подсистемы. Реализация функциональности программного средства.
курсовая работа [1,3 M], добавлен 28.08.2012Диагностический анализ системы управления предприятия, его организационной и функциональной структуры. Разработка проекта подсистемы учёта средств вычислительной техники, описание технического обеспечения базы данных. Характеристика программного продукта.
дипломная работа [7,2 M], добавлен 28.06.2011Создание программного продукта, предназначенного для автоматизированного учета гостиничных номеров, упрощения работы с базой данных, обеспечения быстрого поиска. Автоматизация резервирования номеров и регистрация постояльцев. Разработка экранных форм.
курсовая работа [1,8 M], добавлен 08.01.2014Требования на входные данные. Разработка диаграммы вариантов использования. Генерация учебно-тренировочных задач на основе текста учебного материала. Интерфейс программного средства. Реализация информационного обеспечения и функциональности подсистемы.
курсовая работа [576,6 K], добавлен 28.08.2012Разработка подсистемы отдела кадров, предназначенной для работы с базой данных в виде типизированного файла с расширением txt. Анализ возможности редактировать записи, осуществления выборки данных на основе правил отбора и построения графиков и диаграмм.
контрольная работа [125,3 K], добавлен 08.06.2011Стадии разработки программного продукта "BaseSurvey ECC" с помощью Delphi 2010 и SQLite. Проектирование интерфейса пользователя и разработка алгоритмов работы электронного журнала учёта осмотра мест происшествий. Разработка руководства пользователя.
курсовая работа [1,9 M], добавлен 12.07.2012Разработка базы данных и приложения для автоматизации ведения кадрового учёта предприятия. Формирование таблицы анкетных данных. Разработка графического интерфейса пользователя клиентских приложений. Возможность подключения к удаленной базе данных.
дипломная работа [47,6 K], добавлен 17.02.2009