Visual Foxpro

Oldal 1 / 2Következő →

Jelentkezz be a hozzászóláshoz.

#58
Sziasztok. Szuksegem lenne a segitsegetekre. Kell keszitsek egy projektet a Visual FoxPro 8-ba, es elakadtam egy egyszerunek tuno resznel. Keszitettem egy tablet, de a gondom az, hogy nem tudom megnyitani…probaltam File->Open-nel…nem nyitja meg, probaltam ugy is, hogy a Command reszhez beirtam Use es a tablam nevet…de nem nyilik meg. Hogyan tudom megnyitni?? Mit csinalok rosszul? Kerlek segitsetek mert szorit a hatarido 😞((
#57
Sziasztok

ez az email jól müködik egy email címre de több címet is szeretnék megadni és egyszerüen már mindent próbáltam de nem jön össze ha beteszem egy ciklusba akkor meg minden kuldesnél rá kell az outlookban kattintani a küldés gomra ami 10-12 névnél elég strapás.

elõre is köszönöm mert ez most eléggé fontos és sûrgõs lenne nekem ha tudnátok segíteni

***************** E-MAIL KULDES ***************************************

mess1=createobject("msmapi.mapimessages")

sess1=createobject("msmapi.mapisession")

sess1.signon

mess1.sessionid=sess1.sessionid

mess1.msgindex=-1

mess1.compose

mess1.recipdisplayname=trim('[email protected]')

mess1.recipaddress=""

mess1.msgnotetext= 'HHHH'

mess1.msgsubject="HIBA!"

*if _screen.activeform.op1.value=2

* mess1.attachmentpathname=pcsatolt

*endif

mess1.send(1)

sess1.signoff

***************** E-MAIL KULDES VEGE **********************************

Qwerty4
#56
Hello!

Egyelõre röviden:van nekem egy táblám egy adatbázisban.A táblázatban vannak dátum mezõk, karakter mezõk és numerikus mezõk (összesen 9).
Készítettem egy form-ot (ûrlapot), az ûrlapon vannak text mezõk, annyi darab, amennyi szükséges a tábázat kitöltéséhez ûrlap segítségével (text1 - text9).
A parancs gombnál az ûrlap programozásánál pontosan milyen parancssort kell beírni (sablon van?), hogy az ûrlap indítása után a text boxokba beírt adatok a táblázatba, minden a neki megfelelõ helyre kerüljön?<#help>
Remélem érthetõen írtam.

De azért példa:
Van egy táblánk 2 mezõvel:kod, nev.A kódhoz tartozna a text1,a nevhez a text 2.
Én így írnám a prancsot, de mi a hiba benne?:
"kod = val(alltrim(thisform.Text1.value))
nev = alltrim(thisform.Text2.value)
insert into tabla values (kod, nev)
=MessageBox('A felvitel sikerült', 0, 'Mûvelet eredménye')"

Ennek eredmánye midnig az, hogy nem az újonnan beírt szöveget másolja a táblába, hanem a korábban appenddel kitöltött adatok elsõ sorát másolja újra be...

Qwerty4

#55
Sziasztok!

Készítettem egy "outlook.application" -t, ez megy is addig amig a gépen
van telepítve ofisz.
Szeretnék egy "outlookexpress.application" -t is készíteni.
Ebben tud e valaki segíteni.

Elõre is kösz a segítséget.

Henrik
#54
VISUAL FOXPROBAN jártas partnereket keresek, kiskereskedelmi-vendéglátós
rendszer terjesztés, menedzselés fejlesztés területén együttmûködéshez.
http://aquila-development.freeweb.hu/
Ha érdekel irj !
(Ez nem álláshírdetés ! Csak "szövetségeseket" keresünk 😊
hadosoft
#53
Sziasztok !

Valaki tért át már VFP 5.0-ról 9.0-ra ? Hogy sikerült ?
Gondolom van szívás ! 😊
Írjon valaki nekem egy kis infót, mert a 9.0 is 200 ropi.

Gyerekek !!... 😞 Az MS megint "csõre" húz minket :

http://www.hwsw.hu/hirek/33086/microsoft_visual_foxpro_studio_sql_server_orcas_sedna.html

hadosoft
#52
Szia !

VFP 5.0-ben csináltam hasonlót. Draft-ban kellet mátrix nyomtatóra müldenem számlákat meg szállítót. Úgy csináltam meg, hogy a report fájl minden sora egy mezõbõl állt és ebben adtam meg a nyomtatandó string kifejezést és az ESC vezérlõ karaktereket is. Ezek után ezt némi átalakítás után a Copy parancsal kiküldtem a nyomtatóra. Itt a kód :

*>> Leporellóra :
cFnp = Substr(cFn,2)
noszel = _ASCIICOLS
_ASCIICOLS = 150

Osszlap = 1
peldany = 1

** Ellenõrzés, nyomtatás :

On Error lHiba = .T.

*teszteléshez******************************
* Report All Form &cFn Noconsole Preview
*******************************************

For nCik = 1 To 5
lHiba = .F.
*lf = Sys(2023)+"\"+Alltrim(Sys(3))+".TXT"
lf = Sys(2023)+"\"+SUBSTR(SYS(2015), 3, 10)+".TXT"
Report All Form &cFn Noconsole To File (lf) ASCII
If lHiba = .F.
Exit
EndIf
EndFor

ON ERROR ErrHand(ERROR(),PROGRAM(),LINENO())

*messagebox(cfn+space(1)+lf)

*>> Nyomtatás, ha nincs hiba
If !lHiba
Osszlap = _pageno
If Thisform.Megjel.Listindex > 1
Sele bizfej
Report All Form &cFnp Noconsole Preview
Endif


If Thisform.Megjel.Listindex < 3
Sele bizfej
Report All Form &cFn Noconsole To File (lf) ASCII

* Konverzió :
*lc = Sys(2023)+"\"+Alltrim(Sys(3))+".TXT"
lc = Sys(2023)+"\"+SUBSTR(SYS(2015), 3, 10)+".TXT"
f1 = FOPEN(lf,12)
f2 = FCREATE(lc)
IF f1 < 0 or f2 < 0
MessageBox("Listafájlt nem tudom elérni !",16,"A nyomtatás sikertelen !")
ELSE
Do While !Feof(f1)
cS = CpConvert(CpCurrent(),852,FGet(f1))
=FPUTS(f2, cS)
EndDo
ENDIF
*Utolsó soremelésjel :
=FCLOSE(f1)
=FCLOSE(f2)

* DOS Nyomtatás :
* if Messagebox("Nyomtat ?",4,"") = 6
For nMs = Thisform.Nyompld2.Value To ig
peldany = nMs
lHiba = .F.
On Error lHiba = .T.
Do Case
Case lepo = 1
Copy File (lc) To LPT1
Case lepo = 2
Copy File (lc) To LPT2
Otherwise
Copy File (lc) To PRN
EndCase
ON ERROR ErrHand(ERROR(),PROGRAM(),LINENO())
If lHiba = .F.
*Utolsó soremelésjel :
??? Chr(12)
Else
MessageBox("Nyomtató nem elérhetõ !",16,"A nyomtatás sikertelen !")
Exit
EndIf
EndFor
Delete File (lc)
Delete File (lf)

*** Másolat küldése :
If Left(bsz,1) = "3"
ThisForm.printer.CopyPrinter
ig = nMs
For nMs = ig To epldsz+ig-1
Sele bizfej
peldany = peldany+nMs
Report All Form &cFn Noconsole To Printer
Endfor
Endif

Endif
_ASCIICOLS = noszel
Else
MessageBox("Listafájlt nem tudom elérni !",16,"A nyomtatás sikertelen !")
EndIf

Remélem valamiben tudtam Neked segíteni. 😊

#51
Helloka! Tudom, hogy a visualról szól a fórum, viszont vannak alkalmazásaim, amik még 2.0-ban írtam. Ebben kell most módosítanom, és nem tudom mit tegyek. TXT-t kell készítenem számlaadatok átadásához 1500 széles sorokkal. Nyomtatás fájlba átírányírtással foxpro 255 környékén megtöri ha simán csak kiiratással próbálom elkészíteni. Mivel pozicionálni kell, ezt találtam leggyorsabb megoldásnak. Ha egy válltozóba rakom össze, ha hosszabb 256-nál már hibával leáll.Ha van valakinek ötlete szívesen veszem a [email protected] címre! Köszi
#50
hello mindenkinek.lenne egy nagy keresem,ha valaki tudja hogyan kell mukodo programot letrehozni visual foxproban,vagy barmi ami vele kapcsolatos nagyon kerem irjon a [email protected] cimre nagyon koszi megegyszer
#49
jol pörög ez a topik
#48
hi!

az lenne akérdésem hogy egy kész programból vki vissza tudja fejteni a forrás filát?Ill ha akarok változtani a programon akkor mindeképp kell a forrás file?

köszönet
#47
Sziasztok segítsetek már zavaros szelem képes:kékes,zöldes,lillás a monitor.szerintettek mi lehet ez? Köszi.
#46
Sziasztok!
Valaki tudna segíteni egy magyar oldal linkjével, ahol bõvebb információt találok a Foxpro 9.0-ról és technológiáiról?
<#help>
THX
#45
Sziasztok!
Segítséget szeretnék kérni. Osztálynaplót kellenne készítenem FoxPRo 9.0-ban,de sajna fogalmam sincs, hogy hogyan kezdjek neki. Se E-K modellem nincs és ötletem se. Ha valaki tud segíteni, azt nagyon megköszönném <#kacsint>
email címem: [email protected]
Trade
#44
Sziasztok!
Szeretnék egy adatbázis csinálni ami a Cheat2000-hez hasonlo kinezetu
A felhasznalok kesobb barmilyen adatbazis kezelo hasznalata nelkul egyszeruen
hozzaadhatnak az adatokat.
elore is nagyon koszi

PetruZ
#43
A százezer rekord az nudli, a nagy adatbázis úgy tízmilliós nagyságrendnél kezdõdik. 😊

De egyébként ezt nem tudod megcsinálni FoxPro-ban (automatikusra), csak akkor, ha te programozod a keresést. Nem tudom, milyen típusú adatbázisról van szó, de a legtöbb nem fogja neked a belsõ mûködését megmutatni (nem fogja megmondani, hol tart az indexelésben, vagy a sorok leválogatásában, mert ez nem ilyen egzakt dolog; az adatbázisok belsõ mûködése majdhogynem külön tudomány 😊 ), csak azt tudod számolni, hogy a lekérdezés végén hány sor jött, és a sorok át-fetch-elése hol tart. Ha ezt meg akarod jeleníteni, az programozott dolog, nincs rá automatika. Ez esetben neked kell pl. a progressbar-t vezérelni.
#42
Én azért egyszerübb dologra gondoltam 😊

Pl.
van egy nagy adatbázis (néha 100000 record feletti)
ezt indexelni, ebbõl leválogatni sql-es parancsokkal is idõígényes
ezt szeretném látni, hogy épp hol tart.

(az automatikus csak a csík megjelenítése lenne)


PetruZ
#41
Mit jelent az, hogy automatikusan? Mit kell dolgoznia? Sejtem, mire gondolsz, de vajon tudod-e, hogy mire gondolsz, és mit akarsz megvalósítani? 😊 Biztosan automatikusan kellene mennie?
Az ilyesféle event kezelés kicsit tág témakör, úgy nagyjából a modern programozás háromnegyedét valamilyen szinten érinti...
#40
Most már csak az érdekelne, hogy hogyan foglalod keretbe a folyamatot ?
pl.
olecontrol1.value=0,0001 & az induló érték

de hogy fog automatikusan dolgozni ?



#39
Köszi !
PetruZ
#38
Pl. nyiss egy új Form-ot, a toolbar-ról dobj rá egy ActiveX Control (OLEControl) objektumot. A megnyíló listában keresd meg pl. a Microsoft ProgressBar Control 6.0-át, majd méretezd kedved szerint. Bizonyos paramétereit beállíthatod kézzel, ha jobbklikket nyomsz rá, majd a menüben a ProgCtrl Properties pontot választod. Ugyanezek a property-k (és a többi is, ami nincs itt), programozás oldaláról is elérhetõ (pl. az olecontrol1.value kell neked a pozíció beállításához). A pontos leírásokat az MSDN Library-bõl tudod elõásni.
#37
Használtál már activeX-et ? Mert én még nem, ha egy kis iránymutatót adnál, nagyon megköszönném.
PetruZ
#36
Nincs, neked kell megírni, vagy használhatsz vmi külsõ (jellemzõen OCX v. ActiveX) komponenst. Ez már kicsit túlmutat az alap FoxPro programozáson.
#35
Van arra külön parancs, ha feldolgozottságot szeretnék megjelentettni, ugyan úgy mint amikor megy egy install és %-osan húzza a csikot ?


PetruZ
#34
Nem hinném, az MSDN library szerint is ezt, ilyen formában érdemes használni, nincs megkülönböztetés. Bár elõfordulhat, hogy a hivatkozás hibás / hiányos. 😊
#33
Lehet hogy az excel 2003 -mal van a hiba ?

7-es FoxPro-val próbáltam

Meg fogom nézni egy másik gépen ahol 97-es office van.

PetruZ
#32
Excel van telepítve a gépre, ahol próbálod? Nálam pár éve 7-es és 8-as FoxPro-val mûködött Excel 95-tõl 2000-ig. Már nem Fox-ozok, a részlet egy régi alkalmazásom forrásából van, amit széles körben használt a volt cégem, gond nélkül.
A gépemen van egy Fox8-as, most kipróbáltam rajta, de nekem mûködik. Igaz, nincs Office a gépemen, de nem a GetObject(()-tel van baja, hanem az else ággal, ugyanis nem tud Excel objektumot kreálni (ahogy az logikus is).
Ennyi volt az egész program:

if type( 'GETOBJECT(, "Excel.Application")' ) = "O"
OLEExcel=GETOBJECT(, "Excel.Application")
else
OLEExcel=CreateObject("Excel.Application")
endif
with OLEExcel
.Visible=.t.
endwith
release OLEExcel

Compile lement, futtatás is megy. Sztem valamit kihagytál / elgépeltél (idézõjelek, vesszõk nem mindegy, hol vannak).
#31
Már a GETOBJECT -re hibát jelez ,hogy "OLE hiba :a mûvelet nem hajtható végre"

Kicsit tanácstalan vagyok..




PetruZ
#30
Ja, pár éve kellett, akkor OLE-n keresztül csináltam - de baromi lassú.
Pl.:

...
if type( 'GETOBJECT(, "Excel.Application")' ) = "O"
OLEExcel=GETOBJECT(, "Excel.Application")
else
OLEExcel=CreateObject("Excel.Application")
endif
with OLEExcel
.Visible=.t.
.workbooks.open(fájlnév, 0, .f.)
.sheets(1).select
...
Innentõl kezdve elméletileg a teljes VBA scripting funkcionalitás a rendelkezésedre áll, csak ne feledkezz meg az elõpontokról, hogy az OLEExcel objektumon keresztül dolgozzon. A FoxPro-t nem érdekli, hogy a számára többnyire értelmetlen dolgok lehetnek itt, õ szépen továbbpasszolja majd az Excelnek.
...
release OLEExcel
...

Megismétlem: ez egy nagyon lassú módszer...
#29
Valaki próbált már egy létezõ EXCEL file-ba adatokat irni ?

Ha igen érdekelne

Új excel file-t gond nélkül lehet készíteni.

Esetleg valakinek ötlete ?
Laza
#28
Koszi, mar talaltam...

Online game stream csatorna: http://hu.twitch.tv/lazahun X360 Live GamerTag: LazaHunter; PC BF3: LazaHunter; Diablo 3: LazaHunter#2295; Steam: **Laza**

Laza
#27
Hali all...

Ha vkinek van VFP5-os futtato kornyezet (kb 3 dll), plz linkelje mar be, vagy irjon, ha at tudna kuldeni...
koszi...

Online game stream csatorna: http://hu.twitch.tv/lazahun X360 Live GamerTag: LazaHunter; PC BF3: LazaHunter; Diablo 3: LazaHunter#2295; Steam: **Laza**

PetruZ
#26
Nem pontosan, bár arra is használható (csak fordítva): ahogy írtam, a mérkõzés azonosító plusz a játékosazonosító alkotna még egy új egyedi kulcsot a statisztika táblán (ez garantálja, hogy egy játékos egy mérkõzésen csak egy statisztikai sorral rendelkezzen). A játékosnevek táblán a játékos azonosító természetesen önmagában egyedi kulcs és az kapcsolódik 1:N-el a statisztika táblához.
rushman
#25
Kitûnõ!

...játékos azonosító szintén külön egyedi kulcsot alkotna.

1-N kapcsolattal a tábla azonosító kulcsához?

PetruZ
#24
Még valami: ha szükséges, hogy az egyes fordulókban egy csapat csak egyszer szerepelhessen, akkor a legegyszerûbb megoldás, ha a mérkõzés táblában az egyedi mérkõzésazonosító megmarad, de ezen felül a forduló sorszámából, a mérkõzésazonosítóból és a két csapat azonosítójából egy újabb egyedi kulcsot kell képezni (a forduló dátuma nem jó, mert egy forduló több napon át is tarthat és halasztás is lehet). Ezek összekapcsolása a statisztika táblával *nem* szükséges (nincs is mivel), csak az egyediséget garantálja. Az egyes adatokat a csapatok adattábláival lehet összekapcsolgatni.
PetruZ
#23
Hát, én mondjuk elsõre azt csinálnám, hogy az eredménytáblába elhelyeznék egy egyedi kulcsot (mondjuk egy folytonosan növekvõ szám is jó; unique key index, ha így ismerõsebb). A statisztika táblának ez idegen kulcsa (foreign key) lenne, az eredmény - statisztika között 1:N kapcsolattal. A statisztika táblán ez a mérkõzésazonosító plusz a játékos azonosító szintén külön egyedi kulcsot alkotna.
Így az egyediséget minden esetben le lehet fedni, az adatok összekapcsolása pedig a mérközésazonosító alapján egyértelmû (egy mérkõzéshez több stat sor tartozhat, de mindegyiknek csak egy játékos sora lehet a második unique key miatt). A korlátokról maga az adatbázis gondoskodik a két unique megszorítás miatt.

Pl. (csak nagyon vázlatosan, a konkrét táblastruktúra ismeretében tovább finomítható, csiszolható):
-egy játékos adatai egy adott mérkõzésen: select a.*, b.* from merkozes a, stat b where a.merkozes_id = b.merkozes_id and b.jatekos_id = XXX and a.merkozes_id = YYY;
-egy játékos mely mérkõzéseken játszott: select a.* from merkozes a, stat b where a.merkozes_id = b.merkozes_id and b.jatekos_id = XXX;
És így tovább. A lényeg a két tábla összekapcsolása a merkozes_id alapján, a többi már gyerekjáték.
rushman
#22
Lenne agy kapcsolatos kérdésem, egy labdarúgás hasonlattal élnék, hátha így könnyebben értelmezhetõ:

Egy fordulóban több mérkõzés is lehet, de minden csapat csak egyszer játszhat(mérkõzéseredmények tábla). Egy fordulóban egy csapat több játékosának rögzíthetõ a teljesítménye (gól, gólpassz stb.), de mindegyiknek csak egyszer(játékosstatisztika tábla).

A mérkõzéseredmények és a játékosstatisztikák egy-egy külön táblában vannak tárolva. Ennek a rendszernek a kapcsolatait kellene úgy megoldanom, hogy az említett "törvények" teljesüljenek, és az adatok könnyen lekérdezhetõk legyenek.
Várom a megoldásokat!

PetruZ
#21
Ha ilyet akarsz, azokat a változókat az eljárásokon kívül, a modul fejlécében public-ként kell deklarálni.
rushman
#20
Amint látod, még csak kóstolgatom ezt a dbase elvet...

Arra akartam kijukadni, hogy egy modulon belüli eljárások EGY változót használjanak egy bizonyos adat kezeléséhez. Pl az egyik eljárás feltölti, míg a másik lekérdezi stb. Vagy egy boolean változó értékét több eljárás is figyelhesse ecc.

PetruZ
#19
Valamit keversz: ami leírsz, azt elvileg nem is szabad megengedni és szerencsére nem is mûködik. Akkor lenne még csak nagy balhé, ha az egy modulban szereplõ eljárások látnák egymás változóit. Eljárás public-ként való deklarálásának nincs is értelme, viszont a(z osztály) metódus és az eljárás/függvény a VFP-ben (is) eltér, nem ugyanaz a mûködési mechanizmus!
rushman
#18
Hát ez az! Pont ez a probléma bosszant engem is! Ráadásul még ki sem lehet kapcsolni, illetve kötelezõvé tenni a deklarálást.
Nem értem, ha azt akarom, hogy az 'x' eljárásban szereplõ 'z' változóm értékét 'y' eljárásból le tudjam kérni, ahhoz az 'x' eljárást public-ként kell jelölni?
Nem lett volna egyszerûbb, ha a 'z' változómat public-ként deklarálom?

Egyébként BUÉK!

PetruZ
#17
Hát... elvileg nem kell. De lehet, illetve public változóknál kell is. Egyébként ez a változósdi elég kavarós a FVP-ben, mivel a form objektumok nem látják a külsõ eljárásokon kívüli változókat (csak a public-ként deklaráltakat), de ha pl. egy form metódusból hívsz egy külsõ függvényt, akkor a megegyezõ változónevek bizony azonos adatterületre fognak hivatkozni (hacsak nincsenek külön local-ként deklarálva).

Pl.:
(ez külön prg blokkban, más fájlban)
procedure kulso_eljaras(y)
x=y*10
return

A metódusban meg ez van:
...
x=3
kulso_eljaras(x)
...

Az eredmény? A várakozásoknak "megfelelõen" az "x" értéke 30-ra fog változni... Elég könnyû beleesni ebbe a csapdába, célszerû inkább a külsõ eljárásokon, függvényeken belül a "local" használata.
Sajnos a VFP ezen nagyvonalú lazasága elég bosszantó tud lenni néha, pláne ha azt nézzük, hogy ehhez képest az automatikus konverziók sokszor pont úgy mûködnek, ahogy nekünk éppen nem kell. Különösen a form mezõknél szokott elõjönni ez, ha feldolgozod az értéküket és csak futásidõben (azok a kib* "type mismatch" üzenetek :] ).

Én elsõsorban azért használom a VFP-t, mert a fejlesztéseimben többnyire nagy adathalmazokból, több adatbázisból (Oracle) SQL-lel lehúzott kurzorokkal kell dolgozni, és nagyon jól és gyorsan lehet mókolni, átalakítgatni és összekapcsolni õket. A form kezelõi részét és a vezérlõelemeit viszont nagyon gyatrának érzem, az "igazzy" OOP-tõl majdhogynem idegennek. Arra viszont nincs idõ, hogy kézzel programozzam le az egészet. 😊
rushman
#16
egyébként igazad van, csak a 6-osig volt a visual része, bár én is 6.0 -al "botladozom" éppen.

sajna nics többszázezrem a 8.0-ásra

rushman
#15
arra, hogy a változókat nem kell deklarálni?

olvastam egy szar könyvet a foxpro-ról, és abban a szaki úgy írta az eljárásokat, hogy a kódrészben megnevezett egy változót, majd annak értéket adott, oszt kész. Késõbb ebbõl a változóból hívott értéket.

Sajnos nem tudok példálózni, mert nincs nálam a könyv.

PetruZ
#14
Mire gondolsz pontosan?

Egyébként a VFP már nem tagja a VS családnak (a 6.0 volt az utolsó, ami a VS-ben jelent meg).
rushman
#13
azt nem értem,(legalábbis amit olvastam róla), miért implicit módon szereplenek a változók?

rushman
#11
kézzel, ahhoz szoktam eddig

egyenlõre a függvényekkel barátkozom...
egyébként ez inkább a dbase-hez hasonlít, vagy inkább egyedileg beépített?

.......
érdekes, a visual studio tagja révén furcsa, hogy a nyelv sem a c++-hez, sem a visualbasic-hez nem hasonlít, nem?

rushman
#9
egyértelmû, nem mailozok

bu-bu: elõször csak win9x alatt, az SQLServert egyelõre hanyagolom, de azé' kössz

PetruZ
#7
De csak ha itt kérdezel. A levelezést hanyagoljuk, ismeretlen címrõl le sem töltöm a levelet, rögtön törlöm, a rengeteg spam miatt. 😊
rushman
#6
na az a könyv kifutott, viszont találtam egy foxpro 5.0*6.0 könyvet Gacsó Zoltán nevével fémjelezve. Ezt most tanulmányozom.

PetruZ: Kössz a felajánlást, azthiszem élni fogok vele...

Oldal 1 / 2Következő →