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