Materiały z prezentacji “Krajowy System e-Faktur: Technicznie i praktycznie” przeprowadzonej na spotkaniu GorzówIT w dniu 01.02.2024.

Poniżej umieściłem slajdy z prezentacji “Krajowy System e-Faktur Technicznie i praktycznie”, którą przeprowadziłem na spotkaniu GorzówIT w dniu 01.02.2024.

Microsoft SQL Server Express LocalDB

Microsoft SQL Server LocalDB jest uproszczoną wersją systemu zarządzania bazą danych SQL Server Express. Jest ona prosta w instalacja i konfiguracji.

Garść ogólnych informacji

  • Podczas instalacji kopiowane są tylko niezbędne pliki niezbędne do uruchomienia silnika bazy danych SQL Server
  • Obsługuje ten sam język T-SQL jak w wersji SQL Server Express
  • Ma takie same ograniczenia jak wersja SQL Server Express

Dla kogo SQL Server Express LocalDB?

Kierowany jest głównie dla programistów.

Pozwala m.in. na:

  • Szybkie tworzenie lokalnych baz danych i wykonywanie testów aplikacji, które z nich korzystają,
  • Pisanie i testowanie kodu w języku Transact-SQL
  • poznanie SQL Server Express bez konieczności pełnej wersji

Lokalizacja plików z bazą danych

  • Rozszerzenia plików z bazą danych są takie same jak w SQL Server Express: .mdf (baza danych), .ldf (log)
  • Lokalizacja plików baz danych:
    • Bazy systemowe
      Bazy systemowe przechowywane są w lokalizacji określonej w zmiennej środowiskowej AppData:
      C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\
    • Bazy użytkownika przechowywane są w katalogu użytkownika, na przykład:
      C:\Users\Documents\
      C:\Users\

Zarządzanie instacjami – SQL Server Express LocalDB Command Line Tool

Do zarządzania instacjami baz danych służy program SQL Server Express LocalDB Command Line Tool uruchamiany z linii poleceń.

Program uruchamiany jest poprzez wpisanie w linii komend sqllocalDB z odpowiednimi parametrami.

Lista wszystkich instancji dostępnych na maszynie: sqllocalDB i

Szczegółowe informacje o instancji sql serwera:
sqllocalDB i <nazwa_instancji>

Parametry, jakich należy użyć do tworzenia, usuwania, uruchamiania i zatrzymywania instacji uzyskamy po uruchomieniu programu bez żadnych parametrów.

Numery wersji i nazwy wydań dostępne są m.in. na Wikipedii pod adresem: Microsoft SQL Server – Wikipedia, wolna encyklopedia

Instalacja

W celu zainstalowania Microsoft SQL Server Express LocalDB należy pobrać wersję instalacyjną programu ze strony firmy Microsoft.

https://www.microsoft.com/en-us/download/details.aspx?id=101064

Po pobraniu i uruchomieniu wersji instalacyjnej należy wybrać opcję Download Media

a następnie zaznaczyć opcję LocalDB

Po pomyślnym pobraniu należy wybrać przycisk “Open folder” i uruchomić pobrany plik instalacyjny “SqlLocalDB.msi”. Po jego uruchomieniu zostanie rozpoczęty proces instalacji SQL Server 2019 LocalDB.


Po pomyślnej instalacji możemy rozpocząć przygodę z relacyjnymi bazami danych 🙂

Dodatkowo warto zainstalować SQL Server Management Studio (SSMS).
Jest to narzędzie pozwalające na tworzenie zapytań i zarządzania bazami na komputerze lokalnym lub w chmurze.

Wersja instalacyjna dostępna jest pod następującym linkiem (na dzień tworzenia tego wpisu):

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

Drukowanie numeru nabywcy NIP na paragonie

Od 1 września 2019 obowiązywać będą przepisy według których będzie można wystawić fakturę do paragonu tylko w przypadku, gdy na paragonie będzie występował numer NIP nabywcy.

W związku z tym konieczne jest wprowadzenie zmian we wszystkich programach klasy ERP umożliwiających drukowanie numeru NIP nabywcy przez drukarkę fiskalną na paragonie.

W celu wprowadzenia odpowiednich zmian wypożyczyłem do testów drukarkę fiskalną firmy POSNET i przystąpiłem do wprowadzania zmian w oprogramowaniu ERP:

1. W drukarkach z nowym protokołem POSNET wprowadziłem możliwość drukowania numeru NIP nabywcy:

  • w dedykowanym do tego celu miejscu na paragonie poprzez wykorzystanie sekwencji ‘trnipset’. W sekwencji tej można określić, czy numer NIP ma być wyróżniony na paragonie (większa czcionka).
  • W linii, w której drukowany jest kod kasjera.

Przykładowe wydruki paragonów z numerem NIP nabywcy:

2. W drukarkach ze starszym protokołem THERMAL wprowadziłem możliwość drukowania numeru NIP nabywcy:

  • W dodatkowej linii drukowanej w stopce paragonu

Przygotowanie drukarki fiskalnej do testów 

Aby wykonać testy na drukarce fiskalnej POSNET (THERMAL XL2 z interfejsem USB) należało wykonać poniższe kroki.

  1. Zainstalować drukarkę i port drukarki w komputerze
    1. Po podłączeniu drukarki zostanie automatycznie zainstalowany port wirtualny
    2. Dodatkowo należy zainstalować sterownik drukarki dostarczony z drukarką lub pobrany ze strony producenta.
  2. Ustawić parametry drukarki w menu drukarki:

2. Konfiguracja – 1. Parametry ogólne – 7. Funkcje komunik.-> Interfejs PC

Interfejs PC:

  • należało wybrać USB (inne opcje to COM1, TCP/IP),
  • ustawić odpowiedni (np. nowy protokół POSNET),
  • Wybrać odpowiednią stronę kodową (np. strona kodowa: 1250).

3.  Za pomocą programu POSNET NPS:

    1. Zaprogramować nagłówek
    2. Wysłać stawki PTU do drukarki

Bez wykonania powyższych kroków drukarka zgłosi błędy o odpowiednich kodach opisanych w dokumentacji drukarki.

Przydatne programy

NPS – program serwisowy do drukarek fiskalnych POSNET.

Device Monitoring Studio – pomocny w przypadku wyjaśniania bardziej złożonych problemów związanych z komunikacją z drukarką. Program służy do monitorowania, logowania i analizowania danych wysyłanych i odbieranych przez porty PC.

Problem z uzyskaniem adresu IP podczas łączenia się urządzenia mobilnego z systemem Android z routerem wifi.

Postanowiłem rozszerzyć i wzmocnić zasięg sieci wifi. Do istniejącej sieci podłączyłem kablem sieciowym router asmax N300RS w trybie access point. Sama konfiguracja i podłączenie routera przebiegło szybko. Niestety, podczas prób połączenia się z routerem z urządzenia z systemem Android 8.0 pojawiał się błąd „Failed to Obtain IP Address”.
Początkowo myślałem, że problem tkwi w routerze lub jego konfiguracji. Jak się jednak okazało, problem występował podczas łączenia się z wymienionym urządzeniem z systemem operacyjnym Android 8.0. Łączenie się z siecią z komputerów z systemem Windows 10 oraz innych urządzeń mobilnych z systemami Android (5.0 oraz 6.0) odbywało się bezproblemowo.

Jak się dowiedziałem przyczyn występowania tego problemu jest wiele. Zacząłem szukać rozwiązania tego problemu.

Wykonałem kilkukrotnie opcję „Zapomnij sieć” (po wybraniu i przytrzymaniu ikonki z siecią , z którą chcemy się należy wybrać opcję „Zapomnij sieć”). Niestety nie pomogło to w moim przypadku rozwiązać problemu.

Oto niektóre sposoby na poradzenie sobie z tym problemem, które sprawdziły się w moim przypadku:

  1. Włączenie i wyłączenie trybu samolotowego w urządzeniu mobilnym,
  2. Zresetowanie urządzenia mobilnego i routera
  3. Wprowadzenie statycznego numeru IP w urządzeniu mobilnym.
    Po wybraniu i przytrzymaniu ikonki z siecią, z którą chcemy się połączyć należy:

    • Wybrać opcję zarządzanie ustawieniami sieciowymi
    • Włączyć opcję „pokaż zaawansowane opcje”
    • Zmienić ustawienie IP z DHCP na Static
    • Wprowadzić adress IP (np. 192.168.1.121)
    • Wybrać przycisk Zapisz i sprawdzić, czy urządzenie połączy się z routerem Wifi.

Transfer Contacts from Lumia to Android’s device

It’s time to say goodbye to my Lumia 950. I get used to this smartphone but it’s high time to switch to Android’s device since Windows Phone is almost dead.
But how to transfer contact from Lumia to Android?
Fortunate there are a few ways to do that.

First way is to export contact Onedrive (https://outlook.live.com/people/) to csv file and then import it to gmail account (https://contacts.google.com/).

To transfer your contacts you can also use MobileTrans app. It’s convenient way but it’s not for free. You can download app from this address:  https://mobiletrans.wondershare.com/

Maps API dla programistów: Google Maps Platform and Microsoft Bing Maps.

Największe platformy pozwalające na wykorzystanie map i wyszukiwanie na nich lokalizacji:

  • Google Maps Platform
  • Microsoft Bing Maps

Poniżej zebrałem linki dotyczące każdej z tych platform.

Google Maps Platform

Google Maps Platform

https://cloud.google.com/maps-platform/

 

Google Maps Platform – Documentation

https://developers.google.com/maps/documentation/

https://cloud.google.com/maps-platform/user-guide/

 

Google Maps Platform – Pricing

https://cloud.google.com/maps-platform/pricing/

 

Google Maps Platform – previous Pricing and Plans

https://developers.google.com/maps/previous-pricing

 

Microsoft Bing Maps

Bing Maps Portal

https://www.bingmapsportal.com/

Bing Maps – Documentation

https://www.microsoft.com/en-us/maps/documentation

 

Bing Maps – Pricing – Basic Key

https://www.microsoft.com/en-us/maps/create-a-bing-maps-key

https://www.microsoft.com/en-us/maps/licensing/default

 

Bing Maps – Licensing options

https://www.microsoft.com/en-us/maps/licensing/options

 

Creating a Bing Maps Account

https://msdn.microsoft.com/pl-pl/library/gg650598.aspx?f=255&MSPPError=-2147217396

 

Emulatory urządzeń mobilnych z systemem Android

Przed przystąpieniem do tworzenie aplikacji mobilnych konieczne jest przygotowanie środowiska testowego, w którym będziemy mogli testować oraz debugować tworzoną aplikację.

Mamy do wyboru dwie opcje:

1. Wykorzystanie fizycznego urządzenia.
2. Wykorzystanie emulatorów fizycznych urządzeń

O ile konieczne jest uruchomienie i przetestowanie aplikacji na fizycznym urządzeniu mobilny przed przekazaniem jej do sklepu „Google Play” lub „App Store” o tyle w codziennym procesie tworzenia aplikacji można wykorzystać emulatory.

Wykorzystanie emulatorów jest wygodniejsze, gdyż:
– nie musimy za każdym razem podłączać fizycznego urządzenia,
– widzimy działającą aplikację na ekranie komputera o większych wymiarach niż fizyczne urządzenie,
– możemy testować aplikację na różnych rodzajach emulowanych urządzeń (w różnych rozdzielczościach, różnych parametrach sprzętowych np. wielkość pamięci, rodzaj procesora itp.)

Należy mieć świadomość, iż emulator jest niczym innym jak stworzoną przez programistów wirtualną maszyną imitującą fizyczne urządzenie. Nie może on zatem całkowicie zastąpić testów wykonywanych na fizycznym urządzeniu.

Należy również wspomnieć, iż korzystanie z emulatorów jest wygodne tylko w przypadku gdy wykorzystują one akcelerację sprzętową. W przeciwnym razie emulator będzie działał zbyt wolno i proces debugowania oraz testowania będzie „męczarnią”.

Jeśli chodzi o emulatory urządzeń z systemem Android, to aktualnie mamy następujące opcje:
• Emulatory opracowane i udostępnianie przez firmę Google oraz Intel.
• Emulatory opracowane przez firmę GenyMotion
• Emulatory Visual Studio stworzone przez firmę Microsoft.

1. Emulatory opracowane i udostępnianie przez firmę Google oraz Intel.

Chyba najczęściej wykorzystywane emulatory do celów developerskich.
Emulatory te mają możliwość logowania się do sklepu Google Play i pobieraniu z niego aplikacji.
W celu przyspieszenie pracy emulatorów, wykorzystywany jest silnik Intel Hardware Accelerated Execution Manager (Intel HAXM), który wykorzystuje technologię sprzętową Intel Virtualization Technology (Intel VT).

Emulatory można zainstalować poprzez:

a) Instalację Android Studio.

Dostępna jest ona pod adresem: https://developer.android.com/studio/

b) Instalację lub modyfikację Visual Studio 2017
W Visual Studio Installer po wyborze poniższych opcji zostaną zainstalowane emulatory w następujących wersjach: Android 6.0 Marshmallow (Level 23), Android 7.1 Nougat (Level 25), Android 8.1 Oreo (Level 27) oraz silnik Intel HAXM.

Uruchamianie emulatorów 

Aby korzystać z emulatorów firmy Google w systemie Windows 10 należy zastosować jedną z poniższych opcji:

– wyłączyć funkcję Hype-V w systemie Windows w „Windows features”.

– dodać dodatkową opcję uruchamiania systemu Windows w trybie HyperVisor i bez trybu Hypervisor. Więcej na te temat tutaj.

– zainstalować najnowszą wersję Visual Studio 2017 w wersji co najmniej 15.8.0. W wersji 15.8.0 została wprowadzona możliwość uruchamiania emulatorów firmy Google x86 bez konieczności wyłączania funkcji Hyper-V. Więcej na ten temat: Hardware Acceleration for Emulator Performance (Hyper-V & HAXM)   
Czasami występują problemy z włączeniem opcji “Windows Hypervisor Platform”. Należy w tym wypadku wykonać dodatkowe kroki: Android Emulator Troubleshooting.

 

2. Emulatory opracowane przez firmę GenyMotion

Są to bardzo dobre emulatory, niestety nie są one bezpłatne. https://www.genymotion.com/
Na szczęście jest możliwość korzystania z nich w bezpłatnej wersji wyłącznie do celów osobistych. Można je pobrać pod adresem: https://www.genymotion.com/fun-zone/

 

3. Emulatory Visual Studio stworzone przez firmę Microsoft.

Dostępne są emulatory z systemem Android do wersji 6.0 Marshmallow (Level 23). Aby testować aplikacje na nowszych systemach Android należy zatem zainstalować emulatory firmy Google lub GenyMotion.

Emulatory te wykorzystującą oprogramowanie do wirtualizacji Hype-V firmy Microsoft. Oprogramowanie Hype-V wykorzystuje na wyłączność technologię sprzętową Intel VT.

W celu zainstalowania tych emulatorów, należy podczas instalacji lub modyfikacji Visual Studio wybrać opcję “Visual Studio Emulator for Android”:

Dodawanie kolejnych emulatorów możliwe jest poprzez aplikację “Visual Studio Emulator for Android”:

Android’s Mobile Device Emulators

Before we start creating mobile applications, we need to prepare a testing environment in which we will be able to test and debug our apps.

We have two options:
1. Use of the physical device
2. Use of physical device emulators.

It is necessary to run and test an application on a physical device before passing it to “Google Play” or “App Store”.
But in the everyday development process, we can use emulators.

The use of emulators is more convenient because:
– we do not have to connect a physical device every time.
– we can see a working application on a computer screen with larger dimensions than a physical device.
– we can test the application on different types of emulated devices (in different resolutions, hardware parameters, e.g. memory, processor, etc.).

We should be aware that the emulator is nothing more than a virtual machine created by programmers imitating a physical device. Therefore, emulators cannot replace the physical device. It can be used as a convenient help in the everyday developing process.

It should also be mentioned that the use of emulators is convenient only when they use hardware acceleration. Otherwise, the emulator will run too slowly and debugging and testing will be a “torment”.

When it comes to the emulators of Android’s devices, we currently have the following options:

• Emulators created and distributed by Google and Intel.
• Emulators created by GenyMotion.
• Emulators created by Microsoft to use with Visual Studio IDE.

  1. Emulators created and shared by Google and Intel.

Probably the most commonly used emulators for development purposes.

These emulators have the ability to log into the Google Play store and download applications from it.

In order to speed up the work of emulators, the Intel Hardware Accelerated Execution Manager (Intel HAXM) is used and it uses Intel Virtualization Technology (Intel VT) hardware.

Emulators can be installed by:

• Installation of the Android Studio IDE.
It is available at  https://developer.android.com/studio/

• Installation or modification of Visual Studio 2017

The following emulators will be installed when options below are selected in the Visual Studio Installer: Android 6.0 Marshmallow (Level 23), Android 7.1 Nougat (Level 25), Android 8.1 Oreo (Level 27) and Intel HAXM engine.

 

Launching emulators 

In order to launch Google emulators in Windows 10 we should use one of the options below:

– turn off Hype-V feature in Windows features.

– add an additional option to start Windows in Hypervisor mode and without Hypervisor mode in the Windows bootloader menu. More on this topic here.

– install the latest version of Visual Studio 2017 at least 15.8.0. From version 15.8.0, we have the option of running Google x86 emulators without having to disable Hyper-V. More on this topic:  Hardware Acceleration for Emulator Performance (Hyper-V & HAXM) 
Sometimes there are problems with enabling the “Windows Hypervisor Platform” option. In this case, you must take additional steps: Android Emulator Troubleshooting.

 

2. Emulators created by GenyMotion.

These are very good emulators unfortunately, they are not free.
https://www.genymotion.com/

However there is a way to use them in a free version only for personal purposes.
You can download it at: https://www.genymotion.com/fun-zone/

 

3. Emulators created by Microsoft to use with Visual Studio IDE.

Microsoft created emulators with Android up to version 6.0 Marshmallow (Level 23). In order to test applications on newer Android systems, you must therefore install Google or GenyMotion emulators.

These emulators use Microsoft’s Hyper-V virtualization software.
The Hype-V software exclusively uses Intel VT hardware technology.

In order to install the emulator, the option “Visual Studio Emulator for Android” should be selected in the Visual Studio 2017 Installer:


Later we can add other emulators through the “Visual Studio Emulator for Android” application: