Куса-городской форум Куса-городской форум
Челябинская область | г. Куса | 2024
 На сайт      Помощь      Поиск      Пользователи      Галерея    


 Страниц (1): [1]   

> Без описания
Woldemar
Отправлено: 22 Июля, 2013 - 15:57:37
Post Id



Нам такие нужны



Сообщений всего: 541
Дата рег-ции: Июнь 2011  
Откуда: Златоуст





Стоит электронная очередь Норма.
Работает Debian + PostgreSQL +PHP + Java + QCubed.

QCubed - идиотская библиотека для php.
Задача написать отчет сколько по времени идет обслуживание посетителей.

Решил легче написал отчет в Microsoft Excel и через ODBC + MSQuery вытянуть нужные данные.

Драйвера ODBC PostgreSQL для Windows 7 64 естественно прдеварительно установил.

Первый макрос VBA Excel
CODE:
Sub ЗапросПостгрес()
Dim Query As QueryTable, connstring As String
connstring = "ODBC; DSN=PostgreSQL35W; UID=phppgadmin; PWD=123456; Database=equeue; Port=5432"
'strQuery = "SELECT * FROM service;"
strQuery = "SELECT rel_request_event.request_id, request_event_type.id, request_event_type.name, rel_request_event.event_date, rel_request_event.event_time, rel_request_event.operator_id, service.name FROM public.rel_request_event rel_request_event, public.request_event_type request_event_type, public.service service WHERE (rel_request_event.operator_id=5) AND (rel_request_event.event_date>{d '2013-07-01'}) AND (service.id=rel_request_event.service_id) AND (request_event_type.id=rel_request_event.event_type_id) OR (rel_request_event.operator_id=6) AND (rel_request_event.event_date>{d '2013-07-01'}) AND (service.id=rel_request_event.service_id) AND (request_event_type.id=rel_request_event.event_type_id) ORDER BY rel_request_event.request_id, rel_request_event.event_time "
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A1"), Sql:=strQuery)
.Refresh
End With

End Sub

(Добавление)
Второй макрос где полученные данные просто считаем среднее значение времени

CODE:
Sub РасчетСреднегоВремениОбслуживания()
Dim Str1 As String, TimeService As Date, event_type_id As Integer, y As Integer
i = 1
While ActiveSheet.Cells(i + 1, 1).Value
i = i + 1
Str1 = "=E" + Str(i + 2) + "-" + "E" + Str(i)
event_type_id = ActiveSheet.Cells(i, 2).Value
If event_type_id = 6 Then
If ActiveSheet.Cells(i + 1, 2).Value = 28 Then
ActiveSheet.Cells(i, 9).Formula = Replace(Str1, " ", "")
TimeService = TimeService + ActiveSheet.Cells(i, 9)
y = y + 1

End If
If ActiveSheet.Cells(i + 3, 2).Value = 28 Then
ActiveSheet.Cells(i, 9).Formula = Replace(Str1, " ", "")
TimeService = TimeService + ActiveSheet.Cells(i, 9)
y = y + 1
End If
End If
ActiveSheet.Cells(i + 1, 8).Value = i
Wend
Str1 = "=СРЗНАЧ(I2:I" + Str(i + 1) + ")"
ActiveSheet.Cells(i + 2, 9).FormulaLocal = Replace(Str1, " ", "")
End Sub

(Отредактировано автором: 22 Июля, 2013 - 16:00:38)

 
 Top
Woldemar
Отправлено: 01 Августа, 2013 - 10:29:11
Post Id



Нам такие нужны



Сообщений всего: 541
Дата рег-ции: Июнь 2011  
Откуда: Златоуст





Подробнее
Как получить данные из электронной очереди Норма
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Компьютерный клуб »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by ExBB
Copyright 2008-2015 Kusanet.ru


[Script Execution time: 0.0114]     [ Gzipped ]