Descrição:
Como imprimir um relatório cujas cores de fundo das linhas estejam intercaladas?
Solução:
Para isto, no evento Format da seção utilizada, insira um script que teste a cor atual da linha. Abaixo um exemplo deste script:
Exemplo:
Sub Detail_Format
Dim White, Color, i
Color = Me.Field1.BackColor.Name
White = System.Drawing.Color.White.Name
if Color = "ffffffff" then
Color = "White"
end if
if Color = White then
'Gray
for i = 1 to 2
rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.Gray
next
else
'White
for i = 1 to 2
rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.White
next
end if
if Color = "ffffffff" then
Color = "White"
else
Color = "Gray"
End If
End Sub
- Sub Detail_Format
-
- Dim White, Color, i
-
- Color = Me.Field1.BackColor.Name
- White = System.Drawing.Color.White.Name
-
- if Color = "ffffffff" then
- Color = "White"
- end if
-
- if Color = White then
- 'Gray
- for i = 1 to 2
- rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.Gray
- next
- else
- 'White
- for i = 1 to 2
- rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.White
- next
- end if
-
- if Color = "ffffffff" then
- Color = "White"
- else
- Color = "Gray"
- End If
- End Sub
Sub Detail_Format
Dim White, Color, i
Color = Me.Field1.BackColor.Name
White = System.Drawing.Color.White.Name
if Color = "ffffffff" then
Color = "White"
end if
if Color = White then
'Gray
for i = 1 to 2
rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.Gray
next
else
'White
for i = 1 to 2
rpt.Sections.Item("Detail").Controls.Item("Field" & i).BackColor = System.Drawing.Color.White
next
end if
if Color = "ffffffff" then
Color = "White"
else
Color = "Gray"
End If
End Sub
Anexos:
Report_Rows.zip
NOTA: A aplicação em anexo foi desenvolvida com o Elipse E3 v. 6.6.292.