예제 #1
0
    def __queryDB(self):
        y = datetime.now().year
        m = datetime.now().month
        d = datetime.now().day
        today = "{:0>2d}".format(d) + '/' + "{:0>2d}".format(m) + '/' + str(y)
        self.query_dict = {
            'cgi': None,
            'tec': '234',
            'date': {
                'first': '01/01/2013',
                'last': today,
                'd_all': False
            },
            'pol': {
                'cp': None,
                'loc': None,
                'con': None,
                'dis': None
            },
            'fis': {
                'form': None,
                'lat': None,
                'lon': None,
                'lat2': None,
                'lon2': None,
                'radius': None
            },
            'kmz': {
                'ico_or_pol': None,
                'n': 338,
                'scale': 1,
                'color': "orange",
                'radius': None,
                'alt': 35,
                'amp': 110
            }
        }
        # MAIN WINDOW #########################################################
        # --- Theme configuration ---------------------------------------------
        bg = "gray25"
        fg = "dark orange"
        font = ("Helvetica", "10", "bold")
        self.style.theme_use("vladimir")
        tfs = ttk.Style()
        tfs.configure("TFrame", background="#404040")
        # --- Toplevel --------------------------------------------------------
        tl = Toplevel(self.master)
        #tl.geometry("410x420")
        tl.geometry("530x420")
        tl.configure(borderwidth=5, bg=bg)
        tl.title("Pesquisar Base de Dados")
        icons = os.getcwd() + os.sep + "icons" + os.sep  # path to icons
        icon = icons + "maps.ico"
        tl.iconbitmap(icon)
        tl.resizable(width=FALSE, height=FALSE)
        # --- Base Frame ------------------------------------------------------
        f1 = Frame(tl, bg=bg)
        f1.pack_propagate(0)  # don't shrink
        f1.pack(side=BOTTOM, padx=0, pady=0, expand=TRUE, fill=BOTH)
        # --- Notebook --------------------------------------------------------
        nf = fontTK.Font(root=tl, family='helvetica', size='12', weight='bold')
        s = ttk.Style()
        s.configure('.', font=nf)
        n = ttk.Notebook(f1)
        n.pack(side=TOP)
        # --- Messages / Log Frame --------------------------------------------
        self.msg = StringVar()
        self.msg.set("Log...\nMensagens do programa...")
        l1 = Message(f1,
                     bg=fg,
                     bd=5,
                     fg=bg,
                     textvariable=self.msg,
                     font=("Helvetica", "10", "bold italic"),
                     width=500)
        l1.pack_propagate(0)
        l1.pack(expand=TRUE, fill=BOTH, pady=5)
        # --- Pesquisar Button ------------------------------------------------
        b = Button(f1,
                   text="Pesquisar",
                   command=self.__queryDB_button,
                   width=10,
                   bg="forest green",
                   fg="white smoke",
                   font=("Helvetica", "8", "bold"))
        b.pack(side=BOTTOM, anchor=E)

        # CGI TAB #############################################################
        # --- Main Frame ------------------------------------------------------
        tab_cgi = ttk.Frame(n)
        n.add(tab_cgi, text='CGI')
        # --- inside Frame ----------------------------------------------------
        f_cgi = ttk.Frame(tab_cgi)
        f_cgi.pack_propagate(0)
        f_cgi.pack(padx=16, pady=33)
        # --- Labels ----------------------------------------------------------
        cgi_l1 = Label(f_cgi, text=None, bg=bg)
        cgi_l2 = Label(f_cgi,
                       text="Operadora",
                       bg=bg,
                       fg=fg,
                       width=7,
                       justify=RIGHT)
        cgi_l3 = Label(f_cgi, text="LAC", bg=bg, fg=fg, width=7, justify=RIGHT)
        cgi_l4 = Label(f_cgi, text="CID", bg=bg, fg=fg, width=7, justify=RIGHT)
        cgi_l5 = Label(f_cgi, text="CGI", bg=bg, fg=fg)
        cgi_l1.grid(row=0, pady=0)
        cgi_l2.grid(row=1, column=0, padx=5, pady=5)
        cgi_l3.grid(row=1, column=2, pady=5)
        cgi_l4.grid(row=1, column=4, pady=5)
        cgi_l5.grid(row=4, pady=5, padx=5)
        # --- Entries ---------------------------------------------------------
        self.cgi_e1 = Entry(f_cgi, width=2)
        self.cgi_e2 = Entry(f_cgi, width=4)
        self.cgi_e3 = Entry(f_cgi, width=6)
        self.cgi_e4 = Entry(f_cgi, width=25)
        self.cgi_e1.grid(row=1, column=1, pady=5)
        self.cgi_e2.grid(row=1, column=3, pady=5)
        self.cgi_e3.grid(row=1, column=5, pady=5)
        self.cgi_e4.grid(row=4, column=1, columnspan=4, pady=5)
        # --- Separator -------------------------------------------------------
        cgi_s = ttk.Separator(f_cgi, orient=HORIZONTAL)
        cgi_s.grid(row=3, column=0, columnspan=6, sticky=EW, padx=5, pady=5)

        # TECNOLOGIA TAB ######################################################
        # --- Main Frame ------------------------------------------------------
        tab_tec = ttk.Frame(n)
        n.add(tab_tec, text='Tecnologia')
        # --- inside Frame ----------------------------------------------------
        f_tec = ttk.Frame(tab_tec)
        f_tec.pack_propagate(0)
        f_tec.pack(padx=40, pady=45)
        # --- variables -------------------------------------------------------
        self.tec_2g = IntVar()
        self.tec_3g = IntVar()
        self.tec_4g = IntVar()
        # --- Checkbuttons ----------------------------------------------------
        tec_cb1 = Checkbutton(f_tec,
                              text="2G",
                              onvalue=2,
                              variable=self.tec_2g,
                              bg=bg,
                              fg=fg)
        tec_cb2 = Checkbutton(f_tec,
                              text="3G",
                              onvalue=3,
                              variable=self.tec_3g,
                              bg=bg,
                              fg=fg)
        tec_cb3 = Checkbutton(f_tec,
                              text="4G",
                              onvalue=4,
                              variable=self.tec_4g,
                              bg=bg,
                              fg=fg)
        tec_cb1.grid(row=1, pady=5, padx=5)
        tec_cb2.grid(row=2, pady=5, padx=5)
        tec_cb3.grid(row=3, pady=5, padx=5)
        # --- Labels ----------------------------------------------------------
        tec_l1 = Label(f_tec, text="(GSM)", bg=bg, fg=fg)
        tec_l2 = Label(f_tec, text="(WCDMA, HSPA, UMTS)", bg=bg, fg=fg)
        tec_l3 = Label(f_tec, text="(WIMAX, LTE)", bg=bg, fg=fg)
        tec_l1.grid(row=1, column=1, pady=5, sticky=W)
        tec_l2.grid(row=2, column=1, pady=5)
        tec_l3.grid(row=3, column=1, pady=5, sticky=W)

        # DATA TAB ############################################################
        # --- Main Frame ------------------------------------------------------
        tab_dat = ttk.Frame(n)
        n.add(tab_dat, text='Data')
        # --- inside Frame ----------------------------------------------------
        f_dat = ttk.Frame(tab_dat)
        f_dat.pack_propagate(0)
        f_dat.pack(padx=0, pady=55)
        # --- variables -------------------------------------------------------
        days = ["{:0>2d}".format(n + 1) for n in range(31)]
        months = [
            'JAN', 'FEV', 'MAR', 'ABR', 'MAI', 'JUN', 'JUL', 'AGO', 'SET',
            'OUT', 'NOV', 'DEC'
        ]
        years = [n + 1 for n in range(2012, datetime.now().year)]
        self.date_all = IntVar()
        # --- Labels ----------------------------------------------------------
        dat_l1 = Label(f_dat, text="De", bg=bg, fg=fg)
        dat_l2 = Label(f_dat, text="/", bg=bg, fg=fg)
        dat_l3 = Label(f_dat, text="/", bg=bg, fg=fg)
        dat_l4 = Label(f_dat, text="a", bg=bg, fg=fg)
        dat_l5 = Label(f_dat, text="/", bg=bg, fg=fg)
        dat_l6 = Label(f_dat, text="/", bg=bg, fg=fg)
        dat_l7 = Label(f_dat, text=" ", bg=bg, fg=fg)
        dat_l1.grid(row=1, column=0, pady=5, padx=5)
        dat_l2.grid(row=1, column=2, pady=5, padx=0)
        dat_l3.grid(row=1, column=4, pady=5, padx=0)
        dat_l4.grid(row=1, column=6, pady=5, padx=2)
        dat_l5.grid(row=1, column=8, pady=5, padx=0)
        dat_l6.grid(row=1, column=10, pady=5, padx=0)
        dat_l7.grid(row=1, column=12, pady=5, padx=0)
        # --- Comboboxes ------------------------------------------------------
        self.dat_cb1 = ttk.Combobox(f_dat,
                                    width=3,
                                    textvariable=None,
                                    values=days)
        self.dat_cb2 = ttk.Combobox(f_dat,
                                    width=5,
                                    textvariable=None,
                                    values=months)
        self.dat_cb3 = ttk.Combobox(f_dat,
                                    width=4,
                                    textvariable=None,
                                    values=years)
        self.dat_cb4 = ttk.Combobox(f_dat,
                                    width=3,
                                    textvariable=None,
                                    values=days)
        self.dat_cb5 = ttk.Combobox(f_dat,
                                    width=5,
                                    textvariable=None,
                                    values=months)
        self.dat_cb6 = ttk.Combobox(f_dat,
                                    width=4,
                                    textvariable=None,
                                    values=years)
        self.dat_cb1.grid(row=1, column=1, padx=0)
        self.dat_cb2.grid(row=1, column=3, padx=0)
        self.dat_cb3.grid(row=1, column=5, padx=0)
        self.dat_cb4.grid(row=1, column=7, padx=0)
        self.dat_cb5.grid(row=1, column=9, padx=0)
        self.dat_cb6.grid(row=1, column=11, padx=0)
        # --- Separator -------------------------------------------------------
        dat_s = ttk.Separator(f_dat, orient=HORIZONTAL)
        dat_s.grid(row=2, columnspan=13, sticky=EW, pady=5, padx=5)
        # --- Radiobuttons ----------------------------------------------------
        dat_rb1 = Radiobutton(f_dat,
                              text='Todas',
                              variable=self.date_all,
                              value=1,
                              bg=bg,
                              fg=fg)
        dat_rb1.grid(row=3, column=0, columnspan=6, pady=5, padx=5)
        dat_rb2 = Radiobutton(f_dat,
                              text='Mais Recentes',
                              variable=self.date_all,
                              value=0,
                              bg=bg,
                              fg=fg)
        dat_rb2.grid(row=3, column=6, columnspan=5, pady=5, padx=5)
        dat_rb1.deselect()
        dat_rb2.select()

        # LOCALIZALJÃO ADMINISTRATIVA TAB ######################################
        # --- Main Frame ------------------------------------------------------
        tab_pol = ttk.Frame(n)
        n.add(tab_pol, text='Localização Administrativa')
        # --- inside Frame ----------------------------------------------------
        f_pol = ttk.Frame(tab_pol)
        f_pol.pack_propagate(0)
        f_pol.pack(padx=0, pady=40)
        # --- Labels ----------------------------------------------------------
        pol_l1 = Label(f_pol, text="Cod Postal", bg=bg, fg=fg)
        pol_l2 = Label(f_pol, text="Localidade", bg=bg, fg=fg)
        pol_l3 = Label(f_pol, text="Concelho", bg=bg, fg=fg)
        pol_l4 = Label(f_pol, text="Distrito", bg=bg, fg=fg)
        pol_l1.grid(row=2, column=0, padx=5, pady=5)
        pol_l2.grid(row=3, column=0, padx=5, pady=5)
        pol_l3.grid(row=4, column=0, padx=5, pady=5)
        pol_l4.grid(row=5, column=0, padx=5, pady=5)
        # --- Entries ---------------------------------------------------------
        self.pol_e1 = Entry(f_pol)
        self.pol_e2 = Entry(f_pol)
        self.pol_e3 = Entry(f_pol)
        self.pol_e4 = Entry(f_pol)
        self.pol_e1.grid(row=2, column=1)
        self.pol_e2.grid(row=3, column=1)
        self.pol_e3.grid(row=4, column=1)
        self.pol_e4.grid(row=5, column=1)

        # LOCALIZAÃÇÃO F͍SICA TAB #############################################
        # --- Main Frame ------------------------------------------------------
        tab_fis = ttk.Frame(n)
        n.add(tab_fis, text='Localização Fí­sica')
        # --- inside Frame ----------------------------------------------------
        f_fis = ttk.Frame(tab_fis)
        f_fis.pack_propagate(0)
        f_fis.pack(padx=5, pady=10)
        # --- Labels ----------------------------------------------------------
        fis_l1 = Label(f_fis, text="Cí­rculo", bg=bg, fg=fg, font=font)
        fis_l2 = Label(f_fis, text="Latitude", bg=bg, fg=fg)
        fis_l3 = Label(f_fis, text="Longitude", bg=bg, fg=fg)
        fis_l4 = Label(f_fis, text="Raio (Kms)", bg=bg, fg=fg)
        fis_l5 = Label(f_fis, text="Quadrado", bg=bg, fg=fg, font=font)
        fis_l6 = Label(f_fis, text="Latitude 1", bg=bg, fg=fg)
        fis_l7 = Label(f_fis, text="Longitude 1", bg=bg, fg=fg)
        fis_l8 = Label(f_fis, text="Latitude 2", bg=bg, fg=fg)
        fis_l9 = Label(f_fis, text="Longitude 2", bg=bg, fg=fg)
        fis_l1.grid(row=1, column=0, columnspan=4, padx=5, pady=0)
        fis_l2.grid(row=2, column=0, padx=5, pady=5)
        fis_l3.grid(row=2, column=2, padx=5, pady=5)
        fis_l4.grid(row=3, column=0, padx=5, pady=5)
        fis_l5.grid(row=5, column=0, columnspan=4, padx=5, pady=0)
        fis_l6.grid(row=6, column=0, padx=5, pady=5)
        fis_l7.grid(row=6, column=2, padx=5, pady=5)
        fis_l8.grid(row=7, column=0, padx=5, pady=5)
        fis_l9.grid(row=7, column=2, padx=5, pady=5)
        # --- Entries ---------------------------------------------------------
        self.fis_e1 = Entry(f_fis, width=18)
        self.fis_e2 = Entry(f_fis, width=18)
        self.fis_e3 = Entry(f_fis, width=18)
        self.fis_e4 = Entry(f_fis, width=18)
        self.fis_e5 = Entry(f_fis, width=18)
        self.fis_e6 = Entry(f_fis, width=18)
        self.fis_e7 = Entry(f_fis, width=18)
        self.fis_e1.grid(row=2, column=1)
        self.fis_e2.grid(row=2, column=3)
        self.fis_e3.grid(row=3, column=1)
        self.fis_e4.grid(row=6, column=1)
        self.fis_e5.grid(row=6, column=3)
        self.fis_e6.grid(row=7, column=1)
        self.fis_e7.grid(row=7, column=3)
        # --- Separator -------------------------------------------------------
        fis_s = ttk.Separator(f_fis, orient=HORIZONTAL)
        fis_s.grid(row=4, columnspan=4, sticky=EW, pady=5, padx=5)

        # EXCEL KMZ READY TAB #################################################
        # --- Main Frame ------------------------------------------------------
        tab_kmz = ttk.Frame(n)
        n.add(tab_kmz, text='Excel KMZ')
        # --- inside Frame ----------------------------------------------------
        f_kmz = ttk.Frame(tab_kmz)
        f_kmz.pack_propagate(0)
        f_kmz.pack(padx=25, pady=25)
        # --- Labels ----------------------------------------------------------
        kmz_l1 = Label(f_kmz, text="Icons", bg=bg, fg=fg, font=font)
        kmz_l2 = Label(f_kmz, text="Nº Icon", bg=bg, fg=fg)
        kmz_l3 = Label(f_kmz, text="Escala", bg=bg, fg=fg)
        kmz_l4 = Label(f_kmz, text="Cor", bg=bg, fg=fg)
        kmz_l5 = Label(f_kmz, text=" ", bg=bg, fg=fg)
        kmz_l6 = Label(f_kmz, text="Polígonos", bg=bg, fg=fg, font=font)
        kmz_l7 = Label(f_kmz, text="Raio", bg=bg, fg=fg)
        kmz_l8 = Label(f_kmz, text="Altitude", bg=bg, fg=fg)
        kmz_l9 = Label(f_kmz, text="Cor", bg=bg, fg=fg)
        kmz_l1.grid(row=1, column=0, columnspan=6, padx=5, pady=5)
        kmz_l2.grid(row=2, column=0, padx=5, pady=5)
        kmz_l3.grid(row=2, column=2, padx=5, pady=5)
        kmz_l4.grid(row=2, column=4, padx=5, pady=5)
        kmz_l5.grid(row=2, column=6, padx=5, pady=5)
        kmz_l6.grid(row=5, column=0, columnspan=6, padx=5, pady=5)
        kmz_l7.grid(row=6, column=0, padx=5, pady=5)
        kmz_l8.grid(row=6, column=2, padx=5, pady=5)
        kmz_l9.grid(row=6, column=4, padx=5, pady=5)
        # --- Entries ---------------------------------------------------------
        self.kmz_e1 = Entry(f_kmz, width=3)
        self.kmz_e2 = Entry(f_kmz, width=3)
        self.kmz_e3 = Entry(f_kmz)
        self.kmz_e4 = Entry(f_kmz, width=3)
        self.kmz_e5 = Entry(f_kmz, width=3)
        self.kmz_e6 = Entry(f_kmz)
        self.kmz_e1.grid(row=2, column=1)
        self.kmz_e2.grid(row=2, column=3)
        self.kmz_e3.grid(row=2, column=5)
        self.kmz_e4.grid(row=6, column=1)
        self.kmz_e5.grid(row=6, column=3)
        self.kmz_e6.grid(row=6, column=5)
        # --- Separator -------------------------------------------------------
        kmz_s = ttk.Separator(f_kmz, orient=HORIZONTAL)
        kmz_s.grid(row=4, columnspan=7, sticky=EW, pady=5, padx=5)