[Delphi] Prowadzenie sklepu

0

Chciałbym stworzyć oprogramowanie, które mogłoby pomóc prowadzić sklep, tzn. chodzi mi o bazę danych, do której mógłbym wpisywać wszystkie faktury, podliczać je i zliczać stan kas i czy wszystko sie zgadza. Myślę nad tym, aby zrobic to w plikach typowanych i nie jestem pewien czy to jest dobry pomysł, może lepiej skorzystać z czegoś innego do tworzenia baz danych sql czy coś?
Niestety miałem do tej pory do czynienia jedynie z plikami typowanymi i BDE, z tym że za BDE nie przepadam, więc jesli coś zaproponujecie innego to mile widziane jakieś linki ;)
z góry dziękuję za odpowiedzi :) [soczek]

0

Ja bym to oparł o Sql.
IMO jest to wygodne rozwiązanie (co kto lubi ;) ) a poza tym w przyszłości gdy sklep się rozrośnie...wszystkie dane będą w jednym miejscu i będzie można je modyfikować z dowolnego komputera w firmie...etc.

pzdr.

0

Swego czasu robilem program na wiele stanowisk ale podliczajacy produkcje i wyliczajacy wydajnosc... robilem to na plikach typowanych.... przerobilem na sql i uwierz mi ze to bedzie najlepsze wyjscie ;)

0

ok .. jak na razie chodzi o jeden sklep spożywczy, więc jednak się zdecyduje chyba na pliki typowane ;)

na początku będę miał masę roboty .. ale liczę że potem będzie coraz łatwiej... chodzi mi o to w zasadzie żebym na początku wpisywał wszystkie faktury, a program powoli tworzył bazę danych towarów i potem tylko zacznę pisać nazwę produktu i wyświetli mi proponowaną z bazy, do tego marżę żeby naliczało automatycznie. Jeśli chodzi o kasy to nie chcę nic podłączać czy coś, chce jedynie wpisywać do programu raporty z poszczególnych zmian ile pieniędzy weszło i wyszło z kasy, żeby sprawdzać czy się wszystko zgadza, tak więc spokojnie może wszystko być robione z jednego komputera w biurze.

Dane o fakturze bym deklarował niej więcej tak:

type
  TProdukt = record
    Nazwa: String[50];
    Jm: Byte;
    Ilosc: Cardinal;
    CenaJednBezPodatk: Single;
    WartTowaruBezPodatk: Single;
    Podatek: Byte;
    PodatekKwota: Single;
    WartTowaruZPodatk: Single;
    Marza: Byte;
    WartTowaruZMarza: Single;
  end;

type
  TFaktura = record
    Nr: String[10];
    Data: TDateTime;
    Sprzedawca: String[50];
    Produkty: array of TProdukt;
    Razem: Single;
  end;

z tym, że niektóre pozycje jak: nazwa i Jm mogłyby być wczytywane z osobnej bazy towarów (która by była potrzebna przy podpowiadaniu gdy się wpisuje towar do faktury), ale to później najwyżej usprawnie. Nie chcę drukować faktur czy coś, chcę robić tylko to co napisałem. Nie wiem czy czegoś nie zapomniałem?

  • jak będę miał w jednym pliku dane z całego roku, to jak usprawnić sumowanie faktur z konkretnego dnia/miesiąca?
  • na czym to wyświetlać? DrawGrid chyba będzie dobry?

// Dopisane:

  • co zrobić z:
  Produkty: array of TProdukt;

gdyż później chciałbym mieć plik typu TFaktura, więc nie mogę dać tablicy dynamicznej, a chciałbym mieć zapisane wszystkie faktury do jednego pliku :/

0

Dlatego aby nie produkować kolejnych pytań i problemów : użyj jednak bazy danych SQL. To, że słabo się znasz na nich nie stanowi problemu .. podstawowe użycie DML poznasz w kilka godzin, przećwiczysz i nie bedzie to robić kłopotu.

Linki:
Microsoft SQL Server - ściągnij wersje Express

0
Arthan napisał(a)

ok .. jak na razie chodzi o jeden sklep spożywczy, więc jednak się zdecyduje chyba na pliki typowane ;)

na początku będę miał masę roboty .. ale liczę że potem będzie coraz łatwiej... chodzi mi o to w zasadzie żebym na początku wpisywał wszystkie faktury, a program powoli tworzył bazę danych towarów i potem tylko zacznę pisać nazwę produktu i wyświetli mi proponowaną z bazy, do tego marżę żeby naliczało automatycznie. Jeśli chodzi o kasy to nie chcę nic podłączać czy coś, chce jedynie wpisywać do programu raporty z poszczególnych zmian ile pieniędzy weszło i wyszło z kasy, żeby sprawdzać czy się wszystko zgadza, tak więc spokojnie może wszystko być robione z jednego komputera w biurze.

Dane o fakturze bym deklarował niej więcej tak:

type
  TProdukt = record
    Nazwa: String[50];
    Jm: Byte;
    Ilosc: Cardinal;
    CenaJednBezPodatk: Single;
    WartTowaruBezPodatk: Single;
    Podatek: Byte;
    PodatekKwota: Single;
    WartTowaruZPodatk: Single;
    Marza: Byte;
    WartTowaruZMarza: Single;
  end;

type
  TFaktura = record
    Nr: String[10];
    Data: TDateTime;
    Sprzedawca: String[50];
    Produkty: array of TProdukt;
    Razem: Single;
  end;

z tym, że niektóre pozycje jak: nazwa i Jm mogłyby być wczytywane z osobnej bazy towarów (która by była potrzebna przy podpowiadaniu gdy się wpisuje towar do faktury), ale to później najwyżej usprawnie. Nie chcę drukować faktur czy coś, chcę robić tylko to co napisałem. Nie wiem czy czegoś nie zapomniałem?

  • jak będę miał w jednym pliku dane z całego roku, to jak usprawnić sumowanie faktur z konkretnego dnia/miesiąca?
  • na czym to wyświetlać? DrawGrid chyba będzie dobry?

// Dopisane:

  • co zrobić z:
  Produkty: array of TProdukt;

gdyż później chciałbym mieć plik typu TFaktura, więc nie mogę dać tablicy dynamicznej, a chciałbym mieć zapisane wszystkie faktury do jednego pliku :/

z mojej strony pozostaje życzyć jak najlepszych rezultatów mało "kurw" przy pisaniu i jeszcze mniej jak się coś zgubi/sypnie się plik

A tak na poważnie jak weźmiesz jakikolwiek darmowy SZBD to ww problemy przestaną istnieć.
Zastanów się jeszcze jak będziesz wyszukiwał konkretną fakturę, kiedy będzie ich np 1000, albo konkretną pozycję z konkretnej faktury, których będzie np. 1000 faktur x 10 pozycji na fakturę, czyli 10 000. A to wcale nie są jakieś kosmiczne wartości a raczej małe.
Albo jak nagle Nazwa: String[50]; przestanie wystarczać i trzeba będzie zamienić na Nazwa: String[70];
Nie wspominając już o wyświetleniu pozycji faktury, gdzie trzeba będzie w pliku towary odnaleźć konkretny towar dla konkretnej pozycji.
A na koniec jak już sobie odpowiedziałeś na powyższe i doszedłeś do wniosku, że spoko - dam radę to teraz weź pod uwagę, że użytkownik raczej nie ma 5 minut na czekanie na pozycje czy inne dane :p

michal4523 napisał(a)

http://zlotemysli.pl/freestyle123.php?c=4main&idEbook=313 najlepsza ksiazka o delphi
śmiem wątpić...

// za wrzucenie tej reklamy w kilka tematów, innymi słowy za spam michal4523 doczekał się tygodniowego bana na ip. (dop. deus)

A co do bazy, to MSSQL jest OK, ale ja bym jednak polecał FireBird / PostgreSQL

0
Deti napisał(a)

latego aby nie produkować kolejnych pytań i problemów : użyj jednak bazy danych SQL.

dzięki za link .. ściągnę i poczytam, jeśli załapie to zrobię na sql, jak nie to wrócę do obecnego pomysłu, czyli do plików nietypowanych :D

michal4523 napisał(a)

http://zlotemysli.pl/freestyle123.php?c=4main&idEbook=313 najlepsza ksiazka o delphi

Wszystko czego się nauczyłem o Delphi wiem z internetu i raczej tak już pozostanie, bo jednego rozdziału kupić nie mogę ;) a większość pewnie i tak stamtąd znam, ale dzięki ;)

@Misiekd Twojego postu nie skomentuje, po prostu zastosuje się do wskazówek, bo ja już jestem Twoim fanem hehe :D

0

Arthan ja mam to sprawdzone w praktyce :) bo ilosc danych wygladala tak samo :)
okolo 200 arkuszy dziennie ale na kazdej okolo 50 wartosci ;) przy rocznym obliczeniu to sa koszmarne obliczenia dla programu a sekundy dla dobrze zorganizowanej i prawidlowo zindeksowanej bazy SQL... uzywal Firebirda ;)

zdradze wyniki:)
od stycznia do dzis mam 30 000 arkuszy :)
kazdy 1 arkusz to osobne wpisy w bazie przestojow, w bazie pracownikow, w bazie maszyn, w bazie zmian, w bazie materialow, w bazie wyrobow i paru innych bazach ;) w sumie 1 arkusz to srednio 14 wpisow w roznych tabelach (sory nie bazach - tabelach)...

obliczenie tego wszystkiego w sql zajmuje niecale 3 minuty na P IV 3GHZ z 2gb ramu i dyskiem 7200 RPM ;)

chetnie bym porownal ile zajeloby Ci zrobienie tego na plikach typowanych :D

oczywiscie wtedy nie umialem NIC a NIC z sql ;) pomogly mi 2 osoby a ostatnio pomagaja mi jeszcze rady miska ;)

polecam spojrzeć tutaj: http://gskoczylas.rekord.pl/ - znajdziesz tu cenne rady o operowaniu serwerem Firebirda i jak postepowac w jakich przypadkach :) ja te informacje rozbudowalem i zrobilem stabilny i w 90% zautomatyzowany serwer sql ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1