Получение отчета, хранящегося на диске

У меня есть отчет, сохраненный в виде файла.cfm. Я был в состоянии восстановить это хорошо с чтением cffile. Теперь я хочу получить только часть отчета, скажем, первые 50 строк. Я решил попробовать fileReadLine():

<cfset repname = url['rep']>
<cfset type = url['type']>

<cfset dataFile = fileOpen("/var/www/reports/moxrep/#repname#.cfm", "read" ) >
<cfset i = 0>
<cfoutput>
<cfloop 
condition = "NOT FileIsEOF(dataFile) AND i LT 100">
<cfset i = i + 1>
<cfset inf = fileReadLine( dataFile ) > 
 #inf#
</cfloop>
</cfoutput>
<cfset fileClose( dataFile ) >  

Это не получило вещи вообще правильно. Форматирование было испорчено. Все динамические данные в отчете отсутствовали. CSS ссылки не работали. И было много лишних пустых строк.

Я делаю что-то неправильно? Или fileReadLine просто не предназначен для получения отформатированного отчета? И если нет, есть ли способ получить только часть отчета с помощью cffile?

2 ответа

Используйте cfhttp, чтобы получить отчет, затем возьмите этот результат и уменьшите его до того, что вам нужно.

Я не уверен, что вы понимаете, что функция FileOpen() фактически читает необработанный шаблон CFML и фактически не выполняет запросы, которые заполняют ваш отчет. Использование тега CFHTTP, безусловно, является лучшим подходом, но будьте осторожны, потому что ваша отрендеренная страница, скорее всего, будет содержать весь ваш CSS, который будет необходим для правильной визуализации отчета, поэтому используйте View Source в своем отчете, чтобы увидеть, хотите ли вы только 50 строк.

У меня в голове вопрос: "Зачем?", Вы хотите всего 50 строк? вы просматриваете отчет? это всего 1 страница? Вы встраиваете его в приборную панель? Возможно, вы захотите изменить.cfm "отчет", чтобы область, которую вы хотите отобразить в другом месте, была обернута определенным тегом (например, Span или даже чем-то другим), а затем, когда вы извлекаете отчет с использованием CFHTTP, вы можете проанализируйте результаты с помощью функции XMLParse() (при условии, что она правильно отформатирована) и отобразите тот раздел отчета, который вам действительно нужен.

Другие вопросы по тегам