AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Смешно. Это ты не график строишь, а 2 области цветом выделяешь...
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Губин Игорь »

finsoftrz писал(а): 11 Март 2024, 12:08 Смешно. Это ты не график строишь, а 2 области цветом выделяешь...
А мы не программы пишем, а, лишь, строчки кода набираем? :facepalm:

Требовался набор столбчатых парных диаграмм - выведен набор столбчатых парных диаграмм. Ты думаешь, что в больших пакетах будет нечто иное?! :nono:

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

Если аккуратно покопаешься, то и для линейных и прочих графиков найдёшь...
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Вот для образца код построения кругового графика, результат был на последнем скриншоте.

Код: Выделить всё

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   
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Губин Игорь писал(а): 11 Март 2024, 12:32
finsoftrz писал(а): 11 Март 2024, 12:08 Смешно. Это ты не график строишь, а 2 области цветом выделяешь...
А мы не программы пишем, а, лишь, строчки кода набираем? :facepalm:

Требовался набор столбчатых парных диаграмм - выведен набор столбчатых парных диаграмм. Ты думаешь, что в больших пакетах будет нечто иное?! :nono:

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

Если аккуратно покопаешься, то и для линейных и прочих графиков найдёшь...
Я думаю, что несколько иное. Синусы, косинусы, радиусы, число пи и т.п. :-) То, что ты привел в качестве примера, это простой скрипт для закрашивания 2 прямоугольных областей через стили. Даже я, при небольшом опыте программирования под веб, легко его читаю. Если взять реальные графики, то там много программировать надо. Это примерно как svgraph написать на javascript. А смысл, если есть бесплатные библиотеки с примерами использования?
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Губин Игорь »

finsoftrz писал(а): 11 Март 2024, 12:51 А смысл, если есть бесплатные библиотеки с примерами использования?
Для тех, кто в Абрамсе :lol: , повторяю ещё раз: мне не нужен был весь бесконечный функционал пакета вроде осей измерений, сопровождающего текста, форматов надписей... Я взял готовый пакет, пролопатил его и вытащил лишь то, что мне было надо, избавившись от всего, что могло впустую грузить канал и тормозить программу. Ну и кучу вычислений из него перенёс в программу. Ты спрашивал возможно работать без внешних ссылок, я показал, что да. Если тебе нужны все функции пакета, но опасаешься грузить со сторонних серверов, то в браузере есть ссылки на текстовый файл с кодами пакета. И ничто не мешает скопировать его на свой сервер. Я, первоначально, так и сделал, но, по результатам итераций и "программисты мы или как", получил то, что показал. Если смотрел на картинку, то там выводится ещё масса всякого, но выводится через AnyScreen.

Идею с промежуточной картинкой я прорабатывал, но это оказалось неэффективно ни по скорости работы, ни по объёму потребного служебного кода.

Ещё раз в попытке ломом по люку :?
Покопайся и увидишь, что 80% кодов пакета это интерфейс пользователя к настройкам и вводу данных, а остальные 20% - закладки на фантазии пользователя. А, поскольку у тебя есть Clarion и AnyScreen, то всё это можно выбросить или перенести в свою программу, ускорив выполнение на порядки, оставив на долю CCS и иже с ними только отображение.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Во всяком случае, гугловские графики просто скачать не получилось, я пробовал, оно тянет за собой еще что, а искать какие-то дистрибутивы нет желания.
Я понял, что у нас просто разные цели и задачи. Мне покрасивее визуализацию хотелось бы. То, что библиотек для построения графиков достаточно много, дает некоторую надежду, что гугл не начнет монетизировать ее использование. С таким же успехом фейсбук может захотеть монетизировать реакт...
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Размещу здесь ссылку на видео, в котором рассказывается про изменения в последней версии anyscreen, включая пример использования библиотек на javascript.

https://www.youtube.com/watch?v=q9HJIYF9-MU&t=1514s

Prop:html довольно крутая штука, позволяющая подключать различные библиотеки на javascript, даже проще, чем в обычных приложениях мы подключаем win api или библиотеки на си. Графики, видео, работа с картами, текстовые редакторы, организация периодического опроса сервера (по таймеру) и т.п.

В теме по с12 уже была ссылка на видео, посвященное презентации расширения ui для anyscreen. Продублирую ее сюда, чтобы проще было искать.

https://www.youtube.com/watch?v=NwcN-gIX9vA

Если я правильно понял, ресайзер, про который много говорили и который никак не включат в поставку клариона, это часть отдельного продукта. Возможно, вопрос не технический, никак не определятся, предлагать его в составе подписки на anyscreen или продавать отдельно. На сайте Ris висит отдельная цена по подписке 500 долларов в год.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Губин Игорь »

finsoftrz писал(а): 13 Март 2024, 9:16 На сайте Ris висит отдельная цена по подписке 500 долларов в год.
А брось ссылочку. Поторгуемся.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Не уверен, что без SV они дадут напрямую. Но мне кажется, у одного активного в ньюсах товарища я видел эту приладу на скриншотах его приложения.

https://thinetsolution.com/gui-manager-and-resizer/
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
✯ Ветеран ✯
Сообщения: 2329
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Поблагодарили: 18 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Губин Игорь »

finsoftrz писал(а): 13 Март 2024, 13:02 https://thinetsolution.com/gui-manager-and-resizer/
Это, как я понимаю, лишь кусок от AnyScreen. Там только Java и WinAPI. Т.е. то, чем не пользуемся.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Я вроде видел в каком-то вебинаре и в html5, там примерно такое же. Сейчас уже не найду. Даже удивился и полез искать постоянно раскрытое меню.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7377
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Игорь Столяров »

What is window resizer?
Window resizer is a special algorithm which automatically adjusts the window size to screen resolution, as a designer would do.
Я заранее извиняюсь, что лезу в тему где ничего не понимаю ...
Но правильно ли я прочитал, что группа хорватских программеров хочет $500 / год
за то, что бы определить размер экрана и выставить по ним размер окон приложения ? ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Нет, там не только ресайзер, см в ролике.
На самом деле, и про это уже писалось, ресайз и сейчас работает, нельзя его делать мышкой, как в обычных приложениях, таская за границу окна. Это касается и сплиттера. Если программно установить размер окна или максимизировать его, то ресайз срабатывает.
500 долларов, конечно, для нас дорого. Тут сравнивать надо с зарплатами. Если у них программист зарабатывает, условно, 5 тыр долларов на руки в месяц, то 500 на год и не так дорого выглядит. Они на это и ориентируется. Несколько программистов в России или в Аргентине погоды не делают, могут купить вскладчину, а полноценную лицензию, когда и если будет окупаться.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7377
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение Игорь Столяров »

Спасибо ! А можно ссылочку на ролик ? Хочется ведь быть в теме европейский новаций.
Потому что я вижу на этой странице только картинки и анимацию, где верний TOOLBAR
трансформируется в левый DOCKBOX для тех у кого монитор 4K и орлинное зрение. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4617
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

AnyScreen (форсировали Неман Бонапартовы войска) - хроника войны

Сообщение finsoftrz »

Игорь Столяров писал(а): 14 Март 2024, 9:40 Спасибо ! А можно ссылочку на ролик ? Хочется ведь быть в теме европейский новаций.
Потому что я вижу на этой странице только картинки и анимацию, где верний TOOLBAR
трансформируется в левый DOCKBOX для тех у кого монитор 4K и орлинное зрение. :)
Другого нет. :-) Ролик лучше с переводом смотреть. Конечно, то, что там показано, в обычных приложениях давно работает. Например, пропорциональный/относительный ресайз контролов давно есть в ресайзере Струменского и, на мое восприятие, реализован проще.
C6/C11, ШВС, tps/btrieve.
Ответить