自己动手开发的第一个即将投入使用中的ASP+DLL

ASP文件调用:

location=trim(request("location"))

beginlevel=trim(request("beginlevel"))
endlevel=trim(request("endlevel"))
powertype=trim(request("PowerType"))

Set PWLPrice1=server.createobject("PWLPrice.PowerLevel")
if powertype="FullTime" then
call PWLPrice1.GetPWLFullTimePrice(location, beginlevel, endlevel, currency_code, time2, Price, Price2)
else
call PWLPrice1.GetPWLPartTimePrice(location, beginlevel, endlevel, currency_code, time2, Price, Price2)
end if
set PWLPrice1=nothing
end if

DLL代码

'location 服务器类别
'beginlevel 代练开始级别
'englevel 代练完成级别
'currency_code 货币类型
'time2 代练时间
'ptrPrice1 市场价格
'ptrPrice2 折扣价格

Public Sub GetPWLFullTimePrice(location, beginlevel, endlevel, ByRef currency_code, ByRef time2, ByRef Price, ByRef Price2)
Dim btime As Single
Dim etime As Single

Dim t1 As Single
Dim t2 As Single
Dim t3 As Single
Dim t4 As Single
Dim t5 As Single
Dim t6 As Single
Dim t7 As Single
Dim t8 As Single
Dim t9 As Single
Dim t10 As Single
Dim t11 As Single
Dim t12 As Single
Dim t13 As Single
Dim t14 As Single
Dim t15 As Single
Dim t16 As Single
Dim t17 As Single
Dim t18 As Single
Dim t19 As Single


btime = 1
etime = 2
time1 = 0

t1 = 1
t2 = t1 + 3 * 1
t3 = t2 + 3 * 2
t4 = t3 + 3 * 2.5
t5 = t4 + 3 * 3
t6 = t5 + 3 * 4

t7 = t6 + 3 * 4.5
t8 = t7 + 3 * 5
t9 = t8 + 3 * 5.5
t10 = t9 + 3 * 6.5
t11 = t10 + 3 * 7.5

t12 = t11 + 3 * 8
t13 = t12 + 3 * 8.5
t14 = t13 + 3 * 9
t15 = t14 + 3 * 9.5

t16 = t15 + 3 * 10
t17 = t16 + 3 * 10.5
t18 = t17 + 3 * 11
t19 = t18 + 3 * 12

If beginlevel < 6 Then
btime = 0
Else
Select Case Int((beginlevel - 1) / 3)
Case 2: btime = t1 + (beginlevel - 6) * 1 ' L7-9
Case 3: btime = t2 + (beginlevel - 9) * 2 ' L10-12
Case 4: btime = t3 + (beginlevel - 12) * 2.5 ' L13-15
Case 5: btime = t4 + (beginlevel - 15) * 3 ' L16-18
Case 6: btime = t5 + (beginlevel - 18) * 4 ' L19-21
Case 7: btime = t6 + (beginlevel - 21) * 4.5 ' L22-24
Case 8: btime = t7 + (beginlevel - 24) * 5 ' L25-27
Case 9: btime = t8 + (beginlevel - 27) * 5.5 ' L28-30
Case 10: btime = t9 + (beginlevel - 30) * 6.5 ' L31-33
Case 11: btime = t10 + (beginlevel - 33) * 7.5 ' L34-36
Case 12: btime = t11 + (beginlevel - 36) * 8 ' L37-39
Case 13: btime = t12 + (beginlevel - 39) * 8.5 ' L40-42
Case 14: btime = t13 + (beginlevel - 42) * 9 ' L43-45
Case 15: btime = t14 + (beginlevel - 45) * 9.5 ' L46-48
Case 16: btime = t15 + (beginlevel - 48) * 10 ' L49-51
Case 17: btime = t16 + (beginlevel - 51) * 10.5 ' L52-54
Case 18: btime = t17 + (beginlevel - 54) * 11 ' L55-57
Case 19: btime = t18 + (beginlevel - 57) * 12 ' L58-60

End Select
End If

If endlevel <= 6 Then
etime = 1
Else
Select Case Int((endlevel - 1) / 3)
Case 2: etime = t1 + (endlevel - 6) * 1 'L7-9
Case 3: etime = t2 + (endlevel - 9) * 2 'L10-12
Case 4: etime = t3 + (endlevel - 12) * 2.5 'L13-15
Case 5: etime = t4 + (endlevel - 15) * 3 'L16-18
Case 6: etime = t5 + (endlevel - 18) * 4 'L19-21

Case 7: etime = t6 + (endlevel - 21) * 4.5 'L22-24
Case 8: etime = t7 + (endlevel - 24) * 5 'L25-27
Case 9: etime = t8 + (endlevel - 27) * 5.5 'L28-30
Case 10: etime = t9 + (endlevel - 30) * 6.5 'L31-33
Case 11: etime = t10 + (endlevel - 33) * 7.5 'L34-36
Case 12: etime = t11 + (endlevel - 36) * 8 'L37-39

Case 13: etime = t12 + (endlevel - 39) * 8.5 'L40-42
Case 14: etime = t13 + (endlevel - 42) * 9 'L43-45
Case 15: etime = t14 + (endlevel - 45) * 9.5 'L46-48
Case 16: etime = t15 + (endlevel - 48) * 10 'L49-51
Case 17: etime = t16 + (endlevel - 51) * 10.5 'L52-54
Case 18: etime = t17 + (endlevel - 54) * 11 'L55-57
Case 19: etime = t18 + (endlevel - 57) * 12 'L58-60
End Select
End If

time1 = Round(etime - btime + 0.4999)
time2 = time1
If location = 1 Then
currency_code = "USD"
If time1 < 36 Then
Price2 = Round(time1 * 0.792 * 1.2 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.792 * 1.2 + 0.4999)
Else
Price2 = Round(time1 * 0.792 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.792 + 0.4999)
End If
Else
currency_code = "EUR"
If time1 < 36 Then
Price2 = Round(time1 * 0.792 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.792 + 0.4999)
Else
Price2 = Round(time1 * 0.66 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.66 + 0.4999)
End If
End If


End Sub
'location 服务器类别
'beginlevel 代练开始级别
'englevel 代练完成级别
'currency_code 货币类型
'time2 代练时间
'ptrPrice1 市场价格
'ptrPrice2 折扣价格
Public Sub GetPWLPartTimePrice(location, beginlevel, endlevel, ByRef currency_code, ByRef time2, ByRef Price, ByRef Price2)
Dim btime As Single
Dim etime As Single

Dim t1 As Single
Dim t2 As Single
Dim t3 As Single
Dim t4 As Single
Dim t5 As Single
Dim t6 As Single
Dim t7 As Single
Dim t8 As Single
Dim t9 As Single
Dim t10 As Single
Dim t11 As Single
Dim t12 As Single
Dim t13 As Single
Dim t14 As Single
Dim t15 As Single
Dim t16 As Single
Dim t17 As Single
Dim t18 As Single
Dim t19 As Single


btime = 1
etime = 2
time1 = 0
t1 = 1
t2 = t1 + 3 * 1
t3 = t2 + 3 * 2
t4 = t3 + 3 * 2.5
t5 = t4 + 3 * 3
t6 = t5 + 3 * 4

t7 = t6 + 3 * 4.5
t8 = t7 + 3 * 5
t9 = t8 + 3 * 5.5
t10 = t9 + 3 * 6.5
t11 = t10 + 3 * 7.5

t12 = t11 + 3 * 8
t13 = t12 + 3 * 8.5
t14 = t13 + 3 * 9
t15 = t14 + 3 * 9.5

t16 = t15 + 3 * 10
t17 = t16 + 3 * 10.5
t18 = t17 + 3 * 11
t19 = t18 + 3 * 12

If beginlevel < 6 Then
btime = 0
Else
Select Case Int((beginlevel - 1) / 3)
Case 2: btime = t1 + (beginlevel - 6) * 1 ' L7-9
Case 3: btime = t2 + (beginlevel - 9) * 2 ' L10-12
Case 4: btime = t3 + (beginlevel - 12) * 2.5 ' L13-15
Case 5: btime = t4 + (beginlevel - 15) * 3 ' L16-18
Case 6: btime = t5 + (beginlevel - 18) * 4 ' L19-21
Case 7: btime = t6 + (beginlevel - 21) * 4.5 ' L22-24
Case 8: btime = t7 + (beginlevel - 24) * 5 ' L25-27
Case 9: btime = t8 + (beginlevel - 27) * 5.5 ' L28-30
Case 10: btime = t9 + (beginlevel - 30) * 6.5 ' L31-33
Case 11: btime = t10 + (beginlevel - 33) * 7.5 ' L34-36
Case 12: btime = t11 + (beginlevel - 36) * 8 ' L37-39
Case 13: btime = t12 + (beginlevel - 39) * 8.5 ' L40-42
Case 14: btime = t13 + (beginlevel - 42) * 9 ' L43-45
Case 15: btime = t14 + (beginlevel - 45) * 9.5 ' L46-48
Case 16: btime = t15 + (beginlevel - 48) * 10 ' L49-51
Case 17: btime = t16 + (beginlevel - 51) * 10.5 ' L52-54
Case 18: btime = t17 + (beginlevel - 54) * 11 ' L55-57
Case 19: btime = t18 + (beginlevel - 57) * 12 ' L58-60

End Select
End If

If endlevel <= 6 Then
etime = 1
Else
Select Case Int((endlevel - 1) / 3)
Case 2: etime = t1 + (endlevel - 6) * 1 'L7-9
Case 3: etime = t2 + (endlevel - 9) * 2 'L10-12
Case 4: etime = t3 + (endlevel - 12) * 2.5 'L13-15
Case 5: etime = t4 + (endlevel - 15) * 3 'L16-18
Case 6: etime = t5 + (endlevel - 18) * 4 'L19-21

Case 7: etime = t6 + (endlevel - 21) * 4.5 'L22-24
Case 8: etime = t7 + (endlevel - 24) * 5 'L25-27
Case 9: etime = t8 + (endlevel - 27) * 5.5 'L28-30
Case 10: etime = t9 + (endlevel - 30) * 6.5 'L31-33
Case 11: etime = t10 + (endlevel - 33) * 7.5 'L34-36
Case 12: etime = t11 + (endlevel - 36) * 8 'L37-39

Case 13: etime = t12 + (endlevel - 39) * 8.5 'L40-42
Case 14: etime = t13 + (endlevel - 42) * 9 'L43-45
Case 15: etime = t14 + (endlevel - 45) * 9.5 'L46-48
Case 16: etime = t15 + (endlevel - 48) * 10 'L49-51
Case 17: etime = t16 + (endlevel - 51) * 10.5 'L52-54
Case 18: etime = t17 + (endlevel - 54) * 11 'L55-57
Case 19: etime = t18 + (endlevel - 57) * 12 'L58-60
End Select
End If

time1 = Round(etime - btime + 0.499)
time2 = time1

If location = 1 Then

If time1 < 36 Then
Price2 = Round(time1 * 0.84 * 1.2 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.84 * 1.2 + 0.4999)
Else
Price2 = Round(time1 * 0.84 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.84 + 0.4999)
End If
currency_code = "USD"
Else

If time1 < 36 Then
Price2 = Round(time1 * 0.84 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.84 + 0.4999)
Else
Price2 = Round(time1 * 0.7 * 10 / 8 + 0.49999)
Price = Round(time1 * 0.7 + 0.4999)
End If
currency_code = "EUR"
End If
End Sub

开发过程。编写DLL文件。注册DLL文件,ASP调用DLL对象。

Regsrv32.exe d:/dll/PowerLevel.dll

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值