Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Розробка звітів

Ціль роботи:

· Навчитися створювати звіти за допомогою компонента ReportViewer з використанням середовища C#

· Навчитися зберігати створені звіти у файлах Word, Excel, PDF.

Приступимо до створення програми яка зможе створювати звіти на основі бази даних Oracle, які можуть бути роздруковані, або збережені на жорсткому диску файлах Word, Excel, PDF.

Для створення даного програмного засобу слід спочатку створити таблицю в базі даних Oracle, це робиться таким чином:

create table DATATABLE1

(

NAME VARCHAR2(40),

DOK BLOB

)

BLOB – поле містить в собі двійковий код, це поле буде використане для зберігання графіки в базі данних.

Після цього аналогічно лабораторній роботі №17 створюємо робочий проект, створюємо підключення до бази данних Oracle, переносимо створену нами таблицю DATATABLE1 на робочу форму програми. Аналогічно попередній роботі відкриваємо конструктор набору данних:

Знаходимо таблицю DATATABLE1 додаємо до адаптора таблиці DATATABLE1TableAdapter наступні методи так, як описано в попередній роботі.

 

Метод FillBy()

SQL – запит:

SELECT NAME

FROM DATATABLE1

 

 

Метод InsertQuery( NAME, DOK )

SQL – запит:

INSERT INTO SCOTT.DATATABLE1 (NAME, DOK) VALUES (:NAME,:DOK)

 

 

Метод ScalarQuery(DD)

SQL – запит:

SELECT DOK AS EXPR1

FROM DATATABLE1

WHERE (NAME =:DD)

 

ScalarQuery(DD) – повертає з бази даних двійковий код графічного об’єкту який відповідає значенню аргумента методу (імя курсанта).

Додаємо на форму програми компоненти: button, pictureBox1, maskedTextBox, openFileDialog як показано на скріншоті:

Переходимо до написання коду програми:

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using ExportToRTF;

using System.Xml.Serialization;

 

namespace OBD18

{

public partial class Form1: Form

{

public Form1()

{

InitializeComponent();

}

public byte[] imageToByteArray(System.Drawing.Image imageIn) // метод що перетворює графічний обєкт в двійковий код

{

MemoryStream ms = new MemoryStream();

imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);

return ms.ToArray();

}

public Image byteArrayToImage(byte[] byteArrayIn) // метод що перетворює двійковий код в графічний обєкт

{

MemoryStream ms = new System.IO.MemoryStream(byteArrayIn);

Image returnImage = Image.FromStream(ms,true,false);

return returnImage;

}

private byte[] bb;

private void Form1_Load(object sender, EventArgs e)

{

 

this.dATATABLE1TableAdapter.FillBy(this.dataSet1.DATATABLE1);

}

 

private void dATATABLE1BindingNavigatorSaveItem_Click_1(object sender, EventArgs e)

{

this.Validate();

this.dATATABLE1BindingSource.EndEdit();

this.tableAdapterManager.UpdateAll(this.dataSet1);

 

}

 

private void dATATABLE1DataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e)

{

 

}

 

private void pictureBox1_Click(object sender, EventArgs e)

{

 

}

string FileNAme;

 

 

private void button1_Click(object sender, EventArgs e)

{

openFileDialog1.ShowDialog();

FileNAme = openFileDialog1.FileName;

Image im = new Bitmap(FileNAme);

dATATABLE1TableAdapter.InsertQuery(maskedTextBox1.Text, imageToByteArray(im)); // додаємо графічний обєкт в базу даних

this.dATATABLE1TableAdapter.FillBy(this.dataSet1.DATATABLE1);

}

 

private void button2_Click(object sender, EventArgs e)

{

pictureBox1.Image = byteArrayToImage(this.dATATABLE1TableAdapter.ScalarQuery(maskedTextBox2.Text)); // виводимо графічний обєкт з бази даних в компонент pictureBox1

this.dATATABLE1TableAdapter.FillBy(this.dataSet1.DATATABLE1);

}

 

}

}

Тепер перейдемо до створення звітів, для цього додамо в проект дві нових форми Form2 і Form3 для цього Проект -> Добавить форму Windows:

Додаємо код

private void button3_Click(object sender, EventArgs e)

{

Form2 f= new Form2();

f.Show();

 

}

 

private void button4_Click(object sender, EventArgs e)

{

Form3 f = new Form3();

f.Show();

}

При натисненні на кнопки emp і dept будуть відкриватися форми Form3 та Form2.

На Form2 додаємокомпонент ReportViewer далі вибираємо пункт Создать новый отчет як показано нижче

 

Далі виконуємо все, як показано на скріншоті:

 

 

Претягуємо всі доступні поля в значення:

 

Тиснимо Д алі:

Вибираємо стиль звіту:

 

 

Видаляємо групові функції Sum із стовпців якщо вони непотрібні:

Далі з панелі елементів додаємо таблицю в якій лишаємо лше одну клітинку для того щоб вивести в неї загальну заробітні платню:

 

 

Натискємо правою кнопкою миші по створеній клітинці та вибираємо пункт Создать местозаполнитель далі натискаємо на кнопку справа від поля Значения:

 

Далі вибираємо Набор данных і застосовуємо групову функцію Sum для стовпця SAL натискаємо ок:

Аналогічно створемо звіт для таблиці dept на Form3.

Повернимося на Form3 та виберемо потрібний нам звіт.

 

Запускаємо програму та створюємо звіт натисненням на кнопку EMP бачимо що даний звіт можна відправити на печать, зберегти на жорсткому диску в документи Word, Exel, Pdf:

 

 

PDF

 

Excel

Завдання.

1. Розробити програмний додаток згідно варіфнта контрольної роботи.

2. Створити звізи за допомогою MS Word та Ms Excel.

3. Кожен звіт має розміщуватись на окремій формі.

<== предыдущая лекция | следующая лекция ==>
Двоступеневий Т-тригер | Тригонометрична форма запису комплексних чисел
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 469; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.