Нужна помощь в создании VBS скрипта
Формулировка задачи:
Здравствуйте господа !!!
Помогите пожалуйста с решением следующей задачи -
Есть код для вычисления даты выдачи заказа по количеству рабочих дней (см. под спойлером)
Что в нем не так ???
1.Нужно сделать чтобы количество рабочих дней (в данном случае 21) можно было менять в таблице Б/Д - qdfOrders поле "Time"
2.Расчет выходных дней надо сделать следующим образом :
а) Заполняем «tblHolidays» списком суббот, воскресений, известных праздников N-ного года.
б) Посему из алгоритма выкидываем проверку на субботы и воскресенья.
в) Выправление заполненного списка до реальности (перенос выходных дней с субботы и воскресенья на будние дни) оставляем на совести оператора.
Помогите пожалуйста с решением следующей задачи -
Есть код для вычисления даты выдачи заказа по количеству рабочих дней (см. под спойлером)
Что в нем не так ???
1.Нужно сделать чтобы количество рабочих дней (в данном случае 21) можно было менять в таблице Б/Д - qdfOrders поле "Time"
2.Расчет выходных дней надо сделать следующим образом :
а) Заполняем «tblHolidays» списком суббот, воскресений, известных праздников N-ного года.
б) Посему из алгоритма выкидываем проверку на субботы и воскресенья.
в) Выправление заполненного списка до реальности (перенос выходных дней с субботы и воскресенья на будние дни) оставляем на совести оператора.
Решение задачи: «Нужна помощь в создании VBS скрипта»
textual
Листинг программы
Option Explicit
Const adOpenStatic = 3
Const adLockOptimistic = 3
Dim strDatabase
Dim lngID
Dim objFSO
Dim objConnection
Dim objRecordset
Dim dtStartDate
Dim dtEndDate
Dim lngCount
Dim prevLocale
'### for debug
dim s, k
If WScript.Arguments.Count = 2 Then
strDatabase = Mid(WScript.Arguments(0), 2)
lngID = Mid(WScript.Arguments(1), 2)
Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDatabase) Then
prevLocale = SetLocale("en-us")
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& strDatabase &";"
With objRecordset
.Open "SELECT * FROM qdfOrders WHERE ID = " & lngID & "", objConnection, adOpenStatic, adLockOptimistic
dtStartDate = .Fields("OrderDate").Value
lngCount = .Fields("Time").Value
.Close
'rem дата должна бы быть в формате m/d/yyyy
wscript.echo "start date: "& dtStartDate & vbtab &"days to deadline: "& lngcount
' .Open _
' "SELECT * FROM tblHolidays"& _
' " WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
' " AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#", _
' objConnection, adOpenStatic, adLockOptimistic
s="SELECT * FROM tblHolidays"& _
" WHERE HolidayDate BETWEEN #"& dtStartDate &"#"& _
" AND #"& DateAdd("d", lngCount*2+1, dtStartDate) &"#"
'rem в сторке запроса даты также должны бы быть в формате m/d/yyyy
wscript.echo s
.open s, objConnection, adOpenStatic, adLockOptimistic
dtEndDate = DateAdd("d", lngCount, dtStartDate)
wscript.echo "deadline zero approximation: "& dtEndDate
.Filter = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
lngCount = .RecordCount
k=0
Do While lngCount>0
dtStartDate = DateAdd("d", 1, dtEndDate)
dtEndDate = DateAdd("d", lngCount, dtEndDate)
.Filter = "HolidayDate>=#"& dtStartDate &"# AND HolidayDate<=#"& dtEndDate &"#"
lngCount = .RecordCount
k=k+1
wscript.echo "loop "& k
Loop
.Close
End With
'objConnection.Execute "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID
s = "UPDATE qdfOrders SET DoneDate=#" & dtEndDate & "# WHERE ID=" & lngID
'rem дата должна бы быть в формате m/d/yyyy
wscript.echo s
objConnection.Execute s
objConnection.Close
Set objRecordset = Nothing
Set objConnection = Nothing
SetLocale(prevLocale)
Else
WScript.Echo "Database file [" & strDatabase & "] not found"
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage from toolbar on [Склад и торговля]:"
WScript.Echo "" & WScript.ScriptName & " /[CurrentDB] /[ID]"
End If
WScript.Quit 0