mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
zamiana STRING na INT (ilosć jako liczba) https://forum.mix-soft.pl/viewtopic.php?f=15&t=4917 |
Strona 1 z 1 |
Autor: | vr6k3 [ 2013-04-30, 12:18 ] |
Tytuł: | zamiana STRING na INT (ilosć jako liczba) |
Witam, Posiadam program Sage Symfornia Handel 2013.1.a. Napotkałem się na problem ponieważ chciałbym konwertować STRING na INT (jeżeli to możliwe), już wyjaśniam o co chodzi. Moja firma często operuje na "kontaktach" co za tym idzie, fakturach zaliczkowych (nawiasem mówiąc szukam rozszerzenia do Symforni typu "Kontakrt w walucie + RTF"). Przy wystawieniu faktury zaliczkowej z kontraktu, tworzy nam się faktura gdzie ILOSĆ towaru jest proporcjonalna do wartości faktury. np. Kontrakt = 10 000,00 Faktura zaliczkowa nr.1 = 4 000,00 zł Ilość towaru na fakturze zaliczkowej wynosi = 0,4 No i dla mnie jest to w miare ok, ale chciałby, sobie zmienić pole ILOŚĆ na "stan konraktru" gdzie będzie to pokazywane w procentach, gdzie zamiast 0,4 będę miał 40%. Pomysł mam taki aby daną ("sIlosc" * 10) i wtedy bede miał zamiast 0.4 bede miał 40 (do tego znaczek % w RTF i gotowe). Borykam się z problemem bo wydaje mi się że wartość "sIlosc" to STRING, i nie wiem jak go przekonwertosć na INT albo REAL aby robić operacje matematyczne. Zrobiłem sobie coś takiego, nowa zmienna "ILpro": Kod: if find regular at "@Ilpro" then myReplace( "@Ilpro", using "%d",(sIlosc) ) : found=1 ale wywala mi konunikat "niemożliwa zmiana ze STRING NA INT" proszę o pomoc. |
Autor: | rafal [ 2013-05-02, 10:54 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Około dwadzieślcia linii wyżej masz pokazane skąd wzięło się sIlosc. Tam wprowadź swoje modyfikacje. Kod: for i=1 to i > size( Pozycje ) if Pozycje(i).stawka>=0 && poz_opis.Get(using "%d",i) then sIlosc = sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP,Pozycje(i).Ilosc)) |
Autor: | vr6k3 [ 2013-05-02, 13:38 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Dajel nic, jeżeli sobie dopisze : Kod: for i=1 to i > size( Pozycje ) if Pozycje(i).stawka>=0 && poz_opis.Get(using "%d",i) then sIlosc =[color=#FF0000] using "%d"[/color], sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP,Pozycje(i).Ilosc)) to i tak mi wywala błąd konwersji STRING na INT. |
Autor: | rafal [ 2013-05-02, 16:05 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Bo dalej robisz ten sam błąd. Z tego co zrozumiałem chcesz wykonać jakieś działanie matematyczne na Ilości. W związku z tym musisz to zrobić zanim ilość stanie się stringiem. Kod: for i=1 to i > size( Pozycje ) if Pozycje(i).stawka>=0 && poz_opis.Get(using "%d",i) then sIlosc = sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP * 100,Pozycje(i).Ilosc * 100)) albo Twój kod Kod: for i=1 to i > size( Pozycje ) if Pozycje(i).stawka>=0 && poz_opis.Get(using "%d",i) then sIlosc = using "[color=#FF0000] %s [/color]", sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP,Pozycje(i).Ilosc)) Nie jestem pewny czy ten [color] Ci zadziała. |
Autor: | wrob [ 2013-05-02, 16:08 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Rafal ten color to nie fragment kodu tylko formater z forum ktory sie nie sparsowal :) Ale fakt najwazniejsdeze jest uzycie zamiast %d -> %s |
Autor: | rafal [ 2013-05-02, 17:57 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Wrob dzieki :) |
Autor: | vr6k3 [ 2013-05-05, 19:52 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Ten "color" się wkradł bo chciałem na forum wyróznic fragment który zmieniłem na czerwono :) Jak wróce to jutro się jszcze pobawie. |
Autor: | vr6k3 [ 2013-05-06, 11:08 ] |
Tytuł: | Zamiana STRING na INT (ilosć jako liczba) |
Witam, zmiana działania tak jak pisze "rafal" na poziomie Kod: for i=1 to i > size( Pozycje ) if Pozycje(i).stawka>=0 && poz_opis.Get(using "%d",i) then sIlosc = sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP * 100,Pozycje(i).Ilosc * 100)) jest ok, ale problem jest taki ze potrzebuje to tylko do jednego typu wydruku (faktur zaliczkowych) a w tym momencie masz na wszystkich dokumentach gdzie występuje ilość. |
Autor: | vr6k3 [ 2013-05-06, 11:13 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Zrobiłem :) Poprostu dodałem zmienną Kod: if find regular at "@Ilpro" then myReplace( "@Ilpro", (using "%s",(sDajIlosc(iif(nJednMiary,Pozycje(i).IloscWP*100,Pozycje(i).Ilosc*100)))) ) : found=1 Dziękuje za pomoc. PS. Szukam tez rozwiązania dla "kontaktrów w walucie".... |
Autor: | wrob [ 2013-05-06, 15:26 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Mamy rozwiazanie dla kontraktow walutowych |
Autor: | alan0z [ 2014-01-09, 01:04 ] |
Tytuł: | Re: zamiana STRING na INT (ilosć jako liczba) |
Sam się nad tym teraz głowiłem, a wystarczy: Kod: int iLiczba = val(sLiczba) |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |