Wypełnianie tabeli ale w Write
Wypełnianie tabeli ale w Write
Czy da się odwołać do poszczególnych komórek tabeli, ale zrobionej w Write nie w Calc?
Mam prostą ewidencję z lp, data, numer.
1) Chciałbym po otworzeniu pliku zwiększyć lp i ustawić kursor w nowym, ostatnim wierszu tabeli.
2) Kolejny problem to jak dodać nazwę autora do numeru wprowadzonego w lp i zapisanie go w odrębnym polu tabeli (lub tylko pokazanie w wyskakującym oknie).
Jak się za to zabrać?
Mam prostą ewidencję z lp, data, numer.
1) Chciałbym po otworzeniu pliku zwiększyć lp i ustawić kursor w nowym, ostatnim wierszu tabeli.
2) Kolejny problem to jak dodać nazwę autora do numeru wprowadzonego w lp i zapisanie go w odrębnym polu tabeli (lub tylko pokazanie w wyskakującym oknie).
Jak się za to zabrać?
OpenOffice 3.1 Windows XP
Re: Wypełnianie tabeli ale w Write
Nie odpowiem, przynajmniej na razie. Musi dojrzeć. Może dałoby się bez pisania makr?
Ale w związku z problemem ogólniejsza refleksja. Nie moja, choć z wrocławskiego podwórka: http://staryzgred.blogspot.com/2012/11/ ... -word.html
Ale w związku z problemem ogólniejsza refleksja. Nie moja, choć z wrocławskiego podwórka: http://staryzgred.blogspot.com/2012/11/ ... -word.html
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wypełnianie tabeli ale w Write
Ewidencja ma być używana przez wielu użytkowników, na wielu komputerach.
Dodanie nowego wiersza, auto numeracja pierwszej kolumny (lp), ustawienie kursora w pierwszym polu do edycji, ułatwi znacznie pracę i ograniczy możliwość popełnienia błędów. To samo ma uczynić wygenerowanie numeru pisma na podstawie inicjałów użytkownika.
Dobra, nie czekam na gotowca, nie znam OOBasic ale będę to sobie rozgryzał sam.
Udało mi się już przestawić kursor na ostatni wiersz tabeli.
Teraz muszę dodać nowy i zwiększyć numerację pierwszej kolumny (lp)
Dodanie nowego wiersza, auto numeracja pierwszej kolumny (lp), ustawienie kursora w pierwszym polu do edycji, ułatwi znacznie pracę i ograniczy możliwość popełnienia błędów. To samo ma uczynić wygenerowanie numeru pisma na podstawie inicjałów użytkownika.
Dobra, nie czekam na gotowca, nie znam OOBasic ale będę to sobie rozgryzał sam.
Udało mi się już przestawić kursor na ostatni wiersz tabeli.
Kod: Zaznacz cały
Tables = ThisComponent.getTextTables()
Table = Tables.getByIndex(0)
oCell = Table.getCellByName("A2")
oText = ThisComponent.Text
VCurs = ThisComponent.CurrentController.ViewCursor
Table = Tables.getByIndex(0)
oCell = Table.getCellByposition(0,table.rows.count-1)
OpenOffice 3.1 Windows XP
Re: Wypełnianie tabeli ale w Write
W takim razie dlaczego dokument tekstowy, a nie baza danych?wicy pisze:Ewidencja ma być używana przez wielu użytkowników, na wielu komputerach.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wypełnianie tabeli ale w Write
Z powodu ograniczeń sieciowych, braków dostępów i niechęci informatyków, etc... Musi być dokument typu Write z powodu ogólnej tępoty użytkowników, którzy tylko Writera z grubsza ogarniają. Musi być OO z powodu braków w licencyjnych w MSO. Inaczej dawno bym sobie z tym poradził i nie błądził jak dziecko we mgle w OO Basicu.
OpenOffice 3.1 Windows XP
Re: Wypełnianie tabeli ale w Write
Można napisać instrukcję, jak jeździć traktorem do sklepu po piwo. I nawet można z niej codziennie korzystać. Tylko że traktory w zasadzie służą do czego innego.
Załóż nową bazę danych. W niej załóż tabelę z polami lp, imię, itd. Wymuś żeby pole lp było kluczem głównym. Ustaw w opcjach, by wpis do pola lp był wymagany. Tyle wystarczy, by lp sama się numerowała.
Uwaga: to nie znaczy, że numeracja będzie zawsze po kolei. Każdy wpis zyska raz nadany numer, który nie będzie się zmieniał przy usuwaniu.
Załóż nową bazę danych. W niej załóż tabelę z polami lp, imię, itd. Wymuś żeby pole lp było kluczem głównym. Ustaw w opcjach, by wpis do pola lp był wymagany. Tyle wystarczy, by lp sama się numerowała.
Uwaga: to nie znaczy, że numeracja będzie zawsze po kolei. Każdy wpis zyska raz nadany numer, który nie będzie się zmieniał przy usuwaniu.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wypełnianie tabeli ale w Write
Hehe... jak? Czym? Nie mam narzędzi ani uprawnień.Jan_J pisze:Załóż nową bazę danych
To by było dopiero wytaczanie działa na komara.
Poradziłem sobie już prawie, sklecając taki oto kod:
Kod: Zaznacz cały
Dim Rows As Object
Dim tcurs As Object
Dim oCell As Object
Tables = ThisComponent.getTextTables()
Table = Tables.getByIndex(0)
oCell = Table.getCellByName("A2")
oText = ThisComponent.Text
VCurs = ThisComponent.CurrentController.ViewCursor
Table = Tables.getByIndex(0)
oCell = Table.getCellByposition(0,table.rows.count-1)
tcurs = oCell.createTextCursor()
VCurs.gotoRange(oCell.Text.Start, False)
VCurs.gotoEndOfLine(False)
tcurs.string = table.rows.count-1
table.rows.insertbyindex(table.rows.count, 1)
pokoj = "001"
inicjaly="AA"
MsgBox "Twój numer pisma to: "+"numer_pisma/"+tcurs.string+"/"+pokoj+"/2013-"+inicjaly, MB_OK, "Numer pisma"
end sub
1) jak przed dodaniem wiersza w drugiej kolumnie wstawić bieżącą datę
2) jak pod "inicjały" podstawić nazwę użytkownika/autora otwierającego dokument?
OpenOffice 3.1 Windows XP
Re: Wypełnianie tabeli ale w Write
OpenOffice.org Base wbudowana w pakiet. Do tego, co opisałeś, wystarczy.wicy pisze:Hehe... jak? Czym? Nie mam narzędzi ani uprawnień.
To by było dopiero wytaczanie działa na komara.
Nie jest to armata na komara, tylko właściwe narzędzie do rejestrowania wpisów. Prostsze niż pisanie makra symulującego tabelę bazodanową w dokumencie tekstowym.
@1 datę pobierzesz jako wartośćtypu variant/date: d = date()Prosiłbym jeszcze o dwie podpowiedzi
1) jak przed dodaniem wiersza w drugiej kolumnie wstawić bieżącą datę
2) jak pod "inicjały" podstawić nazwę użytkownika/autora otwierającego dokument?
albo w postaci tekstu d = str(date()). Dalej pozostaje wstawić ją do pola; utwórz w polu tabeli kursor tekstowy i napisz nim tekst, ale to już umiesz.
@2 właściwości thisComponent.DocumentInfo.author oraz thisComponent.DocumentInfo.ModifiedBy. W przypadku, kiedy dokument nie był modyfikowany, możesz dostać błędne dane. Trzeba by raczej poszukać tej nazwy w konfiguracji pakietu; jakoś nie widzę tego w dokumentacji...
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)