private void wczytanie_z_pliku(int i) /* Metoda czysto stricte polegają na wywołaniu odpowiedniej klasy oraz otrzymaniu jakiegoś stringa. W celu ochrony przed * pustym stringiem, owa zmienna nie może zawierać wartości -1. Następnym etapem, jest rozdzielenie według specjalnego * słowa i umieszczenie w interfejsie danych wczytanch z pliku. */ { KlasaPliki.pliki odczyt = new KlasaPliki.pliki(); string wejsciowystring = odczyt.odczytywanie_z_pliku(0); if (wejsciowystring != "-1") { string[] danezpliku = wejsciowystring.Split(new string[] { "A@#$A" }, StringSplitOptions.None); if (i == 0) { nazwa_firmy_sprzedajacego.Text = danezpliku[0]; adres_firmy_sprzedajacego.Text = danezpliku[1]; kod_pocztowy1_sprzedajacego.Text = danezpliku[2]; kod_pocztowy2_sprzedajacego.Text = danezpliku[3]; nip_sprzedajacego.Text = danezpliku[4]; nazwa_banku_sprzedajacego.Text = danezpliku[5]; numer_bankowy_sprzedajacego.Text = danezpliku[6]; PESELsprzedawcy.Text = danezpliku[7]; } else { nazwa_firmy_kupujacego.Text = danezpliku[0]; adres_firmy_kupujacego.Text = danezpliku[1]; kod_pocztowy1_kupujacego.Text = danezpliku[2]; kod_pocztowy2_kupujacego.Text = danezpliku[3]; nip_kupujacego.Text = danezpliku[4]; nazwa_banku_kupujacego.Text = danezpliku[5]; numer_bankowy_kupujacego.Text = danezpliku[6]; PESELnabywcy.Text = danezpliku[7]; } } }
private void generowanie_stringa_sluzacego_do_zapisu(string nazwafirmy, string adresfirmy, string kodpocztow1, string kodpocztowy2, string nip, string nazwabanku, string numerbankowy, string PESEL) /*Przygotowanie danych do zapisu na podstawie danych przesłanych przez Centrum dowodzenia. Dodanie specjalnych liter * ma byc ogranicznikiem pomiędzy danymi oraz łatwiejszym jego rozdzieleniu przez program. * W przyszlosci mozna dodac ograniczenie dotyczace szyfrowania, zeby zeby zaden nie powolany uzytkownik * nie mial dostepu do waznych danych o kontrachetnach oraz zmiany rozszerzenia, na mniej rozpoznowalny * Wykonuje to w metodzie, o troske uniwersalnosci klasy KlasaPliki.*/ { string s = ""; s += (nazwafirmy + "A@#$A"); s += (adresfirmy + "A@#$A"); s += (kodpocztow1 + "A@#$A"); s += (kodpocztowy2 + "A@#$A"); s += (nip + "A@#$A"); s += (nazwabanku + "A@#$A"); s += (numerbankowy + "A@#$A"); s += (PESEL + "A@#$A"); KlasaPliki.pliki zapis = new KlasaPliki.pliki(); zapis.zapisywanie_dopliku(s, 0); }
public void tworzenie_pliku_html(dane_faktury zbiordanych) { KlasaPliki.pliki pliki = new KlasaPliki.pliki(); string wejsciowystring = pliki.odczytywanie_z_pliku(1); if (wejsciowystring != "-1") { /*Na konsultacjach zaproponowano mi utworzenie takiego pliku za pomocą XML, ale niestety przerosło mnie to, ponieważ * nie wiem jak utworzyć i jak wsadzić dane do takiego pliku od poziomu programu. Zastosowałem rozwiązanie pośrednie, które * daje użytkownikowi, pole do manerwu plikiem HTML.*/ /*Zakładam, że użytkownik stworzy schemat w którym będą odpowiednie słowa, kluczowe. Które program automatycznie zmieni * w procesie produkcji. Wraz z programem, będzie dołączony schemat. * Program wyszukuje danego słowa kluczowego*/ int a = wejsciowystring.IndexOf("<!--data_wystawienia-->"); /*Wartość zwracana, przez powyższą instrukcję będzie dodatnia, kiedy odnajdzie w danym pliku dane słowo kluczowe * jeśli jest ujemna, funkcja nie znalazła danego kluczowego słowa i program nie wiem gdzie umieścić dane*/ if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 23, zbiordanych.dzienwystawienia); } /*^^ Gdzy a nie jest ujemna, to program po słowie kluczowym umieszcza naszą dane przechowywaną w odpowiedniej części * struktury * Dalsze instrukcje są analogiczne i zostanie pominięty komentarz.*/ a = wejsciowystring.IndexOf("<!--data_wplaty1-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 19, zbiordanych.Data_wpłaty1); } a = wejsciowystring.IndexOf("<!--metoda_platnosci1-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 24, zbiordanych.metoda_platnosci1); } a = wejsciowystring.IndexOf("<!--zamowienie_dane-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 22, zbiordanych.zamowienie_dane); } a = wejsciowystring.IndexOf("<!--suma_brutto-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 18, zbiordanych.suma_brutto); } a = wejsciowystring.IndexOf("<!--nazwafirmy_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 25, zbiordanych.nabywca.nazwa_firmy); } a = wejsciowystring.IndexOf("<!--adresfirmy_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 25, zbiordanych.nabywca.adres_firmy); } a = wejsciowystring.IndexOf("<!--kod_pocztowy_1_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 29, zbiordanych.nabywca.kod_pocztowy_1); } a = wejsciowystring.IndexOf("<!--nip_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 18, zbiordanych.nabywca.nip); } a = wejsciowystring.IndexOf("<!--kod_pocztowy_2_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 29, zbiordanych.nabywca.kod_pocztowy_2); } a = wejsciowystring.IndexOf("<!--nazwa_banku_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 26, zbiordanych.nabywca.nazwa_banku); } a = wejsciowystring.IndexOf("<!--numer_bankowy_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 28, zbiordanych.nabywca.numer_bankowy); } a = wejsciowystring.IndexOf("<!--pesel_nabywca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 20, zbiordanych.nabywca.pesel); } a = wejsciowystring.IndexOf("<!--nazwafirmy_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 28, zbiordanych.sprzedawca.nazwa_firmy); } a = wejsciowystring.IndexOf("<!--adresfirmy_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 28, zbiordanych.sprzedawca.adres_firmy); } a = wejsciowystring.IndexOf("<!--kod_pocztowy_1_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 32, zbiordanych.sprzedawca.kod_pocztowy_1); } a = wejsciowystring.IndexOf("<!--kod_pocztowy_2_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 32, zbiordanych.sprzedawca.kod_pocztowy_2); } a = wejsciowystring.IndexOf("<!--nazwa_banku_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 29, zbiordanych.sprzedawca.nazwa_banku); } a = wejsciowystring.IndexOf("<!--nip_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 21, zbiordanych.sprzedawca.nip); } a = wejsciowystring.IndexOf("<!--numer_bankowy_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 31, zbiordanych.sprzedawca.numer_bankowy); } a = wejsciowystring.IndexOf("<!--pesel_sprzedawca-->"); if (a != -1) { wejsciowystring = wejsciowystring.Insert(a + 23, zbiordanych.sprzedawca.pesel); } /*Zakładam, także że dane o nazwie, cenie brutto, cenie netto towaru. Będą w jakieś formie, która pozwala na kopiowanie * i umieszczenia tych danych pod sobą. Przykładem takiego zapisu jest np tabela i jej następne wiersze * program pierw oczekuje, że znajdzie fragment do skopiowania i usunięcia i wniej będą słowa kluczowe dla nazwy, cenny * brutto, cenie towru netto. */ a = wejsciowystring.IndexOf("<!--wiersz_do_kopiowania-->"); //Początek int b = wejsciowystring.IndexOf("<!--/wiersz_do_kopiowania-->"); //i koniec wierszu do kopiowania if (((a != -1) && (b != -1)) && (zbiordanych.iloscwartosci_faktur != 1)) /*Musi być początek oraz koniec, ostatnia * wartość odpowiada za ilosc elementow w tabeli*/ { string tmp1 = wejsciowystring.Substring(a, (b + 28) - a); /*kopiowanie wiersza do zmiennej lokalnej*/ wejsciowystring = wejsciowystring.Remove(a, (b + 28) - a); /*usuwanie wiersza*/ string tmp = tmp1; int c; /*Zmienne pomocnicze potrzebne do pracy*/ for (int i = zbiordanych.iloscwartosci_faktur - 1; i > -1; i--) /*Zaczynamy pracę od tyłu dla pozostawienia chronologi * takiej samej jak w programie*/ { /*Tak samo jak wcześniej, czyli program oczekuje słowa kluczowego, jeśli jest znalezione to program koło słowa kluczowego * dopisuje dane z formy, jeśli nie, dana zostanie pominięta.*/ c = tmp.IndexOf("<!--nazwa-->"); if (c != -1) { tmp = tmp.Insert(c + 12, zbiordanych.daneowartoscifaktury[i].nazwa); } c = tmp.IndexOf("<!--ilosc-->"); if (c != -1) { tmp = tmp.Insert(c + 12, zbiordanych.daneowartoscifaktury[i].ilosc); } c = tmp.IndexOf("<!--cennanettozasztuke-->"); if (c != -1) { tmp = tmp.Insert(c + 25, zbiordanych.daneowartoscifaktury[i].cennanettozasztuke); } c = tmp.IndexOf("<!--stawka-->"); if (c != -1) { tmp = tmp.Insert(c + 13, zbiordanych.daneowartoscifaktury[i].stawka); } c = tmp.IndexOf("<!--cennabrutto-->"); if (c != -1) { tmp = tmp.Insert(c + 18, zbiordanych.daneowartoscifaktury[i].cennabrutto); } c = tmp.IndexOf("<!--wartoscnetto-->"); if (c != -1) { tmp = tmp.Insert(c + 19, zbiordanych.daneowartoscifaktury[i].wartoscnetto); } c = tmp.IndexOf("<!--wartoscbrutto-->"); if (c != -1) { tmp = tmp.Insert(c + 20, zbiordanych.daneowartoscifaktury[i].wartoscbrutto); } wejsciowystring = wejsciowystring.Insert(a, tmp); /*Powrót go głównej zmiennej w której jest przechowywany cały kod HTLM * (działaliśmy na zmiennej tymczasowej), zostanie dopisane tam, gdzie * znalezlismy znacznik*/ tmp = tmp1; /*Przywrócenie wzoru*/ } } pliki.zapisywanie_dopliku(wejsciowystring, 1); /*Przekazanie do klasy, która odpowiadania za zapisywanie stringa na dysku*/ } }