Italia
Foro

Datenbank und Nutzung eines Feldes mit Choicebox

 

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

 
XProfan10; WindowsXP
26.02.2007  
 



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
 
26.02.2007  
 




Rolf
Koch
Oder mach es so:
KompilierenMarkierenSeparieren
PROC GetSatz

    declare wort$
    SetText NACHNAME%,@dbGet$(NACHNAME)
    SetText VORNAME%,@dbGet$(VORNAME)
    SetText STRASSE%,@dbGet$(STRASSE)
    wort$=@dbGet$(WOHNORT)
    sendmessage(wohnort%,$014D,-1,addr(wort$))
    SetText PLZ%,@Trim$(@dbGet$(PLZ))
    SetText TELEFON%,@dbGet$(TELEFON)
    SetText GEBURTSTAG%,@dbGet$(GEBURTSTAG)

26.02.2007  
 




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
 
XProfan10; WindowsXP
27.02.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.466 Views

Untitledvor 0 min.
rquindt21.04.2018
Walter01.02.2016
Hans Hermann14.04.2015
KFU15.08.2013
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Ralf Wicken (2x)
Rolf Koch (1x)
unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie