Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C# Umieszczenie datagridview w treści e-maila

14 Maj 2019 22:31 147 7
  • Poziom 19  
    Witam,
    Na początku zaznaczę, że (bardzo) amatorsko zajmuję się programowaniem w C#, więc będę wdzięczny za wyrozumiałość i łopatologiczne odpowiedzi/wskazówki na zadane pytania.
    Tworzę aplikację do składania zamówień na dokumenty w Windows Forms. W związku z tym, że specyfikacja dokumentów jest ogromnie różna, aplikacja niestety również. Ze wszystkim jak do tej pory sobie poradziłem - mogę powiedzieć, że aplikacja jest prawie gotowa - pozostały ostatnie poprawki, uporządkowanie kodu i dopisanie kilku jego linijek - formalność.
    Zatrzymałem się na problemie, którego sam, jak i z internetami, nie mogę przeskoczyć - mam problem z umieszczeniem swojego DataGridView w treści w treści e-maila. Zaciąłem się na tym totalnie. Zdaję sobie sprawę, że przeniesienie DGV 1 do 1 w treść mejla jest niemożliwe(tak jak np. tekstu z textboxa) i trzeba to zrobić za pomocą kodu. Niestety przykłady z wujka G, z którymi się spotkałem, nie spełniały moich oczekiwań, a nawet jeśli próbowałem coś zaimplementować u siebie - nie działało.
    Problem rozbija się o to, że u mnie - po uruchomieniu programu, DGV jest puste. Nie jest również spięte z żadną bazą - nie musi i nie będzie. Jego zawartość będzie zależna od inwencji twórczej klienta, tzn. tego co tam wklei(ustawiłem taką możliwość). Może to być jedna kolumna z niewiadomą ilością wierszy(np. numery pudeł), a mogą to być też 3, 4, 5 kolumn(nr pudła, nr teczki, a pozostałe to specyfikacja zamawianych dokumentów), albo nawet jedna komórka(klient zamawia do siebie 1 pudełko).
    Podsumowując - w moim DGV ilość wierszy i ilość kolumn jest zmienna, nie mogę więc na sztywno napisać kodu, który wklei mi w treść e-maila jakąś liczbę kolumn/wierszy, bo zwyczajnie może być ich więcej, albo mniej.
    Czy ktoś byłby w stanie mi pomóc?

    Zaznaczam - bo to może się przydać - że mejle nie są wysyłane bezpośrednio z aplikacji. Z racji tego, że jeśli uda mi się ją ukończyć, zostanie udostępniona setkom klientów, czyli tysiącom pracowników, więc definiowanie użytkowników/haseł/połączeń odpadło. Aplikacja po prostu wywołuje okno nowej wiadomości Outlook(wystarczy, że jest zainstalowany i skonfigurowany, nie musi być nawet otwarty, a w tej branży 90% klientów z niego korzysta, reszta działa na innych zasadach) i umieszcza w nim elementy, które określił klient wypełniając formularz zawarty w tej aplikacji(wypełnia adres, dane kontaktowe, priorytet zamówienia, typ zamówienia, czy odbiór czy dostawa, itp). Fragment kodu wywołujący Outlooka:
    Kod: csharp
    Zaloguj się, aby zobaczyć kod
  • Poziom 17  
    Z danych ze swojego DataGridView utwórz tabelę html:

    Kod: csharp
    Zaloguj się, aby zobaczyć kod
  • Poziom 9  
    Ja dodam do kodu wyżej: to tylko sample, powinieneś to zrobić tak, by ten kod był bardziej skalowalny tj. użyj wzorców projektowych by ładnie "opakować" ten sample kod. Nie wrzucaj go w prost tam gdzie potrzeba. Najlepiej, gdybyś podszedł do tego na zasadzie wzorca Builder na bazie AbstractFactory. Możesz na to nałożyć ewt. Facade i dodać Flyweight, żeby ogarnąć elementy styli na markupie HTML.
  • Poziom 19  
    Przepraszam, ale nie bardzo wiem jak to zrobić...
    Cytat:
    Na początku zaznaczę, że (bardzo) amatorsko zajmuję się programowaniem w C#, więc będę wdzięczny za wyrozumiałość i łopatologiczne odpowiedzi/wskazówki na zadane pytania
  • Poziom 9  
    Zależy po co to robisz, jeśli tylko dla siebie, to możesz pominąć moją sugestię. Jeśli jest to dla kogoś, a tym bardziej jeśli to jakieś zlecenie to lepiej to wykonać "ładnie". Natomiast, jeśli pomimo jednego czy drugiego przypadku chcesz się nauczyć stosować te techniki, o których wspomniałem, to wpisz sobie to w Internet, możesz znaleźć wszystko w sieci.
  • Poziom 19  
    Jest to coś, co robię od siebie dla innych - moja własna inicjatywa, która jednocześnie może ułatwić pracę mi i współpracownikom. Oczywiście zależy mi na wyglądzie oraz optymalizacji i zamierzam zgłębić elementy, które wymieniłeś. Dzięki za podpowiedzi.
  • Pomocny post
    Poziom 9  
    Spoczko. Możesz pisać do mnie pv w razie problemów bo Design Patterns to fajne, ale często specyficzne są.
  • Poziom 19  
    Dzięki pomocy @Arkasin i @AdamFilipek udało mi się wykonać to, na czym mi zależało, a co sprawiało mi najwięcej problemu.
    Dzięki panowie.