ACTIVE REPORTS LIMPAR MESMO CAMPO DO BANCO
Pessoal bom dia!!
Uso o Active Reports para meus relatórios, e até agora, tranquilo, mais assim, eu estou tentando fazer o seguinte:
no meu banco de dados tenho assim:
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
1 - 35002 - JOERBETH - 1.500,00
então, quero uma forma dessa segunda linha, limpar os campos: CLIENTE e VALOR???
Tentei fazer uma gambiarra com campos boolean , mais num rolou, acho que vou ter que trabalhar dentro dos eventos BEFORE E AFTER, vou postar o codigo de dentro do AR:
Option Explicit
Dim v_Total
Private Sub ActiveReport_Activate()
DataControl1.ConnectionString = [Ô]Provider=IBOLE.Provider.v4;Extended Properties=[ô]sql Dialect=3[ô];Persist Security Info=False;Data Source=[Ô] & _
v_IP & [Ô];Extended Properties=[ô]COLLATE=PT_BR[ô];Character Set=ISO8859_1[Ô]
Printer.Orientation = ddOLandscape
End Sub
Private Sub ActiveReport_ReportStart()
Dim Var_Select
Dim v_Flag50
v_Flag50 = [Ô]N[Ô]
v_Total = [Ô]0[Ô]
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,CARROSCAMPANHA.NUMERO_CARRO FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
DataControl1.Source = Var_Select
F_DataInicio.DataField = [Ô]DATA_ENTRADA[Ô]
F_DataFim.DataField = [Ô]DATA_TERMINO[Ô]
F_Empresa.DataField = [Ô]EMPRESA[Ô]
F_NumeroCarro.DataField = [Ô]NUMERO_CARRO[Ô]
F_Cliente.DataField = [Ô]CLIENTE[Ô]
F_Valor.DataField = [Ô]VALOR_GERAL[Ô]
F_Cod.DataField = [Ô]CODIGO[Ô]
End Sub
Private Sub Detail_AfterPrint()
End Sub
Private Sub Detail_BeforePrint()
End Sub
Private Sub Detail_Format()
If F_Valor.Text = [Ô][Ô] Then
F_Valor.Text = [Ô]0[Ô]
End If
v_Total = CDbl(v_Total) + CDbl(F_Valor.Text)
End Sub
Private Sub GroupFooter1_Format()
F_Geral.Text = Format(v_Total, [Ô]#,##0.00;($#,##0.00)[Ô])
v_Total = 0
End Sub
Private Sub PageFooter_Format()
LBL_Pag.Caption = Str(Me.pageNumber)
End Sub
Private Sub PageHeader_Format()
Field1.Text = Date
End Sub
valeu
Uso o Active Reports para meus relatórios, e até agora, tranquilo, mais assim, eu estou tentando fazer o seguinte:
no meu banco de dados tenho assim:
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
1 - 35002 - JOERBETH - 1.500,00
então, quero uma forma dessa segunda linha, limpar os campos: CLIENTE e VALOR???
Tentei fazer uma gambiarra com campos boolean , mais num rolou, acho que vou ter que trabalhar dentro dos eventos BEFORE E AFTER, vou postar o codigo de dentro do AR:
Option Explicit
Dim v_Total
Private Sub ActiveReport_Activate()
DataControl1.ConnectionString = [Ô]Provider=IBOLE.Provider.v4;Extended Properties=[ô]sql Dialect=3[ô];Persist Security Info=False;Data Source=[Ô] & _
v_IP & [Ô];Extended Properties=[ô]COLLATE=PT_BR[ô];Character Set=ISO8859_1[Ô]
Printer.Orientation = ddOLandscape
End Sub
Private Sub ActiveReport_ReportStart()
Dim Var_Select
Dim v_Flag50
v_Flag50 = [Ô]N[Ô]
v_Total = [Ô]0[Ô]
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,CARROSCAMPANHA.NUMERO_CARRO FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
DataControl1.Source = Var_Select
F_DataInicio.DataField = [Ô]DATA_ENTRADA[Ô]
F_DataFim.DataField = [Ô]DATA_TERMINO[Ô]
F_Empresa.DataField = [Ô]EMPRESA[Ô]
F_NumeroCarro.DataField = [Ô]NUMERO_CARRO[Ô]
F_Cliente.DataField = [Ô]CLIENTE[Ô]
F_Valor.DataField = [Ô]VALOR_GERAL[Ô]
F_Cod.DataField = [Ô]CODIGO[Ô]
End Sub
Private Sub Detail_AfterPrint()
End Sub
Private Sub Detail_BeforePrint()
End Sub
Private Sub Detail_Format()
If F_Valor.Text = [Ô][Ô] Then
F_Valor.Text = [Ô]0[Ô]
End If
v_Total = CDbl(v_Total) + CDbl(F_Valor.Text)
End Sub
Private Sub GroupFooter1_Format()
F_Geral.Text = Format(v_Total, [Ô]#,##0.00;($#,##0.00)[Ô])
v_Total = 0
End Sub
Private Sub PageFooter_Format()
LBL_Pag.Caption = Str(Me.pageNumber)
End Sub
Private Sub PageHeader_Format()
Field1.Text = Date
End Sub
valeu
não entendi como assim limpar?
rsss, limpar o campo para não mostrar no relatório e nem duplicar a soma
TXT_NOME.TEXT = [Ô][Ô]
TXT_VALOR.TEXT = [Ô][Ô]
até ai tudo bem, mais fazer isso em que momento?.
TXT_NOME.TEXT = [Ô][Ô]
TXT_VALOR.TEXT = [Ô][Ô]
até ai tudo bem, mais fazer isso em que momento?.
você faz isso antes de preencher o relatorio ou seja antes da funcão de preenchimento.
acredito que seja assim
Private Sub ActiveReport_ReportStart()
Dim Var_Select
Dim v_Flag50
v_Flag50 = [Ô]N[Ô]
v_Total = [Ô]0[Ô]
[txt-color=#0000f0] TXT_NOME.TEXT = [Ô][Ô]
TXT_VALOR.TEXT = [Ô][Ô][/txt-color]
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,CARROSCAMPANHA.NUMERO_CARRO FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
DataControl1.Source = Var_Select
acredito que seja assim
Private Sub ActiveReport_ReportStart()
Dim Var_Select
Dim v_Flag50
v_Flag50 = [Ô]N[Ô]
v_Total = [Ô]0[Ô]
[txt-color=#0000f0] TXT_NOME.TEXT = [Ô][Ô]
TXT_VALOR.TEXT = [Ô][Ô][/txt-color]
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,CARROSCAMPANHA.NUMERO_CARRO FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
DataControl1.Source = Var_Select
rsssrssss, nada disso.rsss
vou tentar simplificar.... assim, o bando de dados, tem registros repetidos, mais com o campo CARRO que faço um INNER JOIN que não repete, e e esse tenho que manter visivel no relatorio, se eu mostrar o relatorio para o [Ô]chefe[Ô] ele vai questionar porque repete, e ainda duplica os valores, já que, o campo CODIGO=1 dentro do campo, é o mesmo registro, e tenho que duplicar ele na hora de gravar,... deve existir uma forma.
valeu
Joerbeth
vou tentar simplificar.... assim, o bando de dados, tem registros repetidos, mais com o campo CARRO que faço um INNER JOIN que não repete, e e esse tenho que manter visivel no relatorio, se eu mostrar o relatorio para o [Ô]chefe[Ô] ele vai questionar porque repete, e ainda duplica os valores, já que, o campo CODIGO=1 dentro do campo, é o mesmo registro, e tenho que duplicar ele na hora de gravar,... deve existir uma forma.
valeu
Joerbeth
Não acredito que nunca ninguem passou por essa situaçao???, já tentei aqui de varias formas, o máximo que consigi, foi colocar um outro campo para pegar o mesmo codigo=1, e colocar umas variaveis boolean, mais depois que termina de carregar o codigo=1 tudo beleza, quando pula pro codigo=2, nã faz mais nada e repete tudo... tem gente aqui que trabalha com AR(active reports)
falows gente
Joerbeth
falows gente
Joerbeth
O problema não é o active reports e sim a lógica da coisa que não estamos entendendo, afinal você quer que repita ou não?
bomse for para não repetir ja pensou em usar um distinct ou group by
bomse for para não repetir ja pensou em usar um distinct ou group by
acho que não tá dificil de entender não, mais , vamos tentar de novo.....
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
1 - 35002 - JOERBETH - 1.500,00
vcs percebem que, a segunda linha do [Ô]relatório[Ô] a unica coisa que não é igual é o carro??? então quero somente, deixar nessa segunda linha o CARRO mostrando no relatorio, e os demais campos da segunda lina, e assim por diante se tiver mais de 3 linhas ou 4 ou 5 .... apagados, por isso que coloquei TXT_CODIGO.TEXT =[Ô][Ô] que isso é facil né?!;
valeu
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
1 - 35002 - JOERBETH - 1.500,00
vcs percebem que, a segunda linha do [Ô]relatório[Ô] a unica coisa que não é igual é o carro??? então quero somente, deixar nessa segunda linha o CARRO mostrando no relatorio, e os demais campos da segunda lina, e assim por diante se tiver mais de 3 linhas ou 4 ou 5 .... apagados, por isso que coloquei TXT_CODIGO.TEXT =[Ô][Ô] que isso é facil né?!;
valeu
então colega tente um max
exemplo:
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,[txt-color=#0000f0]MAX[/txt-color](CARROSCAMPANHA.NUMERO_CARRO) FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
ELE VAI MOSTRAR O ULTIMO CARRO APENAS
exemplo:
Var_Select = [Ô]SELECT CAMPANHAS.*,CARROSCAMPANHA.CODIGO,[txt-color=#0000f0]MAX[/txt-color](CARROSCAMPANHA.NUMERO_CARRO) FROM CAMPANHAS INNER JOIN CARROSCAMPANHA ON CAMPANHAS.FLAG=[ô][Ô] & v_Flag50 & [Ô][ô] ORDER BY CLIENTE[Ô]
ELE VAI MOSTRAR O ULTIMO CARRO APENAS
não tem como eu testar aqui, como vc colocou, ele vai fazer assim:
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
- 35002 -
- 35003 -
- 35004 -
- 35005 -
VALOR GERAL 1.500,00
??????
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35001 - JOERBETH - 1.500,00
----------------------------------------------
- 35002 -
- 35003 -
- 35004 -
- 35005 -
VALOR GERAL 1.500,00
??????
pelo código que postei teoricamente teria que sair somente o ultimo
assim
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35005 - JOERBETH - 1.500,00
porém se é da forma acima que você deseja teria de ser de outra maneira
assim
CODIGO - CARRO - CLIENTE - VALOR
==============================
1 - 35005 - JOERBETH - 1.500,00
porém se é da forma acima que você deseja teria de ser de outra maneira
Tópico encerrado , respostas não são mais permitidas