ďťż

JavaScript, ActiveX i wywolanie macra MS Word

       

Podstrony


telcocafe

Witam.

Potrzebuja za pomoca JS otworzyc worda, i odpalic konkretne macro (ktore drukuje dana strone do domyslnej drukarki).

Na chwile obecna ma takie cos:
function print_CM1000()
{

var word=new ActiveXObject('Word.Application');
var docText;
var obj;
if (word != null)
{
word.Visible = false;
obj=word.Documents.Open("P:\\Dept\\qa\\SPM1000_NEW.doc");
word.Run('CM1000_Austria');
word.Quit();
}

}

sek w tym ze nie chce pisac 20 funkcji dla kazdego macra osobno, potrzebowalbym cos na wzor:

function print_CM1000(name)
{

var word=new ActiveXObject('Word.Application');
var docText;
var obj;
if (word != null)
{
word.Visible = false;
obj=word.Documents.Open("P:\\Dept\\qa\\SPM1000_NEW.doc");
word.Run('name');
word.Quit();
}
}

tak, ze do buttona, przypisuje tylko funkcje z parametrem, np.print_CM1000(Austria)

oczywiscie powyzsza wersja nie dziala, inaczej nie prosilbym o pomoc
jak przerobic ta funkcje?
wszelka pomoc mile widziana




word.Run('name');
Wydaje mi się, że wystarczy usunąć z tej linijki apostrofy, czyli takword.Run(name);Oczywiście zmienna name musi przechowywać całą nazwę makra, ewentualnie coś w tym stylu word.Run('CM1000_'+name); jeżeli name zawiera tylko Austria
Użytkownik imcpan edytował ten post 13 lipiec 2010, 09:09
Probowalem obie wersje, niestety nie dzialaja. W IE dostaje tylko "Error on page" na pasku statusu, w FF nic sie nie dzieje:(

W Firefoksie tego nie zrobisz, ponieważ ActiveX to kontrolka używana tylko przez IE (w dodatku bardzo niebezpieczna).

Co do działania, to przydałoby się objąć w apostrofy wszystkie stringi, czyli dla zdarzenia onclick (czy czego tam używasz) robisz print_CM1000('Austria').




Probowalem obie wersje, niestety nie dzialaja. W IE dostaje tylko "Error on page" na pasku statusu, w FF nic sie nie dzieje:(
Pokaż fragment kodu w którym wywołujesz funkcję print_CM1000(name)


Pokaż fragment kodu w którym wywołujesz funkcję print_CM1000(name)

<a href="javascript:print_CM1000(CM1000_Austria);">Austria</a>

dziala gdy uzyje funkcji bez parametrow ze zdefiniowana nazwa macra w funkcji - print_CM1000()
Użytkownik topper edytował ten post 14 lipiec 2010, 08:09
To ja się może powtórzę, bo mnie nie widać jak sądzę.

Co do działania, to przydałoby się objąć w apostrofy wszystkie stringi, czyli dla zdarzenia onclick (czy czego tam używasz) robisz print_CM1000('Austria').

function print_CM1000(name) { var word=new ActiveXObject('Word.Application'); var docText; var obj; if (word != null) { word.Visible = false; obj=word.Documents.Open("P:\\Dept\\qa\\SPM1000_NEW.doc"); word.Run('CM1000_'+name); word.Quit(); } }

Hmmm, nie dziala. Dostaje komunikat ze zmienna nie jest zdefiniowana. 'Austria' is undefined. ??? Jak zdefiniowac parametr w funkcji?

Regula jest ponizsza, jesli sie niemyle:

function funkcja(parametr)
{
jakas tam ciag instrukcji, np:
document.write parametr;
}

a pozniej wywolam

funkcja(teks);

to powinno dzialac, nie?

czyzbym pomijal jakis podstawowy szczegol przy definiowaniu, jak tak to jaki?

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.