clipper.1cnenad,
Subj. UNIQUE indeksi II put
E pa strašno. Podatak je unet, obrisan, i unosi se neki sličan ako ne i
isti, i naravno ne pojavljuje se u tabelarnom pregledu.
Glupa UNIQUE klauzula ne zna da iskoristi postojanje SET DELETED ON
clipper.3rmarjan,
Ima li neko ideju?
program je single-user, masina 386/40, Memorije 2MB nista neobicno... ali
Nekim cudom je nakon nestanka struje i naravno ponovnog indeksiranja kao
obavezna mera (program je radio neposredno pre nestanka struje) doslo do
toga da indeks ne pokazuje pravo stanje.
Baza je indeksirana na SIFRA + DTOS(DATUM)... i sada kada se startuje obrada,
datum (gledano na nacin pisanja datuma u bazi) koji je "07/10/95" se uporno
nalazi PRE datuma "01/01/95" i nema boga da se odatle pomeri!
Kako god se indeksira (iz programa, iz DBU) uvek je ista situacija. Slog nije
nista posebno i jednostavno nemam ideju sta se desilo...
Radim Clipper od 1987 godine (pre toga dBase) ali nikada slicnu stvar nisam
imao kao problem.
???
Boris
clipper.4d.petrovic,
-> #3, rmarjan> Ima li neko ideju?
Možda pomogne prepakivanje, t.j. baza ti je verovatno oštećena. U par
sličnih situacija primetio sam to tako što NC prikazuje jedan broj rekorda,
a DBU drugi.
clipper.5velicko,
-> #4, d.petrovic>+ Možda pomogne prepakivanje, t.j. baza ti je verovatno
>+ oštećena. U par
Meni se ovo povremeno dešava :(.
Pomoć je DBX ( tj DBU ili čak mfox ;>> )
odradiš copy all to priv, pa onda da zameniš originalnu
datoteku novom prepakovanom privremenom.
velicko
clipper.6rmarjan,
-> #5, velickoPazi, nije problem u tome da se stvar sredi, problem mi je sto ne znam KAKO je
moguce da nakon izrade NOVIH izndeksa (iz programa) pri cemu stare brisem,
ponovo bude ista situacija. Zanima me naime GDE se cuva taj neki glupi
pogresan pointer koji uporno bas za tih nekoliko slogova, smatra da datum
nije kao treba. To je lako videti kada neka stampa treba da se izvede pa se
odmah primeti datum koji "strci" (tako sam i ja video problem). A sta ako
baratam nekim datumima a to se u tekucem radu ili izvestaju ne vidi bas sada?
To je ono sto me brine, moze se desiti da to bude pritajena bomba...
Boris
clipper.7mdrazic,
-> #1, cnenad> Subj. UNIQUE indeksi II put
>
> E pa strašno. Podatak je unet, obrisan, i unosi se neki sličan ako ne i
> isti, i naravno ne pojavljuje se u tabelarnom pregledu.
>
> Glupa UNIQUE klauzula ne zna da iskoristi postojanje SET DELETED ON
Pa jesam li lepo objasnio zašto je to tako? Indeksi ni na koji način
ne zavise od deleted flaga jer se unapred ne zna da li ćeš koristiti
set deleted on ili off, a ovaj prelaz ne sme rezultirati u nekom
reindeksiranju.
Unique nije glup, već radi kako radi, a što ponekad to nama ne
odgovara, drugi je problem. Valja samo znati kako se generiše i
zatim zaboraviti na njega. Bolje napiši malu funkciju za skipovanje.
Milan
clipper.8mileusna,
-> #4, d.petrovic>> sličnih situacija primetio sam to tako što NC prikazuje jedan broj
>> rekorda, a DBU drugi.
BTW, dbview iz NC-a 4.0 ne prikazuje zadnji slog u tabeli. Bug.
clipper.9bristic,
Izvinite ako je ovo moje pitanje vec tretirano, ja
zelim da iz clipper aplikacije stampam izvestaj
u cirilici. Dali je ovo moguce, znam da flipper
ima razne fontove ali nemam nasu cirilicu. Ako
neko ima resenje molim ga da mi pomogne.
clipper.10mdrazic,
-> #3, rmarjan> Ima li neko ideju?
> Baza je indeksirana na SIFRA + DTOS(DATUM)... i sada kada se startuje
> obrada, datum (gledano na nacin pisanja datuma u bazi) koji je "07/10/95"
> se uporno nalazi PRE datuma "01/01/95" i nema boga da se odatle pomeri!
:)
Proveri tačne datume. Da nije ono 07/10/1195 ili 07/10/0995 ?
Ako u prikazu imaš samo dve cifre za godinu, zbog ovakvih stvari
može da se izludi dok se ne otkriju. Jednom je to bio uzrok 'padanja'
jednog paketa za štedno-kreditne zadruge. Nije mogao da izračuna
kamatu za kredit uzet 1192. ;)
Milan
clipper.11rmarjan,
-> #10, mdrazicNa zalost, sve je vise nego korektno zapisano. Prosto je neverovatno ali
istinito. Sva sreca te se radi o 6 slogova ukupno, ali me brine sto je tako
stogod uopste moguce. Da covek izludi, gledas 6 slogova koji su najnormalnijeg
izgleda a slozeni na potpuno pogresnom mestu...
clipper.12dpredovic,
-> #6, rmarjan> ponovo bude ista situacija. Zanima me naime GDE se cuva taj neki glupi
> pogresan pointer koji uporno bas za tih nekoliko slogova, smatra da datum
> nije kao treba. To je lako videti kada neka stampa treba da se izvede pa se
Gde se čuva? Pa u ntx fajlu, normalno... ;) Ntx-ovi su čuveni po tome što
mogu da upadnu u "nestabilno" stanje, gde ne pomaže nikakva indexacija.
Na problem sam natrčao više puta, a potrvđuje se i u onom Internal Errors
NG-u. Problem se obično rešava ažuriranjem par slogova, tek toliko da se
nešto u indexu promeni.
PS. Da li si siguran da je taj nevaljali datum XX.XX.19XX? Ovo 19 se obično
ne vidi, pa zna da pravi probleme...
clipper.13kile,
-> #11, rmarjan>> Sva sreca te se radi o 6 slogova ukupno, ali me brine sto je tako stogod
>> uopste moguce. Da covek izludi, gledas 6 slogova koji su najnormalnijeg
>> izgleda a slozeni na potpuno pogresnom mestu...
Pa, ako je tabela tako mala, što je ne okačiš ovde, da vidimo.
Neko će već nešto izmozgati :)
clipper.14rmarjan,
-> #12, dpredovicNisi me razumeo, znam dovoljno o nacinu organizovanja NTX i ostale logike,
programiram u Clipper-u od 1986 (da i tada je postojala verzija '86), kada sam
se pitao u vezi pointera, nisam upotrebio dobar izraz. Mislo sam sta je to
moglo zbuniti NTX da od "suvog" podatka u DBF uporno misli da je to neki drugi
datum a ne pravi i da na osnovu takvog podatka, postavi svoje slaganja na takav
pogresan nacin.
Sve ovo mozda i ne vredi toliko rasprave, osim ako postoji opasnost da se to
javlja skriveno i u mnogim obradama neprimeceno, a onda proradi Murphy...
U svakom slucaju, sada detaljno pratim sve oko toga i ako nesto primetim, bice
sigurno ovde, zarad kolega.
Inace, Clipper je Ver. 5.2e
Pozdrav Boris
clipper.15rmarjan,
-> #13, kileNije tabela mala, naprotiv, vec je deo koji se odnosi na zapis koji nosi bas
taj datum, sadrzao 6 slogova...
Pozdrav,
clipper.16rccomp,
Da li neko ima nekakvu funkciju, koja ce u VELIKOJ bazi kupaca, indeksiranoj
po, npr. nazivu kupca, trenutno pronaci svako pojavljivanje zadatog stringa,
bez obzira da li se on nalazi na pocetku, sredini, ili na kraju naziva?
Resenja poput if(ZadatiString,NazivKupca)<>0
? NazivKupca
EndIf
ili set SoftSeek on
nisu nikakva jer su, u velikim bazama, dosta spora.
Jel' ima ideja. Zadovoljavajuce resenje je kao u Win Helpu kada se pointer
pomera sa svakim novim zadatim slovom.
Aj' da vidimo !
clipper.17cnenad,
-> #16, rccomp=> po, npr. nazivu kupca, trenutno pronaci svako pojavljivanje zadatog
=> stringa, bez obzira da li se on nalazi na pocetku, sredini, ili na kraju
SixCDX => sx_wildseek()
clipper.18obrada,
-> #1, cnenad> Subj. UNIQUE indeksi II put
>
> E pa strasno. Podatak je unet, obrisan, i unosi se neki slican ako
> ne i isti, i naravno ne pojavljuje se u tabelarnom pregledu.
>
> Glupa UNIQUE klauzula ne zna da iskoristi postojanje SET DELETED ON
Jedno od resenja je da uvedes jos jedno polje (logic ili C1) koje ces azurirati
kada logicki obrises taj zapis. UNIQUE indeks mora da bude i indeksiran i potom
polju. Ovo vazi ako su novi zapis i obrisani zapis imaju isti kjluc za indeks.
Tada treba da se razlikuju po dodatnom polju stim sto za obrisani zapis u tom
polju trea bti neka veca vrednost od one u neobrisanom zapisu.
Dragan
clipper.22rccomp,
Jel' ima neko SIX2.LIB ?
clipper.23nbatocanin,
-> #16, rccomp> Da li neko ima nekakvu funkciju, koja ce u VELIKOJ bazi
> kupaca, indeksiranoj po, npr. nazivu kupca, trenutno
> pronaci svako pojavljivanje zadatog stringa, bez obzira da
> li se on nalazi na pocetku, sredini, ili na kraju naziva?
Rešenje za tvoj problem sigurno nije klasično indeksiranje. WILDSEEK
iz SIx-a će raditi ok, ali samo ako ne zadaš '*NESTO', što rešava i
prosto SEEK. Rešenje ti je biblioteka koja se zove Fast Text Search
ili tako nešto i koja je napravljena upravo za stvari koje tebi
trebaju. Na žalost, nisam imao priliku da vidim biblioteku. Mislim da
imam demo za neku staru verziju, pa ako ti nešto znači, kaži da
potražim. Mogao bi da pogledaš i ove nove metode pretraživanja
tekstova.
clipper.24cnenad,
-> #18, obrada=> polju. Ovo vazi ako su novi zapis i obrisani zapis imaju isti kjluc za
Misliš, obadva sloga imaju istu vrednost u polju(ima) koja ulaze u UNIQE
indeks.
=> indeks. Tada treba da se razlikuju po dodatnom polju stim sto za obrisani
=> zapis u tom polju trea bti neka veca vrednost od one u neobrisanom zapisu.
E da, i ovo je još jedna velika glupost UNIQUE indeksa.
clipper.25mdrazic,
-> #18, obrada>> Glupa UNIQUE klauzula ne zna da iskoristi postojanje SET DELETED ON
>
> Jedno od resenja je da uvedes jos jedno polje (logic ili C1) koje ces
> azurirati kada logicki obrises taj zapis. UNIQUE indeks mora da bude i
> indeksiran i potom polju. Ovo vazi ako su novi zapis i obrisani zapis
> imaju isti kjluc za indeks. Tada treba da se razlikuju po dodatnom polju
Ne treba nikakvo polje (bar ne u Clipper-u:). Dovoljno je recimo:
index on if(deleted(),'D',' ')+Kljuc to indfile unique
još bolje
index on if(deleted(),'D',' ')+Kljuc to indfile unique ;
for .not. deleted()
a možda korektno radi (proveriti) i prosto
index on Kljuc to indfile unique for .not.deleted()
Milan
clipper.26szdravko,
Da li neko zna za biblioteku u kojoj postoji C source za CLIPPER naredbu SAY
... GET. Potrebno mi je da u jednom svom programu napravim unos sa definisanim
PICTURE i VALID, RANGE, itd. Output programa je ASCII biblioteka, tako da
mi ceo CLIPPER uopste ne treba ( u osnovi program ce biti radjen u C++ ).
clipper.27d.petrovic,
-> #26, szdravko> Da li neko zna za biblioteku u kojoj postoji C source za
> CLIPPER naredbu SAY ... GET. Potrebno mi je da u jednom svom
> programu napravim unos sa definisanim PICTURE i VALID, RANGE,
> itd. Output programa je ASCII biblioteka, tako da mi ceo
> CLIPPER uopste ne treba ( u osnovi program ce biti radjen u C++
> ).
Da pokušamo ovako :
u .ĐCLIPPERĐSOURCEĐSYSĐGETSYS.PRG
imaš primer kako radi klasa GET. Ako to prevedeš /b i ulinkuješ, pa
pogledaš kroz dibager koristiće kao ideja odakle da počneš, t.j. bar šta
tvoja klasa treba da sadrži.
clipper.28kzoran,
Mož li mi neko HITNO poslati spisak fajlova na instalacionim disketama
za Clipper 5.01, posebno za svaku disketu, kao i labelu svake diskete?
Pozdrav,
Zoran
clipper.29mbiresev,
Zna li ko kako se u tbrowse-u može menjati boja headsep-a ?
clipper.30saks,
Zamolio bih cenjenog moderatora da prebaci fajl jfkdoc.zip na brzi
Sezam, jer odavde nemogu nista da skinem. Na normalnom Sezamu CPS mi
je izmedju 20 i 80. Unared zahvalan
Saks
clipper.31cnenad,
-> #29, mbiresev=> Zna li ko kako se u tbrowse-u može menjati boja headsep-a ?
loB:colorSpec := 'W/N, ...'
i tako redom. E sad koja je boja zašta moraćeš da se igraš i isprobavaš.
Ako nisi ništa naveo koristi se ono što je objekat dobio od setcolor().
clipper.32mbiresev,
-> #31, cnenad>> => Zna li ko kako se u tbrowse-u može menjati boja headsep-a ?
>> loB:colorSpec := 'W/N, ...'
Verovatno nisam bio precizan.
Dakle, podaci da su u jednoj boji, a oB:headSep u drugoj.
clipper.33d.petrovic,
-> #31, cnenad> loB:colorSpec := 'W/N, ...'
Definišeš koliko boja hoćeš, a to kasnije koristiš kroz kodni blok,
IIF(SubStr(x, 5, 1) == "A", š1, 2ć, š3, 4ć)
ali koliko sam shvatio on traži nešto što ne postoji (ili postoji
nedokumentovano)
clipper.34saks,
-> #29, mbiresev Pogledaj u Clipper direktorijumu Sezama, fajl TbMore.zip.
Objasnjena je interna struktura TBrowse objekata.
clipper.35velicko,
Jel neko rešavao problem sa višejezičkim porukama u
programu. Treba da izbacim sve poruke u odvojenu datoteku
tako da mogu lako da se prevedu na druge jezike.
Kakva su vaša iskustva. Poruka ima mnogo, sigurno oko
200-300, ne učitavaju mi se u memoriju a sa druge strane
sistem dbf datoteke sa indexima mi ne deluje primereno.
Treći način neznam.
Šta ste koristili?
Neki predlog?
Hint?
Takođe me zanimaju drajveri za tastaturu i ekranski
fontovi za BUGARSKU i GRžKU.
Relativno hitno.
velicko
clipper.36d.petrovic,
-> #35, velicko> Kakva su vaša iskustva. Poruka ima mnogo, sigurno oko
> 200-300, ne učitavaju mi se u memoriju a sa druge strane
> sistem dbf datoteke sa indexima mi ne deluje primereno.
> Treći način neznam.
1. Poruke iz baze se pri startovanju učitaju u niz i ispisuju funkcijom
za centriranje.
2. Pretprocesorske direktive (messages.ch)
3. Sve poruke su ulinkovane, a setovanjem određuješ šta se ispisuje...
4. Ima, ima, još načina... :)
clipper.37zkrstic,
-> #35, velicko>> Jel neko rešavao problem sa višejezičkim porukama u
>> programu. Treba da izbacim sve poruke u odvojenu datoteku
>> tako da mogu lako da se prevedu na druge jezike.
>>
>> Takođe me zanimaju drajveri za tastaturu i ekranski
>> fontovi za BUGARSKU i GRžKU.
Banex & ja smo na Kipru imali podršku koja ide u
poseban dbf, tako da smo paralelno imali Grčko-Englesko-Srpsku
verziju programa što je sve dovodilo do ludila ;>
Font smo sami pravili, obzirom da grcite trpaju svoje
chr negde gore u majčinu bez veze, pa nam nije mLogo smetalo.
Morali smo da imamo dva-tri fontića i mirna Bačka.
Viči ako ti treba još koješta :)
Zkr
clipper.38cnenad,
-> #32, mbiresev=> Dakle, podaci da su u jednoj boji, a oB:headSep u drugoj.
Izgleda da ne može. Prva boja služi i za podatke i zaglavlje.
clipper.39mdrazic,
-> #35, velicko> Jel neko rešavao problem sa višejezičkim porukama u
> programu. Treba da izbacim sve poruke u odvojenu datoteku
> tako da mogu lako da se prevedu na druge jezike.
> Kakva su vaša iskustva. Poruka ima mnogo, sigurno oko
> 200-300, ne učitavaju mi se u memoriju a sa druge strane
tebi je to mnogo? Za toliki broj je najbrže sve ručno da se na licu
mesta prevede.
> sistem dbf datoteke sa indexima mi ne deluje primereno.
> Treći način neznam.
kombinovan.
Treba prvo da se odlučiš da li ti treba višejezička aplikacija ili
samo na jednom jeziku. A i kada je na jednom jeziku, da li treba
ista takva da bude i na nekom drugom jeziku.
Ako ista aplikacija treba da radi na više jezika istovremeno, mislim
da je najbolje da stringove staviš u DBF tabelu. Probao sam i nije
toliko sporo da se ne bi radilo. A i računari i diskovi su sve brži
pa se to za godinu-dve neće ni primećivati.
Ako je aplikacija jednojezička, ako samo prevedeš stringove teško je
dalje pratiti više jezičkih verzija istog koda. Zato i tu može da se
koristi tabela. Ako je rad preko tabele spor, može ovaj trik da
pomogne. Sve stringove pozivaj preko neke(ih) funkcije(a) čiji argumenti
pokazuju na string u tabeli (DBF). Kada središ sve stringove, tada
jednim prostim programčićem, koji sam napišeš, ove funkcije zameniš
odgovarajućim stringovima iz tabele. Nadalje radiš sa običnim stringovima
bez tabele. Drugim rečima taj mali programčić radi kao pred(pred)procesor
a izvorni source i dalje vodiš univerzalan (sa pozivima funkcijom).
Problemi koji te čekaju su različite dužine stringova pri prevođenju,
centriranje i sl. Ovo može dosta dobro da se reši ako u tabeli vodiš
i informacije o načinu poravnanja stringa i referentnoj tački koja sad
zavisi od tog poravnanja (početak za poravnavanje ulevo, kraj za udesno,
sredina za centriranje).
Ja sam u svom okruženju napravio da i na licu mesta (na 'hotkey' mogu da
menjam stringove i odmah u aplikaciji gledam kako to izgleda. Naravno,
ovde sam koristio DBF tabelu stringova u aplikaciji. Kada sve prevedeš
(ili još bolje, neki prevodilac umesto tebe kome sve objasniš kako se
na 'hotkey' menjaju stringovi), za finalnu verziju izvršiš gorepomenuto
pred(pred)procesiranje.
Milan
clipper.40nbatocanin,
-> #38, cnenad> Izgleda da ne može. Prva boja služi i za podatke i
> zaglavlje.
S obzirom da se za svaku _vrednost_ u okviru kolone može birati boja,
ovo sigurno nije tako. Nisam probao, ali treba nešto probati sa ColorBlock.
clipper.41velicko,
Hvala na odgovorima :)
Biće za svaki jezik po jedan dbf koji se učitava u niz.
Index niza određen CH fajlom. ....
thanks.
velicko
clipper.42cnenad,
-> #40, nbatocanin=> S obzirom da se za svaku _vrednost_ u okviru kolone može birati boja,
Da ali boja neke je i boja zaglavlja o čemu piše u NG-u ali nigde nije
specificirano kako posebno uraditi boju zaglavlja a posebno za podatke.
Možda bi se sa kodnim blokom nešto moglo uraditi ali ja za sada ne vidim
rešenje.
clipper.43mbiresev,
-> #42, cnenad>> Da ali boja neke je i boja zaglavlja o čemu piše u NG-u ali nigde nije
>> specificirano kako posebno uraditi boju zaglavlja a posebno za podatke.
>> Možda bi se sa kodnim blokom nešto moglo uraditi ali ja za sada ne vidim
>> rešenje.
Rešio sam čim sam postavio preciznije pitanje (separator u jednoj boji
a podaci u drugoj).
Definiše se boja sa oB:colorSpec. Tu su i separatori.
Zaglavlje sa oColumn:defColor.
Kolona sa oColumn:colorBlock.
Dakle, ali baš sve je u željenoj boji.
clipper.44kile,
Imam problem:
LOCAL GetList := {}, Fields := {}, n := 0, NewGet
AADD(Fields, Tabela->POLJE1)
AADD(Fields, Tabela->POLJE2)
AADD(Fields, Tabela->POLJE3)
AADD(Fields, Tabela->POLJE4)
FOR n = 1 TO 4
NewGet = GetNew(n, 0, {|EditVal| IIF(PCOUNT() > 0, ;
Fields[n] = EditVal, Fields[n]) } )
AADD(GetList, NewGet)
NEXT
READMODAL(GetList)
Kad ovo startujem, dobijam bound error u kod bloku, jer je vrednost
promenljive n nakon izlaska iz petlje jednaka 5.
Kako mogu ovo da izbegnem a da ne treba da dodajem svaki get objekat
ručno, jer u programu nemam samo 4 nego preko 30 polja, pa još
pre-validacije, pa post-validacije, itd.
Hvala!
clipper.45bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
opt_53 zip 222106 CA-Clipper 5.3: Clipper.EXE upgrade + OptEdit
1 file(s) 217 kb
Izašao je još jedan manji patch za 5.3, videću šta je menjano i vredi li
ga skidati. U CA kažu da bi uskoro (samo ne kažu tačno kada) trebao da
se pojavi patch za verziju 5.3a, gde će biti integrisane prethodne manje
zakrpe.
clipper.46mdrazic,
-> #41, velicko> Biće za svaki jezik po jedan dbf koji se učitava u niz.
> Index niza određen CH fajlom. ....
Pa opet izbor jezika zavisi od verzije programa? Pogrešno.
Stavi sve u jedan jedini DBF (ako imaš više jezika, stavi
sve đuture sa dodatnim poljem za jezik, koji može i u
indeksu da bude zbog efikasnosti) i vozi. Tada možeš i
'u letu' da menjaš jezik na kome radiš.
Milan
clipper.47mileusna,
-> #42, cnenad>> Da ali boja neke je i boja zaglavlja o čemu piše u NG-u ali nigde
>> nije specificirano kako posebno uraditi boju zaglavlja a posebno za
>> podatke.
žek... Kako to? A šta ako imaš raznobojne ćelije. Recimo,
negativni brojevi crveni, a pozitivni plavi. Koje ti je boje
onda zaglavlje? Dakle, samo ćelijama daš boju, a headsep
bude osnovne boje. :) Nisam probao, ali trebalo bi tako...
clipper.48mileusna,
-> #44, kile>> FOR n = 1 TO 4
>> NewGet = GetNew(n, 0, {|EditVal| IIF(PCOUNT() > 0, ;
>> Fields[n] = EditVal, Fields[n]) } )
>> AADD(GetList, NewGet)
>> NEXT
>> promenljive n nakon izlaska iz petlje jednaka 5.
Ako je to, onda samo ispred NEXT staviš:
IF n=4
EXIT
ENDIF
Mada onda ispada da je isto koristiti FOR/NEXT i DO
WHILE/n++, ali eto... :)
clipper.49cnenad,
-> #45, bulaja=> opt_53 zip 222106 CA-Clipper 5.3: Clipper.EXE upgrade + OptEdit
=> Izašao je još jedan manji patch za 5.3, videću šta je menjano i vredi li
Onaj prvi OPT_53 krpi 5.2e EXE na 5.3 ili šta ?
Za ovaj manji pretpostavljam da krpi samo 5.3 ?
Sledeći put budi malo opširniji, nećeš osiromašiti ako otkucaš rečenicu ili
dve više ;)
clipper.50cnenad,
-> #47, mileusna=> žek... Kako to? A šta ako imaš raznobojne ćelije. Recimo,
=> negativni brojevi crveni, a pozitivni plavi. Koje ti je boje
Pa kao što imenjak reče, za te fazone da neka polja budu u drugačijoj boji
se koristi kodni blok. Podrazumevano je da boja zaglavlja i podataka u jednoj
ili više kolona budu ono što se dobije od setcolor(), dakle Forg./Backg.
ili ono što si ti podesio. Izgleda da je ovo rešenje: da se kodni blok koristi
za boje podataka a ono što se dobija od setcolor() ili što ti podesiš kao boja
za zaglavlje. Međutim ovo mi deluje, neću da kažem komplikovano već
jednostavno bespotrebno.
A sad da još malo zakomplikujemo:
1. hoću da naziv kolone bude u jednoj boji
2. hoću da ona crtka ispod zaglavlja (headSep) bude u drugoj boji
3. hoću da podaci budu u trećoj, četvrtoj...zavisno od vrednosti boji ?
clipper.51nbatocanin,
-> #44, kile> {|EditVal| IIF(PCOUNT() > 0, Fields[n] = EditVal, Fields[n]) } )
Problem je što se Fields[n] referiše na n-ti član niza, pri čemu je n
isto za sve elemente GetList-a. Tebi treba Fields[1], Fields[2], ...
Najjednostavnije je da napraviš string koji ti treba, a onda da ga
makroom "pretvoriš" u kodni blok:
c := "{ || ... Fields[" + Str(n) + "] ...}"
cb := &c
clipper.52d.petrovic,
-> #50, cnenad> 1. hoću da naziv kolone bude u jednoj boji
> 2. hoću da ona crtka ispod zaglavlja (headSep) bude u drugoj boji
> 3. hoću da podaci budu u trećoj, četvrtoj...zavisno od vrednosti boji ?
Tako sam ja i shvatio prvo pitanje: Da se Naziv kolone i HeadSep razlikuju.
I još uvek mi nije jasno kako je to i dali je rešeno.
a da zakomplikijemo još malo :
Ja najbolje volim da sve smestim u jednu kolonu :
---------------------------------
Bro := TbrowseDb(11, 3, 20, 75)
a := TbColumnNew(" Karton Prezime Ime Broj knj.
JMat. Broj G.",;
šđđ IIF(Empty(Komentar), " ", "*") + BrKar + " " + Prezime + " " +;
Ime + " " + BrKnj + " " + MatBr ć)
Bro:AddColumn(a)
BroColor(Bro) // Brez zbunjivanja, ova funkcija dodeli boje š1, 2, ...ć
a:ColorBlock := šđxđ;
IIf( Len(AllTrim(Substr(x, 2, 10))) < 10, š5, 6ć,;
IIf( Empty(Right(x, 13)), š3, 4ć, š1, 2ć))ć
a:DefColor := š1, 2ć
---------------------------------
Kako ???!!!??? da sve smestim u više kolona, a da mi ceo red u zavisnosti
od jedne kolone dobije istu boju. Da ponovim ? Ako uzmem gornji listing za
primer kako da u zavisnosti od vrednosti JEDNOG polja ceo red dobije ISTU
boju.
---------------------------------
a := TbColumnNew("Karton", šđđ BrKar ć)
Bro:AddColumn(a)
a := TbColumnNew("Prezime", šđđ Prezime ć)
Bro:AddColumn(a)
---------------------------------
Kako sad da i jedan i drugi imaju istu boju u zavistnosti od toga dali je
Empty(Field -> Prezime)
clipper.53mbiresev,
-> #50, cnenad>> A sad da još malo zakomplikujemo:
>> 1. hoću da naziv kolone bude u jednoj boji
>> 2. hoću da ona crtka ispod zaglavlja (headSep) bude u drugoj boji
>> 3. hoću da podaci budu u trećoj, četvrtoj...zavisno od vrednosti boji ?
Evo ovako:
1 2 3 4
oB:colorSpec := 'W/N, +GR/R, br+/gr, W+/n,...'
1 - separatori
2 - naziv kolone
3 4 - podaci
for n := 1 to Fcount()
oColumn := TBColumnNew(field(n), fieldblock(field(n)))
oColumn:defColor := š2 ć
oColumn:colorBlock := š đxđ š 3, 4ć ć
oB:AddColumn(oColumn)
next
A to možeš i za svaku kolonu, svaki podatak.
clipper.54kile,
-> #51, nbatocanin>> Tebi treba Fields[1], Fields[2], ...
>> Najjednostavnije je da napraviš string koji ti treba, a onda da ga
>> makroom "pretvoriš" u kodni blok:
Znao sam ja šta mi treba, samo se nisam setio kako to da postignem ;)
U svakom slučaju - to je to.
Hvala!
clipper.55atech,
════════════[ PC Guard V2.10 ]═════════════
Kompletan paket za zastitu podataka na
PC racunarima. Zastita izvrsnih programa,
izrada instalacionih disketa, kriptovanje
podataka, konverzija datoteka. Dos verzija.
═══════════════════════════════════════════
Demo verzija se moze skinuti sa PRO-BA Sezama
komandom res re atech (d;).
clipper.56bulaja,
-> #49, cnenad│Onaj prvi OPT_53 krpi 5.2e EXE na 5.3 ili šta ?
└───
Krpi 5.3 EXE na noviji 5.3 EXE, logično :).
clipper.57rmarjan,
Voleo bih kada bi se javio neko ko je radio ozbiljne stvari a pri tome
je koristio FLIPPER graficku biblioteku, mozda mozemo razmeniti iskustva.
Ja sam pre nekoliko nedelja, instalisao 3 programa u tri razlicite firme za
obracun plata. Aplikacija je dosta velika (radi sve sto je potrebno) a radi
i na mrezi. Do sada nije bilo nikakvih problema a ni pri rigoroznom testiranju.
Ovo pominjem zbog toga sto FLIPPER ima i svoj VM sistem, kojeg sam se plasio
u radu. Nema problema.
Interesantno bi bilo cuti, da li je jos neko radio nesto vece pomocu ove
graficke biblioteke.To stoga sto se cini mi se svi pomalo mucimo da se nekako
izborimo sa CAVO i ruku na srce, niko nije zadovoljan onim sto je ocekivao.
Sa druge strane FLIPPER recimo je DOS biblioteka ali nudi stvarno veoma
zgodne mogucnosti za izradu efektnih grafickog izgleda aplikacija.
Jednostavno se razradjuju meniji i sva ostala skalamerija a i statistika se
moze dobro primenjivati (iscrtavanje rezultata). Sve u svemu, vredelo bi da
jos neko proba.
Razlog sto se javljam u vezi FLIPPER-a (koristim verziju 6.08) je sto ne
znam da li je ko u posedu neke vece verzije a sve zbog GET_GET naredbe kojom
se unose podaci. Ona koliko sam ja mogao ustanoviti, uopste ne omogucava da
se kontrlise akcija korisnika, kada jednom udje u get neke varijable. To
je u cistom Clipper-u, moguce. Pretpostavljam da u nekoj novijoj verziji
to nije vise problem. Znam za poslednju verziju 6.2
Da li neko ima noviju veziju ili ima druga neka iskustva sa FLIPPER-om?
Boris
clipper.58nbatocanin,
-> #23, nbatocanin>> Da li neko ima nekakvu funkciju, koja ce u VELIKOJ bazi
>> kupaca, indeksiranoj po, npr. nazivu kupca, trenutno
>> pronaci svako pojavljivanje zadatog stringa, bez obzira
>> da li se on nalazi na pocetku, sredini, ili na kraju
> naziva?
>
> Rešenje za tvoj problem sigurno nije klasično
> indeksiranje.
Evo da se malo ispravim :) Moguće je da je Clipper 5.3 rešenje za
tebe. Naime, u njemu postoji mogućnost kreiranja "custom" indeksa u
koji možeš da trpaš šta hoćeš. E, sad: kreiraš prazan indeks i u
njega potrpaš SVE reči iz cele baze koje mogu biti interesantne za
pretraživanje. Tako korisnik može da traži bilo koju reč koja se
negde pojavljuje. Što se tiče veličine indeksa, štos je da se kod
CDX-a koristi kompresija indeksa, pa veličina uopšte nije straobalna,
čak, veoma je mala. Naravno, potpuno isto problem rešava i SIx ili
neki sličan proizvod.
clipper.59ikordic,
-> #58, nbatocaninRE: Clipper 5.3
=> Evo da se malo ispravim :) Moguće je da je Clipper 5.3 rešenje za
Šta se dešava sas ovim, jel' to radi, koja je poslednja verzija i ima li neke
negotivne momente? Apsolutno me ne zanima onaj Win IDE, nameravam da ga rabim
kao i do sada.
clipper.60stanic,
Instalirao sam Novell Lite 1.1 mrežu u jednoj firmi. Od
ranije se vrti program za proizvodnju napisan tako
da pola opcija uopšte ne radi. Pre par dana je dolazio
tip koji je program napisao(prethodno se nije
pojavljivao dve-tri godine, pa zamislite samo taj užas:
loše napisan program koji nije uopšte održavan) i navodno
ispravio greške. Problem je sada što neke opcije programa
ne rade ako je dignuta mreža. Tip misli da je problem
nedovoljno konvencionalne memorije što je bezveze, jer je
u oba slučaja 613 Kb slobodno. Program puca na mestu gde
se indexi otvaraju. Znači po meni problem je sa file
hendlovima. Svuda gde je potrebno stavljeno je f110
(stavljano čak i f250), ali problem stoji i dalje.
Pretpostavljam da ga NWLite negde zeza, al' nemam pojma
gde da čačkam jer u Server statusu piše da ih u stvari
ima dovoljno. Trenutno sam rešio na solomonski način:
kad rade sa tim opcijama ne dižu mrežu(neki sedmični
planovi). Ima li iko predlog kako rešiti ovaj problem.
clipper.61bulaja,
-> #59, ikordic│Šta se dešava sas ovim, jel' to radi, koja je poslednja verzija i ima li neke
│negotivne momente? Apsolutno me ne zanima onaj Win IDE, nameravam da ga rabim
│kao i do sada.
└───
Radi :), nove stvari nisu loše (prošireni GET sistem, nekoliko klasica
za UI kontrole, osakaćeni ali upotrebljivi Light Lib, ugađeni takođe
osakaćeni Comix,..), mada su se obrukali što smo 3 godine čekali na ove
(u osnovi) sitnice. Win IDE nije loš da na brzaka provališ kako se radi
sa novim meni sistemom i GET proširenjima - u meni i form editoru
napraviš neki meni i rasporediš sve moguće kontrole po prozoru i za sve
to generišeš source. Zatim lepo na miru (iz DOS-a, naravno:) proučavaš
šta je radio i primeniš CPOP (cut/copy & paste oriented programming:)
pristup u kreiranju novih programa :). Ako uopšte nećeš Windows IDE,
startuješ Install sa pete diskete i Win deo se uopšte ne instalira.
Negativnih momenata (zbog kojih recimo ja još nisam prebacio ništa od
većih aplikacija na 5.3) ima - neke biblioteke neće raditi sa 5.3, već
se moraju ili prekopajlirati (ako imaš source) ili čekati na patch ili
novu verziju. Ne rade recimo SIx 2.x (kada će konačno ovde stići SIx 3?)
i CLText, rade Class(Y), FUNCky, NanFor, CA-Tools (za koje je neophodan
patch koji nismo još skinuli:).
clipper.62sobrenovic,
Kako da postignem sledece:
Iz jednog GET bloka pozivam neku funkcija a onda ona ponekad poziva
drugi GET blok. Kada ga pozove, desava se da program totalno
pobrljavi jer mesa stare i nove GET-ove. Dali je potrebno da nazivi
GET-promenjivih budu razliciti (iako su LOCAL) ili je potrebno nesto
drugo (i sta je to drugo)?
Pozdrav, SASA.
clipper.63pzivic,
Da li neko zna gde se nalazi clipper kod iz računara 105,
tekst Teret na lađi Gorana Zafirovića.
clipper.64nbatocanin,
-> #59, ikordic> RE: Clipper 5.3
>
> Šta se dešava sas ovim, jel' to radi, koja je poslednja
> verzija i ima li neke negotivne momente? Apsolutno me ne
> zanima onaj Win IDE, nameravam da ga rabim kao i do sada.
Poslednja verzija je 5.3, negativni momenat je što nema obimniju
elektronsku literaturu, nego samo osnovne stvari. Meni je najveći
problem izmenjen GETSYS.PRG koji sam ja takođe menjao.
Ima mali milion novosti i bez Win IDE-a. Uključeni su Exospace,
Blinker, LightLib, Comix, FlexFile, OptEdit. Naravno, nisu dozvolili
kreiranje novih klasa. Što se tiče problema, cenim da će ih biti kao
i uvek, pa će 5.3a biti za širu upotrebu ;) Šalim se, nisam imao
većih problema, ali to ne znači da ih neće biti.
Pazi primer:
Proba->memo := Date() // !
Proba->memo := 123 // !!
Proba->memo := {1,2,3} // !!!
Detalji u novom PC-u :)
clipper.65nbatocanin,
-> #60, stanic> u oba slučaja 613 Kb slobodno. Program puca na mestu gde
> se indexi otvaraju.
Kako puca? Šta tačno javlja?
clipper.66bulaja,
-> #62, sobrenovic│Iz jednog GET bloka pozivam neku funkcija a onda ona ponekad poziva
│drugi GET blok. Kada ga pozove, desava se da program totalno
│pobrljavi jer mesa stare i nove GET-ove. Dali je potrebno da nazivi
│GET-promenjivih budu razliciti (iako su LOCAL) ili je potrebno nesto
│drugo (i sta je to drugo)?
└───
Potrebno je da GetList bude LOCAL. U svaku proceduru gde definišeš
GET-ove stavi jedno LOCAL GetList := {}.
clipper.67goxx,
-> #54, kile■ >> Tebi treba FieldsŠ1Ć, FieldsŠ2Ć, ...
■ >> Najjednostavnije je da napraviš string koji ti treba, a onda da ga
■ >> makroom "pretvoriš" u kodni blok:
■
■ Znao sam ja šta mi treba, samo se nisam setio kako to da postignem ;)
■ U svakom slučaju - to je to.
■
■ Hvala!
Sa malim zakašnjenjem. Upravo sam došao sa odmora.
Ako hoćeš da izbegneš makroe evo rešenja iz primera za tbrowse nizova
(array.prg). Koristi se osobina lokalnih promenljivih i kodnih blokova da
uzimaju vrednosti iz funkcije gde su definisani.
Dakle,
................
// Create column blocks and add TBColumn objects to the TBrowse
// (see ABrowseBlock() below)
FOR n = 1 TO LEN( aArrayŠ1Ć )
o:AddColumn( TBColumnNew("", ABrowseBlock(aArray, n)) )
NEXT
................
/***
* ABrowseBlock( <a>, <x> ) -> bColumnBlock
* Service function for ABrowse().
*
* Return a set/get block for <a>ŠnRow, <x>Ć
*
* This function works by returning a block that refers
* to local variables <a> and <x> (the parameters). In
* version 5.01 these local variables are preserved for
* use by the block even after the function has returned.
* The result is that each call to ABrowseBlock() returns
* a block which has the passed values of <a> and <x> "bound"
* to it for later use. The block defined here also refers to
* the static variable nRow, used by ABrowse() to track the
* array's "current row" while browsing.
*/
STATIC FUNCTION ABrowseBlock(a, x)
RETURN ( šđpđ IF(PCOUNT() == 0, aŠnRow, xĆ, aŠnRow, xĆ := p)ć )
................
Goran
clipper.68goxx,
-> #63, pzivic■ Da li neko zna gde se nalazi clipper kod iz računara 105,
■ tekst Teret na lađi Gorana Zafirovića.
Koliko me sećanje služi, nema listinga iz nekoliko brojeva (onih
"prelomnih" :)
Evo kompletan primer. Tekst stvarno izgleda zamršeno bez sorsa i ne
verujem da ga je pročitalo više od 5 ljudi.
Goran
ter.zipclipper.69zkrstic,
-> #60, stanic>> Pretpostavljam da ga NWLite negde zeza, al' nemam pojma
>> gde da čačkam jer u Server statusu piše da ih u stvari
Pretpostavljam da SHARE je dignut bez parametara
koje smo ( sam ) ovde pominjali/o, bar tako mi liči. Ako
budeš imao još problema viči me na 402-096 u radnju da
probamo, obzirom da kopam oči ko mi dirne NWL1.1 ;)
Pozdrav, Zkr
clipper.70nbatocanin,
-> #62, sobrenovic> Iz jednog GET bloka pozivam neku funkcija a onda ona
> ponekad poziva drugi GET blok. Kada ga pozove, desava se
> da program totalno pobrljavi jer mesa stare i nove
> GET-ove. Dali je potrebno da nazivi GET-promenjivih budu
> razliciti (iako su LOCAL) ili je potrebno nesto drugo (i
> sta je to drugo)?
Stvar je u tome što svaki READ mora da ima svoju posebnu GetList
promenljivu. Znači, na početak svake procedure za unos stavi LOCAL
GetList := {}.
clipper.71kile,
-> #67, goxx>> Sa malim zakašnjenjem. Upravo sam došao sa odmora.
>> Ako hoćeš da izbegneš makroe evo rešenja iz primera za tbrowse nizova
E, to mi treba :))
Hvala!
clipper.72whitie,
-> #64, nbatocanin-->>> Apsolutno me ne zanima onaj Win IDE, ...
Mene bas interesuje razvijanje programa pod Win. U R-105 se
pisalo ... " o mnogim greskama i nedovrsenosti " ... Clipper
Workbench-a. Ako se ne varam tekst je zakljucen konstatacijom
"... AKO se .." to dovede do nivoa VO bice mnogo upotrebljivo
i korisno.
Sou, na cemu smo ?
clipper.73whitie,
Kako da preuzmem vrednost environment promenljive, postavljene sa
SET TEMP npr. Rekose mi da ima f-ja u Blinkeru, al' ja ne nadjoh !
clipper.74dvesic,
-> #73, whitie>> SET TEMP npr. Rekose mi da ima f-ja u Blinkeru, al' ja ne
>> nadjoh !
Ima i u Clipper-u :)
GetEnv() // GetEnv("TEMP")
clipper.75stanic,
-> #65, nbatocanin>> u oba slučaja 613 Kb slobodno. Program puca na mestu gde
>> se indexi otvaraju.
>
> Kako puca? Šta tačno javlja?
Workarea not in use:ORDLISTADD.
Pa između ostalog javi: called from DbSetIndex(0) i
nakon toga njegova procedura gde je greška nastala.
Meni ovo liči na pokušaj da otvori index, ali zbog
nedostatka file hendlova puca. Sa dignutom mrežom
ne radi, a bez nje radi.
Evo i isečka iz autoexec-a.
lh share /f:6000 /l:200
lh lsl
lh ne2000.com
lh ipxodi a
lh server
lh client
lh nlcachex.exe 256
Problem je što source-a nema tako da nemam pojma šta
se dešava u problematičnom delu.
clipper.76dzoric,
Imam jedan problem sa Novel Lite-om 1.1. Prvi put radim sa doticnim i od
samog pocetka sam se plasio istog. Elem, u jednoj prodavnici imam dve
stanice 386 sa po 2Mb RAM-a od kojih je jedna na kasi (server). Memorija
je podignuta sa QEMM-om 7.04. Na mrezi trci Clipper aplikacija za vodjenje
radnje. Ovo je sve radilo bez problema do skoro a od nedavno imam svako-
dnevno blokiranje stanice ili corruption u bazama. Kada se analizira
corruption vidi se da je deo koda upisan u baze i verovatno je po sredi
konflikt sa memorijom.
Da li je neko imao slicnih problema sa kombinacijom Clipper-QEMM-Lite.
__Dejan__
clipper.77mdrazic,
-> #66, bulaja> Potrebno je da GetList bude LOCAL. U svaku proceduru gde definišeš
> GET-ove stavi jedno LOCAL GetList := šć.
Ne, potrebno je
PRIVATE GetList:=šć
U svakoj aplikaciji postoji jedan PUBLIC GetList koji se koristi ako
se ne deklariše drugi. Sa LOCAL je lista vidljiva samo u tom modulu,
dok iz readmodal() i ostalih funkcija za obradu get liste nije.
Milan
clipper.78mdrazic,
-> #64, nbatocanin> Proba->memo := Date() // !
> Proba->memo := 123 // !!
> Proba->memo := š1,2,3ć // !!!
>
> Detalji u novom PC-u :)
A kodni blokovi?
clipper.79stanic,
-> #69, zkrstic> Pretpostavljam da SHARE je dignut bez parametara
> koje smo ( sam ) ovde pominjali/o, bar tako mi liči.
Probao danas sa parametrima, spustio ga dole, ali
ista stvar. Ima li još predloga ?
clipper.80mileusna,
-> #62, sobrenovic>> drugi GET blok. Kada ga pozove, desava se da program totalno
>> pobrljavi jer mesa stare i nove GET-ove. Dali je potrebno da nazivi
>> GET-promenjivih budu razliciti (iako su LOCAL) ili je potrebno
>> nesto drugo (i sta je to drugo)?
Na početku funkcije sa 'novim' GET-ovima turiš jedno:
LOCAL GetList:={}
clipper.81bulaja,
-> #77, mdrazic││LOCAL GetList := {}
│└───
│Ne, potrebno je
│PRIVATE GetList:=šć
│U svakoj aplikaciji postoji jedan PUBLIC GetList koji se koristi ako
│se ne deklariše drugi. Sa LOCAL je lista vidljiva samo u tom modulu,
│dok iz readmodal() i ostalih funkcija za obradu get liste nije.
└───
Koliko se sećam, čovek je imao problem sa preklapanjem GET lista iz
rekurzivno pozvanih READ-ova, što će rešiti LOCAL a ne PRIVATE :).
clipper.82mileusna,
-> #75, stanic>> Workarea not in use:ORDLISTADD.
>> Pa između ostalog javi: called from DbSetIndex(0) i
>> Meni ovo liči na pokušaj da otvori index, ali zbog
A da nije ovo u pitanju:
Pokušano je otvaranje datoteke u mreži. Pošto je program
'sklepan' (tako reče, jel da?:) verovatno ne proverava da li
je otvaranje zaista i uspelo. Recimo da otvaranje nije uspelo.
Program ide dalje i podrazumeva da je .dbf otvoren. Sledi
funkcija DBSETINDEX() (ili već nešto u sličnom fazonu), ali
avaj... nema otvorene baze (Workarea not in use), pa se tako
ne mogu otvoriti ni indeksi (ordListAdd(), dbSetIndex()) i
javlja se greška.
Ovakav slučaj bi trebalo da dâ identičnu grešku koju si
naveo, i da prijavi funkciju DBSETINDEX() kao krivca. Bilo
kako bilo, nađi tog programera, neka pogleda kod, pa bar da
znaš na čemu si: da li je greška u kodu ili u mreži.
clipper.83nbatocanin,
-> #72, whitie> Mene bas interesuje razvijanje programa pod Win. U R-105
> se pisalo ... " o mnogim greskama i nedovrsenosti " ...
> Clipper Workbench-a. Ako se ne varam tekst je zakljucen
> konstatacijom "... AKO se .." to dovede do nivoa VO bice
> mnogo upotrebljivo i korisno.
> Sou, na cemu smo ?
Na žalost, nisu ga doveli na nivo VO-a. Koncepti nisu do kraja razrađeni,
mada sve solidno funkcioniše. Kad bi se doteralo i napravilo za DOS,
bilo bi odlična stvar. Primera radi, DBServer (koji je odlična ideja)
nema smisla ako nemaš mogućnost kreiranja objekata iz klase tog
servera. A pošto 5.3 nema UD objekte... Ovako samo stoji i malo čemu
služi :(
clipper.84nbatocanin,
-> #78, mdrazic>> Proba->memo := Date() // !
>
> A kodni blokovi?
Jock. Samo string pa makro. Kako bi rešio referisanje na lokalne
promenljive u cb?
clipper.85nbatocanin,
-> #75, stanic>> Kako puca? Šta tačno javlja?
> Workarea not in use:ORDLISTADD.
Ovo znači da se traži pristup bazi koja nije otvorena. Verovatno nisu u
pitanju hendlovi, nego na primer pokušaj otvaranja iste tabele dva
puta ekskluzivno (ili zaboravio čovek da zatvori prvi put). Lek:
teško. Ne verujem da je do mreže. Probaj da ga startuješ bez mreže,
ali sa učitanim SHARE. Jedino da ga dekompajliraš, ispraviš grešku i
ponovo kompajliraš ili da ga pečuješ.
clipper.86nbatocanin,
-> #77, mdrazic>> definišeš GET-ove stavi jedno LOCAL GetList := šć.
> Ne, potrebno je
> PRIVATE GetList:=šć
Nema veze, GetList se prenosi kao argument u ReadModal.
clipper.87nbatocanin,
-> #76, dzoric> Imam jedan problem sa Novel Lite-om 1.1. Prvi put radim sa
> doticnim i od samog pocetka sam se plasio istog. Elem, u
> jednoj prodavnici imam dve stanice 386 sa po 2Mb RAM-a od
> kojih je jedna na kasi (server). Memorija je podignuta sa
> QEMM-om 7.04. Na mrezi trci Clipper aplikacija za vodjenje
> radnje. Ovo je sve radilo bez problema do skoro a od
> nedavno imam svako- dnevno blokiranje stanice ili
> corruption u bazama. Kada se analizira corruption vidi se
> da je deo koda upisan u baze i verovatno je po sredi
> konflikt sa memorijom. Da li je neko imao slicnih problema
> sa kombinacijom Clipper-QEMM-Lite.
Meni se ovo jednom desilo, ali na jednokorisničkom računaru.
Pretpostavljam da je stvar do QEMM-a. Prepakuj sve tabele, možda
pomogne.
clipper.88zkrstic,
-> #76, dzoric>> Imam jedan problem sa Novel Lite-om 1.1. Prvi put radim sa doticnim i od
>> samog pocetka sam se plasio istog. Elem, u jednoj prodavnici imam dve
>> stanice 386 sa po 2Mb RAM-a od kojih je jedna na kasi (server). Memorija
>> je podignuta sa QEMM-om 7.04. Na mrezi trci Clipper aplikacija za vodjenje
Ajde bači CONFIG & AUTOEXEC. Druga stvar koju možeš sam da
uradiš je da poteraš OPTIMIZE da traži EXCLUDE-ove, lako
moguće da se neko sproću nekoga svađa. Inače identičnu
konjfiguraciju ( sa 4MB RAM-a ) imam i ja u radnji i za zadnje
četiri godine sam imao tri ili četiri problema, sve mojom
krivicom ( turbulencija u sorsu ;> ). Tako nešto - jock.
Baj'd'vej jel imao neko frku sa SIX-om i DRIVESPACE-om ili kako
se već zove ono Majkrosoftovo čedo za pravljenje pite od
go*ana ;> ? Meni se već dva puta dešava, prvi put na Kipru
na nekoj kreten mašini, drugi put neki dan ovde. Imal' ko
kaki lek ?
Zkr
clipper.89d.petrovic,
-> #75, stanic> Workarea not in use:ORDLISTADD.
> Pa između ostalog javi: called from DbSetIndex(0) i
> nakon toga njegova procedura gde je greška nastala.
> Meni ovo liči na pokušaj da otvori index, ali zbog
> nedostatka file hendlova puca. Sa dignutom mrežom
> ne radi, a bez nje radi.
Pretpostavka :
žovek je na jednom mestu u programu otvorio otvorio neku bazu ekskluzivno.
Sada tu bazu otvara u drugoj oblasti i NorMAlno ne vrši proveru uspeva li
to uopšete. Kod otvaranja indeksa puca jer u toj novoj oblasti ništa nije
otvoreno.
Bez mreže sve to fercera, jer možeš jednu bazu ekskluzivno da otvoriš kad
god ti se nakrivi.
Objasni ti njemu da mu program ne valja, a ako i dalje ima volju da te
zaluđuje javi se da mu na NW3.12 dokažemo da je zasrao ;)))
clipper.90d.petrovic,
-> #77, mdrazic> PRIVATE GetList:=šć
>
> U svakoj aplikaciji postoji jedan PUBLIC GetList koji se
> koristi ako se ne deklariše drugi. Sa LOCAL je lista vidljiva
> samo u tom modulu, dok iz readmodal() i ostalih funkcija za
> obradu get liste nije.
Naprotiv, UVEK LOCAL
Šta ćeš u funkciji koju pozivaš kroz validaciju ? Promenljive koje ti
trebaju u sledećoj funkciji uvek predaješ kao parametar, a ako ti ni to
nije dosta predaj ceo GetList kao parametar ;)
clipper.91cnenad,
-> #88, zkrstic=> Baj'd'vej jel imao neko frku sa SIX-om i DRIVESPACE-om ili kako
Kakva frka ?
Dugo vremena (tri godine) sam sorseve i test EXE držao na kompresovanoj
particiji i nikad nije bilo nikakvih problema.
Sada su na kompresovanoj particiji Clipper i SIX, u memoriji je drajver,
doduše QEMM Stealth D*Space i nema problema.
clipper.92ndragan,
-> #35, velicko/ Šta ste koristili?
(u foksu, da se ogradim)
#define jezik getenv("jezik")
* mađarski 852
#if jezik="mag"
c_dobar_dan="Jó napot"
* ascii engleski
#elif jezik="eng"
c_dobar_dan="Good morning"
* srpski 852
#elif jezik="s8"
c_dobar_dan="Dobar dan komšija"
#else
* ...i difolt juski
c_dobar_dan="Dobar dan kom{ija"
#endif
Mana u ovoj verziji foksa je što svaka takva poruka troši po jednu
promenljivu, inače bi bilo
#elif jezik="s8"
#define c_dobar_dan "Dobar dan komšija"
Uglavnom, kompajlira se uvek samo jedna od verzija, zavisno od okolinske
promenljive jezik. Svaki program ima svoje c_* promenljive (nažalost, ne
konstante, al' može u VFP3.x).
clipper.93stanic,
Ima li neka dobra duša koja bi mogla da mi baci
na brzi Sezam primere iz Booth & Lief-Cl 5.2
mrežno programiranje. Treba mi desetak f-ja , al
iskreno reženo mrzi me da ih kucam(što mi u krajnjem
slučaju ne gine). Please...
clipper.94goxx,
pucanje index-a na lakom novelu.
možda ti fali set clipper=f100 u autoexec.bat
mene je jednom to zezalo sa istim simptomima.
Goran
clipper.95mdrazic,
-> #81, bulaja> Koliko se sećam, čovek je imao problem sa preklapanjem GET lista iz
> rekurzivno pozvanih READ-ova, što će rešiti LOCAL a ne PRIVATE :).
Može i private, verujte na reč starijem čoveku :), čak omogućava i
neke prljave trikove sa GetList-om pri validiranju koje sam pravio
a za koje ne kažem da ne mogu i drugačije (čistije) da se urade.
Sa private radim još od starije verzije Clippera pa mi je prešlo u
naviku. Naravno da je više 'in' koristiti local.
Milan
clipper.97stanic,
-> #85, nbatocanin> teško. Ne verujem da je do mreže. Probaj da ga startuješ bez mreže,
> ali sa učitanim SHARE.
Do istog zaključka sam slučajno došao i sam danas. Zaboravio sam da
zatvorim bazu, pod win-om radi vshare i identična stvar. Hvala svima
koji su mi pomogli u rešavanju ovog problema. A tipa ću za gušu što
mi dira NWLite.
> Jedino da ga dekompajliraš, ispraviš grešku i
> ponovo kompajliraš ili da ga pečuješ.
-------
Pečujem ? Kako ? Joke ? Prosvetljenje ?
clipper.98zzk.,
-> #87, nbatocanin>> konflikt sa memorijom. Da li je neko imao slicnih problema
>> sa kombinacijom Clipper-QEMM-Lite.
> Meni se ovo jednom desilo, ali na jednokorisničkom računaru.
> Pretpostavljam da je stvar do QEMM-a. Prepakuj sve tabele, možda
> pomogne.
desilo se prije nekoliko mjeseci:
clipper 5.01 + novell 3.11
(vec nekoliko godina se na 50 masina vrti ista kombinacija)
izvjestaj, koji je trebao otici u fajl _korisnicko_ime_.txt, je krenuo
u jednu od centralnih .dbf datoteka (otvorena za vrijeme izvrsavanja ove
operacije) i prepisao prvih 512 bajta :(
nista sumnjivo nisam uspio da otkrijem (operacija je i prije i poslije
ovog dogadjaja izvedena uspjesno bar po par hiljada puta), tako da sam
rijesio da okrivim duhove i udvostrucim molitve narednu nedjelju dana :)
č.
p.s.
nakon restauriranja prvih nekoliko zapisa i zaglavlja datoteke nisam
znao koliko zapisa se u njoj nalazi (program je tretirao samo onoliko
koliko je naznaceno u zaglavlju). kreiranje nove datoteke i jedno
append from _restaurirana_ je uspjelo da prikupi sve sto je trebalo :)
clipper.99sbrk,
-> #93, stanic
>> Ima li neka dobra duša koja bi mogla da mi baci
>> na brzi Sezam primere iz Booth & Lief-Cl 5.2
>> mrežno programiranje.
Hau jes not. (što bi rek'o ndragan) :)
src_fox.arjclipper.100obren,
Kakva su iskustva sa pisanjem biiblioteka (ili .obj-a) za Clipper u
Borland C-u? Jel može ili mora u MSC-u?
clipper.101nbatocanin,
-> #97, stanic>> Jedino da ga dekompajliraš, ispraviš grešku i
>> ponovo kompajliraš ili da ga pečuješ.
> -------
> Pečujem ? Kako ? Joke ? Prosvetljenje ?
:)) Ideja nastala u trenutku ludosti :) Može se, na primer:
USE Test
pretvoriti u:
USE Test SHARED
tako što se izmeni par bajtova u EXE kodu. Ali, onda je problem sa
zaključavanjem pre izmene. U svakom slučaju, ako imaš autora, to ti
je najbolje rešenje.
clipper.102dpredovic,
-> #88, zkrstic> Baj'd'vej jel imao neko frku sa SIX-om i DRIVESPACE-om ili kako
> se već zove ono Majkrosoftovo čedo za pravljenje pite od
> go*ana ;> ? Meni se već dva puta dešava, prvi put na Kipru
> na nekoj kreten mašini, drugi put neki dan ovde. Imal' ko
> kaki lek ?
Stacker 4 :) Nije da imam nešto protiv MalogMekog, ali još nisam
(lično) video mašinu na kojoj TroubleSpace-ovi nisu zaslužili svoje
ime.
clipper.103d.petrovic,
-> #101, nbatocanin>>> Jedino da ga dekompajliraš, ispraviš grešku i
>>> ponovo kompajliraš ili da ga pečuješ.
>> -------
>> Pečujem ? Kako ? Joke ? Prosvetljenje ?
>
> :)) Ideja nastala u trenutku ludosti :) Može se, na primer:
>
> tako što se izmeni par bajtova u EXE kodu. Ali, onda je problem
> sa zaključavanjem pre izmene. U svakom slučaju, ako imaš
> autora, to ti je najbolje rešenje.
Prva varijanta :
Naprotiv, vrlo dobra ideja, s kojom se treba pozabaviti:
Naći gde je glavni meni i pozatvarati SVE. Zatim čitati očenaš 10 puta
da ne koristi negde neku bazu koja je UVEK otvorena.
Druga varijanta :
Izmeniti kod gde vrši select pre otvaranja (Verovatno to i radi čim je baš
toliko zabrljao) i preći u oblast gde je dotična VEĆ otvorena.
clipper.104dvesic,
-> #100, obren>> Kakva su iskustva sa pisanjem biiblioteka (ili .obj-a) za
>> Clipper u Borland C-u? Jel može ili mora u MSC-u?
Uz određenu ogradu :)) trebalo bi da može u verzijama 4.xx, uz
navođenje prekidača koji generiše OBJ datoteke kompatibilne sa
MSC-om.
clipper.105bulaja,
-> #95, mdrazic_Mo─e i private, verujte na re┌ starijem ┌oveku :), ┌ak omogu║ava i
_neke prljave trikove sa GetList-om pri validiranju koje sam pravio
_a za koje ne ka─em da ne mogu i druga┌ije (┌istije) da se urade.
_Sa private radim joˇ od starije verzije Clippera pa mi je preˇlo u
_naviku. Naavno da je viˇe 'in' koristiti local.
____
Ne znam koji su to prljavi trikovi :), ali sa stanoviˇta ReadModal()
nema nikakve razlike da li je GetList deklarisan kao PRIVATE ili LOCAL,
jer je funkcija deklarisana ovako:
// GetSys.prg
FUNCTION ReadModal ( GetList, nPos )
dakle GetList koji je deklarisan kao formalni parametar maskira
eventualni Public/Private GetList koji je deklarisan u pozivnim
procedurama :).