Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

MS Word 2000-2007 automatizacija - potrebna pomoć

[es] :: .NET :: MS Word 2000-2007 automatizacija - potrebna pomoć

[ Pregleda: 2615 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

surferxyz

Član broj: 45411
Poruke: 55
..tic.rb.b.2-1.218.bih.net.ba.



Profil

icon MS Word 2000-2007 automatizacija - potrebna pomoć18.08.2008. u 10:09 - pre 190 meseci
Pozdrav svima.
Prvo bih napomenuo da nemam nikakvog iskustva u automatizaciji office-a, pa je bilo kakva pomoć dobrodošla. Stoga hvala svima onima koji budu pružili barem spam komaentar ;-)

Problem je sledeći.
Imamo razvijenu aplikaciju u .net-u.
Potrebno je implementirati mogućnost da korisnik sam sebi kreira šablone u wordu, na osnovu kojih će aplikacije generisati određene dokumente (uzeti šablon, popuniti ga podacima i servirati ga korisniku).

Šablon bi bio obični .doc koji bi izgledao nešto kao:
bla bla bla %IME I PREZIME% bla bla bla %ADRESA% bla bla bal %NEŠTO% ...

Pristup Find-Replace teksta bi bio sasvim ok al mi se ne sviđa zbog velike mogućnosti greške kod izrade šablona.

Ono što bih ja volio jeste da dodam neki custom toolbar/menu u word koji bi u dokument dodavao NEŠTO što bi predstavljalo podatke koje aplikacija treba da zamjeni sa stvarnim podacima. Aplikacija bi posle uzimala šablone, potom to NEŠTO zamjenila sa stvarnim podacima i servirala korisniku.

Moje pitanje je šta da koristim za to NEŠTO.
Dodatan problem stvara želja da to NEŠTO radi sa verzijama worda od 2000 do 2007.
Isto tako me brine deployment aplikacije ako ne znam koja verzija worda me čeka kod korisnika.

Svaki savjet, članak, link je dobrodošao.
U svakom slučaju hvala vam što ste pročitali ovu poruku :)


 
Odgovor na temu

Cola
Slađan Čolić
Banja Luka

Član broj: 23736
Poruke: 160
*.broadband.blic.net.

Sajt: www.knjigaimena.com


+5 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 16:26 - pre 189 meseci
POgledaj ovde na ovom linku

http://www.c-sharpcorner.com/U...cumentfrom.NETUsingCSharp.aspx

za dokument ti preporučujem da koristiš .dot

Ja sam problem pokušao rešiti sa bookmarcima njih možeš naći međutim, ili nisma skontao, ili stvarno ne može da se bookmark sa istim imenom ponovi više puta u dokumentu tako da ako neku vrednost npr IME treba za zalepim na dva mesta nisam mogao jer ne mogu da postavim dva ista bookmrka
 
Odgovor na temu

Catch 22

Član broj: 148083
Poruke: 6176
93.86.80.*



+21 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 17:54 - pre 189 meseci
Custom toolbar, može da se sačuva u okviru podrazumevanog template, koji se koristi za svaki novi dokumenat (normal.dot).
Svojevremno sam neki svoj custom toolbar, zajedno sa ostalim postavkama (margine, default font...) selio na razne računare kopirajući svoj normal.dot preko postojećeg, pre pokretanja Worda. Cela stvar je bila "automatizovana" pomoću samoraspakujućeg winrar exe fajla. Kompatibilnost sa različitim verzijama MS Office jedino podrazumeva tačnu lokaciju normal.dot fajla za svaku verziju MS Office, pošto lokacije nisu iste...

Nadam se da će ti ovaj "spam" pomoći!

 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-3.sezampro.yu.



+395 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 17:57 - pre 189 meseci
Templejti moraju biti predefinisani i korisnik ne bi trebalo da ih menja tj. da ih rucno edituje .
Veoma je tesko napraviti da korisnik sam napravi template a da tvoja aplikacija provali o kojim poljima je rec ,
mozda moze uz neki Word plug-in ili custom toolbar pa da aplikacija preko njega komunicira i dobije informacije o raspolozivim poljima
koje treba popuniti .
Najbolje je da koristis bookmarke koje ces referencirati sa nekim imenom , a posle u kodu da uradis search and replace.
Otprilike ovako nesto, davno sam pisao kod za automatizaciju worda pa se ne secam svih detalja
Code:
 
  Private oAppWord As Microsoft.Office.Interop.Word.ApplicationClass 
   
  oAppWord = New Microsoft.Office.Interop.Word.ApplicationClass

  ' otvaras read-only dokument 
  oAppWord.Documents.Open("C:\template.doc", missing, True, missing, missing, missing, missing _
                                            , missing, missing, missing, missing, visible)

  Dim missing As Object = System.Reflection.Missing.Value
  Dim Bookmark As Object = WdGoToItem.wdGoToBookmark
  Dim name As Object = "NESTO" 
  oAppWord.Selection.GoTo(Bookmark, missing, missing, name )
  oAppWord.Selection.Text = "Neki drugi string" 



Viva lollapalooza
 
Odgovor na temu

Cola
Slađan Čolić
Banja Luka

Član broj: 23736
Poruke: 160
*.broadband.blic.net.

Sajt: www.knjigaimena.com


+5 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 18:07 - pre 189 meseci
Ok ali šta ako postoji potreba da se u okviru jednog templejta nađe jedno polje na više mesta?
Čini mi se da sa bookmarcima to ne možeš jer jedan bookmark jedno ime
a bilo bi glupo da za jedno polje postoje bookmarci sa različitim imaenima za jedno te isto polje
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 18:26 - pre 189 meseci
Citat:
Cola: Ok ali šta ako postoji potreba da se u okviru jednog templejta nađe jedno polje na više mesta?
Čini mi se da sa bookmarcima to ne možeš jer jedan bookmark jedno ime
a bilo bi glupo da za jedno polje postoje bookmarci sa različitim imaenima za jedno te isto polje

Onda koristis Field-ove u wordu a ne bookmarke ..
Code:
 
Private oDoc As Document 
oDoc = oAppWord.Documents.Open(FolderPath & strPath, missing, readon, missing, missing, missing, missing _
                                           , missing, missing, missing, missing, visible)
Dim i as Integer 
For i = 0 To 10 
oDoc.Fields.Item(1).Select()
oAppWord.Selection.TypeText("Nesto sasvim isto") 
Next


Kolko se secam u tom slucaju sekvencijalno popunjavas polja,zato je Item index uvek 1
tj, moras da popunjavas polja onim redom kojim su uneti u dokument.
Treci nacin nisam provalio pa bi voleo da vidim neko resenje ....



Viva lollapalooza
 
Odgovor na temu

Cola
Slađan Čolić
Banja Luka

Član broj: 23736
Poruke: 160
*.broadband.blic.net.

Sajt: www.knjigaimena.com


+5 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć15.09.2008. u 21:40 - pre 189 meseci
kako misliš Fildove? Šta je Field u word? sad sam tražio ali isam našao
Da li pod zim smatraš neki slobodan text ili nešto drugo

PS Evo jedva nađo u Field u MS Office Word-u 2007
Hoćeš da kažeš da ne možeš da tražiš po imenu Fielda?
Pa ako ideš redom jel možeš da po nečemu razlučiš neku razliku tj da znaš šta treba upisati u to polje da mu postaviš neštp tipa NAME ili bilo šta drugo?
Npr ideš redom kupiš ih i vidiš taj NAME i zamjeniš ga sa odgovarajućom vrijednošći?

Ako ne možeš to onda automaticzacija nema smisla jer bi onaj ko pravi trmplejt trebao da zna redosled po elemenata koji se upisuju, a to baš i nema smisla jer bi templejt trebao da bude napravljen po proizvoljnom redosledu elemenata

[Ovu poruku je menjao Cola dana 16.09.2008. u 09:17 GMT+1]
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
89.110.193.*



+395 Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć16.09.2008. u 09:19 - pre 189 meseci
Citat:
Cola
Ako ne možeš to onda automaticzacija nema smisla jer bi onaj ko pravi trmplejt trebao da zna redosled po elemenata koji se upisuju, a to baš i nema smisla jer bi templejt trebao da bude napravljen po proizvoljnom redosledu elemenata
[Ovu poruku je menjao Cola dana 16.09.2008. u 09:17 GMT+1]


A kako mislis da bi trebalo napraviti da korisnik sam pravi templejt i da polja u njemu vezuje sa nekim poljima tj. kolonama u bazi podataka npr.
a da to bude user-friendly interfejs i da bude lak za koriscenje ?

U tom slucaju trebalo bi da u wordu ponudi relacionu semu baze podataka ili neku tabelu iz programa
pa da korisnik bira polje iz te tabele koje ce da se vezuje za field ili bookmark u doc-u ?

Ne kazem da je nemoguce , nego mi se cini kao komplikovan zadatak sa neizvesnim ishodom ...





Viva lollapalooza
 
Odgovor na temu

surferxyz

Član broj: 45411
Poruke: 55
..tic.rb.b.2-1.218.bih.net.ba.



Profil

icon Re: MS Word 2000-2007 automatizacija - potrebna pomoć16.09.2008. u 10:22 - pre 189 meseci
Sve ovo što spominjete sam prošao, i svaki pristup ima svojih prednosti i svojih mana.
Najveći problem je kompatibilnost sa svim verzijama worda.

Najvjerovatnije ću iskoristiti kontrolu sa http://www.codeproject.com/KB/miscctrl/winwordcontrol.aspx.
to mi omogućava da word prikažem i kontrolišem unutar svoje forme ne razmišljajući o verziji. Jedini problem je u slučaju exceptiona ostaje proces koji uzima 100% procesorskog vremena.

Bookmarci su otpali zbog mnogo razloga.
Korisnik će prilikom kreiranja templatea dodavati fildove u word dokumet
Code:

Word.Selection wrdSelection=WordApplication.Selection;
WordDocument.MailMerge.Fields.Add(wrdSelection.Range,FieldName );


Prilikom generisanja dokumenta aplikacija prolazi kroz sve fieldove i mjenja ih sa vrijdnostima
Code:

foreach(Word.Field myMergeField in WordDocument.Fields)
    {
                myMergeField.Select();
                string fieldtext=myMergeField.Code.Text;

                if (fieldtext.IndexOf(FieldName)>-1)
                {
                    WordApplication.Selection.TypeText("Vrijednost bbiVar0");
                }
    }
    
 
Odgovor na temu

[es] :: .NET :: MS Word 2000-2007 automatizacija - potrebna pomoć

[ Pregleda: 2615 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.