y = 0 TestString = str (y + 1) + ': ' + str(SelectedWRs) + '= ' + str (Values) + ' cfs' x = 1 counter = count.getOutput(0) counter2 = int (counter) while x < counter2: y += 1 TestString = TestString + '\n' + str (y + 1) + ': ' + str(SelectedWRs) + '= ' + str (Values) + ' cfs' x = x + 1 ProtectedWaterBoolean = pythonaddins.MessageBox('Selected Management Point: ' + str(selection) + '\n\n' + 'Water Rights with Protected Water on ' + str(SelectedDate) + ':' + '\n' + TestString + '\n\n' + 'Total CFS Protected: ' + str(ValuesSum) + '\n\n', 4)
import arcpy import pythonaddins import pickle, os from subprocess import Popen, PIPE class YourPythonAddinClass(object): """ Implementation for Create_New_Point_addin.createNewXYPoint (Button) """ def __init__(self): ... ... ... def yourOnClickFunction(self): featureClass = arcpy.mapping.Layer("Your Feature Class") dateField = # Method to get the date field you want fields = ["id",dateField] data = [row for row in arcpy.da.SearchCursor(featureClass,fields)] data.insert(0, tuple(fields)) dataDumpFile = os.path.join(os.path.dirname(os.path.abspath(__file__)), "datadump.p") pickle.dump(data, open(dataDumpFile,"wb")) open_GUI("listViewGUI.py",dataDumpFile) def open_GUI(gui_file_name, file_location): file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), gui_file_name) proc = Popen([file_path,file_location], shell=True, stdout=PIPE, bufsize=1) stdoutdata, stderrdata = proc.communicate() return stdoutdata
import Tkinter as tk import tkFont, ttk, tkMessageBox import math, pickle, sys class ListBox(object): """use a ttk.TreeView as a multicolumn ListBox""" sampleHeader = ["Column 1","Column 2"] sampleData = [("data1","data1"),("data2","data2")] def __init__(self, header=sampleHeader, data=sampleData): self.root = tk.Tk() self.root.wm_title("Table Output") self.root.minsize(width=300, height=300) ttk.Style().configure('.', font=('Courier', 10)) self.header = header self.data = data self.tree = None self._setup_widgets() self._build_tree() self.root.protocol("WM_DELETE_WINDOW", self.quitCallback) self.root.mainloop() def _setup_widgets(self): container = ttk.Frame() container.pack(fill='both', expand=True) # create a treeview with dual scrollbars self.tree = ttk.Treeview(columns=self.header, show="headings") vsb = ttk.Scrollbar(orient="vertical", command=self.tree.yview) self.tree.configure(yscrollcommand=vsb.set) self.tree.grid(column=0, row=0, sticky='nsew', in_=container) vsb.grid(column=1, row=0, sticky='ns', in_=container) container.grid_columnconfigure(0, weight=1) container.grid_rowconfigure(0, weight=1) def _build_tree(self): for col in self.header: self.tree.heading(col, text=col.title()) # adjust the column's width to the header string self.tree.column(col, width=tkFont.Font().measure(col.title())) for item in self.data: self.tree.insert('', 'end', values=item) # adjust column's width if necessary to fit each value for ix, val in enumerate(item): col_w = tkFont.Font().measure(val) if self.tree.column(self.header[ix], width=None) < col_w: self.tree.column(self.header[ix], width=int(math.floor(col_w * 1.75))) def quitCallback(self): """ If user closes the prompt window, the program will exit on 'OK' """ if tkMessageBox.askokcancel("Quit", "Do you really wish to quit?"): self.root.destroy() sys.exit(1) def main(argv): data = pickle.load(open(argv[1], "rb")) header = data[0] data_list = data[1:] guiTable = ListBox(header=header, data=data_list) main(sys.argv)
dateField = # Method to get the date field you want # Method that puts each row into a dictionary def rows_as_dicts(cursor): colnames = cursor.fields for row in cursor: yield dict(zip(colnames, row)) # Record of the data you want in your new table fields = ["id",dateField] data = [row for row in rows_as_dicts(arcpy.da.SearchCursor("Your Table",fields)) # Create your new table -- Mine is "in_memory" table = arcpy.CreateTable_management("in_memory", tableName) arcpy.AddField_management(table, "id", "LONG", 9) arcpy.AddField_management(table, dateField, "TEXT") # Populate your table with arcpy.da.InsertCursor(table, fields) as cursor: for row in data: cursor.insertRow([row["id"], row[dateField]]) # Run your reporting with your new in_memory table # Clean up your temporary table arcpy.Delete_management(table)
visibleFields = ["ID", "DesiredField1", "DesiredField2"] field_info = arcpy.Describe("FeatureLayer").fieldInfo for index in xrange(0, field_info.count): if field_info.getfieldname(index) not in visibleFields: field_info.setvisible(index,"HIDDEN") arcpy.MakeFeatureLayer_management("FeatureLayer","Feature_Layer_With_New_Visibilities","","",field_info) # Run your reporting process on your new feature layer # Clean up your feature layer with new visibilities when you're done with it. arcpy.Delete_management("Feature_Layer_With_New_Visibilities")
from Tkinter import * from ttk import * import tkMessageBox class DisplayResults(): def __init__(self): self.root = Tk() self.root.title("Geoprocessing Results") self.root.minsize(width=770, height=300) self.root.config(padx=10, pady=10) Style().configure(".", font=("Helvetica", 10)) self.frame = Frame() self.frame.pack(fill="both", expand=1) self.createWidgets() self.root.protocol("WM_DELETE_WINDOW", self.quitCallback) def createWidgets(self): self.textbox = Text(self.frame, height=20, width=120, relief="sunken", state="normal") self.textbox.pack(fill="both", expand=1) self.yscrollbar = Scrollbar(self.textbox, orient="vertical", cursor="arrow" ,command=self.textbox.yview) self.yscrollbar.pack(side="right", fill="y") self.textbox["yscrollcommand"]=self.yscrollbar.set def printToScreen(self, content): self.textbox.insert("end", content + "\n") def quitCallback(self): """ If user closes the prompt window, the program will exit on 'OK' """ if tkMessageBox.askokcancel("Quit", "Do you really wish to quit?"): self.root.destroy() sys.exit(1) gui = DisplayResults() gui.printToScreen("data") gui.root.mainloop()
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.