thisform.CMBQueries.AddItem("Найти корабли, кол-во главных орудий которых было наибольшим среди кораблей с орудиями того же калибра")
thisform.CMBQueries.AddItem("Найти среднее кол-во главных орудий для класса ...")
thisform.CMBQueries.AddItem("Найти для каждого класса корабля значение даты спуска на воду первого корабля этого класса")
thisform.CMBQueries.AddItem("Найти для каждого класса кол-во кораблей этого класса, потопленных в морских сражениях")
Здесь программным путем, в список добавляются новые элементы – описания запросов.
Событие KeyPress() – одинаковое для объектов: поле ввода (TXTMan) и 3-х выпадающих списков (CMBMan1, CMBMan2, CMBMan3):
LPARAMETERS nKeyCode, nShiftAltCtrl
if nKeyCode==13
thisform.CMDMan.Default=.t.
endif
Данная процедура обрабатывает нажатие клавиши Enter. Как результат, она передает управление процессом обработки запроса командной кнопке.
Событие TXTMan.GotFocus():
thisform.TXTMan.SelStart = 0
thisform.TXTMan.SelLength = LEN(TRIM(thisform.TXTMan.Text))
При передачи фокуса полю ввода, содержащийся в нем текст выделяется подсветкой.
Для удобства вывода и просмотра данных, на основе стандартного объекта управления Grid, создан пользовательский класс ModifiedGrid. В него добавлены несколько дополнительных методов, предназначенных для формирования таблицы вывода результатов. Эти методы являются открытыми и вызываются из соответствующих запросов.
Выпадающий список с запросами - CMBQueries.Click:
case thisform.CMBQueries.ListIndex==1
thisform.GRDMList.all
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;
ORDER BY Battleships.name;
INTO TABLE Temp;
NOCONSOLE
thisform.GRDMList.RecordSourceType = 0
thisform.GRDMList.RecordSource = 'Temp.dbf'
thisform.LBLMan.Visible=.f.
thisform.TXTMan.Visible=.f.
thisform.CMDMan.Visible=.f.
thisform.LBLMan2.Visible=.f.
thisform.CMBMan1.Visible=.f.
thisform.CMBMan2.Visible=.f.
thisform.CMBMan3.Visible=.f.
Выпадающий список с запросами - CMBQueries.Click:
case thisform.CMBQueries.ListIndex==6
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,;
MAX(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;
INTO TABLE Temp;
NOCONSOLE
thisform.GRDMList.maxfire
thisform.GRDMList.RecordSourceType = 0
thisform.GRDMList.RecordSource = 'Temp.dbf'
thisform.LBLMan.Visible=.f.
thisform.TXTMan.Visible=.f.
thisform.CMDMan.Visible=.f.
thisform.LBLMan2.Visible=.f.
thisform.CMBMan1.Visible=.f.
thisform.CMBMan2.Visible=.f.
thisform.CMBMan3.Visible=.f.
Выпадающий список с запросами - CMBQueries.Click:
case thisform.CMBQueries.ListIndex==17
thisform.LBLMan.Caption="В сражении:"
thisform.LBLMan.Visible=.t.
thisform.TXTMan.Visible=.f.
thisform.CMDMan.Visible=.t.
thisform.LBLMan2.Visible=.f.
thisform.CMBMan1.Visible=.f.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.