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.

3

Re: Tablodan var olan excel shhetine kopyalama

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

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

Re: Tablodan var olan excel shhetine kopyalama

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

Visual Fox Pro
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
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.

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 Son düzenleyen, konuka (10.09.2009 15:30:18)

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
EXPORT TO &xdosya XL5 NEXT 1


cursor için

Visual Fox Pro
SELECT * FROM mycursor INTO ARRAY geçici

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

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 Son düzenleyen, konuka (27.09.2009 14:00:26)

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.

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.

13

Re: Tablodan var olan excel shhetine kopyalama

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