AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны
Добавлено: 11 Март 2024, 12:08
Смешно. Это ты не график строишь, а 2 области цветом выделяешь...
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
А мы не программы пишем, а, лишь, строчки кода набираем?
Код: Выделить всё
FsGraphDoAs_r routine !построение графика (anyscreen)
data
lor:name string(40)
code
fsFileMakerL.init()
fsFileMakerL.AddOutLine('<DOCTYPE html>')
fsFileMakerL.AddOutLine(' <html>')
fsFileMakerL.AddOutLine(' <head>')
fsFileMakerL.AddOutLine(' <script src="https://www.google.com/jsapi"></script>')
fsFileMakerL.AddOutLine(' <script>')
fsFileMakerL.AddOutLine(' google.load("visualization", "1", {packages:["corechart"]});')
fsFileMakerL.AddOutLine(' google.setOnLoadCallback(drawChart);')
fsFileMakerL.AddOutLine(' function drawChart() {{')
fsFileMakerL.AddOutLine(' var data = google.visualization.arrayToDataTable([')
fsFileMakerL.AddOutLine(' [''Товары'', ''Сумма''],')
loop i#=1 to records(loc:queue)
get(loc:queue,i#)
if error()
break
.
if i#>15
break
.
if loc:reg1=0
FsPrimary:TovarGr(Loc:IDObj)
lor:name=choose(TovGr:Mnem='',tovGr:name,TovGr:Mnem)
else
FsPrimary:Directs(Loc:IDObj)
lor:name=choose(Dirs:Mnem='',Dirs:Name,Dirs:Mnem)
.
fsFileMakerL.AddOutLine(' [''' & clip(lor:name) & ''',' & loc:sum & ']' & choose(i#=records(loc:queue) or i#=15,'',',')
.
fsFileMakerL.AddOutLine(' ]);')
fsFileMakerL.AddOutLine(' var options = {{')
fsFileMakerL.AddOutLine(' title: ''' & clip(Loc:Zag1) & ''',')
fsFileMakerL.AddOutLine(' is3D: true,')
fsFileMakerL.AddOutLine(' pieResidueSliceLabel: ''Остальные''')
fsFileMakerL.AddOutLine(' };')
fsFileMakerL.AddOutLine(' var chart = new google.visualization.PieChart(document.getElementById(''container''));')
fsFileMakerL.AddOutLine(' chart.draw(data, options);')
fsFileMakerL.AddOutLine(' }')
fsFileMakerL.AddOutLine(' </script>')
fsFileMakerL.AddOutLine(' </head>')
fsFileMakerL.AddOutLine(' <body>')
fsFileMakerL.AddOutLine(' <div id="container" style="width: 100%; height: 100%;"></div>')
fsFileMakerL.AddOutLine(' </body>')
fsFileMakerL.AddOutLine('</html>')
if fsFileMakerL.MakeString()=0
fsFileMakerL.kill
exit
.
AnyScreen:SetProperty(?IMAGE1, PROP:HTML, fsFileMakerL.StringBuf)
fsFileMakerL.kill
Я думаю, что несколько иное. Синусы, косинусы, радиусы, число пи и т.п. То, что ты привел в качестве примера, это простой скрипт для закрашивания 2 прямоугольных областей через стили. Даже я, при небольшом опыте программирования под веб, легко его читаю. Если взять реальные графики, то там много программировать надо. Это примерно как svgraph написать на javascript. А смысл, если есть бесплатные библиотеки с примерами использования?Губин Игорь писал(а): ↑11 Март 2024, 12:32А мы не программы пишем, а, лишь, строчки кода набираем?
Требовался набор столбчатых парных диаграмм - выведен набор столбчатых парных диаграмм. Ты думаешь, что в больших пакетах будет нечто иное?!
По секрету: именно итоговую генерацию одного из пакетов я и раздраконил, подправил под себя и минимизировал, убрав лишние украшательства, параметры дополнительных настроек на цвета, количество столбцов, отступы, тексты... Сведя всё к простенькому коду.
Если аккуратно покопаешься, то и для линейных и прочих графиков найдёшь...
Для тех, кто в Абрамсе , повторяю ещё раз: мне не нужен был весь бесконечный функционал пакета вроде осей измерений, сопровождающего текста, форматов надписей... Я взял готовый пакет, пролопатил его и вытащил лишь то, что мне было надо, избавившись от всего, что могло впустую грузить канал и тормозить программу. Ну и кучу вычислений из него перенёс в программу. Ты спрашивал возможно работать без внешних ссылок, я показал, что да. Если тебе нужны все функции пакета, но опасаешься грузить со сторонних серверов, то в браузере есть ссылки на текстовый файл с кодами пакета. И ничто не мешает скопировать его на свой сервер. Я, первоначально, так и сделал, но, по результатам итераций и "программисты мы или как", получил то, что показал. Если смотрел на картинку, то там выводится ещё масса всякого, но выводится через AnyScreen.
Это, как я понимаю, лишь кусок от AnyScreen. Там только Java и WinAPI. Т.е. то, чем не пользуемся.
Я заранее извиняюсь, что лезу в тему где ничего не понимаю ...What is window resizer?
Window resizer is a special algorithm which automatically adjusts the window size to screen resolution, as a designer would do.
Другого нет. Ролик лучше с переводом смотреть. Конечно, то, что там показано, в обычных приложениях давно работает. Например, пропорциональный/относительный ресайз контролов давно есть в ресайзере Струменского и, на мое восприятие, реализован проще.Игорь Столяров писал(а): ↑14 Март 2024, 9:40 Спасибо ! А можно ссылочку на ролик ? Хочется ведь быть в теме европейский новаций.
Потому что я вижу на этой странице только картинки и анимацию, где верний TOOLBAR
трансформируется в левый DOCKBOX для тех у кого монитор 4K и орлинное зрение.