В программе записано checkbox1 checked true совершенно точно можно сказать что true это

В программе записано checkbox1 checked true совершенно точно можно сказать что true это

Александр Мефодьев
дата публикации 31-01-2000 00:00

Работа с БД: Поиск и фильтрация.

function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean;

Метод Locate ищет первую запись, удовлетворяющую критерию поиска, и если такая запись найдена, делает ее текущей. В этом случае в качестве результата возвращается True. Если запись не найдена — False.

Список KeyFields указывает поле, или несколько полей, по которым ведется поиск. В случае нескольких поисковых полей их названия разделяются точкой с запятой. Критерии поиска задаются в вариантном массиве KeyValues так, что i-е значение KeyValues ставится в соответствие i-му полю в KeyFields.
Options позволяет указать необязательные значения режимов поиска:

type TLocateOption = (loCaseInsensitive, loPartialKey); TLocateOptions = set of TLocateOption;

  • loCaseInsensitive — поиск ведется без учета регистра букв, т.е. KeyValues будет считать слова «принтер» и «ПРИНТЕР», а также «ПрИнТеР» одинаковыми.
  • loPartialKey — запись считается удовлетворяющей условию поиска, если она содержит часть поискового контекста, например, удовлетворяющими контексту «Ма» будут признаны слова: «Мама», «Машина» и т.д.

В случае, если поля входят в какой-либо индекс, Locate использует этот индекс при поиске. Если искомые поля входят в несколько индексов, трудно сказать, какой из них будет использован. Соответственно трудно предсказать, какая запись из множества записей, удовлетворяющих критерию поиска, будет сделана текущей — особенно в случае, если поиск ведется не по текущему индексу.

Check If Checkbox Is Checked Or Not | Javascript Tutorial With Source Code

При поиске по полям, не входящим ни в один индекс, применяется фильтр BDE. Вот пример использования Locate:

procedure TForm1.LocateButtonClick(Sender: TObject); begin Table1.Locate(‘Field1;Field2’, VarArrayOf([‘Ма’,’Зд’]), [loPartialKey]); end;
В этом примере поиск произведен при помощи одной строчки кода:
procedure TDataBase.SearchButtonClick(Sender: TObject); begin Table.Locate(FieldsCombo.Text, SearchEd.Text, [loPartialKey, loCaseInsensitive]);; end;
function Lookup(const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant;

Метод Lookup находит находи нужную запись, но не делает ее текущей, а возвращает значения некоторых полей этой записи. Тип результата — Variant или вариантный массив. Независимо от успеха поиска записи, указатель текущей записи в таблице не меняется. В отличие от Locate, Lookup осуществляет поиск только на точное соответствие критерия поиска и значения полей записи.

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

Напишите программу, проверяющую число, введенное с клавиатуры на четность. Домашнее задание. C++ #2.

Если имеется несколько поисковых полей, каждому i-му полю в KeyFields ставится в соответствие i-ое значение в KeyValues. При наличии одного поля его поисковое значение можно указывать в качестве KeyValues непосредственно; в случае нескольких полей их необходимо приводить к типу вариантного массива при помощи VarArrayOf.

Читайте также:
Антивирусные программы что это такое определение

В качестве поисковых полей можно указывать поля как входящие в какой-либо индекс, так и не входящие в него; тип текущего индекса не имеет значения. Если поисковые поля входят в какие-либо индексы, их использование производится автоматически; в противном случае используются фильтры BDE.

Если в результате поиска запись не найдена, метод Lookup возвращает Null, что можно проверить с помощью оператора:

If VarType(LookupResults) = varNull then .

  • одно поле — результатом будет значение соответствующего типа или Null, если поле найденной записи содержит пустое значение;
  • несколько полей — результатом будет вариантный массив, число элементов в котором меньше или равно числу результирующих полей (некоторые поля найденной записи могут содержать пустые значения).

procedure TForm1.LookupButtonClick(Sender: TObject); var LookUpResults: Variant; begin LookupResults:=Table1.Lookup(‘Name’, Edit1.Text, ‘Phone’); Case varType(LookUpResults) of varEmpty : Label1.caption:=’Пустой результат’; varNull : Label1.Caption:=’Запись не найдена’; else Label1.Caption:=LookUpResults; end; end;
Пример: Несколько результирующих полей
procedure TForm1.LookupButtonClick(Sender: TObject); var LookUpResults: Variant; begin LokUpResults:=Table1.Lookup(‘Name’, Edit1.Text, ‘TabNum;Doljnost;Phone’); If VarIsArray(LookUpResults) then begin Label1.Caption:=LookUpResults[0]; If LookUpResults[1] <> Null then Label2.Caption:=LookUpResults[1]; If LookUpResults[2] <> Null then Label3.Caption:=LookUpResults[2]; end else case VarType(LookUpResults) of varEmpty : Label1.caption:=’Пустой результат’; varNull : Label1.Caption:=’Запись не найдена’; end; end;

Если запись не найдена, VarType(LookUpResults) возвращает значение varNull. Если поиск по какой-либо причине не был произведен, VarType(LookUpResults) возвращает значение VarEmpty. Если какое-либо из полей, что значения возвращаются в результате поиска в вариантном массиве, содержит пустое значение, соответствующий элемент вариантного массива также будет содержать пустое значение (Null). В этом случае обращение к нему приведет к исключительной ситуации, поэтому нужна предварительная проверка.

Ф И Л Ь Т Р А Ц И Я

Свойство Filter компонента TTable позволяет задать критерий фильтрации. В этом случае база будет отфильтрована, как только свойство Filtered будет равно TRUE. Синтаксис описания критерия похож на синтаксис секции WHERE SQL-запроса с тем исключением, что имена переменных программы указывать нельзя, можно указывать имена полей и литералы (явно заданные значения); можно использовать обычные операции отношения и логические операторы AND, NOT и OR, например:

Эта запись фильтра оставит в таблице записи, в которых поля Doljnost=’доцент’ и TabNum больше 3000

Filter:='([Doljnost]=»доцент») and ([TabNum] > 3000)’; Filtered:=True;

Строку критерия фильтрации можно ввести во время прогона программы или на этапе конструирования. Например, с помощью такого обработчика события OnChecked компонента CheckBox1 критерий фильтрации считывается из поля Edit1 и помещается в свойство Filter компонента Table1:

procedure TForm1.CheckBox1Click(Sender: TObject); begin Table1.Filter := Edit1.Text; Table1.Filtered := CheckBox1.Checked; end;
С помощью свойства
type TFilterOption = (foCaseInsensitive, foNoPartialCompare); property FilterOptions: TFilterOptions;

  • foCaseInsensitive — фильтрация производится без учета разницы регистра
  • foNoPartialCompare — поиск производится на точное соответствие.

Событие OnFilterRecord возникает при установке значения True в свойство Filtered. Обработчик события имеет два параметра: имя фильтруемого набора данных и переменную Accept, в которую программа должна поместить True, если текущая запись удовлетворяет условию фильтрации.

Читайте также:
Procedure в программе что это

В отличие от критерия в строке Filtered, ограниченного рамками синтаксиса условного выражения, критерий, реализуемый в обработчике события OnFilterRecord, определяется синтаксисом Object Pascal и может организовать сложные алгоритмы фильтрации. Однако следует помнить, что в обработчике OnFilterrecord последовательно перебираются все записи БД, в то время как методы SetRange, ApplyRange и им сопутствующие методы компонента TTable используют индексно-последовательный метод, т.е. работают с частью записей в физической БД. Это делает использование обработчика OnFilterRecord предпочтительным для фильтрации небольших объемов записей и сильно ограничивает его применение при больших объемах данных.

Всякий раз, когда приложение обрабатывает событие OnFilterRecord, набор данных переводится из состояния dsBrowse в состояние dsFilter. Это предотвращает модификацию набора данных во время фильтрации. После завершения текущего вызова обработчика события ObFilterRecord набор данных переводится в состояние dsBrowse.

Пример: чтобы создать набор данных из тех записей базы данных, в которых поле «Должность» содержит значение «преподаватель», можно использовать такой обработчик:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept := DataSet[‘Должность’] = ‘преподаватель’; end;

Еще один пример: отфильтровать базу «Сотрудники» по условию «Отобрать всех, у кого табличный номер (поле «#») больше значения, вводимого пользователем в Edit1, и в поле «ФИО» есть подстрока символов, вводимых пользователем в Edit2″:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept := (DataSet[‘#’] > Edit1.Text) and (Pos(Edit2.Text, DataSet[‘ФИО’]) > 0); end;

Если в строке Filter и обработчике события OnFilterRecord заданы разные критерии фильтрации, выполняются оба.

Методы расширенной фильтрации

1. Методы фильтрации

Помимо описываемых ниже методов, присущих только TTable, наборы данных имеют также общие свойства, методы и события для фильтрации — Filter, Filtered, OnFilteredRecord, FindFirst, FindLast, FindNext, FindPrior.

  • SetRangeStart — устанавливает нижнюю границу фильтра;
  • EditRangeEnd — утанавливает верхнюю границу фильтра;
  • ApplyRange — осуществляет фильтрацию записей в TTable;
  • SetRange — имеет тот же эффект, что и последовательное выполнение методов SetRangeStart, EditRangeEnd и ApplyRange.

Фильтрация методами ApplyRange, SetRange должно проводиться по ключевым полям.По умолчанию берется текущий индекс, определяемый свойством TTable.IndexName или TTable.IndexFieldNames. Если значения этих свойств не установлены, по умолчанию используется главный индекс. Поэтому, если нужно использовать индекс, отличный от главного, необходимо явно переустановить значение свойства TTable.IndexName (имя текущего индекса) или TTable.IndexFieldNames (список полей текущего индекса).

2. Использование SetRange

procedure SetRange(const StartValues, EditValues: array of const);
показывает не только записи, индексные поля которых лежат в диапазоне [StartValues..EndValues].

Пример: Пусть в наборе данных Table1 показываются все записи. Включим в структуру записи набора данных два поля: «Номер группы» и «Наименование товара». Пусть текущий индекс построен по полю «Номер группы».
Напишем такой обработчик события: CheckBox1.Click:

Читайте также:
Ib класс что это за программа

procedure TForm1.CheckBox1Click(Sender: TObject); var GrNumTmp: Integer; begin If CheckBox1.Checked then begin GrNumTmp := StrToInt(Edit1.Text); With Table1 do begin CancelRange; SetRange([GrMunTmp],[GrNumTmp]); end; end else Table1.CancelRange; end;

В отфильтрованном наборе данных показываются только те записи, индексное поле текущего индекса у которых (в нашем случае «Номер группы») имеет значение, лежащее в заданном диапазоне. В данном случае диапазон определяется переменной GrNumTmp. Поэтому для GrNumTmp = 3 будут показаны записи, принадлежащие к группе 3.

Если бы мы захотели, чтобы в наборе данных фильтровались записи из нескольких групп, то нам следовало бы добавить в форму второй компонент Edit2, в котором вводился бы номер конечной группы, в то время как в Edit1 вводился бы номер начальной группы: procedure TForm1.CheckBox1Click(Sender: TObject);

var GrNumTmp1, GrNumTmp2: Integer; begin If CheckBox.Checked then begin GrNumTmp1 := StrToInt(Edit1.Text); GrNumTmp2 := StrToInt(Edit2.Text); With Table1 do begin CancelRange; SetRange([GrNumTmp1],[GrNumTmp2]); end; end else Table1.CancelRange; end;

Александр Мефодьев ,
ICQ 56666220
31 января 2000г. Специально для «Королевства Дельфи»

Обсуждение материала [ 29-11-2013 13:37 ] 7 сообщений

Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Источник: www.delphikingdom.com

Как в jQuery проверить checkbox

От автора: приветствую вас, друзья. Из этой небольшой статьи вы узнаете, как в jQuery проверить, отмечен ли checkbox формы. Это достаточно полезная вещь, поскольку часто, в зависимости от того, был ли отмечен чекбокс, программа должна работать по тому или иному сценарию.

Исходные файлы текущей статьи вы можете скачать по ссылке.

Итак, перед нами стоит задача проверить checkbox средствами jQuery. К примеру, мы хотим реализовать следующий функционал. У нас есть кнопка отправки формы, которая изначально не активна. И, если пользователь отметил checkbox, мы должны активировать кнопку. Давайте попробуем. Для начала создадим простенькую форму:

< input type = «checkbox» id = «agree» >Вы согласны с условиями ?

Практический курс по верстке адаптивного сайта с нуля!

Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3

Для того, чтобы форма выглядела красиво и при этом не пришлось писать стили, я использую CSS фреймворк Bootstrap. В итоге получилась вот такая симпатичная форма. При этом, благодаря атрибуту disabled, кнопка не активна.

Ну что же, осталось лишь реализовать функционал, который разблокирует кнопку при отметке чекбокса и вновь заблокирует ее, если отметку снять. С jQuery это пустяковая задача, которая решается буквально несколькими строками кода.

Для решения задачи воспользуемся методом prop() со значением checked, который вернет true или false в зависимости от того, отмечен checkbox или нет. Код будет таким:

Источник: webformyself.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru