none
Как настроить отображение информации в связанных таблицах?

    שאלה

  • 1. В базе mdb таблицы связаны по коду. На форме разместил таблицы, но связь между ними отсутствует: при выборе контакта отображаются все телефоны, а не телефоны данного контакта. Как связать таблицы?
    2. Хотелось бы сделать так, чтобы в таблице Телефоны отображался вид телефона (Домашний, Мобильный, Рабочий), а не его код из Таблицы ВидТелефона. Подскажите, пожалуйста, как это сделать. Проект разместил на http://zalil.ru/34411733

    Alex

    יום חמישי 04 אפריל 2013 19:02

תשובות

  • 1. Следует при изменении текущего элемента в первом гриде фильтровать вывод второго:

            private void Main_Load(object sender, EventArgs e) {
                bsContacts.CurrentItemChanged += (o, args) => {
                    var id = (bsContacts.Current as DataRowView)["Код"];
                    bsTelephones.Filter = string.Format("[КодКонтакта]={0}", id);
                };
    //...


    2. В качестве варианта: необходимо изменить тип столбца на DataGridViewComboBoxColumn и настроить его на отображение видов телефона из таблицы Вид.

                this.telephoneTypeComboColumn.DataPropertyName = "Вид";
                this.telephoneTypeComboColumn.DataSource = this.видТелефонаBindingSource;
                this.telephoneTypeComboColumn.DisplayMember = "ВидТелефона";
                this.telephoneTypeComboColumn.HeaderText = "Вид";
                this.telephoneTypeComboColumn.Name = "telephoneTypeComboColumn";
                this.telephoneTypeComboColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
                this.telephoneTypeComboColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
                this.telephoneTypeComboColumn.ValueMember = "Код";
    Решение залил сюда


    • סומן כתשובה על-ידי tumanovalex יום שישי 05 אפריל 2013 15:55
    יום שישי 05 אפריל 2013 04:06

כל התגובות

  • 1. Следует при изменении текущего элемента в первом гриде фильтровать вывод второго:

            private void Main_Load(object sender, EventArgs e) {
                bsContacts.CurrentItemChanged += (o, args) => {
                    var id = (bsContacts.Current as DataRowView)["Код"];
                    bsTelephones.Filter = string.Format("[КодКонтакта]={0}", id);
                };
    //...


    2. В качестве варианта: необходимо изменить тип столбца на DataGridViewComboBoxColumn и настроить его на отображение видов телефона из таблицы Вид.

                this.telephoneTypeComboColumn.DataPropertyName = "Вид";
                this.telephoneTypeComboColumn.DataSource = this.видТелефонаBindingSource;
                this.telephoneTypeComboColumn.DisplayMember = "ВидТелефона";
                this.telephoneTypeComboColumn.HeaderText = "Вид";
                this.telephoneTypeComboColumn.Name = "telephoneTypeComboColumn";
                this.telephoneTypeComboColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True;
                this.telephoneTypeComboColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
                this.telephoneTypeComboColumn.ValueMember = "Код";
    Решение залил сюда


    • סומן כתשובה על-ידי tumanovalex יום שישי 05 אפריל 2013 15:55
    יום שישי 05 אפריל 2013 04:06
  • Спасибо большое за ответ. Попробую сделать, как Вы советуете.


    Alex

    יום שישי 05 אפריל 2013 15:55
  • Спасибо большое. все получилось. Возникли следующие вопросы:

    1. Как я понял, при фильтрации Вы используете люмбда выражения, в которых  я плохо разбираюсь. А как сделать то же самое обычным образом?

    2. Хотелось бы, чтобы при добавлении телефона подставлялся код активного контакта. А то сейчас приходится его вводить вручную. Подскажите, пожалуйста, как это можно сделать.

    3. Подскажите, пожалуйста, как сделать удаление строки из телефона. Сейчас удаление действует только на контакты, при этом одновременно удаляются и телефоны, связанные с контактом. А как сделать навигатор для второй таблицы, я не знаю.


    Alex




    • נערך על-ידי tumanovalex יום שישי 05 אפריל 2013 19:05
    יום שישי 05 אפריל 2013 18:59