Tworzenie oferty - spięcie Calc z Writer

Użytkowanie arkusza kalkulacyjnego
AjsztajN
Posty: 3
Rejestracja: sob gru 09, 2023 12:53 pm

Tworzenie oferty - spięcie Calc z Writer

Post autor: AjsztajN »

Cześć, potrzebuję jak najbardziej zautomatyzować proces tworzenia ofert. Tworzę ich około 1000 rocznie i sam proces niepotrzebnych rzeczy długo trwa.

Aktualnie proces wygląda następująco :
1. uzupełnienie formatki w calc ( standardowo mam przygotowaną ofertę na 30 pozycji )
2. kopiowanie danych do notatnika, usunięcie niepotrzebnych pozycji. [próbowałem wstawiać z łącza DDE ale wtedy nie mogę zmienić ilości pozycji w tabeli we writerze "Nie można zmienić struktury połączonej tabeli " ]

3. Otworzenia dokumentu już z danymi klienta dla którego już przygotowana była kiedyś oferta lub stworzenie nowego pliku dla nowego klienta jako formatka.

4. wstawienie do writera i utworzenie z nich tabeli jednym kliknięciem, a następnie nadanie estetyki tabeli poprzez dogranie szerokości.

5. Dodanie szczegółów do oferty jak termin realizacji, termin płatności itp. często między 2-10 ppdkt.

6. Generowanie pdf

Założenia arkusza oraz pytania:

AD1. głównym założeniem arkusza jest prostota korzystania z niego, wypełnianie nazwy ofertowanej rzeczy oraz wypełnienie cen, marż itp.
reszta powinna się odbywać automatycznie tylko z zaznaczeniem tak/nie lub ptaszka. Automatyczne generowanie pliku do writera oraz do pdf'a.
Docelowo arkusz miałby być użytkowany przez większą ilość osób stąd konieczna prostota całego arkusza.

Ad 1 i 2 . wybranie poprzez zaznaczene zakresu lub "ptaszkiem" ilości pozycji zawartych w ofercie - np. tylko pozycje 1-5

AD2 i 4. Jeżeli jest możliwość pominięcia notatnika (kompletnie niepotrzebny element ) oraz writera do wygenerowania estetycznego pdf'a jak najbardziej dopuszczam taką możliwość

AD3. Na etapie calca chciałbym też wybierać klienta dla którego dedykowana jest oferta oraz osoby kontaktowej - korzystać z listy rozwijalnej czy bazy danych czy jest jeszcze jakaś inna opcja ?

AD4. Czy można wstawić automatycznie do writera tabelę o danych parametrach tak aby nie trzeba było poprawiać jej szerokości oraz dodawać autowyrównania do środka itp. ?

Ad5, Chciałbym w calcu mieć wypisanych przykładowych 20 pozycji i tylko poprzez zaznaczenie ptaszka lub prawda/fałsz 0/1 dodawałoby do dokumentu te dane które potrzebuję, przykładowo:
- termin realizacji 10 dni roboczych
- termin realizacji 30 dni roboczych ( wybór tej opcji )
- termin realizacji 60 dni roboczych


Ad1-6. Jak najbardziej dopuszczam utworzenia sprzężonej formatki składającej się z pliku calc oraz writer który będzie trzeba kopiować dla każdej oferty.

Ad 1-6. Jeżeli da się utworzyć to wszystko w calcu byłoby idealnie, ale dopuszczam użycie makra, vba, baz danych, formularzy czy łącz dde do writera

AD4 . czy da się wygenerować automatycznie taki dokument z poziomu calc tak aby miał także nazwę jak plik z calca lub inną nazwę wpisaną w którąś z komórek w tym dokumencie ?


Proszę o pomoc lub nakierowaniu w którym kierunku podążać. Z góry dzięki za poświęcony czas :super:
OpenOffice 4.1.11 ; Windows 11 Home
Awatar użytkownika
Rafkus
Posty: 516
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Tworzenie oferty - spięcie Calc z Writer

Post autor: Rafkus »

Można by stworzyć taki pik całkowicie w Calcu.
W jednym arkuszu zrobić listę wszystkiego czegoś tam, natomiast w arkuszu 2 stworzyć formularz, który będzie wyświetlał wybrane pozycje z arkusza1. To rozwiązanie możesz zobaczyć tutaj
Calc (tak samo jak Writer) może zapisywać plik w formacie PDF.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
AjsztajN
Posty: 3
Rejestracja: sob gru 09, 2023 12:53 pm

Re: Tworzenie oferty - spięcie Calc z Writer

Post autor: AjsztajN »

Dzięki, bardzo pomocny link.

Na ten moment mam problem z utworzeniem "tabeli" / komórek zależnych od ilości wycenianych pozycji.

Załóżmy że standardowo mamy plik z 30 pozycjami ale chciałbym żeby dało się wybrać ilość ich wyświetlania np. tylko 5 pozycji a zaraz pod nimi pojawiła się suma wszystkich ( w tym wypadku 5 elementów ) elementów.
OpenOffice 4.1.11 ; Windows 11 Home
AjsztajN
Posty: 3
Rejestracja: sob gru 09, 2023 12:53 pm

Re: Tworzenie oferty - spięcie Calc z Writer

Post autor: AjsztajN »

Cześć, proszę o nakierowaniu mojego toku myślenia na dobre tory - niestety według mojej metody nie wychodzi wynik "Błąd:504"

Na arkuszu Baza danych mamy kilka danych w wierszach.

Na arkuszu Lista wyboru mamy dwie listy wyboru:
- jedna lista ograniczająca bazę tylko do Firmy ( w poprawności danych zaznaczony cała kolumna "Firma" )

Kod: Zaznacz cały

$Baza_danych.$A$2:$A$100
- drugą listę ograniczająca bazę po drugim parametrze "Imię nazwisko"

Kod: Zaznacz cały

JEŻELI(Baza_danych.A$2:A$100=A2;Baza_danych.B$2:B$100;"")
w arkuszu "wynik automatycznego uzupełnienia powinno na tej podstawie pobrać informację z bazy danych i wkleić je w dobre pola:
Firma
Imię nazwisko:
Tel:

Kod: Zaznacz cały

=BD.POLE(Baza_danych.A1:C6;"Firma";Lista_wyboru.A2)
Załączniki
Listawyboru_baza_wynik.ods
(9.06 KiB) Pobrany 46 razy
OpenOffice 4.1.11 ; Windows 11 Home
Awatar użytkownika
Rafkus
Posty: 516
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Tworzenie oferty - spięcie Calc z Writer

Post autor: Rafkus »

Troszkę źle rozumiesz parametry funkcji BD.POLE():

Kod: Zaznacz cały

BD.POLE(baza_danych; pole_bazy_danych; kryteria_wyszukiwania)
  • baza_danych - zakres danych źródłowych, czyli twoja baza danych: Baza_danych.$A$1:$C$6 to masz dobrze :super: ;
  • pole_bazy_danych - z którego pola ma zostać zwrócona jakaś wartość:"tel"; :super:
    niepotrzebnie chcesz poznać nazwę firmy dla wybranej firmy, zamiast formuły

    Kod: Zaznacz cały

    =BD.POLE(Baza_danych.A1:C6;"Firma";Lista_wyboru.A2)
    wstaw tylko odwołanie do danej komórki:

    Kod: Zaznacz cały

    =Lista_wyboru.A2
    Podobnie zrób z imieniem i nazwiskiem
  • kryteria_wyszukiwania - tu niestety źle rozumujesz. W pomocy tej funkcji można wyczytać:
    Kryteria wyszukiwania określa zakres komórek zawierających kryteria wyszukiwania. Podobnie jak Baza danych, jej pierwszy wiersz to także nazwy pól, a kolejne wiersze to warunki dla powiązanych pól.
Tutaj masz odwołanie do Funkcji bazy danych
Przekazuje również poprawiony plik
Załączniki
Listawyboru_baza_wynik.ods
(10.05 KiB) Pobrany 44 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Tworzenie oferty - spięcie Calc z Writer

Post autor: Jermor »

Kolega @Rafkus odpowiedział ci to, co sam chciałem napisać.
Chcę także przedstawić ci inne, alternatywne rozwiązanie tego problemu, bez korzystania z funkcji bazodanowych.
Obszar twoich danych, nazwałem "wykaz" i traktuje go jak tablicę, z której będę pobierał dane.
Dlatego w arkuszu Lista_wyboru umieściłem formułę, która na podstawie firmy i nazwiska odnajduje pozycję (nr wiersza w obszarze "wykaz"), na której znajduje się osoba. Jest to formuła macierzowa zatwierdzana skrótem klawiaturowym CTRL+SHIFT+ENTER.
Wyjaśnienie, dlaczego wstawiłem znak "#" do ciągu znakowego. Chodziło o wyraźne rozgraniczenie nazwy firmy i nazwiska. Mogłoby bowiem zdarzyć się tak, że w firmie JAN pracuje pan Kobuszewski Stefan, a w firmie JANKO pan Buszewski Stefan. Bezpośrednie połączenie tych słów prowadziłoby najpewniej do niewłaściwego działania. Dodałem także formatowanie warunkowe sygnalizujące sytuację, gdy w polu imię i Nazwisko znajduje się ktoś, kto nie pracuje w wybranej firmie. Tak się może zdarzyć, gdy zmieniona zostanie wybrana firma. Nie powoduje to zmiany nazwiska znajdującego się już w komórce z nazwiskiem, więc użytkownik wie, że coś jest nie tak.
Funkcja INDEKS() pobiera nazwisko z tego wiersza i kolumny 2, a telefon z kolumny 3.
Załączniki
AjsztajN_1.ods
(10.14 KiB) Pobrany 40 razy
AOO 4.1.15, LO 7.5.9 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
ODPOWIEDZ