Формирование нескольких баз данных, основная из которых – «Морские сражения», страница 7

  INTO TABLE Temp;

  NOCONSOLE

  thisform.GRDMList.all

  thisform.GRDMList.RecordSourceType=0

  thisform.GRDMList.RecordSource='Temp.dbf'

·  Найти все корабли с водоизмещением свыше 35 тонн (ввод количества).

Выпадающий список с запросами - CMBQueries.Click:

  case thisform.CMBQueries.ListIndex==7

    thisform.LBLMan.Caption="Свыше:"

    thisform.LBLMan.Visible=.t.

    thisform.TXTMan.Visible=.t.

    thisform.CMDMan.Visible=.t.

    thisform.LBLMan2.Visible=.f.

    thisform.CMBMan1.Visible=.f.

    thisform.CMBMan2.Visible=.f.

    thisform.CMBMan3.Visible=.f.

В результате работы этой процедуры, на форме появляются надпись "Свыше:", поле ввода данных и кнопка "Вывести". Для вывода результата нужно ввести данные и нажать на кнопку "Вывести", либо клавишу Enter.

Кнопка "Вывести" - CMDMan.Click:

case thisform.CMBQueries.ListIndex==7

  SELECT Types.class, Battleships.name, Battleships.water_cap,;

    Battleships.fire1_diameter, Battleships.fire1_num,;

    Battleships.fire2_diameter, Battleships.fire2_num,;

    Battleships.fire3_diameter, Battleships.fire3_num,;

    country.country, Battleships.date_creation;

  FROM  ships!battleships INNER JOIN ships!types  ON  Battleships.class_id = Types.class_id;

      INNER JOIN ships!country ON Battleships.country_id = country.country_id;

   WHERE Battleships.water_cap > val(TRIM(thisform.TXTMan.Text));

  ORDER BY Battleships.water_cap;

  INTO TABLE Temp;

  NOCONSOLE

  thisform.GRDMList.all

  thisform.GRDMList.RecordSourceType=0

  thisform.GRDMList.RecordSource='Temp.dbf'

·  Найти наименования и значения водоизмещения и количества главных орудий для тех кораблей, которые принимали участие в заданном сражении.

Выпадающий список с запросами - CMBQueries.Click:

  case thisform.CMBQueries.ListIndex==9

    thisform.LBLMan.Caption="В сражении:"

    thisform.LBLMan.Visible=.t.

    thisform.TXTMan.Visible=.f.

    thisform.CMDMan.Visible=.t.

    thisform.LBLMan2.Visible=.f.

    thisform.CMBMan1.Visible=.f.

    thisform.CMBMan2.Visible=.f.

    thisform.CMBMan3.Visible=.t.

В результате работы этой процедуры, на форме появляются надпись "В сражении", выпадающий список, содержащий названия всех сражений и кнопка "Вывести". Для вывода результата нужно выбрать в списке нужный элемент и нажать на кнопку "Вывести", либо клавишу Enter.

Кнопка "Вывести" - CMDMan.Click:

case thisform.CMBQueries.ListIndex==9

  SELECT battles.place, battles.b_date, Battleships.name, Battleships.water_cap, Battleships.fire1_num;

   FROM  ships!battles INNER JOIN ships!battleships;

      INNER JOIN ships!country ;

     ON  Battleships.country_id = Country.country_id ;

     ON  battles.ship_id = Battleships.ship_id;

     WHERE battles.battle_id=thisform.CMBMan3.ListIndex-1;

  ORDER BY Battleships.name;

  INTO TABLE Temp;

  NOCONSOLE

  thisform.GRDMList.shipsinbattle

  thisform.GRDMList.RecordSourceType=0

  thisform.GRDMList.RecordSource='Temp.dbf'

·  Найти все страны, в которых строились и линкоры, и крейсеры (ввод наименования).

Выпадающий список с запросами - CMBQueries.Click:

  case thisform.CMBQueries.ListIndex==3

    thisform.LBLMan.Visible=.t.

    thisform.LBLMan.Caption="Строились и:"

    thisform.LBLMan2.Visible=.t.

    thisform.LBLMan2.Caption="и"

    thisform.TXTMan.Visible=.f.

    thisform.CMBMan1.Visible=.t.

    thisform.CMBMan2.Visible=.t.

    thisform.CMBMan3.Visible=.f.

    thisform.CMDMan.Visible=.t.

В результате работы этой процедуры, на форме появляются надписи "Строились и:", "и", два выпадающих списка, содержащих все типы кораблей и кнопка "Вывести". Для вывода результата нужно выбрать в списках нужные элементы и нажать на кнопку "Вывести".

Кнопка "Вывести" - CMDMan.Click:

case thisform.CMBQueries.ListIndex==3

  SELECT country.country;

  FROM ships!battleships INNER JOIN ships!country ON Battleships.country_id = country.country_id;