0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|
1 | |
.NET 3.x Создание макета коммерческого приложения с выгрузкой данных из DGV23.06.2021, 09:11. Показов 5648. Ответов 22
Уважаемые форумчане, доброго времени суток! В рамках создания мини-crm для упрощения своей работы столкнулся со следующей трудностью:
Есть БД, DGV в условии и макет коммерческого (см. скриншот) в решении. Задачу поставил для себя следующую: создать готовое КП в формате .pdf без использования дополнительного ПО от мелкомягких. По своим умозаключеним пришел к XML, но тут у меня и случился затык, потому что для меня XML сродни темному лесу. Не прошу готовых решений, мне нужно направление для понимания концепции. Либо же альтернативные варианты решения подобного вопроса. Заранее благодарю за помощь!
0
|
23.06.2021, 09:11 | |
Ответы с готовыми решениями:
22
Перенос данных из одного DGV в другой DGV Создание коммерческого веб-сайта на лотусе проблема с выгрузкой данных База данных коммерческого банка |
258 / 199 / 49
Регистрация: 18.12.2015
Сообщений: 416
|
|
23.06.2021, 14:59 | 2 |
Добрый день.
А каким образом вы собирались переносить данные из xml в pdf? Pdf это не просто текстовый\табличный файл, там своеобразная структура.
0
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|
23.06.2021, 15:20 [ТС] | 3 |
Согласен, ваша правда, не подумал об этом... Из доступных (читай: бесплатных) пакетов я не знаю ни одного. А если XML сменить на HTML? Подозреваю, что его будет и конвертировать в PDF легче.
Самая большая сложность для меня сейчас - это понять как или с помощью чего делать разметку будущему документу. Я перерыл уже огромное количество форумов, но везде либо все ограничивается выводов одной лишь DGV в итоговый отчет в качестве примера, либо делают все на базе шаблонов/документов в MSOffice. На работе ограничен LibreOffice, что автоматом отсеивает второй вариант.
0
|
2099 / 1510 / 391
Регистрация: 26.06.2017
Сообщений: 4,329
|
|
23.06.2021, 16:12 | 4 |
Да вроде бы нет, для LibreOffice есть SDK с поддержкой VB.Net.
Ещё как вариант сделайте приложение с формой КП и перчайте форму на PDF-принтер. Как печатать саму форму были темы на форуме поищите, ну а чтобы не возиться с форматом самого PDF документа используйте любой доступный PDF-принтер. Добавлено через 9 минут Печать формы.
1
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|||||||||||
24.06.2021, 17:56 [ТС] | 5 | ||||||||||
Uswer, спасибо за идею с формой, сегодня попробовал ее рассмотреть, но возникают сложность с размещением таблицы. Так как она может иметь размер на несколько страниц, то победить ее формой я не смог. Этот вариант рассматриваю, как совсем на костылях.
Это да, видел, пытался, но за раз слишком муторно, если честно, особенно после vba) Да и саму задачу себе поставил воплотить полностью независимый проект от внешних программ. По итогу, на сегодняшний день пытаюсь разобраться в коде ovva, где он выводил dgv в html. Кстати, уважаемые мастера, помогите с ошибкой. Ниже привожу код автора ovva:
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." System.Windows.Forms.DataGridViewColumnCollection.this[string].get вернул Nothing. Куда смотреть?
0
|
2099 / 1510 / 391
Регистрация: 26.06.2017
Сообщений: 4,329
|
|
24.06.2021, 19:22 | 6 |
Сообщение было отмечено Cryphon как решение
Решение
Cryphon, мне думается сочетать HTML и приложение WinForms не самый лучший, хотя и возможный, вариант. Мне кажется Вам стоит разобраться с классом PrintDocument. В целом, мне видится такой подход: в некоторой форме есть DGV, там он заполняется правится и всё такое; как только DGV готов, то нажимается кнопка, по которой формируется печатаемый документ (PrintDocument), затем это добро пуляется на принтер. При желании можно добавить предпросмотр.
1
|
24.06.2021, 20:40 | 7 |
Сообщение было отмечено Cryphon как решение
Решение
Лучше бы вы дали ссылку, откуда этот код взят.
Но полагаю, что вам стоит воспользоваться предложением Uswer. Вы формируете документ, далее выводите его на PDF-принтер и имеете готовый документ в формате PDF. Прикладываю небольшую тестовую программу, которая думаю, будет полезна, если вы выберете этот вариант подготовки документа.
1
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|
24.06.2021, 21:03 [ТС] | 8 |
Извиняюсь, исправлюсь)
Огромное спасибо за советы, пошел учить матчасть. За это вообще низкий поклон, особенно с учетом описанного функционала в ней. В процессе изучения PrintDocument у меня появился вопрос: а какой итоговый размер у виртуального листа а4 в точках, которые объект e просит ввести при формировании текста для вывода в документ? Добавлено через 6 минут вот, нашел: PrintDocument, PrintPreviewDialog - вывод содержимого формы на печать
0
|
29.06.2021, 17:32 | 9 |
Для формирования отчета можно использовать элемент управления ReportViewer (https://docs.microsoft.com/en-... 1(v=vs.140)) и там имеется экспорт в форматах Excel, Word, PDF. Но сразу скажу, вещь довольно путанная, и чтобы разобраться придется потратить время. Предполагается активный поиск в сети. И все же разобраться имеет смысл.
Прикладываю проект использующий ReportViewer.
1
|
29.06.2021, 18:42 | 11 |
Она не битая просто там залипла последняя скобка
https://docs.microsoft.com/en-... (v=vs.140) https://docs.microsoft.com/en-... (v=vs.140)
0
|
29.06.2021, 19:05 | 12 | |||||
Еще вариант с xml представлением таблицы
1
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
||||||
01.07.2021, 17:21 [ТС] | 13 | |||||
Спасибо за наводку, тоже долго в нем ковырялся, но понять не смог. В итоге, нашел на просторах Nuget пакет Bunifu.Reports, который оказался достаточно простым для моего понимания и позволил на лету формировать HTML-документы по заданным параметрам. На сегодняшний день удалось реализовать вопрос из сабжа (скриншот 1), правда столкнулся с проблемой в кодировке при сохранении файла в pdf непосредственно через код (скриншот 2), которую понять пока не удалось. Если есть знающие, то буду благодарен за объяснения этой кракозябры.
Для тех, кто хочет с помощью пакета Bunifu.Report создавать документы, но не шарит в HTML (как я, например ), могу порекомендовать HTML редактор номер раз и редактор номер два. Они очень выручили меня и позволили подтянуть как базовое понимание структуры языка, так и ускорили процесс работы. Ниже пример кода:
0
|
01.07.2021, 21:03 | 14 | |||||||||||||||||||||||||
Никакой критики просто мысли вслух.
Требуется подключение двух библиотек общим объемом 50 Мб, причем одна из них бета-версия. И, несмотря на имеющиеся библиотеки, в коде приличное количество гипертекста, что наводит на мысль что м.б. проще просто создать HTML с нуля. На мой взгляд, более перспективно XML+XSLT, правда XSLT требует изучения. Теперь по коду.
Найдем строку
К сожалению я не нашел способа внести описанные исправления в объекты используемых библиотек.
1
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|
01.07.2021, 21:47 [ТС] | 15 |
На нем пока и остановился, выдаю через принтер или на печать, или в pdf. Первый скрин как раз именно с этой команды.
Да, я так же пришел к этой злополучной кодировке, оставил это пока до лучших времен, сейчас в первую очередь функционал, у меня сотрудники в отделе КП по полтора часа составляют. Ранее вы писали: Я, признаюсь, крайне поверхностно по нему прошел, поэтому прошу уточнить: функционал похожий с тем, что у меня сейчас? Как я понял, необходимо создать шаблон отчета в формате .rdlc и уже в него добавлять необходимые данные?
0
|
01.07.2021, 22:35 | 16 |
А почему бы не сохранять исправленный HTML файл. Затем вы загружаете его в браузер и оттуда печатаете в требуемом виде (в том числе в виде PDF файла).
Нет.
0
|
2099 / 1510 / 391
Регистрация: 26.06.2017
Сообщений: 4,329
|
|
02.07.2021, 00:13 | 17 |
Что-то как-то всё сумбурненько Вам не кажется? Я подумал вот что: а что если вообще всё делать в браузере? То есть вообще всё, и наполнение самого КП, и если надо сохранение, и печать. Браузеры есть везде, поэтому никакие сторонние приложения не потребуются вообще. Вместо приложения нужно будет написать корпоративный сайт. Некоторые сотрудники вообще по удалёнке и с телефона смогут КП-шик мастырить. Как идейка?
0
|
0 / 0 / 0
Регистрация: 07.06.2020
Сообщений: 8
|
|
02.07.2021, 11:06 [ТС] | 18 |
Не по теме: Лучше и не скажешь, Uswer, все именно сумбурненько) Бухгалтерия предприятия работает в своей 1С, бухгалтер коммерческой организации при предприятии работает в своей 1С, сам коммерческий отдел не имеет доступа ни к одно из баз - работает вообще кто как: кто в блокноте, кто в экселе, кто в голове. В итоге полный сумбур по отгрузкам, производству и контролю) Такова реальность частного производственного предприятия, где руководству не до проблем сотрудников, им лишь бы все были заняты. На этом сформировались устои и традиции. Приходится все портить и брать инициативу в свои руки. Нанимать программистов - дорого, делать корпоративный сайт - дорого. Вам надо? вы и е**тесь) Да, вы категорически правы, но реальность - она не всегда адекватная) У меня была наработка в экселе на vba, где все было здорово, пока экономия не пересадила меня на LibreOffice. Поняв, что vba и vb.net не так уж сильно отличаются, я начал постигать темные кулуары программирования) Благо сегодня это гораздо проще, чем 15 лет назад. ovva, подскажите, пожалуйста, есть ли на памяти что-то более наглядное, чем справка Майкрософт по ReportViewer? Уж больно там тернисто все описано. Я посмотрел ваш пример, но логику так и не уловил.
0
|
261 / 213 / 53
Регистрация: 01.08.2016
Сообщений: 825
|
|
02.07.2021, 11:59 | 20 |
Kulma, А если для ReportViewer в качестве источника данных использовать просто какую то дт? Необязателно выборку из бд так же можно?
0
|
02.07.2021, 11:59 | |
02.07.2021, 11:59 | |
Помогаю со студенческими работами здесь
20
Проблема с выгрузкой из базы данных Проблема с выгрузкой данных через ADO Проблема с выгрузкой данных во внешнюю печатную форму Создание Макета в 1с Создание макета Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |