in hóa đơn trên máy in nhiệt python
Tôi đang tạo một hệ thống kiểm kê trên python. Tôi cần nhận được bản in sau khi bán xong tất cả. Khi tôi nhấp vào nút lưu. Tôi đã sử dụng cơ sở dữ liệu mysql. nó có bán hàng và bán hàng bảng sản phẩm bảng bán hàng bao gồm các cột sau - id, tổng phụ, thanh toán, số dư. Các bảng sales_products bao gồm các cột sau –id, sales_id, item, qty, price, tổng nhu cầu lưu dữ liệu vào hai bảng khác nhau khi tôi nhấn nút lưu cùng lúc print nhận được sẽ hiển thị. Tôi không biết cách lưu dữ liệu trên bảng đa quy tắc Tôi không biết làm thế nào để lưu tất cả các chế độ xem dạng cây đã lưu trên cơ sở dữ liệu. tôi có id lastinsert bên dưới trong hàm lưu.
from tkinter import ttk
from tkinter import *
from tkinter import messagebox
import mysql.connector
def save():
totall = float(tot.cget("text"))
pay = float(e11.get())
bal = pay - totall
mysqldb = mysql.connector.connect(host="localhost", user="root", password="", database="milkshop")
mycursor = mysqldb.cursor()
try:
sql = "INSERT INTO sales (id,subtotal,pay,balance) VALUES (%s, %s, %s, %s)"
val = ("", totall, pay, bal)
mycursor.execute(sql, val)
mysqldb.commit()
lastid = mycursor.lastrowid
except Exception as e:
print(e)
mysqldb.rollback()
mysqldb.close()
def pay():
totall = float(tot.cget("text"))
pay = float(e11.get())
bal = pay - totall
balText.set(bal)
root = Tk()
root.title("Inventory System using Python")
root.geometry("1000x600")
global e1
global e2
global e3
global e4
global totText
global balText
totText = StringVar()
balText = IntVar()
Label(root, text="Inventory System using Python", font="arial 22 bold").place(x=5, y=10)
var1 = IntVar()
Checkbutton(root, text="Thai Fried Rice", variable=var1).place(x=10, y=50)
var2 = IntVar()
Checkbutton(root, text="Basil Fried Rice", variable=var2).place(x=10, y=80)
var3 = IntVar()
Checkbutton(root, text="Pineapple Fried Rice", variable=var3).place(x=10, y=110)
var4 = IntVar()
Checkbutton(root, text="Crab Fried Rice", variable=var4).place(x=10, y=140)
var5 = IntVar()
Checkbutton(root, text=" Fish Fried Rice ", variable=var5).place(x=10, y=170)
Label(root, text="Total").place(x=600, y=10)
Label(root, text="Pay").place(x=600, y=50)
Label(root, text="Balance").place(x=600, y=80)
e8 = Entry(root)
e8.place(x=300, y=110)
e9 = Entry(root)
e9.place(x=300, y=140)
e10 = Entry(root)
e10.place(x=300, y=170)
tot = Label(root, text="", font="arial 22 bold", textvariable=totText)
tot.place(x=650, y=10)
e11 = Entry(root)
e11.place(x=650, y=50)
e12 = Entry(root)
balance = Label(root, text="", font="arial 22 bold", textvariable=balText).place(x=650, y=80)
Button(root, text="Add", command=show, height=3, width=13).place(x=10, y=220)
Button(root, text="PayNow", command=pay, height=3, width=13).place(x=650, y=120)
Button(root, text="Save", command=save, height=3, width=13).place(x=750, y=120)
cols = ('item', 'price', 'qty', 'total')
listBox = ttk.Treeview(root, columns=cols, show='headings')
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1, column=0, columnspan=2)
listBox.place(x=10, y=300)
root.mainloop()
Trả lời
Đây là cách tôi nghĩ bạn nên tiếp tục với nhận.
from tkinter import *
root = Tk()
def reciept():
top = Toplevel()
price1 = 3000
qty1 = 3
total1 = price1*qty1
price2 = 5000
qty2 = 4
total2 = price1*qty2
l = Label(top,text='---------RECIEPT----------')
l.pack()
heading = Label(top,text='PRICE\tQTY\tTOTAL')
heading.pack()
item1 = Label(top,text=f'{price1}\t{qty1}\t{total1}')
item1.pack()
item2 = Label(top,text=f'{price2}\t{qty2}\t{total2}')
item2.pack()
b = Button(root,text='Print reciept',command=reciept)
b.pack(padx=10,pady=10)
root.mainloop()
Ý \tmuốn thêm 4 dấu cách vào cuối bức thư.
Bạn có thể thay thế giá bằng của bạn e1.get()và tất cả.
Bạn cũng có thể sử dụng grid()ở đây nhưng nó có thể rườm rà và mất nhiều dòng hơn.
Kiểm tra tại đây về cách in bằng python
Hy vọng bạn có một ý tưởng.
Chúc mừng