Запросы и оформление запросов кнопками, доступ к полям и типам данных

  • doc
  • 24.04.2020
Публикация в СМИ для учителей

Публикация в СМИ для учителей

Бесплатное участие. Свидетельство СМИ сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 5. ЛПЗ_Запросы и оформление запросов кнопками, доступ к полям и типам данных.doc

Лабораторная работа №5: Запросы и оформление запросов кнопками, доступ к полям и типам данных

Цель работы: Оформление, активизация,  запроса, получение доступа с помощью кнопок

 

1. Создайте форму, как показано на рисунке:

 

 

2. Для компонент  BitButton1 и  BitButton2  установите свойство Glyph ... откроется окно, нажмите Load, в окне выбора файла откройте путьc:Program files\common files\ borlandChared\Images\Buttons, выберите два файла arrow1d.bmp для BitButton1, arrow1u.bmp для BitButton2. Для Button1 наберите заголовок «Подключиться», эта кнопка служит для того, чтобы при нажатии этой кнопки активизировалась таблица  запроса и по записям можно было перемещаться без DBNavigatora. Для Button2 наберите заголовок «Выход».

           

3. Наберите следующий код для BitButton1:

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Form1.Query1.Next;

CheckPosition;

end;

            Эта программа выполняет переход вниз от записи к записи. Тогда BitBtn2 становится неактивной, она активизируется если перейдете на самую последнюю запись

 

4. Наберите следующий код для BitButton2:

 

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Form1.Query1.Prior;

CheckPosition;

end;

            Эта программа выполняет переход вверх от записи к записи. Тогда BitBtn1 становится неактивной, она активизируется если перейдете на самую первую запись.

 

5. Вставьте имя процедуры между

private

   { Private declarations }

    Procedure CheckPosition;

  public

    { Public declarations }

           

6. Напишите для него код:

Procedure TForm1.CheckPosition;

    begin

    if Form1.Query1.Eof then Form1.BitBtn1.Enabled:=false else

    Form1.BitBtn1.Enabled:=true;

    if Form1.Query1.Bof then Form1.BitBtn2.Enabled:=false else

    Form1.BitBtn2.Enabled:=true;

    end;

 

Записи из запроса можно вывести даже в компонент Label. Для этого на форму установите два Label. Добавьте  эти строки вконец процедуры:

    Label1.Caption:=Form1.Query1.Fields[1].AsString;

    Label2.Caption:=Form1.Query1.FieldList[2].AsString;

 

7. Для кнопки «Подключиться» наберите программу:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Query1.Active:=true;

Form1.Button1.Enabled:=false;

CheckPosition;

Button3.Enabled:=True;

end;

 

8. Для Button2 наберите программу:

 

procedure TForm1.Button2Click(Sender: TObject);

begin

if Form1.Query1.Active then query1.Close;

Application.Terminate;

end;

 

9. Вставьте еще одну кнопку Button3, для него наберите программу:

 

procedure TForm1.Button3Click(Sender: TObject);

begin

Form2.ShowModal;

end;

            Выполняет переход на вторую созданную форму.

 

10.Создайте форму Form2, выполнив команду  FileNewForm.

 

 

 

Окно формы2

 

Установите следующие свойства:

Caption = Поля набора данных

Position= poScreenCenter

BorderStyle= bsDialog

 

11. Вставьте одну кнопку Button1. Установите следующие свойства:

Caption=Выход

ModalResult=mrOK

 

12. Вставьте два экземпляра ListBox1, ListBox2.

 

Для ListBox1 наберите программу:

 

procedure TForm2.ListBox1Click(Sender: TObject);

var FKind:string;

    CField:TField;

begin

    If ListBox1.ItemIndex=-1 then exit;

    ListBox2.Items.Clear;

 

    CField:=Form1.query1.FieldByName(ListBox1.Items[ListBox1.ItemIndex]);

 

    ListBox2.Items.Add('Имя поля-'+CField.DisplayName);

    ListBox2.Items.Add('Значение поля- '+CField.DisplayText);

    CASE CField.FieldKind of

    fkData: FKind:='Поле таблицы БД';

    fkCalculated: FKind:='Расчетное';

    fkLookUp: FKind:='поле поиска';

    fkInternalCalc: FKind:='расчетное с хранением результатов в наборе';

    fkAggregate: FKind:='аггрегирование';

    else

    FKind:='наизвестный тип поля';

    end;

    ListBox2.Items.Add('Вид - '+FKind);

    ListBox2.Items.Add('Тип поля - '+FieldTypeNames[CField.DataType]);

    ListBox2.Items.Add('Размер (байт) -'+IntToStr(CField.DataSize));

    ListBox2.Items.Add('Номер -'+ IntToStr(CField.FieldNo));

    if CField.CanModify then

ListBox2.Items.Add('редактируемое') else

ListBox2.Items.Add('нередактируемое');

End;

 

13. Находясь на форме2 перейдите на вкладку Events окна Object Inspector. Найдите в списке методов FormShow и щелкните дважды по нему, откроется обработчик событий. Для него наберите код:

 

procedure TForm2.FormShow(Sender: TObject);

var i:integer;

begin

Form2.ListBox1.Items.Clear;

Form2.ListBox2.Items.Clear;

for i:=0 to Form1.Query1.Fieldcount-1 do

Form2.ListBox1.Items.Add(Form1.query1.fields[i].fieldName);

end;

            Запустите программу и просмотрите результат