Найти тему
все об айти22

Как использовать библиотеку rrkaa в visual studio

1) Изначально первую страницу называем MainWindow (авторизация) и от нее будет идти вся навигация (в xtml не забыть удалить грид и добавить <Frame Name="MainFrame" Grid.Column="1" NavigationUIVisibility="Hidden"></Frame>)

namespace WpfApp4
{
/// <summary>
/// Логика взаимодействия для MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public static Frame Instance { get; private set; }

public MainWindow()
{
InitializeComponent();
Instance = MainFrame;
MainFrame.Content = new MainPage();
}
}
}

2) На второй странице MainPage делаем кнопки с меню

using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using MessageBox = System.Windows.Forms.MessageBox;

namespace WpfApp4
{
/// <summary>
/// Логика взаимодействия для MainPage.xaml
/// </summary>
public partial class MainPage : Page
{

DataBase dataBase = new DataBase();

public MainPage()
{
InitializeComponent();
}

private void Button_log_click(object sender, RoutedEventArgs e)
{
string login = textBoxLogin.Text.Trim();
string password = passBox.Password.Trim();
if (login == "admin" && password == "admin")
{
MessageBox.Show("Вы успешно вошли в акаунт менеджера!");
NavigationService.Navigate(new AdminMenu());
}
else
{
if(login[0] != '8')
{
MessageBox.Show("Номер должен начинаться с цифры 8!");
}
else if (login == @"\d")
{
MessageBox.Show("Номер должен содержать только цифры!");
}
else {
{
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();

string querystring = $"select number, organization, adress, password from registation where number = '{login}' and password = '{password}'";
SqlCommand command = new SqlCommand(querystring, dataBase.getConnection());

adapter.SelectCommand = command;
adapter.Fill(table);

if (table.Rows.Count != 0)
{
MessageBox.Show("Вы успешно вошли!", "Успешно", MessageBoxButtons.OK, MessageBoxIcon.Information);
MainWindow.Instance.Navigate(new menu());
}

else
{
MessageBox.Show("Такого аккаунта не существует!");
}
}
}
}
}

private void Button_sing(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new SingIn());
}
}
}

3) Регистрация

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Forms;
using MessageBox = System.Windows.Forms.MessageBox;

namespace WpfApp4
{
/// <summary>
/// Логика взаимодействия для SingIn.xaml
/// </summary>
public partial class SingIn : Page
{
DataBase dataBase = new DataBase();

public SingIn()
{
InitializeComponent();
}


//редирект на авторизацию
private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new MainPage());
}

//редирект в личный кабинет
private void reg_Click(object sender, RoutedEventArgs e)
{



string number = textBoxNumber.Text.Trim();
string password = textBoxPass.Password.Trim();
string password2 = textBoxPass2.Password.Trim();
string name = textBoxName.Text.Trim();

if (number.Length != 11)
{
MessageBox.Show("Номер должен содержать 11 цифр!");
}
else if (number[0] != '8')
{
MessageBox.Show("Номер телефона должен начинаться с 8!");
}
else if (password.Length < 5)
{
MessageBox.Show("Пароль должен содержать более 5 символов!");
}
else if (number == @"\d")
{
MessageBox.Show("Номер должен содержать только цифры!");
}
else if (password != password2)
{
MessageBox.Show("Пароли не совпадают!");
}
else
{


string querystring = $"insert into registation(number, organization, password) values('{number}', '{name}', '{password}')";

SqlCommand command = new SqlCommand(querystring, dataBase.getConnection());

dataBase.openConnection();

if (command.ExecuteNonQuery() == 1)
{
MessageBox.Show("Аккаунт успешно создан!", "Успех");
NavigationService.Navigate(new menu());
}
else
{
MessageBox.Show("Аккаунт не создан!");
}
dataBase.closeConnection();
}
}

private bool checkuser()
{
string number1 = textBoxNumber.Text.Trim();

SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();
string querystring = $"select number from registation where number = '{number1}'";

SqlCommand command = new SqlCommand(querystring, dataBase.getConnection());

adapter.SelectCommand = command;
adapter.Fill(table);

if (table.Rows.Count > 0)
{
MessageBox.Show("Пользователь уже существует!");
return true;
}
else
{
return false;
}
}



}
}

4) Страница с заявками

код:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;

namespace WpfApp4
{
/// <summary>
/// Логика взаимодействия для admin_vse.xaml
/// </summary>
public partial class admin_vse : Page
{
DataBase dataBase = new DataBase();

public admin_vse()
{
InitializeComponent();
}

private void Button_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new AdminMenu());
}

private void TableSetupAdmin2(object sender, EventArgs e)
{
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();

string querystring = $"select * from create11 ";
SqlCommand command = new SqlCommand(querystring, dataBase.getConnection());

adapter.SelectCommand = command;
adapter.Fill(table);
zayavkiTableAdmin3.ItemsSource = table.DefaultView;
}

private void TableSetupAdmin10(object sender, EventArgs e)
{
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable table = new DataTable();
string querystring = $"SELECT COUNT(*) FROM create11 WHERE condition = 'выполнено'; ";
SqlCommand command = new SqlCommand(querystring, dataBase.getConnection());
adapter.SelectCommand = command;
adapter.Fill(table);
zayavkiTableAdmin10.ItemsSource = table.DefaultView;
}
}
}

xtml:

<Grid Background="#FFD9D9D9">
<Label Content="Все заявки" HorizontalAlignment="Left" Height="54" Margin="420,39,0,0" VerticalAlignment="Top" Width="191" FontSize="30" FontFamily="Segoe UI Black"/>
<Button Content="&lt;-" HorizontalAlignment="Left" Height="37" Margin="25,21,0,0" VerticalAlignment="Top" Width="37" Click="Button_Click" FontFamily="Comic Sans MS" BorderThickness="0" Background="#FF8BAAE4"/>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Name="zayavkiTableAdmin3" Initialized="TableSetupAdmin2" HorizontalAlignment="Left" Height="238" Margin="28,131,0,0" VerticalAlignment="Top" Width="927" FontFamily="Comic Sans MS">
<DataGrid.Columns>
<DataGridTextColumn Header="Номер заявки" Width="*" Binding="{Binding article}"/>
<DataGridTextColumn Header="Дата добавления" Width="*" Binding="{Binding full_name}"/>
<DataGridTextColumn Header="Оборудование, требующее ремонт" Width="*" Binding="{Binding name}"/>
<DataGridTextColumn Header="Тип неисправности" Width="*" Binding="{Binding creater}"/>
<DataGridTextColumn Header="Описание проблемы" Width="*" Binding="{Binding supplier}"/>
<DataGridTextColumn Header="ФИО" Width="*" Binding="{Binding sum}"/>
<DataGridTextColumn Header="Затраенные ресурсы" Width="*" Binding="{Binding cost}"/>
<DataGridTextColumn Header="Стоимость затрат" Width="*" Binding="{Binding number}"/>
<DataGridTextColumn Header="Состояние" Width="*" Binding="{Binding condition}"/>
</DataGrid.Columns>
</DataGrid>
<Label Content="Количество выполненых заявок" HorizontalAlignment="Left" Height="52" Margin="28,390,0,0" VerticalAlignment="Top" Width="382" FontSize="25"/>
<TextBox x:Name="kolvo" HorizontalAlignment="Left" Height="36" Margin="440,397,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="114" />
<Button Content="Обновить данные" HorizontalAlignment="Left" Height="62" Margin="283,477,0,0" VerticalAlignment="Top" Width="524" Background="#FF8BAAE4" FontSize="20"/>
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Name="zayavkiTableAdmin10" Initialized="TableSetupAdmin10" HorizontalAlignment="Left" Height="70" Margin="584,390,0,0" VerticalAlignment="Top" Width="127" FontFamily="Comic Sans MS">
<DataGrid.Columns>
<DataGridTextColumn Width="*" />
</DataGrid.Columns>
</DataGrid>
</Grid>