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ų

    ...
    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! :)

    No comments: