Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C# Ошибка при чтении файла https://www.cyberforum.ru/ csharp-net/ thread33185.html
У меня в программе есть такой код: string fn; StreamReader sr = null; fn = openFileDialog1.FileName; ...
небольшой вопрос по StreamReader C#
вот кусок кода while (y <= (1 - alpha) / beta || y >= beta / (1 - alpha)) { logSum=0; unkText.BaseStream.Seek(0,...
Как обработать сообщение WM_PAINTCLIPBOARD? C#
мне понадобилось написать юзерконтрол такого назначения: многострочный текстбокс, а котром поверх текста должна отрисовываться нестатичная полупрозрачная картинка. Я создал наследника от TextBox,...
C# Как сделать две формы, выполняющиеся в разных потоках. Если упростить пример, то есть допустим метод, который создаёт вторую форму, и во время своего исполнения прогрессбар на форме №2 растёт. private void button10_Click(object sender, EventArgs e) ... https://www.cyberforum.ru/ csharp-net/ thread33118.html
C# Добавление строки в массив https://www.cyberforum.ru/ csharp-net/ thread33077.html
Помогите решить проблему! Есть массив pbarray ссылочного типа, необходимо скопировать элемент из этого массива и добавить её в этот же массив. При варианте pbarray = pbarray копируется только ссылка...
C# Клиент/сервер, подскажите идею
встала такая задача... делаю простую игру, и хочу пустить ее в онлайн, как сделать так что бы сервер обрабатывал данные для каждого потока отдельно и что бы он отсылал данные только нужному юзеру а...
C# Минуты, часы из datetime в (int)е
собственно хочу сделать стрелочные часы.Нужно извлечь секунды, мин., часы в целых . Пришло в голову только преобразовать в строку, что то типа DateTime dt = DateTime.Now ; string str =...
C# Нужны исходники любого чата с реализацией ЛС Нужны исходники любого чата с реализацией ЛС(можно сервер и клиент отдельно, но так что бы к серверу могло подключаться много народу, и было ЛС, это важно) на языке C# буду очень благодарен! https://www.cyberforum.ru/ csharp-net/ thread33053.html
C# Прерывание выполнения обработчика по нажатию кнопки https://www.cyberforum.ru/ csharp-net/ thread33036.html
Я создаю приложение в котором должны выполнятся достаточно объемные вычисления. Этот расчет должен выполнятся по нажатию кнопки Старт, но поскольку он может занять много времени нужно дать...
C# Оптимизировать микширования изображений Есть две очереди из элементов изображений. Bitmap bmp = (Bitmap)que.Dequeue(); bmp.RotateFlip(RotateFlipType.Rotate180FlipNone); imgpng =... https://www.cyberforum.ru/ csharp-net/ thread32995.html
0 / 0 / 0
Регистрация: 08.05.2009
Сообщений: 3
0

Печать бланка, печатная форма. Чем сделать печатную форму в VS?

08.05.2009, 10:48. Показов 7404. Ответов 5
Метки (Все метки)

Всем доброго времени суток. Есть следующая проблема:

Есть БД и клиент работающий с ней. Естественно есть необходимость печатать различную информацию из БД, в том числе и печать на бланке. Бланк: куча полей (около 100), собран в Excel'е, т.е. это около 5 часов нудной работы по подгонке всех полей в бланке, все работает замечательно, создаю новый экземпляр Excel открываю файл, нахожу нужный лист, заполняю cells'ы и отправляю на печать.

Но, есть несколько моментов, которые мне совершенно не нравятся:
  • объект Excel не уничтожается после
    C#
    1
    2
    3
    4
    5
    6
    7
    
       if (exl != null)
                {
                    try { wb.Close(false, Type.Missing, Type.Missing); }
                    catch (Exception) { }
                    exl.Quit();
                    GC.Collect();
                }
    , где exl это Excel.Application, а так и продолжает висеть в процессах, причем если пользователь напечатал 10 бланков, то и висит 10 Excel в Диспетчере задач, все экземпляры Excel замечательно уничтожаются при выходе из программы
  • на машинах без Microsoft Office такая система не работает
  • на машинах с Microsoft Office 2007 получаем странное форматирование некоторых полей, в итоге не попадание в нужные позиции на бланке
  • нет возможности сделать удобный предпросмотр, а открывать и показывать Excel кажется уродством

Вобщем некоторые моменты можно и исправить (1 - хоть сложно, думаю многие с такой проблемой сталкивались; 3 - принудительно из программы форматировать ВСЕ поля, а у меня их около 100), но в целом это не вариант.

Вопрос:
Чем максимально удобно сформировать нужную мне печатную форму средствами Visual Studio?

Пробовал Crystal Report, но мне не понравилась его связка с DataSet. Когда-то на Delphi делал отчеты, там можно было напрямую к объектам report'а обращаться и присваивать нужные значения, тут же все берется из DataSet, что в моем случае не удобно.

Примерно это выглядит так:
таблица1 (скажем договор)
индексТаблицы1
индексТаблицы2 (первый контрагент)
индексТаблицы2 (второй контрагент)
поле1
поле2
таблица2 (контрагенты)
индексТаблицы2
поле1
поле2
таблица3(производная от таблиц 1 и 2)
индексТаблицы1 (договор)
индексТаблицы2 (контрагент)
поле1
поле2

- при таком раскладе я в DataSet'е (привязанном к crystalReport'у) имею одну запись в таблица1, штук 5 записей в таблица3 и штук 7 в таблица2, crystalReport может мне вывести содержимое столбиком , но у меня поля разбросаны по всему листу. Т.е. я первого контрагента из таблица1 описываю в правой части формы, второго в левой, тех контрагентов что привязаны к договору через таблица3 внизу формы в специальной таблице.

Оптимально было бы что-то типа того же report'а как в Delphi. Может какая компанента есть к VS?

Добавлено через 1 час 12 минут 56 секунд
Вобщем после недолгих изысканий, нашел такой вариант:
с DataSet связывать не обязательно, можно наделать полей типа параметр, и передавать им нужные значения, например:
C#
1
            MyRPT.ParameterFields["nameFields"].CurrentValues.AddValue("любое значение типа string");
Вот только не знаю насколько это верное решение, народ отпишитесь пожалуйста, кто что думает по этому поводу?

Добавлено через 4 часа 30 минут 42 секунды
вот что-то мне подсказывает что это неверное решение... ну хоть кто-нибудь отпишитесь нормально так или нет?

Вернуться к обсуждению:
Печать бланка, печатная форма. Чем сделать печатную форму в VS?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2009, 10:48
Готовые ответы и решения:

Создать форму бланка, выводящую в печать результаты по 4 экзаменам пользователя, с необходимой информацией о нем
Создать форму бланка, выводящую в печать результаты по 4 экзаменам пользователя, с необходимой...

Можно ли добавить ещё одну печатную форму в документ, где уже есть одна форма?
Подскажите пожалуйста,фот у меня в документе есть печатная форма.Можно ли добавить ещё одну...

Как сделать внешнюю печатную форму из стандартной в 1С
Всем привет! Как можно сделать из печатной формы &quot;Отчет о розничных продажах&quot; сделать внешнюю...

Создание, заполнение и печать бланка
Здравствуйте, возник вопрос - через что реализовать &quot;бланк&quot;, к примеру как препроводительная...

__________________
5
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.