Как вы отображаете все / несколько строк из серверной базы данных sql в таблице дерева дерева tkinter? - PullRequest
0 голосов
/ 21 апреля 2020

В приложении, которое я создаю, я хочу, чтобы у меня была страница, где пользователи могли видеть детали записей полей, которые они сделали, на главной странице пользовательского интерфейса, с которой они взаимодействуют. Все отправленные и внутренние данные хранятся в базе данных SQL Server. Я был в состоянии сделать запрос к базе данных и отобразить записи в первой строке древовидной структуры, но я, когда я использую cur.fetchone () [0], он повторяет только первую строку в таблице, и если я делаю fetchall ( ) или один из примеров def, показанных ниже, возвращает все строки в виде кортежа в первой строке. Я довольно новичок в python и tkinter, поэтому заранее извиняюсь, если это плохой вопрос.

from tkinter import *
from tkinter import ttk
import pyodbc
import backend

#This def is from backend.py
def clientnameelected():
    cur = conn.cursor()
    cur.execute("SELECT [ClientName] FROM Timesheet_Entries")
    data = []
    for client_list in cur.fetchall():
        data.append(client_list[0])
    return data

root = Tk()
root.geometry("500x500")
tree = ttk.Treeview(root)

global conn

tree["columns"] = ("PayPeriod", "Date", "ClientName", "Notes", "Hours", "Status")
tree.column("#0", width = 50)
tree.column("PayPeriod", width = 175)
tree.column("Date", width = 100)
tree.column("ClientName", width = 350)
tree.column("Notes", width = 500)
tree.column("Hours", width = 50)
tree.column("Status", width = 75)

tree.heading("#0", text = "EntryID")
tree.heading("PayPeriod", text = "PayPeriod")
tree.heading("Date", text = "Date")
tree.heading("ClientName", text = "ClientName")
tree.heading("Notes", text = "Notes")
tree.heading("Hours", text = "Hours")
tree.heading("Status", text = "Status")

for i in range(1, 15):
    cur = conn.cursor()
    #cur.execute("SELECT [EntryID] FROM Timesheet_Entries")
    #entryidcolumn = cur.fetchall()[0]
    #cur.execute("SELECT [PayPeriod] FROM Timesheet_Entries")

    payperiodcolumn = backend.payperiodselected()
    workdatecolumn = backend.workdateselected()
    clientnamecolumn = backend.clientnameelected()
    notescolumn = backend.notesentered()
    hoursworkedcolumn = backend.hoursentered()
    statuscolumn = backend.currentstatus()

    #cur.execute("SELECT [WorkDate] FROM Timesheet_Entries")
    #workdatecolumn = cur.fetchone()[0]
    #vot = cursor.fetchone()
    #cur.execute("SELECT [ClientName] FROM Timesheet_Entries")
    #clientnamecolumn = cur.fetchone()[0]
    #cur.execute("SELECT [Notes] FROM Timesheet_Entries")
    #notescolumn = cur.fetchone()[0]
    #cur.execute("SELECT [HoursWorked] FROM Timesheet_Entries")
    #hoursworkedcolumn = cur.fetchone()[0]
    #cur.execute("SELECT [Status] FROM Timesheet_Entries")
    #statuscolumn = cur.fetchone()[0]

    #tree.insert("", i, text=i, values=(entryidcolumn, payperiodcolumn, workdatecolumn, clientnamecolumn, notescolumn, hoursworkedcolumn, statuscolumn)),
    tree.insert("", i, text = i, values=(payperiodcolumn, workdatecolumn, clientnamecolumn, notescolumn, hoursworkedcolumn, statuscolumn)),

tree.pack()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...