Обновить
14

Разработчик БД

9
Подписчики
Отправить сообщение

Никакой магии в моем коде нет. Стандартная работа с классом Microsoft.Reporting.WinForms.ReportViewer. Выполняем SQL запрос к СУБД (ClickHouse, MSSQL или любой другой с нормальным провайдером), получаем DataTable и отправляем его в ReportViewer, строим отчет и получаем его в нужном формате.

Просто ImportExportDataSql делает это динамически, читает параметры и SQL запросы из RDLC (по факту это XML) файла используя провайдер ClickHouse.Client. В скором времени добавлю туда другие СУБД, которые не поддерживаются стандартным SSRS.

ImportExportDataSql использует драйвер ClickHouse.Client, поэтому тормозов не наблюдается.

По факту используется лишь компонент Microsoft.ReportViewer для отображения отчета. Сам SSRS не требуется устанавливать. Получается очень удобная embedded (портативная) версия SSRS, которая потребляет ресурсы лишь только во время построения отчета (запуска приложения ImportExportDataSql). Далее, готовый отчет отправляется на почту.

Недавно тоже занимался подобной задачей. Доработал свое приложение ImportExportDataSql (работает только под Windows)
ImportExportDataSql теперь поддерживает копирование данных из MSSQL в ClickHouse и обратно (из ClickHouse в MSSQL).
Под капотом используется драйвер ClickHouse.Client и вставка работает блоками (количество строк в блоке можно задать пользователем) через классы ClickHouse.Client.Copy.ClickHouseBulkCopy и SqlBulkCopy.
Кроме этого, встроил SSRS отчеты для ClickHouse, теперь можно генерить отчеты одновременно подключаясь к MSSQL и ClickHouse в одном отчете.
Сам отчет создается в ReportBuilder, а ImportExportDataSql читает XML-файл отчета и генерит его в форматах PDF, Excel (xls и xlsx), Word (doc, docx), Image (tiff)
В универсальном конверторе ImportExportDataSql есть еще:

  • выгрузка из БД в файл [CSV, Excel, SQL] и обратно

  • выгрузка структуры БД в один файл или с разбиением по объектам

  • поддержка командной строки

Скриншоты приложения ImportExportDataSql
Конвертация данных из одной СУБД в другую
Конвертация данных из одной СУБД в другую
Настройка RDL (SSRS) отчета
Настройка RDL (SSRS) отчета

Вместо "Microsoft RDLC Report Designer", встроенный в VisualStudio, я использую ReportBuilder (бесплатный дизайнер отчетов). Сделал свое приложение ImportExportDataSql, которое парсит RDL (они же XML) файлы и генерит отчеты в форматах PDF, XLS, XLSX, DOC, DOCX или TIFF. В одном отчете можно совмещать данные из разных источников, сейчас поддерживается Microsoft SQL Server, MySQL и ClickHouse.

Скриншот из приложения ImportExportDataSql. Окно настройки источников данных и параметров отчета
Скриншот из приложения ImportExportDataSql. Окно настройки источников данных и параметров отчета

Может кому-то будет полезно и интересно мое приложение для заметок оффлайн - FAQ Net (пока только под Windows). Пользуюсь уже больше 10 лет.
Документы хранятся в БД SQLIte (в RTF формате + дублируется TXT формат, по которому работает поиск).
Можно хранить текст, картинки и создавать таблицы.
Поиск по всем заметкам работает всегда меньше 1 сек на HDD (тестировал на базе 2Гб), на SSD, естественно, еще быстрее.

Есть теги, вкладки Избранное и Журнал (последние 50 измененных заметок), но главное отличие FAQ Net - "словарь подсказок", куда вносятся слова и к этому слову можно привязать ссылку на другую заметку или ссылку на Интернет-ресурс, либо просто комментарий с подсказкой.
При наведении на слово в любой заметке можно навести на него мышкой и перейти в другую заметку или на сайт.
Подробнее об этом можно посмотреть видео "Создание всплывающих подсказок".

Приложение бесплатное, не требует доступа в интернет.
Есть также функция автоматического создания бэкапа БД, храню по одной копии на двух жестких дисках (HDD и SSD). При желании, можно копировать резервные копии на FTP.
Код выложен в github.

Скриншоты приложения FAQ Net
Интерфейс главного окна приложения FAQ Net
Интерфейс главного окна приложения FAQ Net
Автоматическое резервное копирование БД
Автоматическое резервное копирование БД
Работа с тегами в FAQ Net
Работа с тегами в FAQ Net

Для тех, кому не нужна синхронизация базы знаний между устройствами, рекомендую FAQ.NET (только под Windows)
Сам разработал и пользуюсь им уже больше 10 лет.
Теги, таблицы, изображения, ссылки на файлы/папки/письма Outlook - все это есть в FAQ.Net.
Уникальный функционал в FAQ.Net - "словарь подсказок", в который можно занести некое слово и это слово будет отображаться при нажатии Ctrl+Space с подсказкой, а при наведении на слово курсором мыши в любой заметке можно увидеть его описание/перевод и перейти в другую заметку или на сайт. Об этом можно посмотреть видео "Создание всплывающих подсказок"
Все заметки хранятся в БД SQLIte, что обеспечивает быстрый поиск по всем заметкам, при чем в больших БД (тестировал на базе 2Гб).
Приложение бесплатное, портативное, работает под Windows XP и выше даже с флешки, не требует доступа в интернет.
Есть функция автоматического создания бэкапа базы, храню по одной копии на двух жестких дисках (HDD и SSD).
При желании, можно копировать резервные копии на FTP.
Код выложен в github.

Скриншоты из приложения FAQ.Net

На данный момент, из коробки нет синхронизации. Но для синхронизации есть готовые решения SQLIte: Litestream, rqlite или dqlite.

Мобильная версия в планах, но скорее всего это будет лайт версия с веб интерфейсом и только для чтения.

А мне всегда не хватало софта в котором можно было бы хранить, редактировать и искать документы Word и Excel не только по названию документа, но и по содержимому и чтобы это работало быстро и в одном окне.

Не дождавшись такого софта, разработал свое приложение для заметок оффлайн - FAQ Net (пока только под Windows). Пользуюсь уже больше 10 лет.
Документы хранятся в БД SQLIte. Внутри базе заметки хранятся в RTF формате + дублируется TXT формат, по которому работает поиск
Поиск по всем заметкам работает быстро (тестировал на базе 2Гб).

Есть теги, но главное отличие FAQ Net от других аналогов - "словарь подсказок", куда вносятся слова и к этому слову можно привязать ссылку на другую заметку или ссылку на Интернет-ресурс, либо просто комментарий с подсказкой.
При наведении на слово в любой заметке можно навести на него мышкой и перейти в другую заметку или на сайт.
Подробнее об этом можно посмотреть видео "Создание всплывающих подсказок".

Приложение бесплатное, не требует доступа в интернет.
Есть также функция автоматического создания бэкапа БД, храню по одной копии на двух жестких дисках (HDD и SSD).
При желании, можно копировать резервные копии на FTP.
Код выложен в github.

Рекомендую FAQ Net (пока только под Windows). Сам разработал и пользуюсь им вот уже 10 лет.
Можно создать тег, а можно занести некое слово в словарь подсказок при наведении на которое в любой заметке можно навести на него мышкой и перейти в другую заметку или на сайт.
Все заметки хранятся в БД SQLIte, что обеспечивает быстрый поиск по всем заметкам, при чем в больших БД (тестировал на базе 2Гб).
Об этом можно посмотреть видео "Создание всплывающих подсказок"
Приложение бесплатное, не требует доступа в интернет.
Есть функция автоматического создания бэкапа базы, храню по одной копии на двух жестких дисках (HDD и SSD).
При желании, можно копировать резервные копии на FTP.
Код выложен в github.

Скриншоты из приложения FAQ Net

В 2013 году, когда создавался FAQ Net, было мало удобных программ для заметок. Мне нравился интерфейс CHM файлов. Поэтому сделал некое подобие CHM с возможностью редактирования, потом добавил переходы внутри документов, при чем сделал это оригинально (через всплывающие подсказки). В 2019 году написал о ней первую статью на habr и выложил код в github. После этого, не поверите, более 1000 скачиваний за неделю и множество пользователей.

Теперь я рад, что не один ей пользуюсь и программа приносит пользу не только мне.

Я уже давно пользуюсь своим RTF редактором - FAQ Net

Это бесплатная записная книга или заметки на компьютере. Многие скачали мое приложение и успешно пользуются им не один год. В ней очень удобный поиск и есть резервное копирование базы. Вся информация хранится в одном файле. Это подобие Word’а с быстрым поиском по всем документам.

Скоро добавлю установку пароля для документов

Вся правда здесь написана. У меня вот тоже есть пару приложений, которые выложил бесплатно.
Спустя год я получил первый донат с приятным отзывом, потом еще несколько.
Люди до сих пор пользуются моими приложениями на протяжении нескольких лет.
Обратная связь пользователей и поощрения (даже в виде 5-10 рублей) сильно мотивируют на дальнейшее продвижение своего проекта, особенно если сам им пользуешься.
Автору спасибо за пост и желаю успехов в развитии своего продукта.

Мои приложения, которые может кому-то пригодятся:
FAQ Net - приложение для заметок
ImportExportDataSql - MSSQL конвертер данных

Рекомендую попробовать FAQ Net - https://github.com/shmelev-1987/faq_net

FAQ Net - это десктопное Windows приложение, позволяющее хранить документы в единой базе данных с возможностью быстрого поиска информации и иерархической структурой хранения. Приложение портативное (не нужно устанавливать на компьютер, а можно запускать, например, с флешки).

Имеются функции автоматического резервного копирования БД, печати и предварительного просмотра. Возможна работа с текстом, таблицами и изображениями.

Есть функция всплывающих подсказок, которые отображаются при наведении курсора мыши на слово (можно использовать как переводчик). Быстрые переходы между заметками, теги.

Покупал у дилера подержанное авто, которое прошлый хозяин сдал в trade-in

Для типа задачи "Сохранить из БД в CSV" выбор кодировки добавлен в ImportExportDataSql версии 5.0.0.57

Подготовил сборку FAQ Net под .NET Framework 4.5. Можете скачать по ссылкам:

FAQ Net 32bit net45
FAQ Net 64bit net45

Если Вы пользуетесь Windows 10, то достаточно скомпилировать проект под .NET Framework версии 4.7.2. Кстати, это хороший совет, добавлю дистрибутивы FAQ Net под Windows 10.

  1. По-умолчанию тема не используется. Выбрать тему можно в настройках по кнопке расположенной слева внизу (с изображением "ключа"), выбрав пункт "Настройки внешнего вида"

  2. Подсветки синтаксиса нет. Но при копировании кода из Visual Studio, SQL Server Management Studio или Word подсветка синтаксиса сохраняется

  3. Извиняюсь. Есть небольшой баг в версии 2.11, который в ближайшее время исправлю в github. Он связан с отсутствием дочерних элементов в файле "FAQ_Net.xml" (например: <root></root>). Быстрое решение проблемы, отредактировать файл "FAQ_Net.xml", добавив один дочерний элемент "SettingString". Например:

<root>
  <SettingString KeyName="MainFormX" KeyValue="MA==" />
</root>

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность