Har en fråga! Din loop ska ligga i Detail_Format...och dina kontroller som ska innehålla radinformation ska ligga i sektion Detail. Har lagt detta inom Detail_Format men den skriver ändå bara över och visar den sista. Ta bort loopen och ha endast kvar detta: Jag visar i ett formulär i en ListView (frmVantelista) vilka personer som står på väntelistan. När jag klickar på knappen "Skrivut" körs denna kod: frmSkrivutvantelista.Show Se filarean ( Programarkivet:Enkelt exempel med Active Reports ) för ett enkelt väldokumenterat exempel som använder ADO för att hämta data från Pubs-databasen på en SQL-server. Jag har kommenterat de ställen som behöver ändras för att hämta data från en annan databas/tabell. Detta ska ej vara med i Detail_format utan i ActiveReport_Start: Tack för all er hjälp. Hejsan!Problem med Active Report
Har börjat med rapporten och det gå ganska bra.
Problemet uppstår när jag inte använder ADO ikonen från ActiveReport. Då jag loppar igenom alla fält i databasen så skrivs varje rad över, så det sista recordsetet är det som visas. Jag har denna uppkoppling:
Set cn = New Connection
cn.Open "Driver={Microsoft Access Driver ('.mdb)}; & _
"Dbq=" & App.Path & "/Bokningssystem.mdb"
Har denna db koppling för hela systemet.
Sen så loppar jag så här:
Do While Not rs.EOF
frmSkrivut.fldEfternamn = rs![Efternamn] (det är mera recordset men jag visar bara en)
rs.MoveNext
Loop
Hur ska jag få att rapporten ska visa alla rader?Sv: Problem med Active Report
Sv: Problem med Active Report
Set cn = New Connection
cn.Open "Driver={Microsoft Access Driver ('.mdb)}; & _
"Dbq=" & App.Path & "/Bokningssystem.mdb"
Har denna db koppling för hela systemet.
Sen så loppar jag så här:
Do While Not rs.EOF
frmSkrivut.fldEfternamn = rs![Efternamn] (det är mera recordset men jag visar bara en)
rs.MoveNext
Loop
Jag har inte lagt ADO ikonen från ActiveReport i Detail kroppen då jag designar eftersom jag vill göra som det jag visat.
Vad är felet?Sv: Problem med Active Report
<code>
Private Sub Detail_Format()
If Not rs.eof Then
frmSkrivut.fldEfternamn = rs![Efternamn]
rs.MoveNext
Detail.PrintSection
End If
End Sub
</code>
Öppna connection i ActiveReport_ReportStart
och ha ett publikt rsSv: Problem med Active Report
Denna kod finns då i frmSkrivutvantelista och tar fram poster som hör till det valda datumet i frmVantelista. Jag provade med If istället för Do While men då visas bara den första posten i db.
Måste man lägga in ADO kopplingen (ikonen som finns i Active Report) i Detail kroppen. Det känns så statiskt att lägga in ADO där. Jag vill kunna skriva ut bara för det valda datumet.
Jag förstår ej varför inte alla poster visas, vad kan vara felet? Så här borde man väl kunna göra?
Option Explicit
Dim rs As ADODB.Recordset
----------------------------------------------------------
Private Sub Detail_Format()
Dim sql As String
Set rs = New ADODB.Recordset
sql = "SELECT * FROM Vantelista WHERE datum = '" & frmVantelista.cboDatum & "' ORDER BY Efternamn ASC"
Call db(cn)
rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly
frmSkrivutVantelista.fldDatum = frmVantelista.cboDatum
If Not rs.EOF Then
frmSkrivutVantelista.fldEfternamn = rs![Efternamn]
frmSkrivutVantelista.fldFornamn = rs![Förnamn]
frmSkrivutVantelista.fldTel = rs![Tel]
frmSkrivutVantelista.fldMobil = rs![Mobil]
frmSkrivutVantelista.fldBiljetter = rs![biljett]
frmSkrivutVantelista.fldAllman = rs![Allmän_info]
rs.MoveNext
End If
End SubSv: Problem med Active Report
Glöm inte redigera connectionstringen (UID och PWD) enligt era inställningar.Sv: Problem med Active Report
<code>
Dim sql As String
Set rs = New ADODB.Recordset
sql = "SELECT * FROM Vantelista WHERE datum = '" & frmVantelista.cboDatum & "' ORDER BY Efternamn ASC"
Call db(cn)
rs.Open sql, cn, adOpenForwardOnly, adLockReadOnly
</code>
När det är öppnat i reportstart så anropas automatiskt Detail-format för varje rad du har i ditt recordset...och därför behöver du heller ingen loop i detail_formatSv: Problem med Active Report
Problemet var just att jag lagt sql satsen i Detail_Formet.
Jag håller på nu på med sidnumrering på sidorna typ: Sida 1 (3)
Problemet är att jag inte vet hur jag ska få dit trean på första och andra sidan eftersom varje gång Detail_Format loopat en sida går den vidare till Page_Footer och räknar upp PageNumber. Kan man på något sätt räkna upp antalet sidor direkt så att man kan få Sida: 1 (3)?
En annan sak är att ha en kantlinje på Detail kroppen och som alltid har har samma storlek oavsett hur många poster som kommer från databasen. Alltså som på en faktura kan det visas två rader med det man beställt, men själva kroppen med det man beställt sträcker sig ändå ner till sidfoten. Man har alltså en statsik storlek. Hur får man det?
Hoppas ni förstod.Sv: Problem med Active Report
Vet inte riktigt med antal sidor men testa att ha en egen
Field endast för det totala och sätt SummaryType till 4 - ddSMPageCount på ditt Field.
Kan hända att det behövs göras något mer, har ej behövt använda mig av det.
Förstår inte riktigt vad du menar med kroppen på faktura...vad den egentligen innehåller för text? Ska produkterna listas både i Detail och kroppen? Två gånger? Exprimentera med att sätta kroppen i antingen en GroupFooter eller i pagefooter. Eftersom det inte går att bestämma höjd på Detail får du sätta din kantlinje högst upp i groupfooter eller pagefooter
och i desginläge sätta det mellanrum du vill ha mellan kantlinjen och det som ska komma under.