如何从 vb6 中的查询中获取 table 值
How to get table value from query in vb6
我在 vb6 函数中创建了一个 table 但无法从 vb6.I 中的 SQL 查询中获取它的值想要自动递增 s.no 而不是 Months.The 要求 table 如下。请帮忙
S.NO EMPLOYEE_ID EMPLOYEE_NAME GROSS_SALARY
1 1 abc 45677878
2 2 xyz 5678998
下面给出了创建的函数
Private Sub Command1_Click()
Dim FileName As String
Dim lTaxablePay As Variant
Dim lSDLAmt As Variant
Dim lRsCompDet As New ADODB.Recordset
Dim lRsMonthlyDet As New ADODB.Recordset
Dim lTotCasual As Currency, lTotPermanent As Currency, lTotSDLAmt As Currency, lTotGrossAmt As Currency
Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month) & " to " & MonthName(DTPToDate.Month), vbOKOnly + vbExclamation, Me.Caption)
lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear
Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)
If RecordsetsIsEmpty(lRsCompDet) = True Then
MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
Exit Sub
End If
lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)
lstrSQL = " SELECT s.EMPLOYEE_ID,EMPLOYEE_NAME, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT)As GROSS_SALARY FROM V_HR_PP_PROCESS_DATA s inner join I_HR_EMPLOYEE_MASTER m on m.EMPLOYER_CODE=s.EMPLOYER_CODE and m.EMPLOYEE_ID=s.EMPLOYEE_ID WHERE "
lstrSQL = lstrSQL & " EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = A.TAX_YEAR AND PROCESS_MONTH = A.MONTH AND "
lstrSQL = lstrSQL & " TAX_YEAR = 2014 "
lstrSQL = lstrSQL & " group by s.EMPLOYER_CODE,s.EMPLOYEE_ID,EMPLOYEE_NAME,TAX_YEAR "
' MsgBox (lstrSQL)
Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)
lRsMonthlyDet.Sort = "Month Asc"
'If fSDLPercentage <> 0 Then
lSDLAmt = Val(lTaxablePay & "") * 1 / 100
' End If
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " | S.NO | EMPLOYEE_ID | EMPLOYEE NAME | GROSS SALARY | Total amount of |"
fObjTS.WriteLine " | | | | | SDL. Paid to |"
fObjTS.WriteLine " | | | | | the Bank |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
If RecordsetsIsEmpty(lRsMonthlyDet) = True Then
fObjTS.WriteLine " | January | | | | |"
fObjTS.WriteLine " | February | | | | |"
fObjTS.WriteLine " | March | | | | |"
fObjTS.WriteLine " | April | | | | |"
fObjTS.WriteLine " | May | | | | |"
fObjTS.WriteLine " | June | | | | |"
fObjTS.WriteLine " | July | | | | |"
fObjTS.WriteLine " | August | | | | |"
fObjTS.WriteLine " | September | | | | |"
fObjTS.WriteLine " | October | | | | |"
fObjTS.WriteLine " | November | | | | |"
fObjTS.WriteLine " | December | | | | |"
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
Else
lTotCasual = 0: lTotPermanent = 0: lTotSDLAmt = 0: lTotGrossAmt = 0
Do While Not lRsMonthlyDet.EOF
'If fSDLPercentage <> 0 Then
lSDLAmt = (Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Casual").Value & "")) * 1 / 100
' Else
' lSDLAmt = 0
' End If
lTotCasual = lTotCasual + Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")
lTotPermanent = lTotPermanent + Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")
lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "")
lTotSDLAmt = lTotSDLAmt + Val(lSDLAmt & "")
fObjTS.WriteLine " | " & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(lSDLAmt, 24) & "|"
lRsMonthlyDet.MoveNext
Loop
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS |" & _
ConvertNumberToThousandSeparator(Val(lTotPermanent & ""), 18) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotCasual & ""), 17) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotGrossAmt & ""), 17) & "|" & _
ConvertNumberToThousandSeparator(lTotSDLAmt, 24) & "|"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
End If
'--------------------------------------------------------------------
fObjTS.WriteLine ""
fObjTS.CLOSE
Call ShowTextReportPreview(FileName)
End Sub
这是上述问题的解决方案
私人订阅 cmdWCReport_Click()
将文件名调暗为字符串
Dim lTaxablePay 作为变体
将 lSDLAmt 变暗为变体
将 lRsCompDet 变暗为新 ADODB.Recordset
Dim lRsMonthlyDet 为新 ADODB.Recordset
Dim EmployeeID 为字符串,EmployeeName 为字符串,lTotBasicAmt 为货币,lTotGrossAmt 为货币,lTotUSDGrossPay 为货币
Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month), vbOKOnly + vbExclamation, Me.Caption)
lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear
Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)
If RecordsetsIsEmpty(lRsCompDet) = True Then
MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
Exit Sub
End If
lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)
lstrSQL = " SELECT A.EMPLOYEE_ID, A.EMPLOYEE_CODE, A.EMPLOYEE_NAME, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' ) as GROSSPAY, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z001' ) as BASICPAY, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT_OTHER_CURRENCY) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' AND OTHER_CURRENCY_CODE = 'USD') as USDGROSSPAY "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYEE_MASTER A"
lstrSQL = lstrSQL & " WHERE A.EMPLOYER_CODE = '" & gEmployerCode & "' "
lstrSQL = lstrSQL & " AND CURRENT_EMPLOYEE_STATUS <> 'T' AND RECORD_STATUS <> 'D' "
'MsgBox (lstrSQL)
Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)
'If fSDLPercentage <> 0 Then
lSDLAmt = Val(lTaxablePay & "") * 1 / 100
' 结束如果
出错继续下一步
fObjTS.Close
FileName = CreateStdSpoolFileName("WORKMEN'S COMPENSATION REPORT")
Set fObjTS = fobjSh.CreateTextFile(FileName, True)
'Set fObjTS = fobjSh.OpenTextFile(FileName, ForWriting, True)
fObjTS.WriteLine ""
fObjTS.WriteLine " TANZANIA REVENUE AUTHORITY"
fObjTS.WriteLine " WC FUND"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " WORKMEN'S COMPENSATION FUND(WCF)"
fObjTS.WriteLine " EMPLOYER 'S END OF THE YEAR CERTIFICATE"
fObjTS.WriteLine " YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " To: The Regional/District Revenue Officer"
fObjTS.WriteLine " Income Tax Department"
fObjTS.WriteLine " P.O.Box............................."
fObjTS.WriteLine " ............................. Employer's Income Tax Number " & fEmployersITNumber
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " -------------------------------------------------------------------------------"
fObjTS.WriteLine "| 1. Name Of Employer |" & PadR(gEmployerName, 39) & "|"
fObjTS.WriteLine "| | |"
fObjTS.WriteLine "| 2. Address: Postal |" & PadR(lRsCompDet.Fields("Address1").Value & "", 39) & "|"
fObjTS.WriteLine "| Physical |" & PadR(lRsCompDet.Fields("Address2").Value & "", 39) & "|"
fObjTS.WriteLine "| |" & PadR(lRsCompDet.Fields("CITY").Value & "," & lRsCompDet.Fields("POSTCODE").Value, 39) & "|"
fObjTS.WriteLine "| 3. Nature of Business |" & PadR(lRsCompDet.Fields("TYPE_OF_BUSINESS").Value & "", 39) & "|"
fObjTS.WriteLine "| | |"
fObjTS.WriteLine "| State Whether | |"
fObjTS.WriteLine "| 4. Individual/PartnerShips/ | |"
fObjTS.WriteLine "| Companies/ | |"
fObjTS.WriteLine "| Parastatals/and others e.g Clubs | |"
fObjTS.WriteLine "| Trusts and Associations | |"
fObjTS.WriteLine "| 5. Amount |" & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & " |"
fObjTS.WriteLine "| 6. Applicable Month |" & DTPFromDate & " |"
fObjTS.WriteLine "--------------------------------------------------------------------------------"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " The total amount of gross emoluments paid during the year " & gTaxYear & " added up"
fObjTS.WriteLine "to Shs " & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & " and " & 1 & "% of which works to Shs" & ConvertNumberToThousandSeparator(lSDLAmt, 16) & " as"
fObjTS.WriteLine "shown on the reverse of this Form."
fObjTS.WriteLine ""
fObjTS.WriteLine " I/We Certify that the particulars entered on the form HL.9 already submitted"
fObjTS.WriteLine "Monthly for the period from January to December, " & gTaxYear & " are correct."
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine "Date " & Format(Date, "dd/MM/yyyy") & " (Signature and rubber stamp)"
fObjTS.WriteLine ""
fObjTS.WriteLine "To be submitted in original to the relevant Income Tax Office on or before"
fObjTS.WriteLine "31St January of the Year following."
'Second Page
fObjTS.WriteLine Chr(12)
fObjTS.WriteLine " SUMMARY FOR THE "
fObjTS.WriteLine " YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " | S.NO | EMPLOYEE_CODE | EMPLOYEE NAME | GROSS SALARY | BASIC SALARY | USD_GROSS |"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"
lTotGrossAmt = 0: lTotBasicAmt = 0
昏暗的 lintCtr 一样长
lintCtr = 1
Do While Not lRsMonthlyDet.EOF
fObjTS.WriteLine " | " & PadL(CStr(lintCtr), 5, False) & _
" | " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_CODE").Value, 10) & _
" | " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_NAME").Value, 10) & _
" | " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("GROSSPAY").Value & ""), 15) & _
"| " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("BASICPAY").Value & ""), 22) & _
"| " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & ""), 8) & " |"
lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("GROSSPAY").Value & "")
lTotBasicAmt = lTotBasicAmt + Val(lRsMonthlyDet.Fields("BASICPAY").Value & "")
lTotUSDGrossPay = lTotUSDGrossPay + Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & "")
lRsMonthlyDet.MoveNext
lintCtr = lintCtr + 1
Loop
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS |" & _
" " & " |" & _
" " & " |" & _
ConvertNumberToThousandSeparator(Val(lTotGrossAmt), 16) & " |" & _
ConvertNumberToThousandSeparator(Val(lTotBasicAmt), 24) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotUSDGrossPay), 10) & " |"
fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"
fObjTS.Close
Call ShowTextReportPreview(FileName)
结束子
}
我在 vb6 函数中创建了一个 table 但无法从 vb6.I 中的 SQL 查询中获取它的值想要自动递增 s.no 而不是 Months.The 要求 table 如下。请帮忙
S.NO EMPLOYEE_ID EMPLOYEE_NAME GROSS_SALARY
1 1 abc 45677878
2 2 xyz 5678998
下面给出了创建的函数
Private Sub Command1_Click()
Dim FileName As String
Dim lTaxablePay As Variant
Dim lSDLAmt As Variant
Dim lRsCompDet As New ADODB.Recordset
Dim lRsMonthlyDet As New ADODB.Recordset
Dim lTotCasual As Currency, lTotPermanent As Currency, lTotSDLAmt As Currency, lTotGrossAmt As Currency
Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month) & " to " & MonthName(DTPToDate.Month), vbOKOnly + vbExclamation, Me.Caption)
lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear
Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)
If RecordsetsIsEmpty(lRsCompDet) = True Then
MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
Exit Sub
End If
lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)
lstrSQL = " SELECT s.EMPLOYEE_ID,EMPLOYEE_NAME, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT)As GROSS_SALARY FROM V_HR_PP_PROCESS_DATA s inner join I_HR_EMPLOYEE_MASTER m on m.EMPLOYER_CODE=s.EMPLOYER_CODE and m.EMPLOYEE_ID=s.EMPLOYEE_ID WHERE "
lstrSQL = lstrSQL & " EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = A.TAX_YEAR AND PROCESS_MONTH = A.MONTH AND "
lstrSQL = lstrSQL & " TAX_YEAR = 2014 "
lstrSQL = lstrSQL & " group by s.EMPLOYER_CODE,s.EMPLOYEE_ID,EMPLOYEE_NAME,TAX_YEAR "
' MsgBox (lstrSQL)
Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)
lRsMonthlyDet.Sort = "Month Asc"
'If fSDLPercentage <> 0 Then
lSDLAmt = Val(lTaxablePay & "") * 1 / 100
' End If
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " | S.NO | EMPLOYEE_ID | EMPLOYEE NAME | GROSS SALARY | Total amount of |"
fObjTS.WriteLine " | | | | | SDL. Paid to |"
fObjTS.WriteLine " | | | | | the Bank |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
If RecordsetsIsEmpty(lRsMonthlyDet) = True Then
fObjTS.WriteLine " | January | | | | |"
fObjTS.WriteLine " | February | | | | |"
fObjTS.WriteLine " | March | | | | |"
fObjTS.WriteLine " | April | | | | |"
fObjTS.WriteLine " | May | | | | |"
fObjTS.WriteLine " | June | | | | |"
fObjTS.WriteLine " | July | | | | |"
fObjTS.WriteLine " | August | | | | |"
fObjTS.WriteLine " | September | | | | |"
fObjTS.WriteLine " | October | | | | |"
fObjTS.WriteLine " | November | | | | |"
fObjTS.WriteLine " | December | | | | |"
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
Else
lTotCasual = 0: lTotPermanent = 0: lTotSDLAmt = 0: lTotGrossAmt = 0
Do While Not lRsMonthlyDet.EOF
'If fSDLPercentage <> 0 Then
lSDLAmt = (Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Casual").Value & "")) * 1 / 100
' Else
' lSDLAmt = 0
' End If
lTotCasual = lTotCasual + Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")
lTotPermanent = lTotPermanent + Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")
lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "") + Val(lRsMonthlyDet.Fields("Gross_Permanent").Value & "")
lTotSDLAmt = lTotSDLAmt + Val(lSDLAmt & "")
fObjTS.WriteLine " | " & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Id").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Employee_Name").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("Gross_Salary").Value & "")) & "|" & _
ConvertNumberToThousandSeparator(lSDLAmt, 24) & "|"
lRsMonthlyDet.MoveNext
Loop
fObjTS.WriteLine " | | | | | |"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS |" & _
ConvertNumberToThousandSeparator(Val(lTotPermanent & ""), 18) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotCasual & ""), 17) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotGrossAmt & ""), 17) & "|" & _
ConvertNumberToThousandSeparator(lTotSDLAmt, 24) & "|"
fObjTS.WriteLine " ------------------------------------------------------------------------------------------------"
End If
'--------------------------------------------------------------------
fObjTS.WriteLine ""
fObjTS.CLOSE
Call ShowTextReportPreview(FileName)
End Sub
这是上述问题的解决方案
私人订阅 cmdWCReport_Click() 将文件名调暗为字符串 Dim lTaxablePay 作为变体 将 lSDLAmt 变暗为变体 将 lRsCompDet 变暗为新 ADODB.Recordset Dim lRsMonthlyDet 为新 ADODB.Recordset Dim EmployeeID 为字符串,EmployeeName 为字符串,lTotBasicAmt 为货币,lTotGrossAmt 为货币,lTotUSDGrossPay 为货币
Call MsgBox("This report will be generated for the period of " & MonthName(DTPFromDate.Month), vbOKOnly + vbExclamation, Me.Caption)
lstrSQL = "SELECT ADDRESS1, ADDRESS2, CITY, POSTCODE , TYPE_OF_BUSINESS "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYER_MASTER "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = '" & gEmployerCode & "' AND TAX_YEAR = " & gTaxYear
Set lRsCompDet = gObjDBConnection.ExecuteSQL(lstrSQL)
If RecordsetsIsEmpty(lRsCompDet) = True Then
MsgBox "Company Details are not entered.", vbOKOnly + vbInformation, Me.Caption
Exit Sub
End If
lTaxablePay = GetTaxablePay(, DTPFromDate.Month, DTPToDate.Month)
lstrSQL = " SELECT A.EMPLOYEE_ID, A.EMPLOYEE_CODE, A.EMPLOYEE_NAME, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' ) as GROSSPAY, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z001' ) as BASICPAY, "
lstrSQL = lstrSQL & " (SELECT sum(AMOUNT_OTHER_CURRENCY) FROM V_HR_PP_PROCESS_DATA PP "
lstrSQL = lstrSQL & " WHERE EMPLOYER_CODE = A.EMPLOYER_CODE AND TAX_YEAR = " & gTaxYear & " AND PROCESS_MONTH = " & DTPFromDate.Month
lstrSQL = lstrSQL & " AND EMPLOYEE_ID = a.EMPLOYEE_ID AND PROCESS_YEAR = " & DTPFromDate.Year
lstrSQL = lstrSQL & " AND PD_CODE = 'Z970' AND OTHER_CURRENCY_CODE = 'USD') as USDGROSSPAY "
lstrSQL = lstrSQL & " FROM I_HR_EMPLOYEE_MASTER A"
lstrSQL = lstrSQL & " WHERE A.EMPLOYER_CODE = '" & gEmployerCode & "' "
lstrSQL = lstrSQL & " AND CURRENT_EMPLOYEE_STATUS <> 'T' AND RECORD_STATUS <> 'D' "
'MsgBox (lstrSQL)
Set lRsMonthlyDet = gObjDBConnection.ExecuteSQL(lstrSQL)
'If fSDLPercentage <> 0 Then
lSDLAmt = Val(lTaxablePay & "") * 1 / 100
' 结束如果
出错继续下一步 fObjTS.Close
FileName = CreateStdSpoolFileName("WORKMEN'S COMPENSATION REPORT")
Set fObjTS = fobjSh.CreateTextFile(FileName, True)
'Set fObjTS = fobjSh.OpenTextFile(FileName, ForWriting, True)
fObjTS.WriteLine ""
fObjTS.WriteLine " TANZANIA REVENUE AUTHORITY"
fObjTS.WriteLine " WC FUND"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " WORKMEN'S COMPENSATION FUND(WCF)"
fObjTS.WriteLine " EMPLOYER 'S END OF THE YEAR CERTIFICATE"
fObjTS.WriteLine " YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " To: The Regional/District Revenue Officer"
fObjTS.WriteLine " Income Tax Department"
fObjTS.WriteLine " P.O.Box............................."
fObjTS.WriteLine " ............................. Employer's Income Tax Number " & fEmployersITNumber
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " -------------------------------------------------------------------------------"
fObjTS.WriteLine "| 1. Name Of Employer |" & PadR(gEmployerName, 39) & "|"
fObjTS.WriteLine "| | |"
fObjTS.WriteLine "| 2. Address: Postal |" & PadR(lRsCompDet.Fields("Address1").Value & "", 39) & "|"
fObjTS.WriteLine "| Physical |" & PadR(lRsCompDet.Fields("Address2").Value & "", 39) & "|"
fObjTS.WriteLine "| |" & PadR(lRsCompDet.Fields("CITY").Value & "," & lRsCompDet.Fields("POSTCODE").Value, 39) & "|"
fObjTS.WriteLine "| 3. Nature of Business |" & PadR(lRsCompDet.Fields("TYPE_OF_BUSINESS").Value & "", 39) & "|"
fObjTS.WriteLine "| | |"
fObjTS.WriteLine "| State Whether | |"
fObjTS.WriteLine "| 4. Individual/PartnerShips/ | |"
fObjTS.WriteLine "| Companies/ | |"
fObjTS.WriteLine "| Parastatals/and others e.g Clubs | |"
fObjTS.WriteLine "| Trusts and Associations | |"
fObjTS.WriteLine "| 5. Amount |" & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & " |"
fObjTS.WriteLine "| 6. Applicable Month |" & DTPFromDate & " |"
fObjTS.WriteLine "--------------------------------------------------------------------------------"
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " The total amount of gross emoluments paid during the year " & gTaxYear & " added up"
fObjTS.WriteLine "to Shs " & ConvertNumberToThousandSeparator(Val(lTaxablePay & ""), 16) & " and " & 1 & "% of which works to Shs" & ConvertNumberToThousandSeparator(lSDLAmt, 16) & " as"
fObjTS.WriteLine "shown on the reverse of this Form."
fObjTS.WriteLine ""
fObjTS.WriteLine " I/We Certify that the particulars entered on the form HL.9 already submitted"
fObjTS.WriteLine "Monthly for the period from January to December, " & gTaxYear & " are correct."
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine "Date " & Format(Date, "dd/MM/yyyy") & " (Signature and rubber stamp)"
fObjTS.WriteLine ""
fObjTS.WriteLine "To be submitted in original to the relevant Income Tax Office on or before"
fObjTS.WriteLine "31St January of the Year following."
'Second Page
fObjTS.WriteLine Chr(12)
fObjTS.WriteLine " SUMMARY FOR THE "
fObjTS.WriteLine " YEAR " & gTaxYear
fObjTS.WriteLine ""
fObjTS.WriteLine ""
fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " | S.NO | EMPLOYEE_CODE | EMPLOYEE NAME | GROSS SALARY | BASIC SALARY | USD_GROSS |"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " ----------------------------------------------------------------------------------------------------------------"
lTotGrossAmt = 0: lTotBasicAmt = 0 昏暗的 lintCtr 一样长 lintCtr = 1
Do While Not lRsMonthlyDet.EOF
fObjTS.WriteLine " | " & PadL(CStr(lintCtr), 5, False) & _
" | " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_CODE").Value, 10) & _
" | " & PadR(lRsMonthlyDet.Fields("EMPLOYEE_NAME").Value, 10) & _
" | " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("GROSSPAY").Value & ""), 15) & _
"| " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("BASICPAY").Value & ""), 22) & _
"| " & ConvertNumberToThousandSeparator(Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & ""), 8) & " |"
lTotGrossAmt = lTotGrossAmt + Val(lRsMonthlyDet.Fields("GROSSPAY").Value & "")
lTotBasicAmt = lTotBasicAmt + Val(lRsMonthlyDet.Fields("BASICPAY").Value & "")
lTotUSDGrossPay = lTotUSDGrossPay + Val(lRsMonthlyDet.Fields("USDGROSSPAY").Value & "")
lRsMonthlyDet.MoveNext
lintCtr = lintCtr + 1
Loop
fObjTS.WriteLine " | | | | | | |"
fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"
fObjTS.WriteLine " | TOTALS |" & _
" " & " |" & _
" " & " |" & _
ConvertNumberToThousandSeparator(Val(lTotGrossAmt), 16) & " |" & _
ConvertNumberToThousandSeparator(Val(lTotBasicAmt), 24) & "|" & _
ConvertNumberToThousandSeparator(Val(lTotUSDGrossPay), 10) & " |"
fObjTS.WriteLine " -----------------------------------------------------------------------------------------------------------------"
fObjTS.Close
Call ShowTextReportPreview(FileName)
结束子 }