Объявление

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

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

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

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

    Комментарий


      не запускается.
      Вложения

      Комментарий


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

        Комментарий


          Да, проблема исчезла.

          Комментарий


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

            Комментарий


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

              Комментарий


                Сообщение от 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-овский, а был написан отдельно и встроен внутрь. Здесь как пойдёт, я пока не знаю даже в текущем варианте: нет массового использования и сколь-нибудь большого опыта использования. Поживём - увидим.

                Комментарий


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

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

                  Комментарий


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

                    Комментарий


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

                      Комментарий


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

                        Комментарий


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

                          Комментарий


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

                            Комментарий


                              Сообщение от lubezniy Посмотреть сообщение
                              Обновил версию: ...
                              А ничего, что сегодня все еще 14-е апреля, а на странице у тебя написано, что 15-е?

                              Комментарий


                                Сообщение от yante Посмотреть сообщение
                                Ты бы эту ссылку выложил где-то в постоянный доступ, чтобы не искать ее постоянно.
                                Например, в каждое сообщение как "подпись"
                                Я вообще думаю ссылки в подписях запретить: спамом замучили.

                                Комментарий

                                реклама

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