HTML Writer
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
С RTF разобрались, теперь хочется сделать выгрузку в HTML. Хочется как в xlsx, только HTML, что-то типа
myhtml.newfile('test.htm')
myhtml.addtable(2,3)
myhtml.settd(1,1)
myhtml.settext('hello, world')
myhtml.createfile()
Может кто встречал подобное?
			
			
									
						myhtml.newfile('test.htm')
myhtml.addtable(2,3)
myhtml.settd(1,1)
myhtml.settext('hello, world')
myhtml.createfile()
Может кто встречал подобное?
- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
Это который делает из WMF? Мне нужны таблицы скажем так неограниченной длины без постраничного переноса
Или есть какой-то другой класс? Пример?
			
			
									
						Или есть какой-то другой класс? Пример?
- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
HTML Writer
Этот класс. А что такое "таблицы скажем так неограниченной длины без постраничного переноса"? Я думал у Вас необходимость отчёт сохранить. Тогда стандартный лучше не брать.
Вообще, HTML относительно прост. Опять же текстовый. Если есть конкретика, руками сделать не проблема. Таблица-текст-картинка. Все возможности HTML - это серьёзней.
			
			
									
						Вообще, HTML относительно прост. Опять же текстовый. Если есть конкретика, руками сделать не проблема. Таблица-текст-картинка. Все возможности HTML - это серьёзней.
We are hard at work… for you.   
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
Буду и отчеты сохранять и просто таблички из листов, во втором случае переносы не нужны. Написать то напишу, конечно, но вроде такая базовая вещь, наверняка кто-то писал
			
			
									
						HTML Writer
А там нечего особенно писать. Нужно иметь класс для формирования длинной строки  и функцию перевода ASCII-HTML
Вот достаточно старинный отчёт ( сейчас надо использовать формат HTML5 и кодировку UTF-8 )
			
			
									
						Вот достаточно старинный отчёт ( сейчас надо использовать формат HTML5 и кодировку UTF-8 )
Код: Выделить всё
Loc:Report Cstr 
..........
            Loc:Report.Set('<<html>')
            Loc:Report.Cat('<13,10><<meta http-equiv="Content-Type" content="text/html;charset=windows-1251">')
            Loc:Report.Cat('<13,10><<body>')
            Loc:Report.Cat('<<Center><<Font face="Arial" lang="ru" Size=5> Протокол тестирования:<<B>' & Clip(TstsQ:Name) & '<</B> Дата:' & Format(Today(),@d5.) & |
               '<<BR><<Font face="Arial" lang="ru">Специальность:<<B>' & Sts:Name & '<</B>, Группа:<<B>' & Stg:IdGroup & '<</B>' & |
               '<</Font><</Center>') 
            Loc:Report.Cat('<<BR><<BR><<TABLE width="80%"  borderColor=#000000 border=2>')
            Loc:Report.Cat('<<TR bBgColor=#808080 ><</TD>' & |
                  '<<TD width="20%"><<Center><<Font size=3 face="Arial" lang="ru"><<B>Дата,время<</B><</Center></TD>' & |
                  '<<TD width="40%"><<Center><<Font size=3 face="Arial" lang="ru"><<B>Студент<</B><</Center><</TD>' & |
                  '<<TD width="20%"><<Center><<Font size=3 face="Arial" lang="ru"><<B>Оценка<</B><</Center><</TD><</TR>')
           Loop Loc:StudentQ = 2 to Records(StudentQ)
              Get(StudentQ, Loc:StudentQ)
              Loc:N+=1
              Loc:Report.Cat('<<TR>' & |
                      '<<TD Align=Left><<Font face="Arial" lang="ru" Size=3>' & Format(StudentQ:Date,@d5.b) & ' ' & Format(StudentQ:Time,@t1b)  & '<</TD>' & |
                      '<<TD Align=Left><<Font face="Arial" lang="ru" Size=3>' & Ansi2Html(StudentQ:FIO) |
                        & Choose(TstsQ:ScreenId='' And StudentQ:Test<>'','<<i> ' & Ansi2Html(StudentQ:Test) & '</i>',' ') & '<</TD>' & |
                      '<<TD Align=Center><<Font face="Arial" lang="ru" Size=3>' & Choose(StudentQ:Mark+1,' ',' ','Неудовл.','Удовлетворительно','Хорошо','Отлично') & |
                      '<</TD><</TR>' )
           End
           Loc:Report.Cat('<</Table><</body><</html>')
           Loc:OutF= GetTempFileName('Tmp')
           Loc:Report.SaveToFile(Loc:OutF)
           - RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
В этом примере отчет статический, а мне нужно скажем так динамический. Разные шрифты, стили, цвета, выравнивание, размеры столбцов и строк, и т.д. и т.п., все это заранее не известно, задается пользователем в свободном виде. Объем данных тоже свободный. Для статических отчетов у нас уже есть WISIWIG HTML-редактор с переменными, не подходит
			
			
									
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
HTML Writer
Вот такой вопрос. А зачем всё это надо? У нас все отчёты можно сохранить в HTML (через стандартный класс). Но это никому не надо, этим не пользуются. Какие-то простые штуки я делаю руками, например, html-письмо. В pdf, Excel, Word сохранить понятно, да, надо, есть смысл. В HTML зачем?
			
			
									
						We are hard at work… for you.   
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
Для того, чтобы отчеты отображались непосредственно в письме. Будет такая штука - делаются задания, ночью программа по базе делает отчеты и рассылает емайлы, утром их смотрят. Поскольку сейчас зоопарк систем, откуда смотрят почту, практичнее делать это сразу в html, без аттачей. Т.е. открывает директор утром письмо и ему там сразу (утрированно) приход-расход за вчера. Удобно.
			
			
									
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
HTML Writer
Ну не знаю. У нас именно так. Но в самом тексте письма "краткое резюме". Пока не было хотелки видеть что-то мощное в самом письме. Поэтому всё предельно просто - текст, таблица. Да и в файл писать не надо наверно. Да и какие-то теги в письме не нужны. Можно начинать с тега "<body>".
			
			
									
						We are hard at work… for you.   
			
						- RaFaeL
 - ✯ Ветеран ✯
 - Сообщения: 1417
 - Зарегистрирован: 24 Март 2009, 17:59
 - Откуда: НН
 - Благодарил (а): 12 раз
 - Поблагодарили: 2 раза
 - Контактная информация:
 
HTML Writer
У вас, я так понимаю, решения для внутреннего использования. У нас - "коробочный" продукт с редактором отчетов, доступным пользователю, и с редактором форматов листов, тоже доступным пользователю. Что они там себе рисуют... Вот у меня такой фантазии нет, а они рисуют. Поэтому и экспорт должен поддерживать по максимуму.
			
			
									
						- finsoftrz
 - ✯ Ветеран ✯
 - Сообщения: 5567
 - Зарегистрирован: 06 Ноябрь 2014, 12:48
 - Благодарил (а): 18 раз
 - Поблагодарили: 78 раз
 
HTML Writer
У меня в системе электронных заказов подобный вопрос возникал. Стандартно в генерируемом письме с подтверждением заказа аттачилась экселевская форма. Часть покупателей имело проблему с ее просмотром. Попробовал вариант с письмом в html формате. Выглядит неплохо. Со смартфона тоже нормально читается. Для html используется отдельный дизайнер текстовых форм.
			
							
			
									
						C6/C12, ШВС, tps/btrieve.
			
						- 
				kreator
 - ✯ Ветеран ✯
 - Сообщения: 5235
 - Зарегистрирован: 28 Май 2009, 15:54
 - Откуда: Москва
 - Благодарил (а): 11 раз
 - Поблагодарили: 26 раз
 
HTML Writer
Для меня это две разные истории - отчёт и html-письмо. Всё-таки html не формат для документов. Прислать некую сжатую информацию сразу в теле письма - хорошая идея. Тем более, что html позволяет и интерактивную информацию вставлять (ссылки, например). А когда речь идёт о бланке документа, то нужно вложение. Даже с печатью могут быть проблемы.
			
			
									
						We are hard at work… for you.   
			
						- finsoftrz
 - ✯ Ветеран ✯
 - Сообщения: 5567
 - Зарегистрирован: 06 Ноябрь 2014, 12:48
 - Благодарил (а): 18 раз
 - Поблагодарили: 78 раз
 
HTML Writer
Можно и дублировать. Вставлять html в текст письма и одновременно прикреплять файл. 
Проблема при работе с прикрепленными файлами реально есть. В моем случае, кому-то нужна экселевская форма для печати или загрузки информации. А кому-то надо быстро глянуть цены, скидки и т.п. по своему отправленному заказу. После приема и обработки заказа оператором, после которой и цены уточняются, и разные скидки рассчитываются, и наличие товара на складе проверяется. А результат посмотреть бывает нужно в пути на смартфоне.
Разумеется, это вполне конкретные случаи, когда есть целесообразность в html форме. У меня еще есть некоторые сомнения, как это все будет выглядеть, когда заказ, скажем, на сотню позиций.
			
			
									
						Проблема при работе с прикрепленными файлами реально есть. В моем случае, кому-то нужна экселевская форма для печати или загрузки информации. А кому-то надо быстро глянуть цены, скидки и т.п. по своему отправленному заказу. После приема и обработки заказа оператором, после которой и цены уточняются, и разные скидки рассчитываются, и наличие товара на складе проверяется. А результат посмотреть бывает нужно в пути на смартфоне.
Разумеется, это вполне конкретные случаи, когда есть целесообразность в html форме. У меня еще есть некоторые сомнения, как это все будет выглядеть, когда заказ, скажем, на сотню позиций.
C6/C12, ШВС, tps/btrieve.
			
						