1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#Fonction qui retourne la valeur du champ en la tronquant ou en ajoutant des '*' pour arriver à la taille définie
def longueur_data(data_in,longueur):
longueur_data_in=len(data_in)
if longueur > longueur_data_in:
n_completion = longueur-longueur_data_in
completion="*" * n_completion
return data_in+completion
else:
return data_in[0:longueur]
#Récupération des informations des commandes dans le dataframe df_commande
df_commande = client.query('SELECT * FROM T_COMMANDE',location = Location).to_dataframe()
#Récupération des informations des produits dans le dataframe df_produit
df_produit = client.query('SELECT * FROM T_PRODUIT',location = Location).to_dataframe()
list_contenu_fichier = []
#Boucle principale pour récupérer chaque commande
for row_commande in df_commande.itertuples(index=True, name='commande'):
data_commande=longueur_data('COMMANDE',10) #valeur récupérée 'COMMANDE**'
data_numcmd=longueur_data(getattr(row_commande,"NOCMD"),10) #valeur récupérée 'NUMCMD0001'
print(data_commande+data_numcmd) # Affichage de ce qui correspond à la 1ère ligne du contenu du fichier : 'COMMANDE**NUMCMD0001'
#Récupération de la ligne dans une variable
contenu_fichier=data_CONTR+data_IDDISTRI
list_contenu_fichier=data_CONTR+data_IDDISTRI
#Récupération des produits correspondant au 1er numéro de commande de la boucle principale
df_produit_filt = df_produit.loc[df_produit['NOCMD']==getattr(row_commande,"NOCMD")]
#Sous boucle pour récupérer chaque produit de chaque commande de la boucle principale
for row_produit in df_produit_filt.itertuples(index=True, name='produit'):
data_produit=longueur_data('PRODUIT',10) #valeur récupérée 'PRODUIT***'
data_libproduit=longueur_data(getattr(row_produit,"libel_pdt"),18)
print(data_produit+data_libproduit)
# Il y aura 2 itérations étant donné qu'il y a 2 produits correspondant à la 1ère commande
# résultat du print (a chaque itération le print fait un retour chariot
"""
PRODUIT***AGENDA************
PRODUIT***GOMME*************
"""
contenu_fichier=data_produit+data_libproduit #Si je fais cela, cela va écraser le contenu de la variable contenu_fichier de la boucle principale
contenu_fichier_2=data_produit+data_libproduit #Si je déclare une autre variable, la 2e itération du 2e produit va écraser la valeur du 1er produit
list_contenu_fichier.append(data_produit+data_libproduit)
#avec une liste pour la 1ère commande j'aurai 3 éléments dans ma liste :
#list_contenu_fichier[0:2] : ["COMMANDE**NUMCMD0001","PRODUIT***AGENDA************","PRODUIT***GOMME*************"] |
Partager