Создание простого веб-интерфейса для ввода организации
Материал из GedeminWiki
Версия от 21:51, 29 июля 2014; SYSDBA (обсуждение | вклад)
Для формы создания организации через веб-браузер (ничего сложного, только выбор папки и ввод наименования) нам потребуется:
- Скрипт-функция Test_AddContactForm для формирования HTML страницы
- Скрипт-функция Test_AddContact для обработки введенной информации
- Макрос Test_RegisterHandlers для регистрации указанных выше функций как обработчиков веб-событий
Исходный код приведен ниже. Для активизации веб-сервера необходимо в файле gedemin.ini указать:
[WEB SERVER] Active = 1 Bindings = xxx.xxx.xxx.xxx
Вместо xxx.xxx.xxx.xxx пропишите IP адрес компьютера на котором выполняется gedemin.exe.
Перезапустите Гедымин. Выполните макрос, регистрирующий обработчики. Теперь в браузере набираем:
http://xxx.xxx.xxx.xxx/test_add_contact_form
Появится форма. Выбираем папку. Указываем наименование и нажимаем Сохранить. Проверяем. В справочник клиентов добавится новая запись.
Function Test_AddContactForm
Option Explicit Function Test_AddContactForm(Component, Params, ByRef ResponseNo, ByRef ContentText, FormParams) Dim Creator, q, ParentSelect Set Creator = New TCreator Set q = Creator.GetObject(nil, "TIBSQL", "") ParentSelect = "" q.Transaction = gdcBaseManager.ReadTransaction q.SQL.Text = "SELECT id, name FROM gd_contact WHERE contacttype = 0 ORDER BY name" q.ExecQuery While Not q.EOF ParentSelect = ParentSelect &_ "<option value=""" & q.FieldByName("id").AsString & _ """>" & q.FieldByName("name").AsString & "</option>" & vbCrLf q.Next WEnd ContentText.Value = _ "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01//EN"" ""http://www.w3.org/TR/html4/strict.dtd"">" &_ "<HTML><HEAD><TITLE>Gedemin Web Server</TITLE></HEAD><BODY>" &_ "Ввод новой организации:<br/>" &_ "<form name=""contact"" action=""test_add_contact"" method=""post"">" &_ "Папка:" &_ "<select name=""parent"">" &_ ParentSelect &_ "</select><br/>" &_ "Название: <input type=""text"" name=""name""><br/>" &_ "<input type=""submit"" value=""Сохранить"">" &_ "</form>" &_ "</BODY></HTML>" End Function
Function Test_AddContact
Option Explicit Function Test_AddContact(Component, Params, ByRef ResponseNo, ByRef ContentText, FormParams) Dim Creator, Obj Set Creator = New TCreator Set Obj = Creator.GetObject(nil, "TgdcCompany", "") Obj.Open Obj.Insert Obj.FieldByName("parent").AsString = Params.Values("parent") Obj.FieldByName("name").AsString = Params.Values("name") Obj.Post End function
Sub Test_RegisterHandlers
'#include Test_AddContactForm '#include Test_AddContact Option Explicit Sub Test_RegisterHandlers Call WebServerControl.RegisterOnGetEvent(nil, "/test_add_contact_form", "Test_AddContactForm") Call WebServerControl.RegisterOnGetEvent(nil, "/test_add_contact", "Test_AddContact") End Sub