Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240996 (2432)

| Suchen
| Zurück zur Übersicht

Autor | Thema: DB-Browse
Rainer Hoffmann
| Datum:19.06.02 06:47 (R.hoffmann@freenet.de) |
Hi! gibt es auch eine andere form von db-browse z.b wie eine exel-tabelle? oder kann man sie sowas selber schreiben??? MFG Rainer
Alistair Murray
| Datum:18.07.02 15:50 (alistair@murray.ch) |
Hallo Rainer Wie wär's mit folgender Idee (gibt einiges zu tun!): - Du legst eine Listbox an - Du trägst der Reihe nach den Inhalt der DBF-Datei in die Listbox ein. Den jeweiligen String bastelst Du, indem Du jedes Feld eines Datensatz ausliest, auf eine bestimmte Länge kürzest (oder mit leerschlägen auffüllst), und dann alle diese Teilstrings zusammenfügst, und diesen ganzen String jeweils als *einen* Eintrag in die Listbox eintragen lässt. Falls Du eine nichtproportionale Schrift zur Darstellung verwendest, liegen die Daten schön untereinander, und Du hast ein gewisses Tabellen-Feeling. -Diese Einträge lassen sich anwählen. Je nach Position, die angewählt ist, kannst Du errechnen, welcher Eintrag in der DBF-Datei gemeint ist. Diesen Datensatz kannst Du, je nach Wunsch, auslesen, verändern, etc. Was Dir noch Schwierigkeiten machen könnte: Die Listbox wird von 0 bis n-1 bei n Datensätzen angesprochen, die DBF-Datei wahrscheinlich von 1 bis n. Vielleicht helfen Dir diese Ideen weiter herzlich Alistair
Rainer Hoffmann
| Datum:19.07.02 12:23 (R.hoffmann@freenet.de) |
Hallo Alistair Murray Haste mal ein beispiel für mich ??????
Gerhard Putschalka
| Datum:19.07.02 17:52 (g.putschalka@utanet.at) |
Hallo Rainer, als Ergänzung zu Alistairs Vorschlag: auf meiner HP http://members.telering.at/g.putschalka/index.html findest Du unter Programme / Boxes Listboxbeispiele wo die Zeilen mit Hilfe von Tabulatoren auch formatiert werden können. Mfg Gerhard.
Rainer Hoffmann
| Datum:24.07.02 06:51 (hoffmann@freenet.de) |
Ich komme nicht Klar hat mal einer ein beispiel für mich mit einer dbf-Datei Danke im Vorraus
Alistair Murray
| Datum: 24.07.02 22:06 (alistair@murray.ch) |
Hallo Rainer Ich hab mal so was durchgespielt: Ein Programm für Theologen, zum Verwalten von Elementen in Gottesdiensten (Segen, Gebete, Bibelverse und Predigten. Mit dem Programm lassen sich die Sammlungen verwalten (dbf-Datei) und in einem Gottesdienst zusammenstellen (ebenfalls dbf). Dazu hat mein Programm zwei dbf-Dateien offen: #1 ist die Sammlung, #2 die Liturgie. Die Liturgie wird in einer Listbox angezeigt. dbf #1 hat die Struktur "TYPEEL" (Text), "ELDESC" (auch Text) und "ELTEXT" (Memo). #2 hat dieselben Felder, zusätzlich eines namens "REIHE" (String, aber es werden darin Zahlen abgelegt, dient dazu, die Reihenfolge der Gottesdienstordnung zu sichern.) Die Listbox, die die Einträge visualisiert, hat das Handle lit_list%. Dazu habe ich die folgenden drei Prozeduren konstruiert. Sie verwalten eine Datenbank, und *parallel* dazu die Einträge in der Listbox (Wo "TYPEEL" und "ELDESC" angezeigt werden): proc moveout 'löscht Eintrag aus db und listbox declare lit_index&,prov_reihe%, moveinpos& @dbuse(#2) dbindex("REIHE") let lit_index&=@GetCursel(lit_list%)+1 @dbgo ("*",lit_index&) dbdelete() dbpack() @dbclose(#2) @dbopen(#2,lfilename$) dbcreateindex "REIHE" >"REIHE" dbindex("REIHE") @dbgo ("*",lit_index&) let prov_reihe%=1 'achtung: MUSS aufwärts gehen while neq(%dbeof,1) dbput("REIHE",format$("0.",lit_index&+prov_reihe%-1) ) dbputrec(0) dbgo("*",lit_index&+prov_reihe%) inc prov_reihe% endwhile @dbclose(#2) @dbopen(#2,lfilename$) dbcreateindex "REIHE" >"REIHE" dbindex("REIHE") @DeleteString(lit_list%,@GetCursel(lit_list%)) endproc proc movein 'reiht Eintrag über dem angewählten ein declare lit_index&,moveinpos&,prov_reihe%,written% let moveinpos&=@GetCursel(lit_list%) let written%=0 @dbuse(#2) dbIndex("REIHE") let lit_index&=&dbreccount if &dbreccount=0 'erster Satz dbappendblank() dbput ("REIHE","1") dbput ("TYPEEL",@gettext$(type_of_el%)) dbput ("ELDESC",@gettext$(el_desc%)) dbputmemo ("ELTEXT") dbputrec(0) dbcreateindex "REIHE" >"REIHE" @dbclose(#2) @dbopen(#2,lfilename$) let written%=1 @InsertString(lit_list%,moveinpos&,trim$(@gettext$(type_of_el%))+"; "+trim$(@gettext$(el_desc%))) endif let prov_reihe%=&dbreccount'angleichung an db if written%=0 dbgo("BOTTOM") while gt(prov_reihe%,moveinpos&) dbput ("REIHE",format$("0.",prov_reihe%+1) ) dbputrec(0) dec prov_reihe% dbgo("PREV") endwhile endif if written%=0 dbappendblank() dbput ("REIHE",format$("0.",add(moveinpos&,1))) '** dbput ("TYPEEL",@gettext$(type_of_el%)) dbput ("ELDESC",@gettext$(el_desc%)) dbputmemo ("ELTEXT") dbputrec(0) dbcreateindex "REIHE" >"REIHE" @dbclose(#2) @dbopen(#2,lfilename$) endif if written%=0 @InsertString(lit_list%,moveinpos&,trim$(@gettext$(type_of_el%))+"; "+trim$(@gettext$(el_desc%))) endif endproc proc moveinu 'reiht Eintrag unter angewähltem Eintrag in Listbox declare lit_index&,moveinpos&,prov_reihe%,written% let moveinpos&=@GetCursel(lit_list%) let written%=0 @dbuse(#2) dbIndex("REIHE") let lit_index&=&dbreccount if &dbreccount=0 'erster Satz dbappendblank() dbput ("REIHE","1") dbput ("TYPEEL",@gettext$(type_of_el%)) dbput ("ELDESC",@gettext$(el_desc%)) dbputmemo("ELTEXT") dbputrec(0) dbcreateindex "REIHE" >"REIHE" @dbclose(#2) @dbopen(#2,lfilename$) let written%=1 @InsertString(lit_list%,moveinpos&,trim$(@gettext$(type_of_el%))+"; "+trim$(@gettext$(el_desc%))) endif let prov_reihe%=&dbreccount'angleichung an db if written%=0 dbgo("BOTTOM") while gt(prov_reihe%,moveinpos&+1) dbput ("REIHE",format$("0.",prov_reihe%+1) ) dbputrec(0) dec prov_reihe% dbgo("PREV") endwhile endif if written%=0 dbappendblank() dbput ("REIHE",format$("0.",moveinpos&+2)) '** dbput ("TYPEEL",@gettext$(type_of_el%)) dbput ("ELDESC",@gettext$(el_desc%)) dbputmemo("ELTEXT") dbputrec(0) dbcreateindex "REIHE" >"REIHE" @dbclose(#2) @dbopen(#2,lfilename$) endif if written%=0 @InsertString(lit_list%,moveinpos&,trim$(@gettext$(type_of_el%))+"; "+trim$(@gettext$(el_desc%))) endif endproc Hoffentlich kannst Du Dich da durchbeissen. Ich hab Tage daran gehabt. herzlich Alistair P.s. stecke zur Zeit im Urlaub, und gehe dort nur sporadisch on line.

| Zurück zur Übersicht