Re: Можно ли это сделать на Javascript?
От: white_znake  
Дата: 09.07.19 15:24
Оценка:
Здравствуйте, .alex, Вы писали:

A>Добрый день. Подскажите пожалуйста как реализовать такую задачу.

A>1. Дано: офисный комп с windows 10 + ms office + chrome + ms sql server 2016 (прямо на нем или по сети). Больше ничего ставить на него ни на какие другие компы нельзя
A>Надо сделать программу с доступом к БД(mssql server) с интерфейсом (таблички, кнопки, радио батоны, чекбоксы и пр...) и чтобы была возможность сохранять результаты запросов в excel и работа с локальными файлами, чтобы можно было читать/писать файл настроек программы
A>Так собственно вопрос на чем это можно написать, понятно что на vba (access или excel), но такая реализация есть и она не очень удобна...
A>Можно ли написать подобный функционал например на локальном Java script и делать все вышеперечисленное просто в браузере? Если да, дайте пожалуйста ссылки где можно почитать примерно, как это сделать?

Можно обойтись одним JS и HTML.
JavaScript работает с MS Office через ActiveX. Для доступа к бд, попробуй старый добрый ADO, он доступен и через ActiveX тоже.
Ни каких проблем быть не должно
Re[6]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 10.07.19 09:29
Оценка:
bnk>А вообще, что за дебильное требование — "EXE нельзя"?
bnk>Может быть что ты ошибаешься, и "EXE нельзя" под администратором, а под юзером можно?
Какое есть, типа режимное предприятия... Нельзя никак...

bnk>Разницы же никакой, что ты из VBA будет что-то делать, что EXE запустишь — возможности одинаковые.

ну не совсем)... тяжело из vbs/vba, например внедрить свой код в адресное пространство другого процесса и делать там некое...

bnk>И непонятно чем конкретно офис и VBA не устраивает?

Решение на офисе есть, хотелось узнать про возможные другие... и сравнить...
Re[2]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 10.07.19 09:32
Оценка:
Здравствуйте, white_znake, Вы писали:

_>Можно обойтись одним JS и HTML.

_>JavaScript работает с MS Office через ActiveX. Для доступа к бд, попробуй старый добрый ADO, он доступен и через ActiveX тоже.
_>Ни каких проблем быть не должно
А с файлами локальными можно через JS работать? Ну или может есть какой-нибудь другой способ хранить настройки?...
И можно ли на "локальном" JS сделать вменяемый интерфейс с кнопочками и табличками?...
Отредактировано 10.07.2019 9:34 .alex . Предыдущая версия .
Re: Можно ли это сделать на Javascript?
От: TimurSPB Интернет  
Дата: 10.07.19 09:37
Оценка:
Здравствуйте, .alex, Вы писали:

A>Добрый день. Подскажите пожалуйста как реализовать такую задачу.

A>1. Дано: офисный комп с windows 10 + ms office + chrome + ms sql server 2016 (прямо на нем или по сети). Больше ничего ставить на него ни на какие другие компы нельзя
https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/12/18/building-sql-rest-api-back-end-for-angular-apps/
Это если бэкенд дописать можно на стороне "сервера"
Make flame.politics Great Again!
Re[7]: Можно ли это сделать на Javascript?
От: Mystic Artifact  
Дата: 10.07.19 09:43
Оценка:
Здравствуйте, .alex, Вы писали:

bnk>>А вообще, что за дебильное требование — "EXE нельзя"?

bnk>>Может быть что ты ошибаешься, и "EXE нельзя" под администратором, а под юзером можно?
A>Какое есть, типа режимное предприятия... Нельзя никак...
Строго говоря — административные задачи решаются административными инструментами, от каких-то инфраструктурных скриптов, до написанием всяческих записок, или даже заявлений, ну или просто обсуждением проблемы. Попытки их решить техническими способами ни к чему хорошему не приведет, ни в ближайшей перспективе, ни в дальнейшей (особенно, когда вскроется, что вы сознательно обошли/нарушили систему ИБ каковой бы она ни была.)

bnk>>Разницы же никакой, что ты из VBA будет что-то делать, что EXE запустишь — возможности одинаковые.

A>ну не совсем)... тяжело из vbs/vba, например внедрить свой код в адресное пространство другого процесса и делать там некое...
Это дичь какая-то. 100% прикладных учетных задач в этом даже близко не нуждаются.

bnk>>И непонятно чем конкретно офис и VBA не устраивает?

A>Решение на офисе есть, хотелось узнать про возможные другие... и сравнить...
Если вы делаете это на своем энтузиазме, тогда, это можно сделать дома без извращений и прикинуть как оно могло бы быть и набраться опыта. Если перед вами поставлена задача, создать внутреннее ПО, то "низя в exe" это не конструктивно. И тут мы возвращаемся к административному решению проблемы.

PS: Варианты всякие с ActiveX это банальное прибивание гвоздями к IE, что в 2019 году выглядит весьма специфически. Да и "если низя в exe", "то и в dll" низя... Всякие динамические компиляции повершелом и прочей ересью в итоге где-нибудь все равно упрется в необходимость тех же самых прав.
Re[2]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 10.07.19 09:46
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>Здравствуйте, .alex, Вы писали:


A>>Добрый день. Подскажите пожалуйста как реализовать такую задачу.

A>>1. Дано: офисный комп с windows 10 + ms office + chrome + ms sql server 2016 (прямо на нем или по сети). Больше ничего ставить на него ни на какие другие компы нельзя
TSP>https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/12/18/building-sql-rest-api-back-end-for-angular-apps/
TSP>Это если бэкенд дописать можно на стороне "сервера"
на стороне сервера тоже бинарников никаких "новых" нельзя...
Re[3]: Можно ли это сделать на Javascript?
От: TimurSPB Интернет  
Дата: 10.07.19 09:51
Оценка:
A>на стороне сервера тоже бинарников никаких "новых" нельзя...
Тогда не получится. Нужен бэкенд, который бы обеспечивал работу RestAPI.
Можно добраться до данных на костылях ActiveX, но путь сомнительный.
https://stackoverflow.com/questions/857670/how-to-connect-to-sql-server-database-from-javascript-in-the-browser

UPD
Вот ещё наткнулся на вариант:
ТЫЦ
Make flame.politics Great Again!
Отредактировано 10.07.2019 9:54 TimurSPB . Предыдущая версия . Еще …
Отредактировано 10.07.2019 9:53 TimurSPB . Предыдущая версия .
Re[8]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 10.07.19 09:56
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA>Здравствуйте, .alex, Вы писали:


bnk>>>А вообще, что за дебильное требование — "EXE нельзя"?

bnk>>>Может быть что ты ошибаешься, и "EXE нельзя" под администратором, а под юзером можно?
A>>Какое есть, типа режимное предприятия... Нельзя никак...
MA> Строго говоря — административные задачи решаются административными инструментами, от каких-то инфраструктурных скриптов, до написанием всяческих записок, или даже заявлений, ну или просто обсуждением проблемы. Попытки их решить техническими способами ни к чему хорошему не приведет, ни в ближайшей перспективе, ни в дальнейшей (особенно, когда вскроется, что вы сознательно обошли/нарушили систему ИБ каковой бы она ни была.)

bnk>>>Разницы же никакой, что ты из VBA будет что-то делать, что EXE запустишь — возможности одинаковые.

A>>ну не совсем)... тяжело из vbs/vba, например внедрить свой код в адресное пространство другого процесса и делать там некое...
MA> Это дичь какая-то. 100% прикладных учетных задач в этом даже близко не нуждаются.

bnk>>>И непонятно чем конкретно офис и VBA не устраивает?

A>>Решение на офисе есть, хотелось узнать про возможные другие... и сравнить...
MA> Если вы делаете это на своем энтузиазме, тогда, это можно сделать дома без извращений и прикинуть как оно могло бы быть и набраться опыта. Если перед вами поставлена задача, создать внутреннее ПО, то "низя в exe" это не конструктивно. И тут мы возвращаемся к административному решению проблемы.

MA> PS: Варианты всякие с ActiveX это банальное прибивание гвоздями к IE, что в 2019 году выглядит весьма специфически. Да и "если низя в exe", "то и в dll" низя... Всякие динамические компиляции повершелом и прочей ересью в итоге где-нибудь все равно упрется в необходимость тех же самых прав.


Спасибо за полезный ответ))
Re[3]: Можно ли это сделать на Javascript?
От: white_znake  
Дата: 10.07.19 10:34
Оценка:
Здравствуйте, .alex, Вы писали:


A>А с файлами локальными можно через JS работать? Ну или может есть какой-нибудь другой способ хранить настройки?...

Можно. File System Object называется ActiveX. https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/filesystemobject-object
Но Через JS так же будет.

A>И можно ли на "локальном" JS сделать вменяемый интерфейс с кнопочками и табличками?...

Ты шутишь? Можно, не хуже чем интерфейс для Windows (правда тут набегут апологеты WPF меня чморить). HTML5 + CSS3 + Bootstrap тебе в помощь ;)
Re[7]: Можно ли это сделать на Javascript?
От: bnk СССР http://unmanagedvisio.com/
Дата: 10.07.19 10:41
Оценка: 8 (1)
Здравствуйте, .alex, Вы писали:

bnk>>Разницы же никакой, что ты из VBA будет что-то делать, что EXE запустишь — возможности одинаковые.

A>ну не совсем)... тяжело из vbs/vba, например внедрить свой код в адресное пространство другого процесса и делать там некое...

Офис VBA имеет буквально те же права что и exe запущенный из-под пользователя (полный доступ к WINAPI в частности)
В том числе, он может делать внедрение своего кода в адресное пространство другого процесса.
Запрет EXE — это безопасность на уровне защиты сердобольных домохозяек от злых вирусов.
Если ваш IT отдел не в курсе, то мне его жаль

bnk>>И непонятно чем конкретно офис и VBA не устраивает?

A>Решение на офисе есть, хотелось узнать про возможные другие... и сравнить...

На ActiveX в браузере я бы особо не рассчитывал, его Microsoft скоро окончательно грохнет, я думаю.
В Edge уже нет, в Edge который на Chromium и подавно не будет.

Вообще для ограничения прав и C# в песочнице раньше можно было использовать Silverlight например.
Теперь можно подумать в сторону WebAssembly (см. Blazor) — "передний край" прямо
Отредактировано 10.07.2019 21:41 bnk . Предыдущая версия . Еще …
Отредактировано 10.07.2019 10:46 bnk . Предыдущая версия .
Отредактировано 10.07.2019 10:43 bnk . Предыдущая версия .
Re: Можно ли это сделать на Javascript?
От: L.K. Марс  
Дата: 10.07.19 11:14
Оценка:
A>Больше ничего ставить на него ни на какие другие компы нельзя

Даже Nginx и PHP? И пишешь веб-интерфейс к MSSQL.
Re[9]: Можно ли это сделать на Javascript?
От: Mystic Artifact  
Дата: 10.07.19 21:27
Оценка:
Здравствуйте, .alex, Вы писали:

A>Спасибо за полезный ответ))

Я конечно, иронию понял, но оверквотить не нужно. А еще, просто весь топик вырос не сколько из темы можно ли и как, а исходя из невнятных ограничений.
Поэтому, позвольте вас немножко перефразировать:

Какой есть, типа аксиома жизни... по другому никак...

Re[2]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 11.07.19 10:20
Оценка:
LK>Даже Nginx и PHP? И пишешь веб-интерфейс к MSSQL.
Ну они же содержат бинарники, значит не получится...
Re[10]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 11.07.19 10:21
Оценка:
MA> Какой есть, типа аксиома жизни... по другому никак...
Совершенно верно. Ограничение никуда не деть...
Re[11]: Можно ли это сделать на Javascript?
От: takTak  
Дата: 11.07.19 10:49
Оценка:
MA>> Какой есть, типа аксиома жизни... по другому никак...
A>Совершенно верно. Ограничение никуда не деть...

так открой для себя и клиентов SQL Azure и Office Web Apps — Office 365: и то и другое должно иметь вебинтерфейс, ну или забей на это и наваяй на VBA
Re: Можно ли это сделать на Javascript?
От: paradoks  
Дата: 11.07.19 12:44
Оценка:
Здравствуйте, .alex, Вы писали:

A>Добрый день. Подскажите пожалуйста как реализовать такую задачу.

A>1. Дано: офисный комп с windows 10 + ms office + chrome + ms sql server 2016

Чем не устраивает VBA — к sql конектится, запросы шлет, конструктор форм есть
или можно контролы руками програмить. Все из коробки.
Просто парень видимо никогда не програмил на бэйсике и не понимает на сколько он сейчас могучий.
Re[3]: Можно ли это сделать на Javascript?
От: L.K. Марс  
Дата: 11.07.19 14:00
Оценка: :)
LK>>Даже Nginx и PHP? И пишешь веб-интерфейс к MSSQL.
A>Ну они же содержат бинарники, значит не получится...

А собрать из исходников — не годится?
Re: Можно ли это сделать на Javascript?
От: LuciferSaratov Россия  
Дата: 11.07.19 16:03
Оценка: 8 (1)
A>Можно ли написать подобный функционал например на локальном Java script и делать все вышеперечисленное просто в браузере? Если да, дайте пожалуйста ссылки где можно почитать примерно, как это сделать?

вот например для GUI: https://stackoverflow.com/questions/47100085/creating-multi-select-list-box-in-vbscript/47111556#47111556
и еще вот тоже для GUI: https://www.codeproject.com/Articles/33660/GUI-in-JScript-and-VBScript-using-Windows-Common-C
и для подключения к базе вот: https://stackoverflow.com/questions/1125474/vbscript-to-connect-to-sql-server-2005-and-update-a-table
Re[2]: Можно ли это сделать на Javascript?
От: .alex Ниоткуда  
Дата: 12.07.19 10:47
Оценка:
LS>вот например для GUI: https://stackoverflow.com/questions/47100085/creating-multi-select-list-box-in-vbscript/47111556#47111556
А вот это круто! Я даже не догадывался, что на vbs можно gui делать, похоже это то что надо! Спасибо!
Re[3]: Можно ли это сделать на Javascript?
От: kov_serg Россия  
Дата: 12.07.19 11:00
Оценка:
Здравствуйте, .alex, Вы писали:

LS>>вот например для GUI: https://stackoverflow.com/questions/47100085/creating-multi-select-list-box-in-vbscript/47111556#47111556

A>А вот это круто! Я даже не догадывался, что на vbs можно gui делать, похоже это то что надо! Спасибо!
Для полноты картины попробуйте http://vbsedit.com/ для vbs+hta самое то редактор.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.