Форум Кладовочки АЛьФ`а

Обсуждение проектов => FormEx => Тема начата: alyuev от 12 апреля 2024, 12:15

Название: Сервис.ВысотаСтрокиТаблицы() выдает 0
Отправлено: alyuev от 12 апреля 2024, 12:15
По следам решения выгрузки таблиц MXL в XLS.
Хотел определить высоту строк, у которых в свойствах стоит АвтоВысота. Т.к. Эксель не выставляет свойство высоты строки как положено. Остается только одна строка.

FormEx загружен 191.

Вот пробовал такой код.

Таб.Открыть(ИмяФайла);
МенеджерТабл = СоздатьОбъект("МенеджерТабличногоДокумента");
МенеджерТабл.УстановитьТаблицу(Таб,);
Для инд = 1 по Таб.ВысотаТаблицы() Цикл
ОблМен=МенеджерТабл.Область(инд);
ВысотаСтрМен=ОблМен.ВысотаСтрокиРасш();
Обл=Таб.Область(инд);
ВысотаСтр=Обл.ВысотаСтроки();
ММ=Сервис.ВысотаСтрокиТаблицы(Таб,инд,1);//мм
Пикс=Сервис.ВысотаСтрокиТаблицы(Таб,инд,2);//пикс
Юнит=Сервис.ВысотаСтрокиТаблицы(Таб,инд,3);//юнит

Сообщить(""+инд+" ВысотаСтр="+ВысотаСтр+" ВысотаСтрМен="+ВысотаСтрМен+" ММ="+ММ+" Пикс="+Пикс+" Юнит="+Юнит);
КонецЦикла;

Ответ в таком виде:

28 ВысотаСтр=23 ВысотаСтрМен=23 ММ=0 Пикс=0 Юнит=0
29 ВысотаСтр=0 ВысотаСтрМен=0 ММ=0 Пикс=0 Юнит=0 - это для строк с автовысотой

Как видно стандартный метод, как и расширенный метод компоненты TableDoc, возвращают высоту = 0 для строк с автовысотой.

Но вопрос - почему Formex вообще все параметры нулевые вернул?
Название: Re: Сервис.ВысотаСтрокиТаблицы() выдает 0
Отправлено: alyuev от 12 апреля 2024, 14:18
Отвечаю сам себе. Читать внимательнее нужно описание....

"Метод работает только для таблиц, которые уже выведены на экран методом Показать()."

А я Показать() использовал после!

Название: Re: Сервис.ВысотаСтрокиТаблицы() выдает 0
Отправлено: Djelf от 12 апреля 2024, 14:31
Это все работает через ж* и по разному для разных операционных систем.
Пытался приструнить, когда Йоксель для импорта 95го формата патчил, не понятно как это победить.
Все, все и все, и MSOffice и LibreOffice считают не правильно, когда есть автовысота.
Как победить без понятия...
Но 0 это и есть (вроде, не помю уже) автовысота, так уж сложилось.
Название: Re: Сервис.ВысотаСтрокиТаблицы() выдает 0
Отправлено: alyuev от 12 апреля 2024, 16:54
Да. Сделал так.
Пробегаюсь по строкам таблицы. Определяю была ли установлена Автовысота, и если да, то принудительно ставлю ВысотаСтроки() в новое значение = Пикс/Коэф. Коэф пока подобрал как 1.25.