Jeg har en form med en underformularer (f.eks. Salgsordre i Cronus) På underformularen har jeg tilføjet nogle felter (ikke nøglefelter).
Jeg vil gerne validere disse felter, når den aktuelle underformularerlinie forlades. Derved tivnge brugen til at indtaste visse værider i disse felter (ellers smide en error).
Jeg har prøvet at lave en funktion på sourcetabellen og kalde den fra evt. modify-triggeren på tabellen. Det virker dog ikke helt, da valideringen sker når nøglefelterne er udfyldt. Min error kommer før jeg forlader linien.
Jeg har prøvet at kalde funktionen fra diverse underformularertirggere på formen - men ikke med held.
Jeg vil gerne have der kommer en meddelse når man bevæger sig væk fra den aktuelle linie. Dvs. op på den forrige, eller på en ny, eller helt værk fra underformularen
Skal jeg lægge kald ind på hver enkelt form-felt?
Har nogen af jeg en smart måde at løse problemet på, evt med Rec.linienumre og xRec.linienumre???
Hej webbew Generelt er det ikke så godt at lægge kode på formularer i Navision. Der er ingen merge funktion på formularer, og det gør at fremtidige opdateringer bliver mere kompliceret end godt er. Hvad er det du vil validere. Hvis det er noget du vil sikre at brugeren har udfyldt inden bogføring/udskrivning bødr du nok lægge det et andet sted, og så kalde de før bogføring eller udskrivning. Problemet med Navision er at man aldrig rigtigt ved hvor man står henne, så det er svært at lave anden validering end efter indtastning i et felt.
Med en underformularer mener jeg subforms dvs en form med udelukkende linier (visning af 1-mange relation - En debitor kan have mange købsliner);
Brugeren skal have lov til at skifte mellem felterne i de samme linie i vilkårlig rækkefølge. En validering af data skal (helst) ske, når linien forlades, men inden data ryger ind i tabellen. Data skal valideres ved OnInsert eller OnModify, men jeg ønsker ikke at lave felterne til nøglefelter.
Der ikke er en bogføringsfunktion tilknyttet denne tabel, så data ryger ned i tabellen når aktuel linie forlades...
Ok. Problemt er bare at recorden blive skrevet i tabellen når primærnøglen er udfyldt. Du kan måske lægge koden på OnInsert på formen, og så sætte delayedInssert til true. Hermed bliver linien først forsøgt indsat når den forlades.
Jeg kender godt property DelayedInsert, men den virker kun på under insert og ikke under modify. Når jeg opretter en ny linie (record) er alt ok. Desværre virker valideringen ikke når jeg retter i en eksisterende linie, og tildeler feltet en ugyldig værdi. Ydermere vil jeg helst placere koden på tabelniveau frem for på formen, men dette er vist ikke muligt.
Jeg har prøvet forskellige ting, men har endnu ikke fundet en acceptabel løsning. En mulighed er måske validering af feltværdier på formen, sammenligne xRec med Rec og kalde rec modify i koden;
Vil det sige at du vil tillade brugeren at rette en eksisterende linie med ulovlige data, og først når linien forlades skal den valideres? Det kræver at du validerer både på OnInsert og OnModify. (Og bruger delayedInssert).
Hvis det er en standard tabel i Navision skal du være varsom med det. I flere felters OnValidate laves en MODIFY som hiver tæppet væk under din løsning...
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.