Salut Créer 1 bouton et 1 table mémoire
//code du bouton // Envoie l'impression à l'écran iAperçu(2) // Imprime la table avec les traits IIMPRIMETABLE("TABLE1",Vrai) // Lance l'impression iFinImprime()
//code de la procédure
PROCEDURE IIMPRIMETABLE(NomTable,Cadre)
i est un entier
j est un entier
x est un réel
y est un réel
P_Chaine est chaîne
P_Monétaire est monétaire
DimDot est un réel
DimDot=0.3759
NumPolice est un entier
NumPolice=1
iParamètre("ORIENTATION = PAYSAGE")
// Impression du titre de l'état
x=iPosX()
y=iPosY()
// Texte dans une zone
iPolice(NumPolice); iImprimeZone(" ",(iLargeurPage())/2,y,(iLargeurPage()),y+iHauteurTexte("E"),iCentreV+iCentreH)
// Laisser 2 Ligne vide
iPolice(NumPolice); iImprimeZone(" "+" ",iPosX(),iPosY()+10,(iLargeurPage()),y+iHauteurTexte("E"),iCentreV+iCentreH)
iPolice(NumPolice); iImprimeZone(" "+" ",iPosX(),iPosY()+10,(iLargeurPage()),y+iHauteurTexte("E"),iCentreV+iCentreH)
i=1
// Impression du titre des colonnes (sans cadre)
POUR j=1 A TableOccurrence(NomTable,2)
SI {NomTable}[i][j]..Visible=Vrai
x=iPosX()
y=iPosY()
// Texte dans une zone
iPolice(NumPolice); iImprimeZone(" "+SansEspace({NomTable}[i][j]..Libellé),x,y,Min(x+{NomTable}[i][j]..Largeur*DimDot+iLargeurTexte(" "),iLargeurPage()),y+iHauteurTexte("E"),iCentreV+iCentreH)
iPosX(x+{NomTable}[i][j]..Largeur*DimDot+iLargeurTexte(" "))
SI iPosX()>iLargeurPage() ALORS SORTIR
iPosY(y)
FIN
FIN
// va au début de la ligne suivante
iPosY(y+iHauteurTexte("E"))
SI iPosY()+iHauteurTexte("E")>iHauteurPage() ALORS
iSautePage()
iPosY(0)
FIN
iPosX(0)
// Impression de la table, ligne par ligne
POUR i=1 A {NomTable}..Occurrence
// Impression d'une ligne
POUR j=1 A TableOccurrence(NomTable,2)
SI {NomTable}[i][j]..Visible=Vrai
x=iPosX()
y=iPosY()
// Texte dans une zone
P_Chaine={NomTable}[i][j]
SELON Majuscule(NomTable)
CAS "TABLE"
SELON {NomTable}[i][j]..Nom
CAS "COL_DATE"
P_Chaine=DateVersChaîne(P_Chaine)
CAS "COL_NUMDOC","FR_NOM" // ne rien faire
AUTRE CAS
P_Monétaire=Val(P_Chaine)
P_Chaine=NumériqueVersChaîne(P_Monétaire,"12,3f")
FIN
CAS "TABLE_1"
SELON {NomTable}[i][j]..Nom
CAS "COL_DATEVENTE"
P_Chaine=DateVersChaîne(P_Chaine)
CAS "COL_NUMDOC1","CL_NOM1" // ne rien faire
AUTRE CAS
P_Monétaire=Val(P_Chaine)
P_Chaine=NumériqueVersChaîne(P_Monétaire,"12,3f")
FIN
FIN
iPolice(NumPolice); iImprimeZone(" "+P_Chaine,x,y,Min(x+{NomTable}[i][j]..Largeur*DimDot+iLargeurTexte(" "),iLargeurPage()),y+iHauteurTexte("E"),iCentreV+iCentreH)
SI Cadre ALORS
iCadre(x,y,Min(x+{NomTable}[i][j]..Largeur*DimDot+iLargeurTexte(" "),iLargeurPage()),y+iHauteurTexte("E"))
FIN
iPosX(x+{NomTable}[i][j]..Largeur*DimDot+iLargeurTexte(" "))
SI iPosX()>iLargeurPage() ALORS SORTIR
iPosY(y)
FIN
FIN
iPosY(y+iHauteurTexte("E"))
SI iPosY()+iHauteurTexte("E")>iHauteurPage() ALORS
iSautePage()
iPosY(0)
FIN
iPosX(0)
FIN
bon dev |