Программалау технологиясы



Pdf көрінісі
бет85/136
Дата08.02.2022
өлшемі2,48 Mb.
#121875
түріПрограмма
1   ...   81   82   83   84   85   86   87   88   ...   136
Байланысты:
Мукашев С Builder

Компонент аты Қасиеті
Мәні
Table1 
DatabaseName BCDEMOS 
TableName 
CUSTOMER.DB 
Active 
False 
DataSource1 
DataSet 
Table1 
DBGrid1 
DataSource 
DataSource1 
Query1 
Database Name BCDEMOS 
SQL 
select * from orders 
Active 
False 
DataSource2 
DataSet 
Query1 


Query2 
DatabaseName BCDEMOS 
DataSource3 
DataSet 
Query2 
Button1 
Caption 
Открыть список &клиентов 
Button2 
Caption 
Открыть список &заказов 
RadioButton1 
Caption 
Клиенты 
Checked 
True 
RadioButton2 
Caption 
Заказы 
GroupBox1 
Caption 
GroupBox2 
Caption 
Button3 
Caption 
Установить &диапазон 
Edit1 
Text 
Edit2 
Text 
Label1 
Caption 
Начало: 
Label2 
Caption 
Конец: 
RadioButton3 
Caption 
Заказы клиентов 
Button1 батырмасына OnClick оқиғасын құрамыз: 
void __fastcall
TForm1::Button1Click(TObject *Sender) 

if
(Table1->Active) 

Table1->Close(); 
Button1->Caption = "Ioe?uou nienie &eeeaioia"; 

else 

Table1->Open(); 


Button1->Caption= "Cae?uou nienie &eeeaioia"; 

}
Енді осы батырманы басқанда 
Customer
кестесі бірде ашылады, бірде жабылады, 
сонымен қатар батырмадағы жазу ӛзгеріп отырады. 
Button2
батырмасына 
OnClick
ӛңдеуші оқиғасын құрамыз :
void __fastcall
TForm1::Button2Click(TObject *Sender) 

if
(Query1->Active) 

Query1->Active = false; 
Button2->Caption = "Ioe?uou список &caeacia"; 

else 

Query1->Active = true; 
Button2->Caption = "Заe?uou список &caeacia"; 


Button2
батырмасын басқанда 
Query1
сұранысы бірде ашылады, бірде жабылады,
құрамында тапсырыстар тізімі бар: 
RadioButton1
және 
RadioButton2
радиобатырмаларына 
OnClick 
ӛңдеуші оқиғасын 
құрамыз:
void __fastcall
TForm1::RadioButton1Click(TObject *Sender) 

DBGrid1->DataSource = DataSource1; 

//------------------------------------------------------------------------ 
void __fastcall
TForm1::RadioButton2Click(TObject *Sender) 

DBGrid1->DataSource =DataSource2; 



Енді осы радиобатырмалар кӛмегімен клиенттер тізімі және тапсырыстар тізімі 
арасында ауысуға болады. 
Button3
батырмасына 
OnClick
ӛңдеуші оқиғасын құрамыз: 
void __fastcall
TForm1::Button3Click(TObject *Sender) 

if
(Table1->Active) 

Table1->SetRangeStart(); 
Table1->Fields[0]->AsString = Edit1->Text; 
Table1->SetRangeEnd(); 
Table1->Fields[0]->AsString = Edit2->Text; 
Table1->ApplyRange(); 


Енді 
Edit1
және 
Edit2
ӛңдеу ӛрістері және 
Button3
батырмасы кӛмегімен клиенттер 
нӛмірі диапазонын таңдауға болады, яғни олар туралы мәліметтер 
DBGrid1
кӛрінуі үшін. 
Сосын 
Visual Query Builder
арқылы 
Query2
компонентінің 
SQL
қасиетін орнатамыз. 
Деректер қоры аты ретінде 
BCDEMOS
таңдаймыз және сұранысқа 
CUSTOMER
және 
ORDERS
кестелерін енгіземіз. Ары қарай кестелер арасында байланыс орнатамыз. 
Сұранысқа келесі ӛрістерді енгіземіз: 

Customer.CustNo

Customer.Company

Orders.OrderNo

Orders.AmountPaid


4.32-сурет. Аралас сұраныс құру үшін
Visual Query Builder
қолдану 
Енді сұраныс нәтижесін сатып алушы нӛмірі бойынша сұрыптаймыз және 
Visual Query 
Builder
–ден шығамыз.
Объектілер инспекторын қолданып, 
Query2
компонентін таңдаймыз және 
Active
қасиеті 
мәнін 
true
теңестіреміз. 
RadioButton3
радиобатырмасына 
OnClick
ӛңдеуші оқиғасын құрамыз: 
void __fastcall
TForm1::RadioButton3Click(TObject *Sender) 

DBGrid1->DataSource= DataSource3; 

Қосымшаны компиляциялаймыз. Қос деректер жиынын ашу үшін. батырмамен 
"Открыть список заказов"
басамыз. Радиобатырмаларды қолданып, олардың арасында 
ауысып кӛреміз.


4.33-сурет. Дайын қосымша осылай кӛрінеді 
2-жаттығу 
 
Деректер модулі.
Алдынғы жаттығуда 
Data Access
беті компоненттерін қосымшаның басты формасына 
орналастырдық. Бірақ мұндай жағдай, формада кӛп санды кӛрінбейтін компоненттердің 
болуы қолданушы интерфейсін жобалауды қиындатады. Осы мақсатта 
C++ Builder
-де 
арнайы деректер модулі - 
TDataModule
типі бар. Осы типтегі компонентті шартты түрде 
форма түрі деп қарастыруға болады. мұндай компонент-контейнер 
Data Access
беті 
компоненттерін құрамында ұстай алады, ал ӛзі бағдарламаның орындалу уақытында 
қолданушыға кӛрінбейді.
Жоғарыда келтірілген жаттығудың басқа нұсқасын деректер модулін қолданып құрып 
кӛрейік. 
4.34-сурет. Деректерге қатынау компоненттерін 
DataModule-ге орналастыру 


Қосымша коды:
//---------------------------------------------------- 
#include  
#pragma hdrstop 
#include "cust1.h" 
#include "custdm1.h" // деректер модуліне сілтеме 
//----------------------------------------------------- 
#pragma link "Grids" 
#pragma resource "*.dfm" 
TForm1 *Form1; 
//----------------------------------------------------- 
__fastcall 
TForm1::TForm1(TComponent* 
Owner): TForm(Owner) 


//----------------------------------------------------- 
void __fastcall
TForm1::Button1Click(TObject *Sender) 

if
(DataModule1->Table1->Active) 

DataModule1->Table1->Close(); 
Button1->Caption = "Открыть таблицу &клиентов"; 

else 

DataModule1->Table1->Open(); 
Button1->Caption= "Закрыть таблицу &клиентов"; 
}; 

//----------------------------------------------------- 
void __fastcall
TForm1::Button2Click(TObject *Sender) 

if
(DataModule1->Query1->Active) 

DataModule1->Query1->Active = false; 
Button2->Caption = "Открыть таблицу &заказов";} 
else 

DataModule1->Query1->Active = true; 
Button2->Caption = "Закрыть таблицу &заказов"; 


//----------------------------------------------------- 
void __fastcall
TForm1::RadioButton1Click(TObject *Sender) 

DBGrid1->DataSource = DataModule1->DataSource1; 



//----------------------------------------------------- 
void __fastcall
TForm1::RadioButton2Click(TObject *Sender) 

DBGrid1->DataSource = DataModule1->DataSource2; 

//----------------------------------------------------- 
void __fastcall TForm1::RadioButton3Click(TObject *Sender) 

DBGrid1->DataSource = DataModule1->DataSource3; 

//---------------------------------------------------- 
void __fastcall TForm1::Button3Click(TObject *Sender) 

if
(DataModule1->Table1->Active) 

DataModule1->Table1->SetRangeStart(); 
DataModule1->Table1->Fields[0]->AsString = Edit1->Text; 
DataModule1->Table1->SetRangeEnd(); 
DataModule1->Table1->Fields[0]->AsString = Edit2->Text; 
DataModule1->Table1->ApplyRange(); 


//----------------------------------------------- 
Ӛзіндік жұмысқа тапсырмалар 
 
DataModule және TQuery компоненттерін қолданып деректер қоры қосымшасын құру: 


Достарыңызбен бөлісу:
1   ...   81   82   83   84   85   86   87   88   ...   136




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет