Topic: Переменная в фильтре таблицы
возможно ли сделать переменную в фильтре таблицы по типу
(id_mirrow="'+idMirrow+'") ? или это как то нужно прописывать в самом скрипте а не в фильтре?
My Visual Database → Russian → Переменная в фильтре таблицы
возможно ли сделать переменную в фильтре таблицы по типу
(id_mirrow="'+idMirrow+'") ? или это как то нужно прописывать в самом скрипте а не в фильтре?
возможно ли сделать переменную в фильтре таблицы по типу
(id_mirrow="'+idMirrow+'") ? или это как то нужно прописывать в самом скрипте а не в фильтре?
var
idMirrow: string = IntToStr(Form1.ComboBox1.dbItemID);
begin
Form1.Tablegrid1.dbFilter:='id_mirrow="'+idMirrow+'"';
end;
Спасибо
Часто замечал случай когда открываешь программу на форме в первый раз, скрипт не подтягивается и в таблице полная каша, закрываешь форму, открываешь повторно и больше такой ошибки не будет до того пока опять программу не перезапустишь. С этим как то можно бороться? В нескольких проектах замечал
взможно таблица не обновляется
попробуйте в свойство OnShow нужной Вам формы
добавить это
Form1.Tablegrid1.dbUpdate;
agatlogic101 wrote:возможно ли сделать переменную в фильтре таблицы по типу
(id_mirrow="'+idMirrow+'") ? или это как то нужно прописывать в самом скрипте а не в фильтре?var idMirrow: string = IntToStr(Form1.ComboBox1.dbItemID); begin Form1.Tablegrid1.dbFilter:='id_mirrow="'+idMirrow+'"'; end;
Я так понимаю где то нужен IFNULL? В случае если id = 0 возникает ошибка и форма с таблицей не открывается
попробуйте так
var
idMirrow: string = IntToStr(Form1.ComboBox1.dbItemID);
begin
if (Form1.ComboBox1.dbItemID <>-1) then Form1.Tablegrid1.dbFilter:='id_mirrow="'+idMirrow+'"';
end;
нет не работает, у меня ид берётся из таблицы, у которой переменная берётся из её связи. есть ли какой то вариант подобной записи?
if (idMirrow > 0) then люди.Tablegrid3.dbFilter:='id_mirrow="'+idMirrow+'"';
нет не работает, у меня ид берётся из таблицы, у которой переменная берётся из её связи. есть ли какой то вариант подобной записи?
if (idMirrow > 0) then люди.Tablegrid3.dbFilter:='id_mirrow="'+idMirrow+'"';
теперь я запуталься, что именно Вы пытаетесь сделать? и можно посмотреть сам проект?
Я упрощу вопрос, так будет проще.
Есть строка
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
как сделать так, что если он обращается к этой таблице и видит что id_mirrow = 0, то бы он не ругался, а помещал этот 0 или какое то значение в idMirrow (исходя из строчки выше) А дальше бы уже тот скрипт который вы написали бы срабатывал, видел что ида нет, и показывал бы просто пустую таблицу. Я так понимаю тут нужен IFNULL как то поставить
то есть программа ругается когда id_mirrow из строчки = 0
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
а ну Вы и так все написали сами
var
idMirrow: string;
begin
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
if (idMirrow <> '0') then люди.Tablegrid3.dbFilter:='id_mirrow="'+idMirrow+'"';
люди.Tablegrid3.dbUpdate;
end;
в случае .sqlValue будет строковый ответ, потому нужно использовать переменную типа string, но (idMirrow <> '0') можно будет проверить только на равняется или не равняется..
Да... только при клике по таблице когда этот idMirrow выесняется, и когда запись там пуста, то возникает ошибка
Could not convert variant of type (Null) into type (OleStr) Которую я понимаю можно решить если просто запретить сточку
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue ); если id_mirrow = 0, или подставлять заранее этот 0, если понятно чо id_mirrow = 0, что бы этой ошибки не было
то есть программа ругается когда id_mirrow из строчки = 0 в тот момент когда она его пытается выяснить
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
можно добавить условие
if (idMirrow <> '0') AND (idMirrow <> '') then люди.Tablegrid3.dbFilter:='id_mirrow="'+idMirrow+'"';
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
idMirrow не возможно получить если id_mirrow = null
idMirrow := SQLExecute('SELECT id_mirrow FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
idMirrow не возможно получить если id_mirrow = null
странно перепроверил, ошибок нет, если в поле нет значения то переменная просто пуста
ну, сделайте тогда так..
SQLExecute('SELECT IFNULL (id_mirrow, 0) FROM people WHERE id='+ Form1.TableGrid2.sqlValue );
Вот этот способ работает!)
А возможно сделать что бы ComboBox был настроен на показ сразу и имени и фамилии? Я вижу вариант как зоздание третьего столбца в который скриптом будет изначально сразу при создании контакта заносится строка имя + фамилия и её уже показывать в ComboBox. Есть ли путь проще?
СТОЛБ1 Имя СТОЛБ2 фамилия СТОЛБ3 с помощью скрипта при добовлении в 1 и 2 данных подставляет в столб3 сумму текста (PS как именно это делается пока тоже не знаю)
Привет,
Это помогает?
Смотрите также скриншот.
Derek.
Thank you derek, this is what I need
My Visual Database → Russian → Переменная в фильтре таблицы
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi