Объявление

Свернуть
Пока нет объявлений.

Письма с превышением уплаты за год

Свернуть
X
  • Фильтр
  • Время
  • Показать
  • Сортировать
  • Упорядочить по
Очистить всё
новые сообщения

  • yante
    Участник ответил
    Сообщение от lubezniy Посмотреть сообщение
    Доделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.
    Ты бы эту ссылку выложил где-то в постоянный доступ, чтобы не искать ее постоянно.
    Например, в каждое сообщение как "подпись"

    Прокомментировать:


  • lubezniy
    Участник ответил
    Обновил версию: в первой, как оказалось, не совсем корректно формировалась Excel-форма протокола, в результате чего она в некоторых случаях не открывалась.
    Провёл также хронометраж работы программы на заведомо слабоватой конфигурации. Нетбук с двухъядерным процессором от AMD, двумя гигабайтами ОЗУ, 32-битной Windows 7 Home Basic и OpenOffice 3.4.1 управился с обработкой запроса на чуть менее 1000 застрахованных лиц и ИС из выложенного выше тестового примера примерно за 2 минуты. Скорость, конечно, не ахти какая, да и на чтение XML-файлов соответствующего объёма надо выделить ещё с минуту (про открытие протокола в OpenOffice не знаю даже - проверял на HTML-форме), но в целом работает шустрее, чем я ожидал. Ускорять буду по мере возможности.

    Прокомментировать:


  • Валерий Ж
    Участник ответил
    Доделал и выложил
    Первый вариант сегодня проверили, сверяет как надо, в понедельник отдам для проверки, будут новости сообщу, Спасибо большое за труды ратные.

    Прокомментировать:


  • lubezniy
    Участник ответил
    Доделал и выложил на http://www.lubezniy.ru/soft/vlsverkapf первую официальную версию сверки ПТК.

    Прокомментировать:


  • lubezniy
    Участник ответил
    Сообщение от vk65 Посмотреть сообщение
    Есть несколько способов. Я чаще всего делаю так: nRows = oSheet.Range("A65536").End(xlUp).Row
    Спасибо. По мере возможности поищу что-то похожее для OpenOffice. Если всё найдётся, буду делать.
    Сообщение от vk65 Посмотреть сообщение
    Да, на голой Win их нет. Они входят в состав любого офиса (кроме, наверное, версий starter), т.е., если установлен excel, они есть. Кроме того, их можно скачать с майкрософта, согласен, что для неподготовленных пользователей это не очень удобно, зато - бесплатно.
    С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.
    Посмотрим. В "голом" варианте (без офисного пакета) смысла немного: полученный протокол желательно не только в чём-то открывать (для этого сойдёт и встроенный IE), но и обрабатывать (тут уже без Excel или OpenOffice вряд ли будет удобно). А много ли будет необходимости в скорости, достигаемой при помощи ADO, пока непонятно: надо проводить замеры на больших объёмах данных.

    Прокомментировать:


  • vk65
    Участник ответил
    Сообщение от lubezniy Посмотреть сообщение
    Знать бы ещё заранее, сколько строк будет в Excel-файле, чтобы сразу задать range на весь лист...
    Есть несколько способов. Я чаще всего делаю так: nRows = oSheet.Range("A65536").End(xlUp).Row

    Сообщение от lubezniy Посмотреть сообщение
    А по этой части возникает вопрос: есть ли соответствующие компоненты и драйверы (сами объекты ADO, ODBC-драйвер Excel?) на "голой" Windows (даже редакции Starter), или же их нужно устанавливать отдельно?
    Да, на голой Win их нет. Они входят в состав любого офиса (кроме, наверное, версий starter), т.е., если установлен excel, они есть. Кроме того, их можно скачать с майкрософта, согласен, что для неподготовленных пользователей это не очень удобно, зато - бесплатно.
    С другой стороны, это работает быстрее по сравнению с использованием excel.application. Я недавно дорабатывал одну программку, там как раз исходные данные читаются из таблицы xls (примерно 15 строк, 150 столбцов), разница ощутима.

    Прокомментировать:


  • lubezniy
    Участник ответил
    Сообщение от vk65 Посмотреть сообщение
    1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
    OLE везде одинаков, за исключением мелких деталей. Знать бы ещё заранее, сколько строк будет в Excel-файле, чтобы сразу задать range на весь лист... Вместе с тем считаю, что построчное чтение и реализуемо практически, и будет иметь смысл с точки зрения скорости (хотя вообще сравнительный хронометраж обоих методов на сколь-нибудь существенных объёмах мне был бы весьма интересен). Если найду варианты для Excel и OpenOffice, и всё заработает, то обязательно пропишу. Но это вопрос совершенствования: сперва хочу выложить первую официально рабочую версию.
    Сообщение от vk65 Посмотреть сообщение
    2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.
    А по этой части возникает вопрос: есть ли соответствующие компоненты и драйверы (сами объекты ADO, ODBC-драйвер Excel?) на "голой" Windows (даже редакции Starter), или же их нужно устанавливать отдельно? Второй вариант с позиции своего опыта техподдержки некоторых программ не могу считать приемлемым. Фразу "не работает - установи Excel или скачай и поставь опенофис" поймёт даже не слишком продвинутый пользователь, и он разберётся с тем, что надо сделать, откуда скачать и как запустить. А про какие-то там библиотеки ADO, драйверы ODBC и т. п. неопытный компьютерщик может просто не знать и вследствие оного не справиться с задачей запуска программы на компьютере (про всевозможные конфликты версий, используемых в т. ч. другими программами на этом же компьютере, я вообще молчу). Сверка у нас получилась конфеткой с минимальным количеством пользовательских вопросов во многом потому, что вообще не требовала установки сторонних компонентов: даже XML-парсер использовался не Microsoft-овский, а был написан отдельно и встроен внутрь. Здесь как пойдёт, я пока не знаю даже в текущем варианте: нет массового использования и сколь-нибудь большого опыта использования. Поживём - увидим.

    Прокомментировать:


  • vk65
    Участник ответил
    Да, я тоже обратил внимание, что размер был гораздо меньше, чем у vlsverkaPF.
    Посмотрел исходники, появилась пара мыслей.
    1. Читать из excel по одной ячейке - довольно медленный процесс, на больших объемах исходных данных может сильно тормозить. А если попробовать читать в массив сразу весь лист? Не знаю как в дельфи, на фоксе, к примеру, работает такая конструкция: aArray = oSheet.range(cells(row1,col1),cells(row2,col2)).Va lue.
    2. Можно читать из xls, используя ADO. При этом не нужно наличие excel на компе.

    Прокомментировать:


  • lubezniy
    Участник ответил
    Сообщение от vk65 Посмотреть сообщение
    Да, проблема исчезла.
    Спасибо. А я думаю, чего это размер exe-файла похож на приложения старого Visual BASIC (к ним надо было ещё двухмегабайтную библиотеку прикладывать, иначе не работали). Решил сперва, что поначалу функций маловато, поэтому и программка небольшая получилась.

    Прокомментировать:


  • vk65
    Участник ответил
    Да, проблема исчезла.

    Прокомментировать:


  • lubezniy
    Участник ответил
    Снял в проекте опцию Build with runtime packages (не понял, как она вообще туда попала). Размер exe-файла возрос, но ожидаю, что проблема исчезнет. Компьютера без Delphi 2009 под рукой сейчас нет, так что прошу проверить.
    Вложения

    Прокомментировать:


  • vk65
    Участник ответил
    не запускается.
    Вложения

    Прокомментировать:


  • lubezniy
    Участник ответил
    Выкладываю отладочную версию 0.4 с исходниками. В неё добавил формирование протокола в Excel. Если всё пойдёт нормально, в конце недели будет официальная версия у меня на сайте. Но смущает отсутствие отзывов и предложений - как будто никто не пробует, а тестирую я один.
    Вложения

    Прокомментировать:


  • lubezniy
    Участник ответил
    Очередная отладочная версия - 0.3. Сделать её пришлось по итогам проверки на OpenOffice 3.4.1 : выяснилось, что некорректно читаются из запросов значения сумм. Также выкладываю исходники - как обычно, на Delphi 2009; к исходникам для удобства приложил схему взаимодействия модулей в Word.
    Вложения

    Прокомментировать:


  • lubezniy
    Участник ответил
    Выкладываю новую версию программы сверки ИС с запросами - пока что тоже отладочную для тестов. Изменения в версии 0.2 таковы:
    1. В список файлов ИС в протоколе добавлены сведения о коде категории застрахованного лица (дубли сведений на застрахованных лиц программа не проверяет! она тупо добавляет их в расчёт).
    2. Исправлена незначительная ошибка алгоритма сканирования папок с инд. сведениями.
    3. Добавлена кнопка получения реквизитов страхователя (краткое наименование, регномера ПФР) из файлов с ИС.


    Также прикладываю простенький пример файла запроса и парочки файлов с ИС. Данные страхователя и застрахованных лиц в них, естественно, не реальные; файлы ИС никаких проверок не пройдут - в них банально не соблюдались контрольные соотношения - но для тестирования сверки данных там достаточно.
    Вложения

    Прокомментировать:

реклама

Свернуть
Обработка...
X