Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » программа-обертка БД (GUI) (MySQL + Python24 + wxPython) [RSS Feed]

#1 Дек. 28, 2006 10:52:04

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

программа-обертка БД (GUI) (MySQL + Python24 + wxPython)

Всем привет!

есть программа - wxPython+MySQL - подскажите пожалуйста, как лучше доработать

Frames.py

# -*- coding: cp1251 -*-
"""Формы для клиентской базы"""
import wx
import sys
##import string
import pysqlite2 as db
from MySQLdb import connections
def Connect(db,host,user,password):
    con=connections.Connection(db=db, host=host, user=user, passwd=password)
    return con.cursor()
def Select(curs, table_name="fiz", columns="*"):
    #t=open("c:/text.txt", "w")
    curs.execute("set character set cp1251")
    row=curs.execute("SELECT %(columns)s from %(table_name)s;"% {'table_name':table_name, 'columns':columns})
    rw=curs.fetchone()
    #for i in range(row):
        #print "number: %s\t fio: %s" % (rw[1],rw[2])
    #    rw=curs.fetchone()
    #    t.write(','.join([str(r) for r in rw]))
    #    t.write('\n')
    #t.close
def Insert(curs,list):
    row=curs.execute("INSERT INTO device VALUES(0,'%s','%s')" % (list[0],list[1]))
   
class FrameFiz(wx.Frame):
    #создание формы
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(50, 20), size=(700, 510))
        
        panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER)
        Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)
        Font1 = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)
        l_num = wx.StaticText(panel, -1, "Номер кл.", (10, 10), size=(80, 20))
        l_num.SetFont(Font1)
        self.num = wx.TextCtrl(panel, -1, "", (100, 10), size=(230, 20))
        self.num.SetFont(Font)
        
        l_fam = wx.StaticText(panel, -1, "Фамилия", (10, 32), size=(80, 20))
        l_fam.SetFont(Font1)
        self.fam = wx.TextCtrl(panel, -1, "", (100, 32), size=(230, 20))
        self.fam.SetFont(Font)
        l_imya = wx.StaticText(panel, -1, "Имя", (10, 54), size=(80, 20))
        l_imya.SetFont(Font1)
        self.imya = wx.TextCtrl(panel, -1, "", (100, 54), size=(230, 20))
        self.imya.SetFont(Font)
        l_otch = wx.StaticText(panel, -1, "Отчество", (10, 76), size=(80, 20))
        l_otch.SetFont(Font1)
        self.otch = wx.TextCtrl(panel, -1, "", (100, 76), size=(230, 20))
        self.otch.SetFont(Font)
        l_droj = wx.StaticText(panel, -1, "Дата рожд.", (10, 98), size=(80, 20))
        l_droj.SetFont(Font1)
        self.droj = wx.TextCtrl(panel, -1, "", (100, 98), size=(230, 20))
        self.droj.SetFont(Font)
        l_mroj = wx.StaticText(panel, -1, "Место рожд.", (10, 120), size=(80, 20))
        l_mroj.SetFont(Font1)
        self.mroj = wx.TextCtrl(panel, -1, "", (100, 120), size=(230, 40), style=wx.TE_MULTILINE)
        self.mroj.SetFont(Font)
        l_graj = wx.StaticText(panel, -1, "Гражданство", (10, 162), size=(80, 20))
        l_graj.SetFont(Font1)
        self.graj = wx.TextCtrl(panel, -1, "", (100, 162), size=(230, 20))
        self.graj.SetFont(Font)
        l_adreg = wx.StaticText(panel, -1, "Адрес регист.", (10, 184), size=(80, 20))
        l_adreg.SetFont(Font1)
        self.adreg = wx.TextCtrl(panel, -1, "", (100, 184), size=(230, 40), style=wx.TE_MULTILINE)
        self.adreg.SetFont(Font)
        btn_adr1 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 226), size=(200, 20))
        btn_adr1.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr1, btn_adr1)
        l_adfak = wx.StaticText(panel, -1, "Адрес фактич.", (10, 248), size=(80, 20))
        l_adfak.SetFont(Font1)
        self.adfak = wx.TextCtrl(panel, -1, "", (100, 248), size=(230, 40), style=wx.TE_MULTILINE)
        self.adfak.SetFont(Font)
        btn_adr2 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 290), size=(200, 20))
        btn_adr2.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr2, btn_adr2)
        l_email = wx.StaticText(panel, -1, "E-mail", (10, 312), size=(80, 20))
        l_email.SetFont(Font1)
        self.email = wx.TextCtrl(panel, -1, "", (100, 312), size=(230, 20))
        self.email.SetFont(Font)
        l_dok = wx.StaticText(panel, -1, "Документ", (10, 334), size=(80, 20))
        l_dok.SetFont(Font1)
        self.dok = wx.TextCtrl(panel, -1, "", (100, 334), size=(230, 40), style=wx.TE_MULTILINE)
        self.dok.SetFont(Font)
        btn_dok = wx.Button(panel, -1, "Ввести док-т по формату", (100, 376), size=(200, 20))
        btn_dok.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonDok, btn_dok)
        l_migr = wx.StaticText(panel, -1, "Мигр. карта", (10, 398), size=(80, 20))
        l_migr.SetFont(Font1)
        self.migr = wx.TextCtrl(panel, -1, "", (100, 398), size=(230, 20))
        self.migr.SetFont(Font)
        l_inost = wx.StaticText(panel, -1, "Док. иностр.", (10, 420), size=(80, 20))
        l_inost.SetFont(Font1)
        self.inost = wx.TextCtrl(panel, -1, "", (100, 420), size=(230, 20))
        self.inost.SetFont(Font)
        l_telfax = wx.StaticText(panel, -1, "Тел/факс", (350, 10), size=(80, 20))
        l_telfax.SetFont(Font1)
        self.telfax = wx.TextCtrl(panel, -1, "", (450, 10), size=(230, 20))
        self.telfax.SetFont(Font)
        l_drlico = wx.StaticText(panel, -1, "В пользу др.л.", (350, 32), size=(80, 20))
        l_drlico.SetFont(Font1)
        self.drlico = wx.TextCtrl(panel, -1, "", (450, 32), size=(230, 20))
        self.drlico.SetFont(Font)
        l_urisk = wx.StaticText(panel, -1, "Уровень риска", (350, 54), size=(80, 20))
        l_urisk.SetFont(Font1)
        self.urisk = wx.TextCtrl(panel, -1, "", (450, 54), size=(230, 20))
        self.urisk.SetFont(Font)
        l_obrisk = wx.StaticText(panel, -1, "Обоснование", (350, 76), size=(80, 20))
        l_obrisk.SetFont(Font1)
        self.obrisk = wx.TextCtrl(panel, -1, "", (450, 76), size=(230, 40), style=wx.TE_MULTILINE)
        self.obrisk.SetFont(Font)
        l_dotkr = wx.StaticText(panel, -1, "Дата откр. счета", (350, 118), size=(80, 20))
        l_dotkr.SetFont(Font1)
        self.dotkr = wx.TextCtrl(panel, -1, "", (450, 118), size=(230, 20))
        self.dotkr.SetFont(Font)
        l_sototkr = wx.StaticText(panel, -1, "Сотрудник откр.", (350, 140), size=(80, 20))
        l_sototkr.SetFont(Font1)
        self.sototkr = wx.TextCtrl(panel, -1, "", (450, 140), size=(230, 20))
        self.sototkr.SetFont(Font)
        l_sotutv = wx.StaticText(panel, -1, "Сотрудник утв.", (350, 162), size=(80, 20))
        l_sotutv.SetFont(Font1)
        self.sotutv = wx.TextCtrl(panel, -1, "", (450, 162), size=(230, 20))
        self.sotutv.SetFont(Font)
        l_kursch = wx.StaticText(panel, -1, "Куратор счета", (350, 184), size=(80, 20))
        l_kursch.SetFont(Font1)
        self.kursch = wx.TextCtrl(panel, -1, "", (450, 184), size=(230, 20))
        self.kursch.SetFont(Font)
        l_dzap = wx.StaticText(panel, -1, "Дата заполн.", (350, 206), size=(80, 20))
        l_dzap.SetFont(Font1)
        self.dzap = wx.TextCtrl(panel, -1, "", (450, 206), size=(230, 20))
        self.dzap.SetFont(Font)
        l_dobn = wx.StaticText(panel, -1, "Дата обновлен.", (350, 228), size=(80, 20))
        l_dobn.SetFont(Font1)
        self.dobn = wx.TextCtrl(panel, -1, "", (450, 228), size=(230, 20))
        self.dobn.SetFont(Font)
        l_srokhran = wx.StaticText(panel, -1, "Срок хранения", (350, 250), size=(80, 20))
        l_srokhran.SetFont(Font1)
        self.srokhran = wx.TextCtrl(panel, -1, "", (450, 250), size=(230, 20))
        self.srokhran.SetFont(Font)
        l_fiozap = wx.StaticText(panel, -1, "ФИО заполн.", (350, 272), size=(80, 20))
        l_fiozap.SetFont(Font1)
        self.fiozap = wx.TextCtrl(panel, -1, "", (450, 272), size=(230, 20))
        self.fiozap.SetFont(Font)
        l_dzakr = wx.StaticText(panel, -1, "Дата закрытия", (350, 294), size=(80, 20))
        l_dzakr.SetFont(Font1)
        self.dzakr = wx.TextCtrl(panel, -1, "", (450, 294), size=(230, 20))
        self.dzakr.SetFont(Font)
        btn_save = wx.Button(panel, -1, "Сохранить", (350, 376), size=(100, 20))
        btn_save.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonSave, btn_save)
        
    def OnButtonAdr1(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adreg.SetValue(tmp)
    def OnButtonAdr2(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adfak.SetValue(tmp)
    def OnButtonDok(self, evt):
        tmp=""
        doks=DialogDok()
        if doks.ShowModal() == wx.ID_OK:
            tmp=u'1 '+doks.ind.GetValue()+' '+doks.reg.GetValue()+u' выдан '+doks.rai.GetValue()+' '+doks.gor.GetValue()+' '+doks.nas.GetValue()
        doks.Destroy()
        self.dok.SetValue(tmp)
    def OnButtonSave(self, evt):
        """!"""
        curs=Connect('cb','192.168.200.165','root','1111')
        Select(curs)
        curs.execute("set character set utf8")
        # list=string.split(sys.stdin.readline())
        #Insert(curs,list)
        #Select(curs)
        
class FramePred(wx.Frame):
    #создание формы
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(50, 20), size=(700, 510))
        
        panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER)
        Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)
        Font1 = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)
        l_num = wx.StaticText(panel, -1, "Номер кл.", (10, 10), size=(80, 20))
        l_num.SetFont(Font1)
        self.num = wx.TextCtrl(panel, -1, "", (100, 10), size=(230, 20))
        self.num.SetFont(Font)
        l_fam = wx.StaticText(panel, -1, "Фамилия", (10, 32), size=(80, 20))
        l_fam.SetFont(Font1)
        self.fam = wx.TextCtrl(panel, -1, "", (100, 32), size=(230, 20))
        self.fam.SetFont(Font)
        l_imya = wx.StaticText(panel, -1, "Имя", (10, 54), size=(80, 20))
        l_imya.SetFont(Font1)
        self.imya = wx.TextCtrl(panel, -1, "", (100, 54), size=(230, 20))
        self.imya.SetFont(Font)
        l_otch = wx.StaticText(panel, -1, "Отчество", (10, 76), size=(80, 20))
        l_otch.SetFont(Font1)
        self.otch = wx.TextCtrl(panel, -1, "", (100, 76), size=(230, 20))
        self.otch.SetFont(Font)
        l_droj = wx.StaticText(panel, -1, "Дата рожд.", (10, 98), size=(80, 20))
        l_droj.SetFont(Font1)
        self.droj = wx.TextCtrl(panel, -1, "", (100, 98), size=(230, 20))
        self.droj.SetFont(Font)
        l_mroj = wx.StaticText(panel, -1, "Место рожд.", (10, 120), size=(80, 20))
        l_mroj.SetFont(Font1)
        self.mroj = wx.TextCtrl(panel, -1, "", (100, 120), size=(230, 40), style=wx.TE_MULTILINE)
        self.mroj.SetFont(Font)
        l_graj = wx.StaticText(panel, -1, "Гражданство", (10, 162), size=(80, 20))
        l_graj.SetFont(Font1)
        self.graj = wx.TextCtrl(panel, -1, "", (100, 162), size=(230, 20))
        self.graj.SetFont(Font)
        l_adreg = wx.StaticText(panel, -1, "Адрес регист.", (10, 184), size=(80, 20))
        l_adreg.SetFont(Font1)
        self.adreg = wx.TextCtrl(panel, -1, "", (100, 184), size=(230, 40), style=wx.TE_MULTILINE)
        self.adreg.SetFont(Font)
        btn_adr1 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 226), size=(200, 20))
        btn_adr1.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr1, btn_adr1)
        l_adfak = wx.StaticText(panel, -1, "Адрес фактич.", (10, 248), size=(80, 20))
        l_adfak.SetFont(Font1)
        self.adfak = wx.TextCtrl(panel, -1, "", (100, 248), size=(230, 40), style=wx.TE_MULTILINE)
        self.adfak.SetFont(Font)
        btn_adr2 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 290), size=(200, 20))
        btn_adr2.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr2, btn_adr2)
        l_email = wx.StaticText(panel, -1, "E-mail", (10, 312), size=(80, 20))
        l_email.SetFont(Font1)
        self.email = wx.TextCtrl(panel, -1, "", (100, 312), size=(230, 20))
        self.email.SetFont(Font)
        l_dok = wx.StaticText(panel, -1, "Документ", (10, 334), size=(80, 20))
        l_dok.SetFont(Font1)
        self.dok = wx.TextCtrl(panel, -1, "", (100, 334), size=(230, 40), style=wx.TE_MULTILINE)
        self.dok.SetFont(Font)
        btn_dok = wx.Button(panel, -1, "Ввести док-т по формату", (100, 376), size=(200, 20))
        btn_dok.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonDok, btn_dok)
        l_svedreg = wx.StaticText(panel, -1, "Регистрация", (10, 398), size=(80, 20))
        l_svedreg.SetFont(Font1)
        self.svedreg = wx.TextCtrl(panel, -1, "", (100, 398), size=(230, 40), style=wx.TE_MULTILINE)
        self.svedreg.SetFont(Font)
        l_svedlic = wx.StaticText(panel, -1, "Лицензия", (350, 10), size=(80, 20))
        l_svedlic.SetFont(Font1)
        self.svedlic = wx.TextCtrl(panel, -1, "", (450, 10), size=(230, 20))
        self.svedlic.SetFont(Font)
        l_drlico = wx.StaticText(panel, -1, "В пользу др.л.", (350, 32), size=(80, 20))
        l_drlico.SetFont(Font1)
        self.drlico = wx.TextCtrl(panel, -1, "", (450, 32), size=(230, 20))
        self.drlico.SetFont(Font)
        l_telfax = wx.StaticText(panel, -1, "Тел/факс", (350, 54), size=(80, 20))
        l_telfax.SetFont(Font1)
        self.telfax = wx.TextCtrl(panel, -1, "", (450, 54), size=(230, 20))
        self.telfax.SetFont(Font)
        l_inn = wx.StaticText(panel, -1, "ИНН", (350, 76), size=(80, 20))
        l_inn.SetFont(Font1)
        self.inn = wx.TextCtrl(panel, -1, "", (450, 76), size=(230, 20))
        self.inn.SetFont(Font)
        l_urisk = wx.StaticText(panel, -1, "Уровень риска", (350, 98), size=(80, 20))
        l_urisk.SetFont(Font1)
        self.urisk = wx.TextCtrl(panel, -1, "", (450, 98), size=(230, 20))
        self.urisk.SetFont(Font)
        l_obrisk = wx.StaticText(panel, -1, "Обоснование", (350, 120), size=(80, 20))
        l_obrisk.SetFont(Font1)
        self.obrisk = wx.TextCtrl(panel, -1, "", (450, 120), size=(230, 20))
        self.obrisk.SetFont(Font)
        l_dotkr = wx.StaticText(panel, -1, "Дата откр. счета", (350, 142), size=(80, 20))
        l_dotkr.SetFont(Font1)
        self.dotkr = wx.TextCtrl(panel, -1, "", (450, 142), size=(230, 20))
        self.dotkr.SetFont(Font)
        l_sototkr = wx.StaticText(panel, -1, "Сотрудник откр.", (350, 164), size=(80, 20))
        l_sototkr.SetFont(Font1)
        self.sototkr = wx.TextCtrl(panel, -1, "", (450, 164), size=(230, 20))
        self.sototkr.SetFont(Font)
        l_sotutv = wx.StaticText(panel, -1, "Сотрудник утв.", (350, 186), size=(80, 20))
        l_sotutv.SetFont(Font1)
        self.sotutv = wx.TextCtrl(panel, -1, "", (450, 186), size=(230, 20))
        self.sotutv.SetFont(Font)
        l_kursch = wx.StaticText(panel, -1, "Куратор счета", (350, 208), size=(80, 20))
        l_kursch.SetFont(Font1)
        self.kursch = wx.TextCtrl(panel, -1, "", (450, 208), size=(230, 20))
        self.kursch.SetFont(Font)
        l_dzap = wx.StaticText(panel, -1, "Дата заполн.", (350, 230), size=(80, 20))
        l_dzap.SetFont(Font1)
        self.dzap = wx.TextCtrl(panel, -1, "", (450, 230), size=(230, 20))
        self.dzap.SetFont(Font)
        l_dobn = wx.StaticText(panel, -1, "Дата обновлен.", (350, 252), size=(80, 20))
        l_dobn.SetFont(Font1)
        self.dobn = wx.TextCtrl(panel, -1, "", (450, 252), size=(230, 20))
        self.dobn.SetFont(Font)
        l_srokhran = wx.StaticText(panel, -1, "Срок хранения", (350, 274), size=(80, 20))
        l_srokhran.SetFont(Font1)
        self.srokhran = wx.TextCtrl(panel, -1, "", (450, 274), size=(230, 20))
        self.srokhran.SetFont(Font)
        l_fiozap = wx.StaticText(panel, -1, "ФИО заполн.", (350, 296), size=(80, 20))
        l_fiozap.SetFont(Font1)
        self.fiozap = wx.TextCtrl(panel, -1, "", (450, 296), size=(230, 20))
        self.fiozap.SetFont(Font)
        l_dzakr = wx.StaticText(panel, -1, "Дата закрытия", (350, 318), size=(80, 20))
        l_dzakr.SetFont(Font1)
        self.dzakr = wx.TextCtrl(panel, -1, "", (450, 318), size=(230, 20))
        self.dzakr.SetFont(Font)
    def OnButtonAdr(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.mroj.SetValue(tmp)
       
    def OnButtonAdr1(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adreg.SetValue(tmp)
    def OnButtonAdr2(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adfak.SetValue(tmp)
    def OnButtonDok(self, evt):
        tmp=""
        doks=DialogDok()
        if doks.ShowModal() == wx.ID_OK:
            tmp=u'1 '+doks.ind.GetValue()+' '+doks.reg.GetValue()+u' выдан '+doks.rai.GetValue()+' '+doks.gor.GetValue()+' '+doks.nas.GetValue()
        doks.Destroy()
        self.dok.SetValue(tmp)
        
class FrameUr(wx.Frame):
    #создание формы
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(50, 20), size=(700, 510))
        
        panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER)        
        Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD)
        Font1 = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL)
        l_num = wx.StaticText(panel, -1, "Номер кл.", (10, 10), size=(80, 20))
        l_num.SetFont(Font1)
        self.num = wx.TextCtrl(panel, -1, "", (100, 10), size=(230, 20))
        self.num.SetFont(Font)
        l_name = wx.StaticText(panel, -1, "Наименование", (10, 32), size=(80, 20))
        l_name.SetFont(Font1)
        self.name = wx.TextCtrl(panel, -1, "", (100, 32), size=(230, 20))
        self.name.SetFont(Font)
        l_opf = wx.StaticText(panel, -1, "Орг.-прав. форма", (10, 54), size=(80, 20))
        l_opf.SetFont(Font1)
        self.opf = wx.TextCtrl(panel, -1, "", (100, 54), size=(230, 20))
        self.opf.SetFont(Font)
        l_ogrn = wx.StaticText(panel, -1, "ОГРН", (10, 76), size=(80, 20))
        l_ogrn.SetFont(Font1)
        self.ogrn = wx.TextCtrl(panel, -1, "", (100, 76), size=(230, 20))
        self.ogrn.SetFont(Font)
        l_dreg = wx.StaticText(panel, -1, "Дата регистр.", (10, 98), size=(80, 20))
        l_dreg.SetFont(Font1)
        self.dreg = wx.TextCtrl(panel, -1, "", (100, 98), size=(230, 20))
        self.dreg.SetFont(Font)
        l_mreg = wx.StaticText(panel, -1, "Место регистр.", (10, 120), size=(80, 20))
        l_mreg.SetFont(Font1)
        self.mreg = wx.TextCtrl(panel, -1, "", (100, 120), size=(230, 20))
        self.mreg.SetFont(Font)
        l_regor = wx.StaticText(panel, -1, "Рег. орган", (10, 142), size=(80, 20))
        l_regor.SetFont(Font1)
        self.regor = wx.TextCtrl(panel, -1, "", (100, 142), size=(230, 20))
        self.regor.SetFont(Font)
        l_adfak = wx.StaticText(panel, -1, "Адрес факт.", (10, 164), size=(80, 20))
        l_adfak.SetFont(Font1)
        self.adfak = wx.TextCtrl(panel, -1, "", (100, 164), size=(230, 40), style=wx.TE_MULTILINE)
        self.adfak.SetFont(Font)
        btn_adr1 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 206), size=(200, 20))
        btn_adr1.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr1, btn_adr1)
        l_adpoch = wx.StaticText(panel, -1, "Адрес почт.", (10, 228), size=(80, 20))
        l_adpoch.SetFont(Font1)
        self.adpoch = wx.TextCtrl(panel, -1, "", (100, 228), size=(230, 40), style=wx.TE_MULTILINE)
        self.adpoch.SetFont(Font)
        btn_adr2 = wx.Button(panel, -1, "Ввести адрес по формату", (100, 270), size=(200, 20))
        btn_adr2.SetFont(Font)
        self.Bind(wx.EVT_BUTTON, self.OnButtonAdr2, btn_adr2)
        l_email = wx.StaticText(panel, -1, "E-mail", (10, 292), size=(80, 20))
        l_email.SetFont(Font1)
        self.email = wx.TextCtrl(panel, -1, "", (100, 292), size=(230, 20))
        self.email.SetFont(Font)
        l_svedor = wx.StaticText(panel, -1, "Свед. орган", (10, 314), size=(80, 20))
        l_svedor.SetFont(Font1)
        self.svedor = wx.TextCtrl(panel, -1, "", (100, 314), size=(230, 20))
        self.svedor.SetFont(Font)
        
    def OnButtonAdr1(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adfak.SetValue(tmp)
    def OnButtonAdr2(self, evt):
        tmp=""
        adres=DialogAdres()
        if adres.ShowModal() == wx.ID_OK:
            tmp=adres.ind.GetValue()+','+adres.reg.GetValue()+','+adres.rai.GetValue()+','+adres.gor.GetValue()+','+adres.nas.GetValue()+','
            tmp=tmp+adres.ul.GetValue()+','+adres.dom.GetValue()+','+adres.kor.GetValue()+','+adres.str.GetValue()+','+adres.kvar.GetValue()
        adres.Destroy()
        self.adpoch.SetValue(tmp)
        
class DialogAdres(wx.Dialog):
    def __init__(self):
        wx.Dialog.__init__(self, None, -1, 'Адрес по формату', size=(600, 300))
        line = wx.StaticLine(self, -1, (10, 232), size=(330, -1))
        okButton = wx.Button(self, wx.ID_OK, "OK", pos=(15, 240))
        okButton.SetDefault()
        cancelButton = wx.Button(self, wx.ID_CANCEL, "Отмена", pos=(115, 240))
        l_ind = wx.StaticText(self, -1, "Индекс", (10, 10), size=(80, 20))
        self.ind = wx.TextCtrl(self, -1, "", (90, 10), size=(100, 20))
        l_reg = wx.StaticText(self, -1, "Регион", (10, 32), size=(80, 20))
        self.reg = wx.TextCtrl(self, -1, "", (90, 32), size=(250, 20))
        l_rai = wx.StaticText(self, -1, "Район", (10, 54), size=(80, 20))
        self.rai = wx.TextCtrl(self, -1, "", (90, 54), size=(250, 20))
        l_gor = wx.StaticText(self, -1, "Город", (10, 76), size=(80, 20))
        self.gor = wx.TextCtrl(self, -1, "", (90, 76), size=(250, 20))
        l_nas = wx.StaticText(self, -1, "Насел. пункт", (10, 98), size=(80, 20))
        self.nas = wx.TextCtrl(self, -1, "", (90, 98), size=(250, 20))
        l_ul = wx.StaticText(self, -1, "Улица", (10, 120), size=(80, 20))
        self.ul = wx.TextCtrl(self, -1, "", (90, 120), size=(250, 20))
        l_dom = wx.StaticText(self, -1, "Номер дома", (10, 142), size=(80, 20))
        self.dom = wx.TextCtrl(self, -1, "", (90, 142), size=(100, 20))
        l_kor = wx.StaticText(self, -1, "Корпус", (10, 164), size=(80, 20))
        self.kor = wx.TextCtrl(self, -1, "", (90, 164), size=(100, 20))
        l_str = wx.StaticText(self, -1, "Строение", (10, 186), size=(80, 20))
        self.str = wx.TextCtrl(self, -1, "", (90, 186), size=(100, 20))
        l_kvar = wx.StaticText(self, -1, "Квартира", (10, 208), size=(80, 20))
        self.kvar = wx.TextCtrl(self, -1, "", (90, 208), size=(100, 20))
        box = wx.StaticBox(self, -1, "Варианты ввода текста", (350, 10), size=(240, 250))
        t = wx.StaticText(self, -1, "Индекс и регион обязательны!\n\nРегион: Карачаево-Черкесская респ; Ставропольский край; Волгоградская обл\n\n"+
                          "Район: Прикубанский р-н\n\n"+
                          "Город: Черкесск г\n\nНасел.пункт: Псыж аул; Дружба х; Первомайское с\n\n"+
                          "Улица: Пушкинская ул; Пятигорское шоссе; Ленина пр-кт; Московский мкр", (360, 30), size=(210, 220))
class DialogDok(wx.Dialog):
    def __init__(self):
        wx.Dialog.__init__(self, None, -1, 'Документ по формату', size=(600, 180))
        line = wx.StaticLine(self, -1, (10, 120), size=(330, -1))
        okButton = wx.Button(self, wx.ID_OK, "OK", pos=(15, 125))
        okButton.SetDefault()
        cancelButton = wx.Button(self, wx.ID_CANCEL, "Отмена", pos=(115, 125))
        l_ind = wx.StaticText(self, -1, "Серия", (10, 10), size=(80, 20))
        self.ind = wx.TextCtrl(self, -1, "", (90, 10), size=(100, 20))
        l_reg = wx.StaticText(self, -1, "Номер", (10, 32), size=(80, 20))
        self.reg = wx.TextCtrl(self, -1, "", (90, 32), size=(250, 20))
        l_rai = wx.StaticText(self, -1, "Выдан", (10, 54), size=(80, 20))
        self.rai = wx.TextCtrl(self, -1, "", (90, 54), size=(250, 20))
        l_gor = wx.StaticText(self, -1, "Дата", (10, 76), size=(80, 20))
        self.gor = wx.TextCtrl(self, -1, "", (90, 76), size=(250, 20))
        l_nas = wx.StaticText(self, -1, "Код подразд.", (10, 98), size=(80, 20))
        self.nas = wx.TextCtrl(self, -1, "", (90, 98), size=(250, 20))
        box = wx.StaticBox(self, -1, "Варианты ввода текста", (350, 10), size=(240, 130))
        t = wx.StaticText(self, -1, "Серия: 9102\nНомер: 777777\nВыдан: Черкесским ГУВД КЧР\n"+
                          "Дата: 01.07.2005\nКод подразд.: 093-002", (360, 30), size=(210, 100))


Test.pyw
# -*- coding: cp1251 -*-
#!/usr/bin/python
import wx
##import os
##import string
##import re
##import datetime
##from Frames import *
import Frames
class MyFrame(wx.Frame):
    #создание формы
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, -1, title,
                          pos=(100, 100), size=(350, 220))
        
        # Создание МЕНЮ
        menuBar = wx.MenuBar()
        # Создание подменю 
        menu1 = wx.Menu()
        
        menu1.Append(11, "С&читать файл", "Открытие файла выгрузки из Опердня")
        menu1.Append(12, "К&оррекция 40911", "Коррекция переводов без открытия счета")
        menu1.Append(13, "С&охранить изменения", "Сохранение внесенных изменений")
        menu1.Append(14, "П&ечать реестра", "Печать реестра выгруженных платежек")
        menu1.AppendSeparator()
        menu1.Append(15, "В&ыход\tAlt-X", "Выход из программы")
        # Описание действий в меню
        self.Bind(wx.EVT_MENU, self.OnMenu11, id=11)
        self.Bind(wx.EVT_MENU, self.OnMenu12, id=12)
        self.Bind(wx.EVT_MENU, self.OnMenu13, id=13)
        self.Bind(wx.EVT_MENU, self.OnMenu14, id=14)
        self.Bind(wx.EVT_MENU, self.OnMenu15, id=15)
        
        # Добавление в МЕНЮ подменю
        menuBar.Append(menu1, "&МЕНЮ")
        menu2 = wx.Menu()
        
        menu2.Append(21, "О& программе", "Описание программы")
        
        # Описание действий в меню
        self.Bind(wx.EVT_MENU, self.OnMenu21, id=21)
                
        # Добавление в МЕНЮ подменю
        menuBar.Append(menu2, "&Информация")
        self.SetMenuBar(menuBar)
        self.CreateStatusBar()
        # Создание панели формы
        panel = wx.Panel(self, -1, style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER)
        # Создание полей формы
        
        Font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)
        Font1 = wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL)
        line1 = wx.StaticLine(panel, -1, (10, 10), size=(320, -1))
        btn1 = wx.Button(panel, -1, " Создать нового клиента ", (50, 20), size=(250,30))
        btn2 = wx.Button(panel, -1, " Отобразить своих клиентов ", (50, 60), size=(250,30))
        btn3 = wx.Button(panel, -1, " Отобразить всех клиентов ", (50, 100), size=(250,30))
        
        line2 = wx.StaticLine(panel, -1, (10, 140), size=(320, -1))
        
        btn1.SetFont(Font)
        btn2.SetFont(Font)
        btn3.SetFont(Font)
                     
        # bind the button events to handlers
        self.Bind(wx.EVT_BUTTON, self.OnButton1, btn1)
        self.Bind(wx.EVT_BUTTON, self.OnButton2, btn2)
        self.Bind(wx.EVT_BUTTON, self.OnButton3, btn3)
        
                
    def OnMenu11 (self, evt):
        #Открытие файла, считывание данных и запись в таблицу dbf
        """!"""
                
    def OnMenu12(self, evt):
        #Коррекция 40911 - для счетов 40911 необходимо менять имя плательщика (по умолчанию Банк)
        #Фамилии плательщиков подставляются из файла foreclnt.txt при совпадении реквизитов документа
        """!"""             
         
    def OnMenu13(self, evt):
        #Формирование откорректированной выгрузки
        """!"""
    def OnMenu14(self, evt):
        #Формирование реестра платежек
        #реестр печатается из FAR на матричном принтере, поэтому меняю кодировку
        """!"""
          
    def OnMenu15(self, evt):
        #Выход из программы
        self.Close()
        
    def OnMenu21(self, evt):
        #мой выпендрёж, нужно же было о себе хоть словечко сказать)) 
        dlm = wx.MessageDialog(self, 'Программа "Клиентская база" версия 1.0\n'+
                               'Разработчик: Тарахова Алина Батыровна\n'+
                               'Дата создания: 26.10.2006                               г. Черкесск',
                               'О программе',
                               wx.OK | wx.ICON_INFORMATION
                               )
        dlm.ShowModal()
        dlm.Destroy()
    def OnButton1(self, evt):
        #Создание нового клиента
        lst = [ u'Физ. лицо', u'Предприниматель', u'Юр. лицо' ]
        dlg = wx.SingleChoiceDialog(self, 'Выберите тип клиента', 'Выбор типа клиента',
                                    lst, wx.CHOICEDLG_STYLE)
        if dlg.ShowModal() == wx.ID_OK:
            tip=dlg.GetStringSelection()
        dlg.Destroy()
        if tip == u'Физ. лицо':
            frame=Frames.FrameFiz(None, 'Создание нового клиента - физ. лица')
            frame.Show(True)
            return True
        elif tip == u'Предприниматель':
            frame=Frames.FramePred(None, 'Создание нового клиента - предпринимателя')
            frame.Show(True)
            return True
        elif tip == u'Юр. лицо':
            frame=Frames.FrameUr(None, 'Создание нового клиента - юр. лица')
            frame.Show(True)
            return True
    def OnButton2(self, evt):
        #Переход на следующую запись в форме
        """!"""
    def OnButton3(self, evt):
        #Загрузка данных из таблицы в форму
        """!""" 
        
class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, 'Клиентская база ЗАО АКБ "Кавказ-Гелиос"')
        self.SetTopWindow(frame)
        print "Окно вывода информации и ошибок:"
        print
        frame.Show(True)
        return True
        
app = MyApp(redirect=True)
app.MainLoop()

PS критика приветствуется :)



Офлайн

#2 Май 10, 2007 08:26:21

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

программа-обертка БД (GUI) (MySQL + Python24 + wxPython)

Проект закончен! По-моему получилось очень даже симпатично)) прилагаю скриншот)))

Вру, не прилагаю, он не присоединяется.



Отредактировано (Май 10, 2007 08:28:57)

Офлайн

#3 Май 14, 2007 14:13:47

alafin
Root
От: Киев, Украина
Зарегистрирован: 2006-04-06
Сообщения: 756
Репутация: +  3  -
Профиль   Отправить e-mail  

программа-обертка БД (GUI) (MySQL + Python24 + wxPython)

Сам скриншот:



Офлайн

#4 Май 14, 2007 15:48:05

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

программа-обертка БД (GUI) (MySQL + Python24 + wxPython)

Ой, да тут же ничего не понятно!)) ну да ладно)))



Офлайн

  • Начало
  • » GUI
  • » программа-обертка БД (GUI) (MySQL + Python24 + wxPython)[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version