cetak struknya pada python printer thermal
saya membuat sistem inventaris di python. saya perlu genterating print recipt setelah semua penjualan selesai. ketika saya mengklik tombol simpan. saya telah menggunakan database mysql. Ini memiliki tabel penjualan dan penjualan produk tabel penjualan terdiri dari kolom-kolom berikut - id, subtotal, bayar, saldo. tabel sales_products terdiri dari kolom-kolom berikut –id, sales_id, item, qty, price, total perlu menyimpan data ke dalam dua tabel yang berbeda ketika saya menekan tombol simpan pada saat yang sama tanda terima cetak harus ditampilkan. saya tidak tahu bagaimana cara menyimpan data pada tabel multipule saya tidak tahu bagaimana cara menyimpan semua tampilan pohon simpan di database. saya mendapat id lastinsert di bawah dalam fungsi simpan.
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()
Jawaban
Berikut adalah bagaimana menurut saya Anda harus melanjutkan penerimaan.
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()
Ini \takan menambahkan 4 spasi di akhir surat.
Anda dapat mengganti harga dengan Anda e1.get()dan semua.
Anda juga dapat menggunakan di grid()sini tetapi mungkin merepotkan dan membutuhkan lebih banyak baris.
Lihat di sini tentang cara mencetak menggunakan python
Semoga Anda mendapat ide.
Bersulang