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