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…