początki pracy z oobase + mały problem

Użytkowanie programu bazodanowego
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

początki pracy z oobase + mały problem

Post autor: mih »

witam,

zaczynam pracę z oobase, próbuję stworzyć bazę na własny użytek i napotkałem problem, z którym nie mogę sobie poradzić.

Mam dwie tabele:

"pozycje zamówione" z kolumnami: id, pozycja zamówieniowa, id zamówienia, wartość pozycji, , czy zrealizowano zamówienie, nr zamówienia wewnętrznego, czy zrealizowane zam wewnętrzne
"zamówienia" z kolumnami: id, numer zamówienia, data wpływu zamówienia, kto zamówił, czy zrealizowano,

kolumny napisane grubą czcionką są połączone relacją. Ogólnie chodzi o zamówienia wpływające do firmy. Jest na nich dużo pozycji rozłożonych w czasie dlatego chciałem operować na pozycjach z tych zamówień, a nie na całych zamówieniach. Wszystko sobie rozpisałem na kartce jakby miało to wyglądać. Ale mam problem z zamówieniami wewnętrznymi. Powiedzmy że przychodzi do firmy zamówienie z firmy A o numerze 001. I teraz na podstawie tego zamówienia jest tworzone zamówienie wewnętrzne, które musi być zrealizowane, alby móc przystąpić do realizacji zamówienia 001. To zamówienie wewnętrzne nazywamy 002 i również je jak i jego pozycje wprowadzamy do naszej bazy. I chciałbym żeby w momencie zrealizowania zamówienia wewnętrznego (wartość tak/nie) uzupełniała się kolumna "czy zrealizowano zam wewnętrzne" w wierszach gdzie ono występuje. Czy można to powiązać w jakiś sposób? Jeśli tak to jak?

I jeszcze jedno pytanie - powiedzmy że stworzyliśmy super działającą bazę i chcemy aby mógł z niej korzystać również kolega na innym komputerze. Rozumiem że tutaj kończy się rola oobase i trzeba się wspomóc innym programem tak? Czy można jakoś zrobić tak żeby jednocześnie dwóch użytkowników mogło korzystać z jednej bazy?

I na koniec, możecie polecić jakieś tutoriale w internecie z nauką oobase? Ja gorąco polecam kanał użytkownika TheFrugalComputerGuy, w języku angielskim, ale bardzo dużo można się dowiedzieć. Jest to bibliotek filmów o Libreoffice Base, ale rozumiem że są to programy bardzo podobne i działają na jednym silniku. Jeśli się mylę to poprawcie mnie proszę.
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

witam,

problem z łączeniem tabel rozwiązałem funkcją UNION ALL. Napotkałem kolejny problem - mam formularz z podformularzem. I w tym podformularzu, który muszę mieć w formie tabelki/arkusza jedną z kolumn jest klucz obcy innej tabeli i chciałbym tam wpisywać nie numery ID tylko nazwy przypisane do tego ID z tej powiązanej tabeli. Jest takie coś możliwe? Z góry dziękuję za pomoc.
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

poprzedni problem jakoś rozwiązałem, mam kolejny. Stworzyłem tabele do filtrowania i formularz na jej podstawie. Teraz jak wybiorę w oknie formularza np dział A to w podformularzu mam wszystkie zamówiena z tego działu. Tak samo dział B, c itd. Ale jak zrobić żeby w tym wyborze działów dodać pozycje "pokaż wszystkie działy"?
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

w załączniku moja baza danych, chodzi mi o formularz "podział na działy" Będę również wdzięczny za inne cenne uwagi co do innych formularzy.
Załączniki
Nowa.odb
(74.15 KiB) Pobrany 240 razy
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

Zrobiłem ci mały przykład na podstawie którego zrobisz tak jak ci potrzebne. Dodałem tez dwie kwerendy, pomogą ci w realizacji projektu, najlepiej edytować w widoku SQL.
Załączniki
Nowa_a.odb
(83.25 KiB) Pobrany 297 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

wielkie dzięki za pomoc, dzisiaj cały dzień się męczyłem ale w końcu się udało, musiałem trochę pozmieniać w relacjach. Kolejny mały problem mam z polami typu BOOLEAN. Na początku myślałem że będzie to najlepsze pole do kolumny "realizacja zamówienia" ale raz że graficznie mi się to nie podoba, jest małe i małoczytelne. A dwa że chcąc wciągnąć pole tego typu w podformularz innej tabeli (w moim przypadku realizacja zam wew) mogę to zrobić tylko poprzez pole typu lista (tak przynajmniej mi się wydaje) i wtedy mam wartości true i false.

Moje pytania za które będę bardzo wdzięczny za odpowiedź.

1. Można wtedy w polu listy zmienić te wyrażenia true i false na np tak i nie?
2 Czy typu boolean jest najlepsze do kolumn typu realizacja czy lepiej używać pola listy?
3. Można jakoś zmienić graficzną prezentację pola boolean? Np większy kwadracik, zmienić kolor itp?
4. Czy można w jakiś sposób formatować warunkowo wartości w formularzach? Np mam w formularzu pole listy gdzie wybieram tak lub nie, można tak zrobić żeby wybierając "tak" dodawało się zielone tło, a wybierając "nie" czerwone? Np jakaś skomplikowana komenda sql albo makro?

W załączniku baza z opisanymi problemami i rozwiązanymi poprzednimi.
Załączniki
Nowa.odb
(74.55 KiB) Pobrany 253 razy
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

mih pisze:1. Można wtedy w polu listy zmienić te wyrażenia true i false na np tak i nie?
Załącznik
mih pisze:2 Czy typu boolean jest najlepsze do kolumn typu realizacja czy lepiej używać pola listy?
Ja bym użył boolean - jedno kliknięcie.
mih pisze:3. Można jakoś zmienić graficzną prezentację pola boolean? Np większy kwadracik, zmienić kolor itp?
Nie, no chyba że coś przeoczyłem.
mih pisze:4. Czy można w jakiś sposób formatować warunkowo wartości w formularzach? Np mam w formularzu pole listy gdzie wybieram tak lub nie, można tak zrobić żeby wybierając "tak" dodawało się zielone tło, a wybierając "nie" czerwone? Np jakaś skomplikowana komenda sql albo makro?
Załącznik, z tym że dotyczy to pojedynczego formantu, nie formantu tabela dla niego ustawiasz format całościowo. Można by było poskładać taką tabelę z kilku innych tabeli ale znając życie u ciebie może być dobrze a na innym komputerze kicha.
Załączniki
Nowa_b.odb
(91.72 KiB) Pobrany 257 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

jeszcze raz dzięki za pomoc.

ogólnie jeszcze mi daleko do jakotako działającej bazy ale chciałbym żeby działała ona na 3 lub 4 komputerach, również jednocześnie. Chciałbym poznać waszą opinię jak to zrobić najlepiej, najłatwiej i najtaniej. Próbuje właśnie łączyć moją bazę z mysql ale o ile tabele i relacje są widoczne w mysqlu to formularzy mysql już nie widzi jeśli są stworzone w libreoffice. Próbowałem się łączyć i przez odbc i przez jdbc i bezpośrednio. Ktoś może mi powiedzieć dlaczego tak jest? Z tego co wiem to dzielenie bazy jest łatwe w accesie ale to już koszt kilku tysięcy na kilka komputerów....Jest jeszcze jakaś inna alternatywa? Aby mieć prostą i tanią bazę działającą na kilku komputerach połączonych wspólnym serwerem?

z góry dzięki za każda opinie.
OpenOffice 4.1 na Windows 7
Jan_J
Posty: 4626
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: początki pracy z oobase + mały problem

Post autor: Jan_J »

Tabele, indeksy, perspektywy to, mówiąc językiem niegdyś jedynie słusznego światopoglądu, „baza” bazy dostępna dla systemu zarządzającego, jaki by nie był: czy to wbudowany, jak HSQL w Base, czy zewnętrzny, jak MySQL.
Formularze, kwerendy i raporty to „nadbudowa”, która nie jest przechowywana ani zarządzana przez system zarządzania bazą relacyjną, nie jest więc także dla niego dostępna. W formacie OpenDocument przechowywana jest w dokumencie odb, niezależnie od rodzaju bazy.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

Aha, to znaczy że wszystko jest u mnie na razie ok. Mam teraz na komputerze dwa pliki libreoffice base połączone z tą samą bazą w MySQL. W tym drugim pliku tabele i relacje pojawiły się tak jak piszesz, a formularze skopiowałem z tego pierwszego pliku libreofice i o dziwo działają. Mam otwarte 2 pliki jednocześnie, można w tym samym czasie dodawać rekordy do tej samej tabeli, wreszcie mam to o co mi chodziło.

To teraz chciałbym spróbować się pobawić tak z kolegą w pracy. W pracy mamy serwer oraz dysk sieciowy, do którego jesteśmy obaj podłączeni. LIbreoffice musimy zainstalować na obydwu komputerach (poprawcie mnie jeśli się mylę), ale gdzie zainstalować MYSQL? Może być on zainstalowany raz na dysku sieciowym? Łącząc się z bazą używam połączenia JDBC i muszę tam podać nazwę, serwer i numer portu. Jeśli zainstaluje MYSQL na dysku sieciowym to rozumiem że localhost jako nazwa serwera już nie zadziała? Zmieni się domyślny numer portu (3306)?
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

witam,

został mi jeszcze jeden mały problem do rozwiązania z którym już walczę kilka dni i nie mogę znaleźć rozwiązania. I zastanawiam się teraz czy jest to w ogóle możliwe...

W formularzu zamówienia wewnętrzne mam pole "zamówienie pierwotne", które służy do skojarzenia przez wprowadzającego zamówienie (wewnętrzne) pod jakie zamówienie (pierwotne) wykonuje się zamówienie wewnętrzne. Na razie mam tam pole listy z wprowadzonymi wcześniej zamówieniami pierwotnymi. Pierwszy problem jaki napotkałem to powtarzające się tam numery zamówień (to logiczne bo zamówienia wew. mam powiązane z pozycjami zamówieniowymi, więc na tej liście każdy numer zamówienia powtarza mi się tyle razy ile jest pozycji w danym zamówieniu) Jest sposób żeby te duplikaty wyeliminować, a skojarzony wtedy numer zamówienia wew. przypisać do wszystkich pozycji zamówieniowych jeśli wybiorę unikatowy numer zamówienia (pierwotnego)? Próbowałem tutaj kombinować z wyrażeniem DISTINCT ale nic to nie dało.

No i drugi, większy problem. Zamówienia wew. czasami będą się odnosić tylko do wybranych pozycji zamóweniowych z zamówień pierwotnych a nie do całych zamówień. (dlatego właśnie relacją połączyłem zam wew. z pozycjami zamówieniowymi) Czy istnieje jakieś rozwiązanie żeby w formularzu zamówień wewnętrznych stworzyć np drugie pole listy, gdzie w wybranych przypadkach zamiast numeru zamówienia pierwotnego będę wybierał konkretny numer sztuki/część/pozycję z tabeli pozycji zamówieniowych?

mam nadzieję że to w miarę logicznie wytłumaczyłęm, proszę chociaż o skierowanie mnie na właściwe tory albo odpowiedź że to raczej niemożliwe. Z góry dziękuję.
Załączniki
Nowa.odb
(73.63 KiB) Pobrany 225 razy
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

poprzedni problem trochę obszedłem, nie wyszło do końca to co chciałem, ale ostatecznie może być. Skorzystałem z tabeli łączone i jakoś to działa.

Oczywiście mam kolejne pytania:)

1. Czy można w formularzu podaj_nr_zam zrobić przycisk, który będzie zaznaczał każdą pozycję w polu boolean o nazwie -->WZ? To znaczy tak aby każda pozycja z tej kolumny miała wartość TRUE.

2. Powyższą kolumnę wprowadziłem aby drukować dokument WZ wybranych pozycji z zamówienia, zrobiłem kwerendę która wybiera tylko wartości true z pola -->WZ i na jej podstawie dynamiczny raport. Chciałem zrobić na tym formularzu przycisk który będzie mnie przenosił bezpośrednio do raportu, ale raportu nie mogę zapisać na pulpicie, brak jest opcji "zapisz kopię jako". Dlaczego tak jest i można to jakoś obejść?
Załączniki
Nowa.odb
(82.99 KiB) Pobrany 217 razy
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

witam,

kolejny problem:)

kiedyś ktoś tutaj wrzucił bazę akcji charytatywnych i było tam makro otwierające formularz startowy razem z plikiem bazy danych. Oto ten kod:

Kod: Zaznacz cały

Sub OpenStart
dim sqlconnection as variant
dim formContainer as variant
dim aProp(1) As New com.sun.star.beans.PropertyValue
sqlconnection = ThisComponent.DataSource.GetConnection("","") 
aProp(0).Name = "ActiveConnection"
aProp(0).Value = sqlconnection
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"
formContainer = ThisComponent.FormDocuments
formContainer.loadComponentFromURL("[b]f_Panel_Nawigacyjny[/b]","_blank",0,aProp())
End Sub
Skopiowałem go do swojej bazy podmieniając nazwę formularza (pogrubiona czcionka) i nic.Nie działa. Gdy ręcznie klikam wykona to makro to formularz się otwiera. Tak jakby mi czegoś brakowało...ale czego?

I czy można zrobić dodatkowo tak, aby plik bazy danych po otwarciu się automatycznie minimalizował, tak aby zostawał na wierzchu sam formularz startowy?
Ostatnio zmieniony wt lut 17, 2015 8:45 pm przez Jan_J, łącznie zmieniany 1 raz.
Powód: [code]
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

A przypisałeś makro do zdarzenia Otwórz dokument w menu Narzędzia -> Dostosuj
Co do drugiej części pytania, pewno się da, ale w tej chwili nie dysponuje czasem na jego stworzenie.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

no właśnie o tym nie wiedziałem, wielkie dzięki.
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

jeszcze jedno pytanie - jak trzeba zmienić tą linię jeśli mam bazę podłączoną do mysql i hasło to 1111? Bo błąd mi wyskakuje przy tej linii.

sqlconnection = ThisComponent.DataSource.GetConnection("","")
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

Kod: Zaznacz cały

GetConnection("User","Password")
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

działa! Wielkie dzięki. Choć nie ukrywam że najpierw wpisałem user i password zamiast root i 1111:)
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

gdy tylko coś mi się uda to napotykam kolejny problem:(

teraz razem z otwarciem pliku wyskakuje ekran startowy, ale gdy klikam w przyciski, gdzie mam makra przenoszące do innych formularzy to pojawił się błąd. Chyba cały czas brakuje hasła, bo wcześniej te makra działały.

Kod: Zaznacz cały

Sub otworz_wprowadzanie_wyrobow

  const sNewDocumentName="wprowadzanie_wyrobow"
  oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open

End Sub
powyżej polecenie, błąd wyskakuje przy ostatniej linii. Co trzeba dodać żeby tutaj też automatycznie dodać usera i password?
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

czekam z niecierpliwością na jakąś podpowiedź.

W międzyczasie pojawił mi się kolejny błąd - w kwerendzie chce wyszukiwać dane na podstawie wpisanego parametru, ale za każdym razem uzyskuje wszystkie możliwe wiersze z tabeli. Co jest źle w poniższym wyrażeniu?

SELECT * FROM `wyroby4` WHERE `numer_wyrobu` LIKE '%' || ( :var_LN ) || '%'
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

mih pisze:teraz razem z otwarciem pliku wyskakuje ekran startowy, ale gdy klikam w przyciski, gdzie mam makra przenoszące do innych formularzy to pojawił się błąd.
Stwórz procedury na podstawie bazy z której posiłkować się tworząc panel nawigacyjny, pamiętam że miałem podobny problem gdy ją pisałem.
mih pisze:W międzyczasie pojawił mi się kolejny błąd - w kwerendzie chce wyszukiwać dane na podstawie wpisanego parametru, ale za każdym razem uzyskuje wszystkie możliwe wiersze z tabeli. Co jest źle w poniższym wyrażeniu?
Co pokaże kwerenda gdy usuniesz operatory LIKE?
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

problem ze składnią SQL rozwiązany, z internetu wyczytałam że MYSQL nie obsługuje operatorów ||, podwójny CONCAT rozwiązał problem. Co do drugiego problemu - skorzystam z twoich wskazówek i dam znać co z tego wyszło. Dzięki.
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

Twoje makro otwierające inne formularze z panelu nawigacyjnego to:

sub OpenForms( oev as variant )
sTag = oev.source.model.tag
sFormName = oev.source.model.Name
OpenForm( getFormsTC, getConnectionTC, sFormName, sTag )
end sub

skopiowałem to do siebie, dodatkowo nazwałem każdy przycisk tak jak formularz który ma być otwierany (rozumiem że to konieczność) i wyskakuje mi błąd przy ostatniej linii:

Błąd uruchomieniowy języka BASIC.
Nie zdefiniowano procedury lub funkcji

Pamiętasz może co jeszcze trzeba było zrobić aby to działało? Tą bazę też miałeś podłączoną do MYSQLa?
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

mih pisze:błąd przy ostatniej linii:
Błąd uruchomieniowy języka BASIC.
Nie zdefiniowano procedury lub funkcji
Procedura wtwołująca korzysta z procedur funkcyjnych które też mogą korzystać z innych procedur:

Kod: Zaznacz cały

OpenForm( getFormsTC, getConnectionTC, sFormName, sTag )
OpenForm, i jej argumenty, getFormsTC, getConnectionTC są procedurami funkcyjnymi.
sTag jest zmienną pobraną z właściwości przycisku wywołującego ("Dodatkowe informacje" lub coś o podobnej nazwie) i ma za zadanie zachować informacje z którego miejsca został formularz wywołany, zawsze powrót do formularza poprzedniego co było problematyczne w przypadku otwartych kilku.
Musisz przeprowadzić małe śledztwo żeby dojść do tego co i z czym działa.
mih pisze:Tą bazę też miałeś podłączoną do MYSQLa?
Nie.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

działa!:) dzięki, dzięki, dzięki

powyrzucałem z twojego kodu funkcje, których (jeszcze) nie potrzebuje, zostawiłem to co poniżej i działa.

function OpenForm( formContainer as variant, oConnection as variant, sFormName as string, sTag as String) as variant
Dim aProp(2) As New com.sun.star.beans.PropertyValue
aProp(0).Name = "ActiveConnection"
aProp(0).Value = oConnection
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"
aProp(2).Name = "Hidden"
aProp(2).Value = False

OpenForm = formContainer.loadComponentFromURL(sFormName,"_blank",0,aProp())

If len(sTag) > 0 Then
oDrawPage = OpenForm.getDrawPage()
oForms = oDrawPage.getForms()
oObj2 = oForms.getByName("MainForm")

End If

end function



function getFormsTC() as variant
getFormsTC = thisComponent.Parent.getFormDocuments
end function



function getConnectionTC() as variant
getConnectionTC = thisComponent.Drawpage.Forms(0).ActiveConnection
end function

sub OpenForms( oev as variant )
sTag = oev.source.model.tag
sFormName = oev.source.model.Name
OpenForm( getFormsTC, getConnectionTC, sFormName, sTag )
end sub

jak wkleiłem na początku całość to wyskakiwał mi błąd przy funkcji "zamknij", pomogło obcięcie pierwszej funkcji z góry z tym argumentem, usunąłem:

oObj3 = oObj2.getByName("Zamknij")
oObj3.Label = sTag

oraz całą funkcję "zamknij". Pamiętasz do czego to służyło?

i jak zwykle kolejny napotkany problem, tym razem mały. Gdy blokuje edycję jakiegoś formularza to czcionka w polach typu listbox robi się szara. Można to jakoś zmienić żeby wrócić do czerni?
OpenOffice 4.1 na Windows 7
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

Belstar, kiedyś mi podpowiedziałeś makro

Sub Format_Pola(oEv)
Zmienna = oEv.Source.Model
If Zmienna.getCurrentValue = "nie" Then
Zmienna.BackgroundColor = RGB(255, 51,51)
Else
Zmienna.BackgroundColor = RGB(153, 255,102)
End IF

End Sub

które formatowało wartości w pojedynczym formancie. Czy jest możliwe aby podobnie sformatować formant tabeli (podformularz)? Jeśli tak to czy można formatowanie każdego wiersza uzależnić od pola daty? Ktoś może się orientuje i jakoś by mnie naprowadził? Wiem że w raporcie można takie rzeczy robić, ale bardziej potrzebowałbym to w formularzu.
OpenOffice 4.1 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: początki pracy z oobase + mały problem

Post autor: belstar »

belstar pisze:oraz całą funkcję "zamknij". Pamiętasz do czego to służyło?
Wspominałem wcześniej, aktywowanie formularza wywołującego.
mih pisze:Czy jest możliwe aby podobnie sformatować formant tabeli (podformularz)?
Jest, ale dotyczy całej tabeli, a po części pól tabeli.
mih pisze:czy można formatowanie każdego wiersza uzależnić od pola daty?
Nie lub o tym nie słyszałem.
mih pisze:Wiem że w raporcie można takie rzeczy robić, ale bardziej potrzebowałbym to w formularzu.
Formularz służy do wprowadzania danych a nie ich reprezentacji, choć po części to realizuje.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
mih
Posty: 53
Rejestracja: sob gru 20, 2014 12:42 pm

Re: początki pracy z oobase + mały problem

Post autor: mih »

nie wiem czy dobrze sprecyzowałem o co mi chodzi z tym formatowaniem warunkowym, więc wyjaśnię jeszcze raz. Chodzi o to aby w załączonym pliku, w formularzu "podzial_na_dzialy" nadać różne kolory całym wierszom (rekordom) w tabeli w zależności od pola "termin_realizacji" . Pozycje gdzie "termin_realizacji" = CURRENT DATE byłyby żółte, "termin_realizacji" > CURRENT DATE zielone, a "termin_realizacji" < CURRENT DATE np. czerwone. Czy jest takie coś możliwe?
Załączniki
Nowa_b.odb
(91.82 KiB) Pobrany 265 razy
OpenOffice 4.1 na Windows 7
ODPOWIEDZ