Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Combobox с разным наполнением для разных строк в cxGrid   Найти похожие ветки 

 
Куку   (2012-11-12 21:04) [0]

Добрый день!

Есть таблицы: СписокЧегоТоТам,  ЧегоТоТам и ВидЧегоТоТам.

Есть cxGrid, в котором отображен СписокЧегоТоТам примерно в таком виде:
ВидЧегоТоТам1, ЧегоТоТам1, АтрибутыСписокЧегоТоТам1
ВидЧегоТоТам1, ЧегоТоТам11, АтрибутыСписокЧегоТоТам11
ВидЧегоТоТам1, ЧегоТоТам111, АтрибутыСписокЧегоТоТам111
ВидЧегоТоТам2, ЧегоТоТам2, АтрибутыСписокЧегоТоТам2
ВидЧегоТоТам2, ЧегоТоТам22, АтрибутыСписокЧегоТоТам22
...

Пользователь при работе с гридом выбирает ВидЧегоТоТам, то ему в колонке "ЧегоТоТам" выпадал список значений только выбранного вида.
Считаем, что кол-во значений ВидЧегоТоТам ограничено (от 1 до 10).

Как лучше это организовать? Заполнять какой-то (?) PickList? В каком направлении смотреть?


 
Куку   (2012-11-12 21:06) [1]

UPD
Желательно, чтобы уже выбранные ЧегоТоТам не присутствовали в выпадающем списке. Перестраивать каждый раз "на лету" очень бы не хотелось, или хотелось бы, но как-то поэкономнее по времени.


 
brother ©   (2012-11-13 09:19) [2]

ЧегоТоТам
не совсем удачная замена...


 
DimaBr ©   (2012-11-13 09:44) [3]

Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.


 
DimaBr ©   (2012-11-13 10:10) [4]

Если у вас все ЧегоТоТам хранятся в одной таблице и выводятся одним запросом, то можно попробовать фильтровать лукап в зависимости от ВидЧегоТоТам. Например:

procedure TForm1.cxLookupComboBox1PropertiesInitPopup(Sender: TObject);
begin
 with cxLookupComboBox1.Properties.Grid do begin
   DataController.Filter.AddItem(nil,Columns.Items[0],foLessEqual,5,"5");// показывать все меньше 5
   DataController.Filter.Active := true;
 end;
end;


 
Куку   (2012-11-14 18:54) [5]

Внимание правильный ответ (найдено в доке по cxGrid):
1) Кидаем на форму (или создаем динамически - кому как нравится) cxEditRepository.
2) Создаем там нужные нам проперти. В нашем случае ComboBoxItem
3) В событии cxGridTableView1Column2GetProperties(
 Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
 var AProperties: TcxCustomEditProperties);
пишем что хотим,
например:
if ARecord.Values[cxStep1ResultTableView1Column1.Index] = null then exit;

  if ARecord.RecordIndex > 3 then
 AProperties := cxEditRepository1ComboBoxItem1.Properties
 else
  begin
  cxEditRepository1ComboBoxItem2.Properties.Items.Clear;
  cxEditRepository1ComboBoxItem2.Properties.Items.Add(ARecord.Values[cxStep1Result TableView1Column1.Index]+"_"+IntToStr(Sender.Index));
  cxEditRepository1ComboBoxItem2.Properties.Items.Add(ARecord.Values[cxStep1Result TableView1Column1.Index]+"_*");

  AProperties := cxEditRepository1ComboBoxItem2.Properties;
  end;



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.062 c
15-1328642557
Юрий Зотов
2012-02-07 23:22
2013.03.22
И снова нужен человек


2-1339691646
vasa777
2012-06-14 20:34
2013.03.22
заставка xe2 с текстом


2-1343924127
Pcrepair
2012-08-02 20:15
2013.03.22
Правильный код функции с idHTTP


2-1345111451
Дмитрий Белькевич
2012-08-16 14:04
2013.03.22
Найти вернее окно (форму) среди нескольких одинаковых


2-1345735828
Dennis I. Komarov
2012-08-23 19:30
2013.03.22
TService + User SYSTEM + поток + ODBC = Источник данных не на...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский