Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание отчетов, Форматирование текста в Perl 
V
    Опции темы
burakov
Дата 10.5.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



добрый день,

стоит задача создания отчетов из БД MySQL 

использую модуль DBI, делаю выборку и дальше результат
 пишу в файл, попутно форматируя данные так, чтобы
форматированные мною данные "красиво легли" и их можно было бы послать на печать

Есть ли какой модуль в перл, который бы форматировал (таблично) текст ?
(ведь многие отчеты - это данные в таблицах)

вот например встроенная функции format, formline(); позволяет вывести текст в таблицу, но 
общение с ней трудоемко.

поэтому и стал вопрос. может есть какой модуль, с помощью которого можно было бы создавать таблицы попроще. например задал ему ширину высоту количество колонок ну и т.д. (особенно это актуально, если таблица сложная - есть объединенные строки или столбцы). 

Ну типа HTML smile , только чтобы в текст сразу - а то експорт из html в IE корявый какой то - текстовик совсем не такой получается (многое при экспорте теряется).

Спасибо.







--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
amg
Дата 10.5.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 9
Всего: 50



Цитата(burakov @  10.5.2008,  01:06 Найти цитируемый пост)
Ну типа HTML  , только чтобы в текст сразу - а то експорт из html в IE корявый какой то - текстовик совсем не такой получается (многое при экспорте теряется).
Есть такой консольный браузер, lynx. Из всего, что я встречал, он наиболее вменяемо (в смысле форматирования) переводит html в текст.
Код

$text = `lynx -dump -nolist URL`;



Это сообщение отредактировал(а) amg - 10.5.2008, 08:02
PM MAIL   Вверх
KSURi
Дата 10.5.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 5
Всего: 27





--------------------
Died at Life.pl line 21
PM Jabber   Вверх
burakov
Дата 11.5.2008, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Спасибо за ответы.

а не подскажите есть ли для MySQL какой нибудь генератор отчетов (типа Crystal reports).
Ибо перл, конечно выбирает из БД, но данные в текстовом варианте получаются уж больно некрасивые - таблицу как в word не нарисуешь ну и т.д. 

Попытался рисовать HTML, но столкнулся с тем, несмотря на то, что вроде как Html и задумывался как язык разметки текста, но вот таблицу с тонким border нарисовать - невозможно (есть правда обходной вариант таблица в ячейке, но он меня не устраивает). 

или можно как нибудь связать
MySQL(хранение данных)+perl (обработка данных) + MS WORD (печать данных)?

Спасибо.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
PanamOS
Дата 11.5.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 29.1.2008

Репутация: нет
Всего: нет



Цитата(burakov @  11.5.2008,  00:55 Найти цитируемый пост)
но вот таблицу с тонким border нарисовать - невозможно

а как же стили?
PM MAIL   Вверх
ramus
Дата 11.5.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.2.2008

Репутация: нет
Всего: 1



Цитата

MySQL(хранение данных)+perl (обработка данных) + MS WORD (печать данных)?


я бы вместо ворда использовал Excel (для таблиц подходит лучше  smile  )
модулей полно, сам пользую в таких случаях Spreadsheet::WriteExcel
PM MAIL   Вверх
burakov
Дата 11.5.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Большое спасибо.

с Spreadsheet::WriteExcel  разбираюсь.

а вот с border  и стилями примерчик какой нибудь коротенький!
не получается никак

вот кусочек кода html  с применением стилей

<HTML> 
<style type=\text/css\>

table { border-width:1pt }
</style>

<table border>
<tr> <td>  ПРИВЕТ </td></tr>
</table>
</HTML> 

нужно добиться чтобы border у таблицы был тонкий (как например word по умолчанию создает)
подправьте пожалуйста.

Спасибо.


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
ramus
Дата 11.5.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 21.2.2008

Репутация: нет
Всего: 1



Вот простой пример записи в файл в формате xls данных из БД

Код

use strict;
use warnings;
use Spreadsheet::WriteExcel;
use DBI;

# ... < cut code >

#получаем из БД
my $array=$sth->fetchall_arrayref();

# ... < cut code >

my $workbook  = Spreadsheet::WriteExcel->new($file_name_xls);
my $worksheet = $workbook->add_worksheet();

# Expand the first column so that the date is visible.
$worksheet->set_column("A:A", 10);

my $row = 0;
my $col = 0;
  
foreach my $line  (@$array) {
  $col=0;
  foreach my $token (@$line) {
      $worksheet->write($row, $col, $token);
      $col++;
  }
  $row++;
}

$workbook->close();


PM MAIL   Вверх
burakov
Дата 11.5.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет





И все таки - может таки есть модуль, чтобы выборку из БД в WORD вставлять,
Ибо очень важно для меня внешнее оформление отчетов - а красоту лучше всего в Worde наводить...
я поискал на 

http://ppm.activestate.com/PPMPackages/zip...s-only/Windows/
чего то ничего похожего на WriteWord smile не нашел. 
может таки плохо искал? smile


Это сообщение отредактировал(а) burakov - 11.5.2008, 22:35


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
shamber
Дата 12.5.2008, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 1
Всего: 18



burakov, OLE вам в помощь.
и формируйте, оформляйте.

Win32::Ole
PM MAIL Jabber   Вверх
burakov
Дата 12.5.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Всем огромное спасибо.

подсмотрел на forum.vingrad.ru как делать таблицы с тонкими краями 
(наверное все таки остановлюсь на варианте - формировать отчеты в HMTL - все таки это как то попроще для меня)

Spreadsheet::WriteExcel - отличный модуль - с ним тоже у меня все получилось
Win32::Ole - пока дело темное -- какая то справка по нему не подробная,
но буду разбираться...

всем спасибо.
(тему закрываю)


--------------------
Нотный архив http://libnote.ru скачать ноты бесплатно
PM MAIL   Вверх
ki22
Дата 29.7.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.5.2007
Где: СПб

Репутация: нет
Всего: 1



Если таблица с границами как у WORD  имеется ввиду не 2 линии с разрывом, а одна, то это делается через стиль borded-collapsed: collapse
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0800 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.