Prikazi cijelu temu 17.10.2013 23:03
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: Izveštaj na osnovu crosstab upita sa parametrima!
Napravi praznu formu.
U recordsource stavi tvoj crostab query.
Na on load stavi ovaj kod.
Ja sam stavio da se izvjestaj zove report1.
Ako nije ispravi u kodu
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub Form_Load()
  2. DoCmd.OpenReport "Report1", acViewPreview
  3. End Sub

Napravi prazan izvjestaj.
Na on page izvjestaja stavi ovaj kod.
Na kraju procedure imas red koda koji zatvara formu kojoj sam ja dao ime form1.
Ako das neko drugo ime ispravi.
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub Report_Page()
  2. Dim Rs As Recordset
  3. Dim DuzinaPapira As Integer
  4. Dim Sredina As Integer
  5. Dim DuzTeksta As Integer
  6. Dim StartY As Integer
  7. Dim X As Integer
  8. Dim Y As Integer
  9. Dim PozX() As Integer
  10. Dim Tekst As String * 10
  11. Dim Tekst1 As String * 20
  12. Dim BrojKolona As Integer
  13. Dim I As Integer
  14.  
  15.  
  16.  
  17. DuzinaPapira = Me.Width
  18. Me.ForeColor = 255
  19. Me.FontSize = 18
  20. Me.FontBold = True
  21. DuzTeksta = Me.TextWidth("NEKI NASLOV")
  22. Sredina = (DuzinaPapira - DuzTeksta) / 2
  23. Me.CurrentX = Sredina
  24. Print "NEKI NASLOV"
  25. X = 500
  26. Me.ForeColor = 0
  27. Me.FontSize = 10
  28. Me.CurrentX = X
  29. Y = Me.CurrentY
  30. Set Rs = Forms![Form1].RecordsetClone
  31. BrojKolona = Rs.Fields.Count - 1
  32. ReDim PozX(BrojKolona)
  33.     For I = 0 To BrojKolona
  34.     Me.CurrentY = Y
  35.     PozX(I) = Me.CurrentX
  36.         If Tekst = "Ime" Or Tekst = "Prezime" Then
  37.         Tekst1 = Rs.Fields(I).Name
  38.         Print Tekst1 & "   "
  39.         Else
  40.         Tekst = Rs.Fields(I).Name
  41.         Print Tekst & "   "
  42.         End If
  43.     Next I
  44.  
  45. Me.FontBold = False
  46. Me.CurrentX = X
  47. Y = Me.CurrentY
  48. Do While Not Rs.EOF
  49.     For I = 0 To BrojKolona
  50.     Me.CurrentX = PozX(I)
  51.     Me.CurrentY = Y
  52.         If Rs.Fields(I).Name = "Ime" Or Rs.Fields(I).Name = "Prezime" Then
  53.         Tekst1 = LTrim(Format$(Rs.Fields(I)))
  54.         Print Tekst1
  55.         Else
  56.         Tekst = Format$(Rs.Fields(I))
  57.         Print Tekst
  58.         End If
  59.     Next I
  60. Me.CurrentX = X
  61. Y = Me.CurrentY + 5
  62. Rs.MoveNext
  63. Loop
  64. DoCmd.Close acForm, "Form1"
  65. End Sub

Struktura baze je nikakva pa bi najbolje bilo napraviti sve kodom jer ovaj tvoj uslov i crostab je megalomansko rjesenje.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.