Abnormal programming
Delirium coding
Algorithms
Functional Programming
Visual Basic for Applications
Comments 18
+1

Магические константы в 105 символов выглядят совсем уж плохо (как минимум потому что символы в Times New Roman не фиксированной ширины).


Если Вам нужен только качественный печатный формат, то можете посмотреть в сторону latex: более-менее удобная поддержка макросов и счетчиков, перекрестных ссылок.
Из минусов: тяжелый порог входа, нет качественного экспорта в MS word, другие люди не захотят пользоваться латехом.


UPD. К функциональному программированию эта статья мало относится.

0
Меня не только печатный формат интересует, в конце-концов я думаю что так или иначе можно подвесить на вывод или преобразование в картинку/pdf. Дело в том, что фактически затем планирую добавить месячно-суточный график на основании которого будут заполняться другие типовые формы, например Общий журнал работ (Раздел 3), Акт готовности электромонтажных работ и другие. Можно ли в latex реализовать и парсить информацию с календарных графиков, заполняемых вручную?
0

Все зависит от того в каком формате будет представлен график, теоретически, если он он будет plain text (csv) то можно и замарочиться

0
На текущий момент видится мне следующим образом — МСГ в формате Excel, оттуда берутся работы, объемы работ согласно отчетным интервалам (например с 26го текущего по 25е число следующего месяца), в отдельном фильтре указывается какие работы будут упоминаться в каких типах актов, затем данные будут заноситься частично автоматически, частично вручную по нескольким таблицам и уже обработка информации с них, по принципу указанному в статье, будет осуществляться вывод комплекта документации в виде файлов.

На текущий момент у мя только одна проблема — под каждый новый принтер в системе приходится пересохранять файлы-шаблонов форм актов, т.к. не смотря на первоначальные настройки на разных принтерах даже на одной системе слетают границы. Если latex может решить эту проблему, то можно попробовать использовать его
0

Есть еще кое-что добавить:


  1. Lualatex — вариант Латеха, в котором (как это не удивительно) встроена поддержка языка программирования Lua. Собственно парсинг удобнее реализовывать на нормальном языке, а не в Латехе.
  2. Вывод в PDF в будет "из коробки" в любом современном дистрибутиве Латеха. Результаты воспроизводимы, печать из PDF будет стабильная с точностью до настроек принтера.
  3. Не находясь в контексте вашего документооборота сложно предлагать решения, я делаю это потому, что являюсь начинающим фанатиком. Принимайте решения о целесообразности самостоятельно.
+1

Можно ж на VBA дергать скрипт компиляции latex, перед этим сгенерировав шаблон

0
Из другой области, но может будет полезно: для сложных работ (статьи с математикой, таблицами, графиками и алгоритмами в бумажные журналы) использую LyX. Графики делаю, в том числе, и в Excel, первожу в картинки (нпр., JPEG). На мой взгляд LyX проще ворда. На выходе легко получаю pdf.
0
Вспоминаю те времена когда я на VBA писал хорошие вещи, обработчики со всеми связями, даже добавлял формы красивые, для добавления информации и отображения подробностей. А также использовал WinAPI чтобы это все выглядело как нужно. Это было конечно до тесного знакомства с SQL базами.
+2
И теперь спустя ваш опыт работы со скуэлем, положа руку на сердце, стоит ли базы делать на нём для домашне-офисного пользования? Или всё таки пытаться делать базы на нескольких файликах экселя? Что быстрее работает в простых поисках, что проще изучать, что проще обслуживать?
0

Гуглдокс незаменим в таких кейсах. +Масса удобств из-за облака.
Но я стараюсь все же избавиться от бумаги.

0
У меня несколько проще все сделано — на листе «исходники» собираются все данные, а потом раскидываются по десятку остальных актов. Печать из excel в принципе норм получается.
0
Купите себе кусочек фокспро 1С (технологическую платформу) и жуйте те же кактусы, но элегантно и со всеми встроенными удобствами.
0

В данном случае выбор обусловлен лишь тем, в чем я умею работать и в чем чаще всего работаю как инженер-строитель

0
Раньше (в 2к) просто отключалась отрисовка.
И потом, нужно использовать массив типа — ячейка!
Из прошлого опыта типа того что тут 2-5 стрпниц А4 готовились с минуту, потом, с отключенной отрисовкой и оформлением массива ячеек в памчти с послежкющей вставкой всего масмива — 2-3 сек.
Т.е. не надо городить на странице. Всё делается в оперативной памчти и потом вставляется чохом.
0
А чем ваше решение лучше того что предлагает MS?
Для заполнения актов на скрытые пользуюсь связкой word + excel.
В ворде есть такая вкладка — рассылки. Там можно связать документ с данными из excel (и не только). И для каждого вхождения данных будет создан документ по шаблону (вкладка найти и объединить -> объединить все. Если подробнее то:
1. создаем в excel таблицу — в столбцах данные которые будут импортированы в ворд, первая строка — заголовки полей слияния.
2. в ворде создаем шаблон акта (или чего вам там надо) и на вкладке рассылки:
— выбрать получателей -> выбрать существующий список -> указываем файл с данными
— вставить поле слияния -> раскрывается список полей (названия столбцов в таблице ексель) -> форматируем как нам надо
— найти и объединить -> изменить отдельные документы -> все
-> ворд создает новый документ по шаблону с данными по таблице из ексель
3. Лайфхаки:
— поля с датами могут содержать условия, например если данные пустые можно вставить значения по умолчанию (если не заполнена дата вставляем '__'______20__ и тд)
— даты передаются как числа, потому правой кнопкой мыши по ним и в код/значениеполей добавляем \@ «dd MMMM yyyy г.» или как вам надо отформатировать)
— если в таблице нужно передать длинные строки, то есть одна тонкость. Если первая строка данных в екселе содержит короткую строку (короче 250 символов или около того) то последующие строки этого столбца ворд тоже обрежет. Потому первую строку с данными я заполняю просто длинной строкой типа 12345… и так 1000 символов.
— в таблице ексель я создаю поле «печать». Потом в ворде во вкладке рассылки -> изменить список получателей выбираю фильтр по полю «печать»=… и отфильтровываются документы которые нужны сейчас, а не вся таблица. Как правило я создаю в екселе сразу реестр работ по всему объекту, и по мере готовности печатаю.
— связать документ ворда можно не только с екселем, но и со многими источниками данных вроде бд и тд
— полезно и даже очень изучать инструменты в которых работаешь, особенно когда есть неплохая такая справка в офисе.
0
По выводным формам:
1. Мне удобнее и привычнее работать с Excel, чем с Word.
2. Когда кол-во пунктов для вывода становится очень много, то привязками в офисе сложнеее отслеживать такие вещи для меня визуально, в то же время я прописываю доп колонку из управляющих символов на латинице, загоняю из в массив, а в шаблоне акта расставляю как мне заблагорассудится, т.е. я могу поместить значение как в отдельную ячейку, так и набрать текст навроде «b6 b7 — b9c0c1c2(b8)» или «a2, a3», моя функция корректно отрабатывает вывод такой вывод. Т.е. Набрать можно абсолютно любой текст на кириллице и, вставив управляющую латиницу, на выходе получить любые сочетания текста с сохранением кириллицы.

Я знаю, что в сети есть 2 альтернативных варианта решения проблемы, один работает со слиянием, второй так же выводит в эксель, НО(!), я не собираюсь изначально ограничиваться только выводной формой таблицы. На текущий момент я реализовал следующий функционал:
— Заполнение данные для входного контроля и вывод акты входного контроля;
— Вывод журнала входного контроля;
— Заполнение форм для вывода АОСР с подтягиванием данных из листа с данными по материалам и годовым Месячно-суточным графиком, т.е. даты парсятся с графика согласно отчетных периодов (по умолчанию месяц) и расстановка следующих друг за другом актов в рамках каждого из отчетных периодов для АОСР, пока, берется последовательно с МСГ.
— Есть визуальный (пока визуальный) контроль за кол-вом списываемых по актам АОСР материалов.

На профильных сайтах и в одной социальной сети мною уже выложен часть работающего функционала в открытый доступ для тестирования. Так что я не делаю из этого тайну. Если будет интересно потрогать ручками — прошу в приват.

По-этому с одной стороны, данная статья является напоминанием о том, что Excel может несколько больше, чем в среднем от него требуется среднестатистическому офисному сотруднику, в т.ч. можно автоматизировать рутины, с другой стороны надеюсь, что мои выкладки кому-то помогут решать именно его прикладные задачи.

В планах:
— подключить ВСН'овские формы
— реестр документов на основании выводимых актов
— ОЖР — разделы 3 и 6
— доработать ввод данных для АОСР, с тем что бы система отслеживала вывод работ по участкам, возможно делала несколько актов в зависимости от этого.
Only those users with full accounts are able to leave comments., please.