Imprimir Datos Report Lab
Imprimir Datos Report Lab
tkinter
import
ttk
from tkinter import *
import sqlite3
class Product:
# connection dir property
db_name = 'database.db'
# Name Input
Label(frame, text = 'Name: ').grid(row = 1, column = 0)
self.name = Entry(frame)
self.name.focus()
self.name.grid(row = 1, column = 1)
# Price Input
Label(frame, text = 'Price: ').grid(row = 2, column = 0)
self.price = Entry(frame)
self.price.grid(row = 2, column = 1)
# Table
self.tree = ttk.Treeview(height = 10, columns = 2)
self.tree.grid(row = 4, column = 0, columnspan = 2)
self.tree.heading('#0', text = 'Name', anchor = CENTER)
self.tree.heading('#1', text = 'Price', anchor = CENTER)
# Buttons
ttk.Button(text = 'DELETE', command = self.delete_product).grid(row
= 5, column = 0, sticky = W + E)
ttk.Button(text = 'EDIT', command = self.edit_product).grid(row = 5,
column = 1, sticky = W + E)
def add_product(self):
if self.validation():
query = 'INSERT INTO product VALUES(NULL, ?, ?)'
parameters = (self.name.get(), self.price.get())
self.run_query(query, parameters)
self.message['text'] = 'Product {} added
Successfully'.format(self.name.get())
self.name.delete(0, END)
self.price.delete(0, END)
else:
self.message['text'] = 'Name and Price is Required'
self.get_products()
def delete_product(self):
self.message['text'] = ''
try:
self.tree.item(self.tree.selection())['text'][0]
except IndexError as e:
self.message['text'] = 'Please select a Record'
return
self.message['text'] = ''
name = self.tree.item(self.tree.selection())['text']
query = 'DELETE FROM product WHERE name = ?'
self.run_query(query, (name, ))
self.message['text'] = 'Record {} deleted Successfully'.format(name)
self.get_products()
def edit_product(self):
self.message['text'] = ''
try:
self.tree.item(self.tree.selection())['values'][0]
except IndexError as e:
self.message['text'] = 'Please, select Record'
return
name = self.tree.item(self.tree.selection())['text']
old_price = self.tree.item(self.tree.selection())['values'][0]
self.edit_wind = Toplevel()
self.edit_wind.title = 'Edit Product'
# Old Name
Label(self.edit_wind, text = 'Old Name:').grid(row = 0, column = 1)
Entry(self.edit_wind, textvariable = StringVar(self.edit_wind, value
= name), state = 'readonly').grid(row = 0, column = 2)
# New Name
Label(self.edit_wind, text = 'New Price:').grid(row = 1, column = 1)
new_name = Entry(self.edit_wind)
new_name.grid(row = 1, column = 2)
# Old Price
Label(self.edit_wind, text = 'Old Price:').grid(row = 2, column = 1)
Entry(self.edit_wind, textvariable = StringVar(self.edit_wind, value
= old_price), state = 'readonly').grid(row = 2, column = 2)
# New Price
Label(self.edit_wind, text = 'New Name:').grid(row = 3, column = 1)
new_price= Entry(self.edit_wind)
new_price.grid(row = 3, column = 2)