Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-12-03, 20:03x



Odpowiedz w temacie  [ Posty: 6 ] 
Obsłużenie Null w ambasic 
Autor Wiadomość

Rejestracja: 2023-06-24, 14:41
Posty: 16
Post Obsłużenie Null w ambasic
Hej, wczytuje sobie dokument xml (faktura z pozycjami) i chce odczytać jego pola, wszystko ok działa. Ale, mam pole OrderedUnitNetPrice, ale okazuje sie ze w ktorejs pozycji faktury nie ma takiego pola w xml. Handel wyrzuca błąd obiekt Ole nie został zainicjowany dla linijki:

Kod:
cena = xDoc.getElementsByTagName("OrderedUnitNetPrice").item(k).text


próbowałem dać
Kod:
if  xDoc.getElementsByTagName("OrderedUnitNetPrice").item(k).Count >0
ale wtedy błąd że nie ma takiej propercji (wg dokumentacj powinna być)

albo
Kod:
xDoc.getElementsByTagName("OrderedUnitNetPrice").Count
jako że xDoc.getElementsByTagName ma zwracać listę ale to samo. Jak wiec moge sprawdzić czy obiekt jest nullem ?

Czy da się w ambasicu zobić try catch jakoś ?


2023-07-05, 16:07
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: Obsłużenie Null w ambasic
Tak możesz to obsłużyć.
Czy używasz Microsoft.XMLDOM do odczyty xml'a?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2023-07-05, 21:18
Wyświetl profil

Rejestracja: 2016-06-03, 17:42
Posty: 48
Pomógł: 10
Post Re: Obsłużenie Null w ambasic
Podłączam się pod temat, bo mam analogiczny problem przy czytaniu XMLi i musiałem zduplikować raport, żeby go ominąć. Używam Microsoft.XMLDOM do odczytu.


2023-07-05, 22:39
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: Obsłużenie Null w ambasic
Ta wiadomość była pomocna.(1)
użyj SelectNodes do sprawdzenia czy istnieje element

Poniższa funkcja w przypadku braku elementu podstawia wartość domyślną

Kod:
string sub NodeValue( dispatch x, string xmlpath, string defVal)
   if x.selectNodes( xmlpath ).length then
      NodeValue = x.selectNodes( xmlpath ).item( 0 ).text
   else
      NodeValue = defVal
   endif
endsub


wtedy Twój kod będzie wyglądał

Kod:
print NodeValue(xDok, "OrderedUnitNetPrice","0")


Czy o to chodziło?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2023-07-06, 07:49
Wyświetl profil

Rejestracja: 2023-06-24, 14:41
Posty: 16
Post Re: Obsłużenie Null w ambasic
rafal pisze:
użyj SelectNodes do sprawdzenia czy istnieje element

Poniższa funkcja w przypadku braku elementu podstawia wartość domyślną

Kod:
string sub NodeValue( dispatch x, string xmlpath, string defVal)
   if x.selectNodes( xmlpath ).length then
      NodeValue = x.selectNodes( xmlpath ).item( 0 ).text
   else
      NodeValue = defVal
   endif
endsub


wtedy Twój kod będzie wyglądał

Kod:
print NodeValue(xDok, "OrderedUnitNetPrice","0")


Czy o to chodziło?



Tak , choć w międzyczasie sam to samo sobie znalazłem. Ale pozostaje główne pytanie czy można obsłużyć błędy na zasadzie try catch i jeszcz finaly najlepiej :)


2023-07-07, 09:46
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4002
Pomógł: 448
Post Re: Obsłużenie Null w ambasic
Nie można niestety.

Możesz to ominąć pisząc kontrolkę w C# i rejestrując ją w systemie.
Wtedy zrobisz część zadania w C# (Matadane) z try catch i przekażesz wynik do AMBasic.

Powinniśmy już powoli zapominać o AmBasic na rzecz skryptów C# i modułów PRISM.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2023-07-07, 10:16
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 6 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Znak NULL w AMBasic'u

w Programowanie

Sebek8000

10

4965

2017-11-22, 09:10

Sebek8000 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Is null

w Programowanie

tatanka

3

3041

2011-04-07, 14:10

Jarek75 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Tajemnica bazy PN (HMP) - manual null

w Programowanie

Jarek75

0

2112

2011-09-09, 13:54

Jarek75 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. AmBasic i FTP

w Programowanie

bartek

1

3059

2011-01-20, 22:03

rafal Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 10 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