[ zormar @ 23.05.2007. 13:33 ] @
U programu imam Form1 na kojoj je MSHFlexGrid1, veza s bazom je ovako uspostavljena.
Code:
Private Sub Form_Load()
    Dim strConnect As String
    Dim strProvider As String
    Dim strDataSource As String
    Dim strDataBaseName As String

    strProvider = "Provider= Microsoft.Jet.OLEDB.4.0;"
        strDataSource = App.Path
        strDataBaseName = "\Baza.mdb;"
        strDataSource = "Data Source=" & strDataSource & strDataBaseName
        strConnect = strProvider & strDataSource
        Set connConnection = New ADODB.Connection
        connConnection.CursorLocation = adUseClient
        connConnection.Open strConnect
        Set rsRecordSet = New ADODB.Recordset
        rsRecordSet.Source = "Select * From PRVA TABELA"
        rsRecordSet.ActiveConnection = connConnection
        rsRecordSet.Open
    lblBOF.Caption = rsRecordSet.BOF
    lblEOF.Caption = rsRecordSet.EOF

Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DBQ=" _
& App.Path & "\Baza.mdb;DefaultDir=" & App.Path & " ;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

Na koji nacin da povezem Form2 i MSHFlexGrid2 s istom bazom ali DRUGOM TABELOM?
[ Ero S Ovoga Sveta @ 23.05.2007. 14:14 ] @
Obrisi taj tvoj Adodc1 i probaj ovako:
Code:

Private Sub Command1_Click()
Private Sub Form_Load()
    Dim strConnect As String
    Dim strProvider As String
    Dim strDataSource As String
    Dim strDataBaseName As String

    strProvider = "Provider= Microsoft.Jet.OLEDB.4.0;"
        strDataSource = App.Path
        strDataBaseName = "\Baza.mdb;"
        strDataSource = "Data Source=" & strDataSource & strDataBaseName
        strConnect = strProvider & strDataSource
        Set connConnection = New ADODB.Connection
        connConnection.CursorLocation = adUseClient
        connConnection.Open strConnect
        Set rsRecordSet = New ADODB.Recordset
        rsRecordSet.Source = "Select * From PRVA TABELA"
        rsRecordSet.ActiveConnection = connConnection
        rsRecordSet.Open
    lblBOF.Caption = rsRecordSet.BOF
    lblEOF.Caption = rsRecordSet.EOF

    Set MSHFlexGrid1.DataSource = rsRecordSet
    
        rsRecordSet.Source = "Select * From DRUGA TABELA"
        rsRecordSet.ActiveConnection = connConnection
        rsRecordSet.Open
    
    Set Form2!MSHFlexGrid2.DataSource = rsRecordSet
End Sub
[ zormar @ 23.05.2007. 14:53 ] @
Pokusao sam ovo, ali prijavljuje Run-time error 3705:
Operation is n ot allowed when the object is open
u ovom redu rsRecordSet.Source = "Select * From DRUGA TABELA"
[ goranvuc @ 23.05.2007. 14:59 ] @
1. A sta ti radi deo koda?
Code:

Adodc1.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=DBQ=" _
& App.Path & "\Baza.mdb;DefaultDir=" & App.Path & " ;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"


2. Zasto koristis hijerarhijski flex grid da prikazujes obicne tabelarne podatke?
Citat:
zormar:Na koji nacin da povezem Form2 i MSHFlexGrid2 s istom bazom ali DRUGOM TABELOM?

3. Da li kad ovo pitas pod "istom bazom" mislis da iskoristis isti Connection objekat, koji si vec otvorio u prvoj formi, a hoces samo da ga pozoves u drugoj?
[ zormar @ 23.05.2007. 15:07 ] @
Odgovori:
1. Moze i bez tog dela koda
2. MSHFlexGrid koristim jer je bilo problema s obicnim FlexGridom, ali na Form2 ne mora da MSHFG
3. Mislim da iskoristim isti Connection objekat, koji jei vec otvoren
[ goranvuc @ 23.05.2007. 15:20 ] @
OK, onda moras malo da naucis nesto (a i jos neki koji su se ovde raspisali) o zivotnom ciklusu formi i njihovom instanciranju.

Ako iz forme "Form1" zelis da pozoves neku formu koja ti se u projektu zove "Form2" mozes je direktno pozvati po imenu, ali ako je tako pozivas na jos nekim mestima, forma ti je stalno "ziva" sa svim vrednostima svojstava koje je poslednje imala, tj.
Code:

Form1.Show


Drugi nacin je da instanciras i unistavas objekat klase "Form1" po potrebi i to je jedini "pravi" nacin koji ti preporucujem.

Ukoliko si zainteresovan da to uradis kako treba i nesto naucis, napisi to ovde, pa cu ti staviti projekat kao primer.
[ zormar @ 23.05.2007. 15:24 ] @
Bicu ti zahvalan ako postavis neki primer
[ goranvuc @ 23.05.2007. 15:30 ] @
Evo, napravicu nesto "nabrzaka", bice za pola sata najkasnije.
[ goranvuc @ 23.05.2007. 16:12 ] @
Nisam bas merio, valjda nije proslo vise od pola sata, trebalo je sve smisliti, kodirati, testirati i komentirati i ...

Tu je primer instanciranja formi, koristenja jedne zajednicke konekcije, prosledjivanja parametra formi ...

Ako ima neka greska - izvini, neko ce vec ispraviti.
[ zormar @ 23.05.2007. 16:36 ] @
Sto se tice obecanog vremena bio si u granicama tolerancije.
Kod mene ovo radi.
Ovo je drugacije od onoga sta sam ja zamislio, pa cu pokusati svoj program da prilagodim ovom konceptu. Komentari su odlicni.
Ako negde zapnem nadam se da ces malo pomoci.
Hvala ti, pozdrav
[ Ero S Ovoga Sveta @ 23.05.2007. 21:16 ] @
Citat:
goranvuc: OK, onda moras malo da naucis nesto (a i jos neki koji su se ovde raspisali) o zivotnom ciklusu formi i njihovom instanciranju.

Covjek se uci dok je ziv ali je skromnos vrlina. Previse sarkazma za jednog moderatora.

1. Kod koji sam napisao,tacno je da nije uredu ali sa dodavanjem dva reda coda on bi proradio i
rjesava sustinu njegovog problema. Odnosno pokaza sam mu putanju, a ako se iole razumije u vb
mogao je da doradi kod. A ako ne Pomogao bi mu da to rijesi. Koliko ja shvatam sustinu foruma
ljudi iznose probleme kad zapnu pri programiranju, a ostali bi trebali da mu pomognu da nastavi gdje je zapeo.
Ako je drugacije, onda je najbolje da svako kaze kakav mu program treba i mi cemo to da mu napravimo.
2. Neznam zasto ljudi od nekog problema prave nauku.(valjda da se dokazu koliko oni znaju)
3. Gdje je (mladenovicz) dok je on bio aktivan na ovom forumu mnogo bolje je izgledao.
4. Odo da veceram pa cu posle da postavim zavrsetak onog koda sto sam postovao u prvoj poruci.
Neka @zormar ocijeni sta je jednostavnije i bolje pa neka tako uradi.
[ Ero S Ovoga Sveta @ 23.05.2007. 21:47 ] @
Evo kod koji radi:
Code:
Private Sub Command1_Click()

    Dim strConnect As String
    Dim strProvider As String
    Dim strDataSource As String
    Dim strDataBaseName As String

    strProvider = "Provider= Microsoft.Jet.OLEDB.4.0;"
        strDataSource = App.Path
        strDataBaseName = "\Baza.mdb;"
        strDataSource = "Data Source=" & strDataSource & strDataBaseName
        strConnect = strProvider & strDataSource
        Set connConnection = New ADODB.Connection
        connConnection.CursorLocation = adUseClient
        connConnection.Open strConnect
        Set rsRecordSet = New ADODB.Recordset
        rsRecordSet.Source = "Select * From [PRVA TABELA]"
        rsRecordSet.ActiveConnection = connConnection
        rsRecordSet.Open
        
    lblBOF.Caption = rsRecordSet.BOF
    lblEOF.Caption = rsRecordSet.EOF

    Set MSHFlexGrid1.DataSource = rsRecordSet
        rsRecordSet.Close 'Zbog ovog je prijavljivalo gresku
        
        rsRecordSet.Source = "Select * From  [DRUGA TABELA]"
        rsRecordSet.ActiveConnection = connConnection
        rsRecordSet.Open
    
    Form2.Show
    
    Set Form2!MSHFlexGrid2.DataSource = rsRecordSet
    
    rsRecordSet.Close
    connConnection.Close
    
    Set rsRecordSet = Nothing
    Set connConnection = Nothing
    
End Sub
[ goranvuc @ 23.05.2007. 22:40 ] @
I dalje mislim sve sto sam rekao, jer svaki put kada vidim:
Citat:
Ero S Ovoga Sveta:
Code:

    Set Form2!MSHFlexGrid2.DataSource = rsRecordSet

digne mi se kosa na glavi, a da si pogledao projekat koji sam prilozio, video bi bar 3 jaka razloga i zasto. Mozes se ljutiti koliko god hoces, nisam mislio da te vredjam, ovo je mesto gde se nesto uci i gde se resavaju neki problemi, a ti ako mislis da sve znas OK. Ja cu gledati da maksimalno svedem svoje komentare na odgovore ljudima koji umeju da kazu hvala kada im neko pomogne ili ukaze na nesto, a ako se ne varam i ti si bio jedan od njih u par navrata - evo da te podsetim na skoriji primer:

http://www.elitesecurity.org/t259251-0

Ne bih se "pravio pametan" da ne smatram da je ovaj problem jako vazan i da je vrlo malo obradjen na ovom forumu (a i inace) i zato sto vidjam da 99% VB programera ovo pogresno rade i o ovome malo znaju. Izvini na sarkazmu koji to nije bio, a ako imas problema sa mojom moderacijom, mozes ih slobodno ovde izneti, a pozivam i sve ostale koji imaju taj isti problem, vrlo rado cu se "samoukiniti" ako to zeli vecina.

Pozdrav!
[ Ero S Ovoga Sveta @ 24.05.2007. 00:26 ] @
1. Gladao sam projekat koji si ti odradio.
2. Nisam nasao ni jedadan a ne 3 razloga zasto ti se dize kosa na glavi!
Ajde ti meni reci u cemu je razlika odnosno zasto je bolje:
Code:
Dim WithEvents frmTMP As Form2

Private Sub Command1_Click()
    Set frmTMP = New Form2
    frmTMP.Show
    
End Sub

Private Sub frmTMP_Izlaz()
   Set frmTMP = Nothing
End Sub

OD
Code:
Private Sub Command1_Click()
    Form2.Show
End Sub

Private Sub Command2_Click()
    Unload Form2
    Set Form2 = Nothing
End Sub

Mozda jedino zato sto ima vise koda i komplikovaniji je ili zato sto ti mislis da je bolje.
To tvoje rjesenje se koristi kada treba istu formu otvarati 2 ili vise puta istovremeno, a u gornjem slucaju
ne vidim da se to zahtijeva.
3. Do sad nisam htjeo da komentarisem ovo ali sad moram.
Citat:
Ako iz forme "Form1" zelis da pozoves neku formu koja ti se u projektu zove "Form2" mozes je direktno pozvati po imenu, ali ako je tako pozivas na jos nekim mestima, forma ti je stalno "ziva" sa svim vrednostima svojstava koje je poslednje imala, tj.

Cista glupost! To je DJELIMICNO tacno posle:
Code:
Unload Form2
ali zasto sluzi:
Code:
Set Form2 = Nothing

4.Neznam sta si mislio s ovim da kazes:
Citat:
a ako se ne varam i ti si bio jedan od njih u par navrata - evo da te podsetim na skoriji primer:
osim da znas vise od mene??? Naravno da se zapne negdje ako nisi do sada radio sa tim.
5. Nemam nista protiv tvog moderiranja, ali kao moderator trebao bi da dajes konstruktivna rjesenja bez emocijonalnih
uplitanja. I nemoj da tvrdis nesto kao ovo ako nisi siguran:
Citat:
99% VB programera ovo pogresno rade.

Po meni svako rjesenje koje izvrsava trazeni zadatak je ispravno. Druga je stvar dali je to moglo jednostavnije
ili lakse da se uradi. Uhhh Sad mi je lakse. hehehe
6. Predlazem da ovo premjestis u zasebnu temu mozda ce jos neko da se ukljuci. Ovo prevazilazi okvire ove teme.

Prijateljski pozdrav i bez ljutnje!
[ goranvuc @ 24.05.2007. 00:54 ] @
Citat:
Ero S Ovoga Sveta:
To tvoje rjesenje se koristi kada treba istu formu otvarati 2 ili vise puta istovremeno, a u gornjem slucaju
ne vidim da se to zahtijeva.

Dakle, slazem se da se moje resenje koristi kada treba istu formu otvarati 2 ili vise puta, tj. sa 2 ili vise mesta u programu, i bas u tome je i stvar. Ja verujem da ti razlikujes ova dva nacina pozivanja i upravljanja formama, ali veruj mi da puno njih ne shvata razliku (uverio se puno puta u praksi). U pitanju je resenje i pristup koji je opstiji i ispravniji iz ugla objektno orijentisanog programiranja.
Prednosti:
1. Ovim pristupom imas mogucnost da uvedes i koristis UserDefined dogadjaje formi i imas potpunu kontrolu nad zivotnim ciklusom formi koje pozivas (demonstrirana tehnika u primeru).
2. Ovim pristupom imas mogucnost koriscenja tzv. "parametrizovanih formi" koje "izlazu" svoje parametre proceduri koja ih poziva i na taj nacin dobijas formu koju mozes koristiti na milion razlicitih nacina (demonstrirana tehnika u primeru).
3. Uz ovaj pristup je neophodno i izbegavanje konstrukcija koje si ti naveo u tvom primeru i zbog koje sam i reagovao:
Citat:
Ero S Ovoga Sveta:
Code:
    
Set Form2!MSHFlexGrid2.DataSource = rsRecordSet

cime si narusio gomilu OOP pravila (sto VB dozvoljava) jer pozivas nesto sto ti VB dozvoljava da pozoves bez prethodne informacije o stanju objekta, pristupas njegovoj kontroli, pa njenom svojstvu ... - ne bih da ulazim u teoretsku raspravu sta se sve ovde narusava, malo ce mi biti cela noc. Ono sto je bitno u tvom redu koda je da svi koji to ne znaju treba da znaju da se prvim spominjanjem kontrole na nekoj formi, tj referenciranjem na nju (kao u tvom kodu) dogadja Form_Load(), a znam sigurno da se mnogi oko toga "vrte" i nista im nije jasno.

Dakle, primer koji sam "nabrzaka" napravio je bio edukativnog karaktera i demonstrirao je gore navedene tehnike, uz tehniku deljenja konekcije, upravljanja otvaranjem i zatvaranjem konekcije i rekordseta itd.

Citat:
Ero S Ovoga Sveta:3. Do sad nisam htjeo da komentarisem ovo ali sad moram.


Ako iz forme "Form1" zelis da pozoves neku formu koja ti se u projektu zove "Form2" mozes je direktno pozvati po imenu, ali ako je tako pozivas na jos nekim mestima, forma ti je stalno "ziva" sa svim vrednostima svojstava koje je poslednje imala, tj.


Cista glupost! To je DJELIMICNO tacno posle:
Code:

Unload Form2

ali zasto sluzi:
Code:

Set Form2 = Nothing


U tvom kodu nije bilo nigde "Set Form2 = Nothing", a naravno da je u ovom slucaju to dovoljno.

Sto se tice emocionalnih uplitanja, i ja imam mana kao i svi drugi, a takodje i "patim od viska sujete" kao i vecina programera, ali se trudim da to kontrolisem, ako nekad izletim umem i da napravim "samocenzuru", a sto se tice ljutnje - ne ljutim se uopste, bas smo lepo "procaskali", a usput i dotakli neke teme koje stvarno prevazilaze okvire ove teme, a za koje si mi dao "slagvort".

Pozdrav!
[ Ero S Ovoga Sveta @ 24.05.2007. 01:32 ] @
Opet moram ja.
Citat:

cime si narusio gomilu OOP pravila (sto VB dozvoljava) jer pozivas nesto sto ti VB dozvoljava da pozoves bez prethodne informacije o stanju objekta, pristupas njegovoj kontroli, pa njenom svojstvu....

Zasto nesto komplikovati ako ne moras odnosno to je ona prica dali je bolji VB ili C C+....
VB je program najvjerovatnije najjednostavniji za programiranje. Sve sto on dozvoljava da radis
mozes da radis i ne krsis nikakva pravila OOP. Ko je rekao da se mora objektno programirati???
"Neko" je rekao bolje je. Po meni ako je nesto jednostavno ne treba ga komplikovati, osim ako
to aplikacija ne nalaze. I sve dok VB ne izbaci gresku, svaki kod je dobar.
Zasto onda ne prijedjes na VBNet kad volis OOP. On se skoro skroz primakeo OO programskim jezicima.
Ponovo ponavljam: NAJBOLJI KOD JE KOD KOJI RADI. E sad ko je koliko spretan i domisljat da uprosti i pojednostavi
kod to je vec druga prica.
[ goranvuc @ 24.05.2007. 06:05 ] @
Sto se ovog tice. niti cu ja tebe ubediti da sam u pravu, niti ti mene, tako da "svako svojim putem".

Citat:
Ero S Ovoga Sveta:Zasto onda ne prijedjes na VBNet kad volis OOP. On se skoro skroz primakeo OO programskim jezicima.

Ko kaze da nisam presao Ali na zalost, imam jos uvek gomilu VB 6.0 aplikacija koje "trce" kod korisnika koji su na odrzavanju, tako da se jos uvek "druzim" sa VB 6.0. A "portovanje" postojecih mi ide vrlo jednostavno, jer je cela arhitektura postojecih aplikacija vec postavljena "u duhu" i po OOP principima, jedino sto je to veliki "fizicki posao" - zbog veceg broja i kompleksnosti aplikacija koje imam.

Inace, VB 6.0 je podrzan od Microsofta (u smislu "da ce raditi sigurno") jos za MS Vista OS, barem kako kazu, a posle "videcemo". Treba ponekad i o tome razmisljati.

Citat:
Ero S Ovoga Sveta:NAJBOLJI KOD JE KOD KOJI RADI.

Naravno, sve dok ne bude trebao da se odrzava, ili da na njemu rade i neki drugi ljudi. Nervira me ta parola, jer ispada da mozes da radis kako hoces ovaj posao, sto bas nisam spreman da prihvatim. Imao sam prilike da radim sa ljudima kojima je to omiljena parola i koji su svojim nacinom rada direktno narusavali moje zdravlje
Iz ugla korisnika programa ti si u pravu, jer je njemu sigurno svejedno, ali da si radio u timu na nekom vecem zajednickom projektu, ili da si bio u situaciji da "nasledis" za odrzavanje neciji "umetnicki kod" ne bi se ponosio ovom izjavom.
[ zormar @ 24.05.2007. 11:26 ] @
Pre svega se zahvaljujem obojici na pomoci. Ero S Ovoga Sveta s ovim kodom je sve u redu.
Ne pretendujem da budem sudija, ali bi bilo lepo da obojica i dalje ostanete na forumu.
Ima nas starijih ljudi kojima je ovakva pomoc dobrodosla, i veoma je bitno da se ova saradnja nastavi.
Drago mi je sto je goranvuc samokritican, ali mi je jos draze sto je uvek spreman da pomogne.
pozdrav
[ Ero S Ovoga Sveta @ 24.05.2007. 14:42 ] @
Citat:
goranvuc: Sto se ovog tice. niti cu ja tebe ubediti da sam u pravu, niti ti mene, tako da "svako svojim putem".

Neka ostane na ovome da ne ulazimo u daljnu polemiku. A sto se tice ovoga:
Citat:
goranvuc: Naravno, sve dok ne bude trebao da se odrzava, ili da na njemu rade
i neki drugi ljudi.
to si u pravu, ali mislim da je takvih malo (mislim na one koji se javljaju ovde na forumu)
Jos da se "Pohvalim" i ja pisem necitko kod jer me mrzi i sporije je da imenujem promjenjive i kontrole
opisnim imenima. Kad programiram prioritet mi je da sto brze mogu da pisem kod. Npr promjenjive kod mene su
skoro uvijek:
Code:
Dim I As Integer, S As String, L As Long '......... 
A komponente kao na primjer:
"MSFlexGrid1" i druge sa dugim imenima su mi obavezno "MS1"... Neko ce, a vjerovatno i ti, reci tako ne treba.
Naravno uvijek se nesto gubi a nesto dobija. Posto ja ne radim u grupi ja sa ovim dobijam puno brze i lakse
pisanje koda, i posto sam radim aplikacije i kod odrzavanja vrlo brzo udjem u semu.
Za mlade programere: Naravno da je "bolje" pisati po PS-u ali svako ima i stvara svoju tehniku tokom rada.
Ovim nacinom ja dobijam na brzino sto mi je trenutno primarni cilj.

[Ovu poruku je menjao Ero S Ovoga Sveta dana 24.05.2007. u 16:03 GMT+1]
[ Marko_L @ 24.05.2007. 22:03 ] @
Citat:
Jos da se "Pohvalim" i ja pisem necitko kod jer me mrzi i sporije je da imenujem promjenjive i kontrole
opisnim imenima. Kad programiram prioritet mi je da sto brze mogu da pisem kod.

To je u redu kada je u pitanju tvoj rad, ali ako već hoćeš da se baviš edukacijom (samim pojavljivanjem na javnom forumu i odgovaranjem na nečije pitanje, ti nekoga edukuješ) treba učiti ono što je pravilno. Postoje određene konvencije u programiranju, koje je Goran i navodio u par navrata, i kojih se treba pridržavati kad god je to moguće (a moguće je uvek), jer postoji mali milion slučajeva kada je čitak kod izuzetno bitan. Nije to samo kada radiš u grupi, već i kada radiš outsource-ing kao freelancer, ili kada trebaš posle nekog vremena da prepravljaš već postojeću aplikaciju, pogotovo ako je malko glomaznija.
Citat:
Naravno uvijek se nesto gubi a nesto dobija. Posto ja ne radim u grupi ja sa ovim dobijam puno brze i lakse
pisanje koda, i posto sam radim aplikacije i kod odrzavanja vrlo brzo udjem u semu.

Očigledno je da nisi do sada radio na većim aplikacijama, niti neko veće održavanje... inače bi ti takvim radom duša izašla na nos do sada :) Ok je ponekad koristiti varijable nazvane i, j, x kada su iste lokalnog tipa, recimo trebaju ti da odradiš For Next petlju ili da nešto prebrojiš na brzaka, ali kada je reč o globalnim varijablama, i još ih ima dosta... a ti ih imenovao a, b, c, d, e, f... pa još imaš dosta procedura koje ih koriste, ajde ti upamti koja ti šta predstavlja... Što se tiče imenovanja kontrola, takođe je ok ako ih imaš nekolicinu, pa časkom upamtiš šta ti je Command1, a šta Command2, šta MS1, a šta Form1, ili Form2, ali ako imaš recimo 20 command buttona i 5-6 tabela, plus 15-20 formi, lako možeš da se zbuniš... a da ne pričamo o tome ako dođeš u situaciju da posle nekih 5-6 meseci ili godinu dana trebaš da izmeniš nešto u toj aplikaciji... a ti u hiljadama linija koda imaš varijable a, b, c, d, e... i kontrole nazvane Command1, Command2... Command25, kao i forme tipa Form1, Form2... Form20, pa ti vidi koliko si vremena uštedeo kada ćeš prvo morati da klikneš na svaki button da bi video koje je koje, pa onda preturao danima po celom kodu da vidiš koja ti varijabla šta predstavlja, pa onda otvarao svaku formu da se podsetiš za šta koja služi. Jedino ako imaš "slonovsko pamćenje", pa se mesecima sećaš šta je Command1, a šta Command2, a šta Command25 u određenoj aplikaciji. Uštediš par sekundi prilikom kodiranja, a posle izgubiš 15 dana prilikom prepravljanja sopstvenog koda. Situaciju posebno otežava ako si radio više apliacija, a koristio različite metode imenovanja... recimo u jednoj aplikaciji Command1 ti je štampanje, a u drugoj ti je Command1 obračunavanje nečega, a u trećoj nešto sasvim deseto. Pa tako samo mazohista može da radi. Dakle, neke konvencije moraju da postoje, barem takve da ti Command1 uvek bude rezervisan za nekakvo štampanje, a kad se već koriste konvencije, onda je bolje koristiti one koje koristi čitav programerski svet, i gde ćeš button za štampanje uvek nazivati cmdPrint ili cmdStampa, zavisno da li hoćeš da koristiš srpsko ili englesko imenovanje.
[ Ero S Ovoga Sveta @ 25.05.2007. 01:52 ] @
Mislio sam da vise ne polemisem i ubjedjujem se ali moram ponovo. Vas vecina kao da jedva ceka da iz neke poruke
izvuce nesto sto mu se ne svidj i da od toga napravi Magistarski Rad.
Citat:
(samim pojavljivanjem na javnom forumu i odgovaranjem na nečije pitanje, ti nekoga edukuješ)
Sa tim se ne slazem, pogotovo sto je ova tema zavrsila ono
zbog cega je napisana odnosno rijesila je problem @zormar, a nastavljena je dalje zbog rasprave izmedju mene i
@goranvuc. Cak sam predlagao, u nekom od postova da je premjesti u zasebnu temu jer sam predpostavljao sta ce da bude
na kraju. U svom proslom postu ja sam smo iznijeo moje subjektivno misljenje i nacin rada, a nigdje nisam rekao ili savjetovao
nekog da tako uradi nego naprotiv: Ono (Da se "Pohvalim") pod navodnicima,ja mislim, svako normalan ce valjda protumaciti da u stvari znaci suprotno od napisanog. Kada procitas citav prosli post u njemu postoji samo jedan red u kome sam iznijeo savjet a to je:
Citat:
Za mlade programere: Naravno da je "bolje" pisati po PS-u ali svako ima i stvara svoju tehniku tokom rada.
sve ostalo je subjektivno misljenje. Ti si citirao sve ostalo osim toga reda i nabijas mi na nos
kako ja nekog pogresno savjetujem, a ustvari jedini moj savjet si preskocio.
Citat:
Očigledno je da nisi do sada radio na većim aplikacijama, niti neko veće održavanje... inače bi ti takvim radom duša izašla na nos do sada :)

Sta bi ovajkomentar trebao da predstavlja osim pokusaj da nekog spustis na zemlju odnosno da sebe izdignes iznad njega,
u ovom slucaju mene. Jel i to spada u edukativni dio pisanja odgovora, za koji si se uhvatio na pocetku poruke????

Neznam zasto su se ovi moderatori okomili na mene. Jos samo fale Aleksandar Ružičić i mladenovicz i necu vise smjeti
ni da se pojavim na forumu.
POMAGAJTE LJUDI!!!
[ goranvuc @ 25.05.2007. 06:29 ] @
Citat:
Ero S Ovoga Sveta:
Neznam zasto su se ovi moderatori okomili na mene. Jos samo fale Aleksandar Ružičić i mladenovicz i necu vise smjeti
ni da se pojavim na forumu.
POMAGAJTE LJUDI!!!

Nema razloga za paranoju, nije se niko okomio na tebe, sto i ti vrlo dobro znas, a i po komentarima se vidi da to nije tacno. Nemam nameru da se ovde okomim na bilo koga, a sigurno ni Marko. Ako me vec neko previse nervira trudim se da vise ne komentarisem njegove postove, a ne da ga teram sa foruma.

Nadam se da si se salio kad si ovo rekao.
[ Ero S Ovoga Sveta @ 25.05.2007. 12:03 ] @
Citat:
goranvuc:Nadam se da si se salio kad si ovo rekao.

Naravno da se saljim. Danas je doba demokratije i ja mislim da svako ima pravo da iznosi svoje misljenje i glediste.
Sa komunistickim i jednostranim stavovima smo zavrsili jos '90-ih. heheheheeee
[ Marko_L @ 26.05.2007. 15:40 ] @
Citat:
Sa tim se ne slazem, pogotovo sto je ova tema zavrsila ono
zbog cega je napisana odnosno rijesila je problem @zormar, a nastavljena je dalje zbog rasprave izmedju mene i
@goranvuc. Cak sam predlagao, u nekom od postova da je premjesti u zasebnu temu jer sam predpostavljao sta ce da bude
na kraju.

Vidi, konstatacija koju si citirao nije moje lično mišljenje pa da se složiš sa njim ili ne, to je jednostavno pravilo. Čim ostaviš post kao odgovor na nečije pitanje na javnom forumu koje svako može da pročita, ti si hteo ili ne hteo postao edukator, pa samim tim trebaš da imaš i neku odgovornost prema tome. Ako je problem rešen na bilo koji način, i postavljaču teme je to dovoljno, odnosno stalo mu je samo da odradi aplikaciju, a ne i da nauči nešto, onda je to u redu. Međutim, pošto već sutra može da se pojavi neko sa istim ili sličnim problemom, onda valja i napomenuti da to rešenje u određenim slučajevima nije baš najsrećnije, i da postoji bolji način da se to uradi, a koje će rešenje postavljač teme ili bilo ko drugi ko naleti na istu da iskoristi je njegova stvar. Goran je samo primetio moguć problem sa instanciranjem i skrenuo pažnju na to postavivši projekat sa sve komentarima kako nešto treba da se uradi i zašto i ja ne znam zašto si se ti našao prozvanim zbog toga. Niko ne brani nikome da iskoristi tvoje rešenje ako smatra da mu je tako lakše.
Citat:
Sta bi ovajkomentar trebao da predstavlja osim pokusaj da nekog spustis na zemlju odnosno da sebe izdignes iznad njega, u ovom slucaju mene. Jel i to spada u edukativni dio pisanja odgovora, za koji si se uhvatio na pocetku poruke????

Ne. Nemam potrebe da bilo koga spuštam ili izdižem sebe. Taj komentar predstavlja moje lično zapažanje, doneto na osnovu iskustva koje sam stekao u poslednjih 10-tak godina koliko se profesionalno bavim programiranjem. Ja još nisam naleteo na programera koji može brzo da se snađe kada treba da prepravlja kod nekog većeg projekta gde su sve promenljive a, b, c, d, e... a kontrole Command1, Command2... Command25, a forme Form1, Form2... Form20 i slično i odgovorno tvrdim da je to loša praksa, a to mogu da tvrdim iz dva veoma jaka razloga. Prvo, i ja kada sam počinjao, mrzelo me je da prepravljam imena kontrola, pa su ostajale imenovane po defaultu, a varijable sam nazivao sa jednim ili dva slova (to mi je bila zaostala navika sa C-64, gde je i dva slova za promenljivu bilo mnogo, zbog memorije :)) i onda sam imao silnih problema kada se javi potreba da se takva aplikacija posle godinu-dve prepravi, doradi ili uskladi sa modernim trendovima. Iako imam prilično dobro pamećenje, nema šanse da se setim šta je u kodu koji sam pisao pre dve godine trebalo da predstavlja Command1, a šta je Command25, ili šta se nalazi na kojoj formi, dok ne kliknem na njih, a o promenljivama tipa a, ab, ac, ba i da ne pričam, jer to zahteva pokretanje aplikacije korak po korak, i gubljenje vremena samo da bi se videlo čime se koja varijabla puni, što bi se vrlo lako moglo izbeći tako što bi se varijabla nazvala recimo curPorez. Drugi razlog je taj što smo u firmi nekoliko puta imali slučaj da treba da se prepravi kod koji nisam ja pisao, pa ako je taj koji jeste pisao nazivao kontrole i varijable, onako kako sam gore naveo, izgubiš mesec dana samo da bi uvideo šta je šta. Ajde u redu je ako si napravio jednu aplikaciju, pružaš podršku samo za nju, radiš sam kao freelancer, pa si u toku... ali ako imaš 20-30 aplikacija koje si napisao, kao recimo ja u firmi, koje se redovno menjaju ili dopunjuju novim opcijama, a većina njih ima 20+ formi, i na svakoj gomila kontrola i varijabli... nemoguće je funkcionasti na taj način. Iz tog razloga kažem da sam siguran da nisi imao prilike da programiraš ili održavaš (pod održavanjem podrazumevam ispravljanje mogućih grešaka, doradu, proširejne) nekoliko većih projekata. Dakle, ono što hoću da kažem nije to da ti treba sad da menjaš svoj sistem rada da bi meni ispunio želju ili šta već, niti da ti nešto ne znaš (vidi se da znanja imaš), nego da se kao moderator ovog foruma potrudim da se ovde ipak nauči kako je pravilno raditi, što je i Goranov cilj. Naravno, ako misliš celog života da radiš samostalno aplikacije, onda možeš da radiš kako hoćeš, ali ako jednog dana budeš hteo da radiš u nekoj firmi, da radiš outsource-ing, da sarađuješ sa nekim na nekom kodu, da napraviš neki svoj tim... onda Command1, Command2, Command3... neće da funkcioniše.
Citat:
ne znam zasto su se ovi moderatori okomili na mene. Jos samo fale Aleksandar Ružičić i mladenovicz i necu vise smjeti ni da se pojavim na forumu.

Niko se nije okomio na tebe, nego si se ti okomio na nas :) Goran je, kao što već rekoh, postavio primer kako pravilno instancirati forme i tu je trebalo da bude završena diskusija, a ti si se tu nešto našao prozvanim i počeo da grmiš kako nema veze kako ko radi, jer svako ima neki svoj stil rada i slično. A onda sam uleteo ja, ne da bih te nešto spuštao i okomio se na tebe, već da bih ti na prost način objasnio zašto je poželjno izbegavati nametanje svog stila na javnom forumu kada se rešava nečiji problem, već je potrebno da se što više koriste konvencije, a svoj stil koristi u svom radu, ako ti tako odgovara. Imam i ja par svojih bubica kada radim neki projekat i ne koristim uvek konvencionalne metode, recimo po pravilu se DBGrid naziva tako što mu se doda prefiks dbgrd pa se dobije naziv dbgrdNesto, međutim ja ponekad napišem samo grdNesto, jer znam da će se samo taj grid koristiti u projektu, ili recimo Common Dialog sam uvek nazivao prosto CD, jer mi nikada nije trebalo više istih na jednoj formi, ali kad radim sa nekim na kodu ili znam da još neko treba da petlja po istom, onda je drugačije. Ne znam zašto si protiv toga da se nešto nauči kako treba i to smatraš moderatorskom sujetom ili šta već. Uostalom, ja kao neko ko radi ovaj posao imam pravo da štitim i lične interese, jer mi je dosadilo da mi šalju programere, koji su verovatno stil rada pokupili od nekog kao što si ti, i kojima ja treba da objašnjavam zašto ne želim da vidim kontrolu koja je nazvana Command1. Isto važi i za instanciranje, koje nije nimalo naivno i svakako nije svejedno kako pozivaš koju formu i kontrole na njoj, jer to ma kako nebitno izgledalo može dovesti do memory leak-ova, pogrešnih rezultata, i raznih naizgled nebuloznih grešaka što sam takođe u više navrata osetio na svojoj koži.
[ zormar @ 26.05.2007. 18:00 ] @
Da malo prekinem ovu diskusiju, mada je zanimljiva, jos jednim pitanjem.
Na koji nacin je moguce popunjavati 2 tabele (u mom slucaju PrvaTabela i DrugaTabela) u istoj Bazi, s jedne Form1 koristeci isti Connection objekat?
[ X Files @ 26.05.2007. 18:41 ] @
@Ero S Ovoga Sveta
Ja sam obrisao dve tvoje poslednje poruke... da ne bude zabune.

Nemam baš ništa lično protiv tebe, i ne želim da ti oduzmem 'pravo' replike, ali jednostavno
pominje se 'pamet' i slično, a to nikad nije vodilo izlazu...

Ako neko hoće da odgovori na prethodno pitanje, neka izvoli...
[ goranvuc @ 26.05.2007. 18:53 ] @
Citat:
zormar: Da malo prekinem ovu diskusiju, mada je zanimljiva, jos jednim pitanjem.
Na koji nacin je moguce popunjavati 2 tabele (u mom slucaju PrvaTabela i DrugaTabela) u istoj Bazi, s jedne Form1 koristeci isti Connection objekat?

Moraces jos malo detalja; U principu mozes i 100 tabela "popunjavati" sa istog mesta u programu, ali gledano kroz tvoj primer ne znam na cega mislis jer si koristio Hijerarhijski flex grid za prikaz, a nacin na koji se podaci menjaju je ono po cemu se programi najvise razlikuju (ja imam bar 4 osnovna koncepta koja koristim od slucaja do slucaja).

Dakle, kao i u puno ranijih slucajeva kad smo se druzili znas sta treba: kod, upload ili malo vise opisa.
[ Ero S Ovoga Sveta @ 26.05.2007. 19:23 ] @
Citat:
X Files:
Ja sam obrisao dve tvoje poslednje poruke... da ne bude zabune.

Nema veze za drugu, bio sam iritiran, ali prvu nisi trebao. Ona ne dolazi u sukob ni sa pravilima foruma niti sa bilo
cim diskutovanim, cak sta vise.
Ja cu ponovo da je postavim pa neka neko od moderatora OVOG foruma odluci dali da je ukloni ili ne.

[ Ero S Ovoga Sveta @ 26.05.2007. 19:24 ] @
@Marko_L No Comment!

1. Sve sto sam do sada napisao samo sam se salio, bilo mi dosadno. Nemojte tako da radite jer to nije ispravno,
ne trba tako.... i kosi se sa zakonom o Programiranju clan 246 stav 22.

2. Treba da radite kako su gospoda @Marko_L i @goranvuc govorili. To je pravi nacin, tako treba i to je ono pravo!

Nadam se da ce diskusija sada biti zavrsena!
[ zormar @ 26.05.2007. 19:26 ] @
Pokusacu da objasnim u cemu je problem.
U bazi imam PrvuTabelu koju popunjavam nekim podacima. Ti podaci su prikazani na Form1 u MSHFGridu1. Ovaj deo radi bez problema.
Potrebno je da i DruguTabelu iz iste baze popunim tim istim podacima, a Na Form2 u celijama MSHFG2 na mestima tih podataka treba upisati 1(jedinice).
[ goranvuc @ 26.05.2007. 19:42 ] @
OK, vidim da se ne razumemo, tj. ja tebe ne razumem; kada kazes da treba da popunis DruguTabelu sa istim podacima i pri tom spominjes i grid, samo me zbunjujes jer ja ne znam da li:

1. Hoces da popunis samu tabelu u bazi - ako je tako, to mozes raditi preko rekordseta koristenjem koda, execute() komandom na konekciji ili posredno upisom na grid koji je vezan za rekrodset - dakle, ako je ovo onda na koji nacin?
2. Hoces samo da popunis Grid na drugoj formi podacima sa grida iz prve forme?
3. Hoces nesto trece?

Osecam da je u pitanju malo kompleksniji kod i nazalost ne mogu da pretpostavljam sta si ti to kod sebe napisao, ali mozemo nastaviti i sa ovim "vruce-hladno" ako hoces (mada je meni trenutno prilicno vruce, s obzirom da je jos uvek maj).
[ Ero S Ovoga Sveta @ 26.05.2007. 19:54 ] @
Ni meni nije potpuno jasno ali probaj:
Radis isto kao i pri iscitavanju iz baze.
Kad upises podatke u prvu tabelu zatvoris recordset sa "rsRecordSet.Close" pa onda
otvoris drugu tabelu
Code:
        
rsRecordSet.Source = "Select * From  [DRUGA TABELA]"
rsRecordSet.Open
i upises podatke isto kao u prvu pabelu.
A za MSHFlexGrid2 koristi komandu
Code:
MSHFlexGrid2.TextMatrix
za izmjenu texta u polja gridu.
[ zormar @ 26.05.2007. 19:55 ] @
Moze i tako, da popunim Grid na drugoj formi podacima sa grida iz prve forme.
[ zormar @ 29.05.2007. 11:35 ] @
Kako popuniti MSFGrid2 na Form2 podacima sa MSFGrid1 iz Form1?
[ goranvuc @ 29.05.2007. 11:39 ] @
Nije problem da ti to objasnimo, ali vec sam te zamolio za napravis upload, bar onog dela projekta koji sadrzi problem, da ga samo dopunimo sa resenjem. Stvarno ne mogu stalno da pisem sve od pocetka do kraja (govorim u svoje ime, mozda ima nekog ko to hoce), a ni da igram "toplo, toplije .... hladno ... vruce" - puno se izgubi na taj nacin vremena i energije. Da si uploadovao odmah deo projekta, vec bi odavno bio resen problem.

Pozdrav!
[ zormar @ 29.05.2007. 11:47 ] @
@goranvuc, resio sam upisivanje podataka u drugi grid preko rekordseta, ali sam hteo da vidim kako to ide direktno iz prvog grida.
U svakom slucaju zahvaljujem ti na dosadasnjoj pomoci.
[ goranvuc @ 29.05.2007. 11:48 ] @
Pa nema na cemu, osim na dobroj nameri
[ Ero S Ovoga Sveta @ 29.05.2007. 14:17 ] @
Evo kako mozes to da uradis:
Code:
Dim lCol As Long, lRow As Long

MSHFlexGrid2.Cols = MSHFlexGrid1.Cols
MSHFlexGrid2.Rows = MSHFlexGrid1.Rows

For lRow = 0 To MSHFlexGrid1.Rows - 1
    For lCol = 0 To MSHFlexGrid1.Cols - 1
        MSHFlexGrid2.TextMatrix(lRow, lCol) = MSHFlexGrid1.TextMatrix(lRow, lCol)
    Next lCol
Next lRow

Bez ljutnje, ali mislim da bi prvo trebao da procitas neke tutorijale o radu u VB, ima ih dosta i ovde
u top temama. I ono sto ti je @goranvuc govorio, zakacis dio koda kad postavljas pitanje i ljudi
ce lakse da udju u sustinu tvog problema i da ti pomognu.
[ Marko_L @ 29.05.2007. 20:25 ] @
Ero, to tvoje će da radi samo ako su gridovi na istoj formi, a traženo je da se popuni grid na Form2 podacima iz grida sa Form1.
[ zormar @ 29.05.2007. 22:16 ] @
Erin kod kod mene radi upravo ono sto sam trazio, zahvaljujem Eri.
Imam jos nekoliko pitanja u vezi ovoga:
1.Kako porediti sadrzaj jednog FGrida (brojevi) sa naslovima njegovih kolona -takodje brojevi?
2.Kako, u celijama gde se ti brojevi slazu odnosno gde su jednaki naslovima kolona upisati njihovu vrednost?
3.Na koji nacin sabrati prazne celije u FGridu?
[ Ero S Ovoga Sveta @ 30.05.2007. 10:28 ] @
Ako sam dobro shvatio tvoja pitanja ovako ces ispitati prvu kolonu a za ostale doradi cod:
Code:
Dim lCol As Long, lRow As Long
Dim PrazneCelije As Long

    For lRow = 1 To MSHFlexGrid1.Rows - 1
        If MSHFlexGrid1.TextMatrix(lRow, 0) = MSHFlexGrid1.TextMatrix(0, 0) Then
            'Upisi Vrijednost
        ElseIf MSHFlexGrid1.TextMatrix(lRow, 0) = "" Then
            PrazneCelije = PrazneCelije + 1
        End If
    Next lRow


[Ovu poruku je menjao goranvuc dana 30.05.2007. u 15:45 GMT+1]
[ X Files @ 30.05.2007. 19:16 ] @
Ako moderatori ovog foruma smatraju za potrebnim, neka otkljucaju.