1

Konu: Tablodan var olan excel shhetine kopyalama

Arkadaşlar, bir vfp tablosundaki dataları tek tek aktarmadan var olan bir excel dosyasındaki sheetlerden bir tanesinin içine aktarabiliyor muyuz.
Örneğin 2. sheetin içeriğinin o tablodaki bilgilerle dolmasını nasıl sağlayabiliriz.

2

Re: Tablodan var olan excel shhetine kopyalama

VFP2Excel diye burada ara.  O fonksiyonu ornekleriyle beraber defalarca gondermis olmam lazim.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

3

Re: Tablodan var olan excel shhetine kopyalama

Evet hocam gördüm, AdoDB kullanmadan da yapılabilir mi acaba.

4

Re: Tablodan var olan excel shhetine kopyalama

Hazır Çetin tembellik yaparken onun bilgilerini satayım

Visual Fox Pro
1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
m.xdosya=SYS(5)+SYS(2003)+"\dosyaad.xls"

IF 6=messagebox("bilgisayarda Excel programı yüklü ve"+CHR(13)+CHR(13)+m.xdosya+CHR(13)+"DOSYASI KAPALI OLMALIDIR !!!",292,"D İ K K A T ")
SET SAFE OFF
EXPORT TO &xdosya XL5 NEXT 1 FIEL tarih  && tarih açık olan dbfnin bir alanı, öylesine
SET SAFE ON
 
ThisForm.oExcel = CREATEOBJECT('excel.application')
 
WITH ThisForm.oExcel
.visible=.t.        && göster
.workbooks.open(m.xdosya)    && sayfa ekle
 
 
SELECT * FROM excelolacakDBFdosya INTO ARRAY geçici  && bilgileri geçici diye ARRAY yapıyor
 
m.Xbaşlasira=10   && excelde başlayacağı sıra (örenek olsun diye verdim)
loDataRange = .Range(.Cells(m.Xbaşlasira,1), .Cells(Alen(geçici ,1)+m.Xbaşlasira,Alen(geçici ,2)))
loDataRange.Value =ThisForm.getArrayRef('geçici')
 
ENDWITH
ENDIF
 
***** PROCEDURE getarrayRef (formda Method)
PARAMETERS tcArrayName
Return @&tcArrayName

Son düzenleyen, konuka (10.09.2009 15:31:25)

VFP9 SP2

5

Re: Tablodan var olan excel shhetine kopyalama

AdoDb kullanmadan yapmanin gerekliligini anlamadim. Onsuz yapiliyor tabii N degisik sekilde ama benim su ana kadar buldugum en efektif yontemlerden birisi o.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

6

Re: Tablodan var olan excel shhetine kopyalama

Tam istediğim örnek, çok teşekkürler.

7

Re: Tablodan var olan excel shhetine kopyalama

konuka, Bir şey daha sormak istiyorum. sadece 1 field değil de çok boyutlu dizi olursa nasıl yaparız ?
Bir de direkt Datarange'e dizi gibi cursor de yazdırabiliyor muyuz?

8

Re: Tablodan var olan excel shhetine kopyalama

farketmez. Sadece excel'i tetikleyip boş bir sayfa açıyor aslında.
yanına not düşmüştüm, öylesine diye , kusura bakma kafanı karıştırmışım.
başka bir dosya da olabilir, transfer edeceğin dosya da.
Sadece açık dosyada çok alan varsa hepsini almasın diye öyle kullanıyorum, aşağıdaki de olur:

Visual Fox Pro
1

EXPORT TO &xdosya XL5 NEXT 1


cursor için

Visual Fox Pro
1

SELECT * FROM mycursor INTO ARRAY geçici

yaparsın
madem kodu ciddiye aldın, ben de ufak bir ayrıntıyı düzelteceğim...

Son düzenleyen, konuka (10.09.2009 15:30:18)

VFP9 SP2

9

Re: Tablodan var olan excel shhetine kopyalama

konuka yardımların için çok teşekkürler.

***** PROCEDURE getarrayRef (formda Method)
PARAMETERS tcArrayName
Return @&tcArrayName

böyle bir method veya procedure yazmadan array ismi olan 'gecici' yi programda kullanamıyoruz değil mi ?
İlk defa böyle bir fonksiyonla '@&' karşılaştım.

10

Re: Tablodan var olan excel shhetine kopyalama

sorunu tam anladığımı söyleyemiyeceğim.
bu çözümde herhangi bir array'daki veri excelde önceden belirlenmiş bir range aktarılıyor.
array'ın property (forma özel "public")  olması gerekmez, metod bittiğinde kendiliğinden ortadan kalkıyor - sadece getarrayRef metoduna parametre olarak geçmesi önemli. ::o nedenle geçici adını verdim :]
&: Macro Substitution @ arrayı işaret ediyor
umarım yanıtlayabildim ...belki Çetin daha iyi anlatır.

Son düzenleyen, konuka (27.09.2009 14:00:26)

VFP9 SP2

11

Re: Tablodan var olan excel shhetine kopyalama

& makroyu biliyordum ama @ işaretiyle birlikte kullanıldığını bilmiyordum sadece. @ işaretinin yaptığı işi merak etmiştim.

12

Re: Tablodan var olan excel shhetine kopyalama

@ isareti degeri degil degiskene referansi gonder demek (by referans) demek. Dizilerde referans gondermezsen sadece ilk elemeni gider ve alan yer degistiremez.

@&arrayADI

bir uckagit.


Normalde VFP'de (set UDFparm to ile oynamadiysan):

do BirMetod with degisken

dersen 'degisken' referansla gecer. Ya da:

BirMetod(degisken) && deger gecer - by value

BirMetod(@degisken) && referans gecer - by reference

VFP bunlari destekliyor ama burada herhangi bir destegi yok dogrudan:

.BirCesitDiziProperty = @arrayAdi

bunu yapoabilmek icin o @&arrayAdi numarasi yapiliyor.

Yen yaz 1907'ye yolla FB gelsin evinde yensin.
(sonra salaklar ciksin alin terine şike desin)

13

Re: Tablodan var olan excel shhetine kopyalama

Anladım, çok teşekkürler.