Расписание недельное для ЭЖ

Запрос расписания учителя недельное для ЭЖ

Свойства запроса

  • Пример вызова:

    http://a.roz37.ru:9984/garpix/semantik/app/request/execute?rp=http://a.roz37.ru/lipers/запросы/расписание-учителей&номерЛичногоДела=А-2021&деньНедели=1
  • Данные

    PREFIX признак: <http://lipers.ru/схема/признаки/>
    SELECT  DISTINCT ?деньНедели ?урокНомер ?названиеПредмета ?названиеКласса
    WHERE 
    { 
    GRAPH ?g {
        <http://lipers.ru/схема/сущности/учителя/#{{номерЛичногоДела}}> признак:имеетУчебноеЗанятие ?учебноеЗанятие.
        ?учебноеЗанятие признак:урокНомер ?урокНомер;
                    признак:деньНеделиНомер ?деньНедели;
                    признак:названиеПредмета ?названиеПредмета;
                    признак:названиеКласса ?названиеКласса;
        } 
    }
    ORDER BY ?деньНедели ?урокНомер
  • Рендеринг

    let $data := .
    let $дниНедели := ('понедельник','вторник','среда','четверг','пятница')
    let $дниНедели := ('понедельник','вторник','среда','четверг','пятница')
    let $уроков := 9
    let $строки := 
    for $i in $data
    let $деньНедели := $i/деньНедели/value/text()
    group by $деньНедели
    let $нагрузкаДень := count(distinct-values($i/урокНомер/value/text()))
    where $нагрузкаДень
    return
    <tr>
        <td>{$дниНедели[xs:integer($деньНедели)]}</td>
    {
        for $l in 1 to $уроков
        let $названиеПредмета := $i[урокНомер/value/text() = xs:string($l)][1]/названиеПредмета/value/text()
        let $классы :=
        $i[урокНомер/value/text() = xs:string($l)]/названиеКласса/value/text()
        return
        <td>{
            if($названиеПредмета)
            then($названиеПредмета || ': ' || string-join($классы, ', '))   
        }</td>
    }
        <td>{$нагрузкаДень}</td>
    </tr>  
    
    let $нагрузкаНеделя :=
    count(distinct-values($data[деньНедели/value/text()]/string-join((деньНедели/value/text(), урокНомер/value/text( )))))
    let $таблица := 
    <table align="center" class="table table-striped">
        <tr>
        <th>День недели</th>
        {for $l in 1 to $уроков return <th>{xs:string($l) || ' урок'}</th>}
        <th>Всего часов:</th>
        </tr>
        {$строки}
        <tr>
        <td><b>Итого часов:</b></td>
        {for $i in 1 to $уроков return <td/>}
        <td>{$нагрузкаНеделя}</td>
        </tr>
    </table>
    return
    $таблица
  • Шаблон

    <result/>