Василий Банников, ну, с гуями, я слышал, в как-бы-кроссплатформенном Шарпе все-таки тоскливее, чем на кутях, например.
Впрочем, сам не пользуюсь, могу ошибаться.
В принципе, M$ самим интересно сделать их юзабельными... для будущей смены NT на CBL, скажем ;)
Если вы действительно всерьез можете Шарп, то без Крестов, скорее всего, можете спокойно обойтись.
Разве что придется делать что-то всерьез оторванное от M$ - приложение под Астру, например.
Но сами подобные метания более характерны не для уверенно владеющих "освоенными" технологиями, а для нахватавшихся по верхам и заскучавших без новых впечатлений. Углубление того, что вы считаете освоенным, полагаю, будет более перспективным. А хотите адреналина - отходите все-таки подальше от того, что покрывается ТС и Шарпом. Го, Раст, тот же Питон...
Артем Воронов, в вашем примере важнейшим капиталом проекта был код, который оставался у вас.
У ТС - материалы, которые он ухнет в конструктор и потом вынужден будет восстанавливать заново.
Артем Воронов, но есть и смысл предусмотреть вариант, что все-таки развивать придется.
Для этого открытые системы подходят, а вендорлочные тяп-ляп конструкторы - нет.
Извините за флуд, но реально больно видеть такой грамотный ответ в таком неграмотном написании.
Простейшее же правило: слово "пробовать" пишется через Ы только в форме "проёбывать".
Слава, если вам проще пройти три цикла по трем запросам - чего вы хотите от тостерчан?
Чтобы они вам посоветовали лучший способ сделать неизвестно что?
EVGenyK_ch, вообще, при создании PDF важнее, как видит шрифты не Либра, а Ghostscript.
А домашняя директория www-data, вообще говоря, есть - это /var/www.
Только у него сплошь и рядом нет на нее прав...
Слава, так вы же ничего не пишете про задачу, кто вам что посоветует?
Элементарно, перебрав весь вывод запроса с группировкой (или без), можно накопить массив данных по школам, массив данных по ученикам и массив данных по оценкам, а потом обрабатывать их, как душе угодно. Но, скорее всего, можно меньше тратить память и более аккуратно получить нужное (какое - это вам лучше знать).
Кроме системных шрифтов, есть пользовательская папка ~/.fonts
Впрочем, от какого пользователя у вас запускается либра - еще вопрос.
Возможно, это www-data вебсервера без собственной папки.
Сведите обработку к функции, параметры которой - школа, ученик и оценка.
Возможно, методу класса, если нужно накапливать какое-то состояние при обработке.
Тогда вам не понадобятся никакие вложенные циклы.