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

Концептуальная схема базы данных Optov. Выбор средств разработки приложения. Структура его программного обеспечения. Проектирование приложения для учета приема товаров на склад, позволяющего осуществлять удаленный доступ через Internet к базе данных.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 07.08.2011
Размер файла 218,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Контрольная работа

по дисциплине: «Мировые информационные ресурсы»

Содержание

Введение

1 Описание предметной области

2 Выбор средств разработки

3 Проектирование пользовательского приложения

4 Логика диалога пользователя с web-приложением

5 Реализация связи приложения с базой данных

Заключение

Список литературы

Приложение А (обязательное) Листинги апплетов

Приложение Б (обязательное) Листинги cgi-приложений

Введение

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

Основными задачами, которые будут решаться в процессе выполнения проекта, являются:

· разработка структуры базы данных и реализация разработанной модели в рамках СУБД

· создание web-приложения учета приема товаров на склад.

1 Описание предметной области

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

Для заданной предметной области можно выделить наличие 3 сущностей (Рисунок 1).

Сущность «Товар» имеете следующие атрибуты:

· код товара - первичный ключ;

· наименование товара;

· цена товара;

· единица измерения товара;

· количесво товара;

· код контрагента, поставившего товар - внешний ключ;

· номер паспорта сотрудника, принявшего товар - внеший ключ.

Сущность «Сотрудник» содержит следующую информацию о сотруднике:

· номер паспорта сотрудника - первичный ключ;

· ФИО;

· занимаемая должность;

· телефонный номер сотрудника;

· ИНН.

Сущность «Контрагент» характеризуется следующими атрибутамии:

· код контрагента - первичный ключ;

· наименование организации;

· ФИО контрагента;

· телефонный номер организации;

· адрес организации.

Предметная область представлена базой данных Optov. В данной базе данных присутствуют 3 таблицы:

· tovar (товар);

· sotrudnik (сотрудник);

· kontragent (контрагент).

Концептуальная схема базы данных представлена на рисунке 1.

Рисунок 1 - Концептуальная схема базы данных Optov

Между сущностями имеет место идентифицирующая связь один ко многим без возможности Null значения.

Для обеспечения уникальности и строгой последовательности Кода контрагента используется триггер Kont_iD, срабатывающий до вставки кортежа в отношение Контрагент.

Для обеспечения уникальности номера паспорта сотрудника используется триггер Sotr_ID, срабатывающий до вставки кортежа в отношение Сотрудник. Этот триггер выдает сообщение об ошибке, если вставляемы номер паспорта уже существует.

Для обеспечения уникальности и строгой последовательности Кода товара используется триггер Tovar_iD, срабатывающий до вставки кортежа в отношение Товар.

2 Выбор средств разработки

Приложение будет написано с использованием Java-апплетов и CGI-програмы. Для разработки приложения будет использоваться технология «клиент-сервер».

Клиентская часть разрабатываемой системы будет реализована в рамках концепции «тонкого клиента» в виде web-обозревателя Internet Explorer, использующего сетевой протокол TCP/IP и протокол передачи гипертекста HTTP для обмена информацией с сервером. Эта технология использует web-сервер с модулями, реализующими обработку информации. Java-апплеты могут обмениваться информацией с сервером по протоколу HTTP, что обеспечивает единую среду для передачи информации. В качестве такой среды, в частности, может использоваться глобальная сеть Интернет.

Серверная часть системы будет состоять из web-сервера, реализующего функции работы с сетью, хранения и доставки HTML-страниц, и CGI (модуля расширения), реализующего функции обработки информации из основной информационной базы данных.

В качестве среды разработки CGI (модуля расширения) была выбрана среда Borland Delphi, которая обладает широкими возможностями по созданию как приложений, ориентированных на работу с базами данных, так и модулей расширения различных web-серверов. В качестве среды разработки Java-апплетов была выбрана среда Java 1.3.0.

Обобщённая структура программного обеспечения разрабатываемого приложения приведена на рисунке 2. Это трёхуровневая архитектура, включающая клиентскую часть, Web-сервер и сервер баз данных.

Рисунок 2 - Обобщённая структура программного обеспечения приложения

3 Проектирование пользовательского приложения

Приложение для учета имеет следующие формы:

· форма для просмотра, удаления и добавления товара;

· форма для просмотра, добавления, модификации и удаления сотрудников;

· форма для просмотра, добавления, модификации и удаления контрагентов;

· форма для поиска информации о принятых (переданных) товаров по сотруднику (контрагенту).

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

В данном приложении реализовано 4 апплета:

· апплет для просмотра, удаления и добавления товара - «tovar». Вызывает следующие cgi-приложения: «tovar.exe», «Addtovar.exe», «Deltovar.exe», «getsotr.exe», «getkont.exe». При работе с таблицей «tovar» происходит также обращение к таблицам «sotrudnik» и «kontragent». Так как пользователю надо видеть ФИО сотрудника и контрагента, а не номер паспорта сотрудника и код контрагента (внешние ключи для «tovar»), то при выводе (вводе) данных о товаре выполняется cgi-приложение, которое по коду контрагента и номеру паспорта выведет необходимые поля;

· апплет для просмотра, добавления, модификации и удаления сотрудников - «sotrudnik». Вызывает следующие cgi-приложения: «sotrud.exe», «Addsotrud.exe», «Delsotrud.exe» , «Editsotrud.exe»;

· апплет для просмотра, добавления, модификации и удаления контрагентов - «kontr». Вызывает следующие cgi-приложения: «kontr.exe», «Addkontr.exe», «Delkontr.exe», «Editkontr.exe»;

· апплет для поиска информации о принятых (переданных) товаров определенным сотрудником (контрагентом) - «poisk». Вызывает следующие cgi-приложения: «searchsotr.exe», «searchkont.exe», «getsotr.exe», «getkont.exe».

Листинги апплетов приведены в приложении А.

4 Логика диалога пользователя с web-приложением

Приложение для учета приема товара можно описать графом состояний и переходов, приведенном на рисунке 3.

Рисунок 3 - «Граф состояний и переходов»

Состояния:

S1 - Начальная форма.

S2 - Форма «Товар».

S3 - Форма «Контрагенты».

S4 - Форма «Сотрудники».

S5 - Форма «Поиск».

Переходы:

Т1 - нажатие на ссылку «товар»;

Т2 - нажатие на ссылку «сотрудники»;

Т3 - нажатие на ссылку «контрагенты»;

Т4 - нажатие на ссылку «поиск»;

Т5, Т6, Т7 - нажатие на кнопки «просмотр», «добавить», «удалить»

Т8, Т9, Т10, Т11 - нажатие на кнопки «просмотр», «добавить», «удалить», «изменить»;

Т12, Т13, Т14, Т15 - нажатие на кнопки «просмотр», «добавить», «удалить», «изменить»;

Т16, Т17 - нажатие на кнопки «посмотреть для сотрудника», «посмотреть для контрагента»;

Т20 - Т31 - нажатие ссылок «товар», «сотрудники», «контрагенты», «поиск» для перехода между формами;

5 Реализация связи приложения с базой данных

В данном курсовом проекте доступ к базе данных на стороне сервера реализуется за счет возможности использования внешних по отношению к WEB-серверу программ, взаимодействие которых происходит через специальный протокол CGI. Эти программы называются CGI- скриптами (CGI-программами).

Технология CGI-программирования не зависит от платформы, то есть CGI-программа применима для многих операционных систем и WEB- серверов. В курсовом проекте в качестве WEB-сервера был использован DENVER. CGI-программа легко переносится с одного компьютера на другой, но с точностью до компиляции.

В данном курсовом проекте CGI-программы написаны с использованием среды DELPHI.

Использование CGI- приложений на стороне сервера позволяет иметь на стороне клиента только простые программы просмотра, то есть вся логика работы с базой данных перенесена на сервер.

Cgi-приложения, вызываемые из апплетов представлены в таблице 1.

Таблица 1 - Сgi-приложения

Апплет

Вызываемое сgi-приложение

Функция приложения

Tovar

tovar.exe

Реализует select-запрос для получения информации из таблицы tovar. Результат запроса выводит в апплет.

Addtovar.exe

Реализует select-запрос для добавления информации в таблицу tovar. Результат запроса выводит в апплет.

Deltovar.exe

Реализует select-запрос для удаления информации из таблицы tovar. Результат запроса выводит в апплет.

getsotr.exe

Реализует select-запрос для выбора ФИО сотрудника из таблицы Sotrudnik. Результат запроса выводит в апплет.

getkont.exe

Реализует select-запрос для выбора ФИО контрагента из таблицы лщтекфпуте. Результат запроса выводит в апплет.

Sotrudnik

sotrud.exe

Реализует select-запрос для получения информации из таблицы sotrudnik. Результат запроса выводит в апплет.

Addsotrud.exe

Реализует select-запрос для добавления информации в таблицу sotrudnik. Результат запроса выводит в апплет.

Delsotrud.exe

Реализует select-запрос для удаления информации из таблицы sotrudnik. Результат запроса выводит в апплет.

Editsotrud.exe

Реализует select-запрос для изменения информации в таблице sotrudnik. Результат запроса выводит в апплет.

Kontragent

kontr.exe

Реализует select-запрос для получения информации из таблицы kontragent. Результат запроса выводит в апплет.

Addkontr.exe

Реализует select-запрос для добавления информации в таблицу kontragent. Результат запроса выводит в апплет.

Delkontr.exe

Реализует select-запрос для удаления информации из таблицы kontragent. Результат запроса выводит в апплет.

Editkontr.exe

Реализует select-запрос для изменения информации в таблице kontragent. Результат запроса выводит в апплет.

Poisk

«searchsotr.exe

Реализует select-запрос для поиска информации о товаре, который принимал определенный сотрудник.

«searchkont.exe

Реализует select-запрос для поиска информации о товаре, который передавал определенный контрагент.

getsotr.exe getkont.exe

Были описаны выше

Листинги cgi-приложений приведены в приложении Б.

Рассмотрим взаимодействие cgi-программы и апплета.

Когда на форме нажимается кнопка, введенная информация будет передана расширению сервера CGI, который с её помощью осуществит работу с базой данных, а результат отправит обратно аплету.

В качестве отдельного потока, работающего одновременно с кодом аплета, выступают методы run(), runEdit, runAdd, runDel, sort, kont, rungetkont, rungetsotr (1). Именно в них сосредоточена вся логика обмена данными с сервером Web.

Так как в процессе взаимодействия могут возникать различные исключения, мы предусмотрели их обработку при помощи блока try-catch:

public void run()

{ try

{URL u = new URL("http://localhost/cgi-bin/poisk.exe");

URLConnection uc = u.openConnection();

uc.setDoOutput(true);

uc.setDoInput(true);

uc.setAllowUserInteraction(true);

catch (Exception ioe) { } } }

Методы (1) после получения управления извлекает данные из однострочных текстовых полей, объединяя их и записывая полученную текстовую строку в поле Kod:

String Kod

Kod = txtNaim.getText()+','+txtCena.getText()+','+ txtEdIz.getText()+','+nsot.getSelectedItem()+','+nkont.getSelectedItem()+',';

В строке находится адрес URL программы CGI:

URL u = new URL("http://localhost/cgi-bin/tovar.exe");

На следующем этапе метоы (1) создают для программы CGI объект класса URL и открывает с ним соединение:

URL u = new URL("http://localhost/cgi-bin/tovar.exe");

URLConnection uc = u.openConnection()

Пользуясь этим соединением, методы (1) создают форматированный поток вывода, записывает в него строку имени и электронного адреса, а затем закрывает поток:

DataOutputStream dos=new DataOutputStream(uc.getOutputStream());

dos.writeBytes(Kod);

dos.close();

Переданные таким образом данные попадут в стандартный поток ввода программы CGI, откуда она их и прочитает.

Сделав это, программа CGI запишет в стандартный выходной поток строку ответа, которую необходимо прочитать в методах (1) аплета. Для этого открываем входной поток, создаем на его основе форматированный входной поток данных, читаем одну строку текста и закрываем входной поток:

DataInputStream dis=new DataInputStream(uc.getInputStream());

String nextline;

while ((nextline = dis.readLine())!=null)

{StringTokenizer st = new StringTokenizer(nextline, "&");

while(st.hasMoreTokens())

{txta.appendText(st.nextToken());

txta.appendText("\n");

} repaint();

}

Сразу после этого программа CGI завершит свою работу и будет готова к обработке новых запросов. Что же касается методов (1), то они добавят полученную от расширения сервера текстовую строку в многострочное окно редактирования, а затем инициируют перерисовку окна аплета:

Свою работу программа CGI начинает с анализа переменной среды REQUEST_METHOD.

s:=Request.Content;

Далее программа считывает соответствующие данные из стандартного потока ввода, записывает их в массив. Затем программа CGI выполняет запрос и записывает полученную строку в стандартный выходной поток, передавая ее таким образом аплету.

While not IBQ.Eof do

begin

otvet:=otvet+'Kod tovara: '+inttostr(IBQ.fieldbyname('KOD_TOVARA').Asinteger)+' Title : '+IBQ.fieldbyname('NAIMENOVANIE').AsString+' Cost : '+inttostr(IBQ.fieldbyname('STOIMOST_').AsInteger)+' Ed_izm : '+IBQ.fieldbyname('ED_IZM').AsString+' FIO sotr : '+IBQ.fieldbyname('FIO_SOTRUDNIKA').AsString+' FIO_KONTR : '+IBQ.fieldbyname('FIO_KONTR').AsString + #10#13;

IBQ.next;

end;

if otvet='' then Response.Content:='Dannyx net' else

Response.Content:=otvet;

Таким образом Java взаимодействует с CGI.

Заключение

приложение программный товар склад удаленный

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

Проведен анализ возможных подходов к созданию web-приложения учета приема товаров на склад с использованием Java и CGI программирования, разработана структуры базы данных и реализация разработанной модели в рамках СУБД, создано web-приложение.

Все поставленные задачи были выполнены, цель проекта достигнута.

Список используемой литературы

1. Мещеряков, Е.В. Публикация баз данных в Интернете [Тескт] / Е.В. Мещеряков, А.Д. Хомоненко. -- СПб. : БХВ-Петербург, 2001.

2. Java Programming Language [Электронный ресурс]/ Sun Educational Services. -- 1 электрон. опт. диск (CD-ROM) : зв., цв.; 12 см.- Систем. требования: ПК 486 или выше; 8 Мб ОЗУ; Windows 3.1 или Windows 95; SVGA 32768 и более цв.; 640х480; 4х CD-ROM дисковод; 16-бит. зв. карта; мышь. - Загл. с экрана.

3. CGI-программирование [Электронный ресурс] / webcode.ru. -Режим доступа: http://www.webcode.ru/cgi/. - Систем. требования: ПК 486 или выше; 8 Мб ОЗУ; Windows 3.1 или Windows 95; SVGA 32768 и более цв.; 640х480; 4х CD-ROM дисковод; 16-бит. зв. карта; мышь. - Загл. с экрана.

Приложение А

(обязательное)

Листинги апплетов
Апплет для просмотра, удаления и добавления товара - «tovar».
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.lang.String;
import javax.swing.border.*;
public class tovar extends Applet{
TextField txtNaim,txtCena,txtEdIz,txtDel;
Label lbNaim,lbCena,lbEdIz;
TextArea txta;
Choice nsot;
Choice nkont;
Button btnGetText,btnAdd,btnDel;
public void init()
{setLayout(new GridLayout(5,1));
Panel Panel1 = new Panel();
lbNaim = new Label("Vvedite naimenovanie:");
Panel1.add(lbNaim);
txtNaim = new TextField("", 40);
Panel1.add(txtNaim);
add(Panel1);
Panel Panel2 = new Panel();
lbCena = new Label("Vvedite cenu:");
Panel2.add(lbCena);
txtCena = new TextField("", 12);
Panel2.add(txtCena);
lbEdIz = new Label("Vvedite Edenicu izmerenija:");
Panel2.add(lbEdIz);
txtEdIz = new TextField("", 12);
Panel2.add(txtEdIz);
add(Panel2);
Panel Panel4 = new Panel();
nsot = new Choice();
Label lbsot = new Label("Sotrudnik, prin. tovar:");
Panel4.add(lbsot);
Panel4.add(nsot);
sotr();
add(Panel2);
Panel Panel5 = new Panel();
nkont = new Choice();
Label lbkont = new Label("Kontragent:");
Panel5.add(lbkont);
Panel5.add(nkont);
Label lbdel = new Label("Vvedite Nomer tovara dlja udalenija:");
Panel5.add(lbdel);
txtDel = new TextField("", 4);
Panel5.add(txtDel);
kont();
add(Panel5);
Panel Panel6 = new Panel();
btnGetText = new Button("Просмотр");
Panel6.add(btnGetText);
btnAdd = new Button("Добавить");
Panel6.add(btnAdd);
btnDel = new Button("Удалить");
Panel6.add(btnDel);
add(Panel6);
txta = new TextArea();
add(txta);
setBackground(Color.lightGray);
}
public void paint(Graphics g)
{ setBackground(Color.lightGray);
Dimension dimAppWndDimension = getSize();
g.setColor(Color.black);
g.drawRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1);
}
public boolean action(Event evt, Object obj)
{ Button btn;
if(evt.target instanceof Button)
{ btn = (Button)evt.target;
if(evt.target.equals(btnGetText))
{ run();}
else{if(evt.target.equals(btnAdd))
{ runAdd();}
else
if(evt.target.equals(btnDel))
{ runDel();}
else
return false; }
return true;}
return false;
}
public void run(){
try{
URL url = new URL("http://localhost/cgi-bin/tovar.exe");
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(true);
uc.connect();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ StringTokenizer st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ txta.appendText(st.nextToken());
txta.appendText("\n"); }
}
repaint();
} catch (Exception e){}
}
public void runAdd(){
try{ String Kod;
txtNaim.setText(nsot.getSelectedItem());
Kod = txtNaim.getText()+','+txtCena.getText()+','+ txtEdIz.getText()+','+nsot.getSelectedItem()+','+nkont.getSelectedItem()+',';
URL u = new URL("http://localhost/cgi-bin/Addtovar.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n"); txtNaim.setText(""); txtCena.setText(""); txtEdIz.setText("");}
repaint();
} catch (Exception e){}
}
public void runDel(){
try{ String Kod;
Kod = txtDel.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Deltovar.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{txta.appendText(nextline + "\r\n");
txtDel.setText(""); }
repaint();
} catch (Exception e){}}
public void sotr()
{ try
{ URL u = new URL("http://localhost/cgi-bin/getsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
StringTokenizer st;
while ((nextline = dis.readLine())!=null)
{ st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ nsot.add(st.nextToken()); } }}
catch (Exception e){}
}
public void kont()
{ try
{URL u = new URL("http://localhost/cgi-bin/getkont.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
StringTokenizer st;
while ((nextline = dis.readLine())!=null)
{ st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ nkont.add(st.nextToken());
} }
}
catch (Exception e){}
}}
Апплет для просмотра, добавления, модификации и удаления сотрудников - «sotrudnik».
import java.awt.*;
import java.awt.List;
import java.applet.*;
import java.net.*;
import java.util.*;
import java.io.*;
import java.net.MalformedURLException;
import javax.swing.*;
public class sotrudnik extends Applet{
TextField txtpass,txtfio,txtdol,txttel,txtinn,txtDel;
Label lbpass,lbfio,lbdol,lbtel,lbinn;
TextArea txta;
Button btnGetText,btnAdd,btnDel,btnEdit;
public void init()
{setLayout(new GridLayout(5,1));
Panel Panel1 = new Panel();
lbpass = new Label("Vvedite #Passporta:");
Panel1.add(lbpass);
txtpass = new TextField("", 40);
Panel1.add(txtpass);
lbfio = new Label("Vvedite FIO:");
Panel1.add(lbfio);
txtfio = new TextField("", 25);
Panel1.add(txtfio);
add(Panel1);
Panel Panel2 = new Panel();
lbdol = new Label("Vvedite dolzhnost:");
Panel2.add(lbdol);
txtdol = new TextField("", 12);
Panel2.add(txtdol);
lbtel = new Label("Vvedite Tel. sotrudnika:");
Panel2.add(lbtel);
txttel = new TextField("", 12);
Panel2.add(txttel);
add(Panel2);
Panel Panel3 = new Panel();
lbinn = new Label("Vvedite Inn:");
Panel2.add(lbinn);
txtinn = new TextField("", 12);
Panel2.add(txtinn);
add(Panel3);
Panel Panel4 = new Panel();
btnGetText = new Button("Просмотр");
Panel4.add(btnGetText);
btnAdd = new Button("Добавить");
Panel4.add(btnAdd);
btnEdit = new Button("Изменить");
Panel4.add(btnEdit);
btnDel = new Button("Удалить");
Panel4.add(btnDel);
txtDel = new TextField("", 4);
Panel4.add(txtDel);
add(Panel4);
txta = new TextArea();
add(txta);
setBackground(Color.lightGray);
}
public void paint(Graphics g)
{ setBackground(Color.lightGray);
Dimension dimAppWndDimension = getSize();
g.setColor(Color.black);
g.drawRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1);
}
public boolean action(Event evt, Object obj)
{ Button btn;
if(evt.target instanceof Button)
{ btn = (Button)evt.target;
if(evt.target.equals(btnGetText))
{ run(); }
else{if(evt.target.equals(btnAdd))
{ runAdd(); }
else
if(evt.target.equals(btnDel))
{ runDel();}
else
if(evt.target.equals(btnEdit))
{ runEdit();}
else
return false;}
return true; }
return false;
}
public void run(){
try{
URL url = new URL("http://localhost/cgi-bin/sotrud.exe");
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(true);
uc.connect();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ StringTokenizer st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ txta.appendText(st.nextToken());
txta.appendText("\n");}
}
repaint();
} catch (Exception e){}
}
public void runAdd(){
try{ String Kod;
Kod = txtpass.getText()+','+txtfio.getText()+','+ txtdol.getText()+','+ txttel.getText()+','+ txtinn.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Addsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n");
txtpass.setText(""); txtfio.setText(""); txtdol.setText(""); txttel.setText(""); txtinn.setText(""); }
repaint();
} catch (Exception e){}
}
public void runEdit(){
try{ String Kod;
Kod = txtpass.getText()+','+txtfio.getText()+','+ txtdol.getText()+','+ txttel.getText()+','+ txtinn.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Editsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n");
txtpass.setText(""); txtfio.setText(""); txtdol.setText(""); txttel.setText(""); txtinn.setText("");
}
repaint();
} catch (Exception e){}
}
public void runDel(){
try{ String Kod;
Kod = txtDel.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Delsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n");
txtDel.setText(""); }
repaint();
} catch (Exception e){}
}}
Апплет для просмотра, добавления, модификации и удаления контрагентов - «kontr».
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.net.MalformedURLException;
import java.util.*;
import javax.swing.*;
public class kontr extends Applet{
TextField txtkk,txtnorg,txtfio,txttel,txtadr,txtDel;
Label lbkk,lbfio,lbnorg,lbtel,lbadr;
TextArea txta;
Button btnGetText,btnAdd,btnDel,btnEdit;
public void init()
{setLayout(new GridLayout(5,1));
Panel Panel1 = new Panel();
lbkk = new Label("Vvedite Kod Kontr:");
Panel1.add(lbkk);
txtkk = new TextField("", 40);
Panel1.add(txtkk);
lbnorg = new Label("Vvedite Naim Org:");
Panel1.add(lbnorg);
txtnorg = new TextField("", 25);
Panel1.add(txtnorg);
add(Panel1);
Panel Panel2 = new Panel();
lbfio = new Label("Vvedite FIO kontragenta:");
Panel2.add(lbfio);
txtfio = new TextField("", 12);
Panel2.add(txtfio);
lbtel = new Label("Vvedite Tel. Org:");
Panel2.add(lbtel);
txttel = new TextField("", 12);
Panel2.add(txttel);
add(Panel2);
Panel Panel3 = new Panel();
lbadr = new Label("Vvedite Adres:");
Panel2.add(lbadr);
txtadr = new TextField("", 12);
Panel2.add(txtadr);
add(Panel3);
Panel Panel4 = new Panel();
btnGetText = new Button("Просмотр");
Panel4.add(btnGetText);
btnAdd = new Button("Добавить");
Panel4.add(btnAdd);
btnEdit = new Button("Изменить");
Panel4.add(btnEdit);
btnDel = new Button("Удалить");
Panel4.add(btnDel);
txtDel = new TextField("", 4);
Panel4.add(txtDel);
add(Panel4);
txta = new TextArea();
add(txta);
setBackground(Color.lightGray);
}
public void paint(Graphics g)
{ setBackground(Color.lightGray);
Dimension dimAppWndDimension = getSize();
g.setColor(Color.black);
g.drawRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1);
}
public boolean action(Event evt, Object obj)
{ Button btn;
if(evt.target instanceof Button)
{ btn = (Button)evt.target;
if(evt.target.equals(btnGetText))
{ run();}
else{
if(evt.target.equals(btnAdd))
{ runAdd(); }
else
if(evt.target.equals(btnDel))
{ runDel();}
else
if(evt.target.equals(btnEdit))
{ runEdit();}
else
return false; }
return true; }
return false;}
public void run(){
try{URL url = new URL("http://localhost/cgi-bin/kontr.exe");
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(true);
uc.connect();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ StringTokenizer st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ txta.appendText(st.nextToken());
txta.appendText("\n"); }
}
repaint();
} catch (Exception e){}
}
public void runAdd(){
try{ String Kod;
Kod = txtkk.getText()+','+txtnorg.getText()+','+ txtfio.getText()+','+ txttel.getText()+','+ txtadr.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Addkontr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{txta.appendText(nextline + "\r\n"); txtkk.setText(""); txtfio.setText(""); txtnorg.setText(""); ttel.setText("");
txtadr.setText(""); }
repaint();
} catch (Exception e){}
}
public void runEdit(){
try{ String Kod;
Kod = txtkk.getText()+','+txtnorg.getText()+','+ txtfio.getText()+','+ txttel.getText()+','+ txtadr.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Editkontr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n"); txtkk.setText("");txtfio.setText(""); txtnorg.setText(""); txttel.setText("");
txtadr.setText(""); }
repaint();
} catch (Exception e){}
}
public void runDel(){
try{ String Kod;
Kod = txtDel.getText()+',';
URL u = new URL("http://localhost/cgi-bin/Delkontr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{txta.appendText(nextline + "\r\n");
txtDel.setText(""); }
repaint();
} catch (Exception e){}}}
Апплет для поиска информации о принятых (переданных) товаров определенным сотрудником (контрагентом) - «poisk».
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.lang.String;
import javax.swing.border.*;
public class poisk extends Applet{
TextArea txta;
Choice nsot;
Choice nkont;
Button btnGetSotr,btnGetKont;
public void init()
{setLayout(new GridLayout(4,1));
Panel Panel2 = new Panel();
nsot = new Choice();
Label lbsot = new Label("Sotrudnik, prin. tovar:");
Panel2.add(lbsot);
Panel2.add(nsot);
sotr();
add(Panel2);
Panel Panel3 = new Panel();
nkont = new Choice();
Label lbkont = new Label("Kontragent:");
Panel3.add(lbkont);
Panel3.add(nkont);
kont();
add(Panel3);
Panel Panel4 = new Panel();
btnGetSotr = new Button("Посмотреть для сотрудника");
Panel4.add(btnGetSotr);
btnGetKont = new Button("Посмотреть для контрагента");
Panel4.add(btnGetKont);
add(Panel4);
txta = new TextArea();
add(txta);
setBackground(Color.lightGray);
}
public void paint(Graphics g)
{ setBackground(Color.lightGray);
Dimension dimAppWndDimension = getSize();
g.setColor(Color.black);
g.drawRect(0, 0, dimAppWndDimension.width - 1, dimAppWndDimension.height - 1);
}
public boolean action(Event evt, Object obj)
{ Button btn;
if(evt.target instanceof Button)
{ btn = (Button)evt.target;
if(evt.target.equals(btnGetSotr))
{ rungetsotr(); }
else{
if(evt.target.equals(btnGetKont))
{ rungetkont(); }
else
return false; }
return true; }
return false;}
public void rungetsotr(){
try{ String Kod;
Kod = nsot.getSelectedItem()+',';
URL u = new URL("http://localhost/cgi-bin/searchsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{txta.appendText(nextline + "\r\n"); }
repaint();
} catch (Exception e){}
}
public void rungetkont(){
try{ String Kod;
Kod = nkont.getSelectedItem()+',';
txta.ClearText;
URL u = new URL("http://localhost/cgi-bin/searchkont.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataOutputStream dos=new DataOutputStream(uc.getOutputStream());
dos.writeBytes(Kod);
dos.close();
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
while ((nextline = dis.readLine())!=null)
{ txta.appendText(nextline + "\r\n"); }
repaint();
} catch (Exception e){}
}
public void sotr()
{ try
{URL u = new URL("http://localhost/cgi-bin/getsotr.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
StringTokenizer st;
while ((nextline = dis.readLine())!=null)
{ st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ nsot.add(st.nextToken()); } }
}
catch (Exception e){}
}
public void kont()
{ try { URL u = new URL("http://localhost/cgi-bin/getkont.exe");
URLConnection uc = u.openConnection();
uc.setDoOutput(true);
uc.setDoInput(true);
uc.setAllowUserInteraction(true);
DataInputStream dis=new DataInputStream(uc.getInputStream());
String nextline;
StringTokenizer st;
while ((nextline = dis.readLine())!=null)
{ st = new StringTokenizer(nextline, "&");
while(st.hasMoreTokens())
{ nkont.add(st.nextToken()); } }
}
catch (Exception e){}
}}
Приложение Б
(обязательное)
Листинги cgi-приложений
Приложение addsotr
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
S :string;
n,l,i:integer;
ar:array[0..4] of string;
begin
s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 4 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if (ar[0]<>'')or(ar[3]<>'') then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

with IBTKONTR do

begin

Open;

Insert;

FieldByName('KOD_KONTRAGENTA').AsInteger:=strtoint(ar[0]);

FieldByName('NAIMENOVANIE_ORGANIZACII').AsString:=ar[1];

FieldByName('FIO_KONTR').AsString:=ar[2];

FieldByName('TEL_ORG').AsInteger:=strtoint(ar[3]);

FieldByName('ADRES_ORG').AsString:=ar[4];

Post;

end;

IBT.Commit;

response.content:='Record has been added';

end;

end;

end.

Приложение Addsotrud

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..4] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 4 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if (ar[3]<>'')or(ar[4]<>'') then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

with IBTSOTR do

begin

Open;

Insert;

FieldByName('NOMER_PASPORTA').AsString:=ar[0];

FieldByName('FIO_SOTRUDNIKA').AsString:=ar[1];

FieldByName('DOLZHNOST_').AsString:=ar[2];

FieldByName('TEL_SOTR').AsInteger:=strtoint(ar[3]);

FieldByName('INN').AsInteger:=strtoint(ar[4]);

Post;

end;

IBT.Commit;

response.content:='Record has been added';

end;

end;

end.

Приложение Addtovar

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..4] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 4 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if ar[1]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('select KOD_KONTRAGENTA,NOMER_PASPORTA from KONTRAGENT,SOTRUDNIK');

IBQ.SQL.Add('where (FIO_SOTRUDNIKA=:fios)and');

IBQ.SQL.Add('(FIO_KONTR=:fiok)');

IBQ.ParamByName('fios').AsString:=ar[3];

IBQ.ParamByName('fiok').AsString:=ar[4];

IBQ.Close;

IBQ.Open;

IBQ.First;

ar[4]:=IBQ.fieldbyname('NOMER_PASPORTA').asString;

ar[3]:=inttostr(IBQ.fieldbyname('KOD_KONTRAGENTA').asInteger);

with IBTTOVAR do

begin

Open;

Insert;

FieldByName('kod_tovara').AsInteger:=1;

FieldByName('NAIMENOVANIE').AsString:=ar[0];

FieldByName('STOIMOST_').AsInteger:=strtoint(ar[1]);

FieldByName('ED_IZM').AsString:=ar[2];

FieldByName('KOD_KONTRAGENTA').AsInteger:=strtoint(ar[3]);

FieldByName('NOMER_PASPORTA').AsString:=ar[4];

Post;

end;

IBT.Commit;

response.content:='Record has been added';

end

else response.content:='Error';

end;

end.

Приложение DelKontr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..2] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 2 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if ar[0]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('delete from KONTRAGENT');

IBQ.SQL.Add('where KOD_KONTRAGENTA=:kk');

IBQ.ParamByName('kk').asString :=ar[0];

try

IBQ.Close;

IBQ.Open;

IBT.Commit;

response.content:='Record has been deleted';

except

IBT.Rollback;

end;

end;

end;

end.

Приложение DelSotrud

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..2] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 2 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if ar[0]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('delete from SOTRUDNIK');

IBQ.SQL.Add('where NOMER_PASPORTA=:np');

IBQ.ParamByName('np').asString :=ar[0];

try

IBQ.Close;

IBQ.Open;

IBT.Commit;

response.content:='Record has been deleted';

except

IBT.Rollback;

end;

end;

end;

end.

Приложение DelSotrud

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..2] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 2 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if ar[0]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('delete from TOVAR');

IBQ.SQL.Add('where kod_tovara=:kt');

IBQ.ParamByName('kt').asinteger :=strtoint(ar[0]);

try

IBQ.Close;

IBQ.Open;

IBT.Commit;

response.content:='Record has been deleted';

except

IBT.Rollback;

end;

end;

end;

end.

Приложение EditKonr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..4] of string;

begin

s :=Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 4 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

if ar[0]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('select NAIMENOVANIE_ORGANIZACII,FIO_KONTR,TEL_ORG,ADRES_ORG');

IBQ.SQL.Add('from KONTRAGENT');

IBQ.SQL.Add('where KOD_KONTRAGENTA=:kk');

IBQ.parambyname('kk').AsInteger :=strtoint(ar[0]);

IBQ.Close;

IBQ.Open;

if ar[1]='' then ar[1]:=IBQ.fieldbyname('NAIMENOVANIE_ORGANIZACII').AsString;

if ar[2]='' then ar[2]:=IBQ.fieldbyname('FIO_KONTR').AsString;

if ar[3]='' then ar[3]:=inttostr(IBQ.fieldbyname('TEL_ORG').AsInteger);

if ar[4]='' then ar[4]:=IBQ.fieldbyname('ADRES_ORG').AsString;

if (ar[3]<>'')or(ar[4]<>'') then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('update KONTRAGENT set');

IBQ.SQL.Add('NAIMENOVANIE_ORGANIZACII=:no,');

IBQ.SQL.Add('FIO_KONTR=:fio,');

IBQ.SQL.Add('TEL_ORG=:tel,');

IBQ.SQL.Add('ADRES_ORG=:adr');

IBQ.SQL.Add('where KOD_KONTRAGENTA=:kk');

IBQ.parambyname('kk').AsInteger :=strtoint(ar[0]);

IBQ.parambyname('no').AsString :=ar[1];

IBQ.parambyname('fio').AsString := ar[2];

IBQ.parambyname('tel').AsInteger := strtoint(ar[3]);

IBQ.parambyname('adr').AsString := ar[4];

try

IBQ.Close;

IBQ.Open;

IBT.Commit;

except

IBT.Rollback;

end;

response.content:='Record has been update';

end;

end;

end;

end.

Приложение EditSotr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S :string;

n,l,i:integer;

ar:array[0..4] of string;

begin

s :=Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 4 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('select FIO_SOTRUDNIKA,DOLZHNOST_,TEL_SOTR,INN');

IBQ.SQL.Add('from sotrudnik');

IBQ.SQL.Add('where nomer_pasporta=:np');

IBQ.parambyname('np').AsString :=ar[0];

IBQ.Close;

IBQ.Open;

if ar[1]='' then ar[1]:=IBQ.fieldbyname('FIO_SOTRUDNIKA').AsString;

if ar[2]='' then ar[2]:=IBQ.fieldbyname('DOLZHNOST_').AsString;

if ar[3]='' then ar[3]:=inttostr(IBQ.fieldbyname('TEL_SOTR').AsInteger);

if ar[4]='' then ar[4]:=inttostr(IBQ.fieldbyname('INN').AsInteger);

if (ar[3]<>'')or(ar[4]<>'') then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('update SOTRUDNIK set');

IBQ.SQL.Add('FIO_SOTRUDNIKA=:fio,');

IBQ.SQL.Add('DOLZHNOST_=:dl,');

IBQ.SQL.Add('TEL_SOTR=:tel,');

IBQ.SQL.Add('INN=:inn_');

IBQ.SQL.Add('where NOMER_PASPORTA=:np');

IBQ.parambyname('np').AsString :=ar[0];

IBQ.parambyname('fio').AsString :=ar[1];

IBQ.parambyname('dl').AsString := ar[2];

IBQ.parambyname('tel').AsInteger := strtoint(ar[3]);

IBQ.parambyname('inn_').AsInteger := strtoint(ar[4]);

try

IBQ.Close;

IBQ.Open;

IBT.Commit;

except

IBT.Rollback;

end;

response.content:='Record has been update';

end;

end;

end.

Приложение GetKont

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var otvet:string;

begin

IBQ.SQL.Clear;

IBQ.SQL.Add('select FIO_KONTR from KONTRAGENT');

IBQ.Close;

IBQ.Open;

IBQ.First;

otvet:='';

While not IBQ.Eof do

begin

otvet:=otvet+IBQ.fieldbyname('FIO_KONTR').AsString+#10#13;

IBQ.next;

end;

if otvet='' then Response.Content:='Dannyx net' else

begin

otvet:=copy(otvet,1,length(otvet)-2);

Response.Content:=otvet;

end;

end;

end.

Приложение GetSotr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var otvet:string;

begin

IBQ.SQL.Clear;

IBQ.SQL.Add('select FIO_SOTRUDNIKA from SOTRUDNIK');

IBQ.Close;

IBQ.Open;

IBQ.First;

otvet:='';

While not IBQ.Eof do

begin

otvet:=otvet+IBQ.fieldbyname('FIO_SOTRUDNIKA').AsString+#10#13;

IBQ.next;

end;

if otvet='' then Response.Content:='Dannyx net' else

begin

otvet:=copy(otvet,1,length(otvet)-2);

Response.Content:=otvet;

end;

end;

end.

Приложение Kontr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var otvet:string;

begin

IBQ.SQL.Clear;

IBQ.SQL.Add('select * from KONTRAGENT');

IBQ.Close;

IBQ.Open;

IBQ.First;

otvet:='';

While not IBQ.Eof do

begin

otvet:=otvet+'Kod kontr: '+inttostr(IBQ.fieldbyname('KOD_KONTRAGENTA').AsInteger)+' NAIM_ORG : '+IBQ.fieldbyname('NAIMENOVANIE_ORGANIZACII').AsString+' FIO_KONTR : '+IBQ.fieldbyname('FIO_KONTR').AsString+' TEL : '+inttostr(IBQ.fieldbyname('TEL_ORG').AsInteger)+' ADRES : '+IBQ.fieldbyname('ADRES_ORG').AsString + #10#13;

IBQ.next;

end;

if otvet='' then Response.Content:='Dannyx net' else

Response.Content:=otvet;

end;

end.

Приложение poiskkont

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S,fio,otvet :string;

n,l,i:integer;

ar:array[0..2] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 2 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

fio:=ar[0];

if ar[0]<>'' then

begin

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('select KOD_KONTRAGENTA from KONTRAGENT');

IBQ.SQL.Add('where FIO_KONTR=:fiok');

IBQ.ParamByName('fiok').AsString:=ar[0];

IBQ.Close;

IBQ.Open;

IBQ.First;

ar[0]:=inttostr(IBQ.fieldbyname('KOD_KONTRAGENTA').asInteger);

IBQ.SQL.Clear;

IBQ.SQL.Add('select Kod_tovara,NAIMENOVANIE,STOIMOST_,ED_IZM from Tovar');

IBQ.SQL.Add('where Kod_kontragenta=:kk');

IBQ.ParamByName('kk').AsInteger:=strtoint(ar[0]);

IBQ.Close;

IBQ.Open;

IBQ.First;

otvet:='';

While not IBQ.Eof do

begin

otvet:=otvet+'Kod tovara: '+inttostr(IBQ.fieldbyname('KOD_TOVARA').Asinteger)+' Title : '+IBQ.fieldbyname('NAIMENOVANIE').AsString+' Cost : '+inttostr(IBQ.fieldbyname('STOIMOST_').AsInteger)+' Ed_izm : '+IBQ.fieldbyname('ED_IZM').AsString+' FIO kontr : '+fio+#10#13;

IBQ.next;

end;

if otvet='' then Response.Content:='Dannyx net' else

Response.Content:=otvet;

IBT.Commit;

end

else

response.content:='Error';

end;

end.

Приложение poisksotr

implementation

{$R *.DFM}

procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject;

Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);

var

S,fio,otvet :string;

n,l,i:integer;

ar:array[0..2] of string;

begin

s := Request.Content;

l := length(s);

while (l > 0) do

for i := 0 to 2 do

begin

n := pos(',', s);

if n > 0 then begin

ar[i] := copy(s, 1, n-1);

delete(s, 1, n);

end;

l := l - n;

end;

fio:=ar[0];

IBD.Connected:=false;

IBT.Active:=false;

iBD.Connected:=true;

IBT.Active:=true;

IBQ.SQL.Clear;

IBQ.SQL.Add('select NOMER_PASPORTA from SOTRUDNIK');

IBQ.SQL.Add('where FIO_SOTRUDNIKA=:fios');

IBQ.ParamByName('fios').AsString:=ar[0];

IBQ.Close;

IBQ.Open;

IBQ.First;

ar[0]:=IBQ.fieldbyname('NOMER_PASPORTA').asString;

IBQ.SQL.Clear;

IBQ.SQL.Add('select Kod_tovara,NAIMENOVANIE,STOIMOST_,ED_IZM from Tovar');

IBQ.SQL.Add('where nomer_pasporta=:np');

IBQ.ParamByName('np').AsString:=ar[0];

IBQ.Close;

IBQ.Open;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.