in hóa đơn trên máy in nhiệt python

Sep 05 2020

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

1 CoolCloud Sep 05 2020 at 10:34

Đâ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