RUS  ENG 

Take-oFF (Все сообщения пользователя)

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

Страницы: 1
VBScript дата файла, дата изменения слоя
 
Подскажите, пожалуйста, как заполучить дату модификации слоя, опубликованного на сервере. Нашел метод GetLastChangesTime , но кажется, это чего-то другое и непонятно, как работает. Для локальных слоев вроде понятно - можно через FIleSystemObject добраться до атрибутов файла.
А на опубликованном слое откуда дату забрать?
Протяженность сети в трубном исчислении, SQL-запрос
 
Я тут, короче, на досуге сделал запрос, вдруг кому пригодится. Там у нас при расчете протяженности сетей есть такая проблема, что для участков с двойной проводимостью длину участка следует умножать на два, а участки с отключенной подающей или обратной линией надо считать без умножения. Желательно делать это прям в запросе, причем так, чтоб расчет был независимо от количества созданных в слое пользовательских режимов участков. Условием является то, что при добавлении новой категории участков, в структуре слоя создается четыре режима участка: 1 - включен, 2 - отключен, 3 - отключен обратный, 4 - отключен подающий. Таким образом, длина участков с номером режимов modeid = 1,2,5,6,9,10, ... умножается на 2, а длина участков с modeid=3,4,7,8,11,12,... не изменяется. И вот пример, с группировкой по диаметрам и выводом расчетной протяженности по карте (для сравнения данных в БД с данными геометрии):

SEL ECT
[Внутpенний диаметp подающего тpубопpовода, м],

Sum(iif(Round((modeid/4-Floor(modeid/4))*4,0) > 0 and Round((modeid/4-Floor(modeid/4))*4,0) < 3, [Длина участка, м]*2, [Длина участка, м]))
as "Протяженность по БД",

Round(Sum(iif(Round((modeid/4-Floor(modeid/4))*4,0) > 0 and Round((modeid/4-Floor(modeid/4))*4,0) < 3, geometry.length()*2, geometry.length())),4)
as "Протяженность по карте Zulu"

FR OM [Название слоя]

GROUP BY [Внутpенний диаметp подающего тpубопpовода, м]

Внимание вопрос. Можно ли как-нибудь упростить выражения в запросе (например, введя переменную)? А то я чего-то в SQL не силён.

P.S. я с детства ужасно боюсь вещественных чисел с плавающей запятой, поэтому в выражениях на всякий случай стоят лишние операторы Round с округлением до целого числа.
Изменено: Take-oFF - 25.01.2022 09:53:34
Возможные ошибки расчетов, После запуска расчета система может выдать ряд ошибок, возможные ошибки рассмотрим в этой теме.
 
Добрый день! Имеется слой тепловой сети, в составе которого имеется источник с неограниченной подпиткой, ЦТП (номер схемы 25) и ряд потребителей. Схемы подключения потребителей после ЦТП - 4 и 26 (ГВС). Для ЦТП указан погодный регулятор. Если задать на источнике текущую температуру воды в подающем трубопроводе 73-74 градуса, то при выполнении поверочного расчета выводятся сообщения о том, что температура внутреннего воздуха на потребителях после ЦТП ниже расчетной на 13-19 градусов. При температуре 75 градусов на источнике, расчет не завершается и выводятся сообщения о том, что температура на потребителях ниже 0 градусов. А если установить текущую температуру воды в подающем трубопроводе 72 или 76 градусов, то расчет завершается нормально и подобные сообщения не выводятся. В чем может быть причина?

Расчет выполняется на текущую температуру наружного воздуха -12 градусов. У потребителей расчетная температура внутреннего воздуха задана 20 градусов. Количество и диаметр установленных шайб на ЦТП указаны нулевые.

Версия ПО  8.0.0.7525u, но и в предыдущей версии картина такая же.
Изменено: Take-oFF - 10.08.2020 13:12:51
Вопрос по макросу, пользовательское имя слоя на сервере
 
Версия обновилась до 8.0.0.6928. Убрал из макроса инструкцию замены символа - всё работает, спасибо.
Обновить состояние сети
 
Ясно, спасибо.
Обновить состояние сети
 
Версия  8.0.0.6915

Кажется, при смене режима объекта должна быть опция "Обновить состояние сети". Пробовал менять режимы участков и что-то я не могу ее найти. Это так и должно быть?
Изменено: Take-oFF - 20.12.2018 09:13:58
Вопрос по макросу, пользовательское имя слоя на сервере
 
Спасибо. Та я добавил в свой макрос инструкцию, которая меняет неправильный символ, если он есть в строке и если он неправильный. Обновление централизованное, будет позже, но код макроса менять необязательно.
Изменено: Take-oFF - 10.12.2018 09:17:14
Вопрос по макросу, пользовательское имя слоя на сервере
 
Спасибо, понятно!

Есть у меня еще ощущение, что метод ZuluTools.GetFileName(nIndex) не совсем корректно работает, в случае, если

при вызове ZuluTools.ShowOpen() с множественным выбором слоев пользователем было выбрано несколько слоев.
И
выбор слоев происходит на сервере

А сама некорректность заключается в том, что возвращаемая GetFileName() строка содержит обратный слэш "\" перед именем файла, например:
"zulu://MyServer:6473/Termo\teplosam.zl"
Это обстоятельство вызывает удивление у следующего метода LayerCopyEx() который не может найти слой по такой строке и стыдливо возвращает висючее False вместо гордо стоячего True.
Вопрос по макросу, пользовательское имя слоя на сервере
 
Можно еще вопрос?


1) Если явно не задавать источник БД методом SetDataSource, какой источник данных будет у вновь скопированного слоя?

(предполагаю, такой же, как у исходного слоя)

2) Если явно задать источник через SetDataSource, будет ли этот источник применяться в операции копирования при следующем запуске макроса?

(предполагаю, что не будет, до тех пор, пока не выполнится метод SetDataSource)
Вопрос по макросу, пользовательское имя слоя на сервере
 
Спасибо, обновил, заработало!
Изменено: Take-oFF - 07.12.2018 10:58:36
Вопрос по макросу, пользовательское имя слоя на сервере
 
Уточняю:

Метод GetLayerUserName для локально размещенного слоя *.b00 возвращает строку с пользовательским названием слоя.
Для опубликованного на сервере слоя *.zl - пустую строку.

Проверял только на одном сервере, других не знаю. Предположил, что он везде так работает.
Вопрос по макросу, пользовательское имя слоя на сервере
 
А. Ну. Извиняюсь. Это самое:

Версия 8.0.0.6912u
Дата сборки 03.12.2018
Вопрос по макросу, пользовательское имя слоя на сервере
 
ZuluTools.GetLayerUserName(LayerPath) возвращает пустую строку, если в LayerPath строка типа "zulu://MyServer:6473/Termo/teplosam.zl"

А можно ли в макросе на VBScript узнать пользовательское название слоя на сервере с помощью какого-либо иного кода?

Макрос абсолютно бесполезен, если неизвестно пользовательское название слоя.

Задача: копирование слоя из одного каталога на сервере, в другой каталог на сервере. Пользовательское название слоя не должно изменяться.
Лог сервера
 
Спасибо. Да, есть такой код в предыдущей записи. [S]Огласите весь список, пожалс[/S] А где можно посмотреть, что обозначают эти самые коды?
Изменено: Take-oFF - 07.12.2017 17:34:36
Лог сервера
 
Да, думаю, что скорее всего, это запись результатов наладочного/поверочного расчета в БД, т.к. в логе на тот же период времени имеется аналогичное сообщение об изменении расчетных параметров по узлам сети:
[CODE]01.11.2017 14:27:47 zb: 2190 1F387388 execsql:
UPDATE [ТС_kamera1] AS T1 SET T1.[H_obr] = ?, T1.[H_ras] = ?, T1.[H_pod] = ?, T1.[Ppod] = ?, T1.[Pobr] = ?,
T1.[Tpod] = ?, T1.[Tobr] = ?, T1.[Nist] = ?, T1.[Time] = ?, T1.[Dist] = ?, T1.[Tb] = ?, T1.[Hstat] = ?, T1.[Hstat_out] = ?
WHERE T1.[Sys] = ?[/CODE]
Лог сервера
 
Хотелось бы уточнить, при каких условиях/действиях пользователя создается именно такая запись. Применяются ли изменения ко всей таблице? Сразу за ней через 1-2 с следует другая:
[CODE]01.11.2017 14:27:48 zb: 2190 1F387388 execsql:
UPDATE [ТС_uzvvod1] AS T1 SET T1.[H_obr] = ?, T1.[H_ras] = ?, T1.[H_pod] = ?, T1.[Ppod] = ?,
T1.[Pobr] = ?, T1.[Nist] = ?, T1.[Time] = ?, T1.[Dist] = ?, T1.[Tb] = ?, T1.[Hstat] = ?, T1.[Gut_pot] = ?,
T1.[Tto_so] = ?, T1.[Gniz] = ?, T1.[Gverh] = ?, T1.[Gcirc] = ?, T1.[Ggv] = ?, T1.[Tvsv_t] = ?, T1.[Gsv_otn] = ?,
T1.[Gsv] = ?, T1.[Gsum_pod] = ?, T1.[T1_t] = ?, T1.[T2_t] = ?, T1.[Tvso_t] = ?, T1.[T2so_t] = ?, T1.[T3so_t] = ?,
T1.[Gso_otn] = ?, T1.[Gso] = ?, T1.[Qut_pot] = ?, T1.[U_fakt] = ?, T1.[dHshb_so_pod] = ?, T1.[dHshb_so_obr] = ?,
T1.[dHsop] = ?, T1.[T2sv_t] = ?, T1.[Qso_otn] = ?, T1.[G2_niz] = ?, T1.[Q_niz] = ?, T1.[T11_niz] = ?, T1.[T12_niz] = ?,
T1.[T21_niz] = ?, T1.[T22_niz] = ?, T1.[U_calc] = ? WHERE T1.[Sys] = ?
[/CODE]Есть предположение, что запись таких сообщений вызывается запуском гидравлического расчета, потому что здесь, кажется, не видно попыток изменения исходных данных, а меняются, вероятно, только расчетные.
Лог сервера
 
Как интерпретировать нижеприведенную запись в логе. Означает ли это, что были выполнены какие-либо изменения в БД потребителей?
[CODE]01.11.2017 14:27:46 zb: 2190 1F387388 execsql:
UPDATE [ТС_uzvvod1] AS T1 SET T1.[H_ras] = ?, T1.[Gso] = ?, T1.[Gso_otn] = ?, T1.[T3so_t] = ?, T1.[T2so_t] = ?, T1.[Tvso_t] = ?, T1.[H_obr] = ?,
T1.[Dshb_so_pod] = ?, T1.[Nshb_so_pod] = ?, T1.[Dshb_so_obr] = ?, T1.[Nshb_so_obr] = ?, T1.[dHshb_so_pod] = ?, T1.[dHshb_so_obr] = ?,
T1.[Nel_r] = ?, T1.[Dsop_r] = ?, T1.[Dshb_circ] = ?, T1.[Nshb_circ] = ?, T1.[T2_t] = ?, T1.[T1_t] = ?, T1.[Gsum_pod] = ?, T1.[Gsv] = ?,
T1.[Gsv_otn] = ?, T1.[Tvsv_t] = ?, T1.[Dshb_sv] = ?, T1.[Nshb_sv] = ?, T1.[Dshb_gvs] = ?, T1.[Nshb_gvs] = ?, T1.[Ggv] = ?, T1.[Gcirc] = ?,
T1.[Gverh] = ?, T1.[Gniz] = ?, T1.[Gset_nal] = ?, T1.[Tto_so] = ?, T1.[U_calc] = ?, T1.[Gut_pot] = ?, T1.[Qut_pot] = ?, T1.[Nist] = ?,
T1.[T2sv_t] = ?, T1.[Qso_otn] = ?, T1.[Ppod] = ?, T1.[Pobr] = ?, T1.[Hset_nal] = ?, T1.[Time] = ?, T1.[H_pod] = ?, T1.[Dist] = ?, T1.[Tb] = ?,
T1.[Hstat] = ?, T1.[G2_niz] = ?, T1.[Q_niz] = ?, T1.[T11_niz] = ?, T1.[T12_niz] = ?, T1.[T21_niz] = ?, T1.[T22_niz] = ?, T1.[G2_verh] = ?,
T1.[Q_verh] = ?, T1.[T11_verh] = ?, T1.[T12_verh] = ?, T1.[T21_verh] = ?, T1.[T22_verh] = ?, T1.[dHsop] = ?, T1.[dHshb_gvs] = ?, T1.[dHshb_sv] = ?
WHERE T1.[Sys] = ?[/CODE]
Изменено: Take-oFF - 07.12.2017 11:18:11
SQL запросы, Обсуждение SQL запросов, создание шаблонов, примеры выполнения запросов
 
Спасибо, работает. Второй вариант удобнее.
SQL запросы, Обсуждение SQL запросов, создание шаблонов, примеры выполнения запросов
 
Добрый день. Нужна помощь.

Задача:

Два слоя тепловой сети с именами условно слой "ААА" и слой "БББ"
Можно ли написать запрос (интересует синтаксис обращения к полям БД разных слоев ТС),
который выводит:

Sys           объекта-потребителя слоя ААА
Adres        объекта-потребителя слоя ААА
N_schem  объекта-потребителя слоя ААА
Sys           объекта-потребителя слоя БББ
Adres        объекта-потребителя слоя БББ
N_schem  объекта-потребителя слоя БББ

по условию:

(AAA.Sys = БББ.Sys) and (AAA.N_schem <> БББ.N_schem)

То есть, нужно вывести список потребителей с одинаковыми Sys, у которых не совпадают номера схемы подключения.

При этом известно, что большинство или даже все объекты слоев AAA и БББ имеют совпадающие Sys.
Изменено: Take-oFF - 30.08.2017 16:53:07
Ошибка в сообщении
 
версия 7.0.0.6017

Карта-Операции-Трансформировать слои

В сообщении "Внимание! Все объекты выбранных слоев будут тансформированы"
вероятно, пропущена буква "р" в слове "трансформированы".
Объекты тепловой сети
 
Вопрос программистам расчетного модуля ZuluThermo. Я правильно понял, что проводимость двухтрубных участков определяется при расчете по двум последним битам порядкового номера режима участка (нумерация с нуля), а вовсе не по значению поля (выпадающего списка) "Состояние" в структуре слоя (Структура->Слой->Типы и режимы->Участки)? Любопытство-с...
Вопросы по ЦТП
 
Добрый день! Какую схему подключения можно выбрать на ЦТП и у потребителей, для интересного случая бойлера на систему отопления с открытым водоразбором на ГВС (до бойлера)? Можно ли в этом случае рисовать 3,4-трубную сеть после ЦТП с разделением на потребителей ГВС и отопления?
Страницы: 1