Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 27 апр 2024, 19:37

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: модуль передачи данных в OOffice
СообщениеДобавлено: 11 дек 2012, 12:29 
Не в сети
Бывалый

Зарегистрирован: 17 сен 2012, 13:35
Сообщения: 91
Привет, всем!
После того как я, с горем по палам, победила превью формы для печати из браузера, встал вопрос о том, а можно ли данные из формы передать в ворд, а потом уже от туда печатать?
Оказывается можно))). Морковин в своих уроках предлагает делать через модуль odtphp. В принципе, это даже лучше.
Решила попробовать, но естественно ничего не получилось. Может кто уже имел дело с этим зверьём?

вот ссылка на его статью:
http://www.sdelaysite.com/php/php-office-word

админ, прости если нарушаю правила :oops:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 19 фев 2013, 18:00 
Не в сети
Бывалый

Зарегистрирован: 17 сен 2012, 13:35
Сообщения: 91
короче, ребята, простите мне мою тупость, но не могу подружиться с этим модулем(((( помогите пожалуйста.

в принципе все проще паренной репы:
в экшене страницы вызываем метод для работы с экспортом данных в файл опен офиса.
Код:
 if(isset($_POST['btnPrint']))
            {
                $this -> export_print();
            }


дальше в методе работаем с данными (тут у меня буквально 2 дня назад простейший пример получилось сделать. Я обрадовалась и написала код под свою конкретную задачу, и чтобы вы думали? естественно ничего не работает). Дабы понять где ошибка решила повторно выполнить простой пример - и он не работает! я в шоке(
Действия на нажатие кнопки вообще никакие не происходят.
Модуль в бутстрапе подключен, в конфиг перенесён файл с настройками модуля.

вот пример:
Код:
public function export_print()
        {
           
            $odf = new odf(APPPATH.'templates/test.odt'); //файл-шаблон куда подставляются данные переменных
            $odf->setVars('titre', 'PHP');
            $message = "PHP  est un langage de scripts libre ...";
            $odf->setVars('message', $message);
            $odf->exportAsAttachedFile();
        }


Всё ж элементарно... ткните пожалуйста меня носом, что нетак


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 02 апр 2013, 13:34 
Не в сети
Бывалый

Зарегистрирован: 17 сен 2012, 13:35
Сообщения: 91
ну что, методом научного тыка кое как подружилась я с этим модулем....

но))) работает не все правильно.
вот у меня есть запрос, который вытаскивает данные из таблицы.
Код:
$zakaz = Model::factory('Getin') -> get_main($zakaz_id);//запрос данных введённых в форму


вот так я его посылаю в текстовый документ:

Код:
if(isset($_POST['print']))
            {
               
               $odf = new Odtphp(APPPATH.'templates/getin.odt');
         
      $zakaz = Model::factory('Getin') -> get_main($zakaz_id);//запрос данных введённых в форму
               
     $odf->setVars('zakaz_id', $zakaz['zakaz_id'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('date_in', $zakaz['date_in'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('fio', $zakaz['fio'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('adres', $zakaz['adres'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('tels', $zakaz['tels'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('apparat', $zakaz['apparat'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('made', $zakaz['made'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('model', $zakaz['model'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('sn', $zakaz['sn'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('broken', $zakaz['broken'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('package', $zakaz['package'], $encode = TRUE, $charset='UTF-8');
//                $odf->setVars('view', $zakaz['view'], $encode = TRUE, $charset='UTF-8');
            
      
      $odf->exportAsAttachedFile();

      exit;



если вы обратили внимание, то у меня все переменные, передающие данные в текстовый документ, закоментированны, кроме одной. так вот, по одной они работают, но не больше. сразу же начинает ругаться, типо такой переменной в текстовом документе нет. ну как нет, когда всё есть?! ))) короче, чёт я не правильно делаю....


а что самое интересное в примере, который я тоже победила))), 2 переменные используются и обе они работают, д хоть их там будет 200 они все работают....
вот код примера:
Код:
<?php
require_once('../library/odf.php');
$odf = new odf("tutoriel1.odt");
$odf->setVars('titre', 'PHP');
$message = "PHP  est un langage de scripts libre ...";
$odf->setVars('message', $message);
$odf->exportAsAttachedFile();
?>



помогите пожалуйста разобраться.... истина где-то рядом)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 02 апр 2013, 14:42 
Не в сети
Бывалый

Зарегистрирован: 17 сен 2012, 13:35
Сообщения: 91
так всё получилось.
проблема толи в модуле толи ещё в ч`м том. у одного товарища была такая проблема, он лучше объяснил, по этому цитирую:
"К сожалению, odtPHP не универсальное средство, с помощью его не получится обрабатывать таблицы со сложной структурой. Кроме того есть еще одна проблема - любой плейсхолдер или конструкция в файле odt должна быть записана за один раз. Сейчас поясню. Например если скопировать строку "{name}" в файле odt, затем ее вставить в другом месте и исправить ее на "{description}", то во внутреннем представлении файла odt части "{", "description" и "}" будут разделены друг от друга внутренним форматированием, т.е. там не будет целостного слова "{description}", PHP код не будет находить этот плейсхолдер и будет возникать ошибка. Решение этой проблемы достаточно простое: нужно вырезать проблемную конструкцию а затем вставить ее в то же место. В OpenOffice у меня таким образом решалась эта проблема."


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 03 апр 2013, 05:12 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
милая девушка, может вам для начала XML подучить? а вдруг пригодится? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 04 апр 2013, 17:17 
Не в сети
Бывалый

Зарегистрирован: 17 сен 2012, 13:35
Сообщения: 91
с радостью, но времени катастрофически не хватает.... вот сдам диплом ииииии.... столько планов!!!))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: модуль передачи данных в OOffice
СообщениеДобавлено: 05 апр 2013, 13:38 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 июл 2012, 18:00
Сообщения: 701
Откуда: Murom, Russia
Диплом? А кем вы хотите стать? :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group