Obrazac naloga za uplatu - prikaz dupliranih polja
|
|
|||
Imam problem, nadam se da mi mozete pomoci... naime pokusavam napraviti standardnu uplatnicu ili nalog za uplatu u O.O.Base.. uspem napraviti sve ali nikako ne mogu povezati tabelu sa formom jer postoje polja koja zelim da se sa leve strane uplatnice upisu (polja koja se dupliraju tipa racun primaoca) a sa desne strane te informacije same popune tj kopiraju..
isto to kasnije zelim stampati... znaci rec je o sablonu ili formi kako god uplatnice blanko koja ce se popunjavati istampati iznova u vecem broju! Unapred hvala na odgovoru! |
|||
|
|||
Nisam siguran da razumem pitanje. Na onom standardnom obrascu „Nalog za uplatu“ nema polja koja se dupliraju, tj. ni jedno polje na nalogu se ne javlja dva puta.
|
|||
|
|||
to je uplatnica tipa iz dva dela perforirana , dakle ima nalog za uplatu a sa druge strane izvestaj o uplati (kao za kablovsku ili telefon kada platite racun salterska sluzbenica odcepi desni deo i da vama) to je isto tabela sa podacima sa leve strane
u svakom slucaju problem nastaje kod povezivanja tabele sa formom dakle imam dve tabele sa istim podacima i zelim kada upisem levo u polje "svrha uplate" da se i na desnoj strani pojavi ... probao sam sve ali jednostavno mi ne ide .. ![]() |
|||
|
|||
Ideja je sledeća. Kroz čarobnjak napravite početni obrazac, zatvorite i sačuvate obrazac. U listi obrazaca kliknete desnim i izaberete opciju Izmeni.
U paleti Kontrole obrasca izaberete tekstualno polje i docrtate polja koja treba da budu duplirana i uredite polja. Primetite da ako ste izabrali standardni raspored dobićete kontrole koje su grupisane sa natpisima. Da uredite kontrolu bez natpisa, kliknite na par desnim, pa iz menija Grupisanje odaberite Uredi grupu. Neposredno nakon toga možete izabrati pojedinačni element i urediti ga tako da ostanu grupisani. Za docrtana polja kliknite desnim, izaberite Kontrola i na kartici Podaci odaberite odgovarajuće Polje za podatke. Dakle sada imamo dva polja koja koriste istu kolonu tabele ili upita. Postavite još opciju na istoj kartici da nije potreban unos polja, a na kartici Opšte uključite opciju Samo za čitanje. Sada kada pregledate postojeće zapise, oba polja imaju istu vrednost, a samo jedno je moguće popuniti. Ostaje još sitna kozmetička izmena. Polja jesu vezana, ali unos u prvo polje ne osvežava odmah prikaz drugog, već je potrebno skočiti napred-nazad po zapisima. Zato ćemo da napišemo mali makro. Otvorite Alatke > Makroi > Organizuj makroe > OpenOffice.org bejzik i u prozorčetu levo odaberite datoteku trenutno otvorene baze pošto želimo da makro bude sačuvan u datoteci. Odaberite podrazumevanu grupu Standard i desno kliknite na dugme Nov i upišite naziv Modula (npr. Obrasci ili podrazumevano Modul1). U prozoru makroa upišite kod za sledeće dve male procedure:
Druga procedura je opšteg tipa i ima tri argumenta: obrazac, izvornu, i ciljnu kontrolu za kopiranje. Prva procedura je konkretna. Pretpostavimo da na obrascu imamo polja txttekst1 i njemu duplirano txttekst2, ona će na događaj promene prvog polja preneti vrednost u drugo. Preostaje da dodelimo prvu proceduru događaju promene polja txttekst1 na formularu. Odaberite polje (ako je grupisano sa oznakom, uđite u grupu pa odaberite polje), kliknite desnim i izaberite opciju Kontrola. Na kartici Događaji kod događaja Promenjen kliknite na dugme „...“ da dodelite makro. U prozorčetu desno kliknite na dugme Makro i najpre levo odaberite datoteku, biblioteku i modul, a desno proceduru tekst1_na_promenu. Proceduru sam tako nazvao prema imenu polja txttekst1 i događaja (na promenu) radi čitljivosti. Ako se vaša kontrola drugačije zove, možete ali nije obavezno da promenite naziv. Kontrola će biti poslata kao prvi parametar, i onda se kod uvek izvršava u njenom kontekstu. Potvrdite sve izbore sa U redu, sačuvajte i zatvorite obrazac. Sada su oba polja vezana na istu kolonu, a dodatno pri promeni teksta osvežava se vrednost duplikata i bez potrebe za šetanje napred-nazad po zapisima. U prilogu je datoteka kopija.odb koju možete da preuzmete i pogledate kako su sklopljene sve kockice. |
|||
|
|||
Ovo jednom recju FUNKCIONISE!!! Hvala puno samo jos jedan mali dodatak potreban mi je ceo kod za makro zar ne ???
ja to ne umem da napravim .. da li može bez makroa funkcionisati isto ? ako ne ja imam polja: Uplatilac, Adresa, Svrha uplate, Rok plaćanja, Šifra plaćanja, Račun, Model, Valuta, Iznos, i poziv na broj... dakle sva polja se dupliraju... došao sam do koraka pravljenja makroa i za sada ide lepo samo kažem.. ne znam napisati kod za sve.. Interesuje me da li može bez makroa završiti posao! Unapred hvala! |
|||
|
|||
Bez makroa, kada su polja samo povezana, dogodiće se sledeće:
- kada se otvori obrazac sa postojećim zapisom iz baze, polja se prikazuju duplirano - kada se pređe na sledeći zapis, polja se prikazuju ispravno duplirano - međutim ako se u obrascu izmeni polje, ta izmena neće odmah biti prikazana u dupliranom polju već tek kada se klikne u duplirano polje, sačuva zapis i osveži obrazac ili pređe na sledeći zapis i vrati nazad po navigaciji Makro zaista nije teško sastaviti. Najpre popišite nazive polja (razlikuju se od naziva kolona iz tabele). Ako su polja grupisana sa tekstom natpisa, na desni klik kroz meni grupisanje uredite grupu i kliknite tako da označite samo polje bez natpisa, a onda pogledajte njegov naziv u podacima kontrole. Nazive možete i da sredite tako da budu opisni. Kada imate nazive, uredite makro tako da iskopirate ovu jednu proceduru kopiraj, a potom sastavite odgovarajuće namenske procedure. Za svako polje za koje po izmeni teksta treba nešto da se dogodi (ovde treba kopirati tekst u drugo), napišete po datom šablonu proceduru NAZIVPOLJA_na_promenu() gde svaka ima samo jedan red sa pozivom ove zajedničke procedure kopiraj (baš kao u primeru). Proceduru pišete po primeru, crveni tekst prilagodite tako da u prvim navodnicima piše naziv kontrole iz koje se tekst kopira, a u drugim naziv kontrole u koju se tekst kopira kao duplikat. Kada napišete sve procedure (napišete 10 nalik na prvu iz primera, a drugu samo jednom kopirate bez ikakve izmene), sada uredite obrazac tako da svakom polju (opet pazite da ako je grupisano morate da uredite grupu) na kartici Događaji pridružite makro sa njegovom procedurom. |
|||
|
|||
U svakom slučaju.. neizmerno hvala na datom detaljnom pre svega objašnjenju!!! Jako mi pomaže ovo saznanje, ipakželja za novim stvarima nikad ne prestaje Smile sada imam jednu malu kočnicu.. naime, sastavim jedan obrazac na principu objašnjenom gore.. i imam polja tipa ID, Uplatilac.... i da ne nabrajam sve.. dodelim svakom stanaru određene zgrade po 1 id redom 1,2,3...
kada otvorim obrazac po defoltu mi je ID 1 i svi podaci tipa ime prezime adresa vec postoje (jer sam ih prethodno definisao u tabeli).. Kako sada da izvedem da se promenom polja ID i ostala polja zamene odgovarajućim podacima ? Evo kako to izgleda: ![]() |
|||
|
|||
Možete ceo obrazac staviti u podobrazac tako da on bude vezan za polje ID u glavnom obrascu. Glavni obrazac tada nije uopšte vezan za upit ili tabelu. Alternativno, u glavnom obrascu možete imati kombinovanu listu ili tablicu po mesecu/primaocu...
Prilažem arhivu sa demonstracijom i sjajnim PDF dokumentom koji objašnjava cake. Arhiva je preuzeta sa OpenOffice.org foruma na engleskom, autor je korisnik Arineckaig. Moguće da vam odgovara i podrazumevana funkcionalnost trake za navigaciju sa postavljenim filtrom, pogledajte, kontrola postoji u datoteci u primeru. |
|||