RUS  ENG 

Евгений Шадрин (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Получение координат клика на VBS
 
Добрый день!
Вы могли бы сделать иначе.
1. Выбираем инструмент линейка.
2. Ставим точку на карте.
3. Нажимаем на кнопку макроса.
4. Выводится сообщение с координатами точки (лучше выводить в окно сообщений зулу а не в msgBOX)
Добавление записи в БД
 
Спасибо
Добавление записи в БД
 
Добрый день! У меня реализована связь двух таблиц (множество к одному).  Хочу обратиться в  родительскую таблицу и добавить новую запись не  обращаясь к геометрии. Как я понял из вашего ответа, при помощи  встроенного SQL запроса реализовать добавление строки в таблицу базы данных слоя  нельзя. Можно ли через макрос VBS как-то иначе добавить новую строку в  таблицу?
Экспорт ответа SQL запроса в LibreOffice Calc(.ods)
 
Вот еще полезный ресурс где Вы можете посмотреть различные методы работы с LibreOffice Calc для написания макросов на VBScript -  [URL=https://help.72to.ru/attachments/download/129/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%BE%D0%B2.pdf]https://help.72to.ru/attachments/download/129/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2...[/URL]
Получить координаты точек
 
Добрый день.

При помощи инструмента "линейка" расставил на карте три точки. Как программно получить координаты этих точек (я вижу их в окне "Свойства", но как их оттуда вытащить в макрос VBs)?
Вопрос по SQL запросу через VBscript, Как в SQL запросе после WHERE подставить переменную заданную в начале скрипта при помощи InputBOX?
 
[QUOTE] написал:
[URL=/forums/?PAGE_NAME=profile_view&UID=1425]Reidenschi[/URL], не работает т. к. значение даты в тексте запроса должно быть заключено в кавычки, у Вас в первом сообщении так и сделано. Без кавычек только числовые константы или имена (переменных и т.п.), заданные латиницей, без спецсимволов, пробелов и т.п.[/QUOTE]
Спасибо.
Вопрос по SQL запросу через VBscript, Как в SQL запросе после WHERE подставить переменную заданную в начале скрипта при помощи InputBOX?
 
Спасибо! Всё заработало как надо! Только я не понял, почему когда задается переменная d в виде 07.12.2023 то без апострофов с каждой стороны скрипт не работает. Пришлось еще добавить переменную m=" ' ".

Выложу здесь рабочий скрипт.

Суть скрипта: "Вывести в окно "сообщение" количество шт. нарисованных на карте объектов каждым исполнителем начиная с даты, заданной при помощи окна ввода строки, а также вывести общее количество выполненных объектов".
[CODE]Sub otchetAll
   Set Ls = Zulu.ActiveMapDoc.Layers.Active
   If Ls.UserName <> "GAS_СЕТИ" Then
       MsgBox "Активируйте слой GAS_СЕТИ и повторите попытку"
       Exit Sub
       End If
Dim d,m,dd  
   d=InputBox("Введите дату в указаном формате: ДД.ММ.ГГГГ")
   If d="" Then
       MsgBox "Поле ""дата"" не заполнено"
       Exit Sub
       End if
   If IsDate(d)  = True then
       Else
      MsgBox "ОШИБКА: Дата введена не корректно!"
       Exit Sub
       End If    
   m="'"
   dd=Date        
       Set Lss = Application.ActiveDocument.NativeDoc.Layers.Active
       text_sql = "SEL ECT [Объект добавил], COUNT(DISTINCT [Номер газопровода]) FR OM [GAS_СЕТИ] WHERE [Дата внесения объекта]>= " + CStr(m) + CStr(d)+ CStr(m) + " And typeid=2 GROUP BY [Объект добавил]"
       otv_sql = "SEL ECT COUNT(DISTINCT [Номер газопровода]) FR OM [GAS_СЕТИ] WHERE [Дата внесения объекта]>= " + CStr(m) + CStr(d)+ CStr(m) + " And typeid=2"
Set Result1 = Lss.ExecSQL(text_sql)
Set Result2 = Lss.ExecSQL(otv_sql)
Set Out = OpenOutputChannel ("Сообщения")
Out.Clear
OUT.Put "{\B}Количество выполненных объектов в период с " + CStr(d)+ " г." + " по " + CStr(dd) + " г." + CHR(10)
OUT.Put "Исполнитель" + "     " + "Кол-во объектов" + CHR(10) + CHR(10)
Set t = Result1.DataSet
t.MoveFirst
Do
   If t.Eof = True Then Exit Do
       OUT.Put t.FieldValue(0) + Space(20-Len(t.FieldValue(0))) + t.FieldValue(1) +CHR(10)
       t.MoveNext
       Loop
Set tt = Result2.DataSet
OUT.Put CHR(10) + "{\B}Общее кол-во, шт.:" + "  " + tt.FieldValue(0) +CHR(10)
MsgBOX "Выполнено"
End Sub

[/CODE]
Изменено: Reidenschi - 22.12.2023 12:38:00
Вопрос по SQL запросу через VBscript, Как в SQL запросе после WHERE подставить переменную заданную в начале скрипта при помощи InputBOX?
 
Sub otchetAll
Dim d    
   [COLOR=#0000ff][FONT=Arial Black, Gadget]d[/FONT][/COLOR]=InputBox("Введите дату")
   Set Lss = Application.ActiveDocument.NativeDoc.Layers.Active

Set Result1 = Lss.ExecSQL("SEL ECT [Объект добавил], COUNT(DISTINCT [Номер газопровода]) FR OM [GAS_СЕТИ] WHERE [Дата внесения объекта]>=[COLOR=#0000ff][FONT=Arial Black, Gadget]'07.12.2023'[/FONT][/COLOR] And typeid=2 GROUP BY [Объект добавил]")

Подскажите пожалуйста, как заданную переменную [COLOR=#0000ff][FONT=Arial Black, Gadget]d[/FONT] [/COLOR]подставить вместо надписи [COLOR=#0000ff][FONT=Arial Black, Gadget]'07.12.2023'.[/FONT]
[/COLOR]
Экспорт ответа SQL запроса в LibreOffice Calc(.ods)
 
Решил задачу через макрос. Вывод запроса в LibreOffice Calc

Sub Libre
Set L1=Zulu.ActiveMapDoc.Layers.Active
Set Res12=L1.ExecSQL("SELECT DISTINCT[ty_FIO],[ty_Q],[eks_no] WHERE typeid=2 AND [ty_FIO] IS NOT NULL")    
   
Set oSM = CreateObject("com.sun.star.ServiceManager")
Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")

Dim arg()
Set wb = oDesk.loadComponentFromURL("private:factory/scalc","_blank", 0, arg)
Set oSheet = wb.CurrentController.ActiveSheet

oSheet.getCellByPosition(2, 2).String = "Заказчик"
oSheet.getCellByPosition(3, 2).String = "Расход"
oSheet.getCellByPosition(4, 2).String = "Архивный номер"

Set objRecordSet=Res12.DataSetrow=3
Do Until objRecordSet.EOF
For i = 1 To objRecordSet.FieldCount
'objWorksheet.Cells(row, i+1).Value = objRecordSet.FieldDisplayValue(i - 1)
oSheet.getCellByPosition(i+1,row).String=objRecordSet.FieldDisplayValue(i-1)
Next
row = row + 1
objRecordSet.MoveNext
Loop


msgBox "Выполнено"
end sub
Изменено: Reidenschi - 07.12.2023 10:48:13
Экспорт ответа SQL запроса в LibreOffice Calc(.ods)
 
[QUOTE] написал:
[QUOTE] написал:
Как экспортировать ответ SQL запроса в  LibreOffice Calc? Версия Zulu 10.0.0.8483u.[/QUOTE]
Если программно, то сейчас только в csv или dbf. Текст потом можно в офисе открыть[/QUOTE]
Спасибо. Открыть текстовой файл в офисе можно, но хотелось бы, чтобы конечный пользователь не морочил себе голову лишними действиями (пускай даже такими простыми). Из основного запроса можно экспортировать в .ods, будет ли это реализовано из SQL в будущем?
Экспорт ответа SQL запроса в LibreOffice Calc(.ods)
 
Как экспортировать ответ SQL запроса в  LibreOffice Calc? Версия Zulu 10.0.0.8483u.
[ Закрыто] Пожелания на версию 8
 
Требуется возможность поворота изображения на любой угол при выводе его на печать.
Страницы: 1