Unelte utilizator

Unelte site


Bara de navigare

DOC. hSALAR-Partea I
DOC. hSALAR-Partea II

Reguli de licenţiere

hsalar:x_creare

Crearea, modificarea documentelor

Tipurile de documente Office pot avea codurile cuprinse între: P_51 - P_89. Tipul de document P_90 este un model utilizat pentru crearea unor tipuri de documente noi de tip Word-XML.

Formatul de XML utilizat este: Word 2003 XML Document

Format pagină (pagina este formatată în Word, de aceea se folosec valori maximale)

  Numar exemplare:      1
  Pagina:  - lungime: 999    - latime: 999
  Text:    - lungime: 999    - latime: 999
                                       Pg.impare Pg.pare
  Margini: - sus:       0    - stinga:   0         0
           - jos:       0    - dreapta:  0         0

Pentru crearea unui tip de document nou copiaţi modelul P_90.

Pentru modificare cu editor extern (MS Word, OpenOffice Write) lansaţi:
Tipuri de documente/ Modif./ Formular cu editor extern.
În documentul deschis cu editorul extern se pot importa cu copy/paste formulare/ texte deja existente.
Recomandăm să le importaţi în format text şi să le formataţi din nou.

La modificare, procedura este următoarea:

  • formularul XML din Tipuri de documente se încadrează între

#INCEPUT … #SFIRSITFORMULAR,
comenzile #… se încadrează între taguri XML şi se creează TMP\MODL_nn.XML

  • se modifică formularul în format XML cu MS Word sau OpenOffice Write şi se salvează
  • câmpurile se pot copia în modelul documentului din fişierul de formule deschis în NotePad în paralel cu modelul.
  • textul se aduce în Tipuri de documente şi automat se execută operaţiile de prelucrare invers:

se elimină #INCEPUT … #SFIRSITFORMULAR,
se elimină tagurile XML care încadreaza comenzile #…,
descrierile de câmpuri {…}, dacă eventual sunt încadrate între mai multe taguri se încadrează într-un singur tag: <w:x>{….}</t:x>

  • formularul XML obţinut va fi afişat în fereastra de editare din hSALAR şi trebuie salvat cu <Ctrl W>
  • în timpul modificării formularului cu OpenOffice nu este voie să fie deschis încă un document tot în OpenOffice, pentru că este posibil ca modificarea să se piardă. Dacă trebuie preluată o secvenţă dintr-an alt document, aceasta se copiază în prealabil în clipboard.

Pentru modificare direct în XML utilizaţi: Tipuri de documente/ Modif./ Formular.

Restricţii, limitări, reguli:

  • Documentul XML nu poate depăşi 99.000 caractere, adică 2-3 pagini cu formatare obişnuită. Dacă documentul conţine tabele, de regulă nu trebuie să fie mai mare de o pagină.
    Dacă le depăşeşte, la salvare Formular apare mesajul:
    Depasire lungime sir descriptor ! …
    Modificarea se poate recupera din TMP\MODL_nn.XML (nn - nr.statie).
    Documentul se poate micşora dacă conţine un word normalizat.
    Acest lucru se poate realiza astfel:
    export cu copy/paste întregul document sau doar parţial într-un fişier text, ştergere document Word şi crearea unuia nou (uneori ajunge şi <Ctrl A><Del>), import cu copy/paste din fişierul text, reformatare.
  • Documentul nu poate să conţină caracterele {}, în afară de cele utilizate pentru delimitarea câmpurilor.
  • Documentul nu poate să conţină caracterul #, în afara celor utilizate pentru identificarea comenzilor din model.
  • Comenzile #INCEPUT şi #SFIRSITFORMULAR nu trebuie înscrise în formular, ele se inserează de program în momentul înregistrării în Tipuri de documente.
    Cu Vizualizare/Modificare formularul este afişat în format XML, care este încadrat între #INCEPUT şi #SFIRSITFORMULAR.
    Cu Vizualizare/Modificare cu editor extern formularul este afişat în formatul editorului extern.
  • Lungimea unui paragraf să nu depăşească 999 caractere. Dacă paragrafele sunt mai mari, ele trebuie despărţite cu Enter. Dacă paragrafele sunt mai lungi, la Vizualizare Formular se vor observa rânduri care nu încep cu tag XML (<….).
  • Câmpul se poate copia în modelul documentului din fişierul de formule deschis în NotePad în paralel cu modelul.
  • Pentru imprimarea unui câmp de text în cadrul unui text dintr-un paragraf se poate utiliza picture @T:
Nume   ; Nume si prenume ; RTRIM(P_031)  ; C25 ; @T
Dacă se imprimă:
{Nume                    }

şi dacă valoarea de imprimat nu este de 25 caractere, se imprimă atât cât este şi nu se completează cu spaţii până la 25 poziţii.

În varianta fără picture @T se imprimă:
    Salariat Nume Prenume                este angajatul nostru
În varianta cu picture @T se imprimă:
    Salariat Nume Prenume este angajatul nostru
  • la comenzile: #RIND, #SFIRSIT nu se indică numărul maxim de rânduri din care este formată secţiunea. Nu este necesar, formatarea paginii trebuie programată şi este realizată de editorul extern. Dacă documentul depăşeşte o pagină, după generare, paginarea trebuie revizuită.
  • comenzile #INCEPUTPAGINA, #SFIRSITPAGINA nu au sens. Formatarea paginii trebuie programată şi este realizată de editorul extern.
  • dacă la deschidere Word apar mesajele: The document MANDOCnn.TXT cannot be opened…
    The document MODL_nn.XML cannot be opened…

    înseamnă că XML-ul este incorect. În acest caz fie analizaţi direct XML-ul, fie reluaţi documentul dintr-o copie anterioară. De multe ori ajută şi normalizarea documentului, vezi mai sus.
  • recomandăm ca din când în când să exportaţi formularul pentru a păstra anumite forme de referinţă.
  • de regulă, pentru documentele care se generează/imprimă în Word se defineşte formularul în Word, iar pentru cele care se se generează/imprimă în OpenOffice, este recomandabil ca şi editarea formularului să se facă în OpenOffice.

Desigur se pot defini şi formulare care se pot genera/imprima cu ambele programe, aşa cum sunt modelele livrate, însă în acest caz este necesară testarea şi definitivarea succesivă cu ambele programe. Recomandăm elaborarea modelului în Word şi testarea succesivă în Word şi OpenOffice.

Atenţie, dacă modelul se scrie în Word şi se generează în OpenOffice, este posibil să apară spaţii între literele din cuvinte. Este o anomalie OpenOffice şi se poate rezolva în model prin ştergerea şi rescrierea întregului cuvânt.

1. Documente pentru un angajat

Nu au rânduri. De regulă conţin doar secvenţe de iniţializare şi generare condiţionată.

  # {INIT}
  ...
  # {CALCUL}
  #DACA {CONDITIE}
  ...
  #SFIRSITDACA
  ...

2. Documente pentru mai mulţi angajaţi

Formularul, de regulă, are următoarea structură:

  # {INIT}
  #RIND P_
  #DACA {CONDITIE}
  ... descriere document pentru un angajat
  #SFIRSITDACA
  #SFIRSIT

Uneori în Word nu se vede caracterul „_“ de la #RIND P_, îl puteţi verifica în XML.
În {CONDITIE} se defineşte un filtru: pentru care salariaţi se va genera câte un document.

Corespunzător codului de listă din tipuri de documente, trebuie definită o listă şi în Operatii/ferestre/liste:

  Tip/nr. : LISTA    / nn
  Denumire: <...>
  Antet:
  Lista, Centralizator, Extras, Document sau Programat:  L
  Numar extrase pe orizontala:                           0
  Filtru: cimp   :        =
          valoare:
  Filtru expresie:
                                  Grupa1   Grupa2   Grupa3
  Criteriu grupare  (cimpul)    : P_00
  Salt pagina dupa grupa ? [D,N]: N        N        N

Grupa1 - la documente Word câmpul trebuie să conţină aceeaşi valoare. P_00 este câmpul potrivit.
Grupa2 - câmp pentru implementare #INCEPUTGRUPA/#SFIRSITGRUPA
Grupa3 - nu se utilizează, eventual pentru ordonarea suplimentară a articolelor

Filtru câmp, expresie şi Salt pagină după grupă nu sunt utilizate.

3. Includere document

În funcţie de anumite criterii, în documentul de bază se mai inserează un alt document. În timpul generării se identifică calea şi numele fişierului de inclus. La lansarea documentului se deschid ambele documente, adică documentul de bază şi cel care urmează să fie inclus.
Documentul nu se inserează automat, se execută de către operator:

  • se selectează conţinutul documentului de inclus (Ctrl A, Ctrl C),
  • se insereaza în documentul de bază (se selectează documentul de bază, se poziţioneaza cursorul, după care Ctrl V

Recomandăm, ca în documentul de bază, locul în care urmează să se insereze fişierul extern să se marcheze cu un text în acest sens, afişat cu o culoare diferită. Textul recomandat este:

Inserati aici cu copy/paste modelul din cealalta fereastra deschisa: Ctrl+A, Ctrl+C si Ctrl+V

{FisierModel                                                            }
COR:     {COR   }- {DenCOR                                          }
Functia: {Functia      } 

Textul de mai sus conţine referinţe de câmpuri, care la generarea efectivă a documentului se completează cu conţinutul corespunzător. Corespondentul în Formule este:

FisierModel        ; Fisier model         ;
    X_1 := h_TruePath (...),
    '{fisier:'+X_1+'}' ; C100

Dacă se insereaza imagini (logo, watermark, semnătură, fotografii), acestea trebuie inserate „as link“. Dacă se include direct, secvenţa binară poate să conţină: // sau # în prima coloană care sunt caractere speciale în Tipuri de documente şi se încurcă XML-ul.

4. Liste

Pentru realizarea listelor recomandăm să urmăriţi tipul de document P_31. Pentru liste în format Office urmăriţi tipul de document P_71. La liste în format Word:

  • utilizaţi neapărat fonturi fixe,
  • la mărimi de fonturi mici, caracterele din fontul Courier New nu sunt suficient de înalte şi nu sunt lizibile. Pentru tipărire cu caractere înguste utilizaţi fonturi fixe cu caractere mai înalte: de exemplu MS Mincho.
  • listele Word au avantajul că după generare, fontul se poate schimba de utilizator.
  • deocamdată nu este pus la punct mecanismul de paginare la listele de tip Word, de aceea utilizaţi mai mult pentru liste simple, eventual mai complexe care au doar o pagină.
  • dacă utilizaţi descrieri complexe, este posibil ca mărimea în format XML să treacă de limita admisă de 99.000 caractere. Dimensiunea este mărimea fişierului creat în TMP/MODL_…XML la lansare Vizualizare/Modificare.
    Open Office minimizează structura XML, astfel dacă deschideţi formularul cu Open Office, faceţi măcar o modificare şi îl salvaţi, mărimea se va reduce.
hsalar/x_creare.txt · Ultima modificare: 2025/12/02 02:09 (editare externă)