Własne okno dialogowe do wprowadzania i formatowania danych

Stronę tą wyświetlono już: 602 razy

Postanowiłem jakiś czas temu stworzyć sobie mały zbiór funkcji i makr umożliwiający szybkie i bezbolesne wprowadzanie danych do arkusza kalkulacyjnego programu, uwaga, uwaga tym razem LibreOffice Calc Celem tego jest uproszczenie zbierania danych fizycznych na temat moich przejażdżek rowerowych. Stworzyłem więc okno dialogowe, w którym są wprowadzane następujące informacje:

  • Opis trasy
  • Prędkość maksymalna Vmax [km/h]
  • Odległość s [km]
  • Czas t [hh:mm:ss]

Dostępne jest również pole prędkość średnia, ta wartość jest obliczana automatycznie na podstawie podanej odległości i czasu przejazdu.

Dodanie rekordu sprawia, że w tabelce arkusza kalkulacyjnego pojawią się automatycznie sformatowane wielkości fizyczne, a wśród nich (oprócz wyżej już wymienionych):

  • Prędkość średnia całkowita Vśr c [km/h]
  • Odległość całkowita Sc [km]
  • Czas całkowity tc [h:s:m]
Rys. 1
Screen okna dialogowego programu.

Jak utworzyć własne okno dialogowe? Toż to prostsze niż odebranie dzieciakowi lizaka (nie żebym kiedykolwiek próbował). Należy wybrać w menu Narzędzia->Makra->Zarządzanie oknami dialogowymi pojawi się okno dialogowe LibreOffice - Menadżer makr Basic gdzie po prawej stronie znajduje się przycisk Nowy, po kliknięciu którego można wpisać nazwę nowego okna dialogowego a następnie zatwierdzić utworzenie nowego okna dialogowego za pomocą przycisku OK. Dodawanie formantów jest dość intuicyjne, przypisywanie do nich makr było omówione we wcześniejszym punkcie tego działu, pokażę jedynie przykładowe makro uruchamiające okno dialogowe

Listing 1
  1. Dim dlgRower as object
  2. Dim eDescription as object
  3. Dim nSpeed as object
  4. Dim eTime as object
  5. Dim nSpeedMax as object
  6. Dim nDistance as object
  7. Dim document as object
  8. Dim dispatcher as object
  9. Sub Dialog1Show
  10. document = ThisComponent.CurrentController.Frame
  11. dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  12. DialogLibraries.LoadLibrary( "Standard" )
  13. dlgRower = CreateUnoDialog( DialogLibraries.Standard.Rower)
  14. dlgRower.Execute()
  15. End Sub

Załączniki:

Plik z oknem dialogowym

Komentarze