Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9

Формирование ТКП

19.07.2018, 11:58. Показов 1190. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Работаю смежно с отделом маркетинга и заморочился реализовать ПО для формирования ТКП.
Суть такая:Человек выбирает с определенными характеристиками прибор, данные вносятся в datagridview. При нажатии на кнопку "Сформировать ТКП" происходит формирование отчета А4 с фиксированной информацией как на официальном бланке, а таблица формируется из данных datagridview в виде таблицы.

Формирование Excel или Word документа мне показался сложным.Я сделал пока изощренный вывод в документ для печати через printdocument, но пока не соображу как. Прошу подсказать самый безболезненный способ формирования такого отчета, желательно с возможность как печати, так и сохранения файла.

Прикладываю скриншоты того что есть.
Миниатюры
Формирование ТКП   Формирование ТКП  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.07.2018, 11:58
Ответы с готовыми решениями:

Формирование бд
Дело в том, что я разрабатываю сервер на Java, во время работы он будет работать с мускулом. Суть такова, что у меня все данные делятся по...

Формирование бд
Помогите с програмкой.Есть форма на ней комбобокс,четыре радио батона и база даных.Радио батоны (подразделение,звание...

Формирование массива
Подскажите, как сформировать массив вот такого вида, причем "int" может повторяться, но иметь другое значение( нужно что б в этом...

13
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.07.2018, 15:04
Цитата Сообщение от Hjort Посмотреть сообщение
возможность как печати, так и сохранения файла.
Значит, прямой путь к OpenXML. Или html. PrintDocument никогда не использовал, но, полагаю, что он нужен для очень специфического вывода в условиях отсутствия сторонних редакторов.
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
20.07.2018, 07:36  [ТС]
Начал разбираться в OpenXML нашел способ формирования документа Excel.
https://kbss.ru/blog/lang_c_sharp/315.html

Но ругается на участке:
C#
1
[U]InsertCell[/U](row, 1, "Стиль 1", CellValues.String, 5);
и т.д.

Якобы имя не существует в контексте, хотя все необходимое подключил.

Так же на участке:
C#
1
wbsp.Stylesheet = [U]GenerateStyleSheet();[/U]
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
20.07.2018, 10:52
Hjort, InsertCell это твой отдельный статический метод. Ты его добавил? Так же как и GenerateStyleSheet
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
06.08.2018, 07:44  [ТС]
Практически все сделал, НО есть проблема. В оригинальном ТКП в левой верхней части документа выводится логотип и реквизиты компании, а справа-вверху с помощью Автоформы(Активной формы?) создано окно-надпись с наименованием фирмы, должности и ФИО заказчика.

По логике вещей чтобы было удобно корректировать такое поле, необходимо создать такую автоформу с информацией из полей программы. Но как? Есть такие свойства как AddShape, но я совершенно не понял как корректно его использовать.
В крайнем случае придется бить документ на колонки, мне кажется это потребует больше времени, чтобы все корректно выводилось.
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
08.08.2018, 08:59  [ТС]
Еще момент:как программно очистить весь холст открытого документа Ворд?

Добавлено через 1 час 50 минут
ViterAlex, сможешь помочь советом?
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.08.2018, 09:58
Hjort, что такое «холст» документа?
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
08.08.2018, 10:49  [ТС]
ViterAlex, ну в идеале вызвать некую функцию .clear(), чтобы очистить открытый документ.
"Холст" все что находится в документе ворд:таблицы, текст, изображение.

Пытался реализовать через примерно такого вида код:
C#
1
2
3
4
5
6
7
Object begin = 42;
Object end = 49;
Word.Range wordrange = worddocument.Range(ref begin, ref end);
            wordrange.PageSetup.LeftMargin = wordapp.CentimetersToPoints((float)1.5);
            wordrange.PageSetup.BottomMargin = wordapp.CentimetersToPoints((float)1.5);
            wordrange.PageSetup.TopMargin = wordapp.CentimetersToPoints((float)1.5);
            wordrange.Select();
Как бы выделить всю информацию в документе через Range и Select, а потом вызвать некий Delete, который собственно не нашел.
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.08.2018, 11:02
C#
1
worddocument.Range.Delete();
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
08.08.2018, 11:18  [ТС]
ViterAlex,

Я такие варианты тоже искал, ошибка
Миниатюры
Формирование ТКП  
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.08.2018, 11:25
Hjort, а, ну да, в Interop Range это метод, а не свойство. Ну значит так:
C#
1
worddocument.Range().Delete();
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
08.08.2018, 11:33  [ТС]
ViterAlex, вот спасибо! Решение было простое, а сам найти не смог

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

Практически все сделал, НО есть проблема. В оригинальном ТКП в левой верхней части документа выводится логотип и реквизиты компании, а справа-вверху с помощью Автоформы(Активной формы?) создано окно-надпись с наименованием фирмы, должности и ФИО заказчика.

По логике вещей чтобы было удобно корректировать такое поле, необходимо создать такую автоформу с информацией из полей программы. Но как? Есть такие свойства как AddShape, но я совершенно не понял как корректно его использовать.
В крайнем случае придется бить документ на колонки, мне кажется это потребует больше времени, чтобы все корректно выводилось. Но тоже под вопросом как, лучше просто активную форму, как по мне.
0
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
08.08.2018, 11:42
Цитата Сообщение от Hjort Посмотреть сообщение
В оригинальном ТКП в левой верхней части документа выводится логотип и реквизиты компании
Использовать шаблон с заранее заданным оформлением. Программно добавлять всё это очень муторное занятие.

Будет проще, если ты покажешь документ, который хочешь сгенерировать
0
0 / 0 / 0
Регистрация: 19.07.2018
Сообщений: 9
08.08.2018, 11:51  [ТС]
ViterAlex, шаблон - это вообще заново делать, я уже по факту добился корректного отображения программно, возникает вопрос только с заказчиком, пользователь вбил данные и их надо корректно вывести в противоположном углу не пересекаясь с левой стороной.
Опять же по шаблонам информация в сети скудная, вот и сделал как сделал.Муторно, но зато все на своих местах.

Логотип из файла удалил, он немного больше места занимает, чем нужно, располагался над реквизитами,что слева.
Вложения
Тип файла: doc ТКП.DOC (54.0 Кб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.08.2018, 11:51
Помогаю со студенческими работами здесь

Формирование пакетов
Доброго времени суток господа. Начал изучать networking и столкнулся с проблемой недостатка информации. Суть вопроса такова: чтобы передать...

формирование массива
Ввести в память машины с клавиатуры число. Проверить, является ли это число простым. Если да, то найти следующее за ним простое число. Если...

Формирование картотеки
На междугородней телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах (ФИО, улица), организована как...

Формирование строки
Здравствуйте. Столкнулся, с проблемой на ровном месте. Суть, собираю строку вот таким способом. Stroka = Stroka + new...

Формирование массивов (С++).
Здравствуйте.Передо мной стоит такая задача,и по скольку я мягко говоря "ослик" в этом,прошу помощи умов по данной сфере :).Буду очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru