{ Ce schema decrit la structure d une Table Ce schema suppose un certain nombre de traitements particuliers qui sont definis dans les modules tableau.c et tableau2.c de la librairie libtable l editeur.} STRUCTURE Table; DEFPRES TableP; CONST CsteBas = ' '; STRUCT Table (ATTR Type\240tableau = Lignes\240et\240colonnes, Lignes, Colonnes, Tabulations ; Encadrer = Absent, Fin, Epais, Pointill\351; Alignement\240horiz\240 = A\240gauche, Centr\351, A\240droite; Alignement\240vertic\240 = Vers\240le\240haut, Centr\351, \240Vers\240le\240bas) = BEGIN En\240T\352te; Les\240lignes; Bas\240tableau; END; Bas\240tableau = CONSTANT CsteBas; { pour pouvoir marquer le bas des } { filets verticaux en bas de page ou en fin de tableau } En\240T\352te (ATTR Filet\240inf\351rieur = Absent,Fin,Epais,Pointill\351; Alignement\240horiz\240; Alignement\240vertic\240) = BEGIN Titre\240tableau; Les\240colonnes; END; { Le Titre du Tableau } Titre\240tableau (ATTR Largeur\240titre = INTEGER; Alignement\240horiz\240; Alignement\240vertic\240) = BEGIN Titre\240des\240colonnes ; Titre\240des\240lignes ; END; Titre\240des\240colonnes (ATTR Alignement\240horiz = A\240gauche, Centr\351, A\240droite; Alignement\240vertic = Vers\240le\240haut, Centr\351, \240Vers\240le\240bas) = Cellule; Titre\240des\240lignes (ATTR Alignement\240horiz; Alignement\240vertic) = Cellule; { Les Colonnes du Tableau } Les\240colonnes (ATTR Filet\240gauche = Absent, Fin, Epais, Pointill\351; Alignement\240horiz\240; Alignement\240vertic\240) = LIST [2..*] OF (Colonne); Colonne = CASE OF Colonne\240simple; Colonne\240compos\351e; END; Colonne\240simple (ATTR Largeur\240colonne = INTEGER; Filet\240droit = Absent, Fin, Epais, Pointill\351; Alignement\240horiz\240; Alignement\240vertic\240) = BEGIN Titre\240col\240simple; END; Titre\240col\240simple(ATTR Alignement\240horiz; Alignement\240vertic) = Cellule; Colonne\240compos\351e (ATTR Filet\240droit; Filet\240bas = Absent, Fin, Epais,Pointill\351; Alignement\240horiz\240; Alignement\240vertic\240) = BEGIN Titre\240col\240compos\351e; Sous\240colonnes; END; Titre\240col\240compos\351e(ATTR Alignement\240horiz; Alignement\240vertic) = Cellule; Sous\240colonnes(ATTR Alignement\240horiz\240; Alignement\240vertic\240) = LIST [2..*] OF (Colonne); { Les Lignes } Les\240lignes (ATTR Filet\240haut = Absent, Fin, Epais, Pointill\351; Alignement\240horiz\240; Alignement\240vertic\240) = LIST [2..*] OF (Ligne); Ligne = CASE OF Ligne\240simple; Ligne\240compos\351e; END; Ligne\240simple (ATTR Filet\240bas\240 = Absent, Fin, Epais, Pointill\351; Alignement\240horiz\240 ; Alignement\240vertic\240) = BEGIN Titre\240ligne\240simple; Corps\240ligne; END; Titre\240ligne\240simple (ATTR Ref\240titre\240tableau = REFERENCE(Titre\240tableau); Pourcent\240largeur = INTEGER; Alignement\240horiz; Alignement\240vertic) = Cellule; Corps\240ligne = LIST [2..*] OF (Cellule); Ligne\240compos\351e (ATTR Filet\240droit\240 = Absent, Fin, Epais, Pointill\351; Filet\240bas\240; Alignement\240horiz\240; Alignement\240vertic\240) = BEGIN Titre\240ligne\240comp; Sous\240lignes; END; Titre\240ligne\240comp (ATTR Ref\240titre\240tableau; Pourcent\240largeur; Alignement\240horiz; Alignement\240vertic) = Cellule; Sous\240lignes (ATTR Alignement\240horiz\240; Alignement\240vertic\240) = LIST [2..*] OF (Ligne); { Les Cellules } Cellule (ATTR Ref\240colonne = REFERENCE(Colonne\240simple); Alignement\240horiz; Alignement\240vertic; Extension\240horiz = REFERENCE(Cellule); Extension\240vertic= REFERENCE(Ligne\240simple) ) = LIST OF (El\351ment\240de\240base); El\351ment\240de\240base = UNIT; UNITS Autre = NATURE; EXPORT PICTURE_UNIT, Table; EXCEPT { FORMAL DEFINITIONS OF EXCEPTIONS (DO NOT REMOVE THIS LINE) #include "exc_Table.h" { END OF FORMAL DEFINITIONS (DO NOT REMOVE THIS LINE) } { Exceptions sur les types d elements } Table: MoveResize, PageBreak, EXC_TR_Table_CREATION, EXC_ID_Table; Bas\240tableau: MoveResize, NoCut, NoSelect, PageBreakRepBefore, EXC_ID_FootTable; CsteBas: NoCreate, NoSelect; En\240T\352te: MoveResize, NoCut, NoHMove, PageBreakRepetition, EXC_TR_Table_ATTRIBUT, EXC_ID_Headings; Titre\240tableau: MoveResize, NoCut, EXC_ID_Title_Table, EXC_TR_Table_ATTRIBUT; Titre\240des\240colonnes: MoveResize, NoHMove, NoHResize, NoVResize, NoCut, EXC_TR_Cell_ATTRIBUT; Titre\240des\240lignes: MoveResize, NoHMove, NoHResize, NoVResize, NoCut, EXC_TR_Cell_ATTRIBUT; Les\240colonnes: MoveResize, NoHMove, NoCut, EXC_ID_The_Columns, EXC_TR_Table_SELECT, EXC_TR_Table_ATTRIBUT; Les\240lignes: MoveResize, NoHMove, NoCut, PageBreakAllowed, EXC_ID_The_Raws, EXC_TR_Table_ATTRIBUT; Colonne: MoveResize, EXC_ID_Column; Colonne\240simple: MoveResize, NoHMove, EXC_TR_Table_CREATION, EXC_TR_Simple_Column_SUPPRES, EXC_TR_Table_SELECT, EXC_TR_Table_PASTE, EXC_TR_Cell_ATTRIBUT, EXC_ID_Simple_Column; Titre\240col\240simple: MoveResize, NoHMove, NoHResize, NoVResize,NoCut, EXC_ID_Title_Simple_Col; Colonne\240compos\351e: MoveResize, NoHMove, EXC_TR_Table_CREATION, EXC_TR_Compound_Column_SUPPRES, EXC_TR_Table_SELECT, EXC_TR_Table_PASTE, EXC_TR_Table_ATTRIBUT, EXC_ID_Compound_Column; Titre\240col\240compos\351e: MoveResize, NoHMove, NoHResize, NoVResize,NoCut, EXC_ID_Title_Compound_Col, EXC_TR_Cell_ATTRIBUT; Sous\240colonnes: MoveResize, NoHMove, EXC_TR_Table_SELECT, EXC_ID_Sub_Columns; Ligne: MoveResize, PageBreakPlace, EXC_ID_Raw; Ligne\240simple: MoveResize, NoHMove, EXC_TR_Table_CREATION, EXC_TR_Table_PASTE, EXC_ID_Simple_Raw; Titre\240ligne\240simple: MoveResize, NoHMove, NoHResize, NoVResize, EXC_ID_Title_Raw, EXC_TR_Cell_ATTRIBUT; Corps\240ligne: MoveResize, NoCut, Hidden, EXC_ID_Body_Raw; Ligne\240compos\351e: MoveResize, NoHMove, NoHResize, NoVResize, EXC_TR_Table_CREATION, EXC_TR_Table_PASTE, EXC_TR_Table_ATTRIBUT, EXC_ID_Compound_Raw; Titre\240ligne\240comp: MoveResize, NoHMove, EXC_ID_Title_Compound_Raw, EXC_TR_Cell_ATTRIBUT; Sous\240lignes: MoveResize, EXC_ID_Sub_Raws; Cellule: MoveResize, NoCreate, NoCut, NoHMove, NoHResize, EXC_ID_Cell, EXC_TR_Cell_ATTRIBUT; { Exceptions sur les attributs } Filet\240gauche: EXC_ID_Left_Hairline_Cols; Filet\240droit: EXC_ID_Right_Hairline_SimpCol; Filet\240bas: EXC_ID_Foot_Hairline_CompCol; Filet\240inf\351rieur: EXC_ID_Foot_Hairline_Headings; Filet\240haut: Invisible; Filet\240bas\240: EXC_ID_Foot_Hairline_SimpRaw; Filet\240droit\240:EXC_ID_Right_Hairline_CompRaw; Largeur\240titre: EXC_ID_Title_Width; Ref\240titre\240tableau: Invisible, EXC_ID_Ref_Title; Pourcent\240largeur: Invisible, EXC_ID_Width_Percent; Largeur\240colonne : NewWidth, EXC_ID_Column_Width; Ref\240colonne : Invisible, EXC_ID_Ref_Column; Type\240tableau: EXC_ID_Type_Table; Encadrer: EXC_ID_Table_Frame; Alignement\240horiz: EXC_ID_Align_Horiz; Alignement\240vertic: EXC_ID_Align_Vertic; Alignement\240horiz\240: EXC_ID_Align_HorizDistrib; Alignement\240vertic\240: EXC_ID_Align_VerticDistrib; Extension\240horiz: EXC_ID_Extens_Horiz; Extension\240vertic: EXC_ID_Extens_Vertic; END