PIbd-31_Razubaev_S_M_COP-10/WinForms/FormComponents.cs
2024-10-18 20:27:08 +04:00

219 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.Collections.Generic;
using WinFormsLibrary;
using WinFormsLibrary.NonVisualComponents.Enums;
using WinFormsLibrary.NonVisualComponents.Helpers;
using WinFormsLibrary.Object;
namespace WinForms
{
public partial class FormComponents : Form
{
List<string> list = new List<string>();
List<Client> clients = new List<Client>();
public FormComponents()
{
list = new List<string>();
list.AddRange(new string[] { ример1", ример2", ример3" });
Client client1 = new Client("Разубаев Сергей Михайлович", "Товар понравился", "Пользователь", 300);
Client client2 = new Client("Макаров Давид Вячеславович", "Вместо товара пришла коробка", "Подписчик", 100);
Client client3 = new Client("Анисин Руслан Сергеевич", "Товар не понравился", "ПОльзователь", 234);
clients.Add(client1);
clients.Add(client2);
clients.Add(client3);
InitializeComponent();
dropDownList.LoadValues(new List<string>() { "пример", "пример", "пример" });
emailTextBox.Pattern = @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$";
listBoxValues.SetLayout("ФИО [FIO] Обзор [Review] Статус [Status] сумма [Sum].", '[', ']');
dropDownList.ValueChanged += CustomEventHandler;
listBoxValues.AddItems<Client>(clients);
}
private void CustomEventHandler(object sender, EventArgs e)
{
MessageBox.Show("Хрю");
}
private void buttonAdd_Click(object sender, EventArgs e)
{
dropDownList.LoadValues(list);
}
private void buttonInfo_Click(object sender, EventArgs e)
{
labelInfo.Text = dropDownList.Selected;
}
private void buttonClear_Click(object sender, EventArgs e)
{
dropDownList.Clear();
}
private void buttonSetExample_Click(object sender, EventArgs e)
{
if (textBoxExample.Text == String.Empty)
{
return;
}
emailTextBox.setExample(textBoxExample.Text);
}
private void buttonShow_Click(object sender, EventArgs e)
{
try
{
if (emailTextBox.TextBoxValue != null)
{
labelEmail.Text = emailTextBox.TextBoxValue;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void buttonShowItem_Click(object sender, EventArgs e)
{
string str = listBoxValues.GetObjectFromStr<Client>().FIO + " " + listBoxValues.GetObjectFromStr<Client>().Review + " " + listBoxValues.GetObjectFromStr<Client>().Status + " " + listBoxValues.GetObjectFromStr<Client>().Sum;
labelShowInput.Text = str;
}
private void buttonAddValues_Click(object sender, EventArgs e)
{
listBoxValues.AddItems<Client>(clients);
}
private void buttonWordText_Click(object sender, EventArgs e)
{
using var dialog = new SaveFileDialog
{
Filter = "docx|*.docx"
};
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
wordTextComponent.CreateWordText(new LongWordInfo()
{
Path = dialog.FileName,
Title = "I. Глиняный ужас",
Paragraphs = new string[] { "По мне, неспособность человеческого разума соотнести между собою все, что только вмещает в себя наш мир, это великая милость. Мы живем на безмятежном островке неведения посреди черных морей бесконечности, и дальние плавания нам заказаны. Науки, трудясь каждая в своем направлении, до сих пор особого вреда нам не причиняли. Но в один прекрасный день разобщенные познания будут сведены воедино, и перед нами откроются такие ужасающие горизонты реальности, равно как и наше собственное страшное положение, что мы либо сойдем с ума от этого откровения, либо бежим от смертоносного света в мир и покой нового темного средневековья.",
"Теософы уже предугадали устрашающее величие космического цикла, в пределах которого и наш мир, и весь род человеческий не более чем преходящая случайность. Они намекают на странных пришельцев из тьмы веков в выражениях, от которых кровь бы застыла в жилах, когда бы не личина утешительного оптимизма. Но не от них явился тот один-единственный отблеск запретных эпох, что леденит мне кровь наяву и сводит с ума во сне. Это мимолетное впечатление, как и все страшные намеки на правду, родилось из случайной комбинации разрозненных фрагментов в данном случае, вырезки из старой газеты и записей покойного профессора. Надеюсь, никому больше не придет в голову их сопоставить; сам я, если останусь жив, ни за что не стану сознательно восполнять звенья в столь чудовищной цепи. Думается мне, что и профессор тоже намеревался сохранить в тайне известную ему часть и непременно уничтожил бы свои заметки, если бы не внезапная смерть.",
"Как наследнику и душеприказчику моего двоюродного деда ибо он умер бездетным вдовцом, мне полагалось сколь возможно тщательно просмотреть его архивы; с этой целью я перевез все его коробки и папки на свою бостонскую квартиру. Большую часть разобранных мною материалов со временем опубликует Американское археологическое общество, однако ж среди ящиков нашелся один, изрядно меня озадачивший: вот его-то мне особенно не хотелось показывать чужим. Ящик был заперт, ключа нигде не оказалось; но в конце концов я догадался осмотреть брелок, что профессор всегда носил в кармане. И действительно: открыть замок мне удалось, но тут передо мною воздвиглось препятствие еще более серьезное и непреодолимое. Что, ради всего святого, означали странный глиняный барельеф и разрозненные записи, наброски и газетные вырезки, мною обнаруженные? Или дед мой, на закате дней своих, стал жертвой самого банального надувательства? Я решил непременно разыскать эксцентричного скульптора, по всей видимости, нарушившего душевный покой старика."}
});
MessageBox.Show("Готово!");
}
catch (Exception ex)
{
MessageBox.Show("Произошла ошибка: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonWordTable_Click(object sender, EventArgs e)
{
using var dialog = new SaveFileDialog
{
Filter = "docx|*.docx"
};
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
var columns = new List<ColumnInfo>
{
new() { FirstRowHeader = "Идент", PropertyName = "Id", Width = 1.3 },
new() { FirstRowHeader = "Статус", PropertyName = "Status", Width = 1.3 },
new() { FirstRowHeader = "Личные данные", SecondRowHeader = "Имя", PropertyName = "FirstName", Width = 1.7 },
new() { FirstRowHeader = "Личные данные", SecondRowHeader = "Фамилия", PropertyName = "LastName", Width = 1.7 },
new() { FirstRowHeader = "Личные данные", SecondRowHeader = "Возраст", PropertyName = "Age", Width = 1.7 },
new() { FirstRowHeader = "Дети", PropertyName = "Children", Width = 1.3 },
new() { FirstRowHeader = "Машина", PropertyName = "Car", Width = 1.7 },
new() { FirstRowHeader = "Работа", SecondRowHeader = "Подразделение", PropertyName = "Department", Width = 2.4 },
new() { FirstRowHeader = "Работа", SecondRowHeader = "Должность", PropertyName = "Position", Width = 2.4 },
new() { FirstRowHeader = "Премия", PropertyName = "Bonus", Width = 2 }
};
var employees = new List<Example>
{
new() { Id = 1, Status = "нет", FirstName = "Иван", LastName = "Иванов", Age = 34, Children = "нет", Car = "есть", Department = "Департамент 1", Position = "Инженер", Bonus = 2000.1 },
new() { Id = 2, Status = "нет", FirstName = "Петр", LastName = "Петров", Age = 44, Children = "есть", Car = "есть", Department = "Департамент 1", Position = "Инженер", Bonus = 2000.1 },
new() { Id = 3, Status = "да", FirstName = "Сергей", LastName = "Сергеев", Age = 55, Children = "нет", Car = "нет", Department = "Департамент 1", Position = "Руководитель", Bonus = 5000.5 },
new() { Id = 4, Status = "нет", FirstName = "Ольга", LastName = "Иванова", Age = 34, Children = "есть", Car = "нет", Department = "Бухгалтерия", Position = "Бухгалтер", Bonus = 2000.1 },
new() { Id = 5, Status = "да", FirstName = "Татьяна", LastName = "Петрова", Age = 44, Children = "нет", Car = "нет", Department = "Бухгалтерия", Position = "Старший бухгалтер", Bonus = 7000.6 }
};
var mergedColumns = new List<(int, int)>
{
(2, 4),
(7, 8)
};
var tableInfo = new WordTableInfo<Example>
{
Path = dialog.FileName,
Title = "Заголовок",
ColumnInfos = columns,
Items = employees,
MergedColumns = mergedColumns
};
wordTableComponent.CreateTable(tableInfo);
MessageBox.Show("Готово!");
}
catch (Exception ex)
{
MessageBox.Show("Произошла ошибка: " + ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void buttonWordDiagram_Click(object sender, EventArgs e)
{
using var dialog = new SaveFileDialog
{
Filter = "docx|*.docx"
};
if (dialog.ShowDialog() == DialogResult.OK)
{
try
{
var series = new List<SeriesParameters>
{
new() {
SeriesName = "Номер 1",
ValuesY = new List<double> { 14, 22, 13 },
Color = Color.FromArgb(255, 165, 0)
},
new() {
SeriesName = "Номер 2",
ValuesY = new List<double> { 87, 44, 51 },
Color = Color.FromArgb(145, 145, 145)
},
new() {
SeriesName = "Номер 3",
ValuesY = new List<double> { 29, 15, 7 },
Color = Color.FromArgb(255, 255, 0)
}
};
wordDiagramComponent.CreateDiagramDocument(new GraphicWordInfo()
{
Path = dialog.FileName,
DocumentTitle = "Диаграмма в ворде",
DiagramTitle = "Ниже показана диаграмма об исследовании...",
LegendLayout = LegendLayoutEnum.Bottom,
SeriesX = new List<string> { "Пример", "Пример", "Пример" },
SeriesParameters = series
});
MessageBox.Show("Готово!");
}
catch (Exception ex)
{
MessageBox.Show("Произошла ошибка: " + ex.Message, "А", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
}