#! /home/invep/src/invep/invep
! SQL_Verfahrensrichter.obas (c) Andre Koppel Software 2013
! Dieses kleine Programm listet sämtliche Verfahren sowie
! die Richter, von denen der Auftrag kommen.
DEF POOL 500000
INIT VARSPACE
DIM descr$[1000],d$[20000],elem$[80],r$[200000]

! mit DISPLAY IS definieren wir ein eigenes Ausgabefenster
! Wenn wir die Ausgabe in diesem Fenster sehen wollen,
! so kommentieren wir die Zeile einfach aus
DISPLAY IS MESSAGE WINDOW
CLRSCR
IsDescription=0

! Die abzufragenden Daten
name$="prj,prj_inso,adr,prj_role"
StartSnr=1
EndSnr=100000
! Die Richter in einem Verfahren haben die Rolle mit der
! Nummer 9, also fragen wir entsprechend ab.
Felder$="prj.fremd_refk,prj.fremd_aktz,d_antrag,d_eroeff,"
Felder$=Felder$&"adr.firma,adr.zname,adr.vname"
Condi$="prj.snr=prj_inso.snr and prj_role.prj_snr=prj.snr and"
Condi$=Condi$&" adr.snr=prj_role.adr_snr and prj_role.role=9"
Condi$=Condi$&" and prj.snr>=" & VAL$(StartSnr)
Condi$=Condi$&" AND prj.snr<=" & VAL$(EndSnr)
r$=SQL QUERY$(name$ ; Felder$ ; Condi$ )
IF NOT SLEN(r$) THEN
  DISP "keine Daten vorhanden\n"
  TERMINAL
END IF
AnzahlDatensaetze=LIST LEN(r$)
DISP RPT$("-",80) "\n"
DISP "Anzahl Datensätze: " AnzahlDatensaetze "\n"
IF IsDescription THEN
  DISP r$ "\n"
END IF
DISP RPT$("-",80) "\n"

! Als Ergebnis eines Query-Kommandos bekommen wir immer eine
! Liste, die weitere Listen enthält. Die innersten Listen
! sind die einzelnen Datensätze.
! Wir erzeugen also zwei Schleifen. in der äußeren Schleife
! extrahieren wir einen Datensatz aus der Gesamtliste
! dann ermitteln wir die Anzahl der Elemente in der
! Ergebnisliste. Unsere Ausgabe ist so aufgebaut, dass wir
! immer das Aktenzeichen sowie das Antrags- und
! Eröffnungsdatum formatiert ausgeben. Die weiteren
! Elemente geben wir unformatiert, durch Komma getrennt aus.
Leer$=CHR$(34)&CHR$(34)
Format$="5AX10A';'10A';'10A';'"
FOR OLoop=1 TO AnzahlDatensaetze
  d$=LIST GET$(r$;OLoop)
  n=LIST LEN(d$)
  ! DISP "Elemente: " n "\n"
  Refk$=LIST GET$(d$ ; 1)
  Aktz$=LIST GET$(d$ ; 2)
  Antrag$=LIST GET$(d$ ; 3)
  Eroeff$=LIST GET$(d$ ; 4)
  ! Die Datenbank vermeidet 0-Datumsangaben. Es wird statt
  ! dessen 0001.01.01 gespeichert. Wenn wir also eine
  ! Datumszeichenkette finden, die mit "000" anfängt, dann
  ! löschen wir die Zeichenkette
  IF Eroeff$[1;3]=="000" THEN Eroeff$=""
  DISP USING Format$ : Refk$ Aktz$ Antrag$ Eroeff$
  ! Nun geben wir die Elemente eines Datensatzes schön
  ! formatiert aus
  IstLeer=1
  FOR i=5 TO n
    e$=LIST GET$(d$ ; i)
    sl=SLEN(e$)
    ! DISP "(" sl ")"
    IF SLEN(e$) AND e$<>Leer$ THEN
      IF NOT IstLeer THEN DISP ", "
      DISP e$
      IstLeer=0
    END IF
  NEXT
  DISP "\n"
NEXT
! jetzt kopieren wir die Gesamte Bildschirmausgabe in eine
! Datei in unserem Heimatverzeichnis
DUMP MESSAGE WINDOW TO "richter.csv"

Das ist interessant

Basierend auf der Idee der direkten Datenbankabfragen mit OBAS erzeugt dieses kleine Programm eine Liste sämtlicher im System eingetragener Insolvenzverfahren. Die Liste wird im CSV-Format erzeugt, damit sie später mit Excel gut eingelesen werden kann. Neben dem Aktenzeichen sowie dem Antrags- und Eröffnungsdatum wird auch der zuständige Richter ausgegeben. Der Richter hat die Rollennummer 9. Diese Nummer kann auch durch eine andere ersetzt werden, um andere Personen abzufragen.

Das Ergebnis wird in die Datei mit dem Namen "richter.csv" in das Heimatverzeichnis des Anwenders geschrieben. Dort kann die Datei z.B. jederzeit mit Excel geöffnet werden.

Das hier gezeigte Beispielprogramm kann man natürlich deutlich kompakter schreiben. So ist es z.B. unnötig, die Zeichenkette Condi$ über mehrere Zeilen hinweg zusammenzubauen. Tatsächlich ist diese Vorgehensweise nur dem Layout der Webseite geschuldet.

 

Beispiel in INVEP laden

Sie können dieses Beispielprogramm in den INVEP-OBAS-Interpreter laden, indem Sie im Interpreter über den Button "Neu/laden" die Option OBAS-Web auswählen. Geben Sie als Nummer für das Beispiel die 3 ein.

Bitte beachten Sie, dass Kanzleien mit sehr vielen Verfahren ggf. die Größe der Variablen anpassen müssen, da der Standardspeicher sonst nicht ausreicht. Ändern Sie dafür einfach die Definition des Pools sowie die Definition der Zeichenketten in der Folgezeile, indem Sie zum Beispiel jeweils eine 0 einfügen und damit alles um den Faktor 10 vergrößern.



Schatten