1 (edited by jazzitcool 2015-01-07 18:57:12)

Topic: Как сделать выборочный список?

Доброго времени. Суть вопроса - при открытии формы для добавления записи, в комбобоксе есть большой список имён мастеров, к примеру Иванов, Петров, Сидоров и т.д. Как сделать чтобы при выборе имени был только Иванов и Сидоров а остальные при выборе были бы скрыты (но в базе должны висеть). Это нужно для разных компьютеров в разных точках, и чтобы там где пользуются Иванов и Сидоров не было остального списка, поскольку они будут ставить только свои фамилии. По сути можно ли настроить програму так чтобы у одних был один список у других другой, но с единой базой? Это бы исключило ошибки при случайном сохранении не под своим именем. Надеюсь ясно описал, заранее спасибо.

Re: Как сделать выборочный список?

Приветствую,


есть два варианта с помощью скриптов


1. У ComboBox есть метод dbSQLExecute, который позволяет заполнить компонент с помощью SQL запроса, где можете сформировать любые условия.


пример:
Form1.ComboBox1.dbSQLExecute ('SELECT fieldname, id FROM tablename');


обратите внимание, что в SQL запросе упомянуто поле id, чтобы компонент мог знать, какой записи в базе данных принадлежит выбранная строка. Допускается SQL запрос и без упоминания поля id, но в таком случае будет невозможно узнать, какой идентификатор записи имеет выбранная строка.




2. У ComboBox есть свойство dbFilter, в котором можно написать условие для фильтрации записей, таким образом исключить некоторые из них


пример

procedure Form1_Button8_OnClick (Sender: string; var Cancel: boolean);
begin
    Form1.ComboBox1.dbFilter:='yesno=0';
    UpdateDatabase('tablename');
end;

procedure Form1_Button7_OnClick (Sender: string; var Cancel: boolean);
begin
    Form1.ComboBox1.dbFilter:='yesno=1';
    UpdateDatabase('tablename');
end;


можете приложить свой проект к сообщению (без exe и dll), постараюсь помочь.

Dmitry.

Re: Как сделать выборочный список?

Спасибо за советы, попробую сначала сам, интересно всё таки разобраться)) если что попрошу помощи.

4 (edited by jazzitcool 2015-01-13 20:29:24)

Re: Как сделать выборочный список?

Не получается у меня со скриптами, всё время какие нибудь ошибки. если поможете буду признателен

ссылка на скачивание http://dropmefiles.com/juHLY

Re: Как сделать выборочный список?

jazzitcool

В простейшем случае можно без скриптов, используя свойство ComoboBox-a, Filter написать туда условия для отбора мастеров, например:
id=2
или
id=2 or id=3
или
id=2 or id=3 or id=5


где цифры, это идентификатор мастера в базе, данный идентификатор можно увидеть, если добавить поле id в настройках грида GridMaster, на форме frmDict


к сообщению приложил доработанный проект

Post's attachments

Attachment icon база заявок2.rar 21.11 kb, 467 downloads since 2015-01-13 

Dmitry.

Re: Как сделать выборочный список?

Это то что надо!!!! Огромнейшее спасибо! ))

Re: Как сделать выборочный список?

Если не затруднит не могли бы вы показать на образце пример с скриптами, для общего развития, а то как ни пытаюсь в скрипте какая то ошибка. заранее спасибо.

Re: Как сделать выборочный список?

в первом сообщение я показал как это сделать, тоже самое можно сделать скриптом:

procedure Form1_Button8_OnClick (Sender: string; var Cancel: boolean);
begin
    Form1.ComboBox1.dbFilter:='id=2 or id=3';
    UpdateDatabase('tablename');
end;
Dmitry.