fişi termal yazıcı python'a yazdırın

Sep 05 2020

python'da bir envanter sistemi oluşturuyorum. tüm satışlar bittikten sonra baskı reçetesine ihtiyacım var. kaydet düğmesine tıkladığımda. mysql veritabanını kullanıyorum. id, ara toplam, maaş, bakiye gibi kolonlardan oluşan satış ve satış ürün tablosu satış tablolarına sahiptir. sales_products tabloları aşağıdaki sütunlardan oluşur - id, sales_id, item, qty, price, total, veriyi iki farklı tabloya kaydetme ihtiyacı aynı anda kaydet düğmesine bastığımda yazdırma reçetesi göstermelidir. nasıl kaydedeceğimi bilmiyorum çoklu tablolardaki veriler, tüm ağaç görünümlerini veritabanına nasıl kaydedeceğimi bilmiyorum. Kaydet işlevinde aşağıdaki son kimliği aldım.

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()

Yanıtlar

1 CoolCloud Sep 05 2020 at 10:34

İşte size nasıl davranmanız gerektiğini düşünüyorum.

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()

\tMektubun sonuna 4 boşluk ekleyecektir.

Fiyatları kendinizle e1.get()ve tümü ile değiştirebilirsiniz .

grid()Burada da kullanabilirsiniz, ancak kullanışsız olabilir ve daha fazla satır alır.

Python kullanarak nasıl yazdırılacağını buradan kontrol edin

Umarım bir fikrin vardır.

Şerefe