Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2018, 16:39   #1
lix4000
Новичок
Джуниор
 
Регистрация: 15.02.2017
Сообщений: 1
По умолчанию Как сделать тоже самое ток на php?

Код:

public string GetHTML()
        {
            string html, row1 = "", row2 = "";
            html = "<table border=1 itemprop=\"graduatejob\"><thead>";
 
            List<string> Years = new List<string> {};
            List<string> Collumns = new List<string> {};
 
            // Копируем столбец God1
            foreach (graduateJob self in this.graduateJobBindingList)
            {
                Years.Add(self.God1);
            }
            // Сортируем по возрастанию
            Years.Sort();
            // Определяем максимальный год в исходном массиве данных
            int lastYearValue = Convert.ToInt32(Years.Max());
            // Формирем массив колонок, соответствующих году,
            // отбирая уникальные позици, и фильтруя список по последним трем годам
            Collumns.AddRange(Years.Distinct().Where(p => p.CompareTo(Convert.ToString(lastYearValue - 3)) == 1));
            
 
 
            // Заполняем шапку таблицы
            foreach (string columnYear in Collumns) {
                row1 += "<td colspan=2>Год " + columnYear + "</td>";
                row2 += "<td>Кол-во выпускников</td><td>Кол-во  трудоустроенных выпускников</td>";
            }
            html += "<tr><td rowspan=2>Код</td><td rowspan=2>Направление подготовки (специальности)</td>" + row1 + "</tr><tr>" + row2 + "</tr></thead><tbody>";
 
            // формируем новый список на основании имеющегося
            IEnumerable<graduateJob> sortedRepo = this.graduateJobBindingList
                    .Where(z => z.God1.CompareTo(Convert.ToString(lastYearValue - 3)) == 1) // фильтруем по последним трем годам
                    .OrderBy(s => s.God1) // сортируем по году
                    .OrderBy(p => p.EduName); // затем по наименованию специиальности
 
            int nextColumn = 0, delta, currentCollumn, i;
            string previousName = sortedRepo.First().EduName;
            html += "<tr><td>" + sortedRepo.First().EduCode + "</td><td>" + sortedRepo.First().EduName + "</td>";
            // заливаем тело таблицы
            foreach (graduateJob self in sortedRepo)
            {
                // Для новой специальности отбиваем новую строку
                if (previousName != self.EduName) { // проеверяем не закончилась ли инфа по текущей специальности
                    html += "</tr><tr><td>" + self.EduCode + "</td><td>" + self.EduName + "</td>"; // если да, отбиваем новую строку и вносим инфу по следующей
                    nextColumn = 0; // переводим курсор колонки на первую позицию
                }
                previousName = self.EduName; // фиксируем текущую специальность
                currentCollumn = Collumns.FindIndex(p => p == self.God1); // Ищем позицию колонки для текущей строки по году
                delta = currentCollumn - nextColumn; // проверяем, соответствует ли год текущей строки году текущей колонки
                nextColumn++; // смещаем курсор на следующую колонку
                // Заполняем пустоты
                for (i = 0; i < delta; i++)
                {
                    html += "<td>-</td><td>-</td>";
                }
                html += "<td>" + self.KollTrudvipsk1 + "</td><td>" + self.Kollvipsk1 + "</td>"; // Забиваем данные на пересечении года и специальности
            }
               html = html.Substring(0, html.Length - 5); // отсекаем последний <tr>
               html += "</tbody>";
               html += "</table>";
 
        
            return html;
            
 
        }







Код:

<!DOCTYPE html>
<?php /*подключаем xml файл*/
    $xml = simplexml_load_file('../data/t21graduatejob.xml');
 
        ?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Таблица(Шаблон представления информации о трудоустройстве выпускников образовательных организаций  за последние 3 года)</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
    </head>
    <body>
        <div class="container-fluid">
            <h1>Таблица(Шаблон представления информации о трудоустройстве выпускников образовательных организаций  за последние 3 года)</h1>
            <table itemprop="eduOP" class="table table-bordered table-hover table-striped">
                <thead>
                    <tr>
                       <td rowspan=2>Код</td>
                <td rowspan=2>Направление подготовки (специальности)</td>
                <?php   
                    $obj = $xml->graduateJobBindingList->graduateJob;
                    echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God.'</td>'.PHP_EOL;
                    echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God2.'</td>'.PHP_EOL;
                    echo "\t\t\t\t\t\t".'<td colspan=2> Год '.$obj->God3.'</td>'.PHP_EOL;
                ?> 
                </tr>
                <tr>
                <td>Кол-во выпускников</td>
                <td>Кол-во  трудоустроенных выпускников</td>
                <td>Кол-во выпускников</td> 
                <td>Кол-во  трудоустроенных выпускников</td>
                <td>Кол-во выпускников</td>
                <td>Кол-во  трудоустроенных выпускников</td>
                    </tr>
                
                </thead>
                <tbody>
<?php
                        
 
                        foreach($xml->graduateJobBindingList->graduateJob as $curNode)
                        {
                            echo "\t\t\t\t\t".'<tr>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="eduCode" class="text-center">'.$curNode->EduCode."</td>".PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="eduName">'.$curNode->EduName.'</td>'.PHP_EOL;
                         
                           // echo "\t\t\t\t\t\t".'<td itemprop="god1">'.$curNode->God1.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk1">'.$curNode->Kollvipusknikov.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk1">'.$curNode->Kolltrudoustroinihvipsknikov.'</td>'.PHP_EOL;
                            
                            //echo "\t\t\t\t\t\t".'<td itemprop="god2">'.$curNode->God2.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk2">'.$curNode->Kollvipusknikov2.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk2">'.$curNode->Kolltrudoustroinihvipsknikov2.'</td>'.PHP_EOL;
                            
                           // echo "\t\t\t\t\t\t".'<td itemprop="god1">'.$curNode->God3.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollvipsk1">'.$curNode->Kollvipusknikov3.'</td>'.PHP_EOL;
                            echo "\t\t\t\t\t\t".'<td itemprop="kollTrudvipsk1">'.$curNode->Kolltrudoustroinihvipsknikov.'</td>'.PHP_EOL;
                            
                            
                            
                            echo "\t\t\t\t\t".'</tr>'.PHP_EOL;
                        }
                    ?> 
                </tbody>
            </table>
        </div>       
    </body>
</html>
lix4000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы самое длинное слово и самое короткое тоже выводились? weqw121 Помощь студентам 1 23.10.2017 23:50
Как вывести на экран тоже самое что вводит setti Помощь студентам 3 13.10.2014 22:55
У меня есть программа на Win Firm как мне тоже самое сделать на ASP? Slavik3 ASP.NET 0 16.05.2013 23:49
Тоже самое что и preg_match? kroŧ PHP 0 26.02.2011 15:23
В С++ if (!f) это тоже самое что и if (f==0)? GaJIbI4 Помощь студентам 2 05.12.2009 17:37