14. januar 2002 - 16:42Der er
10 kommentarer og 2 løsninger
Mangler forklaring på sammenhæng i Lotus Notes
Jeg forsøger at udvide en eksisterende db med lidt flere data, men har problemer med at finde ud af sammenhængen i Lotus Notes...
Det jeg forsøger at gøre, er at indsætte en nyt \"første sorteringskriterium\" på et view/en oversigt, som er opbygget på traditionel vis. Dvs. man folder viewet ud, og ender til sidst med oplysninger fra enten formularen \"Editmode\" eller \"ClaimEditmode\".
I \"View Selection\" på det omtalte view er der derfor følgende formel:
SELECT Form = \"Editmode\" : \"ClaimEditmode\"
Den nye oplysning jeg vil tilføje, har jeg indsat på formularen Stam. Oplysningerne på denne, bliver automatisk skrevet i felter, når man opretter et nyt dokument fra begge de ovenstående formularer. Skal jeg sætte det nye data fra formularen til automatisk at blive skrevet på samme måde, eller er der en anden måde, hvorpå man kan få tilføjet det nye data til viewet?
Hvis jeg blot udvider formlen til at være:
SELECT Form = \"Editmode\" : \"ClaimEditmode\" : \"Stam\"
kommer det nye første sorteringskriterium godt nok ind på viewet, men når efterfølgende folder ud, bliver de oplysninger, som ikke findes i formularen Stam ikke vist (der er blot tomme felter). Og man ender altid med at få åbnet formularen Stam - i stedet for \"Editmode\" eller \"ClaimEditmode\".
Beskriv venligst i detaljer, hvordan jeg fikser mit problem...
Jeg er ikke helt sikker på at jeg forstår det du skriver (eller har måske for travlt til at læse det ordentligt), men her er et hurtigt bud. De ting du kan vise i et view er de ting der står på de enkelte dokumenter. Så for en oplysning skal kunne vises i viewet skal den findes på de enkelte dokumenter (det var det jeg mente med mangledende relativitet - det er svært at vise bynavn i viewet udfra postnummer på dokumentet - det kan lade sig gøre men tager mange ressourcer).
Som udgangspunkt gemmer et dokument hvilken formular det senest er gemt med, og genåbner i denne. Det kan du rettet i viewet ved at sætte at alt skal åbnes med en bestemt form.
I aftenens løb har jeg fået konkretiseret mit problem, så det nu skulle være mere forståeligt! I bund og grund vil jeg mene, at det er kredser omkring den manglende relationalitet i Lotus Notes...
Jeg har 1 view, som består af dokumenter fra 2 forskellige formularer. I en tredje formular (med systuer) skal jeg tilføje 1 felt, som jeg skal have hevet med over på de andre 2 formularer. Dette sker i forvejen for nogle andre felter (fra systueformularen), idet man i et felt vælger en systue fra en liste, hvorefter oplysninger omkring dennes systues fax, kontaktperson osv. automatisk bliver udfyldt. Denne funktionalitet skal jeg også have på mit nye felt. Skal man blot tilføje feltet på både systueformularen og derefter på de 2 andre, for at det sker på nye dokumenter?
For at få udfyldt feltet på gamle dokumenter skal vel lave en agent, som løber dokumenterne igennem og trækker den nye oplysning med over. Hvordan gør man det?
Der er flere point, hvis du kan give en udførlig forklaring på disse 2 spg :)
Der er tilsyneladende programmeret noget funktionalitet, der sikrer overførelse fra din nye formular til de \'gamle\' formularer (sikkert @DbLookup) når du slår data op på den nye fra de gamle. Tjek om der i det felt hvor du vælger systuen er lagt noget kode der henter andet data fra systue formularen og ligger de i tilsvarende felter på den aktuelle formular. Hvis der er det kan du blot udvide denne overførelses mekanisme til at omfatte dit nye felt. Det er klart at dette nye felt må eksistere på de \'gamle\' formularer også (hvor skal man ellers placere data). Overførelsen kan også være programmeret i hver af de felter der \'arver\' data. Du skal så lave en tilsvarende overførelse i dit nye felt på de \'gamle\' formularer.
Den nemmeste måde at lave agenten på er vha. @DbLookup og et view. 1) Lav et view der viser dine nye dokumenter (dem baseret på systue formulaen) med 2 kolonner hvor 1. kol. er sorteret i stigende orden. Vis en unik værdi i 1. kol. og værdien af det manglende felt i 2. kol. Den unikke værdi er noget identificerer dokumentet og som eksisterer både på det \'gamle\' og det nye dokument, f.eks. navnet på systuen.
2) Opret en agent med følgende kode: FIELD NavnetPåDitNyeFeltPåGammelFomular := @DbLookup(\"\" ; \"\":\"\" ; \"NavnetPåDitView\" ; \"DenUnikkeVærdi\" ; 2 ).
3) Åbn nu et view hvor de \'gamle\' dokumenter er listet. Udvælg de dokumneter du vil have opdateret og kør agenten manuelt fra \'Aktion\' menuen.
(Hvis det her virker må det være mange point værd ;-) *G* )
Så vidt jeg forstår formlen, så henter den blot Systuerne til dette ene felt. I felterne, hvor der automatisk kommer data (fra systueformularen) er der ingen formler. Der er typen blot anført som Tekst.
Hvor kan en sådan programmeret funktionalitet ellers gemme sig?
Det kan også være sat på en OnUpdate på selve formen, eller OnChange ved feltet, altså skrevet nede i kodebilledet nede i bunden fremfor i properties box\'en....
Pointfordelingen blev først og fremmest efter udførlighed (cdelicht), dernæst efter hurtighed (wise).
Jeg opretter lige et ekstra point spørgsmål til dig cdelicht for den lange og gode forklaring.
PS: Er I de eneste aktive på Lotus Notes kategorien, det virker umiddelbart sådan...
PPS: Jeg er også (han)køn!
Synes godt om
Ny brugerNybegynder
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.