2013-08-01 4 views
2

В продолжении предыдущего потока я достиг довольно близко к тому, где хочу, и многому научился. Я под CF10 в среде MSSQL Server 2008. У меня есть отчет, который я генерирую с использованием cfspreadsheet, а затем выплескивая значения на основе того, имеет ли пользователь приложение, которое будет выводиться как «Да», и если оно не выводится как «Нет» в таблице Excel.Применение условного форматирования с CFSpreadsheet

Проблема в том, что мне нужно сделать это немного проще на глазу, и поэтому я хотел посмотреть, можно ли применить условное форматирование туда, где, если 3 столбца с 3 различными приложениями Y, тогда он будет зеленым и если N будет красным.

Любые предложения или примеры были бы замечательными, спасибо!

+0

Мое предложение состоит в том, чтобы создать структуру для каждого формата, который вы собираетесь использовать, включая простой jane. Затем используйте условную логику для выбора структуры в любой используемой вами функции форматирования. Есть два из упомянутых в ответах, опубликованных до сих пор. –

ответ

2

Как я уже говорил in your other thread, если вы возвращаете bit значения (не строки), просто применить пользовательский формат ячейки. Но вы должны использовать функции электронной таблицы, а не cfspreadsheet (который не поддерживает настраиваемое форматирование).

Вот реальный пример показать, как вы могли бы включать условное цветовое форматирование:

<cfscript> 
    // build sample query 
    // note: values must be numeric and NOT text/varchar 
    qData = queryNew(""); 
    queryAddColumn(qData, "AppNameAlpha", "bit", listToArray("0,0,1,0,1")); 
    queryAddColumn(qData, "AppNameBeta", "bit", listToArray("1,1,0,0,1")); 

    // create sample sheet 
    sheet = spreadsheetNew(); 
    spreadsheetAddRows(sheet, qData); 
    // apply colorized yes/no format 
    spreadsheetFormatColumns(sheet, {dataformat='[Green]"Y";;[Red]"N"'}, "1-2"); 
    spreadsheetWrite(sheet, "c:/path/to/sheet.xls", true); 
</cfscript> 

«DataFormat» использует первые три секций пользовательского числа в Excel форматирования: <positive><negative><zero>. Перевод:

[Green]"Y"; // <positive values>: display "Y" in green 
;    // <negative values>: do nothing extra 
[Red]"N"  // <zero values>: display "N" in red 
+0

Извините, это именно то, что я использую «функции электронных таблиц» для применения существующего форматирования. Если бы у меня закончилась некоторая плохая терминология. Я посмотрю, что я могу придумать; снова большое спасибо за вашу помощь. – bman2013

+0

Довольно многое, что только что сказал Ли. Чем больше я думал о своем предыдущем ответе, тем больше я думал, что лучше передавать результаты как бит вместо текста, а затем обрабатывать форматирование в коде, особенно если вы хотите использовать условную логику для изменения цветов ячеек. Идеи Ли - это путь. :-) – Shawn

+0

Шон - Да, это оказалось одним из вопросов типа «это зависит от цели» :) – Leigh

Смежные вопросы