Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.11.23;
Скачать: CL | DM;

Вниз

Быстро и сердито, красиво показать таблицу   Найти похожие ветки 

 
ВладОшин ©   (2014-04-10 09:30) [0]

Есть задача красиво выводить таблицу
// (на большие экраны, но это не важно, пусть на форму на весь экран на разных мониторах )
разные экраны, разные таблицы, данные и сами таблицы, в идеале, динамические.
Получаются из запроса к БД. Обновление раз в 5 мин, допустим.

проблема 1.
один манагер свою таблу хочет выводить все строки/столбцы равны, шрифт один. Второй хочет одни строки меньше, другие больше и "поиграть шрифтами"

Первое ,что приходит в бестолковку - html. Форма на весь экрран, браузер на всю форму, шаблон html в БД. В нем разметка аля
tr
 td #тут показатель х1# td  td #тут показатель х2# td
tr
перед показом все #тут показатель х1# стрингреплейснуть на данные запроса.
итого в БД таблица с 2мя полями html_pattern, sql_text
Читаем шаблон, sql. Выполняем sql, заменяет разметку в шаблоне на одноименные поля, кажем.

из ++   Дешево и быстро.
+ любой дурак в worde нарисует таблицу любой сложности/раскраски. Останется написать запрос и сохранить оба текста
+ не надо пересчитывать как оно там подвинется если это число станет больше, тут шрифт поменяется и т.п. Браузер html подгонит по пропорциям.
и быстро.

А как бы Вы сделали?


 
junglecat   (2014-04-10 09:36) [1]

> + любой дурак в worde нарисует таблицу любой сложности/раскраски

это же и минус. Потому что веб-дизайнер из дурака с вордом чуть менее, чем никакой.
Но идею самого хтмл это, конечно же, не отменяет.
Среда - Дельфи?
Я бы посмотрел еще в сторону каких-нибудь pdf и xls шаблонизаторов.
Либо умных гридов типа EhLib или Девок.


 
antonn ©   (2014-04-10 09:42) [2]


> А как бы Вы сделали?

html, но через THTMLViewer/ThtmlLite, а не Twebbrowser.


 
ВладОшин ©   (2014-04-10 10:05) [3]

да, delphi. Шестерка :)
и это не обсуждается. почти :)
Ну если только совсем красиво и быстро к изменениям на чем либо еще сделать.
Еще рассматриваю powerpoint. Но я там к БД не могу обращаться. Надо почитать еще. А так там еще красивее можно сделать.


 
Dennis I. Komarov ©   (2014-04-10 10:16) [4]


> Первое ,что приходит в бестолковку - html. Форма на весь
> экрран, браузер на всю форму, шаблон html в БД. В нем разметка
> аля

Выдавай на выходе xml, с сылкой на xsl
Example:
<?xml-stylesheet type="text/xsl" href="stylesheet/knd1114307.xsl"?>
Кому что надо, тот то и нарисует

P.S.
До сих пор не понимаю почему народ сие так редко использует.


 
antonn ©   (2014-04-10 10:28) [5]


> До сих пор не понимаю почему народ сие так редко использует.

потому что 99% "тот кому надо" хочет готовой визуальщины, а не каких-то промежуточных форматов-шаблонов


 
Dennis I. Komarov ©   (2014-04-10 10:34) [6]


> потому что 99% "тот кому надо" хочет готовой визуальщины,
>  а не каких-то промежуточных форматов-шаблонов

А что, есть проблема показать в TWebBrowser?


 
ВладОшин ©   (2014-04-10 10:41) [7]


>  xml, с сылкой на xsl

Загуглил. Подходит. Почитаю.
Спасибо :)


> antonn ©  

совсем без делфи.. нежелательно :)
Потом это с вероятностью 90%% будет встроено в основную программу(ы), а там все на делфи (еще даже шестерке) писано


 
antonn ©   (2014-04-10 10:49) [8]


> А что, есть проблема показать в TWebBrowser?

какие могут быть проблемы в использовании тяжеловесного контрола завязанного на системные настройки? вот именно - те самые :)
самопал что я выше написал позволяет отображает простой html +css в самодостаточном приложении


 
Inovet ©   (2014-04-10 10:51) [9]

Генретор репортов совсем не рассматриваешь?


 
ВладОшин ©   (2014-04-10 10:54) [10]


> Inovet ©   (10.04.14 10:51) [9]
>
> Генретор репортов совсем не рассматриваешь?

почему не..
да, кстати.

срок примерно две недели, не спеша можно все "порассмотреть"
времени еще вагон и маленькая тележка :)


 
Inovet ©   (2014-04-10 10:57) [11]

> [10] ВладОшин ©   (10.04.14 10:54)
> да, кстати.

В ФР и выгрузка в PDF тот же есть, и в HTML, и ещё много во что с одновременным показом можно.

Кстати, новую версию выпустили, дорогой стал.


 
ВладОшин ©   (2014-04-10 11:03) [12]

только желательно, что бы программист не занимался дизайном
потому что начнется: "не такое зеленое/ недостаточно крупно"
хотелось бы что б манагер мог сам нарисовать и сказать: вот шаблон, вот тут за последние 15 минут сумма, тут с начала месяца, тут среднее за год

написал запрос, загрузил, профит. Манагеру можно дать право забрать шаблон, поправить, загрузить заново. А манагер, как правило, знает только word|excel


 
Ega23 ©   (2014-04-10 11:17) [13]

Excel?


 
ВладОшин ©   (2014-04-10 11:31) [14]


> Ega23 ©   (10.04.14 11:17) [13]
>
> Excel?

внедренный на всю форму ole объект?


 
Ega23 ©   (2014-04-10 11:36) [15]


> внедренный на всю форму ole объект?


Почему? Просто октрыть Excel.


 
antonn ©   (2014-04-10 11:37) [16]


> внедренный на всю форму ole объект?
>

парсинг шаблона, импорт в html и вывод на форму


 
ВладОшин ©   (2014-04-10 11:54) [17]


> Просто октрыть Excel.

по краям и сверху бордюры получаются


> парсинг шаблона, импорт в html

вот если так. Сказать делать в экселе, сохранять как html. А html уже парсить/выводить. Но уже трабла.. Текст под углом не идет.

На хабре нашел, как делать, но это только один момент. Когда уже будет все работать можно быстро не найти потом что-нибудь еще


 
это все ...   (2014-04-10 12:00) [18]

хотелось бы что б манагер мог сам нарисовать и сказать: вот шаблон, вот тут за последние 15 минут сумма, тут с начала месяца, тут среднее за год


Йоксель.
Причем без всяких подпорок типа делфи.
форматирование оставить на усмотрение жертвы.
данные тянуть макросом или веб-запросом


 
ВладОшин ©   (2014-04-10 12:49) [19]


> без всяких подпорок типа делфи.

будет неудобно.
Программа может представиться серверу, получить нужный доступ, быть встроена в текущую консоль управления как + 1 вкладка в tabsheet и т.д.

Потом, неплохо бы сначала сказать сервреру: я экран такой, что мне показывать? Он дает запрос, котоый вытаскивает запрос, который надо выполнять. т.о. все экраны с одного места управляются.
Думаю, макросами плохо это все будет делать


 
это все ...   (2014-04-10 12:56) [20]

эксель может сказать серверу ровно столько же сколько ваша делфийская вкладка.


 
Dennis I. Komarov ©   (2014-04-10 13:17) [21]

экселя может и не быть на машине...


 
ВладОшин ©   (2014-04-10 14:50) [22]

не, чисто эксель не подойдет.
потом, что бы поправить придется понимать не только логику управляющего delphi - приложения, но и разбираться в vba-макросах.

Эксель встроенный в форму - пока оптимальнее всего.
Ща прикину, время вроде появилось :) По результатам отпишу, поди будете ждать же :)


 
antonn ©   (2014-04-10 14:57) [23]


> потом, что бы поправить придется понимать не только логику
> управляющего delphi - приложения, но и разбираться в vba-
> макросах.

видимо основная сложность что ничего кроме дельфи в багаже нет? :)


 
ВладОшин ©   (2014-04-10 15:08) [24]


> видимо основная сложность что ничего кроме дельфи в багаже
> нет? :)
>

ну, не без этого :)
а ты что, на работу брать собрался, спрашиваешь? Я к злым не пойду :)


 
antonn ©   (2014-04-10 15:45) [25]

я не злой, просто вижу упорное желание заюзать дельфи и оговорку про vba :)
мне, кстати, тоже предстоит сделать информационное табло, с инфой из системы типа zabbix, на выбор дельфи, шарп и что нибудь в вебе (асп, пхп). вроде выбор есть, а выбора-то особого и нет :)


 
ВладОшин ©   (2014-04-10 15:46) [26]


> выбора-то особого и нет :)

т.е.
> что нибудь в вебе (асп, пхп).
?


 
antonn ©   (2014-04-10 15:47) [27]


> т.е.
> > что нибудь в вебе (асп, пхп).
> ?

есть вариант браузер по F11 открывать на весь экран, а там уже яваскрипт, верстка и серверная часть


 
Dennis I. Komarov ©   (2014-04-10 16:13) [28]


> есть вариант браузер по F11 открывать на весь экран, а там
> уже яваскрипт, верстка и серверная часть

Да не надо никаких ява и пр...

пишешь сервер, который отдает xml по http с сылкой на xsl на жестком диске. на жесткий диск кладешь кому какой надо шаблон.
немного изучаешь http (Keep-Alive и т.п.)
Готово, любой браузер показывает желаемое.
Это самое простое, если немножко усложнить, то шаблоны можно хранить на сервере и выбирать его параметром в get


 
antonn ©   (2014-04-10 16:14) [29]


> Да не надо никаких ява и пр...

это тебе не надо, а мне надо, потому что данные нужно на странице обновлять каждую минуту


 
Dennis I. Komarov ©   (2014-04-10 16:16) [30]

P.S. если xsl отдает сервер, то клиента мы не привязываем к мелкомягким, хоть дроид на планшете


 
Dennis I. Komarov ©   (2014-04-10 16:18) [31]


> это тебе не надо, а мне надо, потому что данные нужно на
> странице обновлять каждую минуту

изучаем http


 
antonn ©   (2014-04-10 16:21) [32]


>
> изучаем http

бегу и прыгаю.
зачем так угрюмо телепатировать не зная деталей?


 
Dennis I. Komarov ©   (2014-04-10 16:32) [33]


> зачем так угрюмо телепатировать не зная деталей?

так никакой телепатии:

> потому что данные нужно на странице обновлять каждую минуту

это можно без JS, а вот есть ли уверенность, что JS на клиенте не отключен?

Впрочем я предлагаю вариант для задачи Романа (он то ее описал) и некоим образом никому ее не навязываю. ИМХО это самый быстрый и простой вариант: получили GET, запрос к БД, формируем xml, выплюнули в TCP обратно предварительно обернув http


 
Dennis I. Komarov ©   (2014-04-10 16:34) [34]


> для задачи Романа

* Влада, чей-то с Kerk-ом перепутал :))


 
antonn ©   (2014-04-10 16:42) [35]


> так никакой телепатии:

аякс.


 
Dennis I. Komarov ©   (2014-04-10 17:01) [36]


> аякс.

Во-первых это не страница (которую надо обновлять).
Во-вторых, дочитываем [33] до конца ;)


 
ВладОшин ©   (2014-04-10 17:16) [37]

>>  с Kerk-ом перепутал
ну это да :) Рома сильно удивится , что задачи какие-то у него есть тут :)

насчет http.. писал. и на php и на delphi
недавно websocket освоил. WS - все руками, разбор заголовков, ответ и т.п.
все это геморно показалось.

В общем, решил так: Excel как OleObject, который alClient на форме
Текст под углом/ картинка / график - Как видим так показывает.
что проще..


 
antonn ©   (2014-04-10 17:18) [38]


> Во-первых это не страница (которую надо обновлять).
> Во-вторых, дочитываем [33] до конца ;)

во-первых я не говорил за страницу, во-вторых это был ко мне вопрос для чего [b]мне[/b] понадобился вариант "серверного языка" с [25].

автору, возможно, тоже было бы подходящим вариантом, но тогда из дельфи тут будет лишь вебсервер, но с версткой придется тоже разобраться. в этом случае конечный пользователь так же независим от платформы (да и от установки софта, если используется браузер), только в отличии от XSL он получит готовую "картинку", а не ведро данных которые кому-то еще придется визуализировать.


 
Dennis I. Komarov ©   (2014-04-10 17:44) [39]


> В общем, решил так: Excel как OleObject, который alClient
> на форме
> Текст под углом/ картинка / график - Как видим так показывает.
>
> что проще..

Ну, хозяин-барин, но тут ты как минимум к установленному ёкселю привязываешься, да и с различными версиями можешь получить глюксы (хотя не факт)


 
Dennis I. Komarov ©   (2014-04-10 17:47) [40]


> только в отличии от XSL он получит готовую "картинку", а
> не ведро данных которые кому-то еще придется визуализировать.
>

это сделает сам браузер, если xsl-ка будет доступна. Если ее будет отдавать сервер, то не вижу проблем...


 
имя   (2014-04-10 20:12) [41]

Удалено модератором


 
имя   (2014-04-10 20:15) [42]

Удалено модератором


 
Inovet ©   (2014-04-10 20:22) [43]

> [12] ВладОшин ©   (10.04.14 11:03)
> только желательно, что бы программист не занимался дизайном
> потому что начнется: "не такое зеленое/ недостаточно крупно"
> хотелось бы что б манагер мог сам нарисовать

Тогда и не стоит репорт ради единственного, хоть и развесито-разнообразного экрана.


 
имя   (2014-04-11 09:03) [44]

Удалено модератором


 
имя   (2014-04-11 09:09) [45]

Удалено модератором


 
имя   (2014-04-11 09:20) [46]

Удалено модератором


 
имя   (2014-04-11 09:33) [47]

Удалено модератором


 
petr   (2014-04-11 11:21) [48]

cxGrid и сохранение настроек (которых чуть более чем много для любого манагера) в файл, реестр, в базу, на мобильник, на луну


 
это все ...   (2014-04-11 11:56) [49]

пять строк в фар-едиторе на повершелле 2.0
и АутГридВью результата в конце


 
sniknik ©   (2014-04-11 13:57) [50]

> А как бы Вы сделали?
> только желательно, что бы программист не занимался дизайном
сервлет (встроенный в программу вебсервер) на дельфи генерирующий страницу с таблицей, в самом примитивном, без стилей виде. + плагин типа Stylish на клиенте кому "нужно красиво", пусть настраивают (если нужно общее, можно к ним на сервер общий клиентский css выложить).


 
ВладОшин ©   (2014-04-15 16:19) [51]

н-да.. был не прав.. OleContainer не достаточно..

 Надо два OleContainer! :))

В общем,
на одном строится, другой показывается, потом переключение
Все - тексты под углом, цвета, картинки, диаграммы, графики  - все меняется рилтайм, никаких подергиваний. Редактирование шаблона на лету.

ну-ка, кто изобразит все это в
> пять строк в фар-едиторе на повершелле 2.0


?


 
имя   (2014-04-15 16:29) [52]

Удалено модератором



Страницы: 1 2 вся ветка

Текущий архив: 2014.11.23;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.009 c
15-1397421007
Юрий
2014-04-14 00:30
2014.11.23
С днем рождения ! 14 апреля 2014 понедельник


11-1253891939
Dy1
2009-09-25 19:18
2014.11.23
курсор


3-1301315020
samalex2504
2011-03-28 16:23
2014.11.23
В IB связать, отфильтровать и вывести несколько больших ХП


4-1270489835
Decoding
2010-04-05 21:50
2014.11.23
CreateMessageDialog


2-1384998017
MonoLife
2013-11-21 05:40
2014.11.23
ToolButton в ToolBar всегда по правому краю.