1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Отчетность "на коленке".

Ответить
Аватара пользователя

Автор темы
Marrenoloth
завсегдатай
завсегдатай
Сообщения: 524
Зарегистрирован: 05 окт 2009, 11:51
Имя: Тихомиров Дмитрий Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 16 раз
Поблагодарили: 18 раз

Отчетность "на коленке".

Сообщение Marrenoloth »

Коллеги, добрый день!
Возникла внезапная нестандартная задача:
1) Имеем .CSV файлы с логами некоторой системы.
2) При этом система не умеет генерировать из них отчеты.
3) Нужны отчеты из этих логов в нормальном виде. Типа лого компании, красивые заголовки и т.д. Желателен выход в .PDF.
4) Хочется универсальное решение, которое будет работать и с логами от простых панелей оператора, если их утащить на флешке.
5) Ввиду разного уровня пользователей, хотелось бы в виде "принес файл, нажал одну кнопку, получил отчет". Ну, максимум, еще даты интересующие выставил.

Пока два решения вижу: Или скрипт в эклеле, который будет парсить csv-шки и в этот же эксель выгружать обработанное и отфильтрованное, или генератор отчетов по шаблону из командной строки, т.е. не dll какая-нибудь, а exe-шник, в который передаются параметры. Но первое решение какое-то некрасивое, ексель еще нужен лицензионный, придумывать, как вызывать скрипт, чтобы и кнопка в отчете не торчала и даже бухгалтер бы справился... Второе решение - не нашел нормальных реализаций. Только что-то "для себя в академических интересах". Третья мысль - запихнуть вызов генератора отчетов (типа того же Crystall) в экселевские скрипты vba, но это что-то совсем извращение какое-то... Ну и еще бесплатный для коммерческого использования генератор хотелось бы...
При этом я программист контроллеров и на stl вам напишу! А вот с современными языками общего назначения не дружу совсем. :(

Может ли кто-нибудь помочь советом, в какую сторону копать, чтобы хорошо сделать?
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

Отчетность "на коленке".

Сообщение hell_boy »

Я делал vbs, который использовал ODBC для связи с CSV. На выходе был html с динамическим содержимым. Пользователь его просматривал и, если внешний вид удовлетворял, - печатал. PDF - не проблема, вывод в PDF - та же печать. Еще, как вариант для продвинутых и Unix - программа на Python. Язык несложный, есть масса примеров в сети. Для Win есть утилита Python2Exe.
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Strohmann
осмотрелся
осмотрелся
Сообщения: 141
Зарегистрирован: 08 ноя 2010, 14:03
Имя: Владимир
Страна: Россия
город/регион: Новосибирск
Благодарил (а): 3 раза
Поблагодарили: 4 раза

Отчетность "на коленке".

Сообщение Strohmann »

Генерация отчётности из csv - моя давняя головная боль, которая периодически усиливается). Отчёты у нас простенькие и внутренние, поэтому мой опыт может быть неприменим для серьёзной отчётности.
Рассматривал множество вариантов, начинал с макроса в excel, который по прошествии времени разросся до трудномодифицируемого состояния. Сейчас остановился на применении demo-версии Dream Report (ограничение времени автоматического сбора данных - 30 минут, максимум 100 тэгов. Но я генерирую отчёты вручную из готового csv, поэтому ограничение функционала сбора данных мне не мешает, тэгов у меня меньше 100. Надпись о том, что применяется демо-версия элегантно закрашивается красным прямоугольником с логотипом). Если нужно генерировать отчёты быстро и относительно презентабельно, советую посмотреть на этот продукт - закрывает требования пунктов 3-5)
Если же найдёте более интересный и гибкий вариант, прошу поделиться опытом.
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17472
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1278 раз

Отчетность "на коленке".

Сообщение Jackson »

С набором надстроек на ексель есть одна проблема: что-то случилось с компом, снесли ексель - потеряли всё, никто мог и не догадываться что там спец.надстройки накручены. Отдельный ЕХЕшник есть надежда что хоть забэкапят.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Отчетность "на коленке".

Сообщение Exactamente »

ну и вариант n+1 - забомбить на шарпе консольное приложеньице, умеете плюсы и VBA - в c# или, недайбог, VB.net разберётесь быстро. Масса приблуд для работы с экселем, рекомендую http://epplus.codeplex.com/ - ставите через NuGet, дальше выглядит почти как экселевский VBA. Умеет даже графики рисовать, стили, все дела... Для работы с либой, что приятно, непосредственно ни офис, ни эксель не требуется.

Для пдфа тоже что-то есть: https://habrahabr.ru/post/112707/ - но лично ничем не пользовался, не могу порекомендовать.
TEB писал(а): С набором надстроек на ексель есть одна проблема: что-то случилось с компом, снесли ексель - потеряли всё, никто мог и не догадываться что там спец.надстройки накручены
Скрипты сохраняются в документе и, внезапно, распространяются с ним же. Достаточно потом найди один экземпляр отчёта столетней давности.
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17472
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1278 раз

Отчетность "на коленке".

Сообщение Jackson »

Exactamente писал(а): Скрипты сохраняются в документе
Если это разрешено настройками офиса

Отправлено спустя 1 минуту 5 секунд:
Exactamente писал(а): Достаточно потом найди один экземпляр отчёта столетней давности.
И опять же при открытии офис выругается на наличие сторонних скриптов, спросит ЧД - рядовой юзер это легко сочтёт за вирус и выкинет документ совсем.
По вопросам работы Форума можно обратиться по этим контактам.

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

Отчетность "на коленке".

Сообщение Михайло »

С csv-файлами умеют работать многие среды и языки программирования. Ну, например, Delphi. Ведь структура этого файла до ужаса простая.
Я бы наверное попробовал выполнить задачу на Javascript - язык очень похож на упрощенный С, для написания программы нужен только Блокнот, для запуска кода - любой браузер. В яваскрипте есть регулярные выражения (для парсинга), открыть файл, сохранить файл - это не проблема.
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Отчетность "на коленке".

Сообщение Exactamente »

TEB писал(а):
Exactamente писал(а): Скрипты сохраняются в документе
Если это разрешено настройками офиса
Э, вы взяли документ, в него написали макрос, сохранили, отправили пользователю. Будет странно, если перед написанием макроса вы не включите макросы. Если же оно есть в документе, то при запрете оно не исполняется, но не удаляется.
TEB писал(а):
Exactamente писал(а): Достаточно потом найди один экземпляр отчёта столетней давности.
И опять же при открытии офис выругается на наличие сторонних скриптов, спросит ЧД - рядовой юзер это легко сочтёт за вирус и выкинет документ совсем.
А юзер, которму сказали открывать именно этот документ для создания именно этого отчёта будет знать, что нужно нажать именно эту кнопочку.

Но в целом да, абстрактные сферические VBA-макросы в экселе - зло.

ps
TEB писал(а): рядовой юзер это легко сочтёт за вирус
ох если бы :)
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Автор темы
Marrenoloth
завсегдатай
завсегдатай
Сообщения: 524
Зарегистрирован: 05 окт 2009, 11:51
Имя: Тихомиров Дмитрий Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 16 раз
Поблагодарили: 18 раз

Отчетность "на коленке".

Сообщение Marrenoloth »

Михайло писал(а): Ну, например, Delphi.
Я бы наверное попробовал выполнить задачу на Javascript
Я ну вообще не программист. Питон бы еще подумал, но время, время...
Михайло писал(а): В яваскрипте есть регулярные выражения
Если вам сказали, что вашу проблему можно решить с помощю регулярных выражений, значит, у вас две проблемы. (с) Бородатый анекдот.

В целом, я могу это тупо формулами в экселе нафигачить - опыт богатый в этом вопросе. Даже в гуглотаблицах. Но хочется хорошего и красивого решения. Видимо, пока Dream Report, а потом приглашенные специалисты по языкам программирования...
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17472
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 749 раз
Поблагодарили: 1278 раз

Отчетность "на коленке".

Сообщение Jackson »

Exactamente писал(а): Э, вы взяли документ, в него написали макрос, сохранили, отправили пользователю. Будет странно, если перед написанием макроса вы не включите макросы.
Как автор этих макросов - конечно не забуду. Я не про это. Просто в задаче сказано что должно быть понятно даже дворнику - и вот тут могут быть нюансы. :) Например документ могут пересохранить и потерять все макросы, может и антивирус их повыкусывать.
Exactamente писал(а): А юзер, которму сказали открывать именно этот документ для создания именно этого отчёта будет знать, что нужно нажать именно эту кнопочку.
Да всякие юзеры бывают....
По вопросам работы Форума можно обратиться по этим контактам.

Vadim K
здесь недавно
здесь недавно
Сообщения: 39
Зарегистрирован: 16 окт 2015, 12:23
Имя: Вадим К
Страна: Россия
город/регион: Saint-Petersburg
Благодарил (а): 3 раза
Поблагодарили: 5 раз

Отчетность "на коленке".

Сообщение Vadim K »

В общем-то задача стандартная. Для АРМ'ов использую связку SCADA + самописная программа на Delphi, которая закрывает вопросы с графической и табличной отчетностью, выбором заданий из меню (типовые задания в меню добавляют сами пользователи). Освоить какой-либо язык программирования не так сложно (мне сложнее было освоить программирование в STL). Беда только в том, что эти среды разработки стоят денег, а писать для заказчика на пиратском как-то не комильфо...

Оформляйте цитаты корректно, пожалуйста. Админ.
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Отчетность "на коленке".

Сообщение izhidkov »

Marrenoloth писал(а): а потом приглашенные специалисты по языкам программирования..
Да если вы понимаете что вам вообще нужно в отчетах, то в QT на С++ можно парсить .csv файлы очень быстро и просто. Больше проблема в том, что печать из c++ это та еще беда (конечно если нет лишних пары месяцев). Простые листы А4 с жестким расположением элементов довольно просто печатать, если нужен интерактив и фичи печати как в Ворде то это не так просто...

Конечно QT не бесплатная для коммерческого пользования, но для "себя" можно сделать.
Компилятор - лучший друг человека!

leon78
эксперт
эксперт
Сообщения: 1024
Зарегистрирован: 25 июл 2008, 10:06
Имя: Леонид
Страна: РФ
Благодарил (а): 27 раз
Поблагодарили: 104 раза

Отчетность "на коленке".

Сообщение leon78 »

Одно время мы использовали для отчетов Crystal Reports.
Я лично этим не занимался, поэтому о соответствии функционала изложенным требованиям сказать не могу.
Хард - это то, что можно швырнуть об стенку, а софт - это то, что можно лишь обматерить.
Аватара пользователя

Автор темы
Marrenoloth
завсегдатай
завсегдатай
Сообщения: 524
Зарегистрирован: 05 окт 2009, 11:51
Имя: Тихомиров Дмитрий Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 16 раз
Поблагодарили: 18 раз

Отчетность "на коленке".

Сообщение Marrenoloth »

В целом, всё свелось к "или покупай, или строй велосипед из веточек и подручных материалов". :)

Кристал и иже с ними (Когда-то общался с продукцией http://www.perpetuumsoft.com/ , но как потребитель конечного результата. Впечатления остались хорошие.) требуют встраивания в некую оболочку, которую ты должен сам написать на одном из современных языков и которая будет подпихивать в генератор имя шаблона и формировать выборку данных. Эксель - уж очень коряво, зато работает и просто как чугунная сковородка. Остальное - за деньги.



Не удержусь, покамментю :-P :
Vadim K писал(а): Беда только в том, что эти среды разработки стоят денег
IDE, конпиляторов и пр. много и бесплатного и под любые системы. И фришные генераторы отчетов для встраивания в пользовательские программы тоже имеются.
izhidkov писал(а): в QT на С++ можно парсить .csv файлы очень быстро и просто. Больше проблема в том, что печать из c++ это та еще беда
Та еще беда - это быстро освоить c++ и кьют.
Михайло писал(а): С csv-файлами умеют работать многие среды и языки программирования. Ну, например, Delphi. Ведь структура этого файла до ужаса простая.
Да. Но Сименс и тут, согласно вашей подписи, "приложил тщательнейшее внимание к каждой мелочи"! :lol:
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Отчетность "на коленке".

Сообщение izhidkov »

Marrenoloth писал(а): за деньги
Ну а чего удивительного? Универсальная вешь )
Marrenoloth писал(а): Та еще беда - это быстро освоить c++ и кьют.
А есть требование быстро? Если денег много найди того кто знает Qt/c++

Много народу "колымит" с Qt ( даже тут есть, не говоря уже о более специфичных форумах, где программисты тусуют), если цену норм предложите могут что угодно сделать. На А4 лист ваш логотип, и графики даже я смогу за день вывести )
Компилятор - лучший друг человека!
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Отчетность "на коленке".

Сообщение Exactamente »

ауч, тут STL'ем все называют мэковский 61131 ST в сименсовой вариации? А я думал про сиплюсплюсную standard library :crazy0to: нуок, тогда дело усложняется)
Vadim K писал(а): Беда только в том, что эти среды разработки стоят денег
Всё давно есть в бесплатных версиях. Если совесть давит, то можно приложить какую-нибудь опенсорцную лицензию - в данном случае это не офигеть как принципиально держать исходники в секрете.
izhidkov писал(а): А есть требование быстро? Если денег много найди того кто знает Qt/c++
точно, и к 100 килобайтному экзешнику прикладывать 5гиговый дистр кьюти :lol:
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

Автор темы
Marrenoloth
завсегдатай
завсегдатай
Сообщения: 524
Зарегистрирован: 05 окт 2009, 11:51
Имя: Тихомиров Дмитрий Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 16 раз
Поблагодарили: 18 раз

Отчетность "на коленке".

Сообщение Marrenoloth »

Exactamente писал(а): ауч, тут STL'ем все называют мэковский 61131 ST в сименсовой вариации?
Можете звать меня ретроградом и отщепенцем! :crazy0to:
Exactamente писал(а): к 100 килобайтному экзешнику прикладывать 5гиговый дистр кьюти
И толстую пачку денег! :lol:

Вообще, с другой стороны, если разработать свой такой генератор отчетов и поставить ценник в 5к рублей, вы бы купили? :ges_hmm:
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Отчетность "на коленке".

Сообщение Exactamente »

Лично я бы при необходимости свой написал, с поэтессами и преферансом) потому что времени на это уйдёт максимум неделя с перекурами на основную работу, а в чужом самописном непроверенном решении огрести проблем можно о-го-го, и никаких гарантий, что даже тривиальную багу автор быстро починит. А так обычно везде, где я видел, отчёты генерятся из скады + excel vba, и особых страданий никто не испытывает.

тут штука в чём, у вас задача - генерить непонятно что конкретно из, почему-то, csv. Удивительное стечение обстоятельств и неопределённости. Большой оптимизм - надеяться, что у кого-то возникнет необходимость решить такую же задачу, и этот кто-то вообще будет знать про ваше решение.
«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Отчетность "на коленке".

Сообщение izhidkov »

Exactamente писал(а): точно, и к 100 килобайтному экзешнику прикладывать 5гиговый дистр кьюти
В архиве VCRedistr86 + qtdll-ки+простенький ewe весят 16 Мб.... (без архива 70Мб) windeployqt подготавливает только нужные dll
да и сам qt+msvc весит всего 903 Мб
Компилятор - лучший друг человека!
Аватара пользователя

Exactamente
частый гость
частый гость
Сообщения: 409
Зарегистрирован: 20 ноя 2012, 13:45
Имя: :.О.N.Ф
Страна: Россия
Благодарил (а): 3 раза
Поблагодарили: 7 раз

Отчетность "на коленке".

Сообщение Exactamente »

«Сразу видно внимание к каждой мелочи, неиспорченным не осталось ничто».

SaNNy
освоился
освоился
Сообщения: 230
Зарегистрирован: 01 фев 2010, 10:37
Имя: Александр
Страна: Россия
город/регион: Брянск
Благодарил (а): 9 раз
Поблагодарили: 26 раз

Отчетность "на коленке".

Сообщение SaNNy »

Может такое подойдет http://csvquickviewer.com
Ответить

Вернуться в «MES - Системы автоматизации управления производством»