Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать 
:(
    Опции темы
rarxxx
Дата 12.11.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 27.7.2010

Репутация: нет
Всего: нет



понимаю тема заезжена но уже 2 дня ищу куда лучше копать 
есть форма на ней Canvas (0 элемент картинка и сверху полигоны карта объекта)
и dataGridView
заполнен руками без БД SQL итп

как на первом листе распечатывать canvas c содержимым(сечас печатаю так, но есть проблема чем меньше изображение тем соответственно хуже картинка (может кто тож подскажет решение  smile ) тольк надо с полигонами.
Код

private void buttonPrint_Click(object sender, EventArgs e)
        {
            System.Drawing.Graphics gr = splitContainer1.CreateGraphics();            
            printDocument1.DefaultPageSettings.Landscape = true;
            
            b = new System.Drawing.Bitmap(splitContainer1.Panel1.ClientRectangle.Width, splitContainer1.Panel1.ClientRectangle.Height);
            
            splitContainer1.Panel1.DrawToBitmap(b, splitContainer1.Panel1.ClientRectangle);
            
            if (printPreviewDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)            
            b = null;            
        }
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            System.Drawing.Graphics g = e.Graphics;
            System.Drawing.Rectangle rect;
            int pbWidth = e.MarginBounds.Width;
            int pbHeight = e.MarginBounds.Height;
            int ImageWidth = b.Width; int ImageHeight = b.Height;

            System.Drawing.SizeF sizef = new System.Drawing.SizeF(ImageWidth / b.HorizontalResolution, ImageHeight / b.VerticalResolution);
            float fSeale = Math.Min(pbWidth / sizef.Width, pbHeight / sizef.Height);
            sizef.Width *= fSeale;
            sizef.Height *= fSeale;
            System.Drawing.Size size = System.Drawing.Size.Ceiling(sizef);
            rect = new System.Drawing.Rectangle(e.MarginBounds.Location.X, e.MarginBounds.Location.Y, size.Width, size.Height);
            
            g.DrawImage(b, rect);
        }


) а на втором таблицу 


встречал уже кучу всяких решений но по моему они слишком сложны для решения такого вопроса smile 
может кто подскажет как по быстрому  smile 
(на крайняк как добавить 2 лист и как на него таблицу положить)




PM MAIL   Вверх
Certain
Дата 12.11.2010, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 18.6.2008
Где: Moscow

Репутация: 1
Всего: 4



e.HasMorePages = true   добавляет страницу.
Таблицу действительно сложно распечатать таким способом, прорисовывать всё самому придётся. 
Хотя.... я бы сделал при помощи ReportViewer

Это сообщение отредактировал(а) Certain - 12.11.2010, 23:08
--------------------
Работа программиста и шамана имеет много общего - оба боpмочyт непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает.
PM MAIL ICQ   Вверх
rarxxx
Дата 13.11.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 27.7.2010

Репутация: нет
Всего: нет



Буду капать ReportViewer спасибо за ответ
PM MAIL   Вверх
rarxxx
Дата 16.11.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 27.7.2010

Репутация: нет
Всего: нет



кто нить может рассказать как добавить DataSet или dataGridView1 в ReportViewer  smile 

PM MAIL   Вверх
rarxxx
Дата 18.11.2010, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 27.7.2010

Репутация: нет
Всего: нет



с таблицей разобрался(как делить на страницы тоже) )быстро аж незаметил времени=), как и думал все очень просто главное найти нужную ссылку http://www.fast-report.com/frnet_swf/use_in_vs.html (FastReport.net не обязательно использовать Report вполне подходит)

но пока не решил вопрос как добавить в отчет ReportViewer переменную b

Код

b = new System.Drawing.Bitmap(splitContainer1.Panel1.Clien­tRectangle.Width, splitContainer1.Panel1.ClientRectangle.Height);
splitContainer1.Panel1.DrawToBitmap(b, splitContainer1.Panel1.ClientRectangle);


Это сообщение отредактировал(а) rarxxx - 18.11.2010, 15:35
PM MAIL   Вверх
rarxxx
Дата 19.11.2010, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 27.7.2010

Репутация: нет
Всего: нет



пока решил положить "Изображение" в отчет 
"Source" = External а Value ="file:\\\" & "C:\Maps\image.jpg"
перед формированием отчета сохранять b в image.jpg

но как то неправильно это, должен быть другой способ

Это сообщение отредактировал(а) rarxxx - 21.11.2010, 00:41
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0443 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.