1

Konu: MS Word 'a cursordaki alanı yollamak.

Selam Arkadaşlar.
Ben bir uygulamada ms wordda yazılımış bir .doc dosyasını tablolara (fox) general olarak yazdırıp daha sonra MS sql servere atıp. istediğim zaman geri alıyorum
ama bir sorunum var bu dosyayı sql serverdan aldığımda yada foxta cursorda general alanda iken word programına yollayamıyorum.

Yardımcı olursanız sevinirim.

2

Re: MS Word 'a cursordaki alanı yollamak.

General field kullanma. Dosyanin kendisini sakla illa saklayacaksan.

3

Re: MS Word 'a cursordaki alanı yollamak.

Çetin'in düşüncesine katılmakla beraber illa kullanmak istersende

Visual Fox Pro
Select TabloAdi

Append Blank
Append General gSahaAdi From "C:\DosyaYolu\DosyaAdi.doc"
*!* veya
*!* Append General gSahaAdi From "C:\DosyaYolu\DosyaAdi.doc" Link
/o---------------------o\
     www.haser.com
\o---------------------o/

4

Re: MS Word 'a cursordaki alanı yollamak.

taRKan yazdı:

Çetin'in düşüncesine katılmakla beraber illa kullanmak istersende

Visual Fox Pro
Select TabloAdi

Append Blank
Append General gSahaAdi From "C:\DosyaYolu\DosyaAdi.doc"
*!* veya
*!* Append General gSahaAdi From "C:\DosyaYolu\DosyaAdi.doc" Link


Tarkan bey ben bu işlemi yapıyorum benim için asıl sorun, bu işlemi taptıktan sonra yani tabloadi.sahaadi general alanına c:\dosyaadi.doc  dosyasını yolladıktan sonra  başlıyor bu dosyayı bu alandan tekrar eski haline nasıl getirebilirim bu alandaki veriyi rapor ekranına dökmeye çalıştığımda bana sadece 1 sayfasını basıyor. ya bu veriyi tam olarak rapor sayfasında yazdırabilmeliyim veya bu alandaki veriyi tekrar word a  açtırmalıyım ki (bu bence daha iyi olur)  kullanıcı ister yazdırsın ister kendi pc sine kopyalasın ben bunu istiyorum. worda yollamaya çalıştım ama başaramadım. Bu konuda yardımcı olabilirseniz sevinirim.

Not: bu arada Cetin beyin önerdiği İşlemi anlayamadım dosyanın kendisini nasıl saklayabilirim. SQL server datasında. ben dosyayı general alana Çekip sunucuya atıp istediğim zaman çekiyorum ama geri açamıyorum şimdilik :)

Çetin beyin farklı bir yöntemi varsa onuda denemek istiyorum. bu projede ben haberleşme amaçlı bir yazışma programı yazıyorum fakat yazışmalarda kullanıcılar benim alanıma yazdıkları veri dışında EK dosyaları word, excel Power point...vs. dosya olarak sisteme eklememi istiyorlar ben ona uğraşıyorum.

5

Re: MS Word 'a cursordaki alanı yollamak.

Çetin'in kastetiği ve bizim de uyguladığımız şey şu;
Kullanıcı istediği word dosyasını seçtiğinde bu seçilen word dosyasını server'da bize ait olan bir klasör altına kopyalamak. tablomuzda ise bu kopyalanan yerin adresini tutmak. Bu durumda kullanıcı o dosyayı istediğinde biz dosyanın adresini bildiğimizden o adresten dosayı açıyoruz.

/o---------------------o\
     www.haser.com
\o---------------------o/

6

Re: MS Word 'a cursordaki alanı yollamak.

taRKan yazdı:

Çetin'in kastetiği ve bizim de uyguladığımız şey şu;
Kullanıcı istediği word dosyasını seçtiğinde bu seçilen word dosyasını server'da bize ait olan bir klasör altına kopyalamak. tablomuzda ise bu kopyalanan yerin adresini tutmak. Bu durumda kullanıcı o dosyayı istediğinde biz dosyanın adresini bildiğimizden o adresten dosayı açıyoruz.


çetin in bunu sql server için tavsiye ettiğini sanmam. sonuçta sql server ı bir sürücü olarak görmeyebilirsin bile. BLOB data tipini kullanmalısın. BLOB bunun için özel yapıldı.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

7

Re: MS Word 'a cursordaki alanı yollamak.

Benim kastettigim general field yerine memo veya BLOB alanında saklamandı. Memo ve BLOB icerigi disktekiyle birebir aynı ve SQL serverda da rahatlıkla binary data olarak saklanıyor.

8

Re: MS Word 'a cursordaki alanı yollamak.

Arkdaşlar Yardımınız ve ilginiz için size sonsuz teşekkürler.

cetin hocam sizin dediğiniz gibi cursorda deneme.alan memo alanına
append blank
APPEND MEMO deneme.alan FROM "c:\deneme.doc"

dedim ve memo alana deneme.doc dosyasını kaydettim.
ben ornek olan dbf i ve deneme.doc dosyasını size yolluyorum.
benim merak ettigim deneme.alan memo alanındaki bu veriyi MS worda nasıl programdan açtırırım.
deneme.doc
deneme.dbf
deneme.fpt
http://rapidshare.com/files/24571193/deneme.zip
amacım
farklı bir landa kaydettiğim datanın türünüde saklayıp
doc sa worda xls ise excel e ppt,pps ise power pointe açtırabilmek.
yardımlarınız için şimdiden teşekkürler.

9

Re: MS Word 'a cursordaki alanı yollamak.

Onun icin zip'i indirmeme gerek yok. Kabaca:


declare integer ShellExecute in ...
use deneme
lcTempFileName = forcepath( forceext( sys(2015), trim(deneme.FileExtension) ), sys(2023) )
StrToFile( deneme.DosyaMemo, m.lcTempFileName )
ShellExecute(0,'Open', m.LcTempFileName, 0,0,1)

Bu seninle ilgisi olamayan acislar icin uygun (yani sadece ac ve word vsde ver ne yaparsa yapsin).

Otomasyon ile kontrol edip edit edilmis halini istiyorsan biraz daha ugrasman gerekecek ve dosya tipine gore farkli otomasyon kontrol kodlarin olmasi gerekiyor o zaman.

10

Re: MS Word 'a cursordaki alanı yollamak.

metin yazdı:
taRKan yazdı:

Çetin'in kastetiği ve bizim de uyguladığımız şey şu;
Kullanıcı istediği word dosyasını seçtiğinde bu seçilen word dosyasını server'da bize ait olan bir klasör altına kopyalamak. tablomuzda ise bu kopyalanan yerin adresini tutmak. Bu durumda kullanıcı o dosyayı istediğinde biz dosyanın adresini bildiğimizden o adresten dosayı açıyoruz.


çetin in bunu sql server için tavsiye ettiğini sanmam. sonuçta sql server ı bir sürücü olarak görmeyebilirsin bile. BLOB data tipini kullanmalısın. BLOB bunun için özel yapıldı.


Bu söylediğimin SQL server'la bir alakası yok. Dosyaları bir table'da tutmak (SQL veya VFP database'i) çok kullanışlı değil bence. Öyle word dosyaları veya excel dosyaları var ki birbirleri ile etkileşimli bir dosyayı açtın mı diğerlerini de açman gerekiyor hatta bu belgelerin içinde açacağı dosyaların tam adresi olduğu için o adres içinde o dosyayı bulması gerekiyor. Bu tür işler her zaman sıkıntı yaratıyor.

/o---------------------o\
     www.haser.com
\o---------------------o/

11

Re: MS Word 'a cursordaki alanı yollamak.

Akadaşlar yardımlarınıza çalıştı sonunda smile
Yardımlarınız için sonsuz teşekkürler.

Son hali
**************************************************************
*ac.prg
DECLARE INTEGER ShellExecute IN shell32.dll ;
    INTEGER hndWin, ;
    STRING cAction, ;
    STRING lcTempFileName, ;
    STRING cParams, ;
    STRING cDir, ;
    INTEGER nShowWin

use deneme
lcTempFileName = forcepath( forceext( sys(2015), trim(deneme.uzanti) ), sys(2023) )
StrToFile( deneme.alan, m.lcTempFileName )
cAction = "open"
ShellExecute(0,cAction,m.lcTempFileName,"","",1)

*************************************************************************

12

Re: MS Word 'a cursordaki alanı yollamak.

2 tane word file'ını birleştirip kaydedebilmenin bir yolu var mı acaba ?
a.doc file'ına b.doc ekleyerek c.doc oluşturabilir miyiz.
Table felan kullanmaya gerek yok sadece 2 word file'ını arka arkaya eklemekten bahsediyorum. Hatta 3. oluşan word file'ında 2 file içeriği arasına bir de pagebreak konabilir mi?

13

Re: MS Word 'a cursordaki alanı yollamak.

Visual Fox Pro
#Define wdCollapseStart    1

#Define wdCollapseEnd    0
#Define wdPageBreak    7
 
m.lcDoc1 = Getfile('doc')
m.lcDoc2 = Getfile('doc')
lcSaveAs = 'c:\Temp\Yeni.doc'
 
oWord=Createobject('Word.Application')
With oWord
  .DisplayAlerts = .F.
  .Documents.Open(m.lcDoc1)
  .ActiveDocument.Content.Select
  .Selection.Collapse(wdCollapseEnd)
  .Selection.InsertBreak(wdPageBreak)
  .Selection.InsertFile(m.lcDoc2)
  .Visible = .T.
  .ActiveDocument.SaveAs(m.lcSaveAs)
  .ActiveDocument.Saved = .T.
  *.Quit
Endwith

14

Re: MS Word 'a cursordaki alanı yollamak.

Çok teşekkürler Çetin Hocam.