Beispiel #1
0
        /// <summary>
        /// Zrzut feature
        /// </summary>
        /// <param name="pakiet">Pakiet wkładu systemowego</param>
        /// <param name="nrRozdz">numer rozdziału</param>
        /// <param name="lp">LP</param>
        /// <param name="stereotypy">Lista stereotypów do filtrowania</param>
        /// <param name="kolejnosc">Numer podrozdziału</param>
        /// <param name="opis">Opis podrozdziału</param>
        /// <returns></returns>
        private String dajWymaganiaXXX_nowyModel(Package pakiet, ref int nrRozdz, int lp, String [] stereotypy, String kolejnosc, String opis)
        {
            String  w       = "";
            Package wymPckg = EAUtils.utworzPakietGdyBrak(ref pakiet, "Wymagania Systemowe", "");

            w += "<h3>" + numer + "." + lp + ".3." + kolejnosc + opis + " </h3>\n";
            // if (jezykPolski)
            // {
            word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + opis, 4);

            /* }
             * else
             * {
             *   word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + " Requirements " + jakie, 4);
             * }*/
            int licznik = 0;

            foreach (Element e in wymPckg.Elements)
            {
                // if (e.Stereotype == warunekIF || e.Stereotype == warunekIF2) licznik++;
                if (CmodelKonfigurator.czyZawiera(e.Stereotype, stereotypy))
                {
                    licznik++;
                }
            }
            if (licznik == 0)
            {
                w += "Brak";
                if (jezykPolski)
                {
                    word.wstawParagraf("Brak", word.stylNorm);
                }
                else
                {
                    word.wstawParagraf("None", word.stylNorm);
                }
                return(w);
            }
            //   w+=dajWymaganiaXXXStaraPrezentacja(wymPckg,warunekIF,warunekIF2);
            //w += dajWymaganiaXXXNowaPrezentacja(wymPckg, warunekIF, warunekIF2);
            w += dajWymaganiaXXXNowaPrezentacja3(wymPckg, stereotypy);

            return(w + "</table>\n");
        }
Beispiel #2
0
        /*     private String __dajWymaganiaXXXNowaPrezentacja2(Package wymPckg, String warunekIF, String warunekIF2)
         *   {
         *       String w = "";
         *
         *       w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
         *
         *       foreach (Element elem in wymPckg.Elements)
         *       {
         *           //  String typ = "konfiguracja/development";
         *           String nadrzedne = "";
         *           String stat = "";
         *           bool analiza = false;
         *           Element e2 = null;
         *           if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue;
         *           foreach (Connector con in elem.Connectors)
         *           {
         *
         *               if (con.Type == "Realisation")
         *               {
         *                   e2 = Repo.GetElementByID(con.SupplierID);
         *                   if (e2.Type == "Requirement")
         *                   {
         *                       nadrzedne += e2.Name + "\n";
         *                       stat += e2.Status + "\n";
         *                       if (e2.Status != "Uzgodnione" && e2.Status != "Anulowane przez IT" && e2.Status != "Anulowane przez BO")
         *                       {
         *                           analiza = true;
         *                       }
         *                   }
         *               }
         *           }
         *          Wordy.Paragraph paragr= word.wstawParagraf(elem.Name,0);
         *          paragr = paragr.Previous();
         *          paragr.Range.Bold = 1;
         *          paragr.Range.Underline = Wordy.WdUnderline.wdUnderlineThick;
         *          paragr = word.wstawParagraf("Status: " + elem.Status,0);
         *          paragr = paragr.Previous();
         *          Wordy.Range r = paragr.Range;
         *          r.End = r.Start + 7;
         *          r.Bold = 1;
         *
         *
         *
         *           if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO")
         *           {
         *              paragr.Range.Comments.Add(paragr.Range, "Wymaganie w trakcie analizy");
         *           }
         *           if (jezykPolski)
         *           {
         *               paragr = word.wstawParagraf("Nadrzędne wymaganie biznesowe:", 0);
         *           }
         *           else
         *           { paragr = word.wstawParagraf("Parent business requirement:", 0); }
         *           paragr = paragr.Previous();
         *           paragr.Range.Bold = 1;
         *
         *
         *           if (e2 == null)
         *           {
         *               if (jezykPolski)
         *               {
         *                   paragr = word.wstawParagraf("Brak", 0);
         *               }
         *               else
         *               { paragr = word.wstawParagraf("None", 0); }
         *           }
         *           else
         *           {
         *                word.wstawParagraf( nadrzedne,0);
         *                if (jezykPolski)
         *                {
         *                    paragr = word.wstawParagraf("Status nadrzędnego wymagania: " + stat, 0);
         *                }
         *                else
         *                {
         *                    paragr = word.wstawParagraf("Status of parent business requirement: " + stat, 0);
         *                }
         *               paragr = paragr.Previous();
         *               paragr = paragr.Previous();
         *               r = paragr.Range;
         *               r.End = r.Start + 29;
         *               r.Select();
         *               r.Bold = 1;
         *               if (analiza)
         *               {
         *                   paragr.Range.Comments.Add(paragr.Range, "Wymaganie w trakcie analizy");
         *               }
         *           }
         *           if (jezykPolski)
         *           {
         *               paragr = word.wstawParagraf("Sposób realizacji:", 0);
         *           }
         *           else
         *           {
         *               paragr = word.wstawParagraf("Realization description:", 0);
         *           }
         *           paragr = paragr.Previous();
         *           paragr.Range.Bold = 1;
         *
         *           word.wstawParagraf(elem.Notes, 0);
         *           // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes});
         *           //tab.Cell(i, 1).Merge(tab.Cell(i, 2));
         *           word.wstawZalacznikRTF(elem);
         *           if (elem.Notes == "" && elem.GetLinkedDocument() == "")
         *           {
         *               word.wstawParagraf("Wymaganie w trakcie analizy...", 0, "Brak opisu realizacji wymagania");
         *           }
         *           word.wstawParagraf("", 0);
         *
         *
         *       }
         *       return w;
         *   }
         * */
        /*    private String dajWymaganiaXXXNowaPrezentacja(Package wymPckg, String warunekIF, String warunekIF2)
         *  {
         *      String w = "";
         * //     Wordy.Table tab = word.wstawTabele("Rozdzial1b", new string[] { "Nazwa", "Opis realizacji", "Nadrzędne wygmaganie biznesowe" });
         * //     tab.Columns[1].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *  //    tab.Columns[2].SetWidth(200f, Wordy.WdRulerStyle.wdAdjustNone);
         *  //    tab.Columns[3].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *      w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
         *
         *      foreach (Element elem in wymPckg.Elements)
         *      {
         *        //  String typ = "konfiguracja/development";
         *          String nadrzedne = "";
         *          String stat = "";
         *          bool analiza = false;
         *          Element e2 = null;
         *          if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue;
         *          foreach (Connector con in elem.Connectors)
         *          {
         *
         *              if (con.Type == "Realisation")
         *              {
         *                  e2 = Repo.GetElementByID(con.SupplierID);
         *                  if (e2.Type == "Requirement")
         *                  {
         *                      nadrzedne += e2.Name + "\n";
         *                      stat += e2.Status + "\n";
         *                      if (e2.Status != "Uzgodnione" && e2.Status != "Anulowane przez IT" && e2.Status != "Anulowane przez BO")
         *                      {
         *                          analiza = true;
         *                      }
         *                  }
         *              }
         *          }
         *          Wordy.WdColor kolor1 = Wordy.WdColor.wdColorBlack;
         *          Wordy.WdColor kolor2 = Wordy.WdColor.wdColorGray25;
         *          int i = 1;
         *      //    w += "<tr><td>" + elem.Name + "</td><td>" + elem.Notes + "</td><td>" + nadrzedne + "</td></tr>\n";
         *               Wordy.Table tab = word.wstawTabele("", new string[] {elem.Name, elem.Status });
         *               tab.Columns[1].SetWidth(350f, Wordy.WdRulerStyle.wdAdjustNone);
         *               tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor1;
         *               tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = kolor1;
         *              tab.Columns[2].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *
         *
         *
         *          if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO")
         *          {
         *              tab.Cell(i, 2).Range.Comments.Add(tab.Cell(i, 2).Range, "Wymaganie w trakcie analizy");
         *          }
         *          i++;
         *          word.wstawWierszDoTabeli("", tab, i, new string[] { "Nadrzędne wymaganie biznesowe", "Status nadrzędnego wymagania" });
         *          tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor2;
         *          tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = kolor2;
         *          i++;
         *          if (e2 == null)
         *          {
         *              word.wstawWierszDoTabeli("", tab, i, new string[] { "Brak", "Brak" });
         *          }
         *          else
         *          {
         *              word.wstawWierszDoTabeli("", tab, i, new string[] { nadrzedne, stat });
         *              if (analiza)
         *              {
         *                  tab.Cell(i, 2).Range.Comments.Add(tab.Cell(i, 2).Range, "Wymaganie w trakcie analizy");
         *              }
         *          }
         *          tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = Wordy.WdColor.wdColorWhite;
         *          tab.Rows[i].Cells[2].Shading.BackgroundPatternColor = Wordy.WdColor.wdColorWhite;
         *          i++;
         *          word.wstawWierszDoTabeli("", tab, i, new string[] { "Sposób realizacji","" },false);
         *          tab.Cell(i, 1).Merge(tab.Cell(i, 2));
         *          tab.Rows[i].Cells[1].Shading.BackgroundPatternColor = kolor2;
         *          i++;
         *          word.wstawParagraf(elem.Notes, 0);
         *         // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes});
         *          //tab.Cell(i, 1).Merge(tab.Cell(i, 2));
         *          word.wstawZalacznikRTF(elem);
         *          if (elem.Notes == "" && elem.GetLinkedDocument() == "")
         *          {
         *                word.wstawParagraf("Wymaganie w trakcie analizy...", 0,"Brak opisu realizacji wymagania");
         *          }
         *          word.wstawParagraf("", 0);
         *          i++;
         *
         *      }
         *      return w;
         *  }*/
        /// <summary>
        /// Zrzut feature systemowych, ktore nie maja statusów obsługiwanych w innych przypadkach
        /// </summary>
        /// <param name="pakiet">Pakiet wkładu systemowego</param>
        /// <param name="nrRozdz">numer rozdziału</param>
        /// <param name="lp">LP</param>
        /// <param name="stereotypy">Lista stereotypów do filtrowania</param>
        /// <param name="kolejnosc">Numer podrozdziału</param>
        /// <param name="opis">Opis podrozdziału</param>
        /// <returns></returns>
        private String dajWymaganiaSyst_nowyModel(Package pakiet, ref int nrRozdz, int lp, String kolejnosc, String opis)
        {
            String  w       = "";
            Package wymPckg = EAUtils.utworzPakietGdyBrak(ref pakiet, "Wymagania Systemowe", "");

            w += "<h3>" + numer + "." + lp + ".3." + kolejnosc + opis + " </h3>\n";

            word.wstawParagraf(numer + "." + lp + ".3." + kolejnosc + opis, 4);

            String[] stereotypy = CmodelKonfigurator.stereotypyFeatureSystemowychBezpieczeństwa;
            stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychDostepnosc).ToArray();

            stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychInfrastrukturalne).ToArray();
            stereotypy = stereotypy.Concat(CmodelKonfigurator.stereotypyFeatureSystemowychPojemnosc).ToArray();

            int licznik = 0;

            foreach (Element e in wymPckg.Elements)
            {
                if (!CmodelKonfigurator.czyZawiera(e.Stereotype, stereotypy))
                {
                    licznik++;
                }
            }
            if (licznik == 0)
            {
                w += "Brak";
                if (jezykPolski)
                {
                    word.wstawParagraf("Brak", word.stylNorm);
                }
                else
                {
                    word.wstawParagraf("None", word.stylNorm);
                }
                return(w);
            }

            w += dajWymaganiaXXXNowaPrezentacja3(wymPckg, stereotypy, true);

            return(w + "</table>\n");
        }
Beispiel #3
0
 /// <summary>
 /// Dodaje wymaganie do odpowiedniej listy wymagań
 /// </summary>
 /// <param name="rq"></param>
 public bool dodajWymaganieDoListy(ref Element rq)
 {
     if (CmodelKonfigurator.czyZawiera(rq.Stereotype, CmodelKonfigurator.stereotypyWymaganArchitektonicznych))
     {
         WymaganiaArchitektoniczneLista.Add(rq);
         return(true);
     }
     if (CmodelKonfigurator.czyZawiera(rq.Stereotype, CmodelKonfigurator.stereotypyWymaganInfrastruktura))
     {
         WymaganiaInfrastrukturaLista.Add(rq);
         return(true);
     }
     ////uznajemy, że każde wymaganie które nie jest architektoniczne ani na infrastrukture jest biznesowe
     // bo każdy oznacza to requriementy jak chce i robi sie burdel
     if (!CmodelKonfigurator.czyZawiera(rq.Status, CmodelKonfigurator.statusyBRqAnulowane))
     {
         WymaganiaBiznesoweLista.Add(rq);
         return(true);
     }
     return(false);
 }
Beispiel #4
0
        private string dajOgraniczeniaRozwiazania(ref int nrRozdz)
        {
            okno.Log(Statystyki.LogMsgType.Info, "Eksport ograniczeń rozwiązania");
            String w = "";

            w += "<div class=\"img\">";
            w += dajTytulRozdz("2", ref nrRozdz);

            if (modelProjektu.OgraniczeniaPckg.Elements.Count > 0 || modelProjektu.ListaIssue.Count > 0)
            {
                Wordy.Table tab;
                if (jezykPolski)
                {
                    tab = word.wstawTabele("", new string[] { "Lp", "Ograniczenie rozwiązania", "Opis" });
                }
                else
                {
                    tab = word.wstawTabele("", new string[] { "No", "Constraint", "Descritpion" });
                }
                tab.Columns[1].SetWidth(50f, Wordy.WdRulerStyle.wdAdjustNone);
                tab.Columns[2].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
                tab.Columns[3].SetWidth(300f, Wordy.WdRulerStyle.wdAdjustNone);
                w += "<table><tr><th>Lp</th><th>Ograniczenie rozwiązania</th><th>Opis</th></tr>";
                int i = 1;
                foreach (Element e in modelProjektu.OgraniczeniaPckg.Elements)
                {
                    if (e.Type == "Issue")
                    {
                        continue;                       //omin issue bo potem osobno wszystkie issue ida do tabelki
                    }
                    if (CmodelKonfigurator.czyZawiera(e.Status, CmodelKonfigurator.statusyIssuePomin))
                    {
                        continue;
                    }

                    w += "<tr";

                    w += "><td>" + i + "</td><td>" + e.Name + "</td><td>";
                    string opis = "";

                    opis = e.Notes;     ////<---- zmiana względem mojego modelu zamiast tagi notatka
                    ////koniec zmiany
                    w += opis + "</td></tr>";
                    word.wstawWierszDoTabeli("", tab, i + 1, new string[] { i.ToString(), e.Name, opis });
                    i++;
                }
                foreach (Element e in modelProjektu.ListaIssue)
                {
                    if (CmodelKonfigurator.czyZawiera(e.Status, CmodelKonfigurator.statusyIssuePomin))
                    {
                        continue;
                    }

                    string opis = e.Notes;
                    word.wstawWierszDoTabeli("", tab, i + 1, new string[] { i.ToString(), e.Name, opis });
                    i++;
                }
            }
            else
            {
                word.wstawParagraf("Brak", 0);
            }
            w += "</div>";
            okno.Log(Statystyki.LogMsgType.WynikOK, " elementów: " + modelProjektu.OgraniczeniaPckg.Elements.Count + " [ok]\n");
            return(w);
        }
Beispiel #5
0
        /*   private String dajWymaganiaXXXStaraPrezentacja(Package wymPckg,String warunekIF,String warunekIF2)
         * {
         *     String w = "";
         *     Wordy.Table tab = word.wstawTabele("Rozdzial1b", new string[] { "Nazwa", "Opis realizacji", "Nadrzędne wygmaganie biznesowe" });
         *     tab.Columns[1].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *     tab.Columns[2].SetWidth(200f, Wordy.WdRulerStyle.wdAdjustNone);
         *     tab.Columns[3].SetWidth(150f, Wordy.WdRulerStyle.wdAdjustNone);
         *     w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
         *     int i = 1;
         *     foreach (Element elem in wymPckg.Elements)
         *     {
         *         String typ = "konfiguracja/development";
         *         String nadrzedne = "";
         *         if (elem.Stereotype != warunekIF && elem.Stereotype != warunekIF2) continue;
         *         foreach (Connector con in elem.Connectors)
         *         {
         *
         *             if (con.Type == "Realisation")
         *             {
         *                 Element e2 = Repo.GetElementByID(con.SupplierID);
         *                 if (e2.Type == "Requirement")
         *                 {
         *                     nadrzedne += e2.Name + "<br>\n";
         *                 }
         *             }
         *         }
         *         w += "<tr><td>" + elem.Name + "</td><td>" + elem.Notes + "</td><td>" + nadrzedne + "</td></tr>\n";
         *         word.wstawWierszDoTabeli("", tab, i + 1, new string[] { elem.Name, elem.Notes, nadrzedne });
         *         i++;
         *     }
         *     return w;
         * }*/
        private String dajWymaganiaXXXNowaPrezentacja3(Package wymPckg, String [] stereotypy, bool systemowe = false)
        {
            String w = "";

            w += "<table><tr><th>Nazwa</th><th>Opis realizacji</th><th>Nadrzędne wygmaganie biznesowe</th></tr>\n";
            Stopwatch st = new Stopwatch();

            st.Start();
            foreach (Element elem in wymPckg.Elements)
            {
                st.Restart();
                //  String typ = "konfiguracja/development";
                String nadrzedne = "";
                String stat      = "";
                bool   analiza   = false;
                //   Element e2 = null;
                /// bo ficzery systemowe to pozostałe
                if (systemowe)
                {
                    if (CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy))
                    {
                        continue;
                    }
                }
                else
                {
                    if (!CmodelKonfigurator.czyZawiera(elem.Stereotype, stereotypy))
                    {
                        continue;
                    }
                }
                okno.Log(Statystyki.LogMsgType.Info, "--Wymaganie: " + elem.Name + "\n ");
                okno.Log(Statystyki.LogMsgType.cd, "----- czy=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                String sql = "select ore.object_id from t_object ore,t_object ofi, t_connector c where ofi.object_id=" + elem.ElementID + " and " +
                             "((c.start_object_id=ofi.object_id and c.end_object_id=ore.object_id) or " +
                             "(c.start_object_id=ore.object_id and c.end_object_id=ofi.object_id)) and " +
                             " ore.object_type='Requirement' and c.connector_type='Realisation'";
                int ile_req = 0;
                foreach (Element e2 in modelProjektu.Repozytorium.GetElementSet(sql, 2))
                {
                    ile_req++;
                    nadrzedne += e2.Name + "\n";
                    stat      += e2.Status + "\n";

                    if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe))
                    {
                        analiza = true;
                    }
                }
                okno.Log(Statystyki.LogMsgType.cd, ", req=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                /* przejscie na sql
                 * foreach (Connector con in elem.Connectors)
                 * {
                 *
                 *  if (con.Type == "Realisation")
                 *  {
                 *      e2 = modelProjektu.Repozytorium.GetElementByID(con.SupplierID);
                 *
                 *      if (e2.Type == "Requirement")
                 *      {
                 *          nadrzedne += e2.Name + "\n";
                 *          stat += e2.Status + "\n";
                 *
                 *          if (!CmodelKonfigurator.czyZawiera(e2.Status, CmodelKonfigurator.statusyBRqGotowe))
                 *          {
                 *              analiza = true;
                 *          }
                 *      }
                 *  }
                 * }
                 * */
                Wordy.Paragraph paragr = word.wstawParagraf(elem.Name, 0);
                okno.Log(Statystyki.LogMsgType.cd, ", name=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                paragr                 = paragr.Previous();
                paragr.Range.Bold      = 1;
                paragr.Range.Underline = Wordy.WdUnderline.wdUnderlineThick;
                paragr                 = word.wstawParagraf("Status: " + elem.Status, 0);
                paragr                 = paragr.Previous();
                Wordy.Range r = paragr.Range;
                r.End  = r.Start + 7;
                r.Bold = 1;

                okno.Log(Statystyki.LogMsgType.cd, ", status=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                //if (elem.Status != "Uzgodnione" && elem.Status != "Anulowane przez IT" && elem.Status != "Anulowane przez BO")
                if (!CmodelKonfigurator.czyZawiera(elem.Status, CmodelKonfigurator.statusyFeatureGotowe))
                {
                    paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["SRQanalysis"]);
                }
                if (jezykPolski)
                {
                    paragr = word.wstawParagraf("Nadrzędne wymaganie biznesowe:", 0);
                }
                else
                {
                    paragr = word.wstawParagraf("Parent business requirement:", 0);
                }
                paragr            = paragr.Previous();
                paragr.Range.Bold = 1;
                okno.Log(Statystyki.LogMsgType.cd, ", nadrzedne=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));

                if (ile_req == 0)
                {
                    if (jezykPolski)
                    {
                        paragr = word.wstawParagraf("Brak", 0);
                    }
                    else
                    {
                        paragr = word.wstawParagraf("None", 0);
                    }
                }
                else
                {
                    word.wstawParagraf(nadrzedne, 0);

                    paragr = paragr.Previous();
                    paragr = paragr.Previous();
                    r      = paragr.Range;
                    r.End  = r.Start + 29;
                    r.Select();
                    r.Bold = 1;
                    if (analiza)
                    {
                        paragr.Range.Comments.Add(paragr.Range, CmodelKonfigurator.worning["BRQ_SRQanalysis"]);
                    }
                }
                okno.Log(Statystyki.LogMsgType.cd, " nadrzTresc=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                if (jezykPolski)
                {
                    paragr = word.wstawParagraf("Szczegóły:", 0);
                }
                else
                {
                    paragr = word.wstawParagraf("Details:", 0);
                }
                paragr            = paragr.Previous();
                paragr.Range.Bold = 1;

                //      word.wstawParagraf(elem.Notes, 0);
                word.wstawNotatkeEAtoRTF(modelProjektu.Repozytorium, elem);
                // word.wstawWierszDoTabeli("", tab, i, new string[] { elem.Notes});
                //tab.Cell(i, 1).Merge(tab.Cell(i, 2));
                word.wstawZalacznikRTF(elem);
                okno.Log(Statystyki.LogMsgType.cd, " opis=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff"));
                if (elem.Notes == "" && elem.GetLinkedDocument() == "")
                {
                    word.wstawParagraf("Wymaganie w trakcie analizy...", 0, "Brak opisu realizacji wymagania");
                }
                word.wstawParagraf("", 0);
                okno.Log(Statystyki.LogMsgType.cd, " koniec=" + st.Elapsed.ToString("hh\\:mm\\:ss\\.fff") + "\n");
            }
            return(w);
        }