mojaSymfonia FORUM
https://forum.mix-soft.pl/

Scripting.FileSystemObject a Windows 7 (x64)
https://forum.mix-soft.pl/viewtopic.php?f=15&t=4135
Strona 1 z 1

Autor:  qres [ 2012-08-31, 13:50 ]
Tytuł:  Scripting.FileSystemObject a Windows 7 (x64)

Witam
Symfonia FKP 2012a, Windows 7 (x64)
problem ze skryptem:
Kod:
#define    fsoForReading    1
#define    fsoForWriting    2
#define    fsoForAppending    8

dispatch fso = "Scripting.FileSystemObject"
dispatch f

String bi_katal = Katalog()
String bi_katTmp = ""

int sub PrzelEleNaPlik( int bi_param1)
   Select Case bi_param1
      Case 0

      Case 1
         //debugger
         //Otwarcie nowego pliku
      Case 2

bi_katTmp = bi_katal+"bi2bank\\Paczka.tmp"
f = fso.OpenTextFile(bi_katTmp,fsoForAppending)

         f.WriteLine("arg0:")
         f.WriteLine("")
         f.WriteLine("")
         f.WriteLine("arg1:")
         f.WriteLine("arg2:")
         f.WriteLine("arg3:"+arg3)
         f.WriteLine("arg4:"+arg4)
         f.WriteLine("arg5:"+arg5)
         f.WriteLine("arg6:"+arg6)
         f.WriteLine("arg7:"+arg7)
         f.WriteLine("arg8:"+arg8)
         f.WriteLine("arg9:"+arg9)
         f.WriteLine("-*-*-*-*-*-*-*-*-" + bi_katTmp)
      f.Close()
      Case Else
   EndSelect
   
endsub


Powyższy skrypt wywoływany jest cyklicznie w raporcie z rozrachunków, dopisując informacje zawarte w argumentach od arg0, do arg9.
Na maszynach z XP (x32) pracuje prawidłowo, znaczy się otwiera i dopisuje dane do "PACZKA.TMP",
natomiast na rzeczonej albo wygeneruje jedną pozycję, nie zrobi nic, lub czasu do czasu wygeneruje błąd o niemożności otwarcia tego pliku(paczka.tmp).
Nie za bardzo wiem co z tym "fantem" zrobić :[
PS.
Użytkownik zalogowany na tej maszynie ma full uprawnień.
Edit.
zapomniałem dodać: instalacja wielostanowiskowa, serwer to XP PRO (x32), bez Pervasiv'a
(Jest sposób aby zainstalować stacje roboczą na kompie z x64 bez Pervasiv'a na serwerze)

Autor:  rafal [ 2012-09-02, 07:34 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Raport wykonywany jest jak rozumiem np. dla kilku pozycji w oknie rozrachunki?

Czy dla każdej pozycji otwierasz i zamykasz plik paczka.tmp czy otwierasz go na początku raportu, wykonujesz do niego zapisy i na końcu go zamykasz?

Autor:  qres [ 2012-09-02, 13:11 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Skrypt "wywoływany" jest ze zmodyfikowanego, standardowego raportu z kartoteki rozrachunków, dlatego też dla każdej pozycji jest otwarcie,dopisanie pozycji i zamknięcie

.....
f.WriteLine("arg9:"+arg9)
f.WriteLine("-*-*-*-*-*-*-*-*-" + bi_katTmp)
f.Close()
.......

Autor:  rafal [ 2012-09-02, 18:50 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Zrób

Kod:
f = fso.OpenTextFile(bi_katTmp,fsoForAppending)


w pętli po pozycjach

Kod:
.....
f.WriteLine("arg9:"+arg9)
f.WriteLine("-*-*-*-*-*-*-*-*-" + bi_katTmp)
.......


a na końcu raportu

Kod:
f.Close()


i zobacz jak to zadziała

Autor:  qres [ 2012-09-02, 23:35 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Jutro to sprawdzę.
Tylko dalej nie mogę pojąć dlaczego toto działa na XP a na WIN7 nie za bardzo.
Chyba że tu chodzi o "szerokość architektury", na 32 bitach działa a na 64 nie :[.
Niestety nie mam na czym sprawdzić, nie mam do dyspozycji ani WIN7 (x32) ani XP (x64)

Autor:  Jarek75 [ 2012-09-03, 08:30 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Byłoby ciekawiej jakbyś zamieścił tu jakiś kompletny raport, który u Ciebie nie działa. Wtedy można by potestować na różnych środowiskach. Ten niestety nic nie robi i stwierdzam, że to nic robi prawidłowo na Win7 64 :)

Ok, poszedłem krok dalej i rozszerzyłem Twój raport o zrobienie 1 przelewu. Nie działa. Nie wiem, czy czytałeś dokumentację do funkcji OpenTextFile, ale wynika z niej, że domyślnie nie tworzy nowego pliku, ani katalogu. Jak utworzę ręcznie plik Paczka.tmp w odpowiednim miejscu, to zapełnia go danymi 100 przelewów bez przeszkód.

Sugestia 2: sprawdź, czy Twój oryginalny raport zadziała prawidłowo na dysku C.

Autor:  Jarek75 [ 2012-09-03, 09:33 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Poprawniejszy link do dokumentacji fso.OpenTextFile. Tamten był do tej samej funkcji, ale w innym kontekście. Choć parametry chyba i tak te same.

No i zawsze można też użyć Excela, potem Alt-F11 / Tools / References / Windows Script Host i znaleźć odpowiednią funkcję w Object Browserze.

Autor:  qres [ 2012-09-03, 09:48 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

@Jarek75
paczka.tmp istnieje PRZED uruchomieniem skryptu. Po raz któryś nadmieniam iż na systemie XP funkcjonuje prawidłowo, ten skrypt działa na 6 różnych instalacjach, tak jedno jak i wielostanowiskowych :)

skrypt wywoływany jest ze zmodyfikowanego standardowego skryptu "//1000,"rozrachu.sci","rozrachu.sci",2.15,SYSTEM"
w linii 266 i 267 dodano:
arg7 = kwota( kw )
PrzelEleNaPlik( 2 ) //by bi

oczywiście wcześniej dodano stosowne deklaracja i odwołania

Autor:  qres [ 2012-09-03, 15:01 ]
Tytuł:  Re: Scripting.FileSystemObject a Windows 7 (x64)

Problem rozwiązany połowicznie.
Na zasobach lokalnych , znaczy się na dyskach NIE SIECIOWYCH działa prawidłowo :)
Natomiast nie mam pomysłu czemu w sieciowych lokalizacjach taka kicha panuje. Prawdopodobnie jakieś "zamieszanie" panuje w buforowaniu. :/
Jak sądzę z samym WIN7 będę musiał się zmierzyć (nie bezpodstawnie nosi toto nick WINGROZA :[ )

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/