Bonjour tous le monde,
je suis en cours de réalisation d'un programme abap qui génère un fichier texte, j''ai pu le générer sans problème j'affiche mes information aussi.
et puisque le fichier doit être imprimer je dois gérer plusieurs cas pour afficher l’entête des tableaux et les pieds de pages et aussi le saut de page.
autrement dis je dois afficher des tables classées par établissement et par statu de salarié et a la fin de chaque statu je dois mettre un totale et a la fin de chaque établissement je dois mettre un totale , et a la fin du document un totale générale. le problème est que la page peut contenir 50 ligne 15 pour l’entête 15 pour le pied de page et 30 lignes pour le contenu du tableau et je n'arrive pas a gérer tous cela dans le prog.
ci dessus le prog
Les forms get header et get footer se sont l’entête et le pied du tableau.
FORM format_fichier .
DESCRIBE TABLE it_result LINES nbr.
PERFORM get_data.
IF NOT it_file IS INITIAL.
SORT it_file BY ETAB STAT.
LOOP AT it_file INTO wa_file .
AT NEW STAT.
PERFORM get_header USING wa_file-ETAB wa_file-STAT.
ENDAT.
APPEND INITIAL LINE TO fichier_txt ASSIGNING <lfs_record>.
MOVE 'I' TO ligne.
*
MOVE wa_file-pernr TO ligne+1.
*
MOVE 'I' TO ligne+12.
*
MOVE wa_file-nom TO ligne+14.
*
MOVE 'I' TO ligne+33.
*
MOVE wa_file-dateem TO ligne+35.
*
MOVE 'I' TO ligne+47.
*
MOVE wa_file-basem TO ligne+49.
MOVE 'I' TO ligne+65.
MOVE wa_file-retraite TO ligne+67.
MOVE 'I' TO ligne+80.
MOVE wa_file-indlo TO ligne+82.
MOVE 'I' TO ligne+97.
MOVE wa_file-indtrs TO ligne+99.
MOVE 'I' TO ligne+115.
MOVE wa_file-indautr TO ligne+117.
MOVE 'I' TO ligne+133.
MOVE wa_file-baseimp TO ligne+135.
MOVE 'I' TO ligne+150.
MOVE wa_file-taux TO ligne+152.
MOVE 'I' TO ligne+159.
MOVE wa_file-retenu TO ligne+161.
MOVE 'I' TO ligne+176.
MOVE wa_file-nonimp TO ligne+178.
MOVE 'I' TO ligne+194.
MOVE ligne TO <lfs_record>.
AT END OF STAT.
** CLEAR lv_totmnttxt.
** SUM.
** lv_totmnttxt = wa_file-mnt.
** lv_total = lv_total + wa_file-mnt.
PERFORM get_footer.
ENDAT.
* AT LAST.
* PERFORM get_footer.
* ENDAT.
ENDLOOP.
ENDIF.
endform.
Partager