Нужна помощь в создании 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д