Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-24, 02:08x



Odpowiedz w temacie  [ Posty: 11 ] 
Zmienne globalne 
Autor Wiadomość

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 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.


2009-08-06, 16:29
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
Zapisz sobie do ini albo do rejestru :)


2009-08-06, 16:35
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
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


2009-08-06, 16:37
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2008-04-18, 18:52
Posty: 5169
Pomógł: 59
Post 
Mozna - wystarczy nie miec praw do katalogu w ktrym to ini zapisujesz


2009-08-06, 18:22
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
zgadza się, ale to chyba w przypadku Premium. W Forte wszystko się zapisuje w bazie SQL w tabeli INIFILE - wiem, bo sprawdzałem :-)


2009-08-06, 19:40
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
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")


2009-08-06, 22:07
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2009-03-07, 11:13
Posty: 597
Pomógł: 34
Post 
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)


2009-08-07, 08:31
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2008-04-07, 13:26
Posty: 208
Pomógł: 2
Post 
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.


2009-08-07, 13:16
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
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.
'


2009-08-11, 14:07
Wyświetl profil
Ekspert
Ekspert
Awatar użytkownika

Rejestracja: 2009-03-07, 11:13
Posty: 597
Pomógł: 34
Post 
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 :)


2009-08-13, 09:27
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
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.


2009-08-13, 09:53
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 11 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Cechy globalne w symfonia handel

w Programowanie

arnoldinho

7

3515

2017-06-08, 13:17

arnoldinho Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Zmienne w Handlu

w Programowanie

stopi

8

4481

2010-11-22, 10:44

jabis Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Szablony wydruków - ścieżka dostępu - ustawienie globalne.

w Programy Handlowe

zz

5

3118

2009-07-23, 14:15

krzysiek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Zmienne w ustawieniach drukarki fiskalnej

w Programy Handlowe

gregor

2

2764

2013-04-16, 21:08

gregor Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 15 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant