Lige for at du kan kan forstå den kode du har skrevet, og for at du kan forstå hvorfor det virker/ikke virker.
I C5 har vi et begreb som hedder VIRKEFELT.
En tabel (eller kartotek for os som er lidt gammeldags) har virkefelt, hvis den er blevet introduceret. Dette gør man via kommandoen INTRODUCE tabel[index, felt1, felt2, felt3], hvor felt1,2 og 3 svarer til de felter som er i index.
I dit eksempel med CustContact, vil kommandoen se således ud, hvis du står med en SalesTable "i hånden".
AccountIdx har 2 felter, nemlig account og primarycontact.
Hvis man bare skriver ovenstående introduce-sætning, så får man fat i den første post hvor account matcher. Dette vil være den "ikke-primære kontakt" hvis der er en sådan. PrimaryContact er nemlig en NoYes-enum, og No kommer før Yes.
Hvis du har en kunde som har mange kontakter, har du således kun mulighed for specifikt at få fat på den primære, ved at skrive
får du fat i EN TILFÆLDIG af de ikke-primære poster, men du ved ikke hvilken.
I stedet for introduce kan man skrive et DIREKTE OPSLAG som både "adbn" og "german" antyder. Dette bruger man dog kun, hvis man skal bruge et ENKELT felt - hvilket du jo skal her. Så får kartoteket ikke virkefelt, men man kan stadigvæk hente værdien af feltet. Metoden bruges ikke, hvis du skal bruge flere felter, for der skal jo skrives meget kode hver gang.
ANDB's forslag er dog forkert, idet det ikke passer til index. Den vil ikke kunne kompilere.
GERMAN's forslag er for så vidt rigtig nok, bortset fra at den finder den første kontakt som opfylder index, dvs. den ikke-primære.
Hvis du skal have fat i en post, hvor der ikke er et fornuftigt index, skal du i stedet bruge SEARCH-kommandoen.
Her kan du søge på alle felter i tabellen, uanset om der er et fornuftigt index.
Hverken search og introduce kan bruges direkte i feltkoden, men skal i stedet bruges i rapport-koden, og så OUTPUTTES.
Hvis du kigger i nogle af de eksisterende rapporter burde du kunne "se dig ud af det".
Med venlig hilsen Ole Haahr Andersen MikanIT ApS
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.