DISKUSE
Instalačky LN (1)
01.07.2021 10:17

Action pane 
21.05.2021 07:54

Sametime (8)
23.04.2021 09:41

Agent který je spuštený čtenářem by měl modifikova... (3)
16.04.2021 16:07

LCConnection - Oracle (2)
08.04.2021 11:16

RTF Scrollbar (2)
21.01.2021 23:27

Export textu do hlavičky MS Word dokumentu pomocí ... (2)
21.01.2021 18:48

Nemá created (2)
09.01.2021 08:46


ŠKOLENÍ


REKLAMA


KOMENTÁŘE

Komentáře ke článku "Svátky ve Formula jazyce"


Vít Zachodil
13.08.2003 18:50
Pěkný příklad, ale lze zlepšit způsob programování
Z hlediska možností Formula jazyka je to celkem pěkný příklad.
Z hlediska způsobu programování by ho ovšem bylo možné napsat tak, aby byl přehlednější a bylo ho možné jednoduše upravit (např. ukázat jméno pro jiné datum, v načíst jména a názvy měsíců v jiném jazyce z nějaké DB, ...).
Takže by to mohlo vypadat např. i takto:
REM "1. Načtení dat do proměnných z různých zdrojů";
REM "Seznam hodnot v NameListCZ není úplný - můžete si ho doplnit z původní ukázky";
NameListCZ := "1.1" : "Nový rok" : "2.1" : "Karina" : "..." : "..." : "30.12" : "David" : "31.12" : "Silvestr";
MonthListCZ := "Leden" : "Únor" : "Březen" : "Duben" : "Květen" : "Červen" : "Červenec" : "Srpen" : "Září" : "Říjen" : "Listopad" : "Prosinec";
DayListCZ := "Neděle" : "Pondělí" : "Úterý" : "Středa" : "Čtvrtek" : "Pátek" : "Sobota";
Date := @Today;
REM "2. Uložení výsledků opakovaně volaných funkcí do proměnných";
Month := @Month(Date);
Day := @Day(Date);
REM "3. Výstižnější názvy proměnných (Today -> Key, NameDay -> FirstName), úprava výpočtu skutečné pozice";
Key := @Text(Day) + "." + @Text(Month);
Position := @Member(Key; NameListCZ) + 1;
FirstName := @Subset(@Subset(NameListCZ; Position); -1);
REM "4. Výběr ze seznamu hodnot bez konverze dat, sjednocení způsobu výběru";
MonthName := @Subset(@Subset(MonthListCZ; Month); -1);
DayName := @Subset(@Subset(DayListCZ; @Weekday(Date)); -1);
REM "5. Zobrazení výsledků";
Title := "Dnes je " + DayName + " " + @Text(Day) + ". " + MonthName;
Message := "Svátek má " + FirstName;
@Prompt([OK]; Title; Message)
Vysvětlení úprav:
1. proměnné se seznamy dat umístit na začátek (NameListCZ, seznam měsíců, seznam dnů v týdnu, datum pro vyhledání jména)
Výhody: jednoduchá záměna datových zdrojů např. pro použití v jiných národních jazycích, načtení seznamu z DB, zadání jiného datumu. Při úpravách není nutné dohledávat a upravovat odkazy na zdroje dat ve vlastním výkonném programu => omezení vzniku chyb při dodatečných opravách.
2. výsledky opakujících se funkcí dát do proměnných.
Výhody: zpřehlednění programu, možné snížení nároků na výpočetní výkon
Nevýhody: možné vyšší nároky na paměť
3. Úprava angl. názvů některých proměnných, aby byly výstižnější (=> i drobná úprava výpočtu pozice v seznamu)
4. Využití jiných funkcí pro výběr ze seznamu
Výhody: sjednocení způsobu všech výběrů, např. odstranění konverze ze seznamu hodnot na řetězec a vyhledání pozice v řetězci.
Nevýhody: omezení ukázky použití různých způsobů pro výběr hodnot ze seznamů.

Emil Čelustka
13.08.2003 21:14
RE: Pěkný příklad, ale lze zlepšit způsob programování
Vždycky se všechno dá udělat líp :-) Myslím ale, že je třeba taky ocenit odvahu jít s kůží na trh. A tu Alex měl. Budete ho následovat?

bubux
14.08.2003 14:03
Formula
Nemyslim si ze formula je podcenovana, ale bohuzel v profesionalnim programovani je nepouzitelna ... je to bes zorientovat se ve slozitejsich vzorcich a kodu chybi struktura....
sam pouzivam formula jazyk minimalne ... obcas u prevodu u poli, nebo v pohledech a taky obcas ve skriptech ale jinak ne... vznika pak z toho trasny bordel...
nemuzu si odpustit poznamku ... at zije OOP .. :)

Miro Uhlar
14.08.2003 16:00
Účel svätí prostriedky :-)
A okrem toho si myslím, že porovnávať @F a LS sa dá vždy len v určitom konkrétnom kontexte.
Ale aby som to odľahčil: Zistil som, že @F má v projektoch aj psychologický význam. Zásadnou otázkou je totiž získať na stranu riešenia (ergo Domino) tzv. power users. Ak sa správne motivujú a nie je prenich problém zvládbuť základy @F čím sa odlíšia od zvyšku user komunity, získajú sebavedomie a zároveň pocítia úctu k LS expertom... A už sú naši :-)

František Cimmer
15.08.2003 10:17
Formula vs. script
Jak píše Miro, je potřeba to srovnávat v konkrétních kontextech.
Třeba v kontextu tohoto tipu, je výrazně výhodnější formule. Je to jednoduché, výpočet se dá šoupnout kamkoliv i do scriptu, člověk není vázán pouze na query/post/prexxxxx události, nebo agenty.
A v neposlední řadě je to rychlejší než ekvivalent ve skriptu.
Obecně se dá říct, že skript je vhodný na komplexní úlohy a zpracování.
Formula je vhodná na dílčí úlohy (překlady v polích, výpočty v polích apod).
Formula je v 90% případů výrazně rychlejší než ekvivalent v LotusScriptu.
Formula je vždy vhodnější (a vesměs rychlejší) pro zpracovávání textů a seznamů (@replace, @replacesubstring, @left, ...)
Davide nezlob se na mě, ale pokud budu chtít hromadně změnit pole v dokumentech na základě podmínky, kde u každého dokumentu bude pole obsahovat jiné hodnoty (vypočtené třeba z obsahu jiných dokumentů = dblookup), tak rozhodně nebudu programovat s pomocí OOP v LotusScriptu, ale napíši to během minuty ve formulkách a není to o tom že bych OOP neuměl, či neuměl LS.
Používat OOP za každou cenu je nesmysl. Samozřejmě, že naopak používat za každou cenu formula jazyk je taky nesmysl. Vždy je potřeba vybrat nejvhodnější. Dokonce občas používám JAVu protože mi LS nestačí :-)

Vít Zachodil
16.08.2003 00:35
RE: Pěkný příklad, ...
Osobně považuji ukázku uvedenou ve článku pro seznámení s Formula jazykem za lepší. Její výhoda je v tom, že je psaná podle celkem logického postupu, tedy podstatně srozumitelněji pro začátečníky. Ukázka uvedená v komentáři by tak srozumitelná být nemusela (ukazuje např. určitou možnost pro re-use kódu, což je vlastnost doporučovaná i v OOP), ale může pomoci ke zlepšení techniky programování právě v návaznosti na původní ukázku v článku. Mimochodem, už někdy někdo viděl nějakého kritika, který by sám psal nějaké původní články?

bubux
17.08.2003 20:26
Re: František Cimmer a otatni...
Vas argument je naprosto spravny - myslim tim srovnani vykonnosti formula jazyku a lotus skriptu... Kazdemu dobremu programatoru je jasne proc tomu tak je... vychazi to z vlastnosti tohoto jazyka{LS}... osetrovani vyjimek skladby jazyka, prenosnoti promennych,kodu atd... proti tomu nemuzu nic rict...
navic mnozi vedi ze v R6 byl formula jazyk predelany a je opet vykonnejsi..
nicmene libi se mi to jak se vsichni zucastneni zapojili do teto debaty ktera mela tak trochu rozsirit debaty kolem OOP a lotusu...
musim rict narovinu ze nemam poneti o tom kolik lidi pouziva OOP pri programovani v lotusech a pomoci tohoto clanku jsem si to chtel overit...
Duvod: ???
Chci udelat nejaky case nastroj na vyvoj v lotus skriptu { samozrejmne open source } ...
Ja jsem doposud pouzival nastroj ktery jsem udelal na kolene pres vykend ... nicmene poslal jsem ho do redakce svetnotes a verim ze se nam spolecne { po malych upravach} podari nejak tento nastroj publikovat na webu svetnotes...
neumi to vsak mnoho...
i kdyz ja v tom delam pomerne velke projekty neni to pouzitelne pro siroke programatorske komunity...
je to proste jen udelatko v notesech...
moje predstava je takova ze by se to delalo jako open source ve VB nebo VB.NET... tento jazyk proto aby se do projektu mohlo zapojit co nejvic lidi...
Proto ted upravim tuto debatu tak jestli si myslite ze by to melo smysl a jestli by se nasel nekdo kdo by mel zajem podilet se na necem takovem...
dekuji za vase odpovedi a omlouvam se ze jsem timto zusobem pozmenil smer diskuze...

Miro Uhlar
18.08.2003 09:03
To bubux: Nápad je to výborný...
Záleží len na realizácii, pretože aj open source je o koordinácii (organizačnej, technologickej) - ak máte túto energiu a priestor, rád projekt v rámci "free time" aktivít podporím (ak budem vedieť). BTW, poznáte článok z The View "Apply OO Analysis&BP to build LS Framework"? Jeho abstract je tu link1 Súhlasíte s Tillmanom alebo pristupujete k OOP po inej OOA?

bubux
18.08.2003 15:38
Re: Miro Uhlar
Dakujem za Vasu odozvu a dufam ze na tuto vyzvu budu reagovat dalsi programatori s potencialom a chutou prispiet...
Co sa tyka koordinacie a organizacie... myslim ze momentalne mam cas na to aby sa projekt aspon do zakladov rozbehol ... to znamena stanovit pravidla, jak hovorite jednak organizacne a tiez technicke...
Zakladom je ale aby sa nasiel kolektiv minimalne 3 - 4 ludi ktory budu mat chut spolupodielat sa...
Tento pocet je potrebny prave z toho dovodu ze projekt nie je pre nikoho full-time job ale len pracou ( zabavou ) na volny cas...
Takze pockame a uvidime... :)
Co sa tyka toho clanku ktory ste mi poslal... kedze je to iba utrzok a ja mam posledny the view z minuleho roku neviem presne o co sa jedna...pozeral som sa vsak na skript do databáze ktora je v prilohe...
mozem povedat aj ked kod mi je jasny, neni mi jasne k comu ma viest a preto sa k tomu nechcem vyjadrovat komplexne ( vidim tam az moc otazok preco??) ...
Kazdopadne pokial sa jedna o profika nechapem preco oddelil udalost query save od kniznice...
myslim tym ze neprepise udalost querysave uidocu priamo v skripte ale vola ho z formulara.... pride mi to strasne neprakticke...
co si o tom myslite vy..?
neni niekde zaveseny ten clanok cely..?
kazdopadne mozno vas bude zaujimat toto... je to zamyslenie sa nad tym jak a preco resp. preco nie oop...
http://researchweb.watson.ibm.com/journal/sj/361/potok.html

Miro Uhlar
19.08.2003 08:55
Comments...
/1/ Dik za tip na článok, mrknem sa
/2/ Článok z The View asi nebude nikde voľne publikovaný, veď z nich žijú :-). Keďže článok je rozsiahly a skôr koncepčný, ako technologický, je v podstate nemožné o ňom diskutovať bez jeho detailného poznania (v čom súhlasím s vami).
/3/ OOP ma výrazne oslovuje, aj keď priznám, že zatiaľ skôr akademicky, ako prakticky (aj preto, že mám rezervy vo svojich OOM a OOA skills)
/4/ Ešte ma zaujalo, že raz píšete v SK, raz v CZ - niežeby mi to vadilo, len neviem, či je BUBUX jedna osoba :-)?

bubux
19.08.2003 10:17
jedna osoba... :)
hehe docela ma to pobavilo ... faktom je ze som si to ani neuvedomil ze pisem raz cesky a raz slovensky... som slovak( Trencin ) ale zijem v cesku ( Praha ) uz nejaku tu dobu ...
cast rodiny je ceska a cast slovenska a navyse v praci tiez komunikujem raz cesky a raz slovensky ... zalezi od ludi... hlavne zenskym sa strasne paci slovencina... ( dobra rada nie...? ..:)) )
takze ano som jedna osoba...
LotusScript nie je skutocny OOP jako java alebo C++ ale je to docela dobra cesta jak OOP pochopit a zefektivnit programovanie... ak by bol zaujem mozem vytvorit na svetnotes... pokial mi to redakcia dovoli nejaky clanok o OOP a LotusScripte... a mozeme k tomu pouzit nastroj o ktorom som uz hovoril... myslim ze by to mohlo zaujimat viacero ludi.. :)
k THE VIEW mam len jednu jedinu vyhradu a tou je cena... :((

Vít Zachodil
19.08.2003 17:10
RE: bubux
Napsal jste:
Kazdopadne pokial sa jedna o profika nechapem preco oddelil udalost query save od kniznice...
myslim tym ze neprepise udalost querysave uidocu priamo v skripte ale vola ho z formulara.... pride mi to strasne neprakticke...
Pokud vím, všechny Notes class jsou uzavřené a nejde je dále rozvíjet (dědit, přepisovat, přetypovat, atp.). Znáte nějaké možnosti, jak někde (např. ve ScriptLibrary) upravit (např. přetypovat pomocí OOP) event QuerySave ze třídy NotesUIDocument, aby ho nebylo nutné opravovat ve všech (nebo ve vybraných) formulářích?
Bylo by např. velmi zajímavé mít možnost upravit event QueryPaste ze třídy NotesUIView tak, aby tato událost ve všech pohledech v dané DB neumožnila vkládat žádné dokumenty a aby automaticky fungovala i nově vytvářených (privátních) pohledech bez šablony (View Template "blank").

bubux
19.08.2003 18:48
udalosti uitrid notes api
vidim ze ten clanek o OOP programovani by se hodil...:)
konkretne to o cem mluvite samozrejme mozne je( tzv. prace s produkcnimi objekty )...
udalosti jako je napriklad querysave anebo postsave na notes ui objektech muzete skriptove upravovat( resp. vytvaret vlastni ) ale i odstranovat...
nemuzete to udelat na tridach ale muzete to udelat na inicializovanych objektech jako je napriklad uiview, uidoc...
aby jste napriklad osetril na formulari udalost querysave nemusite do sekce teto udalosti napsat ani meke f... udelate to v knihovne skriptu ve vlastni tride kterou si vytvorite...
kdyz pak napisete nejaky kod napr. do sekce querysave tak se jednouduse neprovede ale provede se ten vas...
To je prave vyhoda OOP... kod mate v knihovne hezky prehledne usporadany a separovany od uzivatelskeho rozhrani...jedine co potrebujete je inicializace vasi tridy.. napriklad na postopen dokumentu...
proto tak tvrda narazka "profik"...:) faktem je ze to ze to napsal do formu melo mit mozna nejaky vyznam, ale jak jsem psal necetl jsem ten clanek, jenom heading... takze to s tim profikem neberte vazne... mozna v LS umim 10% z toho co on... :)

bubux
19.08.2003 19:00
p.Vít Zachodil to spravne interpretoval
pointa OOP je v tom ze si vytvorite vlastni tridu uiview s vlastnostmi ktere vseobecne potrebujete u vsech pohledu ... a pak uz jen derivujete tuto tridu dle konkretni potreby... presne tak jak napsal p.Vít Zachodil...