Avatar billede pmejer Nybegynder
12. september 2001 - 15:52 Der er 6 kommentarer og
1 løsning

Hente data fra en form vha af en knap

Hej, Jeg er forholdsvis ny udi i Notesprogrammering. Jeg har følgende problem: Jeg har oprettet en form der indeholder felter omhandlende SIM kort. Smatidig har jeg oprettet en form der indeholder nogle brugere. Nu vil jeg gerne kunne vælge i formen brugere, hvilket simkort der tilhører brugeren. Jeg vil gerne have det vist i en opup box, med mulighed for at kunne vælge mere end et SIM kort. Samtidig skal der i formen der indeholder SIM kort informationen vises, hvilken bruger kortet er tilknyttet. Er dette muligt (ja, det er det vel), hvordan?

Tak

Peter
Avatar billede roenving Novice
12. september 2001 - 20:32 #1
Er SIM-kort-formen og bruger-formen hver sin database, eller har SIM-formen 2 oplysninger: SIM-kort-nr og bruger ??

Anbefaling:
Opret den ene form med een pr. sim-kort.
Opret den anden med een pr. sim-kort.

Dette hvis du skal kunne skifte relationen bruger/sim-kort.

Så vælger du i den ene form at hente data fra den anden og så have de andre data indlejret på den form.

Når du så skal vise det for flere bliver det en i oversigt (view), som viser den ene form (som så har begge oplysninger).

hth
jes
Avatar billede roenving Novice
13. september 2001 - 03:56 #2
Vrøvl:
Opret den ene form med een pr. sim-kort.
Opret den anden med een pr. bruger
Avatar billede pmejer Nybegynder
13. september 2001 - 08:08 #3
Hej Jes,

Ja, jeg så det godt, men forstod, hvad du mente. Begge forms ligger i den samme database. Det jeg efterlyser er en formel (funktion) der - når jeg trykker på en knap - præsenterer en dialogbox, hvor jeg kan vælge et simkort, hvor de lagrede data herefter bliver lagt i dertil indrettede felter i brugerformen. I simkortformen skal brugerdataerne (eventuelt) så kopieres over i nogle dertil indrettede felter - eller alternativt kunne vises i et view.

Peter
Avatar billede cbkc. Nybegynder
13. september 2001 - 08:46 #4
Det med at hver bruger og hvert simkort har hver sit dokument, er en god ide. (data kan så fremvises i oversigten).
For at kunne vælge simkort i bruger dokumentet, skal du i formularen for bruger gøre følgende:
1. opret et felt til simnr.
2. i egenskaber for feltet, skal du vælge \"dialogboks\" i [Valg], og herefter vælge \"aktuel database\" i [database]. I [Vis] skal du vælge en oversigt der kun viser dokumenter med simkort (tip: oversigten viser kun dokumenter der ikke har en bruger i et brugerfelt)

3. I querysave og queryclose i formularen(bruger) laves en kode der kopiere brugernavn over i simnr. documentet(hvis forslaget ellers er ok, kan jeg komme med et forslag hertil),


Ovenstående forudsættet i første omgang at der kun skal angives sinnr. i bruger dokumentet, det kan dog udvides hvis behovet er der.

mvh. Chr.
Avatar billede pmejer Nybegynder
13. september 2001 - 08:50 #5
Hej Christian,
Se det lyder jo som en absolut god ide - bare kom an *S*.


Peter
Avatar billede cbkc. Nybegynder
13. september 2001 - 10:53 #6
Prøv med følgende:
Placeres i (Declarations)
%REM
startnr deklareres som en global variabel i denne formular
startnr bruges til at registrere om Simnr ændres fra dokumentet åbnes til det igen lukkes.
%END REM
Dim startnr As String



Placering i Postopen
%REM
startnr sættes lig simnr idet dokumentet åbnes.
%END REM
Sub Postopen(Source As Notesuidocument)
    startnr = Source.FieldGetText(\"Simnr\")
End Sub

Placering i Queryclose
%REM
Checker om simnr. er blevet ændret fra da dokumentet blev åbnet.
Hvis dette er tilfældet ændres de tilhørende kunde-felter i simnr. dokumenterne
%END REM
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView, view1 As NotesView
    Dim doc As NotesDocument, doc1 As NotesDocument
    Set db = session.CurrentDatabase
    Set view = db.GetView(\"Simnr.\")
    Set view1 = db.GetView(\"SimnrDerErBrugt\")   
    Set uidoc = Source.Document
    Simnr = Source.FieldGetText(\"Simnummer\")
 
    if Simnr <> startnr then
            \'Vi skal altid rette i doc med nye simnr         
            Set doc=view.GetDocumentByKey(Cdat(Simnr))
            doc.Bruger = Source.fieldgettext(\"Bruger\")
            Call doc.save(True,False)
    end if
    If (Simnr <> startnr And startnr<>\"\") Then
            \'Her retter vi også i gl. simnr doc, hvis bruger har fået ændret simnr.
            Set doc=view1.GetDocumentByKey(Cdat(startnr))
            doc.Bruger = \"\"
            Call doc.save(True,False)         
    end if       
End Sub



Prøv at kigge på ovenstående, jeg tror tilrettelserne er i orden til dit behov.
Du skal dog tilpasse navnene på oversigter, og sørge for at simnr. står i første kolonne.
Avatar billede cbkc. Nybegynder
13. september 2001 - 10:53 #7
Mvh. Chr.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester