Yo!
Chciałbym poprosić o stworzenie funkcji, która:
1). Stworzy w tabli kolumy "rzędna", "rzędna góry", "rzędna dołu",
2). Dla wszystkich punktów w tabeli, o kodach z grup pikiet naturalnych, pikiet sztucznych oraz punktów wysokościowych na urządzeniach i przewodach, odczytywało te dane z tabeli danych i wstawiało te wartości do wyżej utworzonych kolumn, czyszcząc pozostałe wiersze.
2.2) Nie wiem, czy tabela współrzędnych jest jakoś zmatchowana z tabelą danych, ale warto byłoby tworzyć dopasowania po współrzędnych - zapinając pikiety czasem kończę z punktami pikiet w postaci punktów z @ - target jest taki żeby się łatwo tworzyło wykazy współrzędnych dla dużych inwentaryzacji i MDCP gdzie punktów jest 600, 250 z nich to albo rzędne terenu albo urządzeń - rozdzielanie tego ręcznie w rtf jest absolutnie zabójczą robotą, podatną na błędy i czasochłonną.
Podobna funkcja juz istnieje - "Wstaw zawartość kolumny "X" do kolumny H w tabeli punktów.
Co chciałbym uprościć to autododawania kolumn i wstawianie do nich danych ze wszystkich baz, a nie wstawianie tego do H, kopiowanie z kolumny H do kolumny docelowej i powtórka dla pozostałych baz.
Czy się uda, czy nie dzięki za uwagę,
Automatyczne dodawanie wartości rzędnych do tabeli
Automatyczne dodawanie wartości rzędnych do tabeli
Pozdrawiam
Ao
Ao
Re: Automatyczne dodawanie wartości rzędnych do tabeli
Yo!
Wracam do tematu, bo znów mam inwentarkę oczyszczalni na 600 punktów i klepanie wykazów współrzędnych doprowadza do roztopienia mózgu.
Bardzo proszę o wsparcie w temacie,
Wracam do tematu, bo znów mam inwentarkę oczyszczalni na 600 punktów i klepanie wykazów współrzędnych doprowadza do roztopienia mózgu.
Bardzo proszę o wsparcie w temacie,
Pozdrawiam
Ao
Ao
Re: Automatyczne dodawanie wartości rzędnych do tabeli
Dzień dobry,
Pogrupować i zaznaczyć pikiety/rzędne według typów (naturalna/sztuczna, rzędna urządzenia/przewodu): Podświetlić kolumnę z wysokością do przekopiowania i użyć tej funkcji: która działa tak, że wybiera się konkretną kolumnę docelową w tabeli współrzędnych, którą może być wcześniej założone pole w tabeli współrzędnych i nie trzeba przechodzić przez jakieś pośrednie kolumny: Nie dodamy do standardowego szablonu dostępnego dla wszystkich, dodatkowych atrybutów, natomiast można to zrobić samodzielnie np. na szablonie MapaZasadnicza_2021, zapisać pod tą samą nazwą i korzystać z niego.
Niestety nie dodamy także funkcji, która robi dokładnie to co Pan opisał. Trzeba będzie otwierać tabele OT_Rzedna i GES_Rzedna i wykonać samodzielnie te 5 operacji przekopiowania wysokości do wskazywanych pól.
Zalecam jednak korzystanie z tego rozwiązania:Co chciałbym uprościć to autododawania kolumn i wstawianie do nich danych ze wszystkich baz, a nie wstawianie tego do H, kopiowanie z kolumny H do kolumny docelowej i powtórka dla pozostałych baz.
Pogrupować i zaznaczyć pikiety/rzędne według typów (naturalna/sztuczna, rzędna urządzenia/przewodu): Podświetlić kolumnę z wysokością do przekopiowania i użyć tej funkcji: która działa tak, że wybiera się konkretną kolumnę docelową w tabeli współrzędnych, którą może być wcześniej założone pole w tabeli współrzędnych i nie trzeba przechodzić przez jakieś pośrednie kolumny: Nie dodamy do standardowego szablonu dostępnego dla wszystkich, dodatkowych atrybutów, natomiast można to zrobić samodzielnie np. na szablonie MapaZasadnicza_2021, zapisać pod tą samą nazwą i korzystać z niego.
Niestety nie dodamy także funkcji, która robi dokładnie to co Pan opisał. Trzeba będzie otwierać tabele OT_Rzedna i GES_Rzedna i wykonać samodzielnie te 5 operacji przekopiowania wysokości do wskazywanych pól.
Pozdrawiam Jurek B.
Re: Automatyczne dodawanie wartości rzędnych do tabeli
Być może będzie jeszcze inne, lepsze rozwiązanie, ale napiszę, gdy będę je miał.
Pozdrawiam Jurek B.
Re: Automatyczne dodawanie wartości rzędnych do tabeli
Można trochę pracy sobie oszczędzić:
1. Zmodyfikować i zapisać pod tą samą nazwą szablon (MapaZasadnicza_2021.ZMP) dodając do tabeli współrzędnych potrzebne pola: rzedna, rzednaGory, rzednaDolu,
2. Wykonać w oknie bazy danych zapytanie SQL modyfikujące dane w tabeli, według poniższego skryptu, którego najlepiej gdzieś sobie zapisać i wklejać w oknie wywołanym ikonką "Modyfikacja danych przez zapytanie SQL",
3. W tym zapytaniach jeden ciąg znaków jest zależny od nazwy tabeli współrzędnych - pokazałem go pogrubionymi literami (w przykładzie jest to tabela współrzędnych o nazwie "GML"). Czyli w rzeczywistości należy zamiast GML wpisać nazwę swojej tabeli współrzędnej (np. abc),
4. Podane w skryptach zmienne 168.db i 150.db to nazwy tabel: OT_Rzedna i GES_Rzedna. Jeśli struktura tabel w szablonie będzie niezmienna (nie dojdą nowe bazy danych), to te tabele tak się właśnie będą nazywać.
skrypt nr 1:
update "..\GML.db" t set t.Rzedna = (select d.Rzedna from "168.db" d where d.Id_o=t.Id_p)
where exists (select * from "168.db" b where b.Id_o=t.Id_p)
skrypt nr 2:
update "..\GML.db" t set
t.RzednaGory = (select d.RzednaGory from "150.db" d where d.Id_o=t.Id_p),
t.RzednaDolu = (select d.RzednaDolu from "150.db" d where d.Id_o=t.Id_p)
t.Rzedna = (select d.Rzedna from "150.db" d where d.Id_o=t.Id_p),
where exists (select * from "150.db" b where b.Id_o=t.Id_p)
1. Zmodyfikować i zapisać pod tą samą nazwą szablon (MapaZasadnicza_2021.ZMP) dodając do tabeli współrzędnych potrzebne pola: rzedna, rzednaGory, rzednaDolu,
2. Wykonać w oknie bazy danych zapytanie SQL modyfikujące dane w tabeli, według poniższego skryptu, którego najlepiej gdzieś sobie zapisać i wklejać w oknie wywołanym ikonką "Modyfikacja danych przez zapytanie SQL",
3. W tym zapytaniach jeden ciąg znaków jest zależny od nazwy tabeli współrzędnych - pokazałem go pogrubionymi literami (w przykładzie jest to tabela współrzędnych o nazwie "GML"). Czyli w rzeczywistości należy zamiast GML wpisać nazwę swojej tabeli współrzędnej (np. abc),
4. Podane w skryptach zmienne 168.db i 150.db to nazwy tabel: OT_Rzedna i GES_Rzedna. Jeśli struktura tabel w szablonie będzie niezmienna (nie dojdą nowe bazy danych), to te tabele tak się właśnie będą nazywać.
skrypt nr 1:
update "..\GML.db" t set t.Rzedna = (select d.Rzedna from "168.db" d where d.Id_o=t.Id_p)
where exists (select * from "168.db" b where b.Id_o=t.Id_p)
skrypt nr 2:
update "..\GML.db" t set
t.RzednaGory = (select d.RzednaGory from "150.db" d where d.Id_o=t.Id_p),
t.RzednaDolu = (select d.RzednaDolu from "150.db" d where d.Id_o=t.Id_p)
t.Rzedna = (select d.Rzedna from "150.db" d where d.Id_o=t.Id_p),
where exists (select * from "150.db" b where b.Id_o=t.Id_p)
Pozdrawiam Jurek B.
Strona główna softline
