Thursday, July 17, 2014

MY DEED ORGANIZER PROGRAM

#Written by Steve Atchison for shawnee County March 26 2014
#I use this program alot to help me Organize owners on Deeds.


import sqlite3
from Tkinter import *

def addData():
    conn=sqlite3.connect('deedinfo.db')
    cur=conn.cursor()
    cur.execute("create table if not exists deedsort(bkpage text,grantor text,grantee text,pin text)")

    #Get data from GUI
    bookpage=(thebookpage.get())
    seller=(theseller.get())
    buyer=(thegrantee.get())
    pin=(thepin.get())

    clearGUI()

    #Inserts data into table. Make sure and use a list to insert values! very important!
    cur.execute("insert into deedsort values (?,?,?,?)",([bookpage,seller,buyer,pin]))

    conn.commit() #Saves the data
      
def listData():
    clearGUI()
    conn=sqlite3.connect('deedinfo.db')
    cur=conn.cursor()

    myrows=cur.execute("select * from deedsort")
    for row in myrows:
        txtwin.insert("50.0", row[0]+"\n"+"GRANTOR: "+row[1]+"\n"+"GRANTEE: "+row[2]+"\n"+"pin = "+row[3]+"\n-------------------------------------------------\n")

def finddeed():
    con=sqlite3.connect("deedinfo.db")
    cur=con.cursor()
    deedbookpage = thebookpage.get()
    clearGUI()
    cur.execute("select * from deedsort")
    rows = cur.fetchall()
    for row in rows:
        if row[0]== str(deedbookpage):
            print "\nBook and Page: ", row[0]
            print "Grantor: ",row[1]
            print "Grantee: ",row[2]
           

def clearGUI():
    thebookpage.delete(0,END)
    theseller.delete(0,END)
    thegrantee.delete(0,END)
    thepin.delete(0,END)
    
    txtwin.delete("1.0",END)

def listgrantor():
    clearGUI()
    conn=sqlite3.connect('deedinfo.db')
    cur=conn.cursor()

    myrows=cur.execute("select * from deedsort")
    for row in myrows:
        txtwin.insert("50.0","GRANTOR :"+ row[1]+"\n-----------------------------------------------------------\n")

def listgrantee():
    clearGUI()
    conn=sqlite3.connect('deedinfo.db')
    cur=conn.cursor()

    myrows=cur.execute("select * from deedsort")
    for row in myrows:
        txtwin.insert("50.0","GRANTEE :"+ row[2]+"\n-----------------------------------------------------------\n")
def droptable():
    conn=sqlite3.connect('deedinfo.db')
    cur=conn.cursor()
    cur.execute("DROP TABLE deedsort")
def saveit():
    alist = txtwin.get("1.0",END)
    f = open("minilog.txt", "w")
    clearGUI()
    txtwin.insert("1.0","list saved in minlog.txt")
    f.write(str(alist))
        f.close()
                         
root=Tk()
root.title('Deed organizer ')
root.config(bg='yellow')
root.geometry('800x750')
              
btn=Button(root,text="List table",command=listData)
btn.pack()

btn2=Button(root,text="Add to table",command=addData)
btn2.pack()

btn4=Button(root,text="List Grantors",command=listgrantor)
btn4.pack()

grantbtn=Button(root,text="List Grantees",command=listgrantee)
grantbtn.pack()

labl=Label(root,text="DEED NUMBER").pack()

thebookpage = Entry()
thebookpage.pack()

labl2=Label(root,text="GRANTOR").pack()
theseller = Entry(root, width = 90)
theseller.pack()

labl3=Label(root,text="GRANTEE").pack()
thegrantee=Entry(root, width=90)
thegrantee.pack()

lab4=Label(root,text="PIN").pack()
thepin =Entry(root,width =40)
thepin.pack()

txtwin=Text(root,width='800',height=26,background='white')
txtwin.pack(padx=5, pady=5)

droptablebtn=Button(root,text="Delete Table",command=droptable)
droptablebtn.pack()

savebtn=Button(root,text="Save to text file",command=saveit)
savebtn.pack()

root.mainloop()

Friday, May 30, 2014

Extract Data from an sqlite3 database.

#Use this program to get the data from parceldata.db

import sqlite3
conn=sqlite3.connect("parceldata.db")
cur=conn.cursor()

myrows=cur.execute("select * from parcel_table")
   
for row in myrows:
        
    print('------------------------------------------\n')
    print row[0]
    print row[1]
    print("PIN: ")+ row[2]
    print("Quick ref: ")+ str(row[3])
    print("Calc acres: ")+ str(row[4])
        

print("\n\n  ")
raw_input("press return to close this window")

Friday, April 25, 2014

A simple function to find the unknown side.

#WRITTEN BY STEVE ATCHISON FOR SHAWNEE COUNTY APRIL 25TH 2014

def uk(known,acres):
    '''
    This functon prints the unknown side 
    when known side and acres are entered.
    example:  uk(1320,20)
    '''
    acres_to_sf = float(acres* 43560)
    unknownside = float(acres_to_sf / known)
   
    print('Unknown Side = %.2f ft' %unknownside)
   

Wednesday, March 26, 2014

ANOTHER PROGRAM FOR WORK


from Tkinter import *
import sqlite3
#Witten by Steve Atchison For Shawnee County March 26 2014
def cleargui():
    textwindow.delete("1.0",END)
    addent.delete(0,END)
def connectdb():
    connect = sqlite3.connect("mydata.db")
    cur = connect.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS addressdata(address text)")
def addtodatabase():    
    theadd=addent.get()
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    cur.execute("INSERT INTO addressdata VALUES(?)",([theadd.upper() + " - DELETED FROM GIS"]))
    connect.commit()
    getdata()
def getdata():
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    thedata = cur.execute("SELECT * FROM addressdata")
    cleargui()
    for row in thedata:
        textwindow.insert("100.0",row[0]+"\n")
def findadd():
    cleargui()
    addr=findentry.get()
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    thedata = cur.execute("SELECT * FROM addressdata WHERE address = ?",([addr]))
    for row in thedata:
        textwindow.insert("0.1",row[0])
    addent.delete(0,END)
def delrecord():
    addr=findentry.get()
    connect=sqlite3.connect("mydata.db")
    cur=connect.cursor()
    cur.execute("DELETE FROM addressdata WHERE address = ?",([addr]))
    connect.commit() #will not delete without this!
    cleargui()
    findentry.delete(0,END)
    getdata()

connectdb()#creates a database if none exists.

root=Tk()
root.title("REMOVED ADDRESS POINTS")
root.config(bg='black')
lbl=Label(root,text="ADDRESS TO REMVOE FROM GIS").pack()

menu2=Toplevel(root)
menu2.geometry('200x200')
menu2.config(bg="yellow")

addent=Entry(root,text="ADDRESS TO DELETE")
addent.pack()

textwindow=Text(root,background='white')
textwindow.pack()

btn=Button(root,text='Add to Database ',command=addtodatabase)
btn.pack()

btn2=Button(root,text="Show data",command=getdata)
btn2.pack()

btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()

findentry=Entry(menu2)
findentry.pack()

btn4=Button(menu2,text="Find Address",command= findadd)
btn4.pack(padx=10,pady=10)

delbutton=Button(menu2,text='DELETE',command=delrecord)
delbutton.pack(padx=10,pady=10)

root.mainloop()


Thursday, January 30, 2014

OLD PROGAM QUIT WORKING, SO I WROTE A NEW AND BETTER ONE.

#written by Steve Atchison for Shawnee County Feb 24 2014
from Tkinter import *
mxd = arcpy.mapping.MapDocument('CURRENT')

def textfunc400():
    thepin=ent1.get() #Get parcel number from the GUI

    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
        if elm.name == "PIN":
            elm.text = str(thepin)    
    layout400()
    layer_control()
    
def layout400():
    df = arcpy.mapping.ListDataFrames(mxd)[0]
    
    mxd.activeView = 'Page_Layout'

    df = arcpy.mapping.ListDataFrames(mxd)[0]
    
    df.scale = 4800
    df.referenceScale = '2400'
    refresh()

def textfunc200():
    thepin=ent1.get() #Get parcel number from the GUI

    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
        if elm.name == "PIN":
            elm.text = str(thepin)    
    layout200()
    layer_control()     
def layout200():
    df = arcpy.mapping.ListDataFrames(mxd)[0]     
    mxd.activeView = 'Page_Layout'
    df = arcpy.mapping.ListDataFrames(mxd)[0]
    df.scale = 2400
    df.referenceScale = '1200'
    refresh()
def layout100():
    df = arcpy.mapping.ListDataFrames(mxd)[0]     
    mxd.activeView = 'Page_Layout'
    df = arcpy.mapping.ListDataFrames(mxd)[0]      
    df.scale = 1200
    df.referenceScale = '600'
    refresh()
def textfunc100():
    thepin=ent1.get() #Get parcel number from the GUI
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
        if elm.name == "PIN":
            elm.text = str(thepin)    
    layout100()
    layer_control()
def textfunc50():
    thepin=ent1.get() #Get parcel number from the GUI
    for elm in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
        if elm.name == "PIN":
            elm.text = str(thepin)    
    layout50()     
def layout50():
    df = arcpy.mapping.ListDataFrames(mxd)[0]     
    mxd.activeView = 'Page_Layout'
    df = arcpy.mapping.ListDataFrames(mxd)[0]      
    df.scale = 600
    df.referenceScale = '600'
    refresh()
    layer_control()
def layer_control():
    lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Point')[0]
    lyr.visible=False
    lyr=arcpy.mapping.ListLayers(mxd,'Parcel_Poly')[0]
    lyr.visible=False
    lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
    lyr.visible=False
    lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
    lyr.visible=False
def photoon():
    lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
    lyr.visible=True
    refresh()     
def photooff():
    lyr=arcpy.mapping.ListLayers(mxd,'AERIALS_2012')[0]
    lyr.visible=False
    refresh()
def owneron():   
    lyr=arcpy.mapping.ListLayers(mxd,'Owners')[0]
    lyr.visible=True
    refresh()
def refresh():
    arcpy.RefreshActiveView()
    arcpy.RefreshTOC()  
    
layer_control()

root = Tk()
root.title("Steve's Layout Tool")
root.geometry("250x250")
root.config(bg="purple")

ent1=Entry(root)
ent1.pack()
btn3 = Button(root,text = "Map Title 400", command = textfunc400)
btn3.pack(padx=2,pady=2)
btn = Button(root, text = 'Map Title 200 ',command = textfunc200)
btn.pack(padx=2,pady=2)
btn2 = Button(root,text = "Map Title 100", command=  textfunc100)
btn2.pack(padx=2,pady=2)
btn4 = Button(root,text = "Map Title 50", command = textfunc50)
btn4.pack(padx=2,pady=2)
photobtn = Button(root,text = "Photo On", command = photoon)
photobtn.pack(padx=5, pady=5)
photobtn2 = Button(root,text = "Photo Off", command = photooff)
photobtn2.pack(padx=5,pady=5)
ownbtn=Button(root,text = "Show Owners", command = owneron)
ownbtn.pack()

ent1.insert(0,"Map Title")
root.mainloop()
 
#CLEAR REFERENCE SCALE AFTER USING THIS SCRIPT
#BE SURE AND CLOSE THE GUI OR IT WILL LOCK ARC MAP UP!   

Sunday, December 29, 2013

New program to help me with phone calls at work.


#!/usr/bin/python
from Tkinter import *
import sqlite3
#Witten by Steve Atchison 12/28/2013
def cleargui():
    textwindow.delete("1.0",END)
    parnumber.delete(0,END)
def connectdb():
    connect = sqlite3.connect("mydata.db")
    cur = connect.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS phonedata(parcelnum text, description text)")
def addtodatabase():
    parnum=parnumber.get()
    description=textwindow.get("1.0",END)
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    cur.execute("INSERT INTO phonedata VALUES(?,?)",([parnum,description]))
    connect.commit()
    cleargui()
def getdata():
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    thedata = cur.execute("SELECT * FROM phonedata")
    cleargui()
    for row in thedata:
        textwindow.insert("100.0","\n"+row[0]+"\n"+row[1]+"\n---------------------------------------------------------")
def findpar():
    cleargui()
    parnum=findentry.get()
    connect = sqlite3.connect("mydata.db")
    cur=connect.cursor()
    thedata = cur.execute("SELECT * FROM phonedata WHERE parcelnum = ?",([parnum]))
    for row in thedata:
        textwindow.insert("0.1",row[0]+'\n\n'+row[1])
    parnumber.delete(0,END)
def delrecord():
    parnum=findentry.get()
    connect=sqlite3.connect("mydata.db")
    cur=connect.cursor()
    cur.execute("DELETE FROM phonedata WHERE parcelnum = ?",([parnum]))
    connect.commit() #will not delete without this!
    cleargui()
    findentry.delete(0,END)
    getdata()

connectdb()#creates a database if none exists.

root=Tk()
root.title("PARCEL INFO")
root.config(bg='dark blue')
lbl=Label(root,text="Parcel number").pack()

menu2=Toplevel(root)
menu2.config(bg="red")

parnumber=Entry(root,text="Deed number")
parnumber.pack()

textwindow=Text(root,background='white')
textwindow.pack()

btn=Button(root,text='Add to Database ',command=addtodatabase)
btn.pack()

btn2=Button(root,text="Show data",command=getdata)
btn2.pack()

btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()

findentry=Entry(menu2)
findentry.pack()

btn4=Button(menu2,text="Find parcel",command= findpar)
btn4.pack(padx=10,pady=10)

delbutton=Button(menu2,text='DELETE',command=delrecord)
delbutton.pack(padx=10,pady=10)

root.mainloop()


Saturday, November 30, 2013

Working on a database program for work, it saves letters.

from Tkinter import *
import sqlite3
#Witten by Steve Atchison 11/19/2013 for SHAWNEE COUNTY
def listletters():
    connect =sqlite3.connect("LETTER_data.db")
    cur = connect.cursor()
    letter = cur.execute("SELECT * FROM letters")
    cleargui()
    for row in letter:
        textwindow.insert("500.0",row[2])
   
def cleargui():
    textwindow.delete("1.0",END)
    deed.delete(0,END)
    pinnum.delete(0,END)
   
def connectdb():
    connect = sqlite3.connect("LETTER_data.db")
    cur = connect.cursor()
    cur.execute("CREATE TABLE IF NOT EXISTS letters(quickref text,pin text, letter text)")

def addtodatabase():
    quickref=deed.get()
    pin=pinnum.get()
    letter=textwindow.get("1.0",END)
   
    connect = sqlite3.connect("LETTER_data.db")
    cur=connect.cursor()
    cur.execute("INSERT INTO letters VALUES(?,?,?)",([quickref,pin,letter]))
    connect.commit()
    cleargui()

def getdata():
    connect = sqlite3.connect("LETTER_data.db")
    cur=connect.cursor()
    thedata = cur.execute("SELECT * FROM letters")
    for row in thedata:
        textwindow.insert("500.0",row[0]+"\n"+row[1]+"\n")

def addlettertotext():
    f=open('theletter.txt','r')
    for line in f:
        textwindow.insert("50.0",line)

def findquick():  
    cleargui()
    pinnum=quickent.get()
    connect = sqlite3.connect("LETTER_data.db")
    cur=connect.cursor()
    theletter = cur.execute("SELECT letter FROM letters where pin = (?)",([pinnum]))
    for line in theletter:
        textwindow.insert("50.0",line)
    quickent.delete(0,END)

def listpins():
    cleargui()
    connect=sqlite3.connect("LETTER_data.db")
    cur=connect.cursor()
    parcelnum = cur.execute("SELECT pin FROM letters")
    for row in parcelnum:
        print(row[0])
        textwindow.insert("100.0",row[0]+"\n")   

   
connectdb()#creates a database if none exists.

root=Tk()
root.title("LETTER DATABASE")
root.config(bg='green')
root.geometry('900x700')

top=Toplevel(root)
top.geometry("300x200")
top.config(bg="orange")
top.title("Add letter to database form")

top2=Toplevel(root)
top2.geometry("300x100")
top2.config(bg="light blue")
top2.title("List options")

lbl=Label(top,text="Quick Ref Number").pack()

deed=Entry(top)
deed.pack()

lbl2=Label(top,text="Parcel number").pack()
pinnum=Entry(top)
pinnum.pack()

textwindow=Text(root,width='800',height=35,background='white')
textwindow.pack()

add_to_txt=Button(top,text="IMPORT theletter.txt", command=addlettertotext)
add_to_txt.pack()

addtodatabase=Button(top,text='Add letter to Database ',command=addtodatabase)
addtodatabase.pack()

getpidbtn=Button(top2,text="List Letters", command= listletters)
getpidbtn.pack()

btn3=Button(root,text="Clear window",command=cleargui)
btn3.pack()

btn5=Button(root,text="Find using PIN", command=findquick)
btn5.pack()

listpinbtn=Button(top2,text="List PIN numbers",command=listpins)
listpinbtn.pack()

quickent=Entry(root)
quickent.pack()
root.mainloop()
#DON'T FORGET TO ADD THE QUICK REF NUMBER

Followers

Blog Archive

About Me

My photo
Biking helps me to cope with life.