
0
Expression Editor - автоматический подсчет количества записей в файле
Здравствуйте!
Для анализа сходимости дубликатов мне потребовался расчет поля Накопленной частоты. Выражение имеет вид :
[Cumulative Frequency (%)]=if [#record] = 1 then (100*1/19) else ((100*1/19)+ [<Cumulative Frequency (%)]) endif,
где 19 - общее количество записей в файле. Вопрос состоит в том, возможен ли автоматический подсчет этого значения (объем выборки будет изменяться в зависимости от примененных на предыдущих стадиях фильтров)?
С уважением,
Андрей
Customer support service by UserEcho
Здравствуйте!
Определить количество записей в файле используя выражениях не получится. Но Ваш кейс натолкнул нас на мысль, что такая функция расширила бы возможности выражений.Будем добавлять в следующих версиях ММ. Спасибо Вам, что делаете нас лучше.
Для решение вашей задачи можно использовать скрипт.
Что бы определить количество записей в файле с помощью скрипта достаточно написать следующее:
path = MMpy.Project.path() + "assay_wr.DAT" #Указываем Путь к файлу
file = MMpy.File() #Создаем экземпляр файла
file.open(path) #Открываем файл
rec = file.records_count #Определяем количество записей в файле
print(rec)
Пример скрипта во вложении. Для работы скрипта необходимо скачать и установить Python 3.5.8.
rec.py
Если у вас возникнут вопросы обращайтесь!
С уважением,
Григоровский Илья | Технический специалист ГГИС Micromine, представитель по Уральскому региону
ООО «Майкромайн Рус»
Можно и макросами. Количество записей определяется любым статистическим процессом. Создай поле в файле, пропиши ему 1 для всех значений. Запусти статистику на это поле, на выходе будет файл, в котором будет в том числе и сумма - это и есть количество записей. Затем надо сделать так, чтобы этот файл читался.
Для пущей автоматизации создай файл макриса, и к этому файлу присоедини файл статистики - пропиши это значение в одно из полей переменных. Макрос можно будет вызывать из другого макроса, читать переменную и делать какие-то необходимые действия.
Да, для определения количества записей в файле и автоматической подстановки этого значения в выражение можно использовать макрос:
1. Определим количество записей используя функцию Файл/Генератор отчетов. Также необходимо создать уникальное поле, например code со значением 1.
2.Объеденим файл отчета и файл макроса (Файл/ Объединить/Майкромайн) как показано ниже.
3. После запуска макроса переменна будет автоматически подставленна из отчета в столбец %1, напротив указанного значений 1 в столбце %2.
4.Далее используем эту переменную в нужных процессах.
Дмитрий, Илья, спасибо! попробую сегодня такой путь.
И еще один вопрос по ходу возник, правда уже по фильтрам:
Требуется отфильтровать скважины по дате начала бурения, скажем, за месяц.
Пробовал такое выражение, но оно почему-то не сработало:
2020-07-01<[DATE_COMPLETED]<2020-08-01
Здравствуйте, Андрей.
Здесь Вы можете воспользоваться:
Спасибо, то, что нужно!
Вот такое бы тоже сработало (внимание на кавычки):
"2020-07-01"<[DATE_COMPLETED]<"2020-08-01"
Спасибо, Денис - я знал, что такое возможно!