VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Вот скрин каталогов, которые создаются при запуске bat
Вложения

[Расширение jpg было запрещено, вложение больше недоступно.]

Аватара пользователя
ferget

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение ferget »

Цитата NecroTYN:



сделают за отдельные деньги
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Скорее всего это псевдо-триггер, который реализован не движком базы данных, а кодом программы - поэтому без разработчиков тут и шагу не сделать. Единственный выход - переводить базу на SQL Server и создавать свои триггеры.




Цитата NecroTYN:



скрин каталогов, которые создаются при запуске
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




параметры передаются как надо, а вот как вместо имен полей передать их значения - это вопрос уже к разработчикам и не факт что это возможно
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

amel27



Вот что мне ответили на соседнем форуме по поводу нашего кода:






Цитата:



2-е: 100% могу сказать что работает он с таким результатом:



+-

+-

+-

+-
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата NecroTYN:



по поводу нашего кода
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




повторюсь (в очередной раз) - проблема не в коде, а в его интеграции с конкретной программой



Синхронный запуск скрипта - это лишь половина проблемы. Вторая половина - получить эти самые (вновь введенные) данные: либо программа должна уметь их передавать в скрипт (через параметры), либо скрипт должен как-то (?) сам отбирать эти данные из таблиц (среди остальных)
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Цитата amel27:



повторюсь (в очередной раз) - проблема не в коде, а в его интеграции с конкретной программой
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




Вот что мне ответили разработчики:


Цитата:



Можно передать в файл-скрипт параметр - значение любого поля текущей записи (например, поля "ID" или поля "Полный путь к файл" или поля "Папка"). Откройте файл ScriptExample3.vbs в Блокноте и посмотрите конкретный пример. Чтобы указать поле, нужно написать его внутреннее имя в квадратных скобках.



Вот содержание ScriptExample3.vbs

Код:

Код: Выделить всё

данный код предназначен для демонстрационных целей
'вы можете писать на языке VBScript любые скрипты
'выполнение данного файла можно связать с нажатием пользовательской кнопки,
'которую можно добавить на панель инструментов любой таблицы в программе
'данный скрипт читает парамеры командной строки, с которой он был вызван
'например, если вызов был такой "C:\ScriptExample3.vbs /1 /2", то скрипт покажет "1" и "2"
Dim objArgs 'объекта для чтения параметров строки запуска файла
Dim sMsg 'текст сообщения
Dim i 'числовая переменная для цикла
Set objArgs = WScript.Arguments 'получение объекта для чтения параметров строки запуска файла
sMsg = "Всего параметров = " & objArgs.Count & vbCr
For i = 0 To objArgs.Count - 1
  sMsg = sMsg & "Параметр " & i + 1 & " = " & objArgs(i) & vbCr
Next
MsgBox sMsg, vbInformation, "Сообщение" 'показываем собщение
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата NecroTYN:



содержание ScriptExample3.vbs
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




тот же TEST.VBS только для нескольких параметров




Цитата NecroTYN:



Чтобы указать поле, нужно написать его внутреннее имя в квадратных скобках.
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




ну дык проверили бы уже - вызвать из программы этот или TEST.VBS в триггере

скажем, что вернет (имя поля или значение) для таблицы qdfOrders и поля Address:



Код:

Код: Выделить всё

TEST.VBS [Address]
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Вот еще советы с приветливого форума:


Цитата:



Но вот вам направление: написать скрипт который только определяет количество переданных параметров и сохраняет их в текстовый файл и «задать триггер на добавление на таблицу "Заказы", но в качестве команды указать не SQL-инструкцию, а запуск данного файла.» (это уже в програме/БД) А далее тупо смотреть (анализировать ), что в скрипт передаётся




Цитата:



Я думаю, кое-какие операции следует с этой переменной проделывать после создания каждой новой папки.
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

NecroTYN, пример VBS на дабавление/изменение таблицы заказов:

Код:

Код: Выделить всё

C:\TEST\Script.vbs /[ID]


читать дальше »




Код:

Код: Выделить всё

Dim sDbPath 'путь к файлу БД
sDbPath = CreateObject("Wscript.Shell").SpecialFolders("MyDocuments") & "\Учет клиентов\DemoDatabase.mdb"
Dim Con 'объект Connection
Set Con = CreateObject("ADODB.Connection") 'создание объекта Connection
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDbPath & ";Persist Security Info=False" 'открываем соединение с базой данных
Dim sSql 'SQL инструкция
sSql = "SELECT o.Address,m.Client,op.Product FROM tblOrdersProducts op,tblOrders o,tblMain m WHERE m.ID=o.ClientID AND o.ID=op.OrderID AND op.ID="& Mid(WScript.Arguments(0),2)
Set oRec = Con.Execute(sSql)  'выполняем SQL инструкцию
Dim FSO 'объект FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim strPath 'путь к папке
strPath="C:\Documents"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath & "\Заказы"
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(0).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(1).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
strPath=strPath &"\"& Replace(oRec.Fields(2).Value,"""","")
If Not FSO.FolderExists(strPath) Then FSO.CreateFolder(strPath)
Con.Close 'закрываем Connection
Set Con = Nothing 'очищаем переменную







P.S. критерий разделения услуг/товара в топике не раскрыт
Аватара пользователя
NecroTYN

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение NecroTYN »

Вот еще советы с приветливого форума:


Цитата:



Но вот вам направление: написать скрипт который только определяет количество переданных параметров и сохраняет их в текстовый файл и «задать триггер на добавление на таблицу "Заказы", но в качестве команды указать не SQL-инструкцию, а запуск данного файла.» (это уже в програме/БД) А далее тупо смотреть (анализировать ), что в скрипт передаётся




Цитата:



Я думаю, кое-какие операции следует с этой переменной проделывать после создания каждой новой папки.
Аватара пользователя
amel27

Re: VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS

Сообщение amel27 »

Цитата NecroTYN:



пишет вот как
VBS/WSH/JS - [решено] Автоматическое создание папок из полей таблицы c помощью VBS




ну сами хоть чуть подумайте - смысл ошибки тот же, номер строки в ошибке указан, примеры для экспериментов были выше - очевидно скрипт запускается без параметров



скрипт строит структуру каталогов по переданному ID из заказанного
Ответить

Вернуться в «Скриптовые языки администрирования Windows»