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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> распечатка таблицы из DataSet 
V
    Опции темы
javid_aze
Дата 31.1.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как распечатывать таблицы из DataSet??
PM MAIL   Вверх
KLUBS
Дата 31.1.2008, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Так же как и все остальное, через готовые контролы
PM MAIL ICQ Skype   Вверх
javid_aze
Дата 31.1.2008, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(KLUBS @ 31.1.2008,  17:40)
Так же как и все остальное, через готовые контролы

можешь писать пример)) smile 
PM MAIL   Вверх
KLUBS
  Дата 31.1.2008, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Примеры из моей проги: Граф. редактор....


1. контрол: PageSetupDialoG:
Код

try
            {
                pageSetupDialogMain.Document = printDocumentMain;
                pageSetupDialogMain.ShowDialog();
            }
            catch (InvalidPrinterException)
            {
                MessageBox.Show(this, "Failed accessing printer device", "Error",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


2. PrintPreview...
Код

            {
                try
                {
                    printPreviewDialogMain.Document = printDocumentMain;
                    printPreviewDialogMain.ShowDialog();
                }
                catch (InvalidPrinterException)
                {
                    MessageBox.Show(this, "Failed accessing printer device", "Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }


2.3 PrindDialpg && PrintDocument...
Код

try
                {
                    printDialogMain.Document = printDocumentMain;
                    if (printDialogMain.ShowDialog() == DialogResult.OK)
                    {
                        printDocumentMain.Print();
                    }
                }
                catch (InvalidPrinterException)
                {
                    MessageBox.Show(this, "Failed accessing printer device", "Error",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                }


Добавлено через 1 минуту и 15 секунд
ах да., там еще есть методы что то типо Paint/... в этих методах есть свойства, типо Clip или Rectange или что то вроде.. вот.. в этих методах и нужно "рисовать"

Добавлено через 10 минут
Это то что надо????
PM MAIL ICQ Skype   Вверх
javid_aze
Дата 31.1.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а как передать таблицы из датасет в PrintDocument?
PM MAIL   Вверх
KLUBS
  Дата 31.1.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(javid_aze @  31.1.2008,  18:32 Найти цитируемый пост)
а как передать таблицы из датасет в PrintDocument?

PrintDocument есть событие PrintPage...
туда надо все ручками печатать...  вот пример вывода изображения


Код

  private void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            if (drawArea.Image != null)
            {
                Bitmap image = (Bitmap)drawArea.Image.Clone();

                System.Diagnostics.Debug.WriteLine("X: " + e.MarginBounds.Left + ", Y = " + e.MarginBounds.Top + ", width = " + e.MarginBounds.Width + ", height = " + e.MarginBounds.Height);
                System.Diagnostics.Debug.WriteLine("X: " + e.PageBounds.Left + ", Y = " + e.PageBounds.Top + ", width = " + e.PageBounds.Width + ", height = " + e.PageBounds.Height);

                int width = image.Width;
                int height = image.Height;

                if ((width > e.MarginBounds.Width) || (height > e.MarginBounds.Height))
                {
                    float f = Math.Min((float)e.MarginBounds.Width / width, (float)e.MarginBounds.Height / height);

                    width = (int)(f * width);
                    height = (int)(f * height);
                }

                string strCopyRight;
                if (drawArea.FileName != null)
                    strCopyRight = Path.GetFileName(drawArea.FileName) + " -  " + strProgName + " : " + DateTime.Now;
                else
                    strCopyRight = strProgName + " : " + DateTime.Now;

                SizeF sizef = e.Graphics.MeasureString(strCopyRight, Font);

                e.Graphics.DrawImage(image, e.MarginBounds.Left, e.MarginBounds.Top, width, height);

                e.Graphics.DrawString(strCopyRight, Font, Brushes.Black, new PointF(e.MarginBounds.Left,e.MarginBounds.Height - 2 * sizef.Height));
            }
        }


PM MAIL ICQ Skype   Вверх
javid_aze
Дата 31.1.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо за помощь smile 
PM MAIL   Вверх
KLUBS
  Дата 31.1.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да не за что)))
главное чтоыб работало)))))
PM MAIL ICQ Skype   Вверх
farad
Дата 31.1.2008, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(KLUBS @  31.1.2008,  18:36 Найти цитируемый пост)
e.MarginBounds
не юзай их. Не работают они, точнее врут безбожно..плюс минус 5мм точно.  Будешь либо за границы печати вылезать, либо по несколько раз одно и тоже печатать Для расчета полей заданных пользователем используй PageSettings.HardMarginX, PageSettings.HardMarginY и PageSettings.PrintableArea...

Это сообщение отредактировал(а) farad - 31.1.2008, 19:05
PM MAIL   Вверх
KLUBS
Дата 1.2.2008, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо учту smile))
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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