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


Ссылки в представлении

представление отчет go_tabl

Сообщений в теме: 7

#1 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 28 Июнь 2014 - 15:23

Доброго дня. Прошу помощи разобраться с функцией go_table. Конкретно интересует, как правильно ее использовать, чтобы из отчета переходить по ссылкам в таблицы или записи, отфильтрованные по данным из текущего отчета. Можно на примере отображение из отчета "доходы по компаниям".
function go_table(company, type, nocompany)
{
    document.getElementById('_nocompany').value = nocompany;
    document.getElementById('_company').value = company;
    document.getElementById('_type').value = type;
    document.getElementById('report_form').submit();
}
<tr id="submain_td{$smarty.foreach.rows.iteration}" onmouseover="highlightTr({$smarty.foreach.rows.iteration}, 1)" onmouseout="highlightTr({$smarty.foreach.rows.iteration}, 0)">
		    <td style="text-align:left; border-left: 0px; border-right: 1px solid #B3BFC9;">{$data.company_name}</td>
		    <td><a href="javascript:go_table('{$data.full_name}','Месяц2')">{$data.month2} / {$data.smonth2}</a></td>
		    <td><a href="javascript:go_table('{$data.full_name}','Месяц')">{$data.month} / {$data.smonth}</a></td>
		    <td><a href="javascript:go_table('{$data.full_name}','Выбор')">{$data.choice} / {$data.schoice}</a></td>
		    <td style="border-right: none;"><a href="javascript:go_table('{$data.full_name}','Все')">{$data.all} / {$data.sall}</a></td>
	    </tr>

<input type=hidden name="_nocompany" id="_nocompany">
<input type=hidden name="_company" id="_company">
<input type=hidden name="_type" id="_type">
<input type=hidden name="xsl" id="xsl_ex" value="0" />

Что тут куда передается? Заранее спасибо.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 28 Июнь 2014 - 17:36

А что тут собственно говоря непонятно? Вы же сами выложили описание кода функции, из которого видно, что она просто напросто заполняет скрытые поля формы заданными значениями (в зависимости от того откуда она запускается), а затем делает submit этой формы, т.е. передает эти значения в "подготовку данных". Тут все очень банально и просто.

Если же вы хотите увидеть собственно переход в таблицу по "отфильтрованным данным", то это вам уже не в "отображение" надо смотреть, а в код подготовки данных, который и обрабатывает эти полученные от формы данные. Само отображение переход не совершает.

#3 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 28 Июнь 2014 - 22:53

Я так понимаю, это вот эта часть:
if ($_REQUEST['_type'])
    {
	  reset_filters(43);
	  if ($_REQUEST['_type']=="Выбор")
	    {
		  set_filter(436, "period", $date1, $date2);
	    }
	    elseif ($_REQUEST['_type']=="Месяц")
	    {
		  set_filter(436, "period", $date3, $date4);
	    }
	    elseif ($_REQUEST['_type']=="Месяц2")
	    {
		  set_filter(436, "period", $date5, $date6);
	    }
	  set_filter(455, "!=", "0.00");
	  if(!$_REQUEST['_nocompany']) set_filter(839, "=", form_input($_REQUEST['_company']));
	  header("Location: ".$config["site_root"]."/fields.php?table=43");
    }

Как я понял, тут устанавливается фильтр по некоему полю в зависимости от полученного значения. А конкретную таблицу открывает строка header()... А если дописать в ее конце &line=10, то переход будет осуществлен на конкретную запись. Так вот, как правильно получить номер этой записи из отчета?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 29 Июнь 2014 - 13:25

Если вам нужен переход в конкретную запись, зачем тогда все эти сложности с фильтром и передачей ему данных от отчета? В отдельную запись можно перейти сразу из отображения по ссылке из <a href=...>

#5 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 02 Июль 2014 - 22:36

А это мысль )) Порой простое решение не так очевидно. Спасибо, попробую.

#6 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 02 Июль 2014 - 22:40

И все же, может понадобиться переход не к записи, а к отфильтрованной таблице. Так что буду благодарен, если озвучите основные шаги для этого.

#7 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 02 Июль 2014 - 22:51

Вобщем, строка перехода к записи имеет вид :
domen.ru/view_line2.php?table=231&filter=281&line=2
т.е. тут надо передать номер строки. Что это за номер? При каком упорядочивании у строки будет номер 2? Как его вычислить на основе данных в полях? У меня в представлении будет выводиться отчет, каждая запись которого будет соответствовать записи в определенной таблице.

#8 Riddick

    Активный участник

  • Пользователи
  • PipPipPip
  • 70 сообщений

Отправлено 02 Июль 2014 - 23:09

Пардоньте, это же ID строки. Я тормоз )





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных