ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (https://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: Программное обеспечение (https://forum.tk-chel.ru/forumdisplay.php?f=4)
-   -   Проблема: Выгрузка в Excell числа прибытий в КТ (https://forum.tk-chel.ru/showthread.php?t=1047)

Smolinc 15.09.2011 07:37

Выгрузка в Excell числа прибытий в КТ
 
Добрый день, возникла у клиента такая потребность выгрузить часть данных в Excell.
У него там свои формулы и расчеты.
Перечитал в очередной раз документы по OLE, но так и не нашел параметр отвечающий за кол-во прибытий в КТ или я где то не доглядел.
Единственное что нашел это "Getin_CNTR", но в описании полей DBF для списков (как я понимаю это только в FastReporte можно использовать?).
Вот теперь сижу и думаю как бы мне подсчитать число прибытий в КТ (все которые есть в списке поинтс для данной группы).

storm 15.09.2011 07:43

Smolinc,
вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ

допустим название КТ будет в поле EntryStartName

Дмитрий 22 15.09.2011 09:56

Где то в этой теме http://forum.tk-chel.ru/showthread.php?t=278&page=3 я уже колбасился по поводу числа прибытий в КТ. Все отлично работает.

Smolinc 16.09.2011 06:46

Цитата:

Сообщение от Дмитрий 22 (Сообщение 15450)
Где то в этой теме http://forum.tk-chel.ru/showthread.php?t=278&page=3 я уже колбасился по поводу числа прибытий в КТ. Все отлично работает.

Спасибо конечно, но я сразу сказал что нужно в EXCELL в отчетах это реализовать не проблема.
Цитата:

вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ
Это думаю вариант сейчас буду пробывать единственное сам список КТ мне не нужен поэтому просто буду перебирать все записи и считать чило вхождений.

SK 16.09.2011 07:48

Цитата:

Сообщение от Smolinc (Сообщение 15502)
Цитата:

Сообщение от Дмитрий 22 (Сообщение 15450)
Где то в этой теме http://forum.tk-chel.ru/showthread.php?t=278&page=3 я уже колбасился по поводу числа прибытий в КТ. Все отлично работает.

Спасибо конечно, но я сразу сказал что нужно в EXCELL в отчетах это реализовать не проблема.
Цитата:

вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ
Это думаю вариант сейчас буду пробывать единственное сам список КТ мне не нужен поэтому просто буду перебирать все записи и считать чило вхождений.

Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...

storm 16.09.2011 08:28

Цитата:

Сообщение от SK (Сообщение 15506)
Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...

нет, ты немного не понял,

Smolinc правильно написал, нужно именно считать сколько раз входит в каждую КТ

SK 16.09.2011 10:53

Цитата:

Сообщение от storm (Сообщение 15510)
Цитата:

Сообщение от SK (Сообщение 15506)
Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...

нет, ты немного не понял,

Smolinc правильно написал, нужно именно считать сколько раз входит в каждую КТ

Если в каждую - тогда цикл.

Smolinc 28.09.2011 02:23

Ну вот добравшись снова до этой задачи и покумекав денек понял, что дальше просто тупик.
Может я что то не правильно делаю. Решил просто посмотреть какие данные будут в TripEntriesNum
сначала я рассчитываю рейс
Код:

AG.StartComputing Cells(2, 2), Cells(3, 2), Cells(4, 2), Cells(5, 2), Cells(6, 2), 1
потом устанавливаю тип и вид по советуstorm
Код:

TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
. Но они Empty.
Или вместо points мне надо указывать название списка КТ?

storm 28.09.2011 05:30

Цитата:

Сообщение от Smolinc (Сообщение 16051)
Но они Empty.

кто они?
нужно задавать примерно так
TripEntriesListTypeName = "checkpoints"
TripEntriesListKindName = "points"

Smolinc 28.09.2011 05:44

Цитата:

Сообщение от storm (Сообщение 16060)
Цитата:

Сообщение от Smolinc (Сообщение 16051)
Но они Empty.

кто они?
нужно задавать примерно так
TripEntriesListTypeName = "checkpoints"
TripEntriesListKindName = "points"

TripEntriesListTypeName, TripEntriesListKindName они Empty.
А если писать в "" то они равны "checkpoints" и "points" соответственно.
И TripEntriesNum в любом случае Empty. Вот как то так.

storm 28.09.2011 05:51

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

Smolinc 28.09.2011 06:08

Вот так хочу получить что выдает TripEntriesNum.

Код:

Private Sub Button_Click()

Set AG = CreateObject("AutoGRAPH.AutoGRAPHAutomation")

AG.StartComputing "Участок технологического транспорта.ini", "75769", Cells(1, 2), Cells(2, 2), "GSM", 1
AG.TripEntriesListTypeName = "checkpoints"
AG.TripEntriesListKindName = "Points"
Cells(3, 2) = AG.TripEntriesNum

End Sub


storm 28.09.2011 06:33

скорее всего у вас не успевает отработать функция StartComputing, лучше замените ее на WaitForComputing с теми же параметрами или дождитесь когда флаг
ComputingBusy
Признак выполнения расчётов: 0 – готов, 1 – занят

будет равен 0

Smolinc 28.09.2011 06:44

Цитата:

Сообщение от storm (Сообщение 16067)
скорее всего у вас не успевает отработать функция StartComputing, лучше замените ее на WaitForComputing с теми же параметрами

О теперь считает спасибо. Пошел дальше делать.

TOOP 09.03.2013 11:47

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

Сообщение от Smolinc (Сообщение 16064)
Код:
Private Sub Button_Click()

Set AG = CreateObject("AutoGRAPH.AutoGRAPHAutomation")

AG.StartComputing "Участок технологического транспорта.ini", "75769", Cells(1, 2), Cells(2, 2), "GSM", 1
AG.TripEntriesListTypeName = "checkpoints"
AG.TripEntriesListKindName = "Points"
Cells(3, 2) = AG.TripEntriesNum

End Sub




Заменил StartComputing на WaitForComputing.
Указал временной интервал в “Cells(1, 2)”, “Cells(2, 2)”, формата 01.02.2014 19:30:00.
Выдает ошибку в этой строке "Cells(3, 2) = AG.TripEntriesNum".
Пробовал делать цикл как написано выше. Программа ошибок не выдает. Но и результата тоже нет.

SK 09.03.2013 13:33

Не спешите...

Код:

Sub Кнопка1_Щелчок()
    Set AG = CreateObject("AutoGRAPH.AutoGRAPHAutomation")
   
    Range("A8:Z65536").Clear
 
    AG.SetGroupIndexByFileName Cells(1, 2)
    AG.SetCarIndexByDevice Cells(2, 2)
   
    AG.ComputingTimeout = 15 'таймаут на расчет
    AG.WaitForComputing Cells(1, 2), Cells(2, 2), Cells(3, 2), Cells(4, 2), "GSM", 1
   
    Tripsnum = AG.Tripsnum
    Cells(8, 1) = "Кол-во рейсов:"
    Cells(8, 2) = Tripsnum
    Cells(9, 1) = "Файл КТ:"
    Cells(9, 2) = AG.CarCheckPointsFile
   
   
    SR = 11 ' начальная строка для вывода информации о рейсах и КТ
   
    If Tripsnum > 0 Then
        For x = 1 To Tripsnum
            AG.TripIndex = x
            AG.TripEntriesListTypeName = "checkpoints"
            AG.TripEntriesListKindName = "points"
            KTNum = AG.TripEntriesNum
            Cells(SR, 1) = "РЕЙС №"
            Cells(SR, 2) = x
            SR = SR + 1
            Cells(SR, 1) = "Кол-во КТ:"
            Cells(SR, 2) = KTNum
            SR = SR + 1
           
            If KTNum > 0 Then
                Cells(SR, 1) = "№ КТ"
                Cells(SR, 2) = "Имя КТ"
                Cells(SR, 3) = "Начало"
                Cells(SR, 4) = "Конец"
                SR = SR + 1
                For xx = 1 To KTNum
                    AG.EntryIndex = xx
                    Cells(SR, 1) = xx
                    Cells(SR, 2) = AG.EntryStartName
                    Cells(SR, 3) = AG.EntryStartRealTime
                    Cells(SR, 4) = AG.EntryEndRealTime
                    SR = SR + 1
                Next xx
                SR = SR + 1
            End If
        Next x
    End If
   
End Sub



Текущее время: 13:54. Часовой пояс GMT.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot