Foro | | | | Ralf Wicken | Hallo zusammen!
Bin seit einigen Jahren begeisterter Profan-User und nutze immer mehr zur Speicherung meiner Daten die dBase-Datenbank.
Leider habe ich noch ein paar Probleme:
a) In meiner Eingabemaske ist u.a. ein Feld, das ich mit einer Choicebox dargestellt habe. Leider bekomme ich es nicht in den Griff, den ausgewählten Begriff aus der Choicebox in die dBase-Datenbank abzuspeichern und später wieder in der Maske anzeigbar zu machen. b) Beim Blättern durch die Datenbank wird bei Auswahl eines bestimmten Begriffs der Choicebox immer wieder der ausgewählte Begriff bei den anderen Datensätzen angezeigt. Wenn ich also beim Datensatz 1 in der Choicebox Mönchengladbach auswähle, so wird auch beim Datensatz 2, 3, 4, ff immer wieder Mönchengladbach als Feldinhalt angezeigt.
Irgendwie tappe ich zurzeit im Dunkeln! Kann mir vielleicht jemand bei diesem Problem helfen. Ich habe schon so manche Stunde am Rechner verbracht und überlege und überlege und überlege. Leider bin ich wohl kein Professor Baltasar!
Zur Veranschaulichung habe ich Euch ein Beispielskript als Anlage beigefügt. Übrigens: ich nutze XProfan 8.0a.
Vielen Dank per Eure Aiuto! Saluto Ralf |
| | | | |
| | | Hallo Ralf...
Es ist immer besser, bei sowas die leere Datenbank mitzuschicken, dann muss man nicht so viel fummeln: KompilierenMarkierenSeparieren=====================================
Programm erzeugt von RGH-ProBase 2.0
am: 25.02.2007
um: 17:57
=====================================
Font 1 DOS-Zeichensatz
Declare NACHNAME%
Declare VORNAME%
Declare STRASSE%
Declare WOHNORT%*********** Choicebox-Feld *************************
Declare PLZ%
Declare TELEFON%
Declare GEBURTSTAG%
Declare cmPrev%, cmNext%, cmNeu%, cmFirst%, cmLast%, cmEnde%
Declare cmEntf%, cmSuch%, cmReorg%, cmMemo%
PROC ReOrg
dbCreateIndex NACHNAME > NACHNAME
@dbIndex(NACHNAME)
ENDPROC
PROC GetSatz
SetText NACHNAME%,@dbGet$(NACHNAME)
SetText VORNAME%,@dbGet$(VORNAME)
SetText STRASSE%,@dbGet$(STRASSE)
Print @trim$(@dbGet$(WOHNORT))
IF @trim$(@dbGet$(WOHNORT))=Aachen
@sendmessage(WOHNORT%,$14E,0,0)
Elseif @trim$(@dbGet$(WOHNORT))=Köln
@sendmessage(WOHNORT%,$14E,1,0)
Elseif @trim$(@dbGet$(WOHNORT))=Mönchengladbach
@sendmessage(WOHNORT%,$14E,2,0)
else
@sendmessage(WOHNORT%,$14E,-1,0)
endif
SetText WOHNORT%,@dbGet$(WOHNORT) *********** Choicebox-Feld *************************
SetText PLZ%,@Trim$(@dbGet$(PLZ))
SetText TELEFON%,@dbGet$(TELEFON)
SetText GEBURTSTAG%,@dbGet$(GEBURTSTAG)
ENDPROC
PROC PutSatz
@dbPut(NACHNAME,@GetText$(NACHNAME%))
@dbPut(VORNAME,@GetText$(VORNAME%))
@dbPut(STRASSE,@GetText$(STRASSE%))
@dbPut(WOHNORT,@GetText$(WOHNORT%))*********** Choicebox-Feld *************************
@dbPut(PLZ,@Trim$(@GetText$(PLZ%)))
@dbPut(TELEFON,@GetText$(TELEFON%))
@dbPut(GEBURTSTAG,@GetText$(GEBURTSTAG%))
ENDPROC
PROC Maske
Declare E%,_dlg%,S&,Such$
Let Such$ =
let _dlg%=@createdialog(%HWnd,Adress-Datenbank,126,20,480,250)
@createtext(_dlg%,Nachname:,24,16,96,24)
@createtext(_dlg%,Vorname:,24,40,96,24)
@createtext(_dlg%,Strasse:,24,64,96,24)
@createtext(_dlg%,Wohnort:,24,88,96,24)
@createtext(_dlg%,Plz:,24,112,96,24)
@createtext(_dlg%,Telefon:,24,136,96,24)
@createtext(_dlg%,Geburtstag:,24,160,96,24)
let NACHNAME%=@createedit(_dlg%,,128,16,184,24)
let VORNAME%=@createedit(_dlg%,,128,40,184,24)
let STRASSE%=@createedit(_dlg%,,128,64,224,24)
let WOHNORT%=@CREATE(CHOICEBOX,_dlg%,,128,88,144,84)*********** Choicebox-Feld *************************
ADDCHOICE(WOHNORT%,Mönchengladbach)
ADDCHOICE(WOHNORT%,Aachen)
ADDCHOICE(WOHNORT%,Köln)
let PLZ%=@createedit(_dlg%,,128,112,64,24)
let TELEFON%=@createedit(_dlg%,,128,136,184,24)
let GEBURTSTAG%=@createedit(_dlg%,,128,160,104,24)
let cmFirst%=@createbutton(_dlg%,|<,24,192,24,24)
let cmPrev%=@createbutton(_dlg%,<,48,192,24,24)
let cmNext%=@createbutton(_dlg%,>,72,192,24,24)
let cmLast%=@createbutton(_dlg%,>|,96,192,24,24)
let cmNeu%=@createbutton(_dlg%,&Neu,208,192,48,24)
let cmEntf%=@createbutton(_dlg%,&Lösche,256,192,48,24)
let cmSuch%=@createbutton(_dlg%,&Suche,304,192,48,24)
let cmReorg%=@createbutton(_dlg%,&Reorg,352,192,48,24)
let cmEnde%=@createbutton(_dlg%,&Zurück,400,192,48,24)
@dbGo(|<)
@SetFocus(NACHNAME%)
Let E% = 0
WhileNot E%
GetSatz
WaitInput
If @Equ(%Key,13)
PutSatz
If @GetFocus(cmFirst%)
@SetFocus(NACHNAME%)
EndIf
ElseIf @equ(%key,2)
Let E% = 1
ElseIf @GetFocus(cmEnde%)
Let E% = 1
ElseIf @GetFocus(cmFirst%)
PutSatz
@dbPutRec(0)
@dbGo(|<)
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmPrev%)
PutSatz
@dbPutRec(0)
@dbGo(<)
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmNext%)
PutSatz
@dbPutRec(0)
@dbGo(>)
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmLast%)
PutSatz
@dbPutRec(0)
@dbGo(>|)
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmNeu%)
PutSatz
@dbPutRec(0)
@dbAppendBlank()
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmEntf%)
@dbDelete()
@dbPack()
ReOrg
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmSuch%)
PutSatz
@dbPutRec(0)
Let Such$=@Input$(NACHNAME eingeben:,Suchen,Such$)
Let S& = &dbRecNo
@dbGo(>)
IfNot @dbSeek(NACHNAME,Such$,1)
MessageBox(Adresse nicht gefunden,Hinweis,48)
@dbGo(S&)
EndIf
@SetFocus(NACHNAME%)
ElseIf @GetFocus(cmReorg%)
ReOrg
@SetFocus(NACHNAME%)
Else
PutSatz
EndIf
EndWhile
@DestroyWindow(_dlg%)
ENDPROC
HAUPTPROGRAMM
-------------
Set (MessageMode,0)
IfNot @dbOpen(#1,ADRESS.dbf)
@dbAppendBlank()
EndIf
IfNot @dbIndex(NACHNAME)
ReOrg
EndIf
@dbUse(#1)
Mask @ dbClose(# 1)
End
|
| | | | |
| | Rolf Koch | | |
| | Ralf Wicken | Hallo Andreas, Hallo Rolf,
vielen Dank per Eure schnelle und professionelle Aiuto. Es klappt hervorragend!!! Ich muss mich wirklich mehr noch mit den Möglichkeiten der Sendmessages auseinandersetzen. Bin froh, dass ich mich in Eurem Foro angemeldet habe. Und nächstes Mal werde ich naturalmente auch die Datenbank sofort mitliefern; hatte leider nicht dran gedacht. Sorry!
Viele Grüße Ralf |
| | | | |
|
AnswerThemeninformationenDieses Thema hat 3 subscriber: |