@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 руб.
от 150 000 до 200 000 руб.
Alytics Зеленоград
от 100 000 до 130 000 руб.
14 нояб. 2019, в 15:54
30000 руб./за проект
14 нояб. 2019, в 15:42
500 руб./за проект
14 нояб. 2019, в 15:21
10000 руб./за проект