Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VP_LAB_BD_DELPHI.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
10.19 Mб
Скачать

7.2. Тәуелді кестенің жаңа өрісін құру кезіндегі өрістердің редакторы көмегімен анықталған мүмкін болатын мәндерді таңдауға арналған кестесі бар қосымша

7.2.1. Жұмыстың мақсаты, тапсырмасы және орындалу процесі

Жұмыстың мақсаты құламалы тізімі бар кестенің жаңа өрісінің көмегімен мүмкін болатын мәндердің құламалы тізімін құруға арналған тәсілдерді меңгеру болып табылады.

Жұмысты орындау және бақылау сұрақтарына дайындалу үшін 9.4.2.4. бөлімінің материалдарын қарастыру керек.

Негізгі және тәуелді – екі кестемен жұмыс жасауға арналған қосымшаны жасау. Тәуелді кестенің мүмкін болатын мәндері негізгі кестеден анықталады. Мүмкін болатын мәндердің тізімін құру үшін жаңа өрісті қолдану керек.

Жазбаның құрылымы 7.1.-бөлімнің жазба құрымына ұқсас.

Форма компоненттерінің құрамы және оларды жөндеу 7.1.2.-бөлімінде көрсетілгендермен ұқсас. Тәуелді кестенің жазбаларының құрылымын құру кезінде Table Lookup (таңдау кестесі) қасиетін орнатпау қажет.

Кестелер арасындағы байланысты құру үшін Table2 кестесінің өрістер редакторын шақыру керек. Оның контексттік (жанама) мәзірін шақыру (яғни, тышқанның оң жақ батырмасы арқылы). Одан New Field командасын таңдау. New Field терезесі пайда болады (7.6-сурет). Оның Field Properties бөліміне келесі қасиеттерді орнату:

  • Name терезесіне: жаңа өрістің аты; например, DepN; Component терезесіне: кестедегі жаңа өріс аты пайда болады, мысалы, Table2DepN;

  • Type терезесіне: жаңа өрістің талап етілетін типін құламалы тізімнен таңдау, мысалы, String;

  • Size терезесіне: символы берілген жолдың мөлшерін орнату, мысалы, 15.

Field Type бөлімінен Lookup – таңдау типін таңдау керек.

Lookup Definition (таңдауды анықтау) бөлімінен келесі мәндер тізімін таңдау:

  • Key Fields терезесіне: тәуелді кестенің байланысының кілттік өрісі (Table2)-Dep2;

  • Data Set терезесіне: мүмкін болатын мәндердің кесте-көзінің аты=Table1;

  • Lookup Keys терезесіне: бастапқы кестенің байланысының кілттік өрісі (Table1)=Dep1;

  • Result Field терезесіне: Table2=Dep1-дегі құламалы тізім үшін Table1-ден алынатын өрістің аты.

Table1 кестесінің редакторында құламалы тізімі бар жаңа өрісті құру нәтижесінде қасиеттерімен бірге жаңа өрістің аты пайда болады. Құламалы тізімі бар жаңа өрістің негізгі қасиеттері:

FieldKind=fkLookup; - жаңа өріс типі – құламалы;

FieldName=DepN; - жаңа өрістің аты;

KeyFields=Dep2; - Table2 тәуелді кестесінің байланысының кілттік өрісі;

LookupDataset=Table1; - мүмкін болатын мәндердің кесте-көзінің аты;

LookupKeyFields=Dep1; - Table1 бастапқы кестесінің байланысының кілттік өрісі;

LookupResultField=Dep1; - Құламалы тізім үшін Table1-ден алынатын өрістің аты.

Байланыс өрістерінің индекстелуі міндетті емес. (Dep1) байланыс өрісі (ResultField=Dep1) құламалы тізімінің өрісі болуы міндетті емес.

7.6-сурет. Құламалы тізімнен мәнін таңдау арқылы жаңа өрісті құруға арналған форма көрінісі

Қосымшаны әзірлеу кезіндегі құламалы тізімі бар форма көрінісі 7.7-суретте көрсетілген. Dep2 және DepN өрістерінің мәні бір-біріне ұқсас. Dep2 (отдел) мәнімен берілген бағанды көрінбейтін етуге болады. Қосымшаны жүргізу кезіндегі құламалы тізімі бар форма көрінісі 7.8-суретте көрсетілген. Форма модулінің тексті 7.2-листингіде келтірілген.

7.7-сурет. Қосымшаны әзірлеу кезіндегі құламалы тізімі бар форма көрінісі

7.8-сурет. Қосымшаны жүргізу кезіндегі құламалы тізімі бар форма көрінісі

7.2-листинг. Форма модулінің тексті

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ExtCtrls, DBCtrls, Grids, DBGrids, DBTables, StdCtrls,

Buttons;

type

TForm1 = class(TForm)

Table1: TTable; // - бөлім тізімі бар Dep кестесі үшін

DataSource1: TDataSource; // - “ ” “ ” “

DBGrid1: TDBGrid; // - “ ” “ ” “

DBNavigator1: TDBNavigator; // - “ ” “ ” “

Table2: TTable; // - қызметкерлер туралы мәлімет бар

// кесте үшін

DataSource2: TDataSource; // - “ ” “ ” “

DBGrid2: TDBGrid; // - “ ” “ ” “

DBNavigator2: TDBNavigator; // - “ ” “ ” “

// - Table1 кестесінің өрістері

Table1Dep1: TStringField; // - бөлімнің аты

Table1Proisv: TBooleanField; // - бөлім типінің аты

// - Table2 кестесінің өрістері

Table2Num: TAutoIncField; // - жазбаның нөмірі

Table2Dep2: TStringField; // - Table2DepN бөлімінің аты

Table2Fam: TStringField; // - фамилия

Table2Nam: TStringField; // - аты

Table2Par: TStringField; // - әкесінің аты

Table2Year_b: TSmallintField; // - туған күні

Table2Sex: TBooleanField; // - жынысы

Table2DepN: TStringField; // - құламалы тізімі бар бөлімнің аты

BitBtn1: TBitBtn; // - Выход батырмасы

Label1: TLabel; // - БАСТАПҚЫ кесте

Label2: TLabel; // - ТӘУЕЛДІ кесте

procedure FormActivate(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

var

Form1: TForm1;

Implementation {$R *.dfm}

// Dep2 өрісін кестеде көрінбейтін ету

procedure TForm1.FormActivate(Sender: TObject);

begin

DBGrid2.Columns[1].Visible:=False;

end; end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]