Вверх ↑
Этот топик читают: Гость
Ответов: 86
Рейтинг: 11
#1: 2010-06-11 11:07:26 ЛС | профиль | цитата
Очень нужен компонент (или хотя бы код), который может корректно распечатывать таблицу StringTableMT.
Такой компонент уже создавали и назывался он PrinterPR, но он сильно устарел и не работает в версии 184 (и более ранних тоже).
Огромнейшая просьба помочь мне с этим вопросом!!! К стати этот компонент очень нужный и было бы очень хорошо если бы его добавили разработчики в стандартные компоненты HiAsm'а или придумали бы такую точку к таблице.

Пожалуйста, помогите!!! Доброты не забуду!!!
карма: 0

0
Ответов: 3349
Рейтинг: 233
#2: 2010-06-11 11:10:03 ЛС | профиль | цитата
а MStrTЫ?
Там печать есть.
Или отпарсить и через documentTemplate
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#3: 2010-06-11 11:33:47 ЛС | профиль | цитата
Ivann писал(а):
Там печать есть

Нет там печати, там есть HTML модуль, через который можно получить таблицу в формате HTML и распечатать стандартными средствами, к примеру, через браузер
карма: 22

0
Ответов: 3349
Рейтинг: 233
#4: 2010-06-11 11:48:45 ЛС | профиль | цитата
nesco, точно
карма: 1

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#5: 2010-06-11 11:49:27 ЛС | профиль | цитата
Ivann писал(а):
Или отпарсить и через documentTemplate

Вполне реально, и примеры где-то были, по выводу таблицы
карма: 22

0
Ответов: 86
Рейтинг: 11
#6: 2010-06-11 16:10:02 ЛС | профиль | цитата
nesco писал(а):
Вполне реально, и примеры где-то были, по выводу таблицы

Nesco, если возможно ссылочку на примерчик! И спасибо!
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#7: 2010-06-11 16:31:15 ЛС | профиль | цитата
Посмотри в штатных примерах %HiAsm%ElementsDelphiExamplePrinterPrintDocuments
карма: 22

1
Голосовали:maxzeev
Ответов: 86
Рейтинг: 11
#8: 2010-06-11 17:22:34 ЛС | профиль | цитата
nesco писал(а):
Посмотри в штатных примерах %HiAsm%ElementsDelphiExamplePrinterPrintDocuments

...PrintTextDoc

Вполне подходящий вариант для статических изображений, но когда таблица динамически изменяется...?
Я знаю, что в StringTableMT, есть точка которая содержит индекс последней строки, но как по ней расчетать координаты, когда таблица постоянно меняется?
И не повлияют ли размеры окна на заданные координаты?
карма: 0

0
Ответов: 223
Рейтинг: 24
#9: 2010-06-11 20:43:53 ЛС | профиль | цитата
maxzeev, Когда-то делал для динамических изминений в таблице.Может найдеш что-то для себя
code_18815.txt
карма: 0

0
файлы: 1code_18815.txt [2.5KB] [115]
Ответов: 86
Рейтинг: 11
#10: 2010-06-11 21:46:14 ЛС | профиль | цитата
wasya, спасибо конечно, но мне нужно либо узнавать координаты последней строки, либо найти компонент (код), для печати таблицы.
Конечно можно попробывать через html покумекать, но хочется по оригинальней.
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#11: 2010-06-12 00:51:44 ЛС | профиль | цитата
maxzeev писал(а):
но как по ней расчетать координаты, когда таблица постоянно меняется?

Высота-то строки не меняется и зависит от размера шрифта и размера иконки, размер заголовка не меняется тоже, он от шрифта зависит
------------ Дoбавленo в 00.48:
Да, ксати, забыл сказать, что в новой таблице -- MTStrTbl, есть специальный метод для получения координат ячейки -- doClientRect. Вызвав этот метод, можно получить на onClientRect высоту рабочей области ячейки. Как уже быо отмечено, то в пределах одной таблицы, эта высота не изменяется
------------ Дoбавленo в 00.51:
Мои рекомендации -- отказаться от StringTableMT в пользу MTStrTbl, как более перспективной и, конфигурационно, более гибкой
карма: 22

0
Ответов: 86
Рейтинг: 11
#12: 2010-06-12 12:10:56 ЛС | профиль | цитата
nesco, чтобы стало совсем понятно, к чему я стремлюсь, расскажу в краце о проекте:
Первоночально таблица делалась для учета запчастей на заводе (с поискомзаменой нужных слов, с редактором таблицы, чтобы пользователи не писали Delimiter, с 5кратной отменой последних действий и т.д.). Но понадобилась аналогичная таблица, перелопатил имеющуюся, еще понадобилась-снова перелопатил. Так возникла идея сделать универсальную таблицу где бы пользователь сам мог задавать в настройках колицество, название, ширину, выравнивание столбцов, математические операции установленные пользователем между столбцом х и х1 с занисением результата в ст. х2.
Теперь собственно суть: Когда сумма всех длин колонок не превышает 200 мм - ориентация листа книжная
когда привышает 200 мм - ориентация листа альбомная
максимальная сумма длин всех колонок не должна превышать 290 мм (ширина альбомного листа А4)
Подсчетать сумму всех колонок (строк)-плевое дело, но как при смене ориентации листа изменять DocumentTemplate - вот геморой.
К стати у меня нет таблицы MTStrTbl, хотя обновил прогу сегодня через HiUpdate.exe
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-06-12 13:26:10 ЛС | профиль | цитата
maxzeev писал(а):
у меня нет таблицы MTStrTbl
Вкладка "Интерфейс2"->"Строковая таблица МТ"
------------ Дoбавленo в 13.05:
maxzeev, для обмена опытом - для
maxzeev писал(а):
учета запчастей на заводе (с поискомзаменой нужных слов, с редактором таблицы, чтобы пользователи не писали Delimiter, с 5-кратной отменой последних действий и т.д.).
используй БД (любую). Намного проще.
А вот это
чтобы пользователи не писали Delimiter
совсем непонятно, почему пользователи вообще должны знать про Delimiter и писать его
------------ Дoбавленo в 13.26:
maxzeev писал(а):
но как при смене ориентации листа изменять DocumentTemplate
создай два документа и, в зависимости от нужной ориентации, переключай их.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 86
Рейтинг: 11
#14: 2010-06-12 23:34:24 ЛС | профиль | цитата
Tad, преведи пример пожалуйста, если ты очень продвинутый тебе это ничего не стоит, а мне неделю две мучений.
К стати MTStrTbl у меня есть, я очень, очень извеняюсь. Уверяю, когда нибудь и я тебе пригожусь!
Про Delimiter пользователи не знают, когда ее закончу загружу на форум сам увидешь!
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#15: 2010-06-13 10:46:19 ЛС | профиль | цитата
maxzeev писал(а):
преведи пример
пример чего ?
maxzeev, учет запчастей на заводе - обыкновенная программа "СКЛАД", где все должно быть "разложено по полочкам".
Как у вас на заводе организован этот учет - для меня темный лес.
Приведи пример.

И любой документ (и на печать на бумагу) должен формироваться автоматом, а не с "редактором таблицы" и участием пользователя. Пользователь должен только выбрать названия нужных ему колонок в документе, и то не всегда. Обычно форма печатного документа стандартизирована. В этом случае пользователь должен только выбрать нужный вид документа.
maxzeev писал(а):
Так возникла идея сделать универсальную таблицу где бы пользователь сам мог задавать в настройках колицество, название, ширину, выравнивание столбцов, математические операции установленные пользователем между столбцом х и х1 с занисением результата в ст. х2.
Этот велосипед давно изобрели - MsExcel называется или любая БД.

Таблица MTStrTbl от nesco прекрасно сама справляется с установкой ширины колонок, в зависимости от содержания, а с вычислением значений в ст.x2 прекрасно справится запрос к БД типа: (для БД SQLite. Для других БД - может отличаться)

#pas
SELECT название,(sum(приход) - sum(расход)) AS кол,цена,(кол*цена) AS сумма // перечисляем нужные колонки
FROM склад
WHERE категория='Болты' AND тип='M12x80' // что выбирать
GROUP BY цена //группировать по цене
ORDER BY название // выводить в алфавитном порядке
LIMIT по сколько строк выводить OFFSET начиная со строки ; //размер документа
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)