@GoldMan240

Как сделать выбор номеров телефона по id абонента в таблице?

Есть 2 таблицы: ЗВОНКИ и АБОНЕНТЫ. Во второй указывается id_абонента, его ФИО и номер телефона, а в первой, id_звонка, id_абонента (т.е. нужно выбрать), номер телефона абонента (нужно выбрать, но нужно как-то отфильтровать, чтобы выбор был возможен лишь если id_абонента в таблице ЗВОНКИ совпадал с id_абонента в таблице АБОНЕНТЫ). Вот как у меня работает добавление таблицы сейчас:
def addTable(i):
    if i == 1:
        TableName = "Callers";
        ColNames = ["ФИО", "Номер телефона"];
        ColWidth = [300, 300];
    elif i == 2:
        TableName = "Calls";
        ColNames = ["Абонент", "Номер абонента"];
        ColWidth = [300, 300];

    global stm;
    stm = QtSql.QSqlRelationalTableModel(parent = window);
    tv.setModel(stm);
    stm.setTable(TableName);
    stm.setSort(1, QtCore.Qt.AscendingOrder);

    if i == 2
        stm.setRelation(1, QtSql.QSqlRelation("Callers", "CallersID", "FullName")); 
        stm.setRelation(2, QtSql.QSqlRelation("Callers", "CallersID", "CallerPhone"));#Где CallersID поле id_абонента, FullName - ФИО абонента, а CallerPhone - телефон абонента.
    stm.select();

    k = 0;
    for ColName in ColNames:
        k = k + 1;
        stm.setHeaderData(k, QtCore.Qt.Horizontal, ColName);

    if TableName == "Calls":
        tv.setItemDelegateForColumn(1, QtSql.QSqlRelationalDelegate(tv));
        tv.setItemDelegateForColumn(2, QtSql.QSqlRelationalDelegate(tv));

    tv.hideColumn(0);
    
    k = 0;
    for ColW in ColWidth:
        k = k + 1;
        tv.setColumnWidth(k, ColW);

    if TableName != "Calls":
        btnDel.setEnabled(False);
    else:
        btnDel.setEnabled(True);
    btnAdd.setEnabled(True);

В таком случае, при добавлении таблицы я смогу выбрать любой номер телефона из списка, а мне нужно, как я сказал выше, чтобы показывались лишь номера абонента. Возможно ли сделать такой фильтр и как?
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 100 000 до 150 000 руб.
FirstVDS Иркутск
от 50 000 до 80 000 руб.
от 150 000 до 200 000 руб.
14 нояб. 2019, в 09:07
3000 руб./за проект
14 нояб. 2019, в 08:31
1500 руб./за проект
14 нояб. 2019, в 08:04
2000 руб./за проект