16. august 2005 - 23:35Der 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 ?
Digitale certifikater er fundamentet for tillid. Nu ændres vilkårene, og der stilles helt nye krav til, hvordan I arbejder med overblik og styring.
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'
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 ?
Private Sub Report_Open(Cancel As Integer) Me.Tekst0.FontSize = DLookup("[FontStr1]", "Stamdata") End Sub
Synes godt om
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 ??
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
Synes godt om
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?
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.
Synes godt om
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)
Takker mange gange. Det virker. Beklager det lange svar
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.