Avatar billede jeki Nybegynder
24. august 2011 - 11:01 Der er 3 kommentarer

C5 v.2010/Feltet "mobiltlf." i rapporten Odrebekræftelse - hvordan?

Problem:

Jeg skal have feltet "Mobiltelefonnr." ud på rapporten Ordrebekræftelse fra Ordre-modulet.

Jeg har indsat feltformel:
CustContact[AccountIdx, CustContact.Account].CellPhone

vel vidende at det ikke var nok til at få den til at hente fra DebitorKartotektet.

Hvad skal der til?
Avatar billede adnb Juniormester
24. august 2011 - 14:07 #1
Hej jeki.

Jeg vil tro at følgende vil give dig det ønskede:

CustContact[AccountIdx, SalesTable.Account, SalesTable.Attention].CellPhone

God fornøjelse.
Avatar billede german Nybegynder
31. august 2011 - 11:00 #2
Hej!

Du skal skrive følgende i dit felt:

CustContact[AccountIdx, SalesTable.Account].CellPhone
Avatar billede olehaahr Nybegynder
27. september 2011 - 18:01 #3
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".

INTRODUCE CustContact[AccountIdx, SalesTable.Account]

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

INTRODUCE CustContact[AccountIdx, SalesTable.Account,1]

Hvis du skriver

INTRODUCE CustContact[AccountIdx, SalesTable.Account,0]

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
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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