11

Odp: macro w szablonach

Andy napisał/a:
lazik napisał/a:

%XMP_FileTime z XMP może byłoby najlepszym rozwiązaniem?

Zainstalowalem XMP, studiuje help i jak narazie tylko sie dymi z mojej glowy.:-)  Z tego co wstepnie widze to realnie mozna odliczyc ilosc "n" dni ale jak narazie niewpadlem na pomysl aby nie bralo pod uwage przynajmniej sobot i niedziel.

Według mnie użycie tego makra nic nie da, ponieważ nadal nie będzie rozwiązany problem podstawowy: nie wiadomo jaki plik załączyć i ile dni odliczać? Automatycznie raczej nie da się tego zrobić. Sądzę, że jedyny sposób na ominięcie tych kłopotów to próba użycia wysyłki plików z Terminarza i w związku z tym mam kilka pytań. Odpowiedzi przybliżą (lub oddalą) rozwiązanie:

1. Czy lista odbiorców jest stała? Jeśli nie, to w jaki sposób powstaje? Ręczny wybór z książki czy z nagłówka jakichś wiadomości?

2. Czy nazwa pliku musi być podana w temacie wiadomości?

3. Czy nazwa załączonego pliku jest używana w treści wiadomości?

4. Czy treść wiadomości jest stała?

12

Odp: macro w szablonach

W XMP masz też takie makropolecenie: %XMP_TimeAdd. Add w tym przypadku działa także na znaczek -.
Można więc dla podania dnia przed:
%If:#%date='dddd'#=#sobota#:#%XMP_TimeAdd("%date=(ddmmyyyy)","-1","D","mmdd"#:#txt2#

Powyższe zachowa kalendarz, ale nie uwzględni dni wolnych od pracy (oprócz soboty smile ), które trzebaby było w jakiś wspaniałomyślny sposób predefiniować. Ogólnie jednak zabawa wymaga trochę pracy, więc najprościej bym sobie użył opcji dialogowych w makropoleceniach XMP i podefiniował tam:
Dołącz plik:
- piątkowy
- 1 dzień wstaecz
- 2 dni wstecz
- x dni wstecz
- podsumowanie ostatniego miesiąca
...
IMVHO najłatwiej by było się w tym połapać.

13

Odp: macro w szablonach

Zygmunt napisał/a:
Andy napisał/a:
lazik napisał/a:

%XMP_FileTime z XMP może byłoby najlepszym rozwiązaniem?

Zainstalowalem XMP, studiuje help i jak narazie tylko sie dymi z mojej glowy.:-)  Z tego co wstepnie widze to realnie mozna odliczyc ilosc "n" dni ale jak narazie niewpadlem na pomysl aby nie bralo pod uwage przynajmniej sobot i niedziel.

Według mnie użycie tego makra nic nie da, ponieważ nadal nie będzie rozwiązany problem podstawowy: nie wiadomo jaki plik załączyć i ile dni odliczać? Automatycznie raczej nie da się tego zrobić. Sądzę, że jedyny sposób na ominięcie tych kłopotów to próba użycia wysyłki plików z Terminarza i w związku z tym mam kilka pytań. Odpowiedzi przybliżą (lub oddalą) rozwiązanie:

1. Czy lista odbiorców jest stała? Jeśli nie, to w jaki sposób powstaje? Ręczny wybór z książki czy z nagłówka jakichś wiadomości?

Lista odbiorcow jest od 2 do ponad 20 w zaleznosci od szablony i jest zadefiniowana na stale w szablonie.
Zmienia sie sporadycznie a zmiany przeprowadza sie recznie.


2. Czy nazwa pliku musi być podana w temacie wiadomości?

Z tym bywa roznie, niekiedy jest podany konkretny temat a niekiedy jest to nazwa pliku.

3. Czy nazwa załączonego pliku jest używana w treści wiadomości?

Sporadycznie ale z tym to jest najmniejszy problem.

4. Czy treść wiadomości jest stała?

Tresc wiadomosci sa niezmienne, sporadycznie sa dolaczone nazwy plikow.

Jak wspominalem mamy w firmie ponad 40 szablon, kazda z nich jest w czyms specyficzna.
W ten sposob udalo sie zautomatyzowac okolo 90% recznej pracy.

Dla wyjasnienia maily sa wysylane na przemian z kilku stanowisk w zaleznosci od grafikonu .
Szablony sa umieszczone na sieciowym dysku tak aby byly dostepne dla wszystkich stanowisk.
Takze wszystkie zmiany przeprowadza sie w jednym miejscu a jest to dostepne dla wszyskich uzytkownikow.
Kto pierwszy dostanie nowe dane ten robi poprawki w szablonach.

Kazdy szablon ma dwojcyferne oznaczenie.

Takze skompletowanie maila wymaga tylko napisanie cyfry xy Ctrl+ Space a mail juz jest przygotowany do wysylki.
W razie braku jakiegos pliku pojawia sie ostrzezenie a wtedy problem rozwiazuje sie recznie.
Nastepuje tylko szybka wizualna kontrola i mail jest gotowy do wyslania.
W ten sposob kompletuje sie maile w kilku wersjach jezykowych dla roznych odbiorcow z rozna zawartoscia.
Nietopierz zminimalizowal na minimum manualna prace, zautomatyzowal mase czynnosci a tym samym wyeliminowal mase bledow zwiazanym z czynnikiem ludzkim.
Starych pracownikow ciezko bylo namowic na nietopierza ale stopniowo jak przychodzil ktos nowy na wydzial to pokazywalem jak to mozna zrobic szybciej i lepiej. Mlodzi to chwalili od samego poczatku. Nakoniec udalo sie dotego przekonac i tych najodporniejszych. Widzac jak robota sama szla w mig, od reki.

Dosc dlugo mielismy kupione licencje w firmie i byly niewykorzystane. Ostanio musielismy dokupic kilka licencji aby wykryc wszystkich ktorzy byli zainteresowani o nietopierza.
Osobiscie probowalem mase roznych programow ale jak narazie nic lepszego nieznalazlem.
Jest idealny i niezastapiony do obslugi przynajmniej dwoch kont pocztowych.
Sam program ma mase innych niezastapionych zalet.
Wystarczylo chwaly..... bo bedzie zle odebrane przez czytajacych:-)

14

Odp: macro w szablonach

A patrzyłeś na poniższe?

%If:#%date='dddd'#=#sobota#:#%XMP_TimeAdd("%date=(ddmmyyyy)","-1","D","mmdd")#:#%date="mmdd"#

Np. jak weźmiesz w nim zamiast sobota wpiszesz poniedziałek (0320) i dasz -3 to wyjdzie na piątek z poprzedniego tygodnia i zwróci 0317. A jak już przy czymś takim jesteśmy to dorbić do tego plik tekstowy z dniami wolnymi od pracy w podobnym jak wyżej formacie mmdd i masz wszystko co potrzebujesz. W celu pominięcia dodawania automatycznie plików które nie istnieją (błędy) można wykorzystać dodatkowo makropolecenie z XMP - %XMP_FileExist(Plik). [zwraca "1" gdy plik istnieje i '0' w przeciwnym razie]

Trzeba by było więc zrobić konstrukcję:
jeżeli plik z dnia x istnieje dołącz plik x w innym przypadku:
jezeli plik z dnia x-1 istnieje dołacz plik x-1 w innm przypadku:
jezeli plik z dnia x-2 istnieje dołacz plik x-2 w innm przypadku:
...

%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmdd"#
plik z dnia x istnieje - %XMP_FileExist(S:\xyz\%date="mmm"_%date="yy"\Ozn%date="mmdd".doc)=1
plik z dnia x-1 istnieje - %XMP_FileExist(S:\xyz\%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmm"#_%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","yy"#\Ozn%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmdd"#.doc)=1
plik z dnia x-2 istnieje - %XMP_FileExist(S:\xyz\%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","mmm"#_%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","yy"#\Ozn%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","mmdd"#.doc)=1

W wyrażeniach mogą być błędy bo specem w tej dziedzinie niestety nie jestem.

15

Odp: macro w szablonach

lazik napisał/a:

W XMP masz też takie makropolecenie: %XMP_TimeAdd. Add w tym przypadku działa także na znaczek -.
Można więc dla podania dnia przed:
%If:#%date='dddd'#=#sobota#:#%XMP_TimeAdd("%date=(ddmmyyyy)","-1","D","mmdd"#:#txt2#

Powyższe zachowa kalendarz, ale nie uwzględni dni wolnych od pracy (oprócz soboty smile ), które trzebaby było w jakiś wspaniałomyślny sposób predefiniować. Ogólnie jednak zabawa wymaga trochę pracy, więc najprościej bym sobie użył opcji dialogowych w makropoleceniach XMP i podefiniował tam:
Dołącz plik:
- piątkowy
- 1 dzień wstaecz
- 2 dni wstecz
- x dni wstecz
- podsumowanie ostatniego miesiąca
...
IMVHO najłatwiej by było się w tym połapać.

Widze ze narobilem porzadnego zamieszania, troche nad moje sily. Wybralem droge %XMP. Czasami mam wrazenie ze jestem zielony jak te ramki na tym forum:-) Troche sie gubie w tym co podrzuciles w ostatniej wiadomosci.Ale to dlatego ze nieznam dokladnie funkcji niektorych znakow. Prubuje stopniowo sobie jakos wszystko pokoleji ulozyc abym  lepiej zrozumial to co robie ale widze ze to mnie jak narazie troche przerasta. Bede musial jeszcze troche poczytac.
Narazie udalo sie mi nastawic dzialajace makro na wybranie pliku z przed "x" dni, w moim przypadku -3 dni.

%ATTACHFILE='D:\Test\plik_%XMP_TimeAdd("%date=(mmdd)","-3","D","mmdd".txt'

Dzisiejszy plik mam nastawiony jako "plik_0320"
ale do maila podbiera "plik_0317"
Czyli maly krok do przodu:-)

Teraz moja uwaga jest zwrucona w tym kierunku aby wybralo plik z poprzedniego miesiaca "-1", "M" a zarazem aby argument "dd" mial najwieksza wartosc. Troche sie gubie ale moze jakos malymi krokami posune problem troche dalej....

16 (edytowany przez Andy 2006-03-20 22:33:36)

Odp: macro w szablonach

lazik napisał/a:

A patrzyłeś na poniższe?

%If:#%date='dddd'#=#sobota#:#%XMP_TimeAdd("%date=(ddmmyyyy)","-1","D","mmdd")#:#%date="mmdd"#

Np. jak weźmiesz w nim zamiast sobota wpiszesz poniedziałek (0320) i dasz -3 to wyjdzie na piątek z poprzedniego tygodnia i zwróci 0317. A jak już przy czymś takim jesteśmy to dorbić do tego plik tekstowy z dniami wolnymi od pracy w podobnym jak wyżej formacie mmdd i masz wszystko co potrzebujesz. W celu pominięcia dodawania automatycznie plików które nie istnieją (błędy) można wykorzystać dodatkowo makropolecenie z XMP - %XMP_FileExist(Plik). [zwraca "1" gdy plik istnieje i '0' w przeciwnym razie]

Trzeba by było więc zrobić konstrukcję:
jeżeli plik z dnia x istnieje dołącz plik x w innym przypadku:
jezeli plik z dnia x-1 istnieje dołacz plik x-1 w innm przypadku:
jezeli plik z dnia x-2 istnieje dołacz plik x-2 w innm przypadku:
...

%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmdd"#
plik z dnia x istnieje - %XMP_FileExist(S:\xyz\%date="mmm"_%date="yy"\Ozn%date="mmdd".doc)=1
plik z dnia x-1 istnieje - %XMP_FileExist(S:\xyz\%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmm"#_%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","yy"#\Ozn%XMP_TimeAdd=#"%date=~ddmmyyyy~","-1","D","mmdd"#.doc)=1
plik z dnia x-2 istnieje - %XMP_FileExist(S:\xyz\%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","mmm"#_%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","yy"#\Ozn%XMP_TimeAdd=#"%date=~ddmmyyyy~","-2","D","mmdd"#.doc)=1

W wyrażeniach mogą być błędy bo specem w tej dziedzinie niestety nie jestem.

Widze ze sie troche dublujemy i pracujemy rownoczesnie:-) Twoja propozycja jest dla mnie zrozumiala, ma logike i jak bede mial chwile czasu to postaram sie to wyprubowac. Niesadzilem ze narobie tyle zamieszania. Ale to sobie bardzo cenie. Czym wiecej glow, wiecej rozumu i pomyslow....
Twoj pomysl w prosty sposob rozwiazalby przerwy weekendowe i swiateczne.
Prosze o wyjasnienie znaczenia znakow ~ i # , czy  dobrze rozumie ze jest to forma nawiasow?

17

Odp: macro w szablonach

Andy napisał/a:

Prosze o wyjasnienie znaczenia znakow ~ i # , czy  dobrze rozumie ze jest to forma nawiasow?

Jeśli w makrach nie wystarcza cudzysłowów i apostrofów, do oznaczenia argumentów stosuje się inne znaki, np. &, #, @, ~ (pod warunkiem, że nie będzie to w sprzeczności z samym argumentem).

Wracając zaś do głównego wątku: czy wygenerowany załącznik jest wysyłany jednorazowo do ustalonej listy odbiorców, czy też może być wysyłany kilka razy tego samego dnia do różnych odbiorców? Skąd użytkownik wie, że akurat ten a nie inny plik ma załączyć?

Cały czas zastanawiam się nad wykorzystaniem możliwości automatycznej wysyłki plików z Terminarza programu The Bat!. Mogłoby to działać w taki sposób, że w określonym katalogu byłyby gromadzone pliki do wysyłki i o określonych porach dnia The Bat wysyłałby je automatycznie z zastosowaniem odpowiednich szablonów. Takich zadań wysyłkowych w Terminarzu mogłoby być kilka, lecz to zależy od organizacji pracy zespołu przygotowującego pliki oraz od tego, czy pliki mają być wysyłane natychmiast, czy też o określonej porze.

18

Odp: macro w szablonach

Zygmunt napisał/a:
Andy napisał/a:

Prosze o wyjasnienie znaczenia znakow ~ i # , czy  dobrze rozumie ze jest to forma nawiasow?

Jeśli w makrach nie wystarcza cudzysłowów i apostrofów, do oznaczenia argumentów stosuje się inne znaki, np. &, #, @, ~ (pod warunkiem, że nie będzie to w sprzeczności z samym argumentem).

Wracając zaś do głównego wątku: czy wygenerowany załącznik jest wysyłany jednorazowo do ustalonej listy odbiorców, czy też może być wysyłany kilka razy tego samego dnia do różnych odbiorców? Skąd użytkownik wie, że akurat ten a nie inny plik ma załączyć?

#Osobiscie tego nie robie i niewiem dokladnie odpowiedziec na to pytanko. Z tego co wiem to jest duza ilosc mozliwych kombinacji. Jutro sie dowiem dokladnie jak to wyglada na ostro. Wczesniej to byla zrobiona sciaga na okolo 4 albo 6 stronach A4 gdzie bylo napisane na jakie grupy adresow co sie wysylalo. Wszystko wyszukiwalo sie recznie w Outlooku Expresie. Tylko adresy byly zgupowane w adresari.
Aktualnie jest to zrobione na wspolnych szablonach i wszystko sie robi niemalze polautomatycznie.

Cały czas zastanawiam się nad wykorzystaniem możliwości automatycznej wysyłki plików z Terminarza programu The Bat!. Mogłoby to działać w taki sposób, że w określonym katalogu byłyby gromadzone pliki do wysyłki i o określonych porach dnia The Bat wysyłałby je automatycznie z zastosowaniem odpowiednich szablonów. Takich zadań wysyłkowych w Terminarzu mogłoby być kilka, lecz to zależy od organizacji pracy zespołu przygotowującego pliki oraz od tego, czy pliki mają być wysyłane natychmiast, czy też o określonej porze.

#Przychylam sie Twojemu pomyslu aby skorzystac z terminarza. Narazie z tego nigdy niekorzystalem. Tylko niewiem jak to zorganizowac jezeli to jest wysylane z jednego stanowiska w konkretnym dniu. Ale taka mozliwosc maja minimalnie 3 stanowiska i to zalezy od zmienego planu. Jutro sie dowiem z jakim wyprzedzeniem jest ustawiony grafik. Ewentualnie niewiem czy by sie udalo zakomponowac Terminarz do szablony. Tak aby z szablony byly uruchamiane terminarze na konkretny dzien.

19

Odp: macro w szablonach

Teraz moja uwaga jest zwrucona w tym kierunku aby wybralo plik z poprzedniego miesiaca "-1", "M" a zarazem aby argument "dd" mial najwieksza wartosc. Troche sie gubie ale moze jakos malymi krokami posune problem troche dalej....

A tu trzeba zapewne jeszcze uwzględnić przynajmniej sobotę i niedzielę smile

Gryzłbym to jak zwykle z XMP przy wykorzystaniu:
%XMP_TimeAdd

Po pierwsze sprawdziłbym dzień miesiąca co mamy:
%date="dd"

Nastepnie odjąłbym to od daty dzisiejszej postacią:
%_a=~%XMP_TimeAdd("%date=(ddmmyyyy)","-%date(dd)","D","mmdd")~

Później sprawdziłbym czy dany dzień to nie sobota/niedziela:
%_b=~%XMP_TimeAdd("%date=(ddmmyyyy)","-%date(dd)","D","dddd")~

Jeśli sobota/niedziela to trzeba z dnia wczesniejszego a więc:
%_c=~%calc=#%date(dd)+1#~
%_c1=~%XMP_TimeAdd("%date=(ddmmyyyy)","-%_c","D","mmdd")~
%_d=~%calc=#%date(dd)+2#~
%_d1=~%XMP_TimeAdd("%date=(ddmmyyyy)","-%_d","D","mmdd")~

Czyli teraz mamy wszystko:
%IF:"%_b"="sobota":"%_c1":"%-
%IF:~%_b~=~niedziela~:~%_d1~:~%_a~"

Co nam wychodzi? Postać mmdd dla ostatniego dnia miesiąca z uwzględnieniem sobota/niedziela.

20

Odp: macro w szablonach

Kto niema w glowie ten ma w nogach:-) Zapomnialem ze plagin XMP mam na kompie w domu...... a zupelnie zapomnialem zainstalowac w pracy..... troche stracilem swojego czasu zanim zaswiecilo w glowie ze bez tego niedzialaja najprostsze komady:-) Narazie staram sie polaczyc moje wysilki z terminarzem. Przynajmniej mam takie wrazenie ze to bedzie latwiejsza droga. Wszystko potrzebuje troche czasu.... ale tego ostatnio mam malo czasu na  wszystkie experymenty. Narazie dziekuje za pomoc dla Lazika i Zygmunta. Pokazaliscie wlasciwiwy kierunek w ktorym  mam teraz pracowac. Narazie musze pogrzebac troche w helpie i poglebic swoje wiadomosci o funkcje z ktorymi doteraz niepracowalem. Juz posunalem sie o drobny krok do przodu. Jezeli sie uda to co wstepnie planowalem to napewno cos dopisze do tematu na forum. Niezmiernie sie ciesze ze poswieciliscie tyle energii aby pomoc z moim zdawalo by sie na poczatku niewinnym problemem. Nawet nienadazalem z testowaniem  wszystkich opcji. Niejestem programatorem ale mam wewnetrzna radosc jezeli uda sie w ciekawy sposob wykorzystac nastepne funkcje Nietoperza.

-Pozdrawiam z dalekiej Bratislavy:-)