Labai įdomus straipsnis apie DSL Friendly syntax in BOO
Nekantrauju išbandyti tai generuojant odt dokumentus :)
Showing posts with label OpenDocument. Show all posts
Showing posts with label OpenDocument. Show all posts
Thursday, June 7, 2007
Monday, May 28, 2007
Dokumentų spausdinimas
Vienas klausimas yra kokį būda naudoti ataskaitoms generuoti, o visai kitas, kaip į dokumentą duomenis sudėti.
Pirmasis variantas (kurį prieš pusę metų dariau) buvo paprastas switch / replace sakinių rašymas.
Rezultas - dėl kiekvieno menkniekio reikia programuoti. Tikrai nepavydinėtina.
Ką gi, naudojame kitą būdą, juk vis dėlto, gyvename .Net aplinkoje, ir skirtingai nei java yra daug ir įvairių kalbų. Tuo ir pasinaudokime.
Galbūt dar mažai kam žinoma, bet greitai auganti kalba Boo :)
Boo yra dinaminė kalba, pagrįstas pytono sintakse. Ką gi mums duoda Boo.
Ogi du dalykus:
Boo turi interpretatorių - kurį galime įtraukti į programą
Įdomiau gyventi
Taigi, dabar vietoje skurdžių sakinių
galime rašyti taip:
kode:
dokumento šablone tuomet galima rašyti ką tik norime.
Pavyzdžiui, dokumento pradžioje galime įdėti paslėptą tag'ą (jei konkrečiau - tai input field'ą) su tokiu kodu "Mokinys = RootEntity".
tuomet tose vietose, kur turi atsidurti tekstas įdedame tokius paslėptus tag'us:
Šiais dviem sakiniais sujungėm mokinio vardą ir pavardė ir padarėm juos upper string'ais. Kadangi tai yra .Net aplinka, tai praktiškai galima naudotis absoliučiai visomis funkcijomis, kurias duoda .Net
Daugiau jokių switch replace! :)
Pirmasis variantas (kurį prieš pusę metų dariau) buvo paprastas switch / replace sakinių rašymas.
Rezultas - dėl kiekvieno menkniekio reikia programuoti. Tikrai nepavydinėtina.
Ką gi, naudojame kitą būdą, juk vis dėlto, gyvename .Net aplinkoje, ir skirtingai nei java yra daug ir įvairių kalbų. Tuo ir pasinaudokime.
Galbūt dar mažai kam žinoma, bet greitai auganti kalba Boo :)
Boo yra dinaminė kalba, pagrįstas pytono sintakse. Ką gi mums duoda Boo.
Ogi du dalykus:
Taigi, dabar vietoje skurdžių sakinių
...
if (m_node.InnerText = "Studento vardas">)
m_node.Text = student.Name + student.Surname
...
galime rašyti taip:
kode:
Interpretator m_interpetator = new Interpretator()
m_interpratator.setValue ("RootEntity", student);
...
m_interpretator.Eval(node.InnerText);
m_node.Text = m_interpretator.LastValue
..
dokumento šablone tuomet galima rašyti ką tik norime.
Pavyzdžiui, dokumento pradžioje galime įdėti paslėptą tag'ą (jei konkrečiau - tai input field'ą) su tokiu kodu "Mokinys = RootEntity".
tuomet tose vietose, kur turi atsidurti tekstas įdedame tokius paslėptus tag'us:
vardas = Mokinys.Name + Mokinys.Surname; vardas.ToUpper();
Šiais dviem sakiniais sujungėm mokinio vardą ir pavardė ir padarėm juos upper string'ais. Kadangi tai yra .Net aplinka, tai praktiškai galima naudotis absoliučiai visomis funkcijomis, kurias duoda .Net
Daugiau jokių switch replace! :)
Subscribe to:
Posts (Atom)