Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Закрасить ячейку таблицы / 14 сообщений из 14, страница 1 из 1
02.11.2009, 12:36
    #36285644
majesty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Подскажите как закрашивать ячейки отчета, желательно sql+html.

<td bgcolor="red">  </td> пробовал, не работает т.к. не попадает внутрь <td> ячейки
...
Рейтинг: 0 / 0
02.11.2009, 12:50
    #36285696
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Закрашивать построчно, по столбцам, шахматами, по клику?
-------------------------------------------------------
When I say "RTFM" or "STFF" or "STFW",
the third letter means "Following" or "Fine"...
...
Рейтинг: 0 / 0
02.11.2009, 12:54
    #36285712
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
В любом случае - вот пример работы с шаблоном отчёта , начните с него. :)
-------------------------------------------------------
When I say "RTFM" or "STFF" or "STFW",
the third letter means "Following" or "Fine"...
...
Рейтинг: 0 / 0
02.11.2009, 14:24
    #36285967
majesty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
2suPPLer

Закрашивать ячейки исходя из наполнения таблицы. статичным html
...
Рейтинг: 0 / 0
02.11.2009, 15:58
    #36286293
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
majesty,

подробней, пожалуйста. Все чётные ячейки, все ячейки с отрицательными суммами, первые десять ячеек?
...
Рейтинг: 0 / 0
02.11.2009, 17:18
    #36286567
majesty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Ну, допустим есть таблица

| key |m1 | m2 |
| 1 | 1 | 0 |
| 2 | 0 | 1 |
| 3 | 1 | 1 |

хочу чтобы ячейки с нулями были закрашены, а с единицами незакрашены
...
Рейтинг: 0 / 0
02.11.2009, 17:35
    #36286638
Legi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
моё примитивное решение (есть наверно что-то и по-лучше):

Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
t.key,
DECODE(t.m1, 0 ,'<div style="background-color:red">'||t.m1||'</div>'
                    ,t.m1),
DECODE(t.m2, 0 ,'<div style="background-color:green">'||t.m2||'</div>'
                    ,t.m2)
FROM my_table t
...
Рейтинг: 0 / 0
02.11.2009, 17:57
    #36286734
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Legi,

а теперь попробуйте отсортировать столбец с такими ячейками прямо на странице. :)

majesty,

JavaScript категорически не допускается?
...
Рейтинг: 0 / 0
02.11.2009, 18:53
    #36286871
Legi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
suPPLer,

задача стояла "закрасить" :))
...
Рейтинг: 0 / 0
02.11.2009, 19:51
    #36286940
majesty
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Код: plaintext
1.
2.
3.
4.
5.
6.
Legi,

а теперь попробуйте отсортировать столбец с такими ячейками прямо на странице. :)

majesty,

JavaScript категорически не допускается?

Не категорически.Желательно без него.Буду благодарен любым вариантам



Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT
t.key,
DECODE(t.m1, 0 ,'<div style="background-color:red">'||t.m1||'</div>'
                    ,t.m1),
DECODE(t.m2, 0 ,'<div style="background-color:green">'||t.m2||'</div>'
                    ,t.m2)
FROM my_table t

Я правильно понимаю, что с <div> полную заливку ячейки не сделать? будет оставаться незакрашенный кусок?
...
Рейтинг: 0 / 0
02.11.2009, 23:07
    #36287149
Legi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
majesty,

будет примерно вот так:
...
Рейтинг: 0 / 0
03.11.2009, 01:00
    #36287217
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
majesty,

как сделал бы я:
0. Добавил в приложение jQuery, включил его в страницу.
1. К столбцу в запросе, ячейки которого нужно в зависимости от условия закрашивать, добавил бы следующее:
Код: plaintext
1.
2.
3.
select ...
 , our_col || case when <условие> then '<span class="colored" />' end as ...
...
from ...
2. В Footer региона страницы добавил:
Код: plaintext
1.
2.
3.
4.
<script type="text/javascript">
  $(document).ready(function(){
    $("span.colored").parent().css({"background-color": "red" /*Красный фон, к примеру*/ });
  });
</script>
3. Если таких отчётов планируется много (больше двух), сделал бы шаблон отчёта.
...
Рейтинг: 0 / 0
03.11.2009, 21:29
    #36289509
Poyasnoy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
В развитие идеи Legi , но без искажения данных:
Добавляем в запрос еще один столбец, например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
select ORDER_ITEM_ID,
	 ORDER_ID,
	 PRODUCT_ID,
	 UNIT_PRICE,
	 QUANTITY ,
         decode(mod(PRODUCT_ID, 2 ), 1  ,'style="background-color:red"') divattr 
 from	 DEMO_ORDER_ITEMS

Для столбца отчета DIVATTR устанавливаем
Код: plaintext
Show Column NO


Для столбца, который нужно раскрашивать (например PRODUCT_ID) в Column Formatting HTML Expression ставим <div #DIVATTR#>#PRODUCT_ID#</div>
...
Рейтинг: 0 / 0
03.11.2009, 23:19
    #36289633
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрасить ячейку таблицы
Poyasnoy,

ну и если дальше развивать, то, следуя принципу "HTML in SQL and PL/SQL is bad", просто добавить в Column Formatting->HTML Expression необходимую обёртку-тег с class="...", выбирать все ячейки, проверять значения и раскрашивать при помощи JS. Значения для проверки можно держать в (скрытых) элементах...

Хотя озвученный принцип не все поддерживают. :)
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Закрасить ячейку таблицы / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]