Besoin d'aide pour faire avancer mon projet de tout urgence DEADLINE 24 avril...

Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
- - Dernière réponse : djordane
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
- 23 avril 2010 à 23:14
Bonjour,
Je suis actuelement en 2eme annee de BTS IRIS et suis dans une m**** monumentale, c'est pour cela que me voici aujourd'hui implorant votre aide:

Mon projet de fin d'annee qui represente a lui seul plus de la moitie de ma note finale pour l'examen consiste en un programme en C#, plus particulierement un editeur de ticket de caisse, je m'explique:

un autre bout de code qu'un de mes camarades "est senser" avoir terminer dois m'envoyer des codes produits. Je dois avec ce code produit aller recuperer le reste des information de ce meme produit dans une base de donnee et editer en premier temps dans un windows forms le fameux ticket de caisse au fur et a mesure que les numeros de series me sont envoyer. Apres qu'un bouton Termine est cliquer, ce meme ticket de caisse doit etre "virtuelement imprimer" (sauvegarder dans un fichier .txt(.pdf?) sous un nom de fichier unique==> 000001)
Ce fichier doit etre dans cette configuration:



_____________(nom de societe)
_________________(slogan)

_______________(adresse 1)
_______________(adresse 2)
_______________(telephone)
________(horaire et jour d'ouverture)

Le (XX/XX/2010) __________Numero : 000001
(Heure)

QTE______CODE_______DESCRIPTION_____PRIX
-----------------------------------------
X (code article)(nom de l'article) XX,XX
X (code article)(nom de l'article) XX,XX
X (code article)(nom de l'article) XX,XX
-----------------------------------------
___________TOTAL NET: XXX.XX

__________MERCI ET A BIENTOT ...

//Remplacer tout les _ par des espaces
//ou signifie centrer

voila ce que je dois recuperer sur mon fichier final avec une quantite de produit envoyer au fur et a mesure.

Et donc maintenant ce que je cherche c'est une ame (bien plus que) charitable pour un coup de main magistrale car je dois presenter ce projet Samedi 20 avril (dans 4 jours) si vous pouviez me guider par nimporte quel moyen que ce soit, je vous en serais Infiniement reconaissant. Voici le code (ignoble) que j'ai pondu apres des heures de travail... Je sais que c'est pitoyable mais je fais de mon mieu... Je suis pret a dormir 3h par nuit mais la, je pedale dans la semoule....
Merci d'avance a la communaute pour votre ecoute, votre aide et vos conseils.


Mon Code:
------------------------------------

using System;
using System.Collections.Generic;

using System.Linq;
using System.Text;
//permet l'édition de fichier
using System.IO;


namespace TikCaisse
{
class Program
{

static void Main(string[] args)
{
//declaration virtuel, PROVISOIRE
int qte1 = 12;
int qte2 = 3;
int qte3 = 1;
string nom1 = "machin";
string nom2 = "truc";
string nom3 = "bidule";
double prix1 = 9.50;
double prix2 = 20.00;
double prix3 = 80.99;
double total = 00.00;
string societe = "Caissoto";
string slogan = "Le specialiste de la caisse automatique";
string adresse1 = "10, rue de paris";
string adresse2 = "75000 Paris";
string phone = "01 02 03 04 05";
string horaire = "1h30 - 19h00 LUNDI AU SAMEDI";
string remerciement = "MERCI ET A BIENTOT ...";

Console.Out.WriteLine("ligne=" + ligne);
//creation d'un tableau des prix
double[] prix = new double[] { prix1, prix2, prix3 };

//creation d'un tableau d'articles
string[] article = new string[] { nom1, nom2, nom3 };

//creation d'un tableau de quantité
double[] qte = new double[] { qte1, qte2, qte3 };

//creation du tableau de la relation du prix/qte
double prixqte = 0;
string path = @"c:\ticket";
StreamWriter sw = new StreamWriter(path + "_1.txt", true);

//mise en page PROVISOIRE
sw.WriteLine(societe);
sw.WriteLine(slogan);
sw.WriteLine("");
sw.WriteLine(adresse1);
sw.WriteLine(adresse2);
sw.WriteLine(phone);
sw.WriteLine("");
sw.WriteLine(horaire);
sw.WriteLine("");
sw.WriteLine(" Le " + DateTime.Now);
sw.WriteLine(" NUMERO : XXXX ");
sw.WriteLine(" QTE DESCRIPTION PRIX Unitaire PRIX/QTE ");
sw.WriteLine(" ---------------------------------------------------");
//ajout des lignes de prix et articles
for (int i = 0; i < 3; i++)
{

prixqte = qte[i] * prix[i];

sw.WriteLine(" " + qte[i] + " " + article[i] + " | " + prix[i] + " " + prixqte);

total = prixqte + total;
prixqte = 0;

}

//calcul du total
// for (int j = 0; j < 3; j++)
// {
// total = total + prix[j];
// }
sw.WriteLine(" ----------------------------------");
sw.WriteLine(" TOTAL NET : "+ total);
sw.WriteLine(remerciement);
sw.Close();
Console.ReadLine();

}
}
}
Afficher la suite 

10 réponses

Messages postés
18
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mai 2010
0
Merci
elle est ou, c'est quoi l'erreur?
tu voudrais qu'on te pisses du code?
pr le code, y a un super petit bouton code c# (balises "code=cs" "/code" ) pasque la...
Commenter la réponse de patatasux
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
0
Merci
ya pas mal de choses que je n'arrive pas a faire genre centrer le contenue de mon fichier texte, lancer l'impression de celui ci, et au niveau de mes articles comment faire étant donner que j'ignore combien il va y en avoir contrairement a mon exemple ou j'en ai designer 3.

Et je ne demande pas que l'on me "pisse du code" sa n'aurais aucun interet pour moi. j'aurais juste besoin d'aide et d'explication sur votre aide. personellement biensur que je ne vous demande pas de me macher le travail car j'avance de mon mieu de mon coté, j'ai trouver un moyen de generer les fichiers texte et les nomées 1.txt,2.txt etc.
Dernier point sur lequel je planche: la mise en page de mes articles car moi je me retrouve avec ca:

QTE DESCRIPTION PRIX Unitaire PRIX/QTE
--------------------------------------------------------------------
12 Machin | 9,5 114
3 Truc | 20 60
1 Bidule | 80,99 81
-----------------------------------------------------

Alors que j'aimerais obtenir ca:

QTE | DESCRIPTION | PRIX/U |
-----------------------------------------------------
12 | Machin | 9,50 | 114
3 | Truc | 20,00 | 60
1 | Bidule | 80,99 | 81
-----------------------------------------------------
Commenter la réponse de djordane
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
0
Merci
QTE | DESCRIPTION __________________| PRIX/U | PRIX/QTE
-------------------------------------------------------
_12_| Machin _______________________|__ 9,50 |_ 114
__3_| Truc _________________________|_ 20,00 |__ 60
__1_| Bidule _______________________|_ 80,99 |__ 81
-------------------------------------------------------

Dsl pb de mise en page
Commenter la réponse de djordane
Messages postés
18
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mai 2010
0
Merci
Pou ton probleme d'alignement de texte, voila comme je ferai:

tu te créé un classe dont le but sera de stocker ton ticket avec le texte aligné, elle contiendra une fonction ajouterTexte.

attributs: int largeurLigne
string contenu;

Constructeur: maClasse(int largeur) {la dedans tu initialise la largeur}

ensuite ta méthode pour aligner le texte:
ajouterTexte(string txt, string pos)

tu l'as compris, pos contient ou tu doit aligner: gauche, milieu, droite.

pour centrer ton texte, il faut calculer le nombre d'espaces que tu dois mettre avant ton texte:
int nbEspace = (this.largeurLigne - txt.length())/2;
string maLigne = new String();
for (int i = 0; i < nbEspace; i++)
maLigne += " ";

maLigne += txt;
this.contenu += maLigne + "\n";



voila, bien sur tes atributs sont initialisés dans ton constructeur
pour aligner ton texte a droite, il suffit d'enlever le /2.

et désolé pour la mise en forme, j'ai "codé" ca vite fait ds l'explorateur, t'as pas à l'abris d'une ou deux erreur, mais t'as le principe. jrepasse sur l'heure de midi si t'as d'autre soucis, la jsuis un px a la bourre

bonne chance pour ton projet.
Commenter la réponse de patatasux
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
0
Merci
j'essayerais de coder sa tout a l'heure pendant ma seance derniere seance de projet.
Tu aurais aussi une idée pour la génération des fichiers texte avec incrementation du nom pour obtenir 000001.txt, 000002.txt etc...

Perso j'ai trouver cette solution mais il est clair que sa doit etre loin d'etre la meilleur, je vois deja venir le commentaire salé de l'examinateur: "et votre 10000 client on lui offre le café le temps de la génération?"

int numticket = 1;
String folderTicket=@"C:\Tickets";
String ticketPath=folderTicket+numticket+".txt";

while(File.Exists(ticketPath)){
ticketPath=folderTicket+numticket+".txt";numticket++;
}

StreamWriter sw=new StreamWriter(ticketPath, true);

if(System.IO.File.Exists(ticketPath)){
Console.WriteLine("Fichier créer avec succes");
}
else{
Console.WriteLine("ERREUR LORS DE LA CREATION DU FICHIER");
}
Commenter la réponse de djordane
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
0
Merci
stoque plutot ton dernier numero de ticket dans un fichier quelconque
et va le rechercher a chaque nouveau ticket et tu increment ce numero dans ce fichier texte (ou xml, ou autre...)


Arthenius
"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Messages postés
18
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mai 2010
0
Merci
En fait, ca pourrait le faire, mais fait le qu'une fois, à l'ouverture du programme, ensuite tu mémorise le nombre, et a chaque fois que tu ajoute un ticket, tu incrémente.

évidement, si tu as 1 000 000 de ticket, l'ouverture risque d'être longue, mais c'est déja bien.

si tu vx y améliorer, tu px obtenir tout les fichier d'un dossier avec la méthode static (tu n'as rien besoin d'instancier pour l'utiliser)

Directory.GetFiles

cette méthode te renvois un string[] contenant dans chaque case le nom du fichier.

et ça m'étonnerais pas que tu puisse trier ce string[] et prendre le dernier ;).

Aller, encore une autre solution, qui vien de m'arriver à l'espris, sans doute la meilleur niveau efficacité:

tu créé un fichier, et dedans tu écris le nom du dernier ticket créé, à ajout de ticket, tu le modifie.

(on pourrai le lire à l'ouverture, stocker, travailer en mémoire puis l'écrire à la fermeture de programme, mais ca risque de poser des pbs si ton appli bug en cours, à la prochaine execution, tu écraserai ceux créés durant la dernière execution).
Commenter la réponse de patatasux
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
0
Merci
j'ai une base de donnée sql 2005 a ma disposition. je peux l'utiliser pour inserer les valeurs du fichier ainsi que ceux de societé, slogan etc?
Commenter la réponse de djordane
Messages postés
18
Date d'inscription
lundi 11 janvier 2010
Statut
Membre
Dernière intervention
21 mai 2010
0
Merci
oui, bien sûr, mais si tu n'y connais rien en SQL pour le moment et que ton projet, c'est pour demain, je m'en m'abstiendrais, et je ferais ça avec la bonne vieille méthode des fichiers. :p
Commenter la réponse de patatasux
Messages postés
9
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
25 mai 2010
0
Merci
Merci pour votre aide esperont que demain j'assurerais apres sa j'ai 1 mois de répis pour un projet 100% fonctionnel
Merci encore notamment patatasux qui m'as été d'une tres grand aide ;)
Commenter la réponse de djordane