Autor | Thema: DB-Browse | | 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
|
| | 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
|
| | Datum:19.07.02 12:23 
(R.hoffmann@freenet.de) | |
Hallo Alistair Murray
Haste mal ein beispiel für mich ??????
|
| | 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.
|
| | 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
|
| | 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.
|
|
|