Resenje je sada malo bolje nego ranije, ali jos ne dovoljno dobro.
Mislim da back end nije kompletan. Obicno se pravi posebn tabela za ono sto zoves Predatnice i Otpremnice. Moze po jedna za svaki document, a mogu se is vi dokumenti strpati u jednu tabelu, uz poznavanje tipa dokumenta. Preporucujem ti posebnu tabelu za svaki document dok malo ne steknes iskustva. Posle mozes i sve da spojis u jedno, ima prednosti ali i mana. Kad naucis prednosti i mane i kako da ih iskoristis, onda ima smisla trpati sve u jednu tabelu. Dotle, svaki document neka ima svoju tabelu. U tim tabelama pise identifikacioni broj dokumenta (predatnica ili otpremnica), datum izdavanja, od koga je (predatnica) za kogaje (izdatnica) i slicno. Onda se naprave tabele za stavke na dokumentu. To imas, to su tvoje tabele Ulazi i Izlazi. Trebalo bi da imas ovakvu situaciju u relationship dijagramu:
Otpremnice------< Izlazi >------ Artikli
Prijemnice-------< Ulazi >------- Artikli
gde je znacenje Roditelj---< Dete >---- Drugi Roditelj
Odnos Roditlej-Dete medju tabelama se po pravilu modelira kao Forma(Roditelj)-subforma(dete). U ovom slucaju ima sdva roditelja, sta da se radi? Jedan od roditelja je vazniji u ovom slucaju. Ako razmislis o kardinalnosti relacija, videces da moze da postoji Artikl i da se nikad ne pojavi na priejmnivi niti na otpremnici. Znaci, za desnu stranu prikazanih relacija medju tabelama, imam kardinalsnost 'nula ili vise'. Na levoj strani imamo kardinalsnost 'jedan ili vise' (pretpostavljam da nema smisal u bazi cuvati Otpremnicu koja nema ni jednu stavku, otude ono 'bar jedan ili vise'). Ako ne mozes iz poznavanja logika poslovnog procesa da zakljucis koji par forma/subforma je potreban, pogledaj kardinalbnost. Ako je kardinalnost 'nula ili vise', onda ti ne treba forma/subforma. Proizilazi da ces imati forma/subforma konstrukciju za Otpremnice/Izlazi i Prijemnice/Ulazi
Elem, onda bi se za Otpremnicu i Predatnicu napravile forme, svaka sa svojom subformiom gde bi se vrsio unos. Dakle, imao bi (frmOtpremnica + subformIzlazi) i (frmPrijemnica + subformUlazi) Za aktiviranje formi frmOtpremnica i frmPrijemnica napravio bih dva dugmeta, "Nova Otpremnica" i "Nova Prjemnica" koja rade upravo to - otvore frmOtpremnica i frmPrijemnica i cekaju unos. Dugmad stavis na ono sto je tvoja glavan forma trenutno.
Na formi koja ti se otvara sa otvaranjem aplikacije imas dugme 'pretrazi' koja otvara datasheet za pretrazivanje. Ja bih licno ostavio datsheet za pretrazivanje stalno vidljiv. Tu bih prikazao trenutno satnje svih artikala. Imas dakle sve article pred sobom i njihovo stanje. Svi stalno kukaju kakozele kombo box, pa da izebru artikl I vide stanje. Ne treba kombo box, ne treba biranje, sve ti je pred ocima stalno. Mozes da sortiras, filtriras, biras po nazivu, sifri, dobavljacu, vsrti, dimenziji, po cemu god hoces a sve bez i jedne linije koda. To se naravno slaze sa teorijskim radovima velikih majstora Zidara i Chacke. Naime, Zidar je postavio teoremu da je 'the best code is no code at all' a onda je Chachka dokazao da je u pitanju u stvari aksioma. A o aksiomama se kao sto znamo, ne diskutuje. Osim ako ne zelite da dokazete da se paralene prave seku negde dovoljno daleko I da psotoji trougao sa tri prava ugla (zaista se moze pokazati da je sve ovo tacno)
Imao bih takodje datasheet forme gde bih mogao da vidim sve postojecde prijemnice/otpremnice. I onda bih klikom na identifikacioni broj dokumenta otvarao postojeci document da ga vidim ako treba i menjam nesto ako zelim. Naravno, da bi pozvao datasheet forme koje listaju sve otpremnice I prijemnice, trebaju nam dugmad, "Prijemnice" i "Otpremnice". I svi ovi dugmici treba da budu na tvoj trenutno glavnoj formi .
Za pohvalu:
Svidja mi se resenje sa pozivanjem reporta iz posebne forme, koja u stvari cita nazive reporta iz neke tabele. Tu dobijas na fleksibilnosti. Kad god napravis novi report, samo ga dodas u tabelu I list box ce ga prikazati. Tu ima jedna mogucnost poboljsanja. Reporti nekad traze neke parameter pre nego sto ih otvorimo. Na primer, zelimo nesto ali u zadatom datumskom opsegu. Postavljanje parametra u kveri je za nekoga ko ne ume da programira. Kou me I voli da programira, on napravi formicu gde se zadaju parametric, pa se odatle otvori report jednostavnim DoCmd sa Where uslovom. E tu imamo mali problem. Kako da znamo da li otvaramor eport direktno ili preko forme? Razmisli malo, postoji resenje. Naravno, resenje nije u programiranju nego u strukturi tabele koja cuva nazive reporta. Dodas jedno polje, true/false i nazoves ga IsForm, default = FALSE. Ako za neki report zelis da otvoris formu za gradjenje kriterijume, u tabelu uneses ime forme i stavis IsForm = TRUE. E sad dolazi programiranje, umesto OpenReport, proveris da li je ISForm=TRUE i ako jeste radis DoCmd.OpenFor "tvoja formica za gradjenje kriterijuma na kojij je dugme za print/preview report". Eto, imas dosta da radis.