Си диез / Говнокод #12241 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Grover, (Updated )

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

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

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

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

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8