Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Перед тем как начинать писать программу создади...docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
935 Кб
Скачать
☆

Void __fastcall tMainForm::buSelectClick(tObject *Sender)

{

StringGrid1->RowCount=2;

StringGrid1->ColCount=9;

StringGrid1->Cells[0][0]="Фирма поставщика";

StringGrid1->Cells[1][0]="Фирма потребителя";

StringGrid1->Cells[2][0]="Товарный кредит";

StringGrid1->Cells[3][0]="Наименование товара";

StringGrid1->Cells[4][0]="Кол-во ед товара";

StringGrid1->Cells[5][0]="Вес ед товара";

StringGrid1->Cells[6][0]="Цена ед товара";

StringGrid1->Cells[7][0]="Платежные реквизиты";

StringGrid1->Cells[8][0]="Дата отгрузки";

Select();

}

Выделите мышкой кнопку «Первая», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buFirstClick(TObject *Sender)

{

MyODBC->SetCur(MyODBC->SqlExecRetS(hDbc,hStmt,"FETCH first from mycursor",Memo1,StringGrid1),StringGrid1);

}

Выделите мышкой кнопку «Предыдущая», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buPriorClick(TObject *Sender)

{

MyODBC->SetCur(MyODBC->SqlExecRetS(hDbc,hStmt,"FETCH prior from mycursor",Memo1,StringGrid1),StringGrid1);

}

Выделите мышкой кнопку «Следующая», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buNextClick(TObject *Sender)

{

MyODBC->SetCur(MyODBC->SqlExecRetS(hDbc,hStmt,"FETCH next from mycursor",Memo1,StringGrid1),StringGrid1);

}

Выделите мышкой кнопку «Последняя», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buLastClick(TObject *Sender)

{

MyODBC->SetCur(MyODBC->SqlExecRetS(hDbc,hStmt,"FETCH last from mycursor",Memo1,StringGrid1),StringGrid1);

}

Выделите мышкой компонент StringGrid1, перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnDblClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::StringGrid1DblClick(TObject *Sender)

{

TGridOptions go = StringGrid1->Options;

go >> goRowSelect;

StringGrid1->Options = go;

}

При двойном щелчке мыши на строке мы свойству goRowSelect присваеваем значение false для того, чтобы вся строка целиком больше не могла выделяться, а только одна ячейка, когда пользователь наводит на нее курсор. Это необходимо тогда, когда нужно изменить значение какой-либо ячейки.

Выделите мышкой компонент StringGrid1, перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnSelectCell. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::StringGrid1SelectCell(TObject *Sender, int ACol,

int ARow, bool &CanSelect)

{

SelectedStroka=ARow;

}

При помощи этого события мы определяем, какая строка выделена в данный момент и присваиваем ее номер переменной SelectedStroka.

Добавим в класс TMainForm новый метод. Для этого выделяем класс TMainForm, нажимаем правой кнопкой мыши и в появившимся меню выбираем New Method …

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

В редакторе кода напишем содержание функции:

void TMainForm::SetStrGr(TStringGrid * StringGrid)

{

TGridOptions go;

go << goFixedVertLine;

go << goFixedHorzLine;

go << goHorzLine;

go << goVertLine;

go << goRangeSelect;

go << goRowSizing;

go << goColSizing;

go << goEditing;

go << goRowSelect;

StringGrid->Options = go;

}

Эта функция нужна для того, чтобы вернуть String Gridu возможность выделения всей строки, когда пользователь наводит на нее курсор.

Выделите мышкой кнопку «Удалить», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buDeleteClick(TObject *Sender)

{

MyODBC->SqlExecutePrepare(hDbc,hStmt,"DELETE FROM postov WHERE p_name_firmy_postavchika='"+StringGrid1->Cells[0][SelectedStroka]+"' and p_name_firmy_potrebitelya='"+StringGrid1->Cells[1][SelectedStroka]+"'",Memo1);

Select();

}

Выделите мышкой кнопку «Модифицировать», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buUpdateClick(TObject *Sender)

{

SetStrGr(StringGrid1);

MyODBC->SqlExecutePrepare(hDbc,hStmt,"UPDATE postov set p_name_firmy_postavchika='"+StringGrid1->Cells[0][SelectedStroka]+"',p_name_firmy_potrebitelya='"+StringGrid1->Cells[1][SelectedStroka]+"',p_tovarniy_kredit="+StringGrid1->Cells[2][SelectedStroka]+",p_name_tovara='"+StringGrid1->Cells[3][SelectedStroka]+"',p_kol_vo_ed_tovara="+StringGrid1->Cells[4][SelectedStroka]+",p_ves_ed_tovara="+StringGrid1->Cells[5][SelectedStroka]+",p_cena_ed_tovara="+StringGrid1->Cells[6][SelectedStroka]+",p_plategnye_rekvizity='"+StringGrid1->Cells[7][SelectedStroka]+"',p_data_otgruzky='"+StringGrid1->Cells[8][SelectedStroka]+"' WHERE p_name_firmy_postavchika='"+StringGrid1->Cells[0][SelectedStroka]+"' and p_name_firmy_potrebitelya='"+StringGrid1->Cells[1][SelectedStroka]+"'",Memo1);

Select();

}

Выделите мышкой кнопку «Добавить», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buAddClick(TObject *Sender)

{

StringGrid1->RowCount++;

}

Выделите мышкой кнопку «Вставить», перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnClick. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы:

void __fastcall TMainForm::buInsertClick(TObject *Sender)

{

SetStrGr(StringGrid1);

MyODBC->SqlExecutePrepare(hDbc,hStmt,"INSERT INTO postov (p_name_firmy_postavchika,p_name_firmy_potrebitelya, p_tovarniy_kredit,p_name_tovara,p_kol_vo_ed_tovara,p_ves_ed_tovara,p_cena_ed_tovara, p_plategnye_rekvizity,p_data_otgruzky) VALUES('"+StringGrid1->Cells[0][SelectedStroka]+"','"+StringGrid1->Cells[1][SelectedStroka]+"',"+StringGrid1->Cells[2][SelectedStroka]+",'"+StringGrid1->Cells[3][SelectedStroka]+"',"+StringGrid1->Cells[4][SelectedStroka]+","+StringGrid1->Cells[5][SelectedStroka]+","+StringGrid1->Cells[6][SelectedStroka]+",'"+StringGrid1->Cells[7][SelectedStroka]+"','"+StringGrid1->Cells[8][SelectedStroka]+"')",Memo1);

Select();

}

Выделите мышкой главную форму, перейдите на страничку Events инспектора объектов и дважды щелкните по событию OnCreate. В редакторе кода откроется пустой обработчик этого события, в который необходимо ввести операторы: