Создание простого веб-интерфейса для ввода организации

Материал из GedeminWiki
Версия от 13:17, 6 июля 2021; 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.

Для того, чтобы веб-сервер был доступен в локальной сети необходимо открыть доступ по порту номер 80 в Firewall операционной системы.

Для доступа из глобальной сети следует настроить port forwarding на роутере, через который локальная сеть предприятия подключена к сети провайдера интернет услуг.

Перезапустите Гедымин. Выполните макрос, регистрирующий обработчики. Теперь в браузере набираем:

 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
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты