Related
I'm looking for a code that would let me send an random embed that I created when someone types a command. For the moment with the code that I have, all embeds are being sent but I want the bot to only send a random one, not all 4. Is this possible ?
module.exports = class PizzaTest extends BaseCommand {
constructor() {
super('pizzatest', 'fun', []);
}
async run(client, message, args) {
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58");
message.channel.send(capreseEmbed).catch(err => console.log(err));
message.channel.send(reineEmbed).catch(err => console.log(err));
message.channel.send(vegeEmbed).catch(err => console.log(err));
message.channel.send(andalouseEmbed).catch(err => console.log(err));
}
}
I know that I can use something like .setDescription(description) with all of them stated at the beginning but I need the description and thumbnail to match so that wouldn't work I guess ?
Thank you!
Here's an easy way:
const Thumbnail = [
'https://i.imgur.com/McSXASC.png',
'https://i.imgur.com/AKStODY.png',
'https://i.imgur.com/U0qrSk9.png',
'https://i.imgur.com/dvgkC4K.png',
]
const Description = [
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`',
', il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`',
]
let random = Math.floor(Math.random() * Thumbnail.length)
const embed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription( '`' + message.author.username + Description[random])
.setThumbnail(Thumbnail[random])
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
message.channel.send(embed)
Yes this is possible and very simple to do:
const capreseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Caprese** ! \n\n *Les ingrédients sont: Mozarella, Olives, Tomates Séchées & Basilic.*`)
.setThumbnail('https://i.imgur.com/McSXASC.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const reineEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Reine** ! \n\n *Les ingrédients sont: Mozarella, Jambon, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/AKStODY.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const vegeEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Végétarienne** ! \n\n *Les ingrédients sont: Mozarella, Olives, Poivrons, Champignons & Basilic.*`)
.setThumbnail('https://i.imgur.com/U0qrSk9.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
const andalouseEmbed = new Discord.MessageEmbed()
.setTitle('• Attention, pizza en livraison! 🚀')
.setDescription(`<#${message.author.id}>, il semblerait que ta commande soit prête. Tu viens de recevoir une magnique pizza **Andalouse** ! \n\n *Les ingrédients sont: Mozarella, Poivrons, Boulette de Boeuf & Sauce Andalouse.*`)
.setThumbnail('https://i.imgur.com/dvgkC4K.png')
.setFooter(message.author.username, message.author.displayAvatarURL())
.setTimestamp()
.setColor("#baff58")
var embedArr = [capreseEmbed, reineEmbed, vegeEmbed, andalouseEmbed];
let randomEmbed = embedArr[Math.floor(Math.random() * embedArr.length)];
message.channel.send(randomEmbed);
At first we define all embeds, like you already did. Then we store them in an array. From that array we want to get a value from a random index. That is done in randomEmbed. Then we send the random embed into the channel.
i have created an entry form for personal use using tkinter. Now i want to add a function in it that when yes if select from drop down show entry box otherwise hide it.
i have written the codes but it is not working neither
throwing the error below is the snippet of my code
field = ["YES",""]
query_text = StringVar()
lblname = Label(f1aa, font=("arial", 10, "bold"), text="Query/Reply", bd=8, anchor="w")
lblname.grid(row=0, column=0, sticky=W)
txtname28 = OptionMenu(f1aa, query_text, *field)
txtname28.grid(row=0, column=1, sticky=W)
hidden = False
hidden_text = StringVar()
e = Entry(f1aa, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = hidden_text)
e.grid(row=0, column=2)
if query_text == "YES":
e.grid()
else:
e.grid_remove()
#hidden = not hidden
full codes
from tkinter import *
from tkinter import ttk
import random
import time
import datetime
from datetime import date
from tkinter import messagebox
import Backend
import csv
import sqlite3
import re
root = Tk()
root.geometry("1350x750+0+0")
root.title("OTRS Management System")
root.configure(background="gray28")
Tops = Frame(root, width=1350, height=100,bd=14, relief="raise")
Tops.pack(side=TOP)
f1 = Frame(root, width=900, height=650, bd=8, relief="raise")
f1.pack(side=LEFT)
f2 = Frame(root, width=440, height=650,bd=8, relief="raise")
f2.pack(side=RIGHT)
ft2 = Frame(f2, width=440, height=450,bd=12, relief="raise")
ft2.pack(side=TOP)
fb2 = Frame(f2, width=440, height=250,bd=16, relief="raise")
fb2.pack(side=BOTTOM)
f1a = Frame(f1, width=900, height=330,bd=8, relief="raise")
f1a.pack(side=TOP)
f2a = Frame(f1, width=900, height=320,bd=6, relief="raise")
f2a.pack(side=BOTTOM)
f1aa = Frame(f1a, width=400, height=330,bd=16, relief="raise")
f1aa.pack(side=LEFT)
f1ab = Frame(f1a, width=400, height=330,bd=16, relief="raise")
f1ab.pack(side=RIGHT)
f2aa = Frame(f2a, width=450, height=330,bd=14, relief="raise")
f2aa.pack(side=LEFT)
f2ab = Frame(f2a, width=450, height=330,bd=14, relief="raise")
f2ab.pack(side=LEFT)
Tops.configure(background="LightGoldenrod4")
f1.configure(background="LightGoldenrod4")
f2.configure(background="LightGoldenrod4")
field = ["YES",""]
def view_command():
list1.delete(0,END)
for row in Backend.view():
list1.insert(END,row)
def add_command():
count_total_selected = [query_text.get(),
phase_and_tower.get(), saleable_mapping.get(), floor_plans.get(), options.get(), images.get(),
cons.get(), video.get(), date.get(), amenities.get(), bank.get(), latlong.get(), usp.get(),
facttable.get(), prj_name.get(), prj_desp.get(), specification.get(), builder.get(), tco.get(),
brochure.get(), prj_deactivation.get(), np.get(), np2.get(), np_refresh.get()]
count = 0
for i in count_total_selected:
if i=="YES":
count+=1
print(count)
if str(ticket_text.get()).isdigit()== False or len(str(ticket_text.get())) < 4 or ticket_text.get()=="" or agent_text.get()=="" or queue_text.get()=="" or inventory.get()=="":
toplevel = Toplevel()
label1 = Label(toplevel, text="***If you are receiving this it means you have forgotten the below points: \n Ticket number is not entered \n Queue is not selected \n Agent Name is not selected.\n Please note if XID number is not available write NA in the BOX\n Please make sure XID number starts with r or c.", height=10, width=55)
label1.pack()
else:
Backend.insert(fdate, ticket_text.get(),agent_text.get(), query_text.get(), queue_text.get(), phase_and_tower.get(),saleable_mapping.get(),floor_plans.get(),options.get(), images.get(),cons.get(), video.get(),date.get(),amenities.get(),bank.get(),latlong.get(), usp.get(), facttable.get(),prj_name.get(),prj_desp.get(),specification.get(),builder.get(),tco.get(),brochure.get(),prj_deactivation.get(),np.get(),np2.get(), inventory.get(), np_refresh.get(), count)
list1.delete(0,END)
list1.insert(END,(fdate, ticket_text.get(),agent_text.get(), query_text.get(), queue_text.get(), phase_and_tower.get(),saleable_mapping.get(),floor_plans.get(),options.get(), images.get(),cons.get(), video.get(),date.get(),amenities.get(),bank.get(),latlong.get(), usp.get(), facttable.get(),prj_name.get(),prj_desp.get(),specification.get(),builder.get(),tco.get(),brochure.get(),prj_deactivation.get(),np.get(),np2.get(), inventory.get(), np_refresh.get(), count))
def reset():
phase_and_tower.set("")
saleable_mapping.set("")
floor_plans.set("")
options.set("")
images.set("")
video.set("")
date.set("")
amenities.set("")
prj_deactivation.set("")
inventory.set("")
np2.set("")
bank.set("")
latlong.set("")
usp.set("")
facttable.set("")
prj_name.set("")
prj_desp.set("")
specification.set("")
builder.set("")
tco.set("")
np.set("")
cons.set("")
brochure.set("")
agent_text.set("")
queue_text.set("")
np_refresh.set("")
query_text.set("")
ticket_text.set("")
def download():
conn = sqlite3.connect("OtrsSummary.db")
curs = conn.cursor()
data = curs.execute("select * from otrs")
m_dict = list(data.fetchall())
print(m_dict)
filename = "Productivity.csv"
with open("./"+filename,'w') as csvfile:
csvfile = csv.writer(csvfile, m_dict)
#csvfile.writerow(titleRow)
csvfile.writerow(["id","Date","TicketNumber","Agent","QueryReply","Queue","PhasesandTowers","SaleableMapping","Floorplan","Options","Images","ConstructionImages","video","PossessionDate","Amenities","Bank","Location","USP","FactTable","ProjectName","Description","Specificaton","Builder","TCO","Brochure","ProjectDeactivation","NPDeactivation","NewBooking","XID Number","np_refresh","Total"])
for i in range(0, len( m_dict )):
#print(alldata1[i])
csvfile.writerow( m_dict[i] )
localtime = time.asctime(time.localtime(time.time()))
fdate = date.today()
lblInfo = Label(Tops, font=("arial", 30, "bold"), text="OTRS Management System", fg="SteelBlue4", bd=10)
lblInfo.grid(row=0, column=0)
lblInfo = Label(Tops, font=("arial", 30, "bold"), text=localtime, fg="IndianRed1",bd=10)
lblInfo.grid(row=0, column=1)
#===============================All Functions===================
#===========================#first part=======================
phase_and_tower = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Phases and Tower", bd=8, anchor="w")
lblname2.grid(row=1, column=0, sticky=W)
txtname1 = OptionMenu(f1aa, phase_and_tower, *field)
txtname1.grid(row=1, column=1, sticky=W)
saleable_mapping = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Saleable Mapping", bd=8, anchor="w")
lblname2.grid(row=2, column=0, sticky=W)
txtname2 = OptionMenu(f1aa, saleable_mapping, *field)
txtname2.grid(row=2, column=1, sticky=W)
floor_plans = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Floor Plan", bd=8, anchor="w")
lblname2.grid(row=3, column=0, sticky=W)
txtname3 = OptionMenu(f1aa, floor_plans, *field)
txtname3.grid(row=3, column=1, sticky=W)
options = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Options", bd=8, anchor="w")
lblname2.grid(row=4, column=0, sticky=W)
txtname4 = OptionMenu(f1aa, options, *field)
txtname4.grid(row=4, column=1, sticky=W)
images = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Images", bd=8, anchor="w")
lblname2.grid(row=5, column=0, sticky=W)
txtname5 = OptionMenu(f1aa, images, *field)
txtname5.grid(row=5, column=1, sticky=W)
video = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Video", bd=8, anchor="w")
lblname2.grid(row=6, column=0, sticky=W)
txtname6 = OptionMenu(f1aa, video, *field)
txtname6.grid(row=6, column=1, sticky=W)
##rera = StringVar()
##lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Rera", bd=8, anchor="w")
##lblname2.grid(row=7, column=0, sticky=W)
##txtname7 = Entry(f1aa, font=("arial", 10, "bold"), bd=8, justify="left", textvariable=rera)
##txtname7.grid(row=7, column=1, sticky=W)
date = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Possession Status/Date", bd=8, anchor="w")
lblname2.grid(row=8, column=0, sticky=W)
txtname8 = OptionMenu(f1aa, date, *field)
txtname8.grid(row=8, column=1, sticky=W)
amenities = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Amenities", bd=8, anchor="w")
lblname2.grid(row=9, column=0, sticky=W)
txtname9 = OptionMenu(f1aa, amenities, *field)
txtname9.grid(row=9, column=1, sticky=W)
prj_deactivation = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="Project Deactivation", bd=8, anchor="w")
lblname2.grid(row=10, column=0, sticky=W)
txtname10 = OptionMenu(f1aa, prj_deactivation, *field)
txtname10.grid(row=10, column=1, sticky=W)
inventory = StringVar()
lblname2 = Label(f2ab, font=("arial", 10, "bold"), text="XID Number", bd=8, anchor="w")
lblname2.grid(row=1, column=1, sticky=W)
txtname11 = Entry(f2ab, font=("arial", 10, "bold"), bd=8, justify="left", textvariable=inventory)
txtname11.grid(row=1, column=2, sticky=W)
np2 = StringVar()
lblname2 = Label(f1aa, font=("arial", 10, "bold"), text="New Booking/Resale Lock", bd=8, anchor="w")
lblname2.grid(row=12, column=0, sticky=W)
txtname12 = OptionMenu(f1aa, np2, *field)
txtname12.grid(row=12, column=1, sticky=W)
query_text = StringVar()
lblname = Label(f1aa, font=("arial", 10, "bold"), text="Query/Reply", bd=8, anchor="w")
lblname.grid(row=0, column=0, sticky=W)
txtname28 = OptionMenu(f1aa, query_text, *field)
txtname28.grid(row=0, column=1, sticky=W)
hidden = False
hidden_text = StringVar()
e = Entry(f1aa, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = hidden_text)
e.grid(row=0, column=2)
if query_text == "YES":
e.grid()
else:
e.grid_remove()
#hidden = not hidden
#######################################part2=====================
bank = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Bank", bd=8, anchor="w")
lblname2.grid(row=1, column=0, sticky=W)
txtname13 = OptionMenu(f1ab, bank, *field)
txtname13.grid(row=1, column=1, sticky=W)
latlong = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Lat Long/Location", bd=8, anchor="w")
lblname2.grid(row=2, column=0, sticky=W)
txtname14 = OptionMenu(f1ab, latlong, *field)
txtname14.grid(row=2, column=1, sticky=W)
usp = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="USP", bd=8, anchor="w")
lblname2.grid(row=3, column=0, sticky=W)
txtname15 = OptionMenu(f1ab, usp, *field)
txtname15.grid(row=3, column=1, sticky=W)
facttable = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Fact Table", bd=8, anchor="w")
lblname2.grid(row=4, column=0, sticky=W)
txtname16 = OptionMenu(f1ab, facttable, *field)
txtname16.grid(row=4, column=1, sticky=W)
prj_name = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Project Name", bd=8, anchor="w")
lblname2.grid(row=5, column=0, sticky=W)
txtname17 = OptionMenu(f1ab, prj_name, *field)
txtname17.grid(row=5, column=1, sticky=W)
prj_desp = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Project Description", bd=8, anchor="w")
lblname2.grid(row=6, column=0, sticky=W)
txtname18 = OptionMenu(f1ab, prj_desp, *field)
txtname18.grid(row=6, column=1, sticky=W)
specification = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Project Specification", bd=8, anchor="w")
lblname2.grid(row=7, column=0, sticky=W)
txtname19 = OptionMenu(f1ab, specification, *field)
txtname19.grid(row=7, column=1, sticky=W)
builder = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Builer Details", bd=8, anchor="w")
lblname2.grid(row=8, column=0, sticky=W)
txtname20 = OptionMenu(f1ab, builder, *field)
txtname20.grid(row=8, column=1, sticky=W)
tco = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="TCO/Payment Plan", bd=8, anchor="w")
lblname2.grid(row=9, column=0, sticky=W)
txtname21 = OptionMenu(f1ab, tco, *field)
txtname21.grid(row=9, column=1, sticky=W)
np = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="NP Deactivation", bd=8, anchor="w")
lblname2.grid(row=10, column=0, sticky=W)
txtname22 = OptionMenu(f1ab, np, *field)
txtname22.grid(row=10, column=1, sticky=W)
cons = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Construction Images", bd=8, anchor="w")
lblname2.grid(row=11, column=0, sticky=W)
txtname23 = OptionMenu(f1ab, cons, *field)
txtname23.grid(row=11, column=1, sticky=W)
brochure = StringVar()
lblname2 = Label(f1ab, font=("arial", 10, "bold"), text="Brochure", bd=8, anchor="w")
lblname2.grid(row=12, column=0, sticky=W)
txtname24 = OptionMenu(f1ab, brochure, *field)
txtname24.grid(row=12, column=1, sticky=W)
###======EntryWidget for checkboxes=======
#==================for Reset======================
list1=Listbox(ft2, height=22,width=59)
list1.grid(row=2,column=0,rowspan=6,columnspan=2)
sb1=Scrollbar(ft2)
sb1.grid(row=2,column=2,rowspan=6)
list1.configure(yscrollcommand=sb1.set)
sb1.configure(command=list1.yview)
list1.bind('<<ListboxSelect>>')
lblreceipt = Label(ft2, font=("arial", 12, "bold"), text="View Data", bd=2, anchor="w")
lblreceipt.grid(row=1, column=0, sticky=W)
##txtReceipt = Text(ft2, width=59, height=22, bg="white", bd=8, font=("arial", 11, "bold"))
##txtReceipt.grid(row=2, column=0)
##########buttons########################
btnReset = Button(fb2, padx=16,pady=1,bd=4, fg="black", font=("arial", 8, "bold"),width=5,
text="Reset", command=reset).grid(row=0, column=1)
btnSubmit = Button(fb2, padx=16, pady=1, bd=4, fg="black", font=("arial", 8, "bold"),width=5,
text="Submit", command=add_command).grid(row=0, column=2)
btnExit = Button(fb2, padx=16, pady=1, bd=4, fg="black", font=("arial", 8, "bold"),width=5,
text="Exit", command=root.destroy).grid(row=0, column=4)
btnview = Button(fb2, padx=16, pady=1, bd=4, fg="black", font=("arial", 8, "bold"),width=5,
text="View Data", command=view_command).grid(row=0, column=3)
download = Button(fb2, padx=16, pady=1, bd=4, fg="black", font=("arial", 8, "bold"),width=5,
text="Download Data", command=download).grid(row=1, column=1)
########################################################################################
ticket_text = StringVar()
lblname2 = Label(f2aa, font=("arial", 10, "bold"), text="Ticket Number", bd=8, anchor="w")
lblname2.grid(row=1, column=0, sticky=W)
txtname25 = Entry(f2aa, font=("arial", 10, "bold"), bd=8, justify="left", textvariable=ticket_text)
txtname25.grid(row=1, column=1, sticky=W)
##xid_text = StringVar()
##lblname3 = Label(f2aa, font=("arial", 10, "bold"), text="XID/TID", bd=8, anchor="w")
##lblname3.grid(row=2, column=0, sticky=W)
##txtname26 = Entry(f2aa, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = xid_text)
##txtname26.grid(row=2, column=1, sticky=W)
agents = ["Himani",
"Jhanvi",
"Sandhya",
"Juhi",
"Ruchika",
"Saurabh",
"Neha R",
"Shubhangi",
"Alisha",
"Priya S",
"Khushbu",
"Gaurav",
"Manisha",
"Anjali S",
"Sneha",
"Priyadeep",
"Anjali B",
"Rashi",
"Palak",
"Shivangi",
"Khyati",
"Alok",
"Vikas",
"Tariq",
"Vinay",
"Nupur",
"Mansi"]
agent_text = StringVar()
lblname4 = Label(f2aa, font=("arial", 10, "bold"), text="Agents Name", bd=8, anchor="w")
lblname4.grid(row=3, column=0, sticky=W)
txtname27 = OptionMenu(f2aa, agent_text, *agents)
txtname27.grid(row=3, column=1, sticky=W)
field1 = ["UPGRADES", "CREATION", "MODIFICATION"]
queue_text = StringVar()
lblname2 = Label(f2ab, font=("arial", 10, "bold"), text="Queue", bd=8, anchor="w")
lblname2.grid(row=0, column=1, sticky=W)
txtname29 = OptionMenu(f2ab, queue_text, *field1)
txtname29.grid(row=0, column=2, sticky=W)
np_refresh = StringVar()
lblname31 = Label(f1aa, font=("arial", 10, "bold"), text="NP Slot changes/Refresh", bd=8, anchor="w")
lblname31.grid(row=11, column=0, sticky=W)
txtname31 = OptionMenu(f1aa, np_refresh, *field)
txtname31.grid(row=11, column=1, sticky=W)
##sales_text = StringVar()
##lblname3 = Label(f2ab, font=("arial", 10, "bold"), text="Sales Name", bd=8, anchor="w")
##lblname3.grid(row=2, column=0, sticky=W)
##txtname30 = Entry(f2ab, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = sales_text)
##txtname30.grid(row=2, column=1, sticky=W)
##slot = StringVar()
##lblname2 = Label(f2ab, font=("arial",10,"bold"), text="NP Slot", bd=8, anchor="w")
##lblname2.grid(row=0, column=3, sticky=W)
##txtname31 = Entry(f2ab, font=("arial", 10, "bold"), bd=8, justify="left", textvariable=slot)
##txtname31.grid(row=0, column=4, sticky=W)
##city = StringVar()
##lblname5 = Label(f2ab, font=("arial", 10, "bold"), text="Main City", bd=8, anchor="w")
##lblname5.grid(row=1, column=3, sticky=W)
##txtname32 = Entry(f2ab, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = city)
##txtname32.grid(row=1, column=4, sticky=W)
##comments = StringVar()
##lblname6 = Label(f2ab, font=("arial", 10, "bold"), text="Comments", bd=8, anchor="w")
##lblname6.grid(row=2, column=3, sticky=W)
##txtname33 = Entry(f2ab, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = comments)
##txtname33.grid(row=2, column=4, sticky=W)
##############====connecting db with fromntend====
root.mainloop()
I have added full codes
You have to make sure that the logic to show or hide the Entry box is executed every time the OptionMenu selection is changed. You can do this by putting it in a function and using the OptionMenu's command parameter:
from tkinter import *
root = Tk()
def hide(choice):
if choice == "YES":
e.grid()
else:
e.grid_remove()
field = ["YES",""]
query_text = StringVar()
lblname = Label(root, font=("arial", 10, "bold"), text="Query/Reply", bd=8, anchor="w")
lblname.grid(row=0, column=0, sticky=W)
txtname28 = OptionMenu(root, query_text, *field, command=hide)
txtname28.grid(row=0, column=1, sticky=W)
hidden_text = StringVar()
hidden_text.set('Show this text?')
e = Entry(root, font=("arial", 10, "bold"), bd=8, justify="left", textvariable = hidden_text)
e.grid(row=0, column=2)
root.mainloop()
What you want to do is replace your root.mainloop() with a custom loop you made yourself that incorporated your if statement in it. As you have it right now, that is statement is only going to be called once, and that's before you GUI even becomes operational. Instead of checking to see if the value has changed just once at the beginning, to need to make it keep checking all the time.
Checking when things are happening all the time is what root.mainloop() does, but what you need is beyond what root.mainloop() does. So what you need is a loop you made yourself (as I was saying above) that can check when the value has changed and update the GUI accordingly.
In your loop, you'll need to also make sure that your GUI is still responding manually. This is usually done by root.mainloop(), but since you need to replace it, you need to do it yourself. There are a bunch of ways to do this, but start off by looking into root.update() and putting that in your own loop.
EDIT: Actually, have you considered using a check box instead of a drop down menu? You can attack a function to it and make it show or hide the widget when you press it. Also you should consider enabling and disabling the widget rather than hiding or showing it. This will mean less problem with the layout
Please let me know the problem in the code that I implemented.
Problem Statement: There are n nodes and m colors to be filled in a Graph g. Assign colors to the nodes such that no two adjacent nodes have same colors and try to evenly distribute the colors among the nodes.
Approach: I am using dfs along with greedy algorithm(to evenly distribute)
Variables: $G is graph of the form: {v1: [v2, v3, v4], v2: [v4, v8], ...};
vertex is the starting vertex of the graph; visited_arr or adj_visited_arr is hash of the form: {v1: "1", v2: "2", ...} where "1", "2", ..., "6" are colors; frequency is hash which keeps the count of the number of times the color has been used in the graph so far. eg.: {"1": 5, "2": 6, "3": 8, ...}
Code:
def dfs(vertex, original_visited_arr, frequency)
#original_visited_arr is passed as reference
visited_arr = original_visited_arr.clone
#sorting colors frequency for evenly distribution
frequency = frequency.sort_by {|k, v| v}.to_h
used_colors = []
$G[vertex].each do |adj_vertex|
used_colors << visited_arr[adj_vertex]
end
#checking the colors which can be used (total colors-colors used by adjacent nodes)
available_colors = frequency.keys-used_colors
#if there is no color available to be filled in the node, backtrack!
if available_colors.length==0
return nil
end
#iterate through the available colors to check which one solves the problem
available_colors.each do |color|
visited_arr[vertex] = color
frequency[color]+=1
res = true
#use recursion over each node that is adjacent to the current node
$G[vertex].each do |adj_vertex|
if visited_arr[adj_vertex]=="0"
adj_vertex_visited_arr = dfs(adj_vertex, visited_arr, frequency)
if !adj_vertex_visited_arr
res=false
break
end
visited_arr=adj_vertex_visited_arr
end
end
if res
return visited_arr
end
frequency[color]-=1
visited_arr[vertex] = "0"
end
return nil
end
visited_arr = {}
frequency = {"1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0}
visited_arr = dfs(vertex, visited_arr, frequency)
Values:
vertex="TRIP-10065"
vertices=["TRIP-10065", "TRIP-10066", "TRIP-10067", "TRIP-10068", "TRIP-10069", "TRIP-10070", "TRIP-10071", "TRIP-10072", "TRIP-10073", "TRIP-10074", "TRIP-10075", "TRIP-10076", "TRIP-10077", "TRIP-10078", "TRIP-10079", "TRIP-10080", "TRIP-10081", "TRIP-10082", "TRIP-10083", "TRIP-10084", "TRIP-10085", "TRIP-10086", "TRIP-10087", "TRIP-10088", "TRIP-10089", "TRIP-10090", "TRIP-10091", "TRIP-10092", "TRIP-10093", "TRIP-10094", "TRIP-10095", "TRIP-10096", "TRIP-10097", "TRIP-10098", "TRIP-10099", "TRIP-10100", "TRIP-10101", "TRIP-10102", "TRIP-10103", "TRIP-10104", "TRIP-10105", "TRIP-10106", "TRIP-10107", "TRIP-10108", "TRIP-10109", "TRIP-10110", "TRIP-10111", "TRIP-10112", "TRIP-10113", "TRIP-10114", "TRIP-10115", "TRIP-10116", "TRIP-10117", "TRIP-10118", "TRIP-10119", "TRIP-10120", "TRIP-10121", "TRIP-10122", "TRIP-10123", "TRIP-10124", "TRIP-10125", "TRIP-10126", "TRIP-10127", "TRIP-10128", "TRIP-10129", "TRIP-10130", "TRIP-10131", "TRIP-10132", "TRIP-10133", "TRIP-10134", "TRIP-10135", "TRIP-10136", "TRIP-10137", "TRIP-10138", "TRIP-10139", "TRIP-10140", "TRIP-10141", "TRIP-10142", "TRIP-10143", "TRIP-10144", "TRIP-10145", "TRIP-10146", "TRIP-10147", "TRIP-10148", "TRIP-10149", "TRIP-10150", "TRIP-10151", "TRIP-10152", "TRIP-10153", "TRIP-10154", "TRIP-10155", "TRIP-10156", "TRIP-10157", "TRIP-10158", "TRIP-10159", "TRIP-10160", "TRIP-10161", "TRIP-10162", "TRIP-10163", "TRIP-10164", "TRIP-10165", "TRIP-10166", "TRIP-10167", "TRIP-10168", "TRIP-10169", "TRIP-10170", "TRIP-10171", "TRIP-10172", "TRIP-10173", "TRIP-10174", "TRIP-10175", "TRIP-10176", "TRIP-10177", "TRIP-10178", "TRIP-10179", "TRIP-10180", "TRIP-10181", "TRIP-10182", "TRIP-10183", "TRIP-10184", "TRIP-10185", "TRIP-10186", "TRIP-10187"]
$G={"TRIP-10122"=>["TRIP-10157", "TRIP-10158", "TRIP-10168", "TRIP-10159", "TRIP-10169", "TRIP-10178", "TRIP-10179"], "TRIP-10091"=>["TRIP-10111", "TRIP-10148", "TRIP-10141", "TRIP-10139", "TRIP-10147", "TRIP-10088", "TRIP-10089"], "TRIP-10119"=>["TRIP-10168", "TRIP-10167", "TRIP-10155", "TRIP-10178", "TRIP-10157", "TRIP-10176", "TRIP-10179"], "TRIP-10118"=>["TRIP-10167", "TRIP-10168", "TRIP-10155", "TRIP-10176", "TRIP-10157", "TRIP-10178", "TRIP-10177"], "TRIP-10125"=>["TRIP-10169", "TRIP-10170", "TRIP-10171", "TRIP-10158", "TRIP-10180", "TRIP-10181", "TRIP-10156"], "TRIP-10097"=>["TRIP-10112", "TRIP-10148", "TRIP-10142", "TRIP-10150", "TRIP-10089", "TRIP-10149", "TRIP-10140"], "TRIP-10136"=>["TRIP-10153", "TRIP-10184", "TRIP-10165", "TRIP-10183", "TRIP-10175", "TRIP-10185", "TRIP-10173"], "TRIP-10130"=>["TRIP-10164", "TRIP-10171", "TRIP-10183", "TRIP-10172", "TRIP-10163", "TRIP-10184", "TRIP-10186"], "TRIP-10068"=>["TRIP-10070", "TRIP-10067", "TRIP-10069", "TRIP-10086", "TRIP-10083", "TRIP-10074", "TRIP-10087"], "TRIP-10094"=>["TRIP-10112", "TRIP-10141", "TRIP-10149", "TRIP-10140", "TRIP-10114", "TRIP-10142", "TRIP-10151"], "TRIP-10067"=>["TRIP-10086", "TRIP-10069", "TRIP-10068", "TRIP-10070", "TRIP-10071", "TRIP-10072", "TRIP-10073"], "TRIP-10103"=>["TRIP-10116", "TRIP-10144", "TRIP-10151", "TRIP-10152", "TRIP-10177", "TRIP-10176", "TRIP-10114"], "TRIP-10088"=>["TRIP-10082", "TRIP-10139", "TRIP-10084", "TRIP-10086", "TRIP-10091", "TRIP-10111", "TRIP-10087"], "TRIP-10144"=>["TRIP-10103", "TRIP-10151", "TRIP-10152", "TRIP-10102", "TRIP-10104", "TRIP-10114", "TRIP-10116"], "TRIP-10073"=>["TRIP-10072", "TRIP-10071", "TRIP-10066", "TRIP-10074", "TRIP-10078", "TRIP-10083", "TRIP-10067"], "TRIP-10137"=>["TRIP-10138", "TRIP-10065", "TRIP-10145", "TRIP-10175", "TRIP-10107", "TRIP-10090", "TRIP-10101"], "TRIP-10072"=>["TRIP-10078", "TRIP-10073", "TRIP-10071", "TRIP-10066", "TRIP-10074", "TRIP-10083", "TRIP-10067"], "TRIP-10128"=>["TRIP-10160", "TRIP-10182", "TRIP-10161", "TRIP-10181", "TRIP-10170", "TRIP-10171", "TRIP-10184", "TRIP-10172", "TRIP-10109", "TRIP-10158", "TRIP-10110", "TRIP-10183"], "TRIP-10158"=>["TRIP-10126", "TRIP-10122", "TRIP-10180", "TRIP-10125", "TRIP-10181", "TRIP-10168", "TRIP-10124", "TRIP-10179", "TRIP-10170", "TRIP-10169", "TRIP-10128", "TRIP-10171"], "TRIP-10092"=>["TRIP-10141", "TRIP-10112", "TRIP-10139", "TRIP-10148", "TRIP-10089", "TRIP-10147", "TRIP-10132", "TRIP-10160", "TRIP-10140", "TRIP-10111", "TRIP-10114", "TRIP-10142"], "TRIP-10161"=>["TRIP-10127", "TRIP-10184", "TRIP-10181", "TRIP-10128", "TRIP-10108", "TRIP-10120", "TRIP-10110", "TRIP-10145", "TRIP-10183", "TRIP-10171", "TRIP-10182", "TRIP-10172"], "TRIP-10153"=>["TRIP-10185", "TRIP-10146", "TRIP-10127", "TRIP-10145", "TRIP-10136", "TRIP-10184", "TRIP-10107", "TRIP-10138", "TRIP-10110", "TRIP-10175", "TRIP-10129", "TRIP-10173"], "TRIP-10083"=>["TRIP-10082", "TRIP-10085", "TRIP-10068", "TRIP-10086", "TRIP-10070", "TRIP-10084", "TRIP-10076", "TRIP-10081", "TRIP-10072", "TRIP-10073", "TRIP-10078", "TRIP-10069"], "TRIP-10112"=>["TRIP-10094", "TRIP-10097", "TRIP-10092", "TRIP-10140", "TRIP-10149", "TRIP-10089", "TRIP-10150", "TRIP-10096", "TRIP-10148", "TRIP-10093", "TRIP-10139", "TRIP-10142"], "TRIP-10173"=>["TRIP-10131", "TRIP-10165", "TRIP-10133", "TRIP-10134", "TRIP-10132", "TRIP-10162", "TRIP-10127", "TRIP-10182", "TRIP-10185", "TRIP-10184", "TRIP-10136", "TRIP-10153"], "TRIP-10168"=>["TRIP-10121", "TRIP-10119", "TRIP-10118", "TRIP-10120", "TRIP-10157", "TRIP-10122", "TRIP-10158", "TRIP-10178", "TRIP-10176", "TRIP-10156", "TRIP-10179", "TRIP-10155"], "TRIP-10116"=>["TRIP-10104", "TRIP-10103", "TRIP-10109", "TRIP-10155", "TRIP-10152", "TRIP-10176", "TRIP-10177", "TRIP-10154", "TRIP-10178", "TRIP-10106", "TRIP-10144", "TRIP-10179"], "TRIP-10070"=>["TRIP-10068", "TRIP-10079", "TRIP-10080", "TRIP-10067", "TRIP-10069", "TRIP-10086", "TRIP-10083", "TRIP-10084", "TRIP-10074", "TRIP-10078", "TRIP-10087", "TRIP-10085"], "TRIP-10114"=>["TRIP-10096", "TRIP-10099", "TRIP-10151", "TRIP-10144", "TRIP-10102", "TRIP-10143", "TRIP-10103", "TRIP-10152", "TRIP-10094", "TRIP-10142", "TRIP-10092", "TRIP-10148"], "TRIP-10181"=>["TRIP-10161", "TRIP-10126", "TRIP-10160", "TRIP-10124", "TRIP-10125", "TRIP-10158", "TRIP-10128", "TRIP-10170", "TRIP-10171", "TRIP-10100", "TRIP-10120", "TRIP-10156"], "TRIP-10148"=>["TRIP-10142", "TRIP-10139", "TRIP-10097", "TRIP-10091", "TRIP-10092", "TRIP-10089", "TRIP-10093", "TRIP-10096", "TRIP-10112", "TRIP-10111", "TRIP-10113", "TRIP-10114"], "TRIP-10167"=>["TRIP-10118", "TRIP-10155", "TRIP-10119", "TRIP-10117", "TRIP-10154", "TRIP-10157", "TRIP-10176", "TRIP-10123", "TRIP-10160", "TRIP-10177", "TRIP-10179", "TRIP-10178"], "TRIP-10157"=>["TRIP-10122", "TRIP-10178", "TRIP-10106", "TRIP-10176", "TRIP-10118", "TRIP-10121", "TRIP-10179", "TRIP-10168", "TRIP-10119", "TRIP-10167", "TRIP-10169", "TRIP-10177"], "TRIP-10139"=>["TRIP-10148", "TRIP-10088", "TRIP-10149", "TRIP-10147", "TRIP-10092", "TRIP-10087", "TRIP-10086", "TRIP-10093", "TRIP-10091", "TRIP-10096", "TRIP-10112", "TRIP-10111"], "TRIP-10155"=>["TRIP-10167", "TRIP-10176", "TRIP-10179", "TRIP-10106", "TRIP-10117", "TRIP-10118", "TRIP-10119", "TRIP-10178", "TRIP-10177", "TRIP-10109", "TRIP-10116", "TRIP-10168"], "TRIP-10145"=>["TRIP-10127", "TRIP-10153", "TRIP-10108", "TRIP-10163", "TRIP-10161", "TRIP-10137", "TRIP-10175", "TRIP-10105", "TRIP-10146", "TRIP-10110", "TRIP-10115", "TRIP-10106"], "TRIP-10163"=>["TRIP-10115", "TRIP-10183", "TRIP-10108", "TRIP-10145", "TRIP-10129", "TRIP-10172", "TRIP-10130", "TRIP-10184", "TRIP-10105", "TRIP-10175", "TRIP-10106", "TRIP-10127"], "TRIP-10111"=>["TRIP-10091", "TRIP-10088", "TRIP-10141", "TRIP-10089", "TRIP-10147", "TRIP-10087", "TRIP-10139", "TRIP-10148", "TRIP-10093", "TRIP-10092"], "TRIP-10117"=>["TRIP-10106", "TRIP-10109", "TRIP-10155", "TRIP-10156", "TRIP-10179", "TRIP-10177", "TRIP-10167", "TRIP-10154", "TRIP-10178", "TRIP-10176"], "TRIP-10132"=>["TRIP-10106", "TRIP-10174", "TRIP-10162", "TRIP-10182", "TRIP-10160", "TRIP-10092", "TRIP-10173", "TRIP-10172", "TRIP-10100", "TRIP-10166"], "TRIP-10134"=>["TRIP-10165", "TRIP-10164", "TRIP-10174", "TRIP-10166", "TRIP-10185", "TRIP-10173", "TRIP-10183", "TRIP-10184", "TRIP-10186", "TRIP-10172"], "TRIP-10087"=>["TRIP-10086", "TRIP-10089", "TRIP-10147", "TRIP-10139", "TRIP-10088", "TRIP-10111", "TRIP-10068", "TRIP-10070", "TRIP-10082", "TRIP-10084"], "TRIP-10156"=>["TRIP-10180", "TRIP-10179", "TRIP-10121", "TRIP-10117", "TRIP-10125", "TRIP-10169", "TRIP-10100", "TRIP-10120", "TRIP-10181", "TRIP-10168"], "TRIP-10129"=>["TRIP-10105", "TRIP-10163", "TRIP-10172", "TRIP-10165", "TRIP-10175", "TRIP-10164", "TRIP-10183", "TRIP-10153", "TRIP-10185", "TRIP-10110"], "TRIP-10085"=>["TRIP-10081", "TRIP-10089", "TRIP-10076", "TRIP-10082", "TRIP-10083", "TRIP-10078", "TRIP-10084", "TRIP-10080", "TRIP-10070", "TRIP-10066"], "TRIP-10082"=>["TRIP-10088", "TRIP-10084", "TRIP-10083", "TRIP-10085", "TRIP-10086", "TRIP-10077", "TRIP-10079", "TRIP-10069", "TRIP-10087", "TRIP-10078"], "TRIP-10140"=>["TRIP-10149", "TRIP-10112", "TRIP-10094", "TRIP-10093", "TRIP-10113", "TRIP-10092", "TRIP-10097", "TRIP-10150", "TRIP-10096", "TRIP-10147"], "TRIP-10076"=>["TRIP-10075", "TRIP-10085", "TRIP-10074", "TRIP-10078", "TRIP-10071", "TRIP-10083", "TRIP-10080", "TRIP-10175", "TRIP-10084", "TRIP-10066"], "TRIP-10121"=>["TRIP-10168", "TRIP-10156", "TRIP-10179", "TRIP-10157", "TRIP-10169"], "TRIP-10098"=>["TRIP-10143", "TRIP-10113", "TRIP-10150", "TRIP-10141", "TRIP-10142"], "TRIP-10107"=>["TRIP-10131", "TRIP-10138", "TRIP-10153", "TRIP-10137", "TRIP-10090"], "TRIP-10133"=>["TRIP-10175", "TRIP-10162", "TRIP-10173", "TRIP-10182", "TRIP-10174"], "TRIP-10099"=>["TRIP-10143", "TRIP-10114", "TRIP-10151", "TRIP-10113", "TRIP-10141", "TRIP-10150"], "TRIP-10108"=>["TRIP-10115", "TRIP-10145", "TRIP-10163", "TRIP-10120", "TRIP-10161", "TRIP-10127"], "TRIP-10104"=>["TRIP-10116", "TRIP-10177", "TRIP-10152", "TRIP-10144", "TRIP-10154", "TRIP-10178"], "TRIP-10100"=>["TRIP-10120", "TRIP-10156", "TRIP-10181", "TRIP-10132", "TRIP-10166", "TRIP-10182"], "TRIP-10090"=>["TRIP-10065", "TRIP-10101", "TRIP-10110", "TRIP-10107", "TRIP-10137", "TRIP-10138"], "TRIP-10186"=>["TRIP-10135", "TRIP-10174", "TRIP-10130", "TRIP-10172", "TRIP-10134", "TRIP-10166"], "TRIP-10066"=>["TRIP-10071", "TRIP-10072", "TRIP-10073", "TRIP-10076", "TRIP-10078", "TRIP-10085"], "TRIP-10138"=>["TRIP-10137", "TRIP-10065", "TRIP-10107", "TRIP-10153", "TRIP-10090", "TRIP-10101"], "TRIP-10126"=>["TRIP-10158", "TRIP-10160", "TRIP-10181", "TRIP-10171"], "TRIP-10146"=>["TRIP-10153", "TRIP-10185", "TRIP-10145", "TRIP-10110"], "TRIP-10101"=>["TRIP-10090", "TRIP-10071", "TRIP-10137", "TRIP-10138"], "TRIP-10135"=>["TRIP-10186", "TRIP-10174", "TRIP-10166", "TRIP-10185"], "TRIP-10102"=>["TRIP-10143", "TRIP-10151", "TRIP-10144", "TRIP-10114"], "TRIP-10077"=>["TRIP-10079", "TRIP-10078", "TRIP-10082", "TRIP-10069"], "TRIP-10141"=>["TRIP-10092", "TRIP-10149", "TRIP-10150", "TRIP-10091", "TRIP-10093", "TRIP-10147", "TRIP-10187", "TRIP-10094", "TRIP-10098", "TRIP-10099", "TRIP-10113", "TRIP-10096", "TRIP-10111"], "TRIP-10096"=>["TRIP-10114", "TRIP-10142", "TRIP-10150", "TRIP-10113", "TRIP-10141", "TRIP-10143", "TRIP-10089", "TRIP-10112", "TRIP-10148", "TRIP-10139", "TRIP-10149", "TRIP-10140", "TRIP-10151"], "TRIP-10113"=>["TRIP-10098", "TRIP-10142", "TRIP-10150", "TRIP-10099", "TRIP-10141", "TRIP-10093", "TRIP-10140", "TRIP-10096", "TRIP-10143", "TRIP-10095", "TRIP-10149", "TRIP-10148", "TRIP-10147"], "TRIP-10171"=>["TRIP-10130", "TRIP-10124", "TRIP-10125", "TRIP-10123", "TRIP-10160", "TRIP-10181", "TRIP-10128", "TRIP-10161", "TRIP-10182", "TRIP-10184", "TRIP-10120", "TRIP-10126", "TRIP-10158"], "TRIP-10089"=>["TRIP-10187", "TRIP-10085", "TRIP-10087", "TRIP-10147", "TRIP-10092", "TRIP-10097", "TRIP-10148", "TRIP-10112", "TRIP-10149", "TRIP-10093", "TRIP-10091", "TRIP-10111", "TRIP-10096"], "TRIP-10177"=>["TRIP-10104", "TRIP-10106", "TRIP-10152", "TRIP-10103", "TRIP-10117", "TRIP-10155", "TRIP-10154", "TRIP-10116", "TRIP-10123", "TRIP-10160", "TRIP-10167", "TRIP-10118", "TRIP-10157"], "TRIP-10182"=>["TRIP-10133", "TRIP-10162", "TRIP-10132", "TRIP-10128", "TRIP-10160", "TRIP-10174", "TRIP-10173", "TRIP-10161", "TRIP-10171", "TRIP-10172", "TRIP-10109", "TRIP-10100", "TRIP-10166"], "TRIP-10095"=>["TRIP-10142", "TRIP-10150", "TRIP-10113"], "TRIP-10065"=>["TRIP-10090", "TRIP-10137", "TRIP-10138"], "TRIP-10187"=>["TRIP-10089", "TRIP-10141", "TRIP-10147"], "TRIP-10124"=>["TRIP-10170", "TRIP-10171", "TRIP-10160", "TRIP-10181", "TRIP-10158", "TRIP-10180", "TRIP-10106", "TRIP-10176"], "TRIP-10143"=>["TRIP-10098", "TRIP-10099", "TRIP-10150", "TRIP-10102", "TRIP-10151", "TRIP-10096", "TRIP-10113", "TRIP-10114"], "TRIP-10162"=>["TRIP-10133", "TRIP-10132", "TRIP-10131", "TRIP-10182", "TRIP-10174", "TRIP-10173", "TRIP-10172", "TRIP-10185"], "TRIP-10071"=>["TRIP-10066", "TRIP-10101", "TRIP-10072", "TRIP-10073", "TRIP-10075", "TRIP-10076", "TRIP-10175", "TRIP-10067"], "TRIP-10074"=>["TRIP-10078", "TRIP-10075", "TRIP-10076", "TRIP-10072", "TRIP-10073", "TRIP-10068", "TRIP-10070", "TRIP-10086"], "TRIP-10075"=>["TRIP-10076", "TRIP-10074", "TRIP-10078", "TRIP-10080", "TRIP-10081", "TRIP-10071", "TRIP-10084", "TRIP-10175"], "TRIP-10081"=>["TRIP-10085", "TRIP-10079", "TRIP-10078", "TRIP-10075", "TRIP-10080", "TRIP-10083", "TRIP-10084", "TRIP-10069"], "TRIP-10159"=>["TRIP-10179", "TRIP-10178", "TRIP-10123", "TRIP-10170", "TRIP-10180", "TRIP-10176", "TRIP-10169", "TRIP-10122"], "TRIP-10079"=>["TRIP-10077", "TRIP-10070", "TRIP-10081", "TRIP-10080", "TRIP-10078", "TRIP-10082", "TRIP-10069", "TRIP-10084"], "TRIP-10180"=>["TRIP-10156", "TRIP-10158", "TRIP-10125", "TRIP-10123", "TRIP-10159", "TRIP-10124", "TRIP-10170", "TRIP-10169"], "TRIP-10170"=>["TRIP-10125", "TRIP-10124", "TRIP-10123", "TRIP-10159", "TRIP-10181", "TRIP-10128", "TRIP-10158", "TRIP-10180"], "TRIP-10152"=>["TRIP-10103", "TRIP-10144", "TRIP-10106", "TRIP-10177", "TRIP-10104", "TRIP-10176", "TRIP-10116", "TRIP-10114"], "TRIP-10123"=>["TRIP-10159", "TRIP-10170", "TRIP-10160", "TRIP-10171", "TRIP-10180", "TRIP-10178", "TRIP-10176", "TRIP-10169", "TRIP-10167", "TRIP-10177", "TRIP-10179"], "TRIP-10084"=>["TRIP-10082", "TRIP-10080", "TRIP-10088", "TRIP-10070", "TRIP-10083", "TRIP-10075", "TRIP-10081", "TRIP-10085", "TRIP-10087", "TRIP-10076", "TRIP-10079"], "TRIP-10093"=>["TRIP-10142", "TRIP-10141", "TRIP-10147", "TRIP-10139", "TRIP-10148", "TRIP-10113", "TRIP-10140", "TRIP-10089", "TRIP-10112", "TRIP-10149", "TRIP-10111"], "TRIP-10174"=>["TRIP-10166", "TRIP-10135", "TRIP-10132", "TRIP-10134", "TRIP-10186", "TRIP-10133", "TRIP-10162", "TRIP-10160", "TRIP-10182", "TRIP-10185", "TRIP-10184"], "TRIP-10169"=>["TRIP-10125", "TRIP-10156", "TRIP-10123", "TRIP-10159", "TRIP-10122", "TRIP-10158", "TRIP-10179", "TRIP-10121", "TRIP-10180", "TRIP-10157", "TRIP-10178"], "TRIP-10164"=>["TRIP-10134", "TRIP-10130", "TRIP-10184", "TRIP-10110", "TRIP-10131", "TRIP-10185", "TRIP-10183", "TRIP-10172", "TRIP-10105", "TRIP-10129", "TRIP-10127"], "TRIP-10149"=>["TRIP-10140", "TRIP-10139", "TRIP-10141", "TRIP-10112", "TRIP-10094", "TRIP-10089", "TRIP-10097", "TRIP-10142", "TRIP-10093", "TRIP-10096", "TRIP-10113"], "TRIP-10150"=>["TRIP-10142", "TRIP-10143", "TRIP-10141", "TRIP-10097", "TRIP-10113", "TRIP-10098", "TRIP-10095", "TRIP-10096", "TRIP-10099", "TRIP-10112", "TRIP-10140"], "TRIP-10147"=>["TRIP-10139", "TRIP-10093", "TRIP-10141", "TRIP-10187", "TRIP-10087", "TRIP-10089", "TRIP-10092", "TRIP-10091", "TRIP-10111", "TRIP-10113", "TRIP-10140"], "TRIP-10086"=>["TRIP-10067", "TRIP-10087", "TRIP-10088", "TRIP-10139", "TRIP-10082", "TRIP-10068", "TRIP-10070", "TRIP-10083", "TRIP-10074"], "TRIP-10120"=>["TRIP-10100", "TRIP-10168", "TRIP-10108", "TRIP-10161", "TRIP-10110", "TRIP-10156", "TRIP-10181", "TRIP-10183", "TRIP-10171"], "TRIP-10115"=>["TRIP-10110", "TRIP-10108", "TRIP-10105", "TRIP-10163", "TRIP-10183", "TRIP-10165", "TRIP-10145", "TRIP-10175", "TRIP-10106"], "TRIP-10069"=>["TRIP-10067", "TRIP-10068", "TRIP-10070", "TRIP-10077", "TRIP-10079", "TRIP-10082", "TRIP-10083", "TRIP-10080", "TRIP-10081"], "TRIP-10131"=>["TRIP-10173", "TRIP-10107", "TRIP-10162", "TRIP-10164", "TRIP-10165", "TRIP-10185", "TRIP-10183", "TRIP-10172", "TRIP-10184"], "TRIP-10166"=>["TRIP-10174", "TRIP-10185", "TRIP-10135", "TRIP-10134", "TRIP-10186", "TRIP-10184", "TRIP-10100", "TRIP-10132", "TRIP-10182"], "TRIP-10105"=>["TRIP-10129", "TRIP-10165", "TRIP-10115", "TRIP-10164", "TRIP-10127", "TRIP-10145", "TRIP-10163", "TRIP-10183", "TRIP-10184"], "TRIP-10109"=>["TRIP-10154", "TRIP-10117", "TRIP-10116", "TRIP-10155", "TRIP-10178", "TRIP-10128", "TRIP-10160", "TRIP-10182", "TRIP-10179"], "TRIP-10154"=>["TRIP-10109", "TRIP-10104", "TRIP-10177", "TRIP-10117", "TRIP-10167", "TRIP-10106", "TRIP-10178", "TRIP-10116", "TRIP-10179"], "TRIP-10080"=>["TRIP-10084", "TRIP-10070", "TRIP-10079", "TRIP-10075", "TRIP-10081", "TRIP-10076", "TRIP-10078", "TRIP-10085", "TRIP-10069"], "TRIP-10151"=>["TRIP-10103", "TRIP-10144", "TRIP-10102", "TRIP-10143", "TRIP-10099", "TRIP-10114", "TRIP-10096", "TRIP-10094", "TRIP-10142"], "TRIP-10142"=>["TRIP-10148", "TRIP-10093", "TRIP-10150", "TRIP-10097", "TRIP-10113", "TRIP-10095", "TRIP-10096", "TRIP-10098", "TRIP-10149", "TRIP-10112", "TRIP-10094", "TRIP-10114", "TRIP-10151", "TRIP-10092"], "TRIP-10078"=>["TRIP-10077", "TRIP-10072", "TRIP-10074", "TRIP-10079", "TRIP-10081", "TRIP-10075", "TRIP-10076", "TRIP-10080", "TRIP-10073", "TRIP-10083", "TRIP-10070", "TRIP-10085", "TRIP-10082", "TRIP-10066"], "TRIP-10106"=>["TRIP-10117", "TRIP-10132", "TRIP-10152", "TRIP-10177", "TRIP-10155", "TRIP-10157", "TRIP-10176", "TRIP-10154", "TRIP-10115", "TRIP-10145", "TRIP-10163", "TRIP-10124", "TRIP-10160", "TRIP-10116"], "TRIP-10165"=>["TRIP-10134", "TRIP-10184", "TRIP-10105", "TRIP-10173", "TRIP-10131", "TRIP-10185", "TRIP-10136", "TRIP-10183", "TRIP-10129", "TRIP-10175", "TRIP-10110", "TRIP-10115", "TRIP-10127", "TRIP-10172"], "TRIP-10110"=>["TRIP-10115", "TRIP-10090", "TRIP-10164", "TRIP-10165", "TRIP-10120", "TRIP-10161", "TRIP-10127", "TRIP-10145", "TRIP-10153", "TRIP-10183", "TRIP-10129", "TRIP-10128", "TRIP-10146", "TRIP-10185"], "TRIP-10127"=>["TRIP-10161", "TRIP-10172", "TRIP-10145", "TRIP-10153", "TRIP-10105", "TRIP-10164", "TRIP-10165", "TRIP-10173", "TRIP-10110", "TRIP-10175", "TRIP-10185", "TRIP-10184", "TRIP-10108", "TRIP-10163", "TRIP-10183"], "TRIP-10175"=>["TRIP-10133", "TRIP-10129", "TRIP-10165", "TRIP-10137", "TRIP-10145", "TRIP-10136", "TRIP-10153", "TRIP-10185", "TRIP-10127", "TRIP-10115", "TRIP-10163", "TRIP-10183", "TRIP-10071", "TRIP-10075", "TRIP-10076"], "TRIP-10160"=>["TRIP-10126", "TRIP-10181", "TRIP-10124", "TRIP-10123", "TRIP-10171", "TRIP-10128", "TRIP-10182", "TRIP-10132", "TRIP-10092", "TRIP-10174", "TRIP-10106", "TRIP-10176", "TRIP-10167", "TRIP-10177", "TRIP-10109"], "TRIP-10178"=>["TRIP-10159", "TRIP-10157", "TRIP-10123", "TRIP-10119", "TRIP-10155", "TRIP-10109", "TRIP-10154", "TRIP-10168", "TRIP-10122", "TRIP-10118", "TRIP-10117", "TRIP-10104", "TRIP-10116", "TRIP-10167", "TRIP-10169"], "TRIP-10176"=>["TRIP-10155", "TRIP-10106", "TRIP-10157", "TRIP-10152", "TRIP-10118", "TRIP-10103", "TRIP-10123", "TRIP-10159", "TRIP-10116", "TRIP-10119", "TRIP-10168", "TRIP-10117", "TRIP-10167", "TRIP-10124", "TRIP-10160"], "TRIP-10183"=>["TRIP-10115", "TRIP-10163", "TRIP-10130", "TRIP-10164", "TRIP-10136", "TRIP-10165", "TRIP-10134", "TRIP-10129", "TRIP-10131", "TRIP-10105", "TRIP-10110", "TRIP-10120", "TRIP-10161", "TRIP-10175", "TRIP-10128", "TRIP-10127"], "TRIP-10179"=>["TRIP-10159", "TRIP-10156", "TRIP-10155", "TRIP-10121", "TRIP-10117", "TRIP-10157", "TRIP-10122", "TRIP-10158", "TRIP-10168", "TRIP-10169", "TRIP-10119", "TRIP-10167", "TRIP-10123", "TRIP-10109", "TRIP-10116", "TRIP-10154"], "TRIP-10172"=>["TRIP-10127", "TRIP-10130", "TRIP-10164", "TRIP-10129", "TRIP-10163", "TRIP-10186", "TRIP-10131", "TRIP-10162", "TRIP-10185", "TRIP-10134", "TRIP-10165", "TRIP-10184", "TRIP-10128", "TRIP-10161", "TRIP-10132", "TRIP-10182"], "TRIP-10184"=>["TRIP-10165", "TRIP-10164", "TRIP-10161", "TRIP-10136", "TRIP-10153", "TRIP-10130", "TRIP-10163", "TRIP-10134", "TRIP-10105", "TRIP-10127", "TRIP-10172", "TRIP-10173", "TRIP-10128", "TRIP-10171", "TRIP-10166", "TRIP-10174", "TRIP-10131"], "TRIP-10185"=>["TRIP-10166", "TRIP-10153", "TRIP-10146", "TRIP-10131", "TRIP-10165", "TRIP-10164", "TRIP-10134", "TRIP-10136", "TRIP-10175", "TRIP-10127", "TRIP-10162", "TRIP-10172", "TRIP-10173", "TRIP-10135", "TRIP-10174", "TRIP-10129", "TRIP-10110"]}
With two changed lines (marked with # <--------------------) :
require_relative 'trips1' # contains $G={"TRIP-10122"=>...
def dfs(vertex, original_visited_arr, frequency)
puts "enters dfs with vertex=#{vertex}, vis arr=#{original_visited_arr}, frequency=#{frequency}"
return nil unless $G[vertex] # <--------------------
#original_visited_arr is passed as reference
visited_arr = original_visited_arr.clone
#sorting colors frequency for evenly distribution
frequency = frequency.sort_by {|k, v| v}.to_h
used_colors = []
# puts $G.keys.sort
$G[vertex].each do |adj_vertex|
puts "adj_vertex 1=#{adj_vertex}"
used_colors << visited_arr[adj_vertex]
end
puts "used_colors=#{used_colors}"
#checking the colors which can be used (total colors-colors used by adjacent nodes)
available_colors = frequency.keys - used_colors
puts "available_colors=#{available_colors}"
#if there is no color available to be filled in the node, backtrack!
if available_colors.length==0
return nil
end
#iterate through the available colors to check which one solves the problem
available_colors.each do |color|
puts "color=#{color}, visited_arr[vertex]=#{visited_arr[vertex].inspect}, vertex=#{vertex}"
visited_arr[vertex] = color
frequency[color]+=1
res = true
#use recursion over each node that is adjacent to the current node
$G[vertex].each do |adj_vertex|
puts "adj_vertex 2=#{adj_vertex}, visited_arr[adj_vertex]=#{visited_arr[adj_vertex].inspect}"
unless visited_arr[adj_vertex] # <--------------------
adj_vertex_visited_arr = dfs(adj_vertex, visited_arr, frequency)
puts "dfs returned #{adj_vertex_visited_arr.inspect}"
if ! adj_vertex_visited_arr
res=false
break
end
visited_arr = adj_vertex_visited_arr
end
end
puts "res=#{res}"
if res
puts "about to return #{visited_arr}"
return visited_arr
end
frequency[color] -= 1
visited_arr[vertex] = "0"
end
return nil
end
vertex="TRIP-10065"
visited_arr = {}
frequency = {"1" => 0, "2" => 0, "3" => 0, "4" => 0, "5" => 0, "6" => 0}
visited_arr = dfs(vertex, visited_arr, frequency)
and trips1 :
$G = {"TRIP-10065"=>["TRIP-10090", "TRIP-10137", "TRIP-10138"],
"TRIP-10090"=>["TRIP-10065", "TRIP-10101", "TRIP-10110", "TRIP-10107", "TRIP-10137", "TRIP-10138"],
"TRIP-10137"=>["TRIP-10138", "TRIP-10065", "TRIP-10145", "TRIP-10175", "TRIP-10107", "TRIP-10090", "TRIP-10101"],
"TRIP-10138"=>["TRIP-10137", "TRIP-10065", "TRIP-10107", "TRIP-10153", "TRIP-10090", "TRIP-10101"],
}
Execution :
$ ruby -w t.rb
enters dfs with vertex=TRIP-10065, vis arr={}, frequency={"1"=>0, "2"=>0, "3"=>0, "4"=>0, "5"=>0, "6"=>0}
adj_vertex 1=TRIP-10090
adj_vertex 1=TRIP-10137
adj_vertex 1=TRIP-10138
used_colors=[nil, nil, nil]
available_colors=["1", "2", "3", "4", "5", "6"]
color=1, visited_arr[vertex]=nil, vertex=TRIP-10065
adj_vertex 2=TRIP-10090, visited_arr[adj_vertex]=nil
enters dfs with vertex=TRIP-10090, vis arr={"TRIP-10065"=>"1"}, frequency={"1"=>1, "2"=>0, "3"=>0, "4"=>0, "5"=>0, "6"=>0}
adj_vertex 1=TRIP-10065
adj_vertex 1=TRIP-10101
...
available_colors=["1", "3", "4", "5", "6"]
color=1, visited_arr[vertex]=nil, vertex=TRIP-10090
...
color=3, visited_arr[vertex]="0", vertex=TRIP-10090
...
color=4, visited_arr[vertex]="0", vertex=TRIP-10090
adj_vertex 2=TRIP-10065, visited_arr[adj_vertex]="2"
adj_vertex 2=TRIP-10101, visited_arr[adj_vertex]=nil
...
color=5, visited_arr[vertex]="0", vertex=TRIP-10090
adj_vertex 2=TRIP-10065, visited_arr[adj_vertex]="2"
adj_vertex 2=TRIP-10101, visited_arr[adj_vertex]=nil
....
color=6, visited_arr[vertex]="0", vertex=TRIP-10090
adj_vertex 2=TRIP-10065, visited_arr[adj_vertex]="2"
adj_vertex 2=TRIP-10101, visited_arr[adj_vertex]=nil
enters dfs with vertex=TRIP-10101, vis arr={"TRIP-10065"=>"2", "TRIP-10090"=>"6"}, frequency={"1"=>0, "3"=>0, "4"=>0, "5"=>0, "6"=>1, "2"=>1}
dfs returned nil
res=false
dfs returned nil
res=false
...
It seems there is something wrong with iterating the colours :
available_colors.each do |color|
because it repeats 6 times the same processing.
Well, my problem is basically what the title says: I have a table that retrieves data from a table in another excel file, and now, doesn't stop loading lines, well after said table ended.
The script that I have (see bellow), has another table innerjoined, but that table, also from PowerQuery, that retrieves a table from yet another excel file, loads just fine. No problems. The main one is the one that does not stop until like 3000000 lines (original table is 3000 lines).
I can't understand the problem, because this has been working just fine.
let
Origem = Excel.Workbook(File.Contents("\\SERVIDOR\Registo de defeitos\REGISTO_DEFEITOS_2016.xlsm"), null, true),
REGISTRY_Table = Origem{[Item="REGISTRY",Kind="Table"]}[Data],
#"Tipo Alterado" = Table.TransformColumnTypes(REGISTRY_Table,{{"FINDER", type text}, {"DATA", type date}, {"ORDEM FABRICO", Int64.Type}, {"REFERÊNCIA", Int64.Type}, {"LOTE", type text}, {"OPERADOR", type text}, {"PRENSA", Int64.Type}, {"TURNO", Int64.Type}, {"PRODUÇÃO TOTAL#(lf)(Nº DE PEÇAS)", Int64.Type}, {"A", Int64.Type}, {"B", Int64.Type}, {"C", Int64.Type}, {"D", Int64.Type}, {"E", Int64.Type}, {"F", Int64.Type}, {"Z", Int64.Type}, {"L", Int64.Type}, {"M", Int64.Type}, {"N", Int64.Type}, {"O", Int64.Type}, {"P", Int64.Type}, {"QUANTIDADE DE PEÇAS OK#(lf)(PRENSA)", Int64.Type}, {"QUANTIDADE DE PEÇAS NOK#(lf)(PRENSA)", Int64.Type}, {"% DEFEITOS#(lf)(PRENSA)", type number}, {"% DETECÇÃO DE DEFEITOS#(lf)(PRENSA)", type number}, {"DATA DE INSPECÇÃO", type date}, {"QUANTIDADE DE PEÇAS VERIFICADA#(lf)(Nº DE PEÇAS)", Int64.Type}, {"TIPO DE INSPECÇÃO", type text}, {"A ", Int64.Type}, {"B ", Int64.Type}, {"C ", Int64.Type}, {"D ", Int64.Type}, {"E ", Int64.Type}, {"F ", Int64.Type}, {"Z ", Int64.Type}, {"L ", Int64.Type}, {"M ", Int64.Type}, {"N ", Int64.Type}, {"O ", Int64.Type}, {"P ", Int64.Type}, {"PEÇAS RETRABALHADAS ""OK""#(lf)(Nº DE PEÇAS)", Int64.Type}, {"LOTE#(lf)FECHADO", type text}, {"QUANTIDADE DE PEÇAS OK#(lf)(INSP. FINAL)", Int64.Type}, {"QUANTIDADE DE PEÇAS NOK#(lf)(INSP. FINAL)", Int64.Type}, {"% DEFEITOS#(lf)(INSP. FINAL)", type number}, {"QUANTIDADE DE PEÇAS OK#(lf)(FINAL)", Int64.Type}, {"QUANTIDADE DE PEÇAS NOK#(lf)(FINAL)", Int64.Type}, {"% DEFEITOS#(lf)(FINAL)", type number}, {"CONTABILIZAÇÃO DE PEÇAS", Int64.Type}, {"TESTER", Int64.Type}, {"MÊS", type text}, {"ANO", Int64.Type}, {"MÊS INSP.", type text}, {"ANO INSP.", Int64.Type}}),
#"Colunas Removidas" = Table.RemoveColumns(#"Tipo Alterado",{"TESTER"}),
#"Consultas Intercaladas" = Table.NestedJoin(#"Colunas Removidas",{"FINDER"},TabelaRegistos,{"FINDER"},"NewColumn",JoinKind.Inner),
#"Expandido NewColumn" = Table.ExpandTableColumn(#"Consultas Intercaladas", "NewColumn", {"Nº DE CAVIDADES", "PRODUÇÃO PREVISTA (nº de cargas/h)", "AJUSTE DE OBJECTIVO PRODUÇÃO PREVISTA#(lf)(nº de cargas/h)", "PRODUÇÃO TOTAL#(lf)(nº de peças)", "A ", "B ", "C ", "D ", "E ", "F ", "G ", "H ", "I ", "Z ", "PRENSA SEM PARAGEM PARA REFEIÇÕES?", "J ", "TEMPO DE PARAGEM NÃO PROGRAMADA (min)", "TEMPO DE PARAGEM PROGRAMADA (min)", "AJUSTE DE TEMPO DE TURNO#(lf)(min)", "LOTE FECHADO", "OBSERVAÇÕES", "PRODUÇÃO EFECTIVA#(lf)(nº de cargas/h)", "PERFORMANCE#(lf)(%)", "DISPONIBILIDADE#(lf)(%)", "QUALIDADE PRENSA#(lf)(%)", "QUALIDADE#(lf)(%)", "OEE OBJECTIVO#(lf)(%)", "WE OBJECTIVO#(lf)(%)", "OEE PRENSA#(lf)(%)", "OEE#(lf)(%)", "Δ OEE#(lf)(Δ%)", "WE PRENSA#(lf)(%)", "WE#(lf)(%)", "Δ WE#(lf)(Δ%)", "TEMPO DE TRABALHO DISPONÍVEL#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS PROGRAMADAS#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS NÃO PROGRAMADAS#(lf)(min)", "TEMPO DE LABORAÇÃO EFECTIVO#(lf)(min)", "EFICÁCIA DE UTILIZAÇÃO#(lf)(%)", "FINDER", "COMMENTS", "NOME MÊS", "AProg", "BProg", "CProg", "DProg", "EProg", "FProg", "GProg", "HProg", "IProg", "Zprog", "ANProg", "BNProg", "CNProg", "DNProg", "ENProg", "FNProg", "GNProg", "HNProg", "INProg", "ZNprog"}, {"Nº DE CAVIDADES", "PRODUÇÃO PREVISTA (nº de cargas/h)", "AJUSTE DE OBJECTIVO PRODUÇÃO PREVISTA#(lf)(nº de cargas/h)", "PRODUÇÃO TOTAL#(lf)(nº de peças)", "A ", "B ", "C ", "D ", "E ", "F ", "G ", "H ", "I ", "Z ", "PRENSA SEM PARAGEM PARA REFEIÇÕES?", "J ", "TEMPO DE PARAGEM NÃO PROGRAMADA (min)", "TEMPO DE PARAGEM PROGRAMADA (min)", "AJUSTE DE TEMPO DE TURNO#(lf)(min)", "LOTE FECHADO", "OBSERVAÇÕES", "PRODUÇÃO EFECTIVA#(lf)(nº de cargas/h)", "PERFORMANCE#(lf)(%)", "DISPONIBILIDADE#(lf)(%)", "QUALIDADE PRENSA#(lf)(%)", "QUALIDADE#(lf)(%)", "OEE OBJECTIVO#(lf)(%)", "WE OBJECTIVO#(lf)(%)", "OEE PRENSA#(lf)(%)", "OEE#(lf)(%)", "Δ OEE#(lf)(Δ%)", "WE PRENSA#(lf)(%)", "WE#(lf)(%)", "Δ WE#(lf)(Δ%)", "TEMPO DE TRABALHO DISPONÍVEL#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS PROGRAMADAS#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS NÃO PROGRAMADAS#(lf)(min)", "TEMPO DE LABORAÇÃO EFECTIVO#(lf)(min)", "EFICÁCIA DE UTILIZAÇÃO#(lf)(%)", "FINDER.1", "COMMENTS", "NOME MÊS", "AProg", "BProg", "CProg", "DProg", "EProg", "FProg", "GProg", "HProg", "IProg", "Zprog", "ANProg", "BNProg", "CNProg", "DNProg", "ENProg", "FNProg", "GNProg", "HNProg", "INProg", "ZNprog"}),
#"Colunas Removidas1" = Table.RemoveColumns(#"Expandido NewColumn",{"PRODUÇÃO TOTAL#(lf)(nº de peças)"}),
#"Personalizado Adicionado" = Table.AddColumn(#"Colunas Removidas1", "PRODUÇÃO TOTAL OBJECTIVO (Nº DE PEÇAS)", each [Nº DE CAVIDADES]*[#"PRODUÇÃO PREVISTA (nº de cargas/h)"]*[#"TEMPO DE TRABALHO COM PARAGENS NÃO PROGRAMADAS#(lf)(min)"]/60),
#"Tipo Alterado1" = Table.TransformColumnTypes(#"Personalizado Adicionado",{{"PRODUÇÃO TOTAL OBJECTIVO (Nº DE PEÇAS)", Int64.Type}}),
#"Trimestre Inserido" = Table.AddColumn(#"Tipo Alterado1", "TRIMESTRE", each Date.QuarterOfYear([DATA]), type number),
#"Personalizado Adicionado1" = Table.AddColumn(#"Trimestre Inserido", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO EFECTIVO)", each [Nº DE CAVIDADES]*[#"PRODUÇÃO PREVISTA (nº de cargas/h)"]*[#"TEMPO DE LABORAÇÃO EFECTIVO#(lf)(min)"]/60),
#"Tipo Alterado2" = Table.TransformColumnTypes(#"Personalizado Adicionado1",{{"PRODUÇÃO TOTAL OBJECTIVO (TEMPO EFECTIVO)", Int64.Type}}),
#"Colunas com Nome Mudado" = Table.RenameColumns(#"Tipo Alterado2",{{"PRODUÇÃO TOTAL OBJECTIVO (Nº DE PEÇAS)", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO COM PARAGENS NÃO PROGRAMADAS)"}}),
#"Colunas Reordenadas" = Table.ReorderColumns(#"Colunas com Nome Mudado",{"FINDER", "DATA", "ORDEM FABRICO", "REFERÊNCIA", "LOTE", "OPERADOR", "PRENSA", "TURNO", "PRODUÇÃO TOTAL#(lf)(Nº DE PEÇAS)", "A", "B", "C", "D", "E", "F", "Z", "L", "M", "N", "O", "P", "QUANTIDADE DE PEÇAS OK#(lf)(PRENSA)", "QUANTIDADE DE PEÇAS NOK#(lf)(PRENSA)", "% DEFEITOS#(lf)(PRENSA)", "% DETECÇÃO DE DEFEITOS#(lf)(PRENSA)", "DATA DE INSPECÇÃO", "QUANTIDADE DE PEÇAS VERIFICADA#(lf)(Nº DE PEÇAS)", "TIPO DE INSPECÇÃO", "A ", "B ", "C ", "D ", "E ", "F ", "Z ", "L ", "M ", "N ", "O ", "P ", "PEÇAS RETRABALHADAS ""OK""#(lf)(Nº DE PEÇAS)", "LOTE#(lf)FECHADO", "QUANTIDADE DE PEÇAS OK#(lf)(INSP. FINAL)", "QUANTIDADE DE PEÇAS NOK#(lf)(INSP. FINAL)", "% DEFEITOS#(lf)(INSP. FINAL)", "QUANTIDADE DE PEÇAS OK#(lf)(FINAL)", "QUANTIDADE DE PEÇAS NOK#(lf)(FINAL)", "% DEFEITOS#(lf)(FINAL)", "CONTABILIZAÇÃO DE PEÇAS", "MÊS", "ANO", "MÊS INSP.", "ANO INSP.", "Nº DE CAVIDADES", "PRODUÇÃO PREVISTA (nº de cargas/h)", "AJUSTE DE OBJECTIVO PRODUÇÃO PREVISTA#(lf)(nº de cargas/h)", "A ", "B ", "C ", "D ", "E ", "F ", "G ", "H ", "I ", "Z ", "PRENSA SEM PARAGEM PARA REFEIÇÕES?", "J ", "TEMPO DE PARAGEM NÃO PROGRAMADA (min)", "TEMPO DE PARAGEM PROGRAMADA (min)", "AJUSTE DE TEMPO DE TURNO#(lf)(min)", "LOTE FECHADO", "OBSERVAÇÕES", "PRODUÇÃO EFECTIVA#(lf)(nº de cargas/h)", "PERFORMANCE#(lf)(%)", "DISPONIBILIDADE#(lf)(%)", "QUALIDADE PRENSA#(lf)(%)", "QUALIDADE#(lf)(%)", "OEE OBJECTIVO#(lf)(%)", "WE OBJECTIVO#(lf)(%)", "OEE PRENSA#(lf)(%)", "OEE#(lf)(%)", "Δ OEE#(lf)(Δ%)", "WE PRENSA#(lf)(%)", "WE#(lf)(%)", "Δ WE#(lf)(Δ%)", "TEMPO DE TRABALHO DISPONÍVEL#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS PROGRAMADAS#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS NÃO PROGRAMADAS#(lf)(min)", "TEMPO DE LABORAÇÃO EFECTIVO#(lf)(min)", "EFICÁCIA DE UTILIZAÇÃO#(lf)(%)", "FINDER.1", "COMMENTS", "NOME MÊS", "TRIMESTRE", "AProg", "BProg", "CProg", "DProg", "EProg", "FProg", "GProg", "HProg", "IProg", "Zprog", "ANProg", "BNProg", "CNProg", "DNProg", "ENProg", "FNProg", "GNProg", "HNProg", "INProg", "ZNprog", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO COM PARAGENS NÃO PROGRAMADAS)", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO EFECTIVO)"}),
#"Colunas Removidas2" = Table.RemoveColumns(#"Colunas Reordenadas",{"FINDER.1", "FINDER"}),
#"Personalizado Adicionado2" = Table.AddColumn(#"Colunas Removidas2", "PERFORMANCE LÍQUIDA (%)", each [#"QUANTIDADE DE PEÇAS OK#(lf)(FINAL)"]/[#"PRODUÇÃO TOTAL OBJECTIVO (TEMPO EFECTIVO)"]),
#"Colunas Removidas3" = Table.RemoveColumns(#"Personalizado Adicionado2",{"NOME MÊS"}),
#"Colunas Reordenadas1" = Table.ReorderColumns(#"Colunas Removidas3",{"DATA", "ORDEM FABRICO", "REFERÊNCIA", "LOTE", "OPERADOR", "PRENSA", "TURNO", "PRODUÇÃO TOTAL#(lf)(Nº DE PEÇAS)", "A", "B", "C", "D", "E", "F", "Z", "L", "M", "N", "O", "P", "QUANTIDADE DE PEÇAS OK#(lf)(PRENSA)", "QUANTIDADE DE PEÇAS NOK#(lf)(PRENSA)", "% DEFEITOS#(lf)(PRENSA)", "% DETECÇÃO DE DEFEITOS#(lf)(PRENSA)", "DATA DE INSPECÇÃO", "QUANTIDADE DE PEÇAS VERIFICADA#(lf)(Nº DE PEÇAS)", "TIPO DE INSPECÇÃO", "A ", "B ", "C ", "D ", "E ", "F ", "Z ", "L ", "M ", "N ", "O ", "P ", "PEÇAS RETRABALHADAS ""OK""#(lf)(Nº DE PEÇAS)", "LOTE#(lf)FECHADO", "QUANTIDADE DE PEÇAS OK#(lf)(INSP. FINAL)", "QUANTIDADE DE PEÇAS NOK#(lf)(INSP. FINAL)", "% DEFEITOS#(lf)(INSP. FINAL)", "QUANTIDADE DE PEÇAS OK#(lf)(FINAL)", "QUANTIDADE DE PEÇAS NOK#(lf)(FINAL)", "% DEFEITOS#(lf)(FINAL)", "CONTABILIZAÇÃO DE PEÇAS", "MÊS", "TRIMESTRE", "ANO", "MÊS INSP.", "ANO INSP.", "Nº DE CAVIDADES", "PRODUÇÃO PREVISTA (nº de cargas/h)", "AJUSTE DE OBJECTIVO PRODUÇÃO PREVISTA#(lf)(nº de cargas/h)", "A ", "B ", "C ", "D ", "E ", "F ", "G ", "H ", "I ", "Z ", "PRENSA SEM PARAGEM PARA REFEIÇÕES?", "J ", "TEMPO DE PARAGEM NÃO PROGRAMADA (min)", "TEMPO DE PARAGEM PROGRAMADA (min)", "AJUSTE DE TEMPO DE TURNO#(lf)(min)", "LOTE FECHADO", "OBSERVAÇÕES", "PRODUÇÃO EFECTIVA#(lf)(nº de cargas/h)", "PERFORMANCE#(lf)(%)", "DISPONIBILIDADE#(lf)(%)", "QUALIDADE PRENSA#(lf)(%)", "QUALIDADE#(lf)(%)", "OEE OBJECTIVO#(lf)(%)", "WE OBJECTIVO#(lf)(%)", "OEE PRENSA#(lf)(%)", "OEE#(lf)(%)", "Δ OEE#(lf)(Δ%)", "WE PRENSA#(lf)(%)", "WE#(lf)(%)", "Δ WE#(lf)(Δ%)", "TEMPO DE TRABALHO DISPONÍVEL#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS PROGRAMADAS#(lf)(min)", "TEMPO DE TRABALHO COM PARAGENS NÃO PROGRAMADAS#(lf)(min)", "TEMPO DE LABORAÇÃO EFECTIVO#(lf)(min)", "EFICÁCIA DE UTILIZAÇÃO#(lf)(%)", "COMMENTS", "AProg", "BProg", "CProg", "DProg", "EProg", "FProg", "GProg", "HProg", "IProg", "Zprog", "ANProg", "BNProg", "CNProg", "DNProg", "ENProg", "FNProg", "GNProg", "HNProg", "INProg", "ZNprog", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO COM PARAGENS NÃO PROGRAMADAS)", "PRODUÇÃO TOTAL OBJECTIVO (TEMPO EFECTIVO)", "PERFORMANCE LÍQUIDA (%)"}),
#"Personalizado Adicionado3" = Table.AddColumn(#"Colunas Reordenadas1", "100%", each 1),
#"Personalizado Adicionado4" = Table.AddColumn(#"Personalizado Adicionado3", "90%", each 0.9),
#"Personalizado Adicionado5" = Table.AddColumn(#"Personalizado Adicionado4", "85%", each 0.85),
#"Personalizado Adicionado6" = Table.AddColumn(#"Personalizado Adicionado5", "80%", each 0.80),
#"Personalizado Adicionado7" = Table.AddColumn(#"Personalizado Adicionado6", "70%", each 0.70),
#"Personalizado Adicionado8" = Table.AddColumn(#"Personalizado Adicionado7", "60%", each 0.60),
#"Personalizado Adicionado9" = Table.AddColumn(#"Personalizado Adicionado8", "50%", each 0.50)
in
#"Personalizado Adicionado9"
Thanks to all that can help.
Possibly something is wrong with your key values:
1 Excel table can not have 3 million lines as the maximum is just over 1 million, so logically the source of your issue is at the step where the nested table is expanded: #"Expandido NewColumn".
I ran a small test with 2 tables, each with keys 1-10 and an inner join resulting in a table with 10 rows. So far so good.
Next I emptied the contents of the key columns of each table and ran the query again, resulting in 10 x 10 = 100 rows as each key in either table corresponds with 10 keys in the other table.
So my suggestion would be to verify the values in your FINDER columns.
If this is not the cause, then please share: which is the first step that is causing the issue: you can check each step in the Query Editor.
I try to use my private sass files together with compass and I get following error:
"sass file.scss:file.css
Syntax error: (“lighten-5”: #ffebee, “lighten-4”: #ffcdd2, “lighten-3”: #ef9a9a, “lighten-2”: #e57373, “lighten-1”: #ef5350, “base”: #f44336, “darken-1”: #e53935, “darken-2”: #d32f2f, “darken-3”: #c62828, “darken-4”: #b71c1c, “accent-1”: #ff8a80, “accent-2”: #ff5252, “accent-3”: #ff1744, “accent-4”: #d50000) isn’t a valid CSS value."
And here is my .scss file which seems to cause the problem.
$m-red: (
"lighten-5": #fdeaeb,
"lighten-4": #f8c1c3,
"lighten-3": #f3989b,
"lighten-2": #ee6e73,
"lighten-1": #ea454b,
"base": #e51c23,
"darken-1": #d0181e,
"darken-2": #b9151b,
"darken-3": #a21318,
"darken-4": #8b1014,
);
$red: (
"lighten-5": #FFEBEE,
"lighten-4": #FFCDD2,
"lighten-3": #EF9A9A,
"lighten-2": #E57373,
"lighten-1": #EF5350,
"base": #F44336,
"darken-1": #E53935,
"darken-2": #D32F2F,
"darken-3": #C62828,
"darken-4": #B71C1C,
"accent-1": #FF8A80,
"accent-2": #FF5252,
"accent-3": #FF1744,
"accent-4": #D50000
);
$pink: (
"lighten-5": #fce4ec,
"lighten-4": #f8bbd0,
"lighten-3": #f48fb1,
"lighten-2": #f06292,
"lighten-1": #ec407a,
"base": #e91e63,
"darken-1": #d81b60,
"darken-2": #c2185b,
"darken-3": #ad1457,
"darken-4": #880e4f,
"accent-1": #ff80ab,
"accent-2": #ff4081,
"accent-3": #f50057,
"accent-4": #c51162
);
$purple: (
"lighten-5": #f3e5f5,
"lighten-4": #e1bee7,
"lighten-3": #ce93d8,
"lighten-2": #ba68c8,
"lighten-1": #ab47bc,
"base": #9c27b0,
"darken-1": #8e24aa,
"darken-2": #7b1fa2,
"darken-3": #6a1b9a,
"darken-4": #4a148c,
"accent-1": #ea80fc,
"accent-2": #e040fb,
"accent-3": #d500f9,
"accent-4": #aa00ff
);
$deep-purple: (
"lighten-5": #ede7f6,
"lighten-4": #d1c4e9,
"lighten-3": #b39ddb,
"lighten-2": #9575cd,
"lighten-1": #7e57c2,
"base": #673ab7,
"darken-1": #5e35b1,
"darken-2": #512da8,
"darken-3": #4527a0,
"darken-4": #311b92,
"accent-1": #b388ff,
"accent-2": #7c4dff,
"accent-3": #651fff,
"accent-4": #6200ea
);
$indigo: (
"lighten-5": #e8eaf6,
"lighten-4": #c5cae9,
"lighten-3": #9fa8da,
"lighten-2": #7986cb,
"lighten-1": #5c6bc0,
"base": #3f51b5,
"darken-1": #3949ab,
"darken-2": #303f9f,
"darken-3": #283593,
"darken-4": #1a237e,
"accent-1": #8c9eff,
"accent-2": #536dfe,
"accent-3": #3d5afe,
"accent-4": #304ffe
);
$blue: (
"lighten-5": #E3F2FD,
"lighten-4": #BBDEFB,
"lighten-3": #90CAF9,
"lighten-2": #64B5F6,
"lighten-1": #42A5F5,
"base": #2196F3,
"darken-1": #1E88E5,
"darken-2": #1976D2,
"darken-3": #1565C0,
"darken-4": #0D47A1,
"accent-1": #82B1FF,
"accent-2": #448AFF,
"accent-3": #2979FF,
"accent-4": #2962FF
);
$light-blue: (
"lighten-5": #e1f5fe,
"lighten-4": #b3e5fc,
"lighten-3": #81d4fa,
"lighten-2": #4fc3f7,
"lighten-1": #29b6f6,
"base": #03a9f4,
"darken-1": #039be5,
"darken-2": #0288d1,
"darken-3": #0277bd,
"darken-4": #01579b,
"accent-1": #80d8ff,
"accent-2": #40c4ff,
"accent-3": #00b0ff,
"accent-4": #0091ea
);
$cyan: (
"lighten-5": #e0f7fa,
"lighten-4": #b2ebf2,
"lighten-3": #80deea,
"lighten-2": #4dd0e1,
"lighten-1": #26c6da,
"base": #00bcd4,
"darken-1": #00acc1,
"darken-2": #0097a7,
"darken-3": #00838f,
"darken-4": #006064,
"accent-1": #84ffff,
"accent-2": #18ffff,
"accent-3": #00e5ff,
"accent-4": #00b8d4
);
$teal: (
"lighten-5": #e0f2f1,
"lighten-4": #b2dfdb,
"lighten-3": #80cbc4,
"lighten-2": #4db6ac,
"lighten-1": #26a69a,
"base": #009688,
"darken-1": #00897b,
"darken-2": #00796b,
"darken-3": #00695c,
"darken-4": #004d40,
"accent-1": #a7ffeb,
"accent-2": #64ffda,
"accent-3": #1de9b6,
"accent-4": #00bfa5
);
$green: (
"lighten-5": #E8F5E9,
"lighten-4": #C8E6C9,
"lighten-3": #A5D6A7,
"lighten-2": #81C784,
"lighten-1": #66BB6A,
"base": #4CAF50,
"darken-1": #43A047,
"darken-2": #388E3C,
"darken-3": #2E7D32,
"darken-4": #1B5E20,
"accent-1": #B9F6CA,
"accent-2": #69F0AE,
"accent-3": #00E676,
"accent-4": #00C853
);
$light-green: (
"lighten-5": #f1f8e9,
"lighten-4": #dcedc8,
"lighten-3": #c5e1a5,
"lighten-2": #aed581,
"lighten-1": #9ccc65,
"base": #8bc34a,
"darken-1": #7cb342,
"darken-2": #689f38,
"darken-3": #558b2f,
"darken-4": #33691e,
"accent-1": #ccff90,
"accent-2": #b2ff59,
"accent-3": #76ff03,
"accent-4": #64dd17
);
$lime: (
"lighten-5": #f9fbe7,
"lighten-4": #f0f4c3,
"lighten-3": #e6ee9c,
"lighten-2": #dce775,
"lighten-1": #d4e157,
"base": #cddc39,
"darken-1": #c0ca33,
"darken-2": #afb42b,
"darken-3": #9e9d24,
"darken-4": #827717,
"accent-1": #f4ff81,
"accent-2": #eeff41,
"accent-3": #c6ff00,
"accent-4": #aeea00
);
$yellow: (
"lighten-5": #fffde7,
"lighten-4": #fff9c4,
"lighten-3": #fff59d,
"lighten-2": #fff176,
"lighten-1": #ffee58,
"base": #ffeb3b,
"darken-1": #fdd835,
"darken-2": #fbc02d,
"darken-3": #f9a825,
"darken-4": #f57f17,
"accent-1": #ffff8d,
"accent-2": #ffff00,
"accent-3": #ffea00,
"accent-4": #ffd600
);
$amber: (
"lighten-5": #fff8e1,
"lighten-4": #ffecb3,
"lighten-3": #ffe082,
"lighten-2": #ffd54f,
"lighten-1": #ffca28,
"base": #ffc107,
"darken-1": #ffb300,
"darken-2": #ffa000,
"darken-3": #ff8f00,
"darken-4": #ff6f00,
"accent-1": #ffe57f,
"accent-2": #ffd740,
"accent-3": #ffc400,
"accent-4": #ffab00
);
$orange: (
"lighten-5": #fff3e0,
"lighten-4": #ffe0b2,
"lighten-3": #ffcc80,
"lighten-2": #ffb74d,
"lighten-1": #ffa726,
"base": #ff9800,
"darken-1": #fb8c00,
"darken-2": #f57c00,
"darken-3": #ef6c00,
"darken-4": #e65100,
"accent-1": #ffd180,
"accent-2": #ffab40,
"accent-3": #ff9100,
"accent-4": #ff6d00
);
$deep-orange: (
"lighten-5": #fbe9e7,
"lighten-4": #ffccbc,
"lighten-3": #ffab91,
"lighten-2": #ff8a65,
"lighten-1": #ff7043,
"base": #ff5722,
"darken-1": #f4511e,
"darken-2": #e64a19,
"darken-3": #d84315,
"darken-4": #bf360c,
"accent-1": #ff9e80,
"accent-2": #ff6e40,
"accent-3": #ff3d00,
"accent-4": #dd2c00
);
$brown: (
"lighten-5": #efebe9,
"lighten-4": #d7ccc8,
"lighten-3": #bcaaa4,
"lighten-2": #a1887f,
"lighten-1": #8d6e63,
"base": #795548,
"darken-1": #6d4c41,
"darken-2": #5d4037,
"darken-3": #4e342e,
"darken-4": #3e2723
);
$blue-grey: (
"lighten-5": #eceff1,
"lighten-4": #cfd8dc,
"lighten-3": #b0bec5,
"lighten-2": #90a4ae,
"lighten-1": #78909c,
"base": #607d8b,
"darken-1": #546e7a,
"darken-2": #455a64,
"darken-3": #37474f,
"darken-4": #263238
);
$grey: (
"lighten-5": #fafafa,
"lighten-4": #f5f5f5,
"lighten-3": #eeeeee,
"lighten-2": #e0e0e0,
"lighten-1": #bdbdbd,
"base": #9e9e9e,
"darken-1": #757575,
"darken-2": #616161,
"darken-3": #424242,
"darken-4": #212121
);
$shades: (
"black": #000000,
"white": #FFFFFF,
"transparent": transparent
);
$colors: (
"m-red": $m-red,
"red": $red,
"pink": $pink,
"purple": $purple,
"deep-purple": $deep-purple,
"indigo": $indigo,
"blue": $blue,
"light-blue": $light-blue,
"cyan": $cyan,
"teal": $teal,
"green": $green,
"light-green": $light-green,
"lime": $lime,
"yellow": $yellow,
"amber": $amber,
"orange": $orange,
"deep-orange": $deep-orange,
"brown": $brown,
"blue-grey": $blue-grey,
"grey": $grey,
"shades": $shades
);
Without compass everything compiles perfect. What's wrong with the file above?
Edit:
Isolated code:
$new_m-red: ( lighten-5: #fdeaeb);
$new_colors: ( "m-red": $m-red);
// Color Classes
#each $color_name,
$color in $new_colors {
#each $color_type,
$color_value in $color{
#if $color_type=="base" {
.#{$color_name} {
background-color: $color_value !important;
}
.#{$color_name}-text {
color: $color_value !important;
}
}
#else {
.#{$color_name}.#{$color_type} {
background-color: $color_value !important;
}
.#{$color_name}-text.text-#{$color_type} {
color: $color_value !important;
}
}
}
}
Compass version:
Compass 1.0.3 (Polaris)
SASS Sass 3.4.19 (Selective Steve)
error:
modified /sass/file/_color.scss
error /sass/file.scss (Line 49 of /sass/file/_color.scss: ("lighten-5": #fdeaeb) isn't a valid CSS value.)
I tried without quotes:
modified /sass/file/_color.scss
error /sass/file.scss (Line 49 of /sass/file/free/_color.scss: (lighten-5: #fdeaeb) isn't a valid CSS value.)