Bonjour a tous voila j'ai téléchargé ce composant que je vous fait passer qui est une DBGrid Imprimable comme son nom l'indique. mais voila je ne comprend rien a son utilisation .pouvez vous m'éclairer??????
Bonjour a tous voila j'ai téléchargé ce composant que je vous fait passer qui est une DBGrid Imprimable comme son nom l'indique. mais voila je ne comprend rien a son utilisation .pouvez vous m'éclairer??????
Il y a un fichier d'aide joint au zip, il suffit de le lire :
Les méthode sont également expliquées dans l'aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 The TPrintDBGrid object is a TCustomDBGrid descestant with exactly the same capabilities as the original TDBGrid component. Only three methods have been added; Print, CopyToClipboard and SaveToFile.
Je sait que c'est pas bien de dire ceci pour un futur developeur mais :
Je suis null en anglai!!!!!!!! lol![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 L'objet TPrintDBGrid est un descendant de TCustomDBGrid avec exactement les même capacités que le TDBGrid original. Il y a uniquement trois méthodes qui ont été ajoutés : Print, CopyToClipboard et SaveToFile.
Je te remercie en faite je me rend compte que je comprend l'anglais technique.Tout s'imprime correctement mais mon soucis c'est que mon DBGrid Contient un répertoire et je voudrai que a l'impression il change de feuille pour chaque lettre de l'alphabet.
Il faut regarder dans les propriétés de l'objet si il le permet, mais c'est pas forcément le cas!
Sinon il faudra gérer tous ça à la main par toi même...
Merci Sat 83 décidement tu est partout lol.
Oui gérer a la main c'est la seule manière mais ce que je demande c'est une aide pour réaliser tout ceci car j'ai un peu de mal je l'avou :s
Si tu veux plus d'aide, il faut être plus précis!
Explique exactement ce que tu veux faire, et ce que tu a déjà fait en expliquant là ou tu bloque et ce qui te pose problème
Voila j'ai une PrintDBGrid avec Un Champ Nom qui affiche pas ordre alphabétique.
Se que je voudrai c'est faire une impression. Mais A chaque Foi que sa change de lettre Qu'il imprime sur une nouvelle feuille.
La méthode pour imprimer c juste
PrintDBGrid->Print(AnsiString);
Voilà une solution qui n'est pas la plus réfléchie ni la plus optimale, mais qui a le mérite d'être assez simple:
Tu exécute ta requête en filtrant la première lettre pour chaque lettre de l'alphabet, et a chaque fois tu imprime.
Ca oblige a exécuter 26 requêtes d'affiler (pour chaque lettre de l'alphabet) donc c'est pas forcément une solution très optimisé, mais après ça dépend de ton programme et de son utilisation. Si tu imprime une fois par mois, ça reste raisonnable, si tu imprime 200 fois par heures, ça commence à faire beaucoup et cette solution n'est pas forcément très adaptée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void ConstructMyQuery( char Letter ) { myQuery->Active = false ; myQuery->SQL->Clear() ; myQuery->SQL->Add( "SELECT MonChamp FROM MaTable" ) ; myQuery->SQL->Add( "WHERE UPPER( MonChamp ) like '" + UpperCase(Letter) + "%' " ) ; myQuery->Active = true; }
Et dans ta boucle :
J'ai pas tester, donc y'a peut être des retouche a faire, mais l'idée est là !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 for( char c='A'; c <= 'Z' ; c++ ) { ConstructMyQuery( c ) ; if( !(myQuery->Bof && myQuery->Eof) ) // si il y a qqch dans la requete { // [...] // paramètrage de l'impression, ajout de titre, etc... // [...] myDBGrid->Print( c ) ; } }
Partager