Avatar billede mrdj Nybegynder
16. august 2005 - 23:35 Der er 9 kommentarer og
1 løsning

Formatering i Rapport

Jeg har en rapport som jeg prøver at lave noget automatisk formatering i via en makro (AngivVærdi), dog skal det meget gerne være sådan at den værdi den skal formatere (fontstørrelse f.eks i dette tilfælde) med kommer fra en tabel. Dvs f.eks i tabellen Stamdata står feltet Fontstr1 som = 20 og derved formateres rapporten automatisk med den værdi på de steder i rapporten der er blevet bedt om , i dette tilfælde jo font størrelse 20. Hvordan sættes dette lige op i makroen ?
Avatar billede Slettet bruger
16. august 2005 - 23:45 #1
Prøv med at skrive feltets navn i firkantparenteser [Fontstr1] under AngivVærdi.

Ellers brug rapportsektionens OnFormat event (Ved formattering) til at skrive lidt kode, fx: 'Me.Efternavn.FontSize = Me.Fontstr1'
Placcér feltet i samme rapportsektion som det felt der skal formatteres - og sæt evt. egenskaben Skjult til 'Ja'
Avatar billede mrdj Nybegynder
16. august 2005 - 23:59 #2
Det virker ikke rigtig som jeg gerne vil have det til, værdien i AngivVærdi SKAL kunne hentes fra tabellen (i dette tilfælde tblStamdata med værdien i feltnavnet FontStr1) Jeg HAR prøvet med [tblStamdata].[FontStr1] i angiv værdi, der får jeg bare at vide den ikke kan finde tblStamdata har også prøvet med ! mellem de to navne, ej heller noget resultat udover fejl. Dette må da kunne lade sig gøre ?
Avatar billede kabbak Professor
17. august 2005 - 00:21 #3
Private Sub Report_Open(Cancel As Integer)
Me.Tekst0.FontSize = DLookup("[FontStr1]", "Stamdata")
End Sub
Avatar billede Slettet bruger
17. august 2005 - 10:43 #4
Til kabbak
Din kode er for så vidt rigtigt, bortset fra at den henter den første den bedste værdi i tblStamdata. Det samme gælder for så vidt for mrdjs løsning med [tblStamdata].[Fontstr1]. Der skal et kriterie på.
Hvad er det præcist som skal have en fontstørrelse som står i Fontstr1 ? er det et enkelt felt - alle felter - hele rapporten eller hvad ??
Avatar billede mrdj Nybegynder
17. august 2005 - 11:20 #5
Jamen det der præcist skal ske er at jeg har en rapport som skal kunne være forskellig alt afhængig af de parametre der er indtastet i "Stamdata" En vil f.eks gerne have overskriften i størrelse 100 mens en anden vil have den i størrelse 90 og for at undgå de skal ind i selve rapporten og rette vil det være genialt hvis det kunne gøres via en formular hvor rapporten så henter disse værdier i tabellen, også gældende for f.eks brødtekst osv.. alle de forskellige formateringer skal hente fontstørrelse fra det felt i stamdata som hænger sammen med formateringen i koden f.eks
Avatar billede Slettet bruger
17. august 2005 - 12:29 #6
DVS at værdierne er brugerafhængige ?

Den simple måde: i Rapportens Ved Åbning laver du en kode, hvor bruger bliver bedt om værdierne, fx

Dim Felt1, Felt2 as integer

Felt1 = inputbox("Indtast Fontstørrelse på overskrift")
Felt2= Inputbox("Indtast Fontstørrrelse på Brødteksten")

(eller hvad dine felter nu heddder)

og i VedFormattering i de sektioner, hvor felterne står, skriver du:
Me.Overskrift.FontSize=Felt1
Me.Brødtekst.FontSize=Felt2

De to Dim-linier skal muligvis placeres lige under Option Explicit-linien.

Hvis din ide med en formular skal følges, så skal jeg vide hvad der står i tblStamdata. En record for hver bruger med angivelse af én eller flere fontstørrelser ?
Er formularen bundet op på tblStamdata?
Avatar billede mrdj Nybegynder
17. august 2005 - 13:46 #7
Nej de er ikke deciderede brugerafhængige, de er "firma" afhængige, een del af firmaet kan have programmet liggende og have lyst til at overskrifter har en størrelse og en anden afdeling har måske lyst til en anden størrelse men for at slippe for de skal ind i rapporten og ændre dette, har jeg i tabellen "tblStamdata" oprettet nogle felter med de forskellige værdier indtastet i (f.eks 20 til A4 overskrift og 10 til brødtekst) det skal IKKE være sådan at man bliver spurgt når man åbner rapporten, den skal bare formatere ud fra det der er angivet i den tabel hvor jeg på en eller anden måde har hæftet overskriftens "identitet" sammen med det felt med dens værdi i.
Avatar billede Slettet bruger
17. august 2005 - 16:37 #8
Så tror jeg at kabbaks ide (kabbak 17/8 2005 00:21:04) er den du skal forfølge (Se bort fra mine kommentarer om kriterier). Hvis brugerne skal ændre værdierne inden de skriver rapporten ud, kan du lave en formular de kan skrive i. På formularen kan du lægge en knap der udskriver rapporten. Sørg for at tabellen bliver opdateret, inden rapporten udskrives.

Hvad enten du laver det via kode eller via macro skal rækkefølgen af events være:
opdatér tabel (form.refresh) - så de rigtige værdier står i tabellen.
skjul formularen (me.visible=False) - det ser bedst ud, især hvis du udskriver til skærm.
udskriv rapporten (docmd.openreport "rapportnavn")
luk formularen (docmd.close)
Avatar billede kabbak Professor
25. januar 2006 - 23:00 #9
marker mit navn og tryk accepter, hvis det virkede
Avatar billede mrdj Nybegynder
24. maj 2006 - 21:16 #10
Takker mange gange. Det virker. Beklager det lange svar
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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