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

Zmienne globalne
https://forum.mix-soft.pl/viewtopic.php?f=15&t=1075
Strona 1 z 1

Autor:  Benji_Pete [ 2009-08-06, 16:29 ]
Tytuł:  Zmienne globalne

Czy istnieje coś takiego jak zmienne globalne (Symfonia Forte 2006). Potrzebne by mi były do sterowania, gdyż w momencie skończenia raportu już nie ma dostępu do zmiennych.
Przykładem niech będzie wydruk WZ. Symfonia drukując kopię wywołuje raport jeszcze raz od początku a chodzi o to, żeby coś z działania poprzedniego raportu zapamiętać.

Dzięki z góry.

Autor:  wrob [ 2009-08-06, 16:35 ]
Tytuł: 

Zapisz sobie do ini albo do rejestru :)

Autor:  Benji_Pete [ 2009-08-06, 16:37 ]
Tytuł: 

Mam taki przypadek, że niestety ale do Ini nie zapisuje. U mnie ten sam kod do ini zapisuje bez problemu. Czy można jakoś zablokować takie zapisywanie?

Druga sprawa. W jaki sposób do rejestru

PS. Oczywiście piszę w AmBasic

Autor:  wrob [ 2009-08-06, 18:22 ]
Tytuł: 

Mozna - wystarczy nie miec praw do katalogu w ktrym to ini zapisujesz

Autor:  Benji_Pete [ 2009-08-06, 19:40 ]
Tytuł: 

zgadza się, ale to chyba w przypadku Premium. W Forte wszystko się zapisuje w bazie SQL w tabeli INIFILE - wiem, bo sprawdzałem :-)

Autor:  barnie [ 2009-08-06, 22:07 ]
Tytuł: 

Benji_Pete pisze:
Druga sprawa. W jaki sposób do rejestru

PS. Oczywiście piszę w AmBasic


Kod:
dispatch r = "WScript.Shell"

// odczyt z rejestru np:. katalog instalacji Handlu PREMIUM
print r.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Symfonia\\HMP\\Path")

// zapis do rejestru
r.RegWrite ("HKEY_LOCAL_MACHINE\\SOFTWARE\\Symfonia\\HMP\\Test", "Test", "REG_SZ")

Autor:  Jarek75 [ 2009-08-07, 08:31 ]
Tytuł: 

Teoretycznie tak. Ale jesteś w stanie zastosować to praktycznie?

Zazwyczaj raport działa tak:
1. odczyt wartości z rejestru
2. w przypadku braku - narzucenie domyślnej

Gdy spróbujemy czytać klucz, którego nie ma - wyrzuci nas z programu.

Z tego co wiem, to wskutek braku obsługi błędów w ambasic zapis/odczyt rejestru jest niemożliwy.

Do autora wątku: zapisuj sobie INI w ustalonym przez siebie katalogu (ostatni parametr komend GetIni/PutIni)

Autor:  barnie [ 2009-08-07, 13:16 ]
Tytuł: 

Jarek75 pisze:
Gdy spróbujemy czytać klucz, którego nie ma - wyrzuci nas z programu.

Z tego co wiem, to wskutek braku obsługi błędów w ambasic zapis/odczyt rejestru jest niemożliwy.


u mnie zapis i odczyt z rejestrów działa poprawnie z poziomu ambasica.
nie zapiszesz jedynie do kluczy do których nie masz prawa dostępu.

Autor:  Benji_Pete [ 2009-08-11, 14:07 ]
Tytuł: 

Owszem, przy kluczu nie istniejącym niestety, ale wywala błąd.

Zrobiłem to tak:

w OnTimer - procedurze OnOpen zapisuje ten klucz domyślną wartością (pusty string).
Po działaniu raportu na oryginale (przed drukiem) sprawdzam, czy analizowany dokument to kopia, czy oryginał. Jeśli oryginał to zapisuje do rejestru. Jeśli to Kopia (czyli późniejsze działanie) odczytuje klucz.
'

Autor:  Jarek75 [ 2009-08-13, 09:27 ]
Tytuł: 

OnTimer - sprytne, choć to strzelanie z armaty do jeża. Lepsze pliki INI.

Chyba możesz rozwiązać to prościej, bez inicjalizacji:
Kod:
if bOryginal then PiszDoRejestru
if bKopia then CzytajZRejestru


bOryginal i bKopia jakoś da się zrobić, skoro wydruk oryginalny to potrafi.
Jeżeli użytkownik zawsze robi najpierw oryginał, to nic brzydkiego się nie zdarzy.

Zauważ jeszcze, że ciąg używany przy dostępie do rejestru może się kiedyś zmienić, bo firma zmienia nazwę co parę lat :)

Autor:  Benji_Pete [ 2009-08-13, 09:53 ]
Tytuł: 

Przy OnTimer to nie typowe OnTimer tylko w OnOpen, czyli za każdym otwarciem zapisuje pusty string do rejestru.
Muszę zapisać cokolwiek żeby móc odczytać, bo jak spróbuję odczytać klucz, który nie istnieje to wywali błąd.

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