15.09.2011, 07:37
|
| »»» |
#1
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Выгрузка в Excell числа прибытий в КТ
Добрый день, возникла у клиента такая потребность выгрузить часть данных в Excell.
У него там свои формулы и расчеты.
Перечитал в очередной раз документы по OLE, но так и не нашел параметр отвечающий за кол-во прибытий в КТ или я где то не доглядел.
Единственное что нашел это "Getin_CNTR", но в описании полей DBF для списков (как я понимаю это только в FastReporte можно использовать?).
Вот теперь сижу и думаю как бы мне подсчитать число прибытий в КТ (все которые есть в списке поинтс для данной группы).
|
|
|
|
15.09.2011, 07:43
|
| »»» |
#2
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
Smolinc,
вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ
допустим название КТ будет в поле EntryStartName
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
15.09.2011, 09:56
|
| »»» |
#3
|
Пользователь
Барнаул
Регистрация: 11.05.2011
Сообщений: 97
|
Где то в этой теме http://forum.tk-chel.ru/showthread.php?t=278&page=3 я уже колбасился по поводу числа прибытий в КТ. Все отлично работает.
Последний раз редактировалось Дмитрий 22; 24.01.2012 в 04:03.
|
|
|
|
16.09.2011, 06:46
|
| »»» |
#4
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Спасибо конечно, но я сразу сказал что нужно в EXCELL в отчетах это реализовать не проблема.
Цитата:
|
вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ
|
Это думаю вариант сейчас буду пробывать единственное сам список КТ мне не нужен поэтому просто буду перебирать все записи и считать чило вхождений.
|
|
|
|
16.09.2011, 07:48
|
| »»» |
#5
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,953
|
Сообщение от Smolinc
|
Спасибо конечно, но я сразу сказал что нужно в EXCELL в отчетах это реализовать не проблема.
Цитата:
|
вам нужно для начала задать TripEntriesListTypeName = checkpoints и TripEntriesListKindName = points
потом перебором EntryIndex от 1 до TripEntriesNum вы получите список КТ
|
Это думаю вариант сейчас буду пробывать единственное сам список КТ мне не нужен поэтому просто буду перебирать все записи и считать чило вхождений.
|
Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
16.09.2011, 08:28
|
| »»» |
#6
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
Сообщение от SK
|
Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...
|
нет, ты немного не понял,
Smolinc правильно написал, нужно именно считать сколько раз входит в каждую КТ
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
16.09.2011, 10:53
|
| »»» |
#7
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,953
|
Сообщение от storm
|
Сообщение от SK
|
Так получается, если Вам не нужна разбивка по КТ, то TripEntriesNum и будет числом вхождений...
|
нет, ты немного не понял,
Smolinc правильно написал, нужно именно считать сколько раз входит в каждую КТ
|
Если в каждую - тогда цикл.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
28.09.2011, 02:23
|
| »»» |
#8
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Ну вот добравшись снова до этой задачи и покумекав денек понял, что дальше просто тупик.
Может я что то не правильно делаю. Решил просто посмотреть какие данные будут в 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 мне надо указывать название списка КТ?
|
|
|
|
28.09.2011, 05:30
|
| »»» |
#9
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
Сообщение от Smolinc
|
Но они Empty.
|
кто они?
нужно задавать примерно так
TripEntriesListTypeName = "checkpoints"
TripEntriesListKindName = "points"
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
28.09.2011, 05:44
|
| »»» |
#10
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Сообщение от storm
|
Сообщение от Smolinc
|
Но они Empty.
|
кто они?
нужно задавать примерно так
TripEntriesListTypeName = "checkpoints"
TripEntriesListKindName = "points"
|
TripEntriesListTypeName, TripEntriesListKindName они Empty.
А если писать в "" то они равны "checkpoints" и "points" соответственно.
И TripEntriesNum в любом случае Empty. Вот как то так.
Последний раз редактировалось Smolinc; 28.09.2011 в 05:51.
|
|
|
|
28.09.2011, 05:51
|
| »»» |
#11
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
чтобы не играть в телепатов, весь код в студию
г. Челябинск
Ахмедьянов Алексей Адлерович
|
|
|
|
28.09.2011, 06:08
|
| »»» |
#12
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Вот так хочу получить что выдает 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 |
Последний раз редактировалось Smolinc; 28.09.2011 в 06:22.
|
|
|
|
28.09.2011, 06:33
|
| »»» |
#13
|
Опытный пользователь
Регистрация: 22.12.2010
Сообщений: 2,121
|
скорее всего у вас не успевает отработать функция StartComputing, лучше замените ее на WaitForComputing с теми же параметрами или дождитесь когда флаг
ComputingBusy
Признак выполнения расчётов: 0 – готов, 1 – занят
будет равен 0
г. Челябинск
Ахмедьянов Алексей Адлерович
Последний раз редактировалось storm; 28.09.2011 в 06:54.
|
|
|
|
28.09.2011, 06:44
|
| »»» |
#14
|
Начинающий
Регистрация: 04.03.2011
Сообщений: 16
|
Сообщение от storm
|
скорее всего у вас не успевает отработать функция StartComputing, лучше замените ее на WaitForComputing с теми же параметрами
|
О теперь считает спасибо. Пошел дальше делать.
|
|
|
|
09.03.2013, 11:47
|
| »»» |
#15
|
Начинающий
Красноярск
Регистрация: 08.12.2012
Сообщений: 32
|
Возникла такая же необходимость как в этой ветке. Нужен подсчет количества прибытий в каждую геозону.
Взял этот код.
Сообщение от Smolinc
|
Код:
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".
Пробовал делать цикл как написано выше. Программа ошибок не выдает. Но и результата тоже нет.
|
|
|
|
09.03.2013, 13:33
|
| »»» |
#16
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,953
|
Не спешите...
Код:
|
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 |
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 20:42. Часовой пояс GMT.
|
|