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

Jak sprawdzic wersje programu
https://forum.mix-soft.pl/viewtopic.php?f=15&t=1433
Strona 1 z 1

Autor:  JacekBomba [ 2009-11-24, 12:22 ]
Tytuł:  Jak sprawdzic wersje programu

Witam.
W jaki sposob sprawdzic wersje programu i uruchomic fragment kodu, jesli wersja jest wyzsza niz zdefiniowana?

Pozdrawiam,
Jacek

Autor:  wrob [ 2009-11-24, 12:35 ]
Tytuł: 

I znow pytanie - w jakim programie??? albo chociaz w jakiej linii (premium czy forte)

generalnie to wystarczy nieco pomyslec i poszukac w raportach typu footer - przeciez symfonia tam zawsze drukuje wersje

np mozna tam znalezc
Kod:
firma.ver



i oczywiscie if val(firma.ver) > ......................

Autor:  JacekBomba [ 2009-11-24, 14:10 ]
Tytuł: 

Chodzilo mi raczej o warunkowa kompilacje tylko dla wersji >= 2010 (Symfonia Handel Premium).

Autor:  wrob [ 2009-11-24, 14:26 ]
Tytuł: 

Hmm..... Wlasciwie AmBasic to jest interpeter - wiec nie wiem co chcesz kompilowac :-)

Ale w czym masz problem zeby uruchomic za pomoca zwyklego If albo jeden kod albo drugi
nawet w tym if mozesz sobie zrobic ze raz uruchamiasz jednego raz drugiego includa -

Autor:  JacekBomba [ 2009-11-24, 14:34 ]
Tytuł: 

Chodzi mi o to, ze w Symfoni 2010 pojawia sie cos takiehgo jak promocje okresowe, ktorych chyba nie ma we wczesniejszych wersjach. W przypadku Symfoni 2010 ponizszy fragment zostanie wykonany bez zadnych bledow:

Kod:
Int basCK=open KatalogFirmy()+"51ck.dat" for base "ck"
baseError (basCK, 4)
Int errCK=GetREc(basCK,FS)


W wersji 2006 wyskakuje blad, ze nie ma takiej bazy (prawidlowo).
Chcialbym wstawic warunek, ze jezeli mam wersje 2010 i wzwyz to wykonuj dany fragment kodu. Cos na wzor

Kod:
#ifdef HM330
...
#endif

tylko ze w wersji od 2010 wzwyz.

Probowalem czegos takiego:

Kod:
if val(firma.ver)>=2010 then
   #define HM2010
endif

#ifdef HM2010
..
#endif


ale nie dziala, gdyz HM2010 jest zawsze zdefiniowane.

Autor:  wrob [ 2009-11-24, 14:42 ]
Tytuł: 

Kod:
if val(firma.ver)>=2010 then
    Int basCK=open KatalogFirmy()+"51ck.dat" for base "ck"
    baseError (basCK, 4)
    Int errCK=GetREc(basCK,FS)
endif

Autor:  JacekBomba [ 2009-11-24, 15:00 ]
Tytuł: 

:mrgreen:
Probowalem. Niestety, wyskakuje blad:

Zmienna lub SUB nie moze byc tworzona w tym miejscu.

Chodzi o deklaracje zmiennych np.

Int basCK=open KatalogFirmy()+"51ck.dat" for base "ck"

Autor:  wrob [ 2009-11-24, 15:12 ]
Tytuł: 

Czasem trzeba po prostu pomyslec/pokombinowac

np - zadeklaruj zmienne przed

Kod:
Int basCK,ErrCK



a w if tylko podstaw
Kod:
if
BasCk=......
endif


Wtedy dziala?

Autor:  JacekBomba [ 2009-11-24, 15:18 ]
Tytuł: 

Chcialem to zrobic bardziej elegancko przy pomocy wlasnie #ifdef .. #endif, ale jak widac chyba sie nie da.

Dzieki, pozdrawiam
Jacek

Autor:  rafal [ 2009-11-24, 16:37 ]
Tytuł: 

Kod:
#ifdef HMP100

    Int basCK=open KatalogFirmy()+"51ck.dat" for base "ck"
    baseError (basCK, 4)
    Int errCK=GetREc(basCK,FS)
   
#else

#endif


inne stałe
Kod:
HL110   HL100   FL100   HMP100  HMP090  HMP080  HMP070  HM340   HM330   HM320   FAP090  FAP070  FP250   FP240   FP230   FA135

Autor:  wrob [ 2009-11-24, 17:26 ]
Tytuł: 

Rafale ale jak zrobic zeby to ifdef dzialalo dla wersji "wieksza niz"? :-(

Autor:  JacekBomba [ 2009-11-25, 11:59 ]
Tytuł: 

Cytuj:
Czasem trzeba po prostu pomyslec/pokombinowac 8-)


Kod:
#ifdef HM320
   #define LTHMP100
#endif
#ifdef HM330
   #define LTHMP100
#endif
#ifdef HM340
   #define LTHMP100
#endif
#ifdef HMP070
   #define LTHMP100
#endif
#ifdef HMP080
   #define LTHMP100
#endif
#ifdef HMP090
   #define LTHMP100
#endif
#ifndef LTHMP100
   #define GEHMP100
#endif

// tylko od Handel 2010
#ifdef GEHMP100
..
#endif


Pozdrawiam,
Jacek

Autor:  wrob [ 2009-11-25, 13:04 ]
Tytuł: 

To prosciej jednak jeden if bez # :)

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