dma's svar forudsætter, at I ikke fakturerer på engelsk til EU-lande.
Hvis I gør, bliver I nødt til - udover sprog - at have styr på land (dvs. om det er udenfor EU) på den ene eller anden måde.
Måske har I en debitorgruppe, der udelukkende er til 3. lande? Måske har I momsnummer på samtlige kunder indenfor EU - og kun dem? Måske kunne I checke på køberens hjemland; mere bøvlet, fordi I så skal lave liste med EU-lande og en NOT betingelse?
Der er naturligvis flere muligheder - og kun nødvendige, hvis I fakturerer på engelsk indenfor EU.
Ja - og undskyld - for det er C5 ver. 2.10.4, som I nok begge husker fra andre indlæg.
Jeg kunne godt tænke mig dma's forslag, men som enten momskode eller debitorgruppe....... hvad gør jeg så i stedet? For det er rigtigt, at vi anvender både engelsk og tysk tekstlag.
dma: jeg har ikke lige C5'eren her - så hvad mener du med at jeg skal oprette control linierne med nummer 99?? Hvad står 99 for?
Når du anvender linietypen Ctrl (1. kolonne), indtaster du en "kontrol/styrenummer" i tabelkolonnen (2. kolonne).
Ctrl-linierne er faktisk de eneste linier, der ikke "af sig selv" bliver udskrevet. Udskrift kræver en execute et sted i koden.
Dermed har du meget fleksible muligheder for at execute (udføre/skrive) lige nøjagtigt de relevante linier i det enkelte tilfælde. Som i DMA's eksempel når sproget er Engelsk.
Som jeg læser din skriv, anvender I tysk- og engelsksprogede fakturaer både indenfor og udenfor EU?
I så fald skal du lave Ctrl-linier for hvert sprog (vha. kontrolnummeret)
Du skal udvide DMA's kode til også at checke på det ekstra felt (hvad du nu vælger), fx. momskode:
IF OrdKartArkiv.Language == 1 AND OrdKartArkiv.Momsnummer == "" THEN #Rep_EXECUTE(99) ELSE IF OrdKartArkiv.Language == 2 AND OrdKartArkiv.Momsnummer == "" THEN #Rep_EXECUTE(98) ENDIF ENDIF
[Jeg har ikke afprøvet koden!]
Dvs. toldnoten på engelsk skal ind i en/flere linier med linietypen Ctrl og nummer 99 Dvs. toldnoten på tysk skal ind i en/flere linier med linietypen Ctrl og nummer 98 osv - hvis du nu opdager, at du har endnu flere sproglag :o)
Men det kræver selvklart, at nedenstående er overholdt: Måske har I momsnummer på samtlige kunder indenfor EU - og kun dem?
"kontrol/styrenummer" .... jeg har ikke helt check på, hvad det er. Er det valgfrit hvad man sætter ind der - så det blot i dette tilfælde er 99, 98 osv. Eller er der en dybere mening med, at det netop er disse tal.
/Lotte (som har skrevet dette indlæg een gang før, men det må være smuttet i forsendelsen)
Ja, de er helt valgfri. Eneste krav er naturligvis, at de matcher de relevante execute :o)
Det blev vist lidt sent i går :{ Du burde kunne nøjes med et sæt kontrollinier og sløjfe det meste af koden, fordi Ctrl-linierne - så vidt jeg husker - også bliver placeret i sproglaget.
Dermed burde du kunne nøjes med
IF OrdKartArkiv.Momsnummer == "" THEN #Rep_EXECUTE(99) ENDIF
Jeg har dog ikke prøvet det af, og er ikke - som dma - kodeka'l...
Du kunne jo starte med den simple udgave, og hvis jeg husker forkert, tilføje resten af koden.
Jeg var vist lidt for hurtig i mit kodeforslag, som nilfri så udemærket anfører. Det kan dog klares bedre endnu.
I Landekartoteket (Generelt/Kartotek/Landekoder) er der en landetype. Vi kan derfor med koden lave et opslag som checker at der her står "EFTA-land" eller 3. land" (dvs. hverken Indland eller EU-land).
IF Land[KodeIdx,OrdKartArkiv.Land].Type >= 2 THEN #Rep_EXECUTE(99) ENDIF
Men du kan også vælge debitorgruppen:
IF DebKart[KontoIdx,OrdKartArkiv.FakturaKonto].Gruppe = "XXXX" THEN .....
Mht. control linier, så er det linier som man kan styre uafhængigt af kartoteker. Når du står i rapportlayoutet er det den allerførste kolonne (hvor man kan vælge PgHd, Body osv). Gå ned i en tom linie, tryk ENTER i første kolonne og så får du valgmulighederne (læs evt. programmeringsmanualen om linietyper). Vælg "Control" I næste kolonne - hvor man normalt vælger det kartotek som linien skal knyttes til, står der du et 0. Ved at trykke ENTER her, åbnes en boks hvor du kan indtaste et nummer mellem 1 og 255. Når du i en rapport så bruger kommandoen #Rep_EXECUTE(XX) hvor XX er nummeret, udskrives linie(r) med dette nummer. På linien kan du nu skrive den tekst du gerne vil have ud, men HUSK at gøre det på alle de sproglag (Alt+Z) som du anvender.
Valget af numre er frit. Grunden til at jeg bruger 99 er, at C5 som standard oftest anvender numrene fra 1 og opefter. Så der ligger ikke noget specielt i valget af numre.
Håber det giver mening!
Til nilfri: Ja, alle felter placeres i alle sproglag, men tekster/ledetekster skal angives for hvert sproglag.
Beklager jeg ikke lige huskede på landetype :o( Det er naturligvis det perfekte valg, som dma ganske rigtigt påpeger.
Herligt det virker!
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.