Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Matyáš Černohous:20.11.2013 16:58

Zdravím, mám aplikaci která pomocí cyklu for vkládá data z listu do tabulky.

for (int c = 0; c <= 5; c++)   // první sloupec
          {
              t.Rows[c+1].Cells[0].Paragraphs.First().Append(sloupec1[c]);
           }

Chtěl bych se zeptat, jak udělat, aby se mi vypsal celý list a né jen prvkyvListu -1. Když mám c <=5 tak musím zadat do listu 7 prvků, ale vypíše to jen 6. Když zadám míň, nebo víc, tak to hodí error, že index nesmí být záporný....

Když jsem to zkoušel tak, že při přidání prvku do listu se do proměnné připočítá +1 a vypisuju takhle:

for (int c = 0; c <= prvkyvlistu-1; c++)   // první sloupec
            {
                t.Rows[c+1].Cells[0].Paragraphs.First().Append(sloupec1[c]);
             }

Tak mi to chvíli fungovalo, ale pak to zase začalo házet errory.

Díky

Editováno 20.11.2013 16:58
 
Odpovědět
20.11.2013 16:58
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Matyáš Černohous
Kit:20.11.2013 17:02

Odstraň všechny "+1", "-1" a místo "<=" dej jen "<".

Jenom nechápu, proč se seznamem pracuješ jako s polem (nebo naopak?)

Editováno 20.11.2013 17:03
Nahoru Odpovědět
20.11.2013 17:02
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Matyáš Černohous
Zdeněk Pavlátka:20.11.2013 17:04

Podmínka c <= 5 projde šest prvků.(Jeden je na nule) Pokud jich chceš projít pět, použij c < 5.

Nahoru Odpovědět
20.11.2013 17:04
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Matyáš Černohous:20.11.2013 17:51

Zkusil jsem to, a když jsem měl v listu 5 prvků a chtěl to vypsat, tak to stejně hodilo chybu: Index je mimo rozsah. Index musí být nezáporný a musí být menší než velikost kolekce.

for (int c = 0; c <5; c++)   // první sloupec
           {
               t.Rows[c+1].Cells[0].Paragraphs.First().Append(sloupec1[c]);
            }
 
Nahoru Odpovědět
20.11.2013 17:51
Avatar
Odpovídá na Matyáš Černohous
Neaktivní uživatel:20.11.2013 18:01
t.Rows[c+1].Cel....

oprav na

t.Rows[c].Cel....
Nahoru Odpovědět
20.11.2013 18:01
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Matyáš Černohous:20.11.2013 18:11

To právě že nejde, protože v první buňce tabulky mám nadpis, takže data můžu začít vkládat až od druhé.

 
Nahoru Odpovědět
20.11.2013 18:11
Avatar
Odpovídá na Matyáš Černohous
Neaktivní uživatel:20.11.2013 18:18
for (int c = 1; c < prvkyvlistu; c++) //od indexu 1 do 4 = 2.-5. prvek
{
  t.Rows[c].Cells[0].Paragraphs.First().Append(sloupec1[c]);
}
Nahoru Odpovědět
20.11.2013 18:18
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Matyáš Černohous
Kit:20.11.2013 18:28

Tak proč s tím seznamem pracuješ, jako kdyby to bylo pole?

Nahoru Odpovědět
20.11.2013 18:28
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Matyáš Černohous
Jakub Lásko[Saarix]:21.11.2013 6:25

Tabulka určitě obsahuje DataContext, nebo ItemsSource tak tam vlož celé své pole a o nic se nemusíš starat.

Nahoru Odpovědět
21.11.2013 6:25
Časem je vše možné.
Avatar
Odpovídá na Jakub Lásko[Saarix]
Matyáš Černohous:21.11.2013 12:37

Dělám to pomocí knihovny DocX. Výstup programu je do MS Word dokumentu.
Jinak díky, za rady. Konečně to už funguje tak jak potřebuju.

 
Nahoru Odpovědět
21.11.2013 12:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.