Avatar billede lotte48 Nybegynder
20. august 2003 - 11:12 Der er 18 kommentarer og
3 løsninger

C5 - Fakturaformular - undertrykke felt

Hvordan kan jeg "undertrykke" en overskrift på en formular, f.eks. afhængig af indhold i et felt på ordrelinierne.
Jeg vil ikke "inspirere" med en overskrift, der hedder "RABAT", hvis rabat-sats i ordrelinierne er blanke.

/Lotte
Avatar billede nilfri Nybegynder
20. august 2003 - 11:30 #1
Mig bekendt er det ikke helt enkelt...

Er du C5/XAL-programmør wannabe? For der skal kodes en smule.
Avatar billede vic256 Nybegynder
20. august 2003 - 12:58 #2
Du skal have udviklingsrettigheder... I rapporten bliver du formentligt nødt til at gennemløbe DebFakPost/DebInvTrans med en SEARCH for forekomster af rabat på dette fakturanummer, sætte en variabel (Kunne hedde &Disc af typen INT) til 1 hvis der er forekomster, til 0 hvis ikke.

Herefter kan du erstatte overskriften med et felt der indeholder feltudtrykket:
&Disc ? "RABAT : ""

Som sagt.. Dette kræver udviklingsrettigheder og en smule viden... Det vil dog ikke tage en konsulent meget mere end en ½ times tid...
Avatar billede vic256 Nybegynder
20. august 2003 - 13:01 #3
Jeg lavede en en trykfejl... Der skulle stå "RABAT" og ikke "RABAT

Din SEARCH skal ligge et passende sted i rapport-editorboksen...
Avatar billede dma Nybegynder
20. august 2003 - 13:25 #4
vic256 arbejder tilsyneladende i XAL, for tabelnavnene er fra XAL og ikke fra C5.

Jeg formoder det er C5 v. 2.10 eller nyere:

I Init-triggeren laver du en variabel: INT &Disc

I Pre-body triggeren på OrdKartArkiv skriver du:

SET &Disc = 0

SEARCH OrdLinieArkiv USING NumTraLinIdx WHERE Nummer == OrdKartArkiv.Nummer
                                        AND  Transaktion == OrdKartArkiv.Nummer

    IF OrdLinieArkiv.Rabat THEN
        SET &Disc = 1
    ENDIF
    BREAK
END
                                       
I overskriften laver du et felt med feltformel "RABAT". I feltbetingelserne skriver du: &Disc

Voila
Avatar billede vic256 Nybegynder
20. august 2003 - 13:37 #5
Hehe.. jow.. jeg overså at det var en C5 :-)

Nu serverer du jo det hele på et sølvfad, dma ;-)
Avatar billede dma Nybegynder
20. august 2003 - 14:00 #6
Tja, jeg har lavet den så mange gange at den bare ligger i fingrene ;-)
Avatar billede lotte48 Nybegynder
21. august 2003 - 00:15 #7
-> dma.....
Jeg er helt med på hvad koden gør - men jeg har ikke redigeret kode i C5 - lidt i XAL for år tilbage, så vil du fortælle mig, hvor koderne skal skrives.
(åbne kodevindue??  eller - og hvordan)
Jeg er med på, hvordan jeg sætter feltformel og betingelser.
Avatar billede nilfri Nybegynder
21. august 2003 - 10:20 #8
Nu kunne DMA jo have travlt i det jydske, så jeg tillader mig at komme med lidt input.

Fremgangsmåden er identisk med XAL:
(i den danske version)
Start udviklingskonsollen
Tryk GTURR  og vælg rapporten

<Alt><F6> for at komme ind i Query ("Hop til Søgning")
Herfra sker adgang til både Init og PreBody-triggerne

1)Init-triggeren
<Ctrl><F6> ("Opsætning" - af hele rapporten)
Stå i feltet Globale Formler
Tast <Enter>
Nu kan du se Init på listen.
Tast <Enter> for at åbne den.
Husk at erklære variablen samme sted som de andre variabelerklæringer; dvs. efter diverse MacroLoads og før resten af koden. 
<F3> for godkend
<F3> for at vende tilbage til Query

2) For at komme ind ind i PreBody (in casu på OrdKartArkiv)
(Husk: Udgangspunkt er Query)
Stå på kartoteket OrdKartArkiv i feltet Kørsler
Tast <Enter>
Nu kan du se PreBody.
Tast <Enter> for at åbne den.
Ind med DMAs kode
<F3> for godkend osv.

OK?
Avatar billede lotte48 Nybegynder
21. august 2003 - 14:19 #9
Helt genial hjælp....  nu er jeg nok wannabee - nilfri læg et svar, så du kan deltage i point fordelingen.  Jeg øger points - så det bliver en pæn del til hver.

Jeg fik indsat Init-triggeren OK.
Men....  jeg får syntaksfejl i Pre-body triggeren.
Cursoren stiller sig i det andet == i koden.

Hvad kan det skyldes? (ikke stavefejl - det har jeg checket, og har også startet forfra flere gange)

Er det fordi koden skal indsættes et bestemt sted, f.eks. efter en INTRODUCE ???

/Lotte
Avatar billede nilfri Nybegynder
21. august 2003 - 14:51 #10
Hvad er fejlmeddelelsen?

Kan du ikke lige klistre hele PreBody koden ind her, som den ser ud nu? Jeg kan ikke lige huske, at der skulle være to == i koden i PreBody!?
Avatar billede lotte48 Nybegynder
21. august 2003 - 15:24 #11
Der er ingen meddelelse - stopper blot, dér ved ==, når jeg taster det sidste F3

Jeg vil gerne sende hele koden - men så kommer vi til det næste problem - med at klippe/copy/klistre.
Hvordan er det nu lige, jeg gør det. (Har ledt efter AltC/AltV :-)))
Fandt F5 og fik markeret - men kunne så ikke komme videre.

/Lotte
Avatar billede nilfri Nybegynder
21. august 2003 - 15:24 #12
Glem lige sidste %-/

Med fare for endnu en egg-on-face:
Jeg tror - uden at være kodehaj - at DMA lige har lavet en klippeklistregryf:

Jeg formoder, du får fejlen på 2. sæt == her i DMA-koden:

...
SEARCH OrdLinieArkiv USING NumTraLinIdx WHERE Nummer == OrdKartArkiv.Nummer
                                        AND  Transaktion == OrdKartArkiv.Nummer
...

altså ved
  AND  Transaktion ==

Prøv at erstatte
  Transaktion == OrdKartArkiv.Nummer
med
  Transaktion == OrdKartArkiv.Transaktion

Jeg sidder ikke lige ved en C5, og er ikke kodestiv. Men prøv ad...
Avatar billede lotte48 Nybegynder
21. august 2003 - 16:13 #13
No'n på egg'ed er det vi læ'r af......ik'?
Det er alligevel interessant for mig, hvordan jeg kopiere fra konsollen til.

-> dma ved du. hvad der sker, jeg vil jo ikke gerne ha' at brugerme mærker mine eksperimenter?

/Lotte
Avatar billede dma Nybegynder
22. august 2003 - 10:31 #14
Korrekt, det var en fejl. Jeg skrev koden uden klippe klistre, men jeg må have haft et eller andet i øjet - eller et andet sted ;-)

Der er faktisk en fejl mere. BREAK skal lige indenfor IF-sætningen:

IF OrdLinieArkiv.Rabat THEN
    SET &Disc = 1
    BREAK
ENDIF

lotte48: om jeg ved hvad der sker? Hvad mener du?
Avatar billede lotte48 Nybegynder
25. august 2003 - 13:28 #15
-> dma  jeg mente blot, om du var enig - og det var du :-)))

Jeg lykkedes med at få indsat koden - og har lagt det til test hos brugerne nu.
Men...  jeg har jo brug for tilsvarende ændring på ordrebekræftelsen,
hvordan gribes det an??
Og naturligvis medfører det en forøgelse af points, når jeg udvider spørgsmålet - mener blot at det ligger bedst her i stedet for at skrive et nyt.

/Lotte
Avatar billede lotte48 Nybegynder
26. august 2003 - 10:46 #16
Det virker - og det er bare super. Nilfri vil du lægge et svar, så du kan deltage i pointtildelingen.
Må jeg nu bede om tilsvarende kode til ordrebekræftelsen - og jeg vil være large med ekstra points.

/Lotte
Avatar billede nilfri Nybegynder
26. august 2003 - 10:58 #17
Rapporten OrdBekræftelse:

Husket udenad (!) kan du benytte fuldstændigt identisk fremgangsmåde, men...

Kartotekerne har andre navne - ligner dog stærkt:

OrdKartArkiv "hedder" OrdKart i OrdBekræftelse
OrdLinieArkiv "hedder" OrdLinie

Husk du kan kopiere/klistre koden - kig i hjælpetasterne på F1 :o)

Best of luck!

PS: Hvis det kikser, skal jeg nok lige finde en C5 - ikke at det nødvendigvis gør en forskel %o/
Avatar billede dma Nybegynder
26. august 2003 - 11:23 #18
Klippeklistre funktionen i dos hedder:

Marker med:

ALT+L - markerer linie
ALT+A - markerer blok

SHIFT+F5: Kopierer til hukommelse
ALT+I: Indsætter

Du kan også markere kode og så trykke ALT+S, så kan du gemme den valgte blok/kode som en fil på disken (få automatisk fil-extension .XAL). Når du skal hente koden ind igen, trykker du bare ALT+H og taster filnavnet (uden .XAL). Voila!
Avatar billede lotte48 Nybegynder
26. august 2003 - 12:35 #19
Jeg nåede at gennemføre min "eksamen" inden I nåede at svare. Og jeg fandt selv frem til  at fjerne Arkiv i Kartoteksnavnene. Herligt, at I er så hurtige til at bekræfte, at jeg er på rette vej - og at I specificerer så detaljeret, så jeg kan identificere med dét, jeg sidder og "piller" i. Også dejligt at du lige genopfrisker kopifunktionen....  den havde jeg også glemt :-))

Jeg lavede en kopi af ordrebekræftelsen og forsøgte mig i den først.
Hvordan fjerner jeg nu den, så den ikke ligger og "snavser".

/Lotte
Avatar billede nilfri Nybegynder
26. august 2003 - 12:42 #20
Fremgangsmåden er identisk med XAL:
(i den danske version)
Start udviklingskonsollen
Tryk GTURS  og vælg rapporten
Avatar billede lotte48 Nybegynder
26. august 2003 - 13:10 #21
NU siger jeg så mange tak for fantastisk hjælp - og opretter nye spørgsmål (points) når jeg igen støder ind i muren.
Hvis I vil kigge lidt på mine problemer med at koble en labelprinter sammen med en nyoprettet C5-formular...  såee, ja så vil jeg blive nærmest lyk'li.

/Lotte
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