1. C# / Говнокод #12241

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    if (parameter == null)//если ведомость доков...
                    {
                        cmd.Connection = dbc;
                        cmd.CommandText =
                            "SELECT RTRIM(n.Element) + ' '+ RTRIM(e.Naim) " +
                            "FROM tb_Element e, tb_ElementName n " +
                            "WHERE n.id = e.id " +
                            "AND e.GostTU ='" + head.Text.Substring(0, head.Text.IndexOf(" ")) + "'";
                        dbc.Open();
                        naim = cmd.ExecuteScalar().ToString();
                        dbc.Close();
                        cmd.CommandText =
                        "SELECT " +
                        " LTRIM(RTRIM(s.NameProject)) " +
                        ",LTRIM(RTRIM(n.Element)) + ' '+ LTRIM(RTRIM(e.Naim)) " +
                        ",LTRIM(RTRIM(d.Obozn)) " +
                        "FROM " +
                        " tb_document d " +
                        ",tb_specificationproject s " +
                        ",tb_element e " +
                        ",tb_elementname n " +
                        "WHERE " +
                        "d.pinsp = s.pinsp " +
                        "AND e.pin = s.pinsp " +
                        "AND n.id = e.id " +
                        "AND s.NameProject IN  " +
                        "( " +
                        namelist +
                        ") " +
                        "ORDER BY d.Pinsp ";
                        dbc.Open();
                        dbr = cmd.ExecuteReader();
                        counter = 0;
                        template = File.ReadAllLines(System.Windows.Forms.Application.StartupPath + "\\doclist.xml");
                        while (template[counter].Trim() != "</Table>")
                        {
                            if (template[counter].Trim() != "<Cell ss:MergeAcross=\"4\" ss:StyleID=\"s67\"><Data ss:Type=\"String\">%name%</Data></Cell>")
                            {
                                filedata.Add(template[counter]);
                            }
                            else
                            {
                                filedata.Add("<Cell ss:MergeAcross=\"4\" ss:StyleID=\"s67\"><Data ss:Type=\"String\">" + naim + "</Data></Cell>");
                            }
                            counter++;
    
                        }
                        tail_start = counter;
                        counter = 8;
                        tmp = "";
                        while (dbr.Read())
                        {
                            if (tmp != dbr[0].ToString())
                            {
                                tmp = dbr[0].ToString();
                                //Определяю высоту строки
                                CalcHeight = " ss:Height = " + '"' + Convert.ToString(rowHeight * (1 + dbr[1].ToString().Length / 10)) + '"';
                                filedata.Add("<Row" + CalcHeight.Replace(',', '.') + ">");
                                filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"Number\">" + (counter - 7).ToString() + "</Data></Cell>");
                                filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\">" + dbr[1].ToString().TrimEnd() + "</Data></Cell>");
                            }
                            else
                            {
                                filedata.Add("<Row ss:Height = \"" + Convert.ToString(rowHeight).Replace(',', '.') + "\">");
                                filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"Number\">" + (counter - 7).ToString() + "</Data></Cell>");
                                filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\"> </Data></Cell>");
                            }
                            filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\">" + dbr[2].ToString().TrimEnd() + "</Data></Cell>");
                            filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\"> </Data></Cell>");
                            filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\"> </Data></Cell>");
                            filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\"> </Data></Cell>");
                            filedata.Add("<Cell ss:StyleID=\"s100\"><Data ss:Type=\"String\"> </Data></Cell>");
                            filedata.Add("</Row>");
                            counter++;
                        }
                        counter = tail_start;
                        while (counter < template.GetLength(0))
                        {
                            filedata.Add(template[counter]);
                            counter++;
                        }
                    }

    Суровый промышленный код. Выгружаем в эксель данные из БД.

    Запостил: Grover, 03 Декабря 2012

    Комментарии (13) RSS

    • А в базе данных запрещены <, >, " ?
      Ответить
      • На момент производства говнокода - были запрещены только вопросы.
        Ответить
        • К этому бы коду да добавить html-форматирование sql-запросов на вставку данных в базу, и обратное форматирование при чтении оттуда - будет похоже на то с чем однажды довелось работать :-P
          Ответить
        • > были запрещены только вопросы
          > запрещены вопросы

          Ну за что их так?
          Ответить
          • Сэр, вопросы запрещены. Пожалуйста, поднимите руки так, чтобы я их видел и встаньте на колени. Спасибо за сотрудничество.
            Ответить
            • Доложите обстановку, капитан.
              Ответить
              • >Ну за что их так?

                Они были дурны собой, и совершенно не умели готовить!©
                Ответить
              • Пятибалльный шторм на поверхности.
                Ответить
    • PARANOIA_MODE = "ON"

      Не ОНИИП, не?
      Ответить
    • Держать и теги вывода, и запросы захардкоженными в текст - симптоматично. Жаль только, бывало, и не раз.
      Ответить
    • Ой-ёй.. Похоже на код с моего первого места работы. Простите нас, если что :)
      Ответить
    • Про NPOI автор не слышал?

      Как и про параметризуемые запросы, видимо.
      Ответить

    Добавить комментарий