PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Message à Nizar
Message à Nizar
Iniciado por mlion, jul., 21 2005 1:03 PM - 4 respostas
Publicado em julho, 21 2005 - 1:03 PM
Bonjour "Nizar" ,

Dans un post précédent tu parlais d'un code pour imprimer un état à partir de n'importe quelle table mémoire : je suis intéressé !!!

mail -> mlion@tele2.fr
Publicado em julho, 21 2005 - 1:48 PM
Moi aussi je suis intéressé !

bkeric2002@yahoo.fr

Merci.
Publicado em julho, 21 2005 - 3:00 PM
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
Publicado em julho, 21 2005 - 5:32 PM
J'ai testé il marche ! Merci

A+
Publicado em julho, 21 2005 - 7:54 PM
Je n'ai pas encore testé, mais un grand MERCI.

Michel