14.10.2013
Prenos podataka između tabela u Dolapu II put
U prethodnom blogu Prenos podataka između tabela u Dolapu je pomenuto da postoji namera se da lepljenje (paste) podataka realizuje u dokumentima. Od verzije 0.928 ono je realizovano u sve robne dokumente sem povratnica. Obzirom da je lepljenje podataka u Dolap moguće samo ako su podaci kopirani iz samog Dolapa, tj. nije moguće lepljenje podataka iz drugih programa, niti će biti moguće u budućnosti, ova verzija donosi mogućnost preuzimanja podataka iz drugih programa preko CSV fajlova, o čemu će biti reč kasnije u ovom tekstu. Sve što se odnosi na lepljenje podataka važi i za import podataka iz fajla, jer se u osnovi radi o istoj stvari sa jednim međukorakom – mapiranje CSV fajla.Naravno ovde je reč o lepljenju tabela podataka. Lepljenje pojedinačnog podatka u polje forme, npr. nabavna cena u ćeliju forme kalkulacije je uvek radilo kao kod svakog Windows programa. Lepljenje tabelarnih podataka u Dolap je drugačije nego kod drugih Windows programa, šta više lepljenje tabela u Dolap je čudno. Govorimo o na primer kopiranju svih stavki nekog računa i njihovom lepljenju na primer u otpis robe.
Bacam kocke, izlaze krugovi
Čudno je pre svega jer programi kod kojih se tabela podataka puni preko forme, kombinacijom unetih podataka i postojećih podataka iz baze (čitaj knjigovodstveni programi), nemaju lepljenje tabela. Naime ne može se u dokument zalepiti neka tabela kao u običan editor teksta.

Najeklatantniji primer ovog čudnog lepljenja je izveštaj Promet robe po dokumentima. Na primer otvorimo karticu nekog kupca, označimo sve redove (Ctrl A) i kopiramo ih (Ctrl C). Redovi sadrže zaduženja po računima i stavke sa izvoda o uplatama računa. Otvorimo Izveštaji > Roba > Promet robe po dokumentima i zalepimo. Na ekranu se pojavljuje lista artikala! Vrlo čudno, ali ne i nelogično.
Razumevanjem logike lepljenja u Dolapu dobija se moćan alat za povećanje produktivnosti rada u programu. Logiku lepljenja određuje logika tabele u koju pastujemo podatke. Konkretno ova tabela od korisnika očekuje da unese tip i broj robnog dokumenta, nakon čega ona prikazuje artikle sa tog dokumenta i njihove količine ulaza i izlaza. Nakon toga možemo da unesmo novi dokument i ukoliko na njemu ima artikala koji su već prikazani u tabeli, njihove količine će biti sabrane, tj. artikal se samo jednom prikazuje sa kumulativnim količinama ma koliko robnih dokumenata uneli. Možemo da, prepisujući sa kartice kupca, unesemo sve račune (i povratnice) kupca i videćemo ukupne količine robe koje je kupio od nas. Ali šta ako on ima 1000 računa? Uradićemo ovo što je pomenuto gore – copy/paste. Tabela u koju se lepe podaci posmatra da li na clipboard-u ima podataka koju su od njenog interesa. Ako nedostaju, odbiće lepljenje. Konkretno ovde su to tip i broj robnog dokumenta, a koji postoje na kartici kupca i ovaj izveštaj će samo njih preuzeti, tj. brojeve računa (i povratnica ako ih ima). Redove izvoda, ostalih knjiženja, iznose dugovanja i potraživanja itd. će ignorisati. Efekat je isti kao da su velikom brzinom ručno uneti svi brojevi računa. Rezultat je da lepljenje ne daje na ekranu ono što je na clipboard-u, kao kad lepimo u editor, nego ono što je posao tabele.
Od viška logike glava ne boli
Na primeru kalkulacije, koji je najsloženiji dokument za lepljenje, je najbolje da se razmotri ova logika, a koja se, kao što je već pomenuto, svodi na logiku unosa podataka u dokument.

Prvi podatak koji se unosi u kalkulaciju je šifra artikla i bez njega se ne može uneti stavka, što će reći da podaci koje lepimo moraju da sadrže šifru robe (može i alijas). Ako na clipboard-u stoji šifra artikla koji ne postoji u bazi, on neće biti importovan, bez obzira što se tamo nalaze svi podaci o njemu (naziv, mera, poreska stopa). To što iz kalkulacije možemo ručno da evidentiramo novi artikal je samo prečica do nekog drugog dela programa koji služi za upravljanje bazom artikala. Sama kalkulacija (i ostali robni dokumenti) ne kreiraju nove artikle i očekuju šifru postojećeg artikla. Međutim, iz istog fajla se može prethodno importovati roba, a taj se posao može i automatizovati. Objašnjeno je u uputstvu kako se ovo radi.
Nakon unosa šifre, na ekranu se pojavljuju osnovni podaci o artiklu, što znači da kalkulaciju ne zanima naziv, poreska stopa i ostali podaci o artiklu koji stoje na clipboard-u. Oni će biti ignorisani, tj. koristiće se podaci iz baze. Sledeći podatak je količina. Stavka ne može da se upiše bez količine, što će reći da je i to obavezan podatak i mora da stoji na clipboard-u. Nabavna cena, poslednja primenjena marža i prodajna cena su podaci koji će takođe biti prikazani nakon unosa šifre, a to znači da oni nisu obavezni. Naime, ako ih nema na clipboard-u, biće korišćeni tekući podaci iz baze, kao što i kod ručnog unosa ne moraju da se promene. Ovo naravno može biti problem ako artikal prethodno nije imao ulaz, pa će ovi podaci biti nula, te je stoga potrebno biti obazriv. Pored toga, pošto ovih podataka može biti na clipboard-u, opcije importovanja nude mogućnost da se izabere kako će oni biti primenjeni, tj. mogu da se ne preuzmu sa clipboard-a u zavisnosti šta se želi postići. Jedna od opcija je i da kalkulacija sračuna prodajnu cenu. Trošak nabavke i rabat će biti uzeti sa clipboard-a ako ih ima. U protivnom će biti nula, što je opet identično ručnom unosu. Ako na primer kopiramo podatke iz kalkulacije u novu kalkulaciju, a ne želimo da se kopira trošak, kojeg tamo ima, sakrićemo kolonu pre kopiranja. Tako da je uključivanje i isključivanje kolona dodatni način izbora koji podatak hoćemo da prenesemo, a koji ne.
Nije retkost da nabavna cena ima više od dve decimale sa koliko se ona prikazuje na ekranu i kao takva se kopira, što može da dovede do lošeg obračuna kod lepljenja. Treba na svojstvima kolone (desni klik na naslov kolone) povećati broj decimala ako se želi kopiranje sa većom preciznošću.
Ukratko, potrebno je pre kopiranja podataka razmisliti šta je potrebno od podataka da bi se postigao željeni cilj prilikom lepljenja, a lepljenje posmatrati kao vrlo brzi ručni unos većeg broja stavki.
Pri svemu ovome treba imati na umu da i zaglavlje dokumenta može uticati na stavke, npr. interna prijemnica povlači nabavnu cenu iz udaljenog objekta. Račun dodaje rabat kupcu, ako ima odobren ekstra rabat ili mu se roba prodaje po ugovorenim cenama. Stoga, pre lepljenja podataka treba popuniti zaglavlje dokumenta.
Naravno, ako se ne dobiju željeni rezultati, dokument se jednostavno ne snimi i pokuša se sa nekom drugom kombinacijom podataka. Ovo na žalost ne važi za importovanje artikala. Oni se odmah zapisuju u bazu podataka, tako da postoji mogućnost da se upišu neželjeni podaci. Kod importa robe postoji opcija simulacije importa, kada se roba ne upisuje, ali se od programa dobija izveštaj ako ima odbačenih artikala ili nekih drugih napomena.
Import iz fajla
Obzirom da je lepljenje moguće samo ako tabela u koju se lepe podaci može da „sazna“ šta podaci na clipboard-u predstavljaju, radi importovanja podataka koji potiču iz drugih programa, korisnik je taj koji će naznačiti šta je koji podatak u kolonama tabele koja se importuje (šta je šifra, količina, cena itd.) Ovo importovanje (sa sada) ne ide preko clipboard-a, već preko CSV fajlova koji su široko podržani od mnogih programa. Fajl treba otvoriti iz menija Datoteka > Import podataka nakon što se otvori dokument ili tabela u koju se radi import ili još jednostavnije, da se fajl prevuče (drag & drop). Nakon ovoga se otvara dokument za importovanje gde se na jednostavan način radi povezivanje kolona importovanog fajla sa podacima koje Dolap tabela očekuje. Klikom na dugme Importuj, proces uvoza podataka je identičan kao kod internog kopiranja podataka. Detalji tehnike rada sa ovim dokumentom su dati u uputstvu (Help programa) i u online uputstvu.
Ništa bez prakse
Evo par primera za praktičnu primenu.
Na primer postoje dva ili više poslovna objekta. Uneli smo veći broj novih artikala kroz kalkulaciju cene i želimo da im otvorimo karticu u drugom objektu sa istom prodajnom cenom. Kopiramo ih iz kalkulacije, pri čemu se treba postarati da svi obavezni elementi budu prikazani na ekranu (šifra, naziv, mera, stopa) i naravno prodajna cena koju hoćemo da kopiramo. Uradimo nalepi u drugom objektu u tabeli evidencija robe i u opcijama obavezno zadamo da se obnove podaci postojeće robe. U protivnom svi će oni biti odbačeni, jer već postoje u bazi iako nemaju karticu u tom objektu. Odaberemo da se importuju finansijski podaci pošto kopiramo cenu. Nakon toga svi ovi artikli će imati otvorenu karticu i identičnu prodajnu cenu kao u prvom objektu.
Drugi primer. Propustili smo da na nekoliko stotina artikala unesemo šifru dobavljača što ograničava filtriranje po tom podatku, ali možemo po nekoliko drugih kriterijuma (iz naziva robe) u nekoliko navrata da ih isfiltriramo na ekranu. Prvo napravimo korisničku kolonu i nazovemo je Dobavljač i kao formulu upišemo šifru dobavljača, npr. 138 (da ovo je regularna formula). Svi redovi će biti popunjeni tim brojem. Sada filtriramo po prvom kriterijumu i snimimo u CSV fajl. Zatim po drugom i snimimo u drugi CSV fajl i tako dalje koliko bude potrebno da se izlistaju svi artikli tog dobavljača. Na kraju, otvorimo prvi fajl iz Notepad-a ili nekog drugog editora teksta, a zatim otvaramo svaki sledeći, brišemo naslov tabele u njemu, kopiramo sav sadržaj i dodajemo na kraj prvog fajla. To ponovimo za sve fajlove koje smo snimili. Konačni rezultat će biti da će prvi fajl sadržati sve artikle dobavljača i imaće kolonu sa njegovom šifrom. Treba ga sačuvati i importovati. Naravno prilikom mapiranja povezati šifru dobavljača sa kolonom u fajlu koju smo napravili i odobriti obnovu opisnih podataka. Na kraju obrisati korisničku kolonu koju smo definisali. Ovo može jednostavnije kopiranjem u Excel ili neki drugi spreadsheet program. U njemu se može kreirati i ta dodatna kolona, pa nije neophodno da se to radi u Dolapu. Excel tabelu treba sačuvati kao CSV fajl.
Ova se tehnika može primeniti i na druge podatke, na primer da se određeni broj artikala prevede iz jedne u drugu poresku stopu.
Kopiranje podataka u robne dokumente je još jednostavnije. Na primer zalihe neke grupe artikala treba otpisati u celosti. Uradi se filter na lager listi, kopira i zalepi u Otpis robe. Treba imati na umu da su podatak količina i zaliha različiti tipovi podataka, međutim svi robni dokumenti imaju opciju preuzimanja podatka zalihe ako nema količine na clipboard-u, pa je treba uključiti u ovoj situaciji.
Sve su kombinacije dozvoljene – možemo kalkulaciju da kopiramo u račun, jer treba celokupnu nabavku po toj kalkulaciji fakturisati nekom kupcu. Svakako da nakon lepljenja mogu da se urade korekcije na količinama ako nije baš celokupna količina. Takođe može da se više dokumenta kopira u jedan, tj. da se dodaju stavke.
Importovanje podataka može biti posebno interesantno za početak rada sa Dolapom ukoliko postoje poslovne evidencije koje se mogu sačuvati u CSV fajlove. Nakon importovanja robe, može se importovati početno stanje zaliha i da se višednevni posao završi za manje od pola sata.
Konačno, importovanje može biti od velike koristi ako se ne koristi fiskalni štampač u maloprodaji, već fiskalna kasa koja ima mogućnost preuzimanja liste prodatih artikala na kraju dana pre pražnjenja kase uz pomoć programa kojeg obezbeđuje proizvođač. Ovi podaci se uglavnom zapisuju kao CSV fajl i kao takvi se mogu importovati u račun Dolapa. Time se postiže da se ima evidencija zaliha u maloprodaji.
Postavljeno: 14.10.2013 - 15:56