русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Тема. Сортировка набора данных.


Дата добавления: 2013-12-23; просмотров: 717; Нарушение авторских прав


MaxValue=200

MinValue=0

Тема. Ограничения на вводимые значения.

Пример.

If Table1. BookmarkValid(Bookmark1) then

Table1.FreeBookmark(Bookmark1);

p


Пример. Создание вычисляемого поля возраста сотрудника для таблицы Sotrudniki.

procedure TForm1.TbSotrudnikiCalcFields(DataSet: TDataSet);

var year1,year2, month1, month2,day1, day2: word;

begin

DecodeDate(Now,year1,month1,day1);

DecodeDate(TbSotrudnikiS_Birthday.Value,year2,month2,day2);

TbSotrudnikiS_Age.AsInteger:=year1-year2;

end;

Здесь функция DecodeDate() преобразует первый аргумент типа TDateTime в целые значения года, месяца, дня.

 

Пример. В компоненте ComboBox создать список названий столбцов компонента DBGrid.

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin

ComboBox1.Clear;

for i:=0 to DBGTovar.Columns.Count-1 do begin

ComboBox1.AddItem(DBGTovar.Columns[i].Title.Caption,Sender);

end;

ComboBox1.ItemIndex:=0;

end;

Пример. Вывести в Label наименование товара с наибольшей общей стоимостью и перевести указатель текущей записи на соответствующую запись.

procedure TForm1.Button1Click(Sender: TObject);

var k,max: integer;

begin

TbPokupka.First;

max:=TbPokupkaSumma.AsInteger; k:=1;

while not TbPokupka.Eof do begin

if TbPokupkaSumma.AsInteger>max then begin

max:=TbPokupkaSumma.AsInteger;

k:=TbPokupka.RecNo;

end;

TbPokupka.Next;

end;

TbPokupka.RecNo:=k;

Label1.Caption:=TbPokupkaTovar.AsString;

end;

// вычисление даты по сумме даты и количества дней

procedure TForm1.Table1CalcFields(DataSet: TDataSet);

begin

if Edit1.Text<>'' then

Table1Day.AsDateTime:=Table1Date1.AsDateTime+StrToInt(Edit1.Text);

end;

 

 


 



Наряду с ограничениями, которые задаются на уровне таблицы, можно задать ограничения на вводимые значения отдельно в приложении. Для числовых статических полей ограничения можно задать с помощью свойств: MinValue и MaxValue.

Например, для T_Kol_vo (TbTovar)можно задать:

При нарушении этих пределов возникает исключение EDatabaseError,которое необходимо обработать в приложении.

Другой способ задания ограничений через свойства статического поля:

CustomConstraint – строка SQL (условное выражение),

ConstrainErrorMessage – текст, который появляется в случае неверно введенного значения.

Например, для поля T_Kol_vo можно задать:

TbPokupkaP_Kol_vo.CustomConstraint:='TbPokupkaP_Kol_vo>0 and

TbPokupkaP_Kol_vo<100)';

TbPokupkaP_Kol_vo.ConstraintErrorMessage:=' Значение вне диапазона!';

Здесь разрешен ввод для поля T_Kol_vo значений от 0 до 100. В противном случае выводится сообщение “Значение вне диапазона!” и введенное значение отвергается.

p

Проверку данных на уровне поля можно выполнить в обработчике события OnValidate, которое возникает перед записью введенного значения поля в буфер текущей записи. После этого события возникает событие OnChange,в обработчике которого можно записать обработку исключений.

Ограничения на вводимые значения для отдельных полей можно записать в виде набора ограничений в окне Editing Contraints, которое появляется при выборе свойства Constraints компонента Table.

 


Таблицы Paradox по умолчанию сортируются по ключам (первичный индекс). Сортировка набора данных для компонента Table выполняется автоматически по текущему индексу. При смене индекса автоматически происходит сортировка записей в соответствии с новым индексом. Для сортировки записей по нескольким полям нужно создать индекс, включающий эти поля. То есть, сортировка записей по набору данных Table возможна только по полям, для которых задан индекс.

Свойствакомпонента Table:

IndexName: String –определяет вторичный индекс таблицы. Если значение пусто, то порядок сортировки записей основывается на индексе, используемом по умолчанию. Обычно используется, если сортировка выполняется по одному полю.

Например,

TbTovar.IndexName:=’ind_tovar’;

IndexFieldNames:String – содержит список столбцов, которые используются как индексы таблицы и служат для упорядочения значений в указанных столбцах. Имена полей в списке перечисляются через точку с запятой. Для таблиц Paradox имена указываемых полей должны быть проиндексированы.

Например,

TbTovar.IndexFieldNames:='T_Nazv;T_Cena';

Здесь сортировка выполняется по названию и цене товара, индекс ind_TovarCena.

Свойства IndexName и IndexFieldNames являются взаимоисключающими, то есть определение одного свойства очищает значение другого.

IndexFieldCount: Integer –(только для чтения) указывает количество полей, которые образуют текущий индекс. Если индекс построен для одного поля, то значение равно 1.

IndexDefs: TIndexDefs;- содержит информацию об установленных для таблицы индексах.

свойство Count:Integer– указывает количество индексов;

свойство Items:Strings – содержит список индексов;

метод Update выполняет обновление определений индекса в свойстве Items.

Пример.Выполнение сортировки по индексу ind_TovarCena

 

procedure TForm1.BtnSortClick(Sender: TObject);

var i: integer;



<== предыдущая лекция | следующая лекция ==>
If Table1.BookmarkValid(Bookmark1) then | Тема. Фильтрация записей.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.