Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 811 / 38 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Лекция 9:

Добавление-удаление записей

< Лекция 8 || Лекция 9: 123 || Лекция 10 >

Шаг 9. А теперь из выборки отбираем товар в корзину щелчком мыши

private void listBox1_SelectedIndexChanged(object sender, 
System.EventArgs e) {//Выбираем строки из листбокса 1
s_new=listBox1.SelectedItem.ToString();		
listBox2.Items.Add(s_new);
this.textBox6.Text=s_new; 
this.tabControl1.SelectedIndex=2; // смотрим корзинку
edit_row(); // вызываем функцию подсчета стоимости товара в корзинке
} // хотя этой функции пока нет  - напишем.

Шаг 10. Создаем функцию подсчета стоимости товара в корзине

// заполняем поля редактора и считаем корзину покупателя
private void edit_row() {
// вычисляем длину выбранной строки из листбокса
int i_len=s_new.Length;		
string s_goods=s_new.Substring(0,L_goods);
string s_firma=s_new.Substring(L_goods+1,L_firma-1);
string s_unit=s_new.Substring(L_goods+L_firma+1,L_unit-1);
string s_price=s_new.Substring(L_goods + L_firma + L_unit + 1, 
i_len-(L_goods + L_firma + L_unit+1));
// преобразуем текст в сумму и считаем сумму выборки
i_sum=float.Parse(s_price)+i_sum;
textBox1.Text=i_sum.ToString();
textBox2.Text=s_goods;    
textBox3.Text=s_firma;
textBox4.Text=s_unit;  
textBox5.Text=s_price;  
}

Шаг 11. Создаем процедуру удаления записи из корзины по щелчку мыши

private void listBox2_SelectedIndexChanged_1 
(object sender, System.EventArgs e) {
if (listBox2.SelectedItem != null) {
// вычисляем длину выбранной строки из листбокса
int i_len=listBox2.SelectedItem.ToString().Length;		
string s_pay = listBox2.SelectedItem.ToString().Substring
(L_goods + L_firma + L_unit+1, i_len-(L_goods+L_firma+L_unit+1));
// преобразуем текст в сумму и считаем сумму выборки
i_sum=float.Parse(textBox1.Text)-float.Parse(s_pay);
textBox1.Text=i_sum.ToString();
// удаляем строки из listbox2
listBox2.Items.Remove(listBox2.SelectedItem.ToString());
	}
}

Шаг 12. Создаем процедуру вызова формы диалога удаления записи

Для кнопки "Удалить" в закладке "Редактор" пишем:

private void button3_Click(object sender, System.EventArgs e) {
ss=this.textBox6.Text;
if (ss = = "") {
MessageBox.Show("Нет записи для удаления!","Ошибка");
return;}
//Создаем место в памяти для объекта Форма2
Form Form_Del=new Form2();
// позиционируем форму 2 в форме 1
Form_Del.Parent=this.Parent;
// Вызываем как модальную форму
Form_Del.ShowDialog();
}

Шаг 13. В текстовое поле Form2 переносим значение выбранной для удаления записи

public Form2()
{
InitializeComponent();
this.textBox1.Text=Form1.ss;
}

Шаг 14. Если в Form2 удалять запись раздумали

//Для кнопки "Нет" в форме 2 пишем:
private void button2_Click(object sender, System.EventArgs e) {
this.Close();
}

Шаг 15. Если в Form2 запись решили удалить

// Для кнопки "Да" в форме 2 пишем:
private void button1_Click(object sender, System.EventArgs e) {
this.label2.Visible=true;
//Считываем значения из файла в листбокс 1
// Тестируем наличие файла с данными о ценах
FileStream fin;
try {	
fin=new FileStream("Товары.txt",FileMode.Open);
	}
catch(IOException exc) {	
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
// Считываем значения из файла
string s;
StreamReader fstr_in=new StreamReader(fin);
while((s=fstr_in.ReadLine())!=null) {	
listBox1.Items.Add(s);
progressBar2.Value=progressBar2.Value+1;
}
fstr_in.Close();
progressBar2.Value=0;
this.label2.Visible=false;
this.label3.Visible=true;
// Стираем все в файле
StreamWriter fin_out;
try {	
fin_out=new StreamWriter("Товары.txt", false);
	}
catch(IOException exc) {	
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
fin_out.Write("");
fin_out.Close();
//переписываем файл
try {	
fin_out=new StreamWriter("Товары.txt", true);
	}
catch(IOException exc) {	
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
if (listBox1.Items.Count!=0)	{
string s_sym=this.textBox1.Text;
string s_name;
for(int i=0; i<listBox1.Items.Count;i++) {
	s_name=listBox1.Items[i].ToString();
	progressBar2.Value=progressBar2.Value+1;
	if (s_sym!=s_name) {
fin_out.Write(s_name+"\r\n");
		}
	}
fin_out.Close();
this.Close();			
	}
}

Шаг 16. Последний штрих – о программе

Для опции главного меню формы 1 пишем:

private void menuItem1Click(object sender, System.EventArgs e) {
MessageBox.Show("Калькулятор потребительской корзины в универсаме,"+
" чтобы не ошибиться на кассе и удачно выбрать товар по соотношению"+
" цена/качество.\n"+
"!!! Рекомендую копию базы Товары.txt хранить и на ПК, и на
FlashDisk.\n"+
"Платформа C#.Net FrameWork v1.1 (C)Родигин Л.А. 02-2006", 
"О программе");
}
< Лекция 8 || Лекция 9: 123 || Лекция 10 >