Перейти к содержимому


Публикации Rapman

12 публикаций создано Rapman (учитываются публикации только с 20-Апрель 23)


#36224 Как в HTML-шаблоне указать дату печати и пользователя?

Отправлено от Rapman в 19 Июнь 2017 - 18:32 in Как это сделать

Спасибо большое!
Как ни странно, сработало даже это:

Просмотр сообщенияCbCoder (19 Июнь 2017 - 10:49) писал:

{{$Время отправления}|date_format:"%H-%M"}
Вот бы техдоки увидеть, как у вас там запросы преобразуются, какие синтаксисы и тп. Порой по 3 дня вот так играюсь



#36211 Как в HTML-шаблоне указать дату печати и пользователя?

Отправлено от Rapman в 19 Июнь 2017 - 03:45 in Как это сделать

Добрый день!
Чтобы не плодить темы, спрошу в этой.
Верстаю шаблон в html. Возникла необходимость выводить даты в разных форматах.
Этот код:
{$Время отправления|date_format:"%H-%M"}
выдает такую ошибку:
Syntax Error in template "string:" on line 205 "<p class="western" lang="ru-RU"><font face="Times New Roman, serif"><font size="2" style="font-size: 9pt">&nbsp;</font></font>{$Время отправления|date_format:"%H-%M"}</p>" - Unexpected "�", expected one of: "{" , "identifier"
Что я делаю не так?
Просто "вставить поле- ОК", работает, но выдает полноформатную дату-время, а мне необходимо в разных местах и дату, и время выводить по отдельности.



#32574 Создание таблицы в шаблоне

Отправлено от Rapman в 13 Февраль 2017 - 07:31 in Как это сделать

Просмотр сообщенияCbCoder (11 Февраль 2017 - 14:57) писал:

Там у вас будет прекрасная возможность
Снова вопрос, подскажите пожалуйста. Набросал тестовый отчет, все прекрасно.
А как теперь реализовать вывод в файл этого отчета? Кнопку "Печать" я с горем пополам вытащил и прикрутил, но это не то.
Как можно его вывести в PDF, doc, rtf - да хоть во что-нибудь? Видел, в других отчетах есть импорт в xls- уже неплохо, но это я не осилил. Какие для этого есть модули или функции или инструменты и где об этом почитать?

Вот мой тестовый отчет:
Подготовка данных:
$sql_order = "SELECT f_data311.`f5341`, f_data311.`id` FROM ".DATA_TABLE."311, f_data331
WHERE
f_data311.`id` = f_data331.`f5831`
ORDER BY f_data311.`f5341`
";
$i=1;
$res_order = sql_query($sql_order);
while($row_order=sql_fetch_assoc($res_order)) {
$order_date_arr[$i]['id'] = $row_order['id'];
$order_date_arr[$i]['f5341'] = $row_order['f5341'];
$order_date_names[] = $row_order['f5341'];
$i=$i+1;
}
$order_date_str = implode(" ", $order_date_arr[1]);
$t = array_count_values($order_date_names);
foreach($t as $key => $value){
for ($i = 1; $i <= count($order_date_arr); $i++){
if ($order_date_arr[$i]['f5341'] ==$key)
$order_date_arr[$i]['kolvo'] = $value;
}
}
$order_date_arr= array_map("unserialize", array_unique( array_map("serialize", $order_date_arr) ));
$smarty->assign('tablecontent', $order_date_arr);

Отображение:
<span class="no_print">
<a href="javascript:window.print()"><img src="images/print.gif" class="img_print">Печать отчёта</a>
</span>
<table width="70%" border="1">
  <tr>
	<td>Идентификатор</td>
	<td>ФИО</td>
	<td>Кол-во поездок</td>
  </tr>
  {foreach item=poluchatel from=$tablecontent}
  <tr>
  {foreach item=item from=$poluchatel}
	<td>{$item}</td>
  {/foreach}
  </tr>
{/foreach}
  <tr>
	<td>&nbsp;</td>
	<td>&nbsp;</td>
	<td>&nbsp;</td>
  </tr>
</table>



#32564 Создание таблицы в шаблоне

Отправлено от Rapman в 11 Февраль 2017 - 15:51 in Как это сделать

Ясно, благодарю. К этому склонялся, но решил уточнить.



#32556 Создание таблицы в шаблоне

Отправлено от Rapman в 11 Февраль 2017 - 02:26 in Как это сделать

Добрый день всем!
Возникла проблема. Раньше создавал шаблоны печати в .docx и хватало.
Теперь возникла необходимость создавать произвольные таблицы отчетов по клиентам, где заранее не знаешь, сколько строк будет. Я так понял, в Word и Excel нет четких команд по созданию строки в таблице. Остается html, но и тут все оказалось грустно. В Smarty отключена обработка php- кода, я правильно понял? А как же тогда сделать пару SQL-запросов, вычислить переменные и набить массивы данными, прежде чем выводить это в Smarty? Или в Smarty тоже все это возможно?
Помогите пожалуйста разобраться.



#32555 Вывод данных из ВСЕЙ таблицы в шаблон docx

Отправлено от Rapman в 11 Февраль 2017 - 01:09 in Как это сделать

Всем добрый день.
В результате каких-то шаманских действий добился результата.
Вот код, выводящий даты в столбик:
//В таблице заявок:
$cur_rec = data_table("Заявки", "id={ID}");
$fio = $cur_rec["ФИО получателя"];
$sql_order = "SELECT `f5951` FROM ".DATA_TABLE."331
WHERE `f5831` = ".$fio."
AND MONTH(`f5951`) = MONTH(NOW())
AND YEAR(`f5951`) = YEAR(NOW())
AND `status` = 0";
$res_order = sql_query($sql_order);
while($row_order=sql_fetch_assoc($res_order))
$order_date_arr[] = form_local_time($row_order['f5951']);
$order_date_str = implode(", \r\n", $order_date_arr);
return $order_date_str;
Отсюда последний вопрос(на эту тему): что значат первые 2 строки? Я по остальному встречал информацию в документации по php и SQL, но эти строки- пока что магия для меня...



#32370 Вывод данных из ВСЕЙ таблицы в шаблон docx

Отправлено от Rapman в 29 Декабрь 2016 - 02:28 in Как это сделать

Alien, CbCoder, maksn - благодарю за участие.

Все работает, кроме одного. в $client_id всегда ложится NULL. Даты выводит в строку, если без него.
Сейчас пытаюсь понять, что там вообще лежит и как его взять.



#32347 Вывод данных из ВСЕЙ таблицы в шаблон docx

Отправлено от Rapman в 26 Декабрь 2016 - 02:46 in Как это сделать

Добрый день всем!
Немного запутался, прошу помочь.
Есть таблица "Заявки" с заказами клиентов(получателей). Для ежемесячной отчетности нужно печатать docx по КАЖДОМУ клиенту. Что выводить: все даты списком, когда выполнялся заказ. Например, Вася в декабре 10 раз заказывал услугу(она у нас одна), есть 10 записей в таблице "Заявки". Ставим галку на одной из записей и нажимаем-распечатать-отчет за текущий месяц. Вывелись в столбик все даты выполнения заказа. Далее нажимаем Петю и тд.
Я так понял, вычисляемая переменная может действовать ИСКЛЮЧИТЕЛЬНО в пределах выделенной строки? А есть возможность как-то сортировать и выводить данные из всей таблицы в шаблон печати?
Вот набросал примерный код, там много ошибок вероятно:
$cur_rec = data_table("Заявки", "id={ID}");
$data = data_table("Карточки получателей", "id=".$cur_rec["ФИО получателя"]);
$fio = $data["ФИО"];
$sqlQuery = "SELECT 'f5951'
			 FROM ".DATA_TABLE."331
			 WHERE 'f5831' = '".$fio."'
			   AND MONTH(`f5951`) = MONTH(NOW())
	  AND YEAR(`f5951`) = YEAR(NOW())
			   ";
$vyborka = sql_query($sqlQuery);
$row = sql_fetch_assoc($vyborka);
return $row;

Покрутив его пару вечеров, понял, что дело не в кривости кода, а наверно в том, что мой SELECT лежит как-бы внутри вашего программного SELECTа, который сразу берет одну запись и не позволяет работать с всей таблицей, что бы я там внутри переменной не прописал...
Вот код, который почему-то выводит всего одну строку(в каком-то db-шном виде):
$sqlQuery = "SELECT *
			 FROM ".DATA_TABLE."331
			 ";
$vyborka = sql_query($sqlQuery);
$row = sql_fetch_array($vyborka);
$str = serialize($row);
  return $str;
Еще вот над чем думаю. В этой таблице создал поле типа связь "ФИО"(оно вообще не выводится через SQL, но пока не об этом), а потом сделал эту таблицу подчиненной к таблице "Карточки клиентов" - тоже по "ФИО" связь. В итоге, при открытии карточки клиента, открываются все записи с его заказами. Может можно через SQL обращаться к этой таблице, как-то иначе, как к подчиненной таблице другой таблицы? И тогда можно будет выбирать данные из всех записей?



#32345 Дата в шаблоне docx

Отправлено от Rapman в 22 Декабрь 2016 - 22:22 in Как это сделать

Спасибо, работает



#32329 Дата в шаблоне docx

Отправлено от Rapman в 15 Декабрь 2016 - 15:49 in Как это сделать

Просмотр сообщенияCbCoder (15 Декабрь 2016 - 09:28) писал:

код
Шикарно, благодарю.
И еще вопрос- как сделать, чтобы число выводилось в кавычках? Например, "25" декабря 2015.


Просмотр сообщенияCbCoder (15 Декабрь 2016 - 09:28) писал:

так поля связи не делают
Да, мне еще много предстоит узнать...



#32326 Дата в шаблоне docx

Отправлено от Rapman в 14 Декабрь 2016 - 17:54 in Как это сделать

Просмотр сообщенияCbCoder (13 Декабрь 2016 - 09:57) писал:

А в $data["Дата договора"] какое значение лежит, в данном случае? И тип у поля "дата" или "текст"?
Лежит получается "0000-00-00", хотя должно подтягивать 20.12.2015. Тип поля...в таблице "Карточки клиентов"- datetime. Но шаблоны печатаю из таблицы "Договор", в которой это поле типа "связь" с тем же полем таблицы "Карточки клиентов". Стандартные значения он нормально подтягивает в docx. Например, DOCVARIABLE Дата_договора.Дата_договора. Видимо, проблема не только в ошибке преобразования даты. Оно еще и дату не может взять из таблицы. Пробовал сменить в коде таблицу на "Договор"- то же самое. В docx выводит в лучшем случае 1 января 1970.
Прикрепил скрин?зображение



#32312 Дата в шаблоне docx

Отправлено от Rapman в 13 Декабрь 2016 - 03:11 in Как это сделать

Просмотр сообщенияCbCoder (27 Февраль 2012 - 10:06) писал:

Обновите ревизию до последней. Возможно ошибка исчезнет, возможно что нет, но в любом случае необходим свежий текст ошибки.



$data = data_table("Командировочные удостоверения","id={ID}");
$result = $data["Начало командировки"];
return data2str(strtotime($result),'F');

Подскажите пожалуйста, а как сделать, чтобы выводило в формате: " "12" декабря 2016 " ?
И еще. Такой код:
$data = data_table("Карточки клиентов","id={ID}");
$result = $data["Дата договора"];
return data2str(strtotime($result));
Выдает результат:
'30 ноября -0001'
Причем всегда эта дата(в таблице такой нет). Пробовал добавлять форматы 'd F Y', 'j' и тп- все выдает производные этой даты.
Нагуглил решение проблемы, но самостоятельно суть решения не осилил. Там что-то о несоответствии системного формата даты-времени с пользовательским(которым оперирует пользователь в процессе вычисления переменных в своем коде). Вот:
public function formatDateBack($dtm)
{	  
    if(is_null($dtm) || $dtm == '0000-00-00') return 'whatEverYouLike';
    $datum = new DateTime($dtm);
    return $datum->format('d.m.Y');
}