Ir para conteúdo
Fórum Script Brasil
  • 0

Programando em VB com ScriptReport


filipe.sistemas

Pergunta

Olá bom dia a todos,

Atualmente programo em C, estou começando agora a programar em VB, gostaria de uma orientação para programar em ScriptReport, se teria alguma apostila postada no forum falando sobre criação de relatórios.

Gostaria de desenvolver para esse relatório

Option Explicit
Dim Posicao As Date
Dim QParcelas As Object
Dim QMov As Object
Dim valor As Currency
Dim dias As Long
Dim s As String
Dim s1 As String
Dim r As Object
Dim t As String
Public Sub REPORT_BeforePrint(PrintReport As Boolean)
Set QParcelas = REPORT.QueryByName("FN_PARCELAS")
s = "SELECT SUM(VALORESBAIXADOS) BAIXAS FROM FN_PARCELAS WHERE HANDLE = :PARCELA AND VCTOPRORROGADO <= :POSICAO"
Set QMov = NewQuery
QMov.Clear
QMov.Add(s)
End Sub
Public Sub REPORT_DestroyData()
Set QParcelas = Nothing
Set QMov = Nothing
End Sub
Public Sub REPORT_OnMacroValue(ByVal Name As String, ResultValue As Variant)
' resultvalue = 0
Select Case Name
Case "CATEGORIA"
t = ""
t = t + " SELECT NOME FROM GN_CATEGORIASCLIENTE WHERE HANDLE IN (SELECT CATEGORIACLIENTE FROM GN_PESSOAS WHERE HANDLE IN "
t = t + " (SELECT PESSOA FROM FN_DOCUMENTOS WHERE HANDLE=:DOCUMENTO)) "
Set r=NewQuery
r.Add(t)
'' MsgBox(QParcelas.FieldByName("DOCUMENTO").AsString)
r.ParamByName("DOCUMENTO").AsInteger = QParcelas.FieldByName("DOCUMENTO").AsInteger
r.Active=True
If r.FieldByName("NOME").AsString="" Then
ResultValue= "Cliente Sem Polo Associado"
Else
ResultValue= r.FieldByName("NOME").AsString
End If
r.Active=False
Set r = Nothing
Case "VENC1A10"
dias = DateDiff("d",QParcelas.FieldByName("VCTOPRORROGADO").AsDateTime,Posicao)
QMov.ParamByName("PARCELA").Value = QParcelas.FieldByName("HANDLE").Value
QMov.ParamByName("POSICAO").Value = Posicao
QMov.Active = True
If QMov.EOF Then
MsgBox "fim"
End If
If (QMov.EOF Or QMov.FieldByName("BAIXAS").IsNull) Then
valor = QParcelas.FieldByName("VALOR").AsFloat
Else
valor = (QParcelas.FieldByName("VALOR").AsFloat - QMov.FieldByName("BAIXAS").AsFloat)
End If
QMov.Active = False
If (dias >= 1 And dias <= 10) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC11A30"
If (dias >= 11 And dias <= 30) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC31A60"
If (dias >= 31 And dias <= 60) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC61a90"
If (dias >= 61 And dias <= 90) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC91a120"
If (dias >= 91 And dias <= 120) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC121a180"
If (dias >= 121 And dias <= 180) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENC181a360"
If (dias >= 181 And dias <= 360) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENCAC361"
If (dias >= 361) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "VENCTOTAL"
If (dias >= 1) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "AVENC1A5"
If (dias >= -5 And dias <= 0) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "AVENC6A30"
If (dias >= -30 And dias <= -6) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "AVENC31A60"
If (dias >= -60 And dias <= -31) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "AVENCAC60"
If (dias < -60) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "AVENCTOTAL"
If (dias <= 0) Then
ResultValue = valor
Else
ResultValue = 0.0000
End If
Case "TOTAL"
ResultValue = valor
valor = 0.0000
End Select
End Sub
Public Sub REPORT_SetParams(ByVal aParams As String)
Dim i As Long
Dim D As String
D = ShortHint(aParams)
i = StrPos("=",D)
Posicao = CDate(Mid(D,i+1,Len(D)-i))
End Sub
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...