Topic: dbFilter
Добрый день.
Ниже команда работает.
enter_kontroler.TableGrid1.dbFilter := '(users.prinadl_1 = 1)';
А как использовать в users.prinadl_1 = 1 не цифру а переменную?
My Visual Database → Russian → dbFilter
Добрый день.
Ниже команда работает.
enter_kontroler.TableGrid1.dbFilter := '(users.prinadl_1 = 1)';
А как использовать в users.prinadl_1 = 1 не цифру а переменную?
Здравствуйте.
Например так
var
s: string;
begin
s := '1';
enter_kontroler.TableGrid1.dbFilter := '(users.prinadl_1 = '+s+')';
end;
Еще вопрос.
в таблице есть поле "CheckBox" - как в dbFilter поставить условие чтоб показать запись которые CheckBox = True?
Еще вопрос.
в таблице есть поле "CheckBox" - как в dbFilter поставить условие чтоб показать запись которые CheckBox = True?
enter_kontroler.TableGrid1.dbFilter := 'CheckBox=1';
Здравствуйте!
В настройках TableGrid есть пункт Фильтр.
Можно ли там указать определенные условия?
Например вывод записей в таблицу, только если заполнена определенный атрибут таблицы.
Все остальные не выводить.
Есть ли такая возможность?
Как правильно написать?
Здравствуйте!
В настройках TableGrid есть пункт Фильтр.
Можно ли там указать определенные условия?
Например вывод записей в таблицу, только если заполнена определенный атрибут таблицы.
Все остальные не выводить.
Есть ли такая возможность?
Как правильно написать?
Здравствуйте.
Да, вы можете указать там условия, их синтаксис аналогичен, если бы вы писали условие в SQL запросе в секции WHERE
например
fieldname is NOT NULL
tiopentalna wrote:Здравствуйте!
В настройках TableGrid есть пункт Фильтр.
Можно ли там указать определенные условия?
Например вывод записей в таблицу, только если заполнена определенный атрибут таблицы.
Все остальные не выводить.
Есть ли такая возможность?
Как правильно написать?Здравствуйте.
Да, вы можете указать там условия, их синтаксис аналогичен, если бы вы писали условие в SQL запросе в секции WHERE
напримерfieldname is NOT NULL
По данному случаю можете привести пример как можно в филтре применить LIKE "'+poruch_gd.Edit4.Text+'%".
например в этой строке:
poruch_gd.TableGrid1.dbFilter:= '(porych_gd.na_kontrole=1) AND (porych_gd.podrazp_isp = "'+poruch_gd.ComboBox1.Text+'")';
poruch_gd.TableGrid1.dbFilter:= '(porych_gd.na_kontrole=1) AND (porych_gd.podrazp_isp LIKE "'+poruch_gd.Edit4.Text+'%")';
корректно ли будет написать в окне настройки компонента таблицы в графе "3. Фильтр (необязательно)" такое выражение:
CommitteeMembers.id_DesignTempalte = {frmSettingReport.cbDesignPattern.dbItemID}
?
cbDesignPattern - это комбобокс, лежащий на той же форме, где и грид, для которого устанавливается фильтр
К сожалению такое не поддерживается, но вы можете изменить значение фильтра с помощью скрипта например в событии формы OnShow
Form.TableGrid.dbFilter := 'CommitteeMembers.id_DesignTempalte = ' + frmSettingReport.cbDesignPattern.sqlValue;
Form.TableGrid.dbUpdate;
Простите, а чем мой вариант с dbItemID хуже вашего варианта с sqlValue?
то есть
Form.TableGrid.dbFilter := 'CommitteeMembers.id_DesignTempalte = ' + IntToStr(frmSettingReport.cbDesignPattern.dbItemID);
Form.TableGrid.dbUpdate;
Почти ничем, но в случае пустого значения в компоненте, свойство sqlValue вернет NULL, а не -1 для dbItemID
Также свойство sqlValue не требует дополнительного преобразования IntToStr
Доброго дня !
..dbFilter := '( Length( Fd )<13 )' - работает
..dbFilter := '( pos( 'A' ,fd )>0 )' - нет " no such function pos "
='( copy( fd,1,3 ) = 'Alex' )' - тоже не работает
Какими функциями тогда искать ?
Доброго дня !
..dbFilter := '( Length( Fd )<13 )' - работает
..dbFilter := '( pos( 'A' ,fd )>0 )' - нет " no such function pos "
='( copy( fd,1,3 ) = 'Alex' )' - тоже не работает
Какими функциями тогда искать ?
dbFilter служит для модификации SQL запроса, который используется компонентом для выборки данных. Т.е. при создании фильтра необходимо использовать функции SQL https://sqlite.org/lang.html.
Спасибо за помощь SQLite работает
Fio like 'IVAN%'
Fio glob 'Ivan*'
А вот при редактировании ячейки TableGrid1 не работает
клавиша "Delete" ПОЧЕМУ ? Приходится использовать "BackSpace".
Заранее спасибо
А вот при редактировании ячейки TableGrid1 не работает
клавиша "Delete" ПОЧЕМУ ? Приходится использовать "BackSpace".Заранее спасибо
Поправил, скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0
Спасибо Dmitry.
Надеюсь с версии 5.3 "Del" тоже будет работать.
В TableGrid1 есть свойство dbListFieldsNames Оно показывает заголовки колонок таблиц.
А как узнать программно еще и соответствующие имена полей и имя таблицы.
Если компонент уже заполнен данными, то можно получить информацию о именах и типах так
ShowMessage(Form1.TableGrid1.Columns[0].TableName);
ShowMessage(Form1.TableGrid1.Columns[0].FieldName);
ShowMessage(Form1.TableGrid1.Columns[0].ForeignKey);
ShowMessage(Form1.TableGrid1.Columns[0].ForeignKeyFull);
ShowMessage(Form1.TableGrid1.Columns[0].FieldType);
Columns[0] - первая колонка
Информация полезная Dmitry. !
Чтобы было поменьше вопросов, а где вы ее увидели ?
Для скрытия колонки Id таблицы использую F1.TG1.Columns[0].visible:=False ,
Колонка исчезает, но при новом входе в форму таблицы, редактировании или
применяя F1.TG1.dbUpdate (обновить) свойство сбрасывается в …Visible:=True
Специально проверял ПОЧЕМУ ?
Кого где увидел? )
Изменения для компонента таблицы необходимо производить в ее событие OnChange
procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
Form1.TableGrid1.Columns[0].visible:=False;
end;
Да в таком случае все работает Dmitry.
" Кого где увидел ? " я имел ввиду какие еще есть свойства после Columns[0]
в Form1.TableGrid1.Columns[0]. ????? и где их посмотреть ?
1. Есть ли возможность запрета редактирования некоторых колонок как,
например, у вычисляемых полей ?
2 . У редактора скриптов есть ПОИСК строк ? A то часто приходится
обращаться к Блокноту Notepad.exe
Документацию можно найти здесь (Скрипты > Свойства, Методы и События > Таблица)
http://myvisualdatabase.com/help_ru/
К сожалению документацию пока неполная, т.к. свойства постоянно дополняются.
1.
procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
Form1.TableGrid1.Columns[0].Options := Form1.TableGrid1.Columns[0].Options - coEditing;
end;
2. Ctrl+F
Очередное СПАСИБО Dmitry.
1. Очень громоздко, но работает Не проще ли было выделить поле
в настройках компонента таблицы для каждой колонки VE (-visible,-editing) ...
Например, для разных пользователей не показывать или запретить
редактирование колонок.
Как ввести данные в переменную , например, Ft: String для значения фильтра ?
TextBox требует TableName и FieldName
Очередное СПАСИБО Dmitry.
Как ввести данные в переменную , например, Ft: String для значения фильтра ?
TextBox требует TableName и FieldName
К сожалению не понял вопроса.
Переменная обьявлена как FT : String; Каким образом ввести в нее значение , например , " Id<20 "
Свойство Form1.TextBox.Edit1 позволяет это только для TableName + FieldName в построителе форм
My Visual Database → Russian → dbFilter
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi