Cet article va vous aider dans la construction des rapports sous NSBase

Il existe 2 types de rapports :

  • Fiche
  • Liste

La différence est faite par l'utlisation d'un "GridPanel" pour les listes et pas de "GridPanel" pour les fiches. On utilisera 1 "GridPanel" au maxi.

Il y aura donc 1 enregistrement par fiche (page) et de 1 à n enregistements par page pour les listes. Le maximun d'enregistrements par page pour les listes est précisé par "RowCount" * "ColCount", le sens de remplissage est indiqué par "PrintDirection".

La source d'un rapport doit être renseignée, elle peut être une table ou mieux une vue simple ou paramétrée.

L'ensemble des données à imprimer doit être présent dans chaque enregistrement, y compris les données variables d'entêtes et de bas de page pour les rapports de type liste.

Les champs sont fixes ou associés à un champ de la source par la propriété "FieldName". Les champs placés dans la cellule éditable du "GridPanel", seront répétés suivant "RowCount", "ColCount" et "PrintDirection"

Un seul "GridPanel" par report.

Des champs spéciaux sont disponibles:

  • Code bar
  • Qr code
  • Système : date, heure ou n° de page

Les actions (ou évènements) dans un rapport :

ActionOnLoaded:

Se produit apès le chargement du rapport, exemple dans le modèle "Facture", permet d'imprimer la facture active.

On utilise une requête paramétrée dans ce rapport. Le paramêtre est "reference". La valeur provient du composant "referenceToPrint" qui se trouve dans le formulaire "frmFacture" (Facture).

function rptFacture:ActionOnLoaded()
  if frmFACTURE~=nil then
    self.dataset.setParameter("reference",frmFACTURE.referenceToPrint)
  end
end 

 

ActionOnChange:

Se produit à chaque enregistrement, exemple dans le modèle FISH, pour la conversion inch/cm

function rptFish:ActionOnChange()
  local value=self.dataset.getFieldName('LENGTH_CM')
  if value~='' then
    value=value ..  'CM/' .. string.format("%6.2f",value/2.54) .. 'IN'
  end
  self.setProperty('lbLength.Caption',value)
end 

 

ActionOnError:

Se produit lors d'une erreur.

 

NEUTS Jean-Luc

Écrire un commentaire

Quelle est la troisième lettre du mot brcc ?

Fil RSS des commentaires de cet article