OLE - расчет полей
Здравствуйте! Хочу выгрузить данные расчета полей по OLE в файл, чтобы потом разобрать его в 1С. Пробую следующим образом:
Код:
ДатаДляАвтографаНачПериода = Формат(НачПериода,"ДФ='dd.MM.yy H:mm:ss'"); Итог этого кода - это всегда "Не удалось экспортировать данные", описание ошибки - неизвестная ошибка (описаниеошибки(), по идее, возвращает текст исключения, которое вернул Ole-объект). Поля в папке Fields лежат в виде полигонов, все поля отмечены для расчета в окне "Расчет полей". Сам расчет полей, если его вызывать из программы Автограф, проходит в целом успешно, выгрузка в файл xls отрабатывает корректно. Если выгружать по OLE в файлы dbf, csv, txt, получаю ошибку. Рейсы у данного ТС в эти дни есть, трек проходит по полигону. Лобовое стекло протирала, по колесу пинала. Что я делаю не так? 1. Надо ли запускать процедуру WaitForComputing перед WaitForFieldsComputing? 2. Надо ли создавать файл dbf перед тем, как выгружать туда поля? 3. Полигоны, которые я получаю путем рисования в вашем редакторе, в программе GPSMapEdit выглядят как незамкнутые контуры. Это может играть какую-то роль? |
Цитата:
Автограф.ExportListToFile(Временны й,"over_speed",,0,1) //создать dbf-файл |
zsergey,
Спасибо за ответ, уважаемый. У меня не работают именно "fields". И именно они, как назло, крайне нужны :( |
Цитата:
Цитата:
Цитата:
где Add = 1 – добавление записей к уже существующему файлу CreateAlways = 1 – в случае ошибки создавать пустой файл Попробуйте так ExportListToFile(Временный,"fields","",0,1); Цитата:
|
programmer, спасибо. Я там написала в первом посте, расчет из программы отрабатывает корректно (если его запускать в гуи, в самом окне Автографа, не по оле). По оле он вроде тоже отрабатывает без ошибок. Исключение вызывается на процедуре ExportListToFile.
Попробовала указать 0 в параметре Add, все равно "Ошибка при вызове метода контекста (ExportListToFile): Неизвестная ошибка". Что интересно, файл тоже не создается, хотя в параметре CreateAlways я поставила 1. Посоветуете что-нибудь? Код:
ДатаДляАвтографаНачПериода = Формат(НачПериода,"ДФ='dd.MM.yy H:mm:ss'"); |
kzz1C,
попробуйте в блок Исключение добавить код Автограф.PropertyName = "Last_Error"; Сообщить(Автограф.PropertyValue); и напишите, какое сообщение у вас выведется |
Цитата:
Вот так: Автограф.ExportListToFile(Временны й,"fields", ,0,1) СОМ-сервер может не правльно интерпретировать эти кавычки! |
zsergey, спасибо, убрала.
storm, "Неверный индекс рейса (0)" )) Версия Автографа - 3.4.12 (1955 билд) Попробовала установить tripIndex в 1, получила: Ошибка при установке значения атрибута контекста (TripIndex) Автограф.TripIndex = 1; по причине: Произошла исключительная ситуация (AutoGRAPH.AutoGRAPHAutomation): Неверный индекс рейса (1) |
kzz1C,
Цитата:
а если выставлять рейсы, то вначале надо их рассчитать функцией WaitForComputing |
storm,спасибо, уважаемый, сейчас попробую.
Добавлено через 29 минут все равно та же фигня. storm,вы не могли бы, чтобы я лучше понимала, привести полный работающий листинг какогонить модуля с участием процедуры расчета полей? Если не желаете флудить в теме, можно сбросить на nastya@adeptis.ru . |
Цитата:
|
фиговая :)
П.С. сорь не удержался |
В общем, ошибку с индексом рейса я все равно получала, даже обновившись на 3.4.12, поэтому попробовала так:
Код:
НачПериода = Дата(2011,8,23,0,0,0); Добавлено через 6 минут Пробую без расчета рейсов: Код:
Автограф.WaitForFieldsComputing( |
Пример. Машинки берутся из таблицы ТС.
Код:
Процедура ОтчетПоПолям() Код:
Процедура ЗаполнитьТаблицуТС() |
Цитата:
|
нашла еще баг (ну или какую-то мою недоработку) по расчету полей - порядок действий следующий.
На одном и том же экземпляре Автографа по OLE запускаю процедуру расчета по очереди для нескольких ТС - при этом, если результаты по данному ТС отсутствуют (т.е. оно не ездило по полям), а по предыдущему были, то выгружаются результаты по предыдущему ТС. Если запускать перед каждым расчетом новый экземпляр, то выгружается пустой dbf. |
kzz1C, исправим
|
Текущее время: 20:36. Часовой пояс GMT. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot