Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Imprimer automatiquement

2 réponses
Avatar
regis.scotto
Bonjour a toutes et a tous,

Je desirerais imprimer automatiquement une liste de facturettes pour les
clients, les donnees sont une date debut et une date de fin, une heure
de debut et une heure de fin, or, il faut que je detecte automatiquement
la fin de la periode journaliere, ce que j'arrive, mais ce que je
n'arrive pas, c'est a determiner aleatoirement c'est la fin que je
choisis aleatoirement comme heure dependant de chaque ETABlissement, je
veux que pour l'ETABlissement 1, 2 et 4, l'impression se fasse a partir
de 18h00 + un chiffre aleatoirement de battement et pour l'ETABlissement
3 une heure de 21h00 + un chiffre aleatoire de battement, or, pour
l'heure de fin, pour les ETABlissements 1, 2, 4, cela reste a 18h00 et
pour l'ETABlissement 3 reste a 21h00 meme si j'ajoute le chiffre
aleatoire de battement (***) ; quelqu'un pourrait il m'aider a fignoler
mon algo,

en vous remerciant d'avance,

// Voila mon algo :

datedebut est une chaine
heuredebut est une chaine

compteur est un entier
arret est un entier court
occ est un entier long
chiffre est un entier long

datefin est un entier long
heurefin est un entier long


datedebut = CONSTAT.DATE[1]
datefin = dateversentier(CONSTAT.DATE[1]) + 1

heuredebut = CONSTAT.HEURE[1]

CONSTAT.DATE[2]=entierversdate(datefin)
CONSTAT.HEURE[2]=heuredebut

compteur=0
arret = 0

SI CONSTAT.ETAB=0 alors retour

execute("CONSTAT.VALIDE..CLI")

tantque arret<>1

// stop // --> pour voir les variables

occ = tableoccurrence("CONSTAT.TAB_TICKET")

si occ = 0 alors
bip ; bip ; bip
arret=1
goto finboucle
fin

datefin=dateversentier(CONSTAT.DATE_T[occ])
heurefin=heureversentier(CONSTAT.HEURE_T[occ])

inithasard()
chiffre = partieentiere(hasard(10000,32000))*hasard(25)

CONSTAT.DATE[2]=entierversdate(datefin)

heurefin=heurefin+chiffre

CONSTAT.HEURE[2]=entierversheure(heurefin)

(***) SELON CONSTAT.ETAB

CAS 1, 2, 4
SI CONSTAT.HEURE[2]<"1800" ALORS
CONSTAT.HEURE[2]="1800"+entierversheure(chiffre)
FIN

CAS 3
SI CONSTAT.HEURE[2]<"2100" ALORS
CONSTAT.HEURE[2]="2100"+entierversheure(chiffre)
FIN

FIN

SI CONSTAT.DATE[2] = CONSTAT.DATE[1] et CONSTAT.HEURE[2] <
"0700"
alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

si CONSTAT.HEURE[2] > "2359" alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

SI CONSTAT.DATE[2] < CONSTAT.DATE[1] alors
erreur("Une erreur est survenue dans la déduction des
dates !")
retour
fin

// ------------------------> pour faire des tests

// Imprime les tickets

CONSTAT.AUTOTICK=1
ouvre("IMP_TICK")
CONSTAT.AUTOTICK=0

// Imprime le Z avec les valeurs determinees
CONSTAT.AUTOZ=1

ouvre("FEN_Z",CONSTAT.ETAB,CONSTAT.DATE[1],CONSTAT.HEURE[1],CONSTAT.DATE[2],CONSTAT.HEURE[2])
CONSTAT.AUTOZ=0

compteur = compteur + occ

si compteur >= CONSTAT.NOMBRE alors
si pas ouinon("Changement de rouleau : Le total spécifié
a été atteint, voulez-vous continuer ?") alors
arret=1
SINON
CONSTAT.NOMBRE = compteur
FIN
fin

si Tableoccurrence("CONSTAT.TAB_TICKET") = 0 alors
si pas ouinon("Le tableau n'affiche aucun ticket pour
cette période, voulez-vous tenter le jour suivant ?") alors
arret=1
fin
FIN

si arret <> 1 alors

datefin = dateversentier(CONSTAT.DATE[1]) + 1
CONSTAT.DATE[1]=entierversdate(datefin)

heuredebut = CONSTAT.HEURE[1]

datefin = dateversentier(CONSTAT.DATE[1]) + 1
CONSTAT.DATE[2]=entierversdate(datefin)

CONSTAT.HEURE[2]=heuredebut

execute("CONSTAT.VALIDE..CLI")

fin

finboucle :

FIN

CONSTAT.AUTOTICK=0
CONSTAT.AUTOZ=0


Bien amicalement,

Regis SCOTTO.

--
Bonifacio, Corsica, France : http://blog.bonifacio.com/

2 réponses

Avatar
regis.scotto
Salut a tous,

[le Tue, 10 Apr 2007 07:05:46 GMT]
[dans "fr.comp.developpement.agl.windev"]
[le message ayant pour sujet : "Imprimer automatiquement"]
[ (Regis SCOTTO)] écrivait :

Et comme ca, ca devrait marcher normalement ?

../..

SELON CONSTAT.ETAB

CAS 1, 2, 4

Si heurefin < heureversentier("1800") alors
heurefin=heureversentier("1800")+chiffre
SINON
heurefin=heurefin+chiffre
fin

//SI CONSTAT.HEURE[2]<"1800" ALORS
// CONSTAT.HEURE[2]="1800"+entierversheure(chiffre)
//FIN

CAS 3

Si heurefin < heureversentier("2100") alors
heurefin=heureversentier("2100")+chiffre
SINON
heurefin=heurefin+chiffre
fin

//SI CONSTAT.HEURE[2]<"2100" ALORS
// CONSTAT.HEURE[2]="2100"+entierversheure(chiffre)
//FIN

FIN

CONSTAT.HEURE[2]=entierversheure(heurefin)

../..

(***) SELON CONSTAT.ETAB

CAS 1, 2, 4
SI CONSTAT.HEURE[2]<"1800" ALORS
CONSTAT.HEURE[2]="1800"+entierversheure(chiffre)
FIN

CAS 3
SI CONSTAT.HEURE[2]<"2100" ALORS
CONSTAT.HEURE[2]="2100"+entierversheure(chiffre)
FIN

FIN

SI CONSTAT.DATE[2] = CONSTAT.DATE[1] et CONSTAT.HEURE[2] <
"0700"
alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

si CONSTAT.HEURE[2] > "2359" alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

SI CONSTAT.DATE[2] < CONSTAT.DATE[1] alors
erreur("Une erreur est survenue dans la déduction des
dates !")
retour
fin




Bien amicalement,

Regis SCOTTO.

--
Bonifacio, Corsica, France : http://blog.bonifacio.com/
Avatar
Eric Flament
bonjour regis

si c'est pour une appli de gestion avec une cloture journaliére, pouquoi ne
pas utiliser datedujourcomptable+numero de la facturette

datedujour compateble /04/2007 ->du 11/04/2007 06:00 àu 12/04/2007 01:00

Eric



"Regis SCOTTO" a écrit dans le message de news:

Bonjour a toutes et a tous,

Je desirerais imprimer automatiquement une liste de facturettes pour les
clients, les donnees sont une date debut et une date de fin, une heure
de debut et une heure de fin, or, il faut que je detecte automatiquement
la fin de la periode journaliere, ce que j'arrive, mais ce que je
n'arrive pas, c'est a determiner aleatoirement c'est la fin que je
choisis aleatoirement comme heure dependant de chaque ETABlissement, je
veux que pour l'ETABlissement 1, 2 et 4, l'impression se fasse a partir
de 18h00 + un chiffre aleatoirement de battement et pour l'ETABlissement
3 une heure de 21h00 + un chiffre aleatoire de battement, or, pour
l'heure de fin, pour les ETABlissements 1, 2, 4, cela reste a 18h00 et
pour l'ETABlissement 3 reste a 21h00 meme si j'ajoute le chiffre
aleatoire de battement (***) ; quelqu'un pourrait il m'aider a fignoler
mon algo,

en vous remerciant d'avance,

// Voila mon algo :

datedebut est une chaine
heuredebut est une chaine

compteur est un entier
arret est un entier court
occ est un entier long
chiffre est un entier long

datefin est un entier long
heurefin est un entier long


datedebut = CONSTAT.DATE[1]
datefin = dateversentier(CONSTAT.DATE[1]) + 1

heuredebut = CONSTAT.HEURE[1]

CONSTAT.DATE[2]=entierversdate(datefin)
CONSTAT.HEURE[2]=heuredebut

compteur=0
arret = 0

SI CONSTAT.ETAB=0 alors retour

execute("CONSTAT.VALIDE..CLI")

tantque arret<>1

// stop // --> pour voir les variables

occ = tableoccurrence("CONSTAT.TAB_TICKET")

si occ = 0 alors
bip ; bip ; bip
arret=1
goto finboucle
fin

datefinÚteversentier(CONSTAT.DATE_T[occ])
heurefin=heureversentier(CONSTAT.HEURE_T[occ])

inithasard()
chiffre = partieentiere(hasard(10000,32000))*hasard(25)

CONSTAT.DATE[2]=entierversdate(datefin)

heurefin=heurefin+chiffre

CONSTAT.HEURE[2]=entierversheure(heurefin)

(***) SELON CONSTAT.ETAB

CAS 1, 2, 4
SI CONSTAT.HEURE[2]<"1800" ALORS
CONSTAT.HEURE[2]="1800"+entierversheure(chiffre)
FIN

CAS 3
SI CONSTAT.HEURE[2]<"2100" ALORS
CONSTAT.HEURE[2]="2100"+entierversheure(chiffre)
FIN

FIN

SI CONSTAT.DATE[2] = CONSTAT.DATE[1] et CONSTAT.HEURE[2] <
"0700"
alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

si CONSTAT.HEURE[2] > "2359" alors
CONSTAT.DATE[2]=entierversdate(datefin+1)
heurefin=chiffre
CONSTAT.HEURE[2]=entierversheure(heurefin)
FIN

SI CONSTAT.DATE[2] < CONSTAT.DATE[1] alors
erreur("Une erreur est survenue dans la déduction des
dates !")
retour
fin

// ------------------------> pour faire des tests

// Imprime les tickets

CONSTAT.AUTOTICK=1
ouvre("IMP_TICK")
CONSTAT.AUTOTICK=0

// Imprime le Z avec les valeurs determinees
CONSTAT.AUTOZ=1

ouvre("FEN_Z",CONSTAT.ETAB,CONSTAT.DATE[1],CONSTAT.HEURE[1],CONSTAT.DATE[2],CONSTAT.HEURE[2])
CONSTAT.AUTOZ=0

compteur = compteur + occ

si compteur >= CONSTAT.NOMBRE alors
si pas ouinon("Changement de rouleau : Le total spécifié
a été atteint, voulez-vous continuer ?") alors
arret=1
SINON
CONSTAT.NOMBRE = compteur
FIN
fin

si Tableoccurrence("CONSTAT.TAB_TICKET") = 0 alors
si pas ouinon("Le tableau n'affiche aucun ticket pour
cette période, voulez-vous tenter le jour suivant ?") alors
arret=1
fin
FIN

si arret <> 1 alors

datefin = dateversentier(CONSTAT.DATE[1]) + 1
CONSTAT.DATE[1]=entierversdate(datefin)

heuredebut = CONSTAT.HEURE[1]

datefin = dateversentier(CONSTAT.DATE[1]) + 1
CONSTAT.DATE[2]=entierversdate(datefin)

CONSTAT.HEURE[2]=heuredebut

execute("CONSTAT.VALIDE..CLI")

fin

finboucle :

FIN

CONSTAT.AUTOTICK=0
CONSTAT.AUTOZ=0


Bien amicalement,

Regis SCOTTO.

--
Bonifacio, Corsica, France : http://blog.bonifacio.com/