Pliki cookie pomagają nam udostępniać nasze usługi. Korzystając z tych usług, zgadzasz się na użycie plików cookie. Więcej informacji
Sz@rk API – Kontrahent, Edycja i dodawanie danych

2010-06-08

W tym dokumencie nie będzie żadnych zdjęć, dlatego uważnie przeczytaj ten tekst :). Jeżeli coś będzie niejasne, przeczytaj jeszcze raz i jeszcze raz. Jeżeli nie pamiętasz jak definiować formy (okna), jak dodawać przyciski i zdarzenia (kod wywoływany po naciśnięciu przycisku), wróć do naszych poprzednich dokumentów. Cały wątek o API jest tutaj: http://tgsoft.pl/Blog.aspx?tag=API

Pamiętaj, do testowania naszych rozwiązań za pomocą API, nie musisz mieć żadnych dodatkowych narzędzi ( w tym kompilatorów). Wszystko dostępne jest w zintegrowanym środowisku Sz@rk Designer, opcja dostępna w każdym module systemu Sz@rk.

API udostępnia nam również edycję i dodawanie danych do bazy SQL. W tym przykładzie opiszemy klasę Kontrahent zdefiniowaną w przestrzeni nazw TGSoft.API.Data.

Za pomocą tej klasy możemy dodawać nowe rekordy do tabeli kontrahenci, w tym przypadku parametrem konstruktora jest null:

Kontrahent k1 = newKontrahent(null);

lub aktualizować dane wybranego kontrahenta z określonym numerem ID, w tym przypadku parametrem konstruktora jest żądany numer ID:

Kontrahent k1 = newKontrahent(9);

Klasa automatycznie obsługuje tabele kontrahenci,kontrahenci_a oraz id_sequences, generuje i aktualizuje odpowiednio numery ID tabel.

Poniżej pełny kod naszego programu. Do formy dodajemy dwa przyciski, jeden obsługuje zdarzenie dodania nowego kontrahenta (button1_click), drugi pozwala na aktualizację danych kontrahenta (button2_click).

namespace Szark
{
    using System;
    using System.Windows.Forms;
    using TGSoft.API.Data;
 
    public partial class Form1 : System.Windows.Forms.Form
    {
 
        public Form1(object sender)
        {
            this.InitializeComponent();
            button2.Click += button2_click;
            button1.Click += button1_click;
        }
 
        public void Main()
        {
            this.ShowDialog();
        }
 
        private void button1_click(object sender, EventArgs e)
        {
            Kontrahent k1 = new Kontrahent(null);
            k1.Grupa = "K";
            //k1.Kod = 11;
            k1.Skrot = "FHU BUDOWA";
            k1.Nazwa1 = "FHU Budowa Kowalski i Syn";
            k1.Ulica = "Budowlana 12";
            k1.KodPocztowy = "30-001";
            k1.Miasto = "Kraków";
            k1.SetFieldValue("nazwa3", "Spółka jawna");
            if (k1.Update())
                MessageBox.Show(String.Format("Dodano ID: {0}", k1.GetLastID()));
            else
                MessageBox.Show("Nie można dodać kontrahenta");
        }
 
        private void button2_click(object sender, EventArgs e)
        {
            Kontrahent k1 = new Kontrahent(9);
            k1.SetFieldValue("nazwa3", "zmiana pola nazwa3");
            if (k1.Update())
                MessageBox.Show("OK");
            else
                MessageBox.Show("Nie można zaktualizować kontrahenta");
        }
    }
}

Tabela kontrahenci zawiera kilkadziesiąt pól (kolumn). Najczęściej używane możemy aktualizować bezpośrednio za pomocą kodu np.:

k1.Skrot = "FHU BUDOWA";

Lista kolumn, które możemy w ten sposób aktualizować:

  • Grupa
  • Kod
  • NIP
  • Skrot
  • Nazwa1
  • Nazwa2
  • Nazwa3
  • Ulica
  • NumerDomu
  • KodPocztowy
  • Miasto
  • Telefon1
  • Telefon2
  • TelefonKomorkowy
  • Fax
  • SposobZaplaty
  • TerminZaplatyDni
  • Email1
  • Email2
  • WWW

Pozostałe kolumny możemy aktualizować za pomocą metody:

k1.SetFieldValue("nazwa3", "Spółka jawna");
  • Pierwszy parametr określa nazwę kolumny
  • Drugi, jej wartość (dane, które zapisujemy do kolumny)

Nasza Klasa automatycznie wypełnia domyślne wartości dla wymaganych kolumn. I tak możemy pominąć zapis:

k1.Grupa = "K";

program automatycznie uzupełni naszą grupę wartością "K";

Również kod kontrahenta może być bezpośrednio podany np.:

k1.Kod = 11;

Wtedy program doda kontrahenta z kodem 11, jeżeli ten będzie wolny. Wygodnym rozwiązaniem jest jednak całkowite pominięcie kodu (jak w naszym przykładzie), wtedy program automatycznie wpisze następny (kolejny) numer kontrahenta.

Po dodaniu kontrahenta niejednokrotnie potrzebujemy identyfikator rekordu, do którego dane zostały zapisane. ID nowego rekordu możemy odczytać za pomocą metody:

k1.GetLastID()

Tabela kontrahentów to jedna z podstawowych w naszej bazie danych, którą pragniemy uzupełniać danymi przy migracji z innych systemów lub przy tworzeniu integracji z innymi systemami. Klasa TGSoft.API.Data.Kontrahent na pewno ułatwi i zautomatyzuje ten proces…