SQlScript = $"SELECT 1 AS RANK, Date('${BDate}', '-1 Day') AS RegistrationDate, DocumentCode,
'Εξ απογραφής' AS LongComment, 0 AS Debit, 0 AS Credit, Balance, 'First' AS MaxDate
FROM LOCAL_EGM_Kartela
WHERE fTradeAccountGID = '${Main.G1.ClientValueGID}' AND DocumentCode = 'Parastatiko Apografis'
AND Date(RegistrationDate) = (SELECT BeginDate FROM LOCAL_EGM_YEARS WHERE BeginDate = '${BDate}')
UNION ALL
SELECT 2 AS RANK, RegistrationDate, DocumentCode, LongComment, Debit, Credit, Balance, '' AS MaxDate
FROM LOCAL_EGM_Kartela
WHERE fTradeAccountGID = '${Main.G1.ClientValueGID}'
AND Date(RegistrationDate) BETWEEN '${BDate}' AND '${EDate}'
AND DocumentCode <> 'Parastatiko Apografis'
ORDER BY RANK, RegistrationDate"$
Log(SQlScript)
Starter.LocalSQL.Initialize(Starter.SafeFolder, "DVDatabase.db", True)
Curs1 = Starter.LocalSQL.ExecQuery(SQlScript)
Dim Balance1, SDebit, SCredit As Double = 0
Dim SecondRow, ThirdRow As Double = 0
Log(Curs1.RowCount) =====> Here I get the result of the rows and always the count one less
For ii = 0 To Curs1.RowCount - 1
Curs1.Position = ii
DateTime.DateFormat = "yyyy-MM-dd"
Dim BDate1 As Long
BDate1 = DateTime.DateParse(Curs1.GetString("RegistrationDate"))
If Curs1.GetString("MaxDate") = "First" Then
Balance1 = Curs1.GetDouble("Balance")
Else
If Curs1.GetDouble("Debit") = 0 Then
SecondRow = (Balance1 - Curs1.GetDouble("Credit")) + ThirdRow
Else
SecondRow = (Balance1 + Curs1.GetDouble("Debit")) + ThirdRow
End If
Balance1 = SecondRow
End If
SDebit = SDebit + Curs1.GetDouble("Debit")
SCredit = SCredit + Curs1.GetDouble("Credit")
DateTime.DateFormat = "dd/MM/yyyy"
Kartela_Table.AddRowAutomaticWidth(Array As String(DateTime.Date(BDate1), _
Curs1.GetString("DocumentCode"), Curs1.GetString("LongComment"), _
NumberFormat2(Curs1.GetDouble("Debit"), 1, 0, 2, False) & " €", _
NumberFormat2(Curs1.GetDouble("Credit"), 1, 0, 2, False) & " €", _
NumberFormat2(Balance1, 1, 0, 2, False) & " €"))
Next