Module bearbeitedokumente
[hide private]
[frames] | no frames]

Source Code for Module bearbeitedokumente

   1  # -*- coding: utf-8 -*- 
   2  # 
   3  # 
   4  #    filename:  bearbeitedokumente.py 
   5  # 
   6  #    version:   see wxvf.py 
   7  # 
   8  # 
   9  # ---------------------------------------------------------------------------------------- 
  10  # 
  11  # 
  12  #    Copyright (C) 2010  Michael Bellair 
  13  # 
  14  #    This file is part of wxvf. 
  15  # 
  16  #    wxvf is free software: you can redistribute it and/or modify 
  17  #    it under the terms of the GNU General Public License as published by 
  18  #    the Free Software Foundation, either version 3 of the License, or 
  19  #    (at your option) any later version. 
  20  # 
  21  #    wxvf is distributed in the hope that it will be useful, 
  22  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
  23  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  24  #    GNU General Public License for more details. 
  25  # 
  26  #    You should have received a copy of the GNU General Public License 
  27  #    along with wxvf.  If not, see <http://www.gnu.org/licenses/>. 
  28  # 
  29  #    Michael Bellair 
  30  #    Sportplatzstrasse 11 
  31  #    01259 Dresden 
  32  # 
  33  #    E-Mail:    bellair@freenet.de 
  34  #    homepage:  http://www.michaelbellair.de/vf/index.html 
  35  # 
  36  # 
  37  # ---------------------------------------------------------------------------------------- 
  38  # 
  39  import wx 
  40   
  41  from bearbeiteuebersetzung import BearbeiteUebersetzung         # Eingabeformular für Übersetzungen 
  42   
  43  from universal import zk                                        # Zeichenketten bearbeiten 
  44   
  45  from wxuniversal import CheckBoxErg                             # wx.CheckBox mit Ergänzungen 
  46  from wxuniversal import ComboBoxErg                             # wx.ComboBox mit Ergänzungen 
  47  from wxuniversal import DialogErg                               # wx.Dialog mit Ergänzungen 
  48  from wxuniversal import farbeAuswahlListe                       # Farbe der Objekte, die Vorgabewerte enthalten 
  49  from wxuniversal import farbeBearbeiten                         # Farbe der Objekte, die  bearbeitet werden können 
  50  from wxuniversal import FlexGridSizerWxObjTitel                 # wxObjekt mit Titel 
  51  from wxuniversal import ListBoxErg                              # wx.ListBox mit Ergänzungen 
  52  from wxuniversal import MaskedTextCtrlErg                       # wx.MaskedTextCtrl mit Ergänzungen 
  53  from wxuniversal import TextCtrlErg                             # wx.TextCtrl mit Ergänzungen 
  54   
  55   
  56   
  57   
  58   
  59   
  60  # 
  61  # 
  62  # 
  63  # ---------------------------------------------------------------------------------------- 
  64  # ---------------------------------------------------------------------------------------- 
  65  # --                                    -------------------------------------------------- 
  66  # --    Offene Punkte / Aufgaben        -------------------------------------------------- 
  67  # --                                    -------------------------------------------------- 
  68  # ---------------------------------------------------------------------------------------- 
  69  # ---------------------------------------------------------------------------------------- 
  70  # 
  71  #  
  72  #       -- siehe TODO 'bearbeitedokumente.py' -- 
  73  # 
  74  # 
  75  # ---------------------------------------------------------------------------------------- 
  76  # 
  77   
  78  # 
  79  # fortsetzen 
  80  # 
  81  # 
  82  # >selektiere__dokDoku()< korrigieren, die projektübergreifende Liste der Dokumente ist unvollständig (Id = 18 fehlt). 
  83  # 
  84   
  85   
  86   
  87  # 
  88  # 
  89  # 
  90  # ---------------------------------------------------------------------------------------- 
  91  # ---------------------------------------------------------------------------------------- 
  92  # --                                                            -------------------------- 
  93  # --    Lokale, klassenübergreifend verwendete Funktionen      -------------------------- 
  94  # --                                                            -------------------------- 
  95  # ---------------------------------------------------------------------------------------- 
  96  # ---------------------------------------------------------------------------------------- 
  97  # 
98 -class Lokal:
99 """ 100 Klasse, die die lokalen, klassenübergreifend verwendeten Funktionen bereitstellt. 101 """ 102 103 104 # 105 # ------------------------------------------------------------------------------------ 106 # -- Initialisierungen -------------------------------------------------- 107 # ------------------------------------------------------------------------------------ 108 #
109 - def __init__( self, dbVerbindung, dokDokuId, prjPlPrtDokDokuNr, prjPlPrtDokDokuSprUebvarId, prtProtokollId = None, prjPlPrtDokDokuNotizen = None, prjPlPrtDokDokuSprUebvarIdZus = None ):
110 111 # 112 # -- Randbedingungen übernehmen ------------------------------------------ 113 # 114 self.dbVerbindung = dbVerbindung 115 self.dokDokuId = dokDokuId 116 self.prjPlPrtDokDokuNr = prjPlPrtDokDokuNr 117 self.prjPlPrtDokDokuSprUebvarId = prjPlPrtDokDokuSprUebvarId 118 self.prtProtokollId = prtProtokollId 119 self.prjPlPrtDokDokuNotizen = prjPlPrtDokDokuNotizen 120 self.prjPlPrtDokDokuSprUebvarIdZus = prjPlPrtDokDokuSprUebvarIdZus
121 122 123 124 # 125 # ------------------------------------------------------------------------------------ 126 # -- Alle Werte der Tabelle >prj.pl_prtDokDoku< zurückgeben ------------------ 127 # ------------------------------------------------------------------------------------ 128 #
129 - def gib__LiteraturstelleEinzeln( self, prjPlPrtDokDokuNotizen_Alt, prjPlPrtDokDokuNr_Alt, prjPlPrtDokDokuSprUebvarId_Alt, prjPlPrtDokDokuSprUebvarIdZus_Alt, istNeu = False ) :
130 """ 131 Es wird die Werteliste zum Aktualisieren einer Literaturstelle zurückgegeben. 132 133 @param prjPlPrtDokDokuNotizen_Alt: Es ist der alte Wert für C{notizen} zu übergeben. 134 @type prjPlPrtDokDokuNotizen_Alt: Ganzzahl 135 136 @param prjPlPrtDokDokuNr_Alt: Es ist der alte Wert für C{nr} zu übergeben. 137 @type prjPlPrtDokDokuNr_Alt: Ganzzahl 138 139 @param prjPlPrtDokDokuSprUebvarId_Alt: Es ist der alte Wert für C{spr_uebvar_id} zu übergeben. 140 @type prjPlPrtDokDokuSprUebvarId_Alt: Ganzzahl 141 142 @param prjPlPrtDokDokuSprUebvarIdZus_Alt: Es ist der alte Wert für C{spr_uebvar_id_zus} zu übergeben. 143 @type prjPlPrtDokDokuSprUebvarIdZus_Alt: Ganzzahl 144 145 @param istNeu: Es ist C{True} anzugeben, wenn eine neuen Literaturstellen angelegt werden soll. 146 @type istNeu: Boolean 147 148 @return: listeWerte: Es wird C{[[notizen, logentfernt, dok_doku_id, nr, prj_projekte_id, prt_protokoll_id, spr_uebvar_id, spr_uebvar_id_zus],[...]} zurückgegeben. 149 @rtype: listeWerte: Python - Liste 150 """ 151 152 # 153 # -- Die bisher gültige Literaturstelle im Logbuch -------------------------- 154 # -- als 'Entfernt' markieren -------------------------- 155 # 156 erg = [] 157 if( not istNeu ) : 158 159 tmp = [ # 160 # -- notizen --------------------------------------------------------- 161 # 162 prjPlPrtDokDokuNotizen_Alt 163 # 164 # -- logentfernt ----------------------------------------------------- 165 # 166 , 'true' 167 # 168 # -- dok_doku_id ----------------------------------------------------- 169 # 170 , self.dokDokuId 171 # 172 # -- nr -------------------------------------------------------------- 173 # 174 , prjPlPrtDokDokuNr_Alt 175 # 176 # -- prj_projekte_id ------------------------------------------------- 177 # 178 , self.dbVerbindung.filter__prj_projekte_id 179 # 180 # -- prt_protokoll_id ------------------------------------------------ 181 # 182 , self.prtProtokollId 183 # 184 # -- spr_uebvar_id --------------------------------------------------- 185 # 186 , prjPlPrtDokDokuSprUebvarId_Alt 187 # 188 # -- spr_uebvar_id_zus ----------------------------------------------- 189 # 190 , prjPlPrtDokDokuSprUebvarIdZus_Alt ] 191 192 erg.append( tmp ) 193 194 195 # 196 # -- Die neuen Werte übernehmen -------------------------------------- 197 # 198 tmp = [ # 199 # -- notizen --------------------------------------------------------- 200 # 201 self.prjPlPrtDokDokuNotizen 202 # 203 # -- logentfernt ----------------------------------------------------- 204 # 205 , 'false' 206 # 207 # -- dok_doku_id ----------------------------------------------------- 208 # 209 , self.dokDokuId 210 # 211 # -- nr -------------------------------------------------------------- 212 # 213 , self.prjPlPrtDokDokuNr 214 # 215 # -- prj_projekte_id ------------------------------------------------- 216 # 217 , self.dbVerbindung.filter__prj_projekte_id 218 # 219 # -- prt_protokoll_id ------------------------------------------------ 220 # 221 , self.prtProtokollId 222 # 223 # -- spr_uebvar_id --------------------------------------------------- 224 # 225 , self.prjPlPrtDokDokuSprUebvarId 226 # 227 # -- spr_uebvar_id_zus ----------------------------------------------- 228 # 229 , self.prjPlPrtDokDokuSprUebvarIdZus ] 230 231 erg.append( tmp ) 232 233 234 # 235 # -- Ergebnisliste zurückgeben ------------------------------------------ 236 # 237 return erg
238 239 240 241 242 # 243 # ------------------------------------------------------------------------------------ 244 # -- Alle Werte der Tabelle >prj.pl_prtDokDoku< zurückgeben ------------------ 245 # ------------------------------------------------------------------------------------ 246 #
247 - def gib__Literaturstellen( self ) :
248 """ 249 Es werden alle Literaturstellen zurückgegeben, die im vorgegebenen Projekt der vorgegebenen Dokument-Id zugeordnet sind. 250 251 @return: listeWerte: Es wird C{[[notizen, logentfernt, dok_doku_id, nr, prj_projekte_id, prt_protokoll_id, spr_uebvar_id, spr_uebvar_id_zus],[...]} zurückgegeben. 252 @rtype: listeWerte: Python - Liste 253 """ 254 255 # 256 # -- Alle Literaturstellen ermitteln ------------------------------------------ 257 # 258 self.dbVerbindung.init__dokDoku__Projekt__Sprache() 259 tmpWerte = self.dbVerbindung.selektiere__dokDoku__Projekt__Sprache( TreeCtrlErg_ListBoxErg = None 260 , internFirmaId = None 261 , dokDokuId = [self.dokDokuId] ) 262 263 264 265 266 # 267 # -- Ergebnisliste zusammenstellen ------------------------------------------ 268 # 269 erg = [] 270 for i in range( len( tmpWerte ) ): 271 272 # 273 # -- bisher gültige Werte entfernen ---------------------------------- 274 # 275 tmp = [ # 276 # -- notizen --------------------------------------------------------- 277 # 278 tmpWerte[i][0] 279 # 280 # -- logentfernt ----------------------------------------------------- 281 # 282 , 'true' 283 # 284 # -- dok_doku_id ----------------------------------------------------- 285 # 286 , self.dokDokuId 287 # 288 # -- nr -------------------------------------------------------------- 289 # 290 , tmpWerte[i][1] 291 # 292 # -- prj_projekte_id ------------------------------------------------- 293 # 294 , self.dbVerbindung.filter__prj_projekte_id 295 # 296 # -- prt_protokoll_id ------------------------------------------------ 297 # 298 , tmpWerte[i][12] 299 # 300 # -- spr_uebvar_id --------------------------------------------------- 301 # 302 , tmpWerte[i][2] 303 # 304 # -- spr_uebvar_id_zus ----------------------------------------------- 305 # 306 , tmpWerte[i][3] ] 307 308 erg.append( tmp ) 309 310 311 # 312 # -- neue Werte einfügen ------------------------------------------ 313 # 314 tmp = [ # 315 # -- notizen --------------------------------------------------------- 316 # 317 tmpWerte[i][0] 318 # 319 # -- logentfernt ----------------------------------------------------- 320 # 321 , 'false' 322 # 323 # -- dok_doku_id ----------------------------------------------------- 324 # 325 , self.dokDokuId 326 # 327 # -- nr -------------------------------------------------------------- 328 # 329 , self.prjPlPrtDokDokuNr 330 # 331 # -- prj_projekte_id ------------------------------------------------- 332 # 333 , self.dbVerbindung.filter__prj_projekte_id 334 # 335 # -- prt_protokoll_id ------------------------------------------------ 336 # 337 , tmpWerte[i][12] 338 # 339 # -- spr_uebvar_id --------------------------------------------------- 340 # 341 , self.prjPlPrtDokDokuSprUebvarId 342 # 343 # -- spr_uebvar_id_zus ----------------------------------------------- 344 # 345 , tmpWerte[i][3] ] 346 347 erg.append( tmp ) 348 349 350 # 351 # -- Ergebnisliste zurückgeben ------------------------------------------ 352 # 353 return erg
354 355 356 357 358 359 # 360 # ---------------------------------------------------------------------------------------- 361 # ---------------------------------------------------------------------------------------- 362 # -- ------------------------------------------ 363 # -- Eingabeformular 'Dokumente bearbeiten' ------------------------------------------ 364 # -- ------------------------------------------ 365 # ---------------------------------------------------------------------------------------- 366 # ---------------------------------------------------------------------------------------- 367 #
368 -class BearbeiteDokumente( DialogErg ):
369 370 """ 371 Klasse zur Abbildung des Eingabeformulars 'Dokumente bearbeiten. 372 """ 373 374 # 375 # ------------------------------------------------------------------------------------ 376 # -- Eingabeformular initialisieren ---------------------------------- 377 # ------------------------------------------------------------------------------------ 378 #
379 - def __init__( self, parent, Statusleiste, dbVerbindung ):
380 DialogErg.__init__( self 381 , parent = parent 382 , title = u"Dokumente bearbeiten." 383 , dbVerbindung = dbVerbindung ) 384 385 # 386 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 387 # 388 self.SetName( name = "BearbeiteDokumente" ) 389 390 391 # 392 # -- Randbedingungen übernehmen ------------------------------------------ 393 # 394 self.Statusleiste = Statusleiste 395 self.dbVerbindung = dbVerbindung 396 397 398 399 # 400 # -------------------------------------------------------------------------------- 401 # -- Eingabeobjekte anlegen -------------------------------------------------- 402 # -------------------------------------------------------------------------------- 403 # 404 405 # 406 # -- Dokumente nach Firma einschränken ---------------------------------- 407 # -- Objekt-Id = - ---------------------------------- 408 # 409 self.ComboBox__Firma = FlexGridSizerWxObjTitel( parent = self 410 , wxObj = ComboBoxErg( self 411 , choices = [] 412 , style = wx.CB_DROPDOWN|wx.CB_READONLY 413 , Statusleiste = self.Statusleiste ) 414 , orient = wx.VERTICAL 415 , titel = "Ersteller (Firma):" ) 416 417 self.ComboBox__Firma.wxObjekt.nimmWerteStatusleiste( 418 DBSpNameErlaeuterung = "Dokumente anhand des Erstellers einschränken." 419 , DBSpName = "..." ) 420 421 self.Bind( wx.EVT_COMBOBOX 422 , self.__ereignisLiesDB__ 423 , self.ComboBox__Firma.wxObjekt ) 424 425 426 # 427 # -- Dem Projekt zugeordnete Dokumente ---------------------------------- 428 # -- Objekt-Id = - ---------------------------------- 429 # 430 self.ListBox__ProjektDokumente = FlexGridSizerWxObjTitel( parent = self 431 , wxObj = ListBoxErg( self 432 , size = ( -1, -1 ) 433 , style = wx.BORDER_SUNKEN 434 , Statusleiste = self.Statusleiste ) 435 , titel = u"Dokumente im Projekt" 436 , orient = wx.VERTICAL ) 437 438 self.ListBox__ProjektDokumente.wxObjekt.SetMinSize( ( 450, 425 ) ) 439 440 self.ListBox__ProjektDokumente.wxObjekt.nimmWerteStatusleiste( 441 DBSpNameErlaeuterung = u"Alle im Projekt verfügbaren Dokmente." 442 , DBSpName = "..." ) 443 444 self.ListBox__ProjektDokumente.wxObjekt.SetToolTip(wx.ToolTip( u"F2:\nGewählte Ausgabe / Literaturstelle bearbeiten.\n\nF3:\nGewählten Dokumenttitel / Dokumentnummer bearbeiten\n\nF4:\nÜbersetzung des Dokumenttitels bearbeiten\n\nF5:\nÜbersetzung der Literaturstelle bearbeiten\n\nEinf:\nZum gewählten Dokumente eine neue Literaturstelle hinzufügen\n\nEntf:\nLiteraturstelle aus dem Projekt entfernen." )) 445 446 self.ListBox__ProjektDokumente.wxObjekt.SetBackgroundColour( wx.NamedColour( farbeBearbeiten ) ) 447 448 self.ListBox__ProjektDokumente.wxObjekt.Bind( wx.EVT_KEY_DOWN 449 , self.__ereignisTastaturProjekt__ ) 450 451 452 453 # 454 # -- In der Datenbank verfügbare Dokumente ---------------------------------- 455 # -- Objekt-Id = - ---------------------------------- 456 # 457 self.ListBox__DokumenteVerfuegbar = ListBoxErg( self 458 , size = ( -1, -1 ) 459 , style = wx.BORDER_SUNKEN 460 , Statusleiste = self.Statusleiste ) 461 462 self.ListBox__DokumenteVerfuegbar.SetMinSize( ( 450, 425 ) ) 463 464 self.ListBox__DokumenteVerfuegbar.nimmWerteStatusleiste( 465 DBSpNameErlaeuterung = u"Alle in der Datenbank verfügbaren Dokumente." 466 , DBSpName = "..." ) 467 468 self.ListBox__DokumenteVerfuegbar.SetToolTip(wx.ToolTip( u"Doppelklick:\nDokument in das Projekt übernehmen\n\nF2:\nDokument bearbeiten\n\nF3:\nÜbersetzung des projektübergreifenden Dokumenttitels bearbeiten\n\nEinf:\nNeues Dokument in der Datenbank anlegen\n\nEntf:\nDokument aus der Datenbank entfernen" )) 469 470 self.ListBox__DokumenteVerfuegbar.SetBackgroundColour( wx.NamedColour( farbeBearbeiten ) ) 471 472 self.ListBox__DokumenteVerfuegbar.Bind( wx.EVT_KEY_DOWN 473 , self.__ereignisTastaturDatenbank__ ) 474 475 self.Bind( wx.EVT_LISTBOX_DCLICK 476 , self.__ereignisDokumentZuordnen__ 477 , self.ListBox__DokumenteVerfuegbar ) 478 479 480 481 482 # 483 # -- Layout festlegen ------------------ 484 # -- (Fenster später im >wx.SplitterWindow< darstellen ------------------ 485 # 486 487 # 488 # -- 1.) ------------------------------------------------------------------ 489 # 490 FlexGridSizer = wx.FlexGridSizer( rows = 2, cols = 1, vgap = 5, hgap = 5 ) 491 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 0 ) 492 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 0 ) 493 FlexGridSizer.AddGrowableRow( idx = 1, proportion = 1 ) 494 495 FlexGridSizer.Add( self.ComboBox__Firma 496 , flag = wx.LEFT|wx.TOP|wx.RIGHT|wx.EXPAND 497 , border = 5 ) 498 499 500 Rahmen = wx.StaticBox( parent = self, label = u"In der Datenbank verfügbare Dokumente" ) 501 502 StaticBoxSizer = wx.StaticBoxSizer( box = Rahmen, orient = wx.VERTICAL ) 503 StaticBoxSizer.Add( self.ListBox__DokumenteVerfuegbar 504 , flag = wx.ALL|wx.EXPAND 505 , border = 5 ) 506 507 # 508 # -- 2.) ------------------------------------------------------------------ 509 # 510 BoxSizer = wx.BoxSizer( wx.HORIZONTAL ) 511 512 BoxSizer.Add( self.ListBox__ProjektDokumente, flag = wx.EXPAND ) 513 BoxSizer.Add( StaticBoxSizer 514 , flag = wx.LEFT|wx.EXPAND 515 , border = 10 ) 516 517 518 FlexGridSizer.Add( BoxSizer 519 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 520 , border = 5 ) 521 522 523 524 # 525 # -- In das Eingabeformular übernehmen ---------------------------------- 526 # 527 self.nimmDialogElemente( FlexGridSizer ) 528 529 530 531 # 532 # -- Firmen auslesen ------------------------------------------ 533 # -- Verfügbare Dokumente auslesen ------------------------------------------ 534 # 535 self.dbVerbindung.selektiere__internFirma( TreeCtrlErg_ComboBoxErg = self.ComboBox__Firma.wxObjekt ) 536 537 538 # 539 # -- Datenbank auslesen -------------------------------------------------- 540 # 541 self.__ereignisLiesDB__() 542 543 544 # 545 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' deaktivieren -- 546 # 547 self.Button__Verwerfen.Enable( False ) 548 self.Button__Sichern.Enable( False )
549 550 551 552 # 553 # ------------------------------------------------------------------------------------ 554 # -- Dokument in das Projekt übernehmen ---------------------------------- 555 # ------------------------------------------------------------------------------------ 556 #
557 - def __ereignisDokumentZuordnen__( self, ereignis = None ):
558 """ 559 Dokument in das Projekt übernehmen. 560 561 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 562 @type ereignis: C{wx - Ereignisobjekt} 563 """ 564 565 # 566 # -- >dok.doku.id< -------------------------------------------------- 567 # 568 dokDokuId = self.ListBox__DokumenteVerfuegbar.gibClientData( 569 lfdNr = self.ListBox__DokumenteVerfuegbar.GetSelection() )[9] 570 571 572 # 573 # -- Daten zur dok_doku_id auslesen ---------------------------------- 574 # 575 # -- dok.doku.id ---------------------------------- 576 # -- dok.doku.notizen ---------------------------------- 577 # -- dok.doku.intern_firma_id ---------------------------------- 578 # -- dok.doku.spr_uebvar_id_kb ---------------------------------- 579 # -- dok.doku.aspekt ---------------------------------- 580 # -- wgruppe ---------------------------------- 581 # 582 werte = self.dbVerbindung.selektiere__dokDoku( TreeCtrlErg_ListBoxErg = None 583 , internFirmaId = None 584 , dokDokuId = dokDokuId )[0] 585 586 587 # 588 # -- >dok_doku_id< nicht übernehmen, da bereits vorhanden ------------------ 589 # 590 if( self.dbVerbindung.finde__dokDokuId( dokDokuId = dokDokuId ) ) : 591 592 dlg = wx.MessageDialog( self 593 , "Das in das Projekt zu übernehmende Dokument ist bereits vorhanden !\n\nEs wird nicht in das Projekt übernommen." 594 , "Dokument ist bereits vorhanden !" 595 , wx.OK | wx.ICON_INFORMATION ) 596 dlg.CenterOnScreen() 597 dlg.ShowModal() 598 dlg.Destroy() 599 600 return 601 602 603 # 604 # -- >dok_doku_id< in das Projekt übernehmen -------------------------- 605 # 606 self.dbVerbindung.schreibe__prjPlPrtDokDoku( listeWerte = [ # 607 # -- notizen ----------- 608 # 609 werte[0] 610 # 611 # -- logentfernt ------- 612 # 613 , 'false' 614 # 615 # -- dok_doku_id ------- 616 # 617 , dokDokuId 618 # 619 # -- nr ---------------- 620 # 621 , '????' 622 # 623 # -- prj_projekte_id - 624 # 625 , self.dbVerbindung.filter__prj_projekte_id 626 # 627 # -- prt_protokoll_id -- 628 # 629 , 0 630 # 631 # -- spr_uebvar_id ----- 632 # 633 , werte[2] 634 # 635 # -- spr_uebvar_id_zus - 636 # 637 , 0 ] ) 638 639 640 # 641 # -- Datenbank auslesen -------------------------------------------------- 642 # -- SQL-Abfrage ausführen -> Permanente Datenstruktur aktualisieren ---------- 643 # 644 self.dbVerbindung.daten__dokDoku__Projekt__Sprache = [] 645 self.__ereignisLiesDB__() 646 647 648 # 649 # -- Buttton 'Anderungen speichern' aktivieren, -------------------------- 650 # -- Buttton 'Anderungen verwerfen' aktivieren -------------------------- 651 # 652 self.Button__Verwerfen.Enable( True ) 653 self.Button__Sichern.Enable( True )
654 655 656 657 658 659 # 660 # ------------------------------------------------------------------------------------ 661 # -- Dokument projektübergreifend bearbeiten ---------------------------------- 662 # ------------------------------------------------------------------------------------ 663 #
664 - def __ereignisTastaturDatenbank__( self, ereignis ):
665 """ 666 Projektübergreifende Dokumentinformationen bearbeiten. 667 668 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 669 @type ereignis: C{wx - Ereignisobjekt} 670 """ 671 672 # 673 # -------------------------------------------------------------------------------- 674 # -- Ungültige Tastaturereignisse abfangen ---------------------------------- 675 # -------------------------------------------------------------------------------- 676 # 677 if( not ( ereignis.GetKeyCode() == wx.WXK_F2 678 or ereignis.GetKeyCode() == wx.WXK_F3 679 or ereignis.GetKeyCode() == wx.WXK_INSERT 680 or ereignis.GetKeyCode() == wx.WXK_DELETE ) ) : return 681 682 683 684 # 685 # -------------------------------------------------------------------------------- 686 # -- >dok.doku.id< auslesen -------------------------------------------------- 687 # -------------------------------------------------------------------------------- 688 # 689 dokDokuId = self.ListBox__DokumenteVerfuegbar.gibClientData( 690 lfdNr = self.ListBox__DokumenteVerfuegbar.GetSelection() )[9] 691 692 693 694 # 695 # -------------------------------------------------------------------------------- 696 # -- Neues Dokument anlegen ------------------ 697 # -- Formular zum Bearbeiten des Dokumentes aufrufen ------------------ 698 # -------------------------------------------------------------------------------- 699 # 700 if( ereignis.GetKeyCode() == wx.WXK_F2 or ereignis.GetKeyCode() == wx.WXK_INSERT ) : 701 702 if( ereignis.GetKeyCode() == wx.WXK_INSERT ) : dokDokuId = None 703 704 dlg = BearbeiteDokumenteDatenbank( parent = self 705 , Statusleiste = self.Statusleiste 706 , dbVerbindung = self.dbVerbindung 707 , dokDokuId = dokDokuId 708 , listeDokDokuId = self.ListBox__DokumenteVerfuegbar.gibClientData() ) 709 dlg.CenterOnScreen() 710 dlg.ShowModal() 711 dlg.Destroy() 712 713 # 714 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 715 # -- aktivieren ------------------ 716 # 717 if( dlg.gibAenderung() ): 718 719 self.Button__Verwerfen.Enable( True ) 720 self.Button__Sichern.Enable( True ) 721 722 723 724 # 725 # -------------------------------------------------------------------------------- 726 # -- Formular zur Bearbeitung der Übersetzungsvariante aufrufen ---------- 727 # -------------------------------------------------------------------------------- 728 # 729 if( ereignis.GetKeyCode() == wx.WXK_F3 ) : 730 731 dlg = BearbeiteUebersetzung( parent = self 732 , Statusleiste = self.Statusleiste 733 , dbVerbindung = self.dbVerbindung 734 , sprUebvarId = self.ListBox__DokumenteVerfuegbar.gibClientData( 735 lfdNr = self.ListBox__DokumenteVerfuegbar.GetSelection() )[10] 736 , notizen = self.ListBox__DokumenteVerfuegbar.gibClientData( 737 lfdNr = self.ListBox__DokumenteVerfuegbar.GetSelection() )[0] ) 738 dlg.CenterOnScreen() 739 dlg.ShowModal() 740 dlg.Destroy() 741 742 # 743 # -- Neue Übersetzungsvariante übernehmen ------------------ 744 # -- ------------------ 745 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 746 # -- aktivieren ------------------ 747 # 748 if( dlg.gibAenderung() ): 749 750 self.dbVerbindung.schreibe__DokDoku__UPDATE( dokDokuId = dokDokuId 751 , sprUebvarIdKb = dlg.gibWerte()[1] 752 , Notizen = dlg.gibWerte()[2] ) 753 754 self.Button__Verwerfen.Enable( True ) 755 self.Button__Sichern.Enable( True ) 756 757 758 759 760 # 761 # -------------------------------------------------------------------------------- 762 # -- Dokument entfernen -------------------------------------------------- 763 # -------------------------------------------------------------------------------- 764 # 765 if( ereignis.GetKeyCode() == wx.WXK_DELETE ) : 766 767 # 768 # -- Dokument aus Datenbank entfernen ---------- 769 # -- Fehlermeldung ausgeben, wenn Dokument in den Projekten ---------- 770 # -- verwendet wird ---------- 771 # 772 # -- dok.doku.id ------------------------------------------ 773 # -- dok.doku.notizen ------------------------------------------ 774 # -- dok.doku.intern_firma_id ------------------------------------------ 775 # -- dok.doku.spr_uebvar_id_kb ------------------------------------------ 776 # -- dok.doku.aspekt ------------------------------------------ 777 # -- ( wgruppe ) ------------------------------------------ 778 # 779 if( self.dbVerbindung.schreibe__DokDoku( listeWerte = None 780 , listeDokDokuId = None 781 , entferneDokDokuId = dokDokuId ) is None ) : 782 783 dlg = wx.MessageDialog( self 784 , "Das zu entfernende Dokument wird noch in den Projekten verwendet !\n\nEs kann nicht entfernt werden." 785 , "Dokument wird nicht entfernt !" 786 , wx.OK | wx.ICON_INFORMATION ) 787 dlg.CenterOnScreen() 788 dlg.ShowModal() 789 dlg.Destroy() 790 791 return 792 793 794 # 795 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ---------- 796 # -- aktivieren ---------- 797 # 798 self.Button__Verwerfen.Enable( True ) 799 self.Button__Sichern.Enable( True ) 800 801 802 803 # 804 # -------------------------------------------------------------------------------- 805 # -- Datenbank auslesen -------------------------------------------------- 806 # -------------------------------------------------------------------------------- 807 # 808 self.__ereignisLiesDB__()
809 810 811 812 813 # 814 # ------------------------------------------------------------------------------------ 815 # -- Dokument projektbezogen bearbeiten ---------------------------------- 816 # ------------------------------------------------------------------------------------ 817 #
818 - def __ereignisTastaturProjekt__( self, ereignis ):
819 """ 820 Projektbezogene Dokumentinformationen bearbeiten. 821 822 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. Es wird jedoch nicht verwendet. 823 @type ereignis: C{wx - Ereignisobjekt} 824 """ 825 826 # 827 # -------------------------------------------------------------------------------- 828 # -- Ungültige Tastaturereignisse abfangen ---------------------------------- 829 # -------------------------------------------------------------------------------- 830 # 831 if( not( ereignis.GetKeyCode() == wx.WXK_F2 832 or ereignis.GetKeyCode() == wx.WXK_F3 833 or ereignis.GetKeyCode() == wx.WXK_F4 834 or ereignis.GetKeyCode() == wx.WXK_F5 835 or ereignis.GetKeyCode() == wx.WXK_INSERT 836 or ereignis.GetKeyCode() == wx.WXK_DELETE ) ) : return 837 838 839 # 840 # -------------------------------------------------------------------------------- 841 # -- Formular zum Bearbeiten des Dokumentes aufrufen ------------------ 842 # -------------------------------------------------------------------------------- 843 # 844 dlg = None 845 if( ereignis.GetKeyCode() == wx.WXK_F2 846 or ereignis.GetKeyCode() == wx.WXK_F3 847 or ereignis.GetKeyCode() == wx.WXK_INSERT ) : 848 849 titel = u"Ausgabe / Literaturstelle bearbeiten." 850 if( ereignis.GetKeyCode() == wx.WXK_F3 ) : titel = u"Dokumenttitel / Dokumentnummer bearbeiten." 851 if( ereignis.GetKeyCode() == wx.WXK_INSERT ) : titel = u"Neue Ausgabe / Literaturstelle hinzufügen." 852 853 dlg = BearbeiteDokumenteProjekt( parent = self 854 , title = titel 855 , Statusleiste = self.Statusleiste 856 , dbVerbindung = self.dbVerbindung 857 , listeWerte = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 858 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() ) 859 , istNeu = ( ereignis.GetKeyCode() == wx.WXK_INSERT ) 860 , istTitelNr = ( ereignis.GetKeyCode() == wx.WXK_F3 ) ) 861 dlg.CenterOnScreen() 862 dlg.ShowModal() 863 dlg.Destroy() 864 865 # 866 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 867 # -- aktivieren ------------------ 868 # 869 if( dlg.gibAenderung() ): 870 871 self.Button__Verwerfen.Enable( True ) 872 self.Button__Sichern.Enable( True ) 873 874 875 876 # 877 # -------------------------------------------------------------------------------- 878 # -- Formular zur Bearbeitung der Übersetzungsvariante des ------------------ 879 # -- Dokumenttitels aufrufen ------------------ 880 # -------------------------------------------------------------------------------- 881 # 882 if( ereignis.GetKeyCode() == wx.WXK_F4 ) : 883 884 dlg = BearbeiteUebersetzung( parent = self 885 , Statusleiste = self.Statusleiste 886 , dbVerbindung = self.dbVerbindung 887 , sprUebvarId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 888 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[2] 889 , notizen = None ) 890 dlg.CenterOnScreen() 891 dlg.ShowModal() 892 dlg.Destroy() 893 894 # 895 # -- Neue Übersetzungsvariante übernehmen ------------------ 896 # -- (alle Literaturstellen aktualisieren !) ------------------ 897 # -- ------------------ 898 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 899 # -- aktivieren ------------------ 900 # 901 if( dlg.gibAenderung() ): 902 903 lokal = Lokal( dbVerbindung = self.dbVerbindung 904 , dokDokuId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 905 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[9] 906 , prjPlPrtDokDokuNr = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 907 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[1] 908 , prjPlPrtDokDokuSprUebvarId = dlg.gibWerte()[1] ) 909 910 listePrjPlPrtDokDoku = lokal.gib__Literaturstellen() 911 912 for i in range( len( listePrjPlPrtDokDoku ) ): 913 914 self.dbVerbindung.schreibe__prjPlPrtDokDoku( listeWerte = listePrjPlPrtDokDoku[i] ) 915 916 917 self.Button__Verwerfen.Enable( True ) 918 self.Button__Sichern.Enable( True ) 919 920 921 922 # 923 # -------------------------------------------------------------------------------- 924 # -- Formular zur Bearbeitung der Übersetzungsvariante der ------------------ 925 # -- Dokumentenreferenz / Literaturstelle aufrufen ------------------ 926 # -------------------------------------------------------------------------------- 927 # 928 if( ereignis.GetKeyCode() == wx.WXK_F5 ) : 929 930 # 931 # -- zu leeren Literaturstellen ist es sinnlos, ------------------ 932 # -- verschiedene Übersetzungsvarianten hinzuzufügen ------------------ 933 # 934 if( self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 935 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] == 0 ) : 936 937 dlg = wx.MessageDialog( self 938 , "Es ist keine Literaturstelle vorhanden (" + zk.gibZk( "" ) + ")\n\nDas zuordnen von Übersetzungsvarianten ist nicht sinnvoll." 939 , "Keine Literaturstelle vorhanden !" 940 , wx.OK | wx.ICON_INFORMATION ) 941 dlg.CenterOnScreen() 942 dlg.ShowModal() 943 dlg.Destroy() 944 945 return 946 947 # 948 # -- Dialog zur Bearbeitung der Übersetzungsvariante ------------------ 949 # 950 dlg = BearbeiteUebersetzung( parent = self 951 , Statusleiste = self.Statusleiste 952 , dbVerbindung = self.dbVerbindung 953 , sprUebvarId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 954 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] 955 , notizen = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 956 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[0] ) 957 dlg.CenterOnScreen() 958 dlg.ShowModal() 959 dlg.Destroy() 960 961 # 962 # -- Neue Übersetzungsvariante übernehmen ------------------ 963 # -- ------------------ 964 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ------------------ 965 # -- aktivieren ------------------ 966 # 967 if( dlg.gibAenderung() ): 968 969 lokal = Lokal( dbVerbindung = self.dbVerbindung 970 , dokDokuId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 971 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[9] 972 , prjPlPrtDokDokuNr = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 973 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[1] 974 , prjPlPrtDokDokuSprUebvarId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 975 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[2] 976 , prtProtokollId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 977 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[12] 978 , prjPlPrtDokDokuNotizen = dlg.gibWerte()[2] 979 , prjPlPrtDokDokuSprUebvarIdZus = dlg.gibWerte()[1] ) 980 981 listePrjPlPrtDokDoku = lokal.gib__LiteraturstelleEinzeln( 982 prjPlPrtDokDokuNotizen_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 983 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[0] 984 , prjPlPrtDokDokuNr_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 985 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[1] 986 , prjPlPrtDokDokuSprUebvarId_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 987 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[2] 988 , prjPlPrtDokDokuSprUebvarIdZus_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 989 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] ) 990 991 for i in range( len( listePrjPlPrtDokDoku ) ): 992 993 self.dbVerbindung.schreibe__prjPlPrtDokDoku( listeWerte = listePrjPlPrtDokDoku[i] ) 994 995 996 self.Button__Verwerfen.Enable( True ) 997 self.Button__Sichern.Enable( True ) 998 999 1000 1001 1002 # 1003 # -------------------------------------------------------------------------------- 1004 # -- Dokument entfernen -------------------------------------------------- 1005 # -------------------------------------------------------------------------------- 1006 # 1007 if( ereignis.GetKeyCode() == wx.WXK_DELETE ) : 1008 1009 # 1010 # -- Alle Literaturstellen ermitteln ---------------------------------- 1011 # 1012 self.dbVerbindung.init__dokDoku__Projekt__Sprache() 1013 tmpWerte = self.dbVerbindung.selektiere__dokDoku__Projekt__Sprache( 1014 TreeCtrlErg_ListBoxErg = None 1015 , internFirmaId = None 1016 , dokDokuId = [self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1017 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[9] ] ) 1018 1019 1020 # 1021 # -- Fehlermeldung ausgeben, wenn das Dokument einem gültigen -- 1022 # -- Protokolleintrag (Sicherheitsanforderung) zugeordnet ist -- 1023 # 1024 for i in range( len( tmpWerte ) ): 1025 1026 if( tmpWerte[i][12] > 0 1027 and tmpWerte[i][3] == self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1028 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] ) : 1029 1030 dlg = wx.MessageDialog( self 1031 , "Die Literaturreferenz ist einer Sicherheitsanforderung zugeordnet.\n\nSie wird nicht gelöscht." 1032 , "Literaturreferenz wird nicht gelöscht !" 1033 , wx.OK | wx.ICON_INFORMATION ) 1034 dlg.CenterOnScreen() 1035 dlg.ShowModal() 1036 dlg.Destroy() 1037 1038 return 1039 1040 1041 # 1042 # -- Literaturstelle entfernen ---------------------------------- 1043 # 1044 lokal = Lokal( dbVerbindung = self.dbVerbindung 1045 , dokDokuId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1046 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[9] 1047 , prjPlPrtDokDokuNr = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1048 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[1] 1049 , prjPlPrtDokDokuSprUebvarId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1050 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[2] 1051 , prtProtokollId = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1052 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[12] 1053 , prjPlPrtDokDokuNotizen = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1054 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[0] 1055 , prjPlPrtDokDokuSprUebvarIdZus = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1056 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] ) 1057 1058 listePrjPlPrtDokDoku = lokal.gib__LiteraturstelleEinzeln( 1059 prjPlPrtDokDokuNotizen_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1060 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[0] 1061 , prjPlPrtDokDokuNr_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1062 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[1] 1063 , prjPlPrtDokDokuSprUebvarId_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1064 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[2] 1065 , prjPlPrtDokDokuSprUebvarIdZus_Alt = self.ListBox__ProjektDokumente.wxObjekt.gibClientData( 1066 lfdNr = self.ListBox__ProjektDokumente.wxObjekt.GetSelection() )[3] ) 1067 1068 listePrjPlPrtDokDoku.pop(1) 1069 1070 self.dbVerbindung.schreibe__prjPlPrtDokDoku( listeWerte = listePrjPlPrtDokDoku[0] ) 1071 1072 # 1073 # -- Buttton 'Änderungen speichern' / 'Änderungen verwerfen' ---------- 1074 # -- aktivieren ---------- 1075 # 1076 self.Button__Verwerfen.Enable( True ) 1077 self.Button__Sichern.Enable( True ) 1078 1079 1080 1081 # 1082 # -------------------------------------------------------------------------------- 1083 # -- Datenbank auslesen -------------------------------------------------- 1084 # -- SQL-Abfrage ausführen -> Permanente Datenstruktur aktualisieren ---------- 1085 # -------------------------------------------------------------------------------- 1086 # 1087 self.dbVerbindung.daten__dokDoku__Projekt__Sprache = [] 1088 self.__ereignisLiesDB__()
1089 1090 1091 1092 1093 # 1094 # ------------------------------------------------------------------------------------ 1095 # -- Datenbank auslesen -------------------------------------------------- 1096 # ------------------------------------------------------------------------------------ 1097 #
1098 - def __ereignisLiesDB__( self, ereignis = None ):
1099 """ 1100 Methode die aufgerufen wird, wenn nach Änderung des Zustandes der C{wx.ComboBox} 'Ersteller (Firma)' die Datenbank ausgelesen werden muß. 1101 1102 @param ereignis: Es ist das C{wx - Ereignisobjekt} zur Ereignisbehandlung zu übergeben. 1103 @type ereignis: C{wx - Ereignisobjekt} 1104 """ 1105 1106 # 1107 # -- Firma berücksichtigen ? ------------------------------------------ 1108 # 1109 firma = None 1110 if( self.ComboBox__Firma.wxObjekt.gibClientData() > 0 ) : 1111 firma = [self.ComboBox__Firma.wxObjekt.gibClientData()] 1112 1113 1114 # 1115 # -- Alle Dokumente löschen -------------------------------------------------- 1116 # 1117 self.ListBox__ProjektDokumente.wxObjekt.loescheAlles() 1118 self.ListBox__DokumenteVerfuegbar.loescheAlles() 1119 1120 1121 # 1122 # -- Projektbezogene Dokumente auslesen ---------------------------------- 1123 # 1124 self.dbVerbindung.init__dokDoku__Projekt__Sprache() 1125 self.dbVerbindung.selektiere__dokDoku__Projekt__Sprache( TreeCtrlErg_ListBoxErg = self.ListBox__ProjektDokumente.wxObjekt 1126 , internFirmaId = firma ) 1127 1128 1129 # 1130 # -- Verfügbare Dokumente auslesen ------------------------------------------ 1131 # 1132 self.dbVerbindung.selektiere__dokDoku( TreeCtrlErg_ListBoxErg = self.ListBox__DokumenteVerfuegbar 1133 , internFirmaId = firma ) 1134 1135 1136 1137 1138 # 1139 # -- Das Ereignis weiterreichen, damit es weiter -------------------------- 1140 # -- ausgewertet werden kann -------------------------- 1141 # 1142 if( ereignis != None ) : 1143 ereignis.Skip( skip = True )
1144 1145 1146 1147 1148 1149 # 1150 # ------------------------------------------------------------------------------------ 1151 # -- Verwerfen ---------------------------------------------------------- 1152 # ------------------------------------------------------------------------------------ 1153 #
1154 - def __spezAktionenVerwerfen__( self ):
1155 """ 1156 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Verwerfen der Änderungen auszuführen. 1157 """ 1158 1159 # 1160 # -- Datenbank auslesen -------------------------------------------------- 1161 # -- SQL-Abfrage ausführen -> Permanente Datenstruktur aktualisieren ---------- 1162 # 1163 self.dbVerbindung.daten__dokDoku__Projekt__Sprache = [] 1164 self.__ereignisLiesDB__()
1165 1166 1167 1168 1169 1170 1171 1172 # 1173 # ---------------------------------------------------------------------------------------- 1174 # ---------------------------------------------------------------------------------------- 1175 # -- Nächstes Eingabeformular ! -------------------------------------------------- 1176 # ---------------------------------------------------------------------------------------- 1177 # ---------------------------------------------------------------------------------------- 1178 # 1179 1180 1181 1182 1183 1184 # 1185 # ---------------------------------------------------------------------------------------- 1186 # ---------------------------------------------------------------------------------------- 1187 # -- -------------------------- 1188 # -- Eingabeformular 'Dokumente bearbeiten (Datenbank)' -------------------------- 1189 # -- -------------------------- 1190 # ---------------------------------------------------------------------------------------- 1191 # ---------------------------------------------------------------------------------------- 1192 #
1193 -class BearbeiteDokumenteDatenbank( DialogErg ):
1194 1195 """ 1196 Klasse zur Abbildung des Eingabeformulars 'Dokumente bearbeiten (Datenbank)'. Mittels dieses Formulares werden Dokumente aus der Datenbank entfern, hinzugefügt, Basisadten bearbeitet. 1197 """ 1198 1199 # 1200 # ------------------------------------------------------------------------------------ 1201 # -- Eingabeformular initialisieren ---------------------------------- 1202 # ------------------------------------------------------------------------------------ 1203 #
1204 - def __init__( self, parent, Statusleiste, dbVerbindung, dokDokuId, listeDokDokuId ):
1205 DialogErg.__init__( self 1206 , parent = parent 1207 , title = u"Dokumente bearbeiten (Datenbank)." 1208 , dbVerbindung = dbVerbindung ) 1209 1210 # 1211 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 1212 # 1213 self.SetName( name = "BearbeiteDokumenteDatenbank" ) 1214 1215 1216 # 1217 # -- Randbedingungen übernehmen ------------------------------------------ 1218 # 1219 self.Statusleiste = Statusleiste 1220 self.dbVerbindung = dbVerbindung 1221 self.dokDokuId = dokDokuId 1222 self.sprUebvarIdKb = 0 1223 self.listeDokDokuId = listeDokDokuId 1224 1225 1226 1227 # 1228 # -------------------------------------------------------------------------------- 1229 # -- Eingabeobjekte anlegen -------------------------------------------------- 1230 # -------------------------------------------------------------------------------- 1231 # 1232 1233 # 1234 # -- Id -------------------------------------------------- 1235 # -- Objekt-Id = ???? -------------------------------------------------- 1236 # 1237 self.TextCtrlErg__Id = FlexGridSizerWxObjTitel( parent = self 1238 , wxObj = TextCtrlErg( self 1239 , size = ( -1, -1 ) 1240 , style = wx.TE_READONLY|wx.BORDER_SUNKEN 1241 , Statusleiste = self.Statusleiste ) 1242 , titel = u"Id:" 1243 , orient = wx.VERTICAL ) 1244 1245 1246 self.TextCtrlErg__Id.wxObjekt.nimmWerteStatusleiste( 1247 DBSpNameErlaeuterung = u"Die Datenbankidentifikationsnummer des Dokumentes." 1248 , DBSpName = "..." ) 1249 1250 self.TextCtrlErg__Id.wxObjekt.Enable( False ) 1251 1252 1253 1254 # 1255 # -- Beweis -------------------------------------------------- 1256 # -- Objekt-Id = -------------------------------------------------- 1257 # 1258 self.CheckBox__Beweis = FlexGridSizerWxObjTitel( parent = self 1259 , wxObj = CheckBoxErg( self 1260 , Statusleiste = self.Statusleiste ) 1261 , titel = u"Beweis:" 1262 , orient = wx.VERTICAL ) 1263 1264 self.CheckBox__Beweis.wxObjekt.nimmWerteStatusleiste( 1265 DBSpNameErlaeuterung = u"Das Dokument ist ein Beweisdokument (andernfalls ein Quelldokument)." 1266 , DBSpName = "..." ) 1267 1268 self.CheckBox__Beweis.wxObjekt.Enable( False ) 1269 1270 self.Bind( wx.EVT_CHECKBOX 1271 , self.__ereignisAenderung__ 1272 , self.CheckBox__Beweis.wxObjekt ) 1273 1274 1275 1276 # 1277 # -- Ersteller / Firma auswählen ------------------------------------------ 1278 # -- Objekt-Id = - ---------------------------------- 1279 # 1280 self.ComboBox__Firma = FlexGridSizerWxObjTitel( parent = self 1281 , wxObj = ComboBoxErg( self 1282 , choices = [] 1283 , style = wx.CB_DROPDOWN|wx.CB_READONLY 1284 , Statusleiste = self.Statusleiste ) 1285 , orient = wx.VERTICAL 1286 , titel = "Ersteller (Firma):" ) 1287 1288 self.ComboBox__Firma.wxObjekt.nimmWerteStatusleiste( 1289 DBSpNameErlaeuterung = "Den Dokumentersteller auswählen." 1290 , DBSpName = "..." ) 1291 1292 self.Bind( wx.EVT_COMBOBOX 1293 , self.__ereignisAenderung__ 1294 , self.ComboBox__Firma.wxObjekt ) 1295 1296 1297 1298 # 1299 # -- Dokumententitel -------------------------------------------------- 1300 # -- Objekt-Id = ???? -------------------------------------------------- 1301 # 1302 self.TextCtrlErg__Titel = FlexGridSizerWxObjTitel( parent = self 1303 , wxObj = TextCtrlErg( self 1304 , size = ( -1, 100 ) 1305 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN 1306 , Statusleiste = self.Statusleiste ) 1307 , titel = u"Projektübergreifender Dokumententitel (in der aktuellen Sprache):" 1308 , orient = wx.VERTICAL ) 1309 1310 self.TextCtrlErg__Titel.wxObjekt.nimmWerteStatusleiste( 1311 DBSpNameErlaeuterung = u"Der Titel des aktuellen Dokumentes unabhängig vom Projekt. Es wird die aktuell gewählte Sprache verwendet." 1312 , DBSpName = "..." ) 1313 1314 self.Bind( wx.EVT_TEXT 1315 , self.__ereignisAenderung__ 1316 , self.TextCtrlErg__Titel.wxObjekt ) 1317 1318 1319 1320 # 1321 # -- Interne Notizen -------------------------------------------------- 1322 # -- Objekt-Id = ???? -------------------------------------------------- 1323 # 1324 self.TextCtrl__Notizen = FlexGridSizerWxObjTitel( parent = self 1325 , wxObj = TextCtrlErg( self 1326 , size = ( -1, 100 ) 1327 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN 1328 , Statusleiste = self.Statusleiste ) 1329 , titel = u"Interne Notizen zum Dokument:" 1330 , orient = wx.VERTICAL ) 1331 1332 self.Bind( wx.EVT_TEXT 1333 , self.__ereignisAenderung__ 1334 , self.TextCtrl__Notizen.wxObjekt ) 1335 1336 1337 1338 1339 # 1340 # -- Layout festlegen ------------------ 1341 # -- (Fenster später im >wx.SplitterWindow< darstellen ------------------ 1342 # 1343 1344 # 1345 # -- 1.) ------------------------------------------------------------------ 1346 # 1347 FlexGridSizer = wx.FlexGridSizer( rows = 1, cols = 3, vgap = 10, hgap = 10 ) 1348 FlexGridSizer.AddGrowableCol( idx = 0, proportion = 1 ) 1349 FlexGridSizer.AddGrowableCol( idx = 1, proportion = 1 ) 1350 FlexGridSizer.AddGrowableCol( idx = 2, proportion = 3 ) 1351 FlexGridSizer.AddGrowableRow( idx = 0, proportion = 0 ) 1352 1353 FlexGridSizer.Add( self.TextCtrlErg__Id 1354 , flag = wx.EXPAND ) 1355 1356 FlexGridSizer.Add( self.CheckBox__Beweis 1357 , flag = wx.EXPAND ) 1358 1359 FlexGridSizer.Add( self.ComboBox__Firma 1360 , flag = wx.EXPAND ) 1361 1362 # 1363 # -- 2.) ------------------------------------------------------------------ 1364 # 1365 FlexGridSizerGes = wx.FlexGridSizer( rows = 3, cols = 1, vgap = 10, hgap = 10 ) 1366 FlexGridSizerGes.AddGrowableCol( idx = 0, proportion = 0 ) 1367 FlexGridSizerGes.AddGrowableRow( idx = 0, proportion = 0 ) 1368 FlexGridSizerGes.AddGrowableRow( idx = 1, proportion = 1 ) 1369 FlexGridSizerGes.AddGrowableRow( idx = 2, proportion = 1 ) 1370 1371 1372 FlexGridSizerGes.Add( FlexGridSizer 1373 , flag = wx.LEFT|wx.TOP|wx.EXPAND 1374 , border = 10 ) 1375 1376 FlexGridSizerGes.Add( self.TextCtrlErg__Titel 1377 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 1378 , border = 10 ) 1379 1380 FlexGridSizerGes.Add( self.TextCtrl__Notizen 1381 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 1382 , border = 10 ) 1383 1384 1385 1386 # 1387 # -- In das Eingabeformular übernehmen ---------------------------------- 1388 # 1389 self.nimmDialogElemente( FlexGridSizerGes ) 1390 1391 1392 1393 # 1394 # -- Firmen auslesen ------------------------------------------ 1395 # -- Verfügbare Dokumente auslesen ------------------------------------------ 1396 # 1397 self.dbVerbindung.selektiere__internFirma( TreeCtrlErg_ComboBoxErg = self.ComboBox__Firma.wxObjekt 1398 , hatAlle = False ) 1399 1400 1401 1402 # 1403 # -- Datenbank auslesen -------------------------------------------------- 1404 # 1405 self.__spezAktionenVerwerfen__() 1406 1407 1408 # 1409 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' deaktivieren -- 1410 # 1411 self.Button__Verwerfen.Enable( False ) 1412 self.Button__Sichern.Enable( False )
1413 1414 1415 1416 1417 # 1418 # ------------------------------------------------------------------------------------ 1419 # -- Speichern ---------------------------------------------------------- 1420 # ------------------------------------------------------------------------------------ 1421 #
1422 - def __spezAktionenSpeichern__( self ):
1423 """ 1424 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Speichern der Änderungen auszuführen. 1425 """ 1426 1427 # 1428 # -- Geänderte Zeichenketten übernehmen ---------------------------------- 1429 # 1430 self.sprUebvarIdKb = self.dbVerbindung.schreibe__sprNimmWgruppe( 1431 sprUebvarId = 0 1432 , wortgruppe = self.TextCtrlErg__Titel.wxObjekt.gibWert() 1433 , sprSprachenId = self.dbVerbindung.filter__spr_sprachen_id ) 1434 1435 1436 # 1437 # -- Änderungen in Datenbank übernehmen ---------------------------------- 1438 # 1439 aspekt = 'QUELLE' 1440 if( self.CheckBox__Beweis.wxObjekt.gibWert() ) : aspekt = 'BEWEIS' 1441 1442 1443 # 1444 # -- Änderungen in Datenbank übernehmen ---------- 1445 # -- und Fehlermeldung ausgeben, wenn Dokument bereits vorhanden ist ---------- 1446 # 1447 # -- dok.doku.id ------------------------------------------ 1448 # -- dok.doku.notizen ------------------------------------------ 1449 # -- dok.doku.intern_firma_id ------------------------------------------ 1450 # -- dok.doku.spr_uebvar_id_kb ------------------------------------------ 1451 # -- dok.doku.aspekt ------------------------------------------ 1452 # 1453 # 1454 tmp = self.dbVerbindung.schreibe__DokDoku( listeWerte = [ self.TextCtrlErg__Id.wxObjekt.gibWert() 1455 , self.TextCtrl__Notizen.wxObjekt.gibWert() 1456 , self.ComboBox__Firma.wxObjekt.gibClientData() 1457 , self.sprUebvarIdKb 1458 , aspekt ] 1459 , listeDokDokuId = self.listeDokDokuId ) 1460 1461 if( tmp is None ) : 1462 1463 dlg = wx.MessageDialog( self 1464 , "Das neu anzulegende Dokument ist bereits vorhanden !" 1465 , "Dokument vorhanden !" 1466 , wx.OK | wx.ICON_INFORMATION ) 1467 dlg.CenterOnScreen() 1468 dlg.ShowModal() 1469 dlg.Destroy() 1470 1471 return 1472 1473 1474 # 1475 # -- >dok.doku.id< übernehmen ------------------------------------------ 1476 # 1477 self.dokDokuId = tmp 1478 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = str( self.dokDokuId ).zfill( 4 ) )
1479 1480 1481 1482 1483 # 1484 # ------------------------------------------------------------------------------------ 1485 # -- Verwerfen ---------------------------------------------------------- 1486 # ------------------------------------------------------------------------------------ 1487 #
1488 - def __spezAktionenVerwerfen__( self ):
1489 """ 1490 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Verwerfen der Änderungen auszuführen. 1491 """ 1492 1493 1494 # 1495 # -- Neues Dokument ---------------------------------------------------------- 1496 # 1497 if( self.dokDokuId is None ) : 1498 1499 # 1500 # -- Id -------------------------------------------------- 1501 # 1502 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = '' ) 1503 1504 1505 # 1506 # -- BEWEIS / QUELLE aktivieren und Standardwert setzen ---------- 1507 # 1508 self.CheckBox__Beweis.wxObjekt.Enable( True ) 1509 self.CheckBox__Beweis.wxObjekt.nimmWert( wert = False ) 1510 1511 1512 # 1513 # -- Ersteller / Firma auf Standardwert setzen ------------------ 1514 # 1515 self.ComboBox__Firma.wxObjekt.SetSelection( 0 ) 1516 1517 1518 # 1519 # -- Dokumententitel / Notizen auf Standardwert setzen ---------- 1520 # 1521 self.TextCtrlErg__Titel.wxObjekt.nimmWert( wert = zk.LeerZk ) 1522 self.TextCtrl__Notizen.wxObjekt.nimmWert( wert = zk.LeerZk ) 1523 self.sprUebvarIdKb = 0 1524 1525 1526 # 1527 # -- Dokument bearbeiten -------------------------------------------------- 1528 # 1529 else : 1530 1531 # 1532 # -- dok.doku.id ---------------------------------- 1533 # -- dok.doku.notizen ---------------------------------- 1534 # -- dok.doku.intern_firma_id ---------------------------------- 1535 # -- dok.doku.spr_uebvar_id_kb ---------------------------------- 1536 # -- dok.doku.aspekt ---------------------------------- 1537 # -- wgruppe ---------------------------------- 1538 # 1539 werte = self.dbVerbindung.selektiere__dokDoku( TreeCtrlErg_ListBoxErg = None 1540 , internFirmaId = None 1541 , dokDokuId = self.dokDokuId ) 1542 1543 1544 # 1545 # -- Id -------------------------------------------------- 1546 # 1547 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = str( werte[0][9] ).zfill( 4 ) ) 1548 1549 1550 # 1551 # -- BEWEIS / QUELLE deaktivieren und aktuellen Wert setzen ---------- 1552 # 1553 self.CheckBox__Beweis.wxObjekt.Enable( False ) 1554 self.CheckBox__Beweis.wxObjekt.nimmWert( wert = ( werte[0][8] == 'BEWEIS' ) ) 1555 1556 1557 # 1558 # -- Ersteller / Firma auf Standardwert setzen ------------------ 1559 # 1560 self.ComboBox__Firma.wxObjekt.selektiereWert( clientDataId = werte[0][14] ) 1561 1562 1563 # 1564 # -- Dokumententitel / Notizen auf Standardwert setzen ---------- 1565 # 1566 self.TextCtrlErg__Titel.wxObjekt.nimmWert( wert = werte[0][10] ) 1567 self.TextCtrl__Notizen.wxObjekt.nimmWert( wert = werte[0][0] ) 1568 self.sprUebvarIdKb = werte[0][13]
1569 1570 1571 1572 1573 1574 1575 1576 # 1577 # ---------------------------------------------------------------------------------------- 1578 # ---------------------------------------------------------------------------------------- 1579 # -- Nächstes Eingabeformular ! -------------------------------------------------- 1580 # ---------------------------------------------------------------------------------------- 1581 # ---------------------------------------------------------------------------------------- 1582 # 1583 1584 1585 1586 1587 1588 # 1589 # ---------------------------------------------------------------------------------------- 1590 # ---------------------------------------------------------------------------------------- 1591 # -- -------------------------- 1592 # -- Eingabeformular 'Dokumente bearbeiten (Projekt)' -------------------------- 1593 # -- -------------------------- 1594 # ---------------------------------------------------------------------------------------- 1595 # ---------------------------------------------------------------------------------------- 1596 #
1597 -class BearbeiteDokumenteProjekt( DialogErg ):
1598 1599 """ 1600 Klasse zur Abbildung des Eingabeformulars 'Dokumente bearbeiten (Projekt)'. Mittels dieses Formulares werden Dokumente projektbezogen bearbeitet. 1601 """ 1602 1603 # 1604 # ------------------------------------------------------------------------------------ 1605 # -- Eingabeformular initialisieren ---------------------------------- 1606 # ------------------------------------------------------------------------------------ 1607 #
1608 - def __init__( self, parent, title, Statusleiste, dbVerbindung, listeWerte, istNeu = False, istTitelNr = False ):
1609 DialogErg.__init__( self 1610 , parent = parent 1611 , title = title 1612 , dbVerbindung = dbVerbindung ) 1613 1614 # 1615 # -- Namen setzen (somit Klasse / Objekt erkennen) -------------------------- 1616 # 1617 self.SetName( name = "BearbeiteDokumenteProjekt" ) 1618 1619 1620 # 1621 # -- Randbedingungen übernehmen ------------------------------------------ 1622 # 1623 self.Statusleiste = Statusleiste 1624 self.dbVerbindung = dbVerbindung 1625 self.istNeu = istNeu 1626 self.istTitelNr = istTitelNr 1627 1628 # 1629 # -- prj.pl_dokausgabe.notizen ---------------------------------- 1630 # -- prj.pl_dokausgabe.datum ---------------------------------- 1631 # -- prj.pl_dokausgabe.istfrei ---------------------------------- 1632 # -- prj.pl_dokausgabe.stand ---------------------------------- 1633 # 1634 if( zk.istLeer( listeWerte[4] ) ) : 1635 self.prjPlDokAusgabeNotizen = zk.gibZk( "" ) 1636 else : 1637 self.prjPlDokAusgabeNotizen = listeWerte[4] 1638 1639 if( zk.istLeer( listeWerte[5] ) ) : 1640 self.prjPlDokAusgabeDatum = zk.gibDatumNULL() 1641 else : 1642 self.prjPlDokAusgabeDatum = listeWerte[5] 1643 1644 self.prjPlDokAusgabeIstFrei = listeWerte[6] 1645 1646 if( zk.istLeer( listeWerte[7] ) ) : 1647 self.prjPlDokAusgabeStand = zk.gibZk( "" ) 1648 else : 1649 self.prjPlDokAusgabeStand = listeWerte[7] 1650 # 1651 # -- titel (prj.pl_prtdokdoku.spr_uebvar_id) ---------------------------------- 1652 # -- zus (prj.pl_prtdokdoku.spr_uebvar_id_zus) ---------------------------------- 1653 # 1654 self.dokTitel = listeWerte[10] 1655 1656 if( zk.istLeer( listeWerte[11] ) ) : 1657 self.litStelle = zk.gibZk( "" ) 1658 else : 1659 self.litStelle = listeWerte[11] 1660 # 1661 # -- dok__doku__aspekt ---------------------------------- 1662 # -- prj.zeige__dokdoku.dok__doku__id ---------------------------------- 1663 # 1664 self.dokDokuAspekt = listeWerte[8] 1665 self.dokDokuId = listeWerte[9] 1666 1667 # 1668 # -- prj.pl_prtdokdoku.notizen ---------------------------------- 1669 # 1670 if( zk.istLeer( listeWerte[0] ) ) : 1671 self.prjPlPrtDokDokuNotizen = zk.gibZk( "" ) 1672 else : 1673 self.prjPlPrtDokDokuNotizen = listeWerte[0] 1674 self.prjPlPrtDokDokuNotizen_Alt = self.prjPlPrtDokDokuNotizen 1675 # 1676 # -- prj.pl_prtdokdoku.nr ---------------------------------- 1677 # 1678 self.prjPlPrtDokDokuNr = listeWerte[1] 1679 self.prjPlPrtDokDokuNr_Alt = self.prjPlPrtDokDokuNr 1680 # 1681 # -- prt_protokoll_id ---------------------------------- 1682 # 1683 if( self.istNeu ) : 1684 self.prtProtokollId = 0 1685 else : 1686 self.prtProtokollId = listeWerte[12] 1687 # 1688 # -- prj.pl_prtdokdoku.spr_uebvar_id ---------------------------------- 1689 # 1690 self.prjPlPrtDokDokuSprUebvarId = listeWerte[2] 1691 self.prjPlPrtDokDokuSprUebvarId_Alt = self.prjPlPrtDokDokuSprUebvarId 1692 # 1693 # -- prj.pl_prtdokdoku.spr_uebvar_id_zus ---------------------------------- 1694 # 1695 self.prjPlPrtDokDokuSprUebvarIdZus = listeWerte[3] 1696 self.prjPlPrtDokDokuSprUebvarIdZus_Alt = self.prjPlPrtDokDokuSprUebvarIdZus 1697 # 1698 # -- titel (prj.pl_prtdokdoku.spr_uebvar_id) ---------------------------------- 1699 # 1700 self.dokTitel = listeWerte[10] 1701 # 1702 # -- zus (prj.pl_prtdokdoku.spr_uebvar_id_zus) ---------------------------------- 1703 # 1704 if( zk.istLeer( listeWerte[11] ) ) : 1705 self.litStelle = zk.gibZk( "" ) 1706 else : 1707 self.litStelle = listeWerte[11] 1708 1709 1710 1711 1712 # 1713 # -------------------------------------------------------------------------------- 1714 # -- Eingabeobjekte anlegen -------------------------------------------------- 1715 # -------------------------------------------------------------------------------- 1716 # 1717 1718 # 1719 # -- Dokumententitel -------------------------------------------------- 1720 # -- Objekt-Id = ???? -------------------------------------------------- 1721 # 1722 self.TextCtrlErg__Titel = FlexGridSizerWxObjTitel( parent = self 1723 , wxObj = TextCtrlErg( self 1724 , size = ( -1, -1 ) 1725 , style = wx.BORDER_SUNKEN 1726 , Statusleiste = self.Statusleiste ) 1727 , titel = u"Projektspezifischer Dokumententitel (in der aktuellen Sprache):" 1728 , orient = wx.VERTICAL ) 1729 1730 1731 self.TextCtrlErg__Titel.wxObjekt.nimmWerteStatusleiste( 1732 DBSpNameErlaeuterung = u"Der Titel des aktuellen Dokumentes unabhängig vom Projekt. Es wird die aktuell gewählte Sprache verwendet." 1733 , DBSpName = "..." ) 1734 1735 self.Bind( wx.EVT_TEXT 1736 , self.__ereignisAenderung__ 1737 , self.TextCtrlErg__Titel.wxObjekt ) 1738 1739 1740 # 1741 # -- Id -------------------------------------------------- 1742 # -- Objekt-Id = ???? -------------------------------------------------- 1743 # 1744 self.TextCtrlErg__Id = FlexGridSizerWxObjTitel( parent = self 1745 , wxObj = TextCtrlErg( self 1746 , size = ( -1, -1 ) 1747 , style = wx.TE_READONLY|wx.BORDER_SUNKEN 1748 , Statusleiste = self.Statusleiste ) 1749 , titel = u"Id:" 1750 , orient = wx.VERTICAL ) 1751 1752 1753 self.TextCtrlErg__Id.wxObjekt.nimmWerteStatusleiste( 1754 DBSpNameErlaeuterung = u"Die Datenbankidentifikationsnummer des Dokumentes." 1755 , DBSpName = "..." ) 1756 1757 self.TextCtrlErg__Id.wxObjekt.Enable( False ) 1758 1759 1760 1761 # 1762 # -- Dokumentnummer -------------------------------------------------- 1763 # -- Objekt-Id = ???? -------------------------------------------------- 1764 # 1765 self.TextCtrlErg__DokNr = FlexGridSizerWxObjTitel( parent = self 1766 , wxObj = TextCtrlErg( self 1767 , size = ( -1, -1 ) 1768 , style = wx.BORDER_SUNKEN 1769 , Statusleiste = self.Statusleiste ) 1770 , titel = u"Dokumentennummer:" 1771 , orient = wx.VERTICAL ) 1772 1773 1774 self.TextCtrlErg__DokNr.wxObjekt.nimmWerteStatusleiste( 1775 DBSpNameErlaeuterung = u"Die Dokumentnummer." 1776 , DBSpName = "..." ) 1777 1778 self.Bind( wx.EVT_TEXT 1779 , self.__ereignisAenderung__ 1780 , self.TextCtrlErg__DokNr.wxObjekt ) 1781 1782 1783 1784 # 1785 # -- Datum der Dokumentausgabe ------------------------------------------ 1786 # -- Objekt-Id = -307 ------------------------------------------ 1787 # 1788 self.Ctrl__DatumAusgabe = FlexGridSizerWxObjTitel( parent = self 1789 , wxObj = MaskedTextCtrlErg( parent = self 1790 , validRequired = True 1791 , autoformat = "EUDATEDDMMYYYY." 1792 , Statusleiste = self.Statusleiste ) 1793 , titel = u"Datum:" 1794 , orient = wx.VERTICAL ) 1795 1796 self.Ctrl__DatumAusgabe.wxObjekt.SetMaxSize( ( 90, -1 ) ) 1797 1798 self.Ctrl__DatumAusgabe.wxObjekt.nimmWerteStatusleiste( 1799 DBSpNameErlaeuterung = u"Datum der Dokumentausgabe." 1800 , DBSpName = "..." ) 1801 1802 self.Bind( wx.EVT_TEXT 1803 , self.__ereignisAenderung__ 1804 , self.Ctrl__DatumAusgabe.wxObjekt ) 1805 1806 1807 1808 1809 # 1810 # -- Ausgabe / Revisionsstand ---------------------------------- 1811 # -- Objekt-Id = ???? -------------------------------------------------- 1812 # 1813 self.TextCtrlErg__Ausgabe = FlexGridSizerWxObjTitel( parent = self 1814 , wxObj = TextCtrlErg( self 1815 , size = ( -1, -1 ) 1816 , style = wx.BORDER_SUNKEN 1817 , Statusleiste = self.Statusleiste ) 1818 , titel = u"Ausgabe:" 1819 , orient = wx.VERTICAL ) 1820 1821 1822 self.TextCtrlErg__Ausgabe.wxObjekt.SetMinSize( ( 150, -1 ) ) 1823 1824 self.TextCtrlErg__Ausgabe.wxObjekt.nimmWerteStatusleiste( 1825 DBSpNameErlaeuterung = u"Die Dokumentausgabe / Revisionsstand." 1826 , DBSpName = "..." ) 1827 1828 self.Bind( wx.EVT_TEXT 1829 , self.__ereignisAenderung__ 1830 , self.TextCtrlErg__Ausgabe.wxObjekt ) 1831 1832 1833 1834 # 1835 # -- Ist freigegeben -------------------------------------------------- 1836 # -- Objekt-Id = -------------------------------------------------- 1837 # 1838 self.CheckBox__Freigegeben = FlexGridSizerWxObjTitel( parent = self 1839 , wxObj = CheckBoxErg( self 1840 , Statusleiste = self.Statusleiste ) 1841 , titel = u"Ist Freigegeben:" 1842 , orient = wx.VERTICAL ) 1843 1844 self.CheckBox__Freigegeben.wxObjekt.nimmWerteStatusleiste( 1845 DBSpNameErlaeuterung = u"Das Dokument ist freigegeben." 1846 , DBSpName = "..." ) 1847 1848 self.Bind( wx.EVT_CHECKBOX 1849 , self.__ereignisAenderung__ 1850 , self.CheckBox__Freigegeben.wxObjekt ) 1851 1852 1853 1854 1855 # 1856 # -- Literaturstelle (Abschnitt, Kapitel) ---------------------------------- 1857 # -- Objekt-Id = ???? -------------------------------------------------- 1858 # 1859 self.TextCtrlErg__LitStelle = FlexGridSizerWxObjTitel( parent = self 1860 , wxObj = TextCtrlErg( self 1861 , size = ( -1, -1 ) 1862 , style = wx.BORDER_SUNKEN 1863 , Statusleiste = self.Statusleiste ) 1864 , titel = u"Literaturstelle (Abschnitt, Kapitel):" 1865 , orient = wx.VERTICAL ) 1866 1867 self.TextCtrlErg__LitStelle.wxObjekt.nimmWerteStatusleiste( 1868 DBSpNameErlaeuterung = u"Es kann eine konkrete Literaturstelle (Abschnitt, Kapitel) angegeben werden." 1869 , DBSpName = "..." ) 1870 1871 self.Bind( wx.EVT_TEXT 1872 , self.__ereignisAenderung__ 1873 , self.TextCtrlErg__LitStelle.wxObjekt ) 1874 1875 1876 1877 # 1878 # -- Interne Notizen zur Literaturstelle ---------------------------------- 1879 # -- Objekt-Id = ???? -------------------------------------------------- 1880 # 1881 self.TextCtrl__NotizenLitStelle = FlexGridSizerWxObjTitel( parent = self 1882 , wxObj = TextCtrlErg( self 1883 , size = ( -1, 100 ) 1884 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN 1885 , Statusleiste = self.Statusleiste ) 1886 , titel = u"Interne Notizen zur Literaturstelle:" 1887 , orient = wx.VERTICAL ) 1888 1889 self.Bind( wx.EVT_TEXT 1890 , self.__ereignisAenderung__ 1891 , self.TextCtrl__NotizenLitStelle.wxObjekt ) 1892 1893 1894 1895 # 1896 # -- Interne Notizen zur Ausgabe / Revision -------------------------- 1897 # -- Objekt-Id = ???? -------------------------------------------------- 1898 # 1899 self.TextCtrl__NotizenAusgabe = FlexGridSizerWxObjTitel( parent = self 1900 , wxObj = TextCtrlErg( self 1901 , size = ( -1, 100 ) 1902 , style = wx.TE_MULTILINE|wx.BORDER_SUNKEN 1903 , Statusleiste = self.Statusleiste ) 1904 , titel = u"Interne Notizen zur Ausgabe:" 1905 , orient = wx.VERTICAL ) 1906 1907 self.Bind( wx.EVT_TEXT 1908 , self.__ereignisAenderung__ 1909 , self.TextCtrl__NotizenAusgabe.wxObjekt ) 1910 1911 1912 1913 1914 # 1915 # -- Layout festlegen ------------------ 1916 # -- (Fenster später im >wx.SplitterWindow< darstellen ------------------ 1917 # 1918 1919 # 1920 # -- 1.) ------------------------------------------------------------------ 1921 # 1922 FlexGridSizer = wx.FlexGridSizer( rows = 1, cols = 5, vgap = 10, hgap = 10 ) 1923 FlexGridSizer.AddGrowableCol( idx = 1, proportion = 1 ) 1924 1925 FlexGridSizer.Add( self.TextCtrlErg__Id 1926 , flag = wx.EXPAND ) 1927 1928 FlexGridSizer.Add( self.TextCtrlErg__DokNr 1929 , flag = wx.EXPAND ) 1930 1931 FlexGridSizer.Add( self.Ctrl__DatumAusgabe 1932 , flag = wx.EXPAND ) 1933 1934 FlexGridSizer.Add( self.TextCtrlErg__Ausgabe 1935 , flag = wx.EXPAND ) 1936 1937 FlexGridSizer.Add( self.CheckBox__Freigegeben 1938 , flag = wx.EXPAND ) 1939 1940 # 1941 # -- 2.) ------------------------------------------------------------------ 1942 # 1943 FlexGridSizerGes = wx.FlexGridSizer( rows = 5, cols = 1, vgap = 10, hgap = 10 ) 1944 1945 FlexGridSizerGes.AddGrowableCol( idx = 0, proportion = 0 ) 1946 FlexGridSizerGes.AddGrowableRow( idx = 3, proportion = 1 ) 1947 FlexGridSizerGes.AddGrowableRow( idx = 4, proportion = 1 ) 1948 1949 1950 FlexGridSizerGes.Add( self.TextCtrlErg__Titel 1951 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 1952 , border = 10 ) 1953 1954 FlexGridSizerGes.Add( FlexGridSizer 1955 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 1956 , border = 10 ) 1957 1958 FlexGridSizerGes.Add( self.TextCtrlErg__LitStelle 1959 , flag = wx.LEFT|wx.BOTTOM|wx.RIGHT|wx.EXPAND 1960 , border = 10 ) 1961 1962 FlexGridSizerGes.Add( self.TextCtrl__NotizenLitStelle 1963 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 1964 , border = 10 ) 1965 1966 FlexGridSizerGes.Add( self.TextCtrl__NotizenAusgabe 1967 , flag = wx.LEFT|wx.RIGHT|wx.EXPAND 1968 , border = 10 ) 1969 1970 1971 1972 # 1973 # -- In das Eingabeformular übernehmen ---------------------------------- 1974 # 1975 self.nimmDialogElemente( FlexGridSizerGes ) 1976 1977 1978 # 1979 # -- Vorgabewerte eintragen -------------------------------------------------- 1980 # 1981 self.__spezAktionenVerwerfen__() 1982 1983 1984 # 1985 # -- Button 'Änderungen verwerfen' / 'Änderungen sichern' deaktivieren -- 1986 # 1987 self.Button__Verwerfen.Enable( False ) 1988 self.Button__Sichern.Enable( False )
1989 1990 1991 1992 1993 1994 # 1995 # ------------------------------------------------------------------------------------ 1996 # -- Ausgabe in die Datenbank schreiben ---------------------------------- 1997 # ------------------------------------------------------------------------------------ 1998 #
1999 - def __schreibDBAusgabe__( self ):
2000 """ 2001 Ausgabe in die Datenbank schreiben. 2002 """ 2003 2004 # 2005 # -------------------------------------------------------------------------------- 2006 # -- ------------------ 2007 # -- Ausgabe wurde nicht geändert ------------------ 2008 # -- ------------------ 2009 # -- 'Datum der Dokumentausgabe' UND ------------------ 2010 # -- 'Ausgabe / Revisionsstand' UND ------------------ 2011 # -- 'Ist freigegeben' UND ------------------ 2012 # -- 'Interne Notizen zur Ausgabe' wurde nicht geändert ------------------ 2013 # -- ------------------ 2014 # -------------------------------------------------------------------------------- 2015 # 2016 if( not ( self.Ctrl__DatumAusgabe.wxObjekt.gibIstVomBenutzerGeaendert() 2017 or self.TextCtrlErg__Ausgabe.wxObjekt.gibIstVomBenutzerGeaendert() 2018 or self.CheckBox__Freigegeben.wxObjekt.gibIstVomBenutzerGeaendert() 2019 or self.TextCtrl__NotizenAusgabe.wxObjekt.gibIstVomBenutzerGeaendert() ) ) : 2020 2021 return 2022 2023 2024 2025 # 2026 # -------------------------------------------------------------------------------- 2027 # -- ------------------ 2028 # -- Ungültige Änderungen ------------------ 2029 # -- ------------------ 2030 # -- 'Datum der Dokumentausgabe' ist 01.01.1900 ------------------ 2031 # -- 'Ausgabe / Revisionsstand' ist Leer ------------------ 2032 # -- ------------------ 2033 # -------------------------------------------------------------------------------- 2034 # 2035 if( self.prjPlDokAusgabeDatum == '01.01.1900' 2036 or zk.istLeer( zk = self.prjPlDokAusgabeStand ) ) : 2037 2038 2039 dlg = wx.MessageDialog( self 2040 , "Die Ausgabe ist nur dann gültig, wenn\n - das Datum nicht 01.01.1900 beträgt\n - die Ausgabe nicht leer ist.\n\nDie Ausgabe wird nicht angelegt." 2041 , "Ungültige Ausgabe." 2042 , wx.OK | wx.ICON_INFORMATION ) 2043 dlg.CenterOnScreen() 2044 dlg.ShowModal() 2045 dlg.Destroy() 2046 2047 return 2048 2049 2050 2051 # 2052 # -------------------------------------------------------------------------------- 2053 # -- -------------------------- 2054 # -- Neue Ausgabe in der Datenbank anlegen -------------------------- 2055 # -- (die alte Ausgabe wird von -------------------------- 2056 # -- >prj.zeige__pl_dokausgabe_le< nicht angezeigt) -------------------------- 2057 # -- -------------------------- 2058 # -------------------------------------------------------------------------------- 2059 # 2060 self.dbVerbindung.schreibe__prjPlDokAusgabe( listeWerte = [ # 2061 # -- dok_doku_id ----- 2062 # 2063 self.dokDokuId 2064 # 2065 # -- stand ----------- 2066 # 2067 , self.prjPlDokAusgabeStand 2068 # 2069 # -- datum ----------- 2070 # 2071 , self.prjPlDokAusgabeDatum 2072 # 2073 # -- istfrei --------- 2074 # 2075 , self.prjPlDokAusgabeIstFrei 2076 # 2077 # -- notizen --------- 2078 # 2079 , self.prjPlDokAusgabeNotizen ] )
2080 2081 2082 2083 2084 2085 # 2086 # ------------------------------------------------------------------------------------ 2087 # -- Dokument / Literaturstelle in die Datenbank schreiben ------------------ 2088 # ------------------------------------------------------------------------------------ 2089 #
2091 """ 2092 Dokument / Literaturstelle in die Datenbank schreiben. 2093 """ 2094 2095 # 2096 # -------------------------------------------------------------------------------- 2097 # -- ------------------ 2098 # -- Literaturstelle wurde nicht geändert ------------------ 2099 # -- ------------------ 2100 # -- 'Dokumententitel' UND ------------------ 2101 # -- 'Dokumentnummer' UND ------------------ 2102 # -- 'Literaturstelle' UND ------------------ 2103 # -- 'Interne Notizen' wurde nicht geändert ------------------ 2104 # -- ------------------ 2105 # -------------------------------------------------------------------------------- 2106 # 2107 if( not ( self.TextCtrlErg__Titel.wxObjekt.gibIstVomBenutzerGeaendert() 2108 or self.TextCtrlErg__DokNr.wxObjekt.gibIstVomBenutzerGeaendert() 2109 or self.TextCtrlErg__LitStelle.wxObjekt.gibIstVomBenutzerGeaendert() 2110 or self.TextCtrl__NotizenLitStelle.wxObjekt.gibIstVomBenutzerGeaendert() ) ) : 2111 2112 return 2113 2114 2115 2116 # 2117 # -------------------------------------------------------------------------------- 2118 # -- ------------------ 2119 # -- Ungültige Änderungen ------------------ 2120 # -- ------------------ 2121 # -- 'Dokumententitel' ist Leer ------------------ 2122 # -- 'Dokumentnummer' ist Leer ------------------ 2123 # -- 'Literaturstelle' (bei Neu) ist Leer ------------------ 2124 # -- ------------------ 2125 # -------------------------------------------------------------------------------- 2126 # 2127 if( zk.istLeer( zk = self.dokTitel ) 2128 or zk.istLeer( zk = self.prjPlPrtDokDokuNr ) 2129 or ( zk.istLeer( zk = self.litStelle ) and self.istNeu ) ) : 2130 2131 dlg = wx.MessageDialog( self 2132 , "Das Dokument / die Literaturstelle ist nur dann gültig, wenn\n - der Dokumententitel\n - die Dokumentennummer\n - die Literaturstelle (bei Neuanlage) \nnicht leer ist.\n\nDas Dokument wird nicht geändert bzw. die Literaturstelle wird nicht angelegt." 2133 , "Ungültiges Dokument / Literaturstelle." 2134 , wx.OK | wx.ICON_INFORMATION ) 2135 dlg.CenterOnScreen() 2136 dlg.ShowModal() 2137 dlg.Destroy() 2138 2139 return 2140 2141 2142 # 2143 # -------------------------------------------------------------------------------- 2144 # -- ---------------------------------- 2145 # -- Geänderte Zeichenketten übernehmen ---------------------------------- 2146 # -- ---------------------------------- 2147 # -------------------------------------------------------------------------------- 2148 # 2149 self.prjPlPrtDokDokuSprUebvarId = self.dbVerbindung.schreibe__sprNimmWgruppe( sprUebvarId = 0 2150 , wortgruppe = self.dokTitel 2151 , sprSprachenId = self.dbVerbindung.filter__spr_sprachen_id ) 2152 2153 self.prjPlPrtDokDokuSprUebvarIdZus = self.dbVerbindung.schreibe__sprNimmWgruppe( sprUebvarId = 0 2154 , wortgruppe = self.litStelle 2155 , sprSprachenId = self.dbVerbindung.filter__spr_sprachen_id ) 2156 2157 2158 # 2159 # -------------------------------------------------------------------------------- 2160 # -- ---------------------------------- 2161 # -- Aktuelle Werte zusammenstellen ---------------------------------- 2162 # -- ---------------------------------- 2163 # -------------------------------------------------------------------------------- 2164 # 2165 listePrjPlPrtDokDoku = [] 2166 lokal = Lokal( dbVerbindung = self.dbVerbindung 2167 , dokDokuId = self.dokDokuId 2168 , prjPlPrtDokDokuNr = self.prjPlPrtDokDokuNr 2169 , prjPlPrtDokDokuSprUebvarId = self.prjPlPrtDokDokuSprUebvarId 2170 , prtProtokollId = self.prtProtokollId 2171 , prjPlPrtDokDokuNotizen = self.prjPlPrtDokDokuNotizen 2172 , prjPlPrtDokDokuSprUebvarIdZus = self.prjPlPrtDokDokuSprUebvarIdZus ) 2173 2174 2175 # 2176 # -------------------------------------------------------------------------------- 2177 # -- ---------------------------------- 2178 # -- Neue Literaturstelle ---------------------------------- 2179 # -- ---------------------------------- 2180 # -- Aktuelle Werte übernehmen ---------------------------------- 2181 # -- ---------------------------------- 2182 # -- Nach dem Speichern werden Änderungen ---------------------------------- 2183 # -- als 'Bearbeitung' interpretiert ---------------------------------- 2184 # -- ---------------------------------- 2185 # -------------------------------------------------------------------------------- 2186 # 2187 if( self.istNeu ) : 2188 2189 listePrjPlPrtDokDoku = lokal.gib__LiteraturstelleEinzeln( prjPlPrtDokDokuNotizen_Alt = None 2190 , prjPlPrtDokDokuNr_Alt = None 2191 , prjPlPrtDokDokuSprUebvarId_Alt = None 2192 , prjPlPrtDokDokuSprUebvarIdZus_Alt = None 2193 , istNeu = True ) 2194 2195 self.istNeu = False 2196 2197 2198 # 2199 # -------------------------------------------------------------------------------- 2200 # -- -------------------------- 2201 # -- Bearbeitung der Literaturstelle -------------------------- 2202 # -- -------------------------- 2203 # -- Die bisher gültige Literaturstelle im Logbuch -------------------------- 2204 # -- als 'Entfernt' markieren -------------------------- 2205 # -- -------------------------- 2206 # -- Aktuelle Werte übernehmen -------------------------- 2207 # -- -------------------------- 2208 # -------------------------------------------------------------------------------- 2209 # 2210 elif( not self.istNeu 2211 and not self.TextCtrlErg__Titel.wxObjekt.gibIstVomBenutzerGeaendert() 2212 and not self.TextCtrlErg__DokNr.wxObjekt.gibIstVomBenutzerGeaendert() ) : 2213 2214 listePrjPlPrtDokDoku = lokal.gib__LiteraturstelleEinzeln( 2215 prjPlPrtDokDokuNotizen_Alt = self.prjPlPrtDokDokuNotizen_Alt 2216 , prjPlPrtDokDokuNr_Alt = self.prjPlPrtDokDokuNr_Alt 2217 , prjPlPrtDokDokuSprUebvarId_Alt = self.prjPlPrtDokDokuSprUebvarId_Alt 2218 , prjPlPrtDokDokuSprUebvarIdZus_Alt = self.prjPlPrtDokDokuSprUebvarIdZus_Alt ) 2219 2220 2221 2222 2223 # 2224 # -------------------------------------------------------------------------------- 2225 # -- ------------------ 2226 # -- Bearbeitung der Dokumentnummer/Dokumenttitel ------------------ 2227 # -- ------------------ 2228 # -- ------------------ 2229 # -- Alle bisher gültigen Literaturstellen ermitteln ------------------ 2230 # -- ------------------ 2231 # -- Die bisher gültigen Literaturstellen im Logbuch ------------------ 2232 # -- als 'Entfernt' markieren ------------------ 2233 # -- ------------------ 2234 # -- Die bisher gültigen Literaturstellen mit der neuen ------------------ 2235 # -- Dokumentnummer/Dokumenttitel versehen ------------------ 2236 # -- ------------------ 2237 # -------------------------------------------------------------------------------- 2238 # 2239 elif( self.TextCtrlErg__Titel.wxObjekt.gibIstVomBenutzerGeaendert() 2240 or self.TextCtrlErg__DokNr.wxObjekt.gibIstVomBenutzerGeaendert() ) : 2241 2242 listePrjPlPrtDokDoku = lokal.gib__Literaturstellen() 2243 2244 2245 # 2246 # -------------------------------------------------------------------------------- 2247 # -- ------------------------------------------ 2248 # -- Datenbank aktualisieren ------------------------------------------ 2249 # -- ------------------------------------------ 2250 # -------------------------------------------------------------------------------- 2251 # 2252 for i in range( len( listePrjPlPrtDokDoku ) ): 2253 2254 self.dbVerbindung.schreibe__prjPlPrtDokDoku( listeWerte = listePrjPlPrtDokDoku[i] )
2255 2256 2257 2258 2259 # 2260 # ------------------------------------------------------------------------------------ 2261 # -- Änderungsstatus der Eingabeobjekte des abgeleiteten Objektes ---------- 2262 # -- zurücksetzen ---------- 2263 # ------------------------------------------------------------------------------------ 2264 #
2266 """ 2267 Methode die von der abgeleiteten Klasse überschrieben werden kann, um den Änderungsstatus der Eingabeobjekte zurückzusetzen. 2268 """ 2269 2270 # 2271 # -------------------------------------------------------------------------------- 2272 # -- Änderungsstatus zurücksetzen ------------------------------------------ 2273 # -------------------------------------------------------------------------------- 2274 # 2275 # -- Dokumententitel -------------------------------------------------- 2276 # 2277 self.TextCtrlErg__Titel.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2278 # 2279 # -- Dokumentnummer -------------------------------------------------- 2280 # 2281 self.TextCtrlErg__DokNr.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2282 # 2283 # -- Datum der Dokumentausgabe ------------------------------------------ 2284 # 2285 self.Ctrl__DatumAusgabe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2286 # 2287 # -- Ausgabe / Revisionsstand ---------------------------------- 2288 # 2289 self.TextCtrlErg__Ausgabe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2290 # 2291 # -- Ist freigegeben -------------------------------------------------- 2292 # 2293 self.CheckBox__Freigegeben.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2294 # 2295 # -- Literaturstelle (Abschnitt, Kapitel) ---------------------------------- 2296 # 2297 self.TextCtrlErg__LitStelle.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2298 # 2299 # -- Interne Notizen -------------------------------------------------- 2300 # 2301 self.TextCtrl__NotizenLitStelle.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False ) 2302 # 2303 # -- Interne Notizen zur Ausgabe / Revision -------------------------- 2304 # 2305 self.TextCtrl__NotizenAusgabe.wxObjekt.nimmIstVomBenutzerGeaendert( istVomBenutzerGeaendert = False )
2306 2307 2308 2309 2310 # 2311 # ------------------------------------------------------------------------------------ 2312 # -- Speichern ---------------------------------------------------------- 2313 # ------------------------------------------------------------------------------------ 2314 #
2315 - def __spezAktionenSpeichern__( self ):
2316 """ 2317 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Speichern der Änderungen auszuführen. 2318 """ 2319 2320 # 2321 # -------------------------------------------------------------------------------- 2322 # -- Änderungen in die globalen Variablen übernehmen ------------------ 2323 # -------------------------------------------------------------------------------- 2324 # 2325 # -- Dokumententitel -------------------------------------------------- 2326 # 2327 self.dokTitel = self.TextCtrlErg__Titel.wxObjekt.gibWert() 2328 # 2329 # -- Dokumentnummer -------------------------------------------------- 2330 # 2331 self.prjPlPrtDokDokuNr = self.TextCtrlErg__DokNr.wxObjekt.gibWert() 2332 # 2333 # -- Datum der Dokumentausgabe ------------------------------------------ 2334 # 2335 self.prjPlDokAusgabeDatum = self.Ctrl__DatumAusgabe.wxObjekt.gibWert() 2336 # 2337 # -- Ausgabe / Revisionsstand ---------------------------------- 2338 # 2339 self.prjPlDokAusgabeStand = self.TextCtrlErg__Ausgabe.wxObjekt.gibWert() 2340 # 2341 # -- Ist freigegeben -------------------------------------------------- 2342 # 2343 self.prjPlDokAusgabeIstFrei = str( self.CheckBox__Freigegeben.wxObjekt.gibWert() ).upper() 2344 # 2345 # -- Literaturstelle (Abschnitt, Kapitel) ---------------------------------- 2346 # 2347 self.litStelle = self.TextCtrlErg__LitStelle.wxObjekt.gibWert() 2348 if( zk.istLeer( zk = self.litStelle ) ) : self.litStelle = zk.gibZk( "" ) 2349 # 2350 # -- Interne Notizen (Dokument/Literaturstelle) -------------------------- 2351 # 2352 self.prjPlPrtDokDokuNotizen = self.TextCtrl__NotizenLitStelle.wxObjekt.gibWert() 2353 if( zk.istLeer( zk = self.prjPlPrtDokDokuNotizen ) ) : self.prjPlPrtDokDokuNotizen = zk.gibZk( "" ) 2354 # 2355 # -- Interne Notizen zur Ausgabe / Revision -------------------------- 2356 # 2357 self.prjPlDokAusgabeNotizen = self.TextCtrl__NotizenAusgabe.wxObjekt.gibWert() 2358 if( zk.istLeer( zk = self.prjPlDokAusgabeNotizen ) ) : self.prjPlDokAusgabeNotizen = zk.gibZk( "" ) 2359 2360 2361 # 2362 # -------------------------------------------------------------------------------- 2363 # -- Ausgabe in die Datenbank schreiben ---------------------------------- 2364 # -------------------------------------------------------------------------------- 2365 # 2366 self.__schreibDBAusgabe__() 2367 2368 2369 # 2370 # -------------------------------------------------------------------------------- 2371 # -- Dokument / Literaturstelle in die Datenbank schreiben ------------------ 2372 # -------------------------------------------------------------------------------- 2373 # 2374 self.__schreibDBDokumentLitStelle__() 2375 2376 2377 # 2378 # -------------------------------------------------------------------------------- 2379 # -- Alte Werte überschreiben ------------------------------------------ 2380 # -------------------------------------------------------------------------------- 2381 # 2382 self.prjPlPrtDokDokuNotizen_Alt = self.prjPlPrtDokDokuNotizen 2383 self.prjPlPrtDokDokuNr_Alt = self.prjPlPrtDokDokuNr 2384 self.prjPlPrtDokDokuSprUebvarId_Alt = self.prjPlPrtDokDokuSprUebvarId 2385 self.prjPlPrtDokDokuSprUebvarIdZus_Alt = self.prjPlPrtDokDokuSprUebvarIdZus
2386 2387 2388 2389 2390 2391 2392 # 2393 # ------------------------------------------------------------------------------------ 2394 # -- Verwerfen ---------------------------------------------------------- 2395 # ------------------------------------------------------------------------------------ 2396 #
2397 - def __spezAktionenVerwerfen__( self ):
2398 """ 2399 Methode die in der abgeleiteten Klasse überschrieben wird, um spezifische Aktionen beim Verwerfen der Änderungen auszuführen. 2400 """ 2401 2402 # 2403 # -- Dokumententitel -------------------------------------------------- 2404 # 2405 self.TextCtrlErg__Titel.wxObjekt.nimmWert( wert = self.dokTitel ) 2406 if( self.istNeu or not self.istTitelNr ) : 2407 self.TextCtrlErg__Titel.wxObjekt.Enable( False ) 2408 else : 2409 self.TextCtrlErg__Titel.wxObjekt.Enable( True ) 2410 2411 2412 # 2413 # -- Id -------------------------------------------------- 2414 # 2415 self.TextCtrlErg__Id.wxObjekt.nimmWert( wert = str( self.dokDokuId ).zfill( 4 ) ) 2416 2417 2418 # 2419 # -- Dokumentnummer -------------------------------------------------- 2420 # 2421 self.TextCtrlErg__DokNr.wxObjekt.nimmWert( wert = self.prjPlPrtDokDokuNr ) 2422 if( self.istNeu or not self.istTitelNr ) : 2423 self.TextCtrlErg__DokNr.wxObjekt.Enable( False ) 2424 else : 2425 self.TextCtrlErg__DokNr.wxObjekt.Enable( True ) 2426 2427 2428 # 2429 # -- Datum der Dokumentausgabe ------------------------------------------ 2430 # 2431 self.Ctrl__DatumAusgabe.wxObjekt.nimmWert( wert = self.prjPlDokAusgabeDatum ) 2432 if( self.istNeu or self.istTitelNr ) : 2433 self.Ctrl__DatumAusgabe.wxObjekt.Enable( False ) 2434 self.Ctrl__DatumAusgabe.wxObjekt.SetBackgroundColour( self.GetBackgroundColour() ) 2435 else : 2436 self.Ctrl__DatumAusgabe.wxObjekt.Enable( True ) 2437 2438 2439 2440 # 2441 # -- Ausgabe / Revisionsstand ---------------------------------- 2442 # 2443 self.TextCtrlErg__Ausgabe.wxObjekt.nimmWert( wert = self.prjPlDokAusgabeStand ) 2444 if( self.istNeu or self.istTitelNr ) : 2445 self.TextCtrlErg__Ausgabe.wxObjekt.Enable( False ) 2446 else : 2447 self.TextCtrlErg__Ausgabe.wxObjekt.Enable( True ) 2448 2449 2450 # 2451 # -- Ist freigegeben -------------------------------------------------- 2452 # 2453 self.CheckBox__Freigegeben.wxObjekt.nimmWert( wert = ( str( self.prjPlDokAusgabeIstFrei ).upper() == 'TRUE' ) ) 2454 if( self.istNeu or self.istTitelNr ) : 2455 self.CheckBox__Freigegeben.wxObjekt.Enable( False ) 2456 else : 2457 self.CheckBox__Freigegeben.wxObjekt.Enable( True ) 2458 2459 2460 # 2461 # -- Literaturstelle (Abschnitt, Kapitel) ---------------------------------- 2462 # 2463 self.TextCtrlErg__LitStelle.wxObjekt.nimmWert( wert = self.litStelle ) 2464 if( self.istTitelNr ) : 2465 self.TextCtrlErg__LitStelle.wxObjekt.Enable( False ) 2466 else : 2467 self.TextCtrlErg__LitStelle.wxObjekt.Enable( True ) 2468 2469 2470 # 2471 # -- Interne Notizen -------------------------------------------------- 2472 # 2473 self.TextCtrl__NotizenLitStelle.wxObjekt.nimmWert( wert = self.prjPlPrtDokDokuNotizen ) 2474 if( self.istTitelNr ) : 2475 self.TextCtrl__NotizenLitStelle.wxObjekt.Enable( False ) 2476 else : 2477 self.TextCtrl__NotizenLitStelle.wxObjekt.Enable( True ) 2478 2479 2480 # 2481 # -- Interne Notizen zur Ausgabe / Revision -------------------------- 2482 # 2483 self.TextCtrl__NotizenAusgabe.wxObjekt.nimmWert( wert = self.prjPlDokAusgabeNotizen ) 2484 if( self.istNeu or self.istTitelNr ) : 2485 self.TextCtrl__NotizenAusgabe.wxObjekt.Enable( False ) 2486 else : 2487 self.TextCtrl__NotizenAusgabe.wxObjekt.Enable( True )
2488