Lié 2 selections à une impression

Résolu
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011 - 9 août 2008 à 17:14
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 15 févr. 2009 à 21:44
Bonjour à tous et merci d'accorder de l'importance à ma demande ,

Je suis debutant dans delphi 2006 et j'essai de faire un programme pour ma propre utilisation mais je bloque sur un problème j'ai déja suivi pas mal de tutos pour developper ma formation mais aucune ne parle de celle ci .

Je souhaiterais qu'à partir d'une liste -> je choisis 2 séléctions différentes et que ces 2 selections soient imprimables d'une manière très précises . Je m'explique :

Vous prenez 1 tables dans laquelles on tire 2 noms du type : Paul et Luc .  Ces 2 informations finalement prises j'aimerais qu'elles soient imprimables sur une feuille au centre écrit en gros ' Paul / Luc ' .

J'espère avoir été explicite dans mon explication . Si quelqu'un peux m'aider à résoudre mon problème , je le remercie d'avance .

Bonne journée à tous et à toutes .

79 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 août 2008 à 17:11
Printer.Orientation := poLandscape;


Voilà un lien qui te donnera d'autres méthodes :
http://alphomega.developpez.com/imprimer/?page=page_3

clic sur réponse acceptée si le tout te convient.

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 août 2008 à 19:15
X := PageWidth div 2;
Y := PageHeight div 2;

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
11 août 2008 à 13:28
 Boy
 < 3 rue blablabla du champ >

Il te faut introduire un autre Canvas.textOut pour l'adresse.

Attention, si ça se complique tu peux aussi créer un état de sortie avec
QuickReport ou RaveReport.

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
5 févr. 2009 à 22:56
bonsoir,

Tu peux créer très simplement une table .db avec le module de  base de données (Dbd32.exe) avec des champs de différents type etc.

cantador
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
6 févr. 2009 à 18:16
Ici, c'est magique !

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
7 févr. 2009 à 16:09
plusieurs solutions sont possibles :

soit tu sélectionnes les lignes dans le premier et tu imprimes uniquement celles sélectionnées

soit tu mets en place un DragAndDrop entre le 1er et le 2e dans une table Temporaire (qu'il faudra vider..)
et ensuire tu immrimes la table Tempo

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 févr. 2009 à 16:43
ah ? un truc qui semble marcher :


Tu repasses le dragmode en manual et


lances le start par :



PROCEDURE TForm1.DBGrid1CellClick(Column: TColumn);
BEGIN
  DBGrid1.BeginDrag(true);
END;

Moins pratique mais pour l'instant ça à l'air de gazer car là tu peux choisir ton enregistrement :
tu cliques tu relaches la souris et tu drag and drop..

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 févr. 2009 à 18:34
hé hé..
il te manque le dataset dans le datasource !
et en plus, il est bizarre ton datasource, il a deux datasets
(avec deux liaisons différentes néanmoins)

Quelle version de delphi utilises-tu ?

cantador
3
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 août 2008 à 19:18
bonsoir, 
A mon avis, tu n'as bien formulé ta question car pour l'instant on ne retient
que tu connais déjà l'information que tu recheches...
Ce n'est donc pas l'impression au centre d'une feuille qui pose problème.

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
9 août 2008 à 19:21
Tout simplement sur mon application je ne sais pas créé le bouton + codes qui s'en suit permetant d'imprimer mes 2 selections =)

Je ne sais tout simplement pas imprimer mes selection donc bouton + codes permettant de les imprimer au milieu d'une feuille de papier =)

Merci à toi =)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 août 2008 à 19:51
Quels sont les composants dans lesquels tu sélectionnes les informations ?

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
9 août 2008 à 20:36
Nous allons dire dans 2 TComboBox =)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
9 août 2008 à 22:45
uses printers;
--- 
procedure Impression;
var
ResX, ResY : integer;
begin
   ResX := GetSystemMetrics(SM_CXSCREEN);
   ResY := GetSystemMetrics(SM_CYSCREEN);
    Printer.Orientation := poPortrait;
    with Printer do
    begin
      BeginDoc;
      Canvas.font.Size := 50;
      Canvas.TextOut(ResX div 2, ResY div 2, ComboBox1.Text + '  /  ' + ComboBox2.Text);
      EndDoc;
    end;
end;

A toi d'ajuster div 2 et la taille de la fonte en fonction de tes souhaits.

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
10 août 2008 à 04:17
J'ai essayer d'integrer le code mais la je m'y perd un peu ou faut t'il que l'applique ce code ci ?
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 août 2008 à 11:36
Voilà tatout :

unit Unit1;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Printers;


type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
    procedure Imprimer;
  public
    { Déclarations publiques }
  end;


var
  Form1: TForm1;
  ResX, ResY: integer;
implementation


{$R *.dfm}


procedure GetScreenResolution;
begin
  ResX := GetSystemMetrics(SM_CXSCREEN);
  ResY := GetSystemMetrics(SM_CYSCREEN);
end;


procedure TForm1.Imprimer;
var
  ResX, ResY: integer;
  Conca: string;
begin
  Conca := '';
  ResX := GetSystemMetrics(SM_CXSCREEN);
  ResY := GetSystemMetrics(SM_CYSCREEN);
  Printer.Orientation := poPortrait;
  with Printer do
  begin
    BeginDoc;
    Canvas.font.Size := 50;
    Conca := ComboBox1.Text + '  /  ' + ComboBox2.Text;
    Canvas.TextOut((ResX div 2) - (length(Conca) - 2), ResY div 2, Conca);
    EndDoc;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Imprimer;
end;


initialization
  GetScreenResolution;
end.

Tu n'a plus que la fonte à ajuster.

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
10 août 2008 à 15:33
Salut et déja merci pour toute l'attention que tu me portes j'ai insérer ton code que tu m'as fraichement fait et je te remercie mais une fois rentré j'execute je clique sur le bouton et rien ne se produit est ce normal ?

Encore merci à toi
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 août 2008 à 15:59
Le clic envoie directement une impression sur ton imprimante par défaut (allumée..)
il y une petite erreur dans le TextOut c'est pas -2 mais div 2.

Chez moi ca marche mais il doit y avoir encore une boulette car le texte n'est pas centré?


Mais il suffit de faire varier X et Y dans Canvas.TextOut(X,Y,Conca) pour trouver la bonne carburation !

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
10 août 2008 à 16:15
Merci beaucoup ca marche quelque application si je veux mettre en portrait ce texte , centré et combobox1 et 2 sur 2 lignes différentes ?

Désolé je suis chiant ^^ Je suis nouveau et j'apprécie beaucoup ton aide cantador merci beaucoup =)
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
10 août 2008 à 16:29
portrait c'est déjà fait:
Printer.Orientation := poPortrait;

centré ->> faire bouger X et Y (ex : résolution 1024/768)

combo sur 2 lignes->>> utilises 2 Canvas.TextOut

canvas.textout(X, Y,ComboBox1.Text);
canvas.textout(X, Y,ComboBox2.Text);

Une fois le premier calé, tu trouveras facilement le 2E !

cantador
0
Flash11 Messages postés 54 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 14 août 2011
10 août 2008 à 16:36
J'ai imprimé une page et le texte est en portrait exact mais je me suis trompé je voulais dire paysage merci pour les autres indications ce sera ma dernière question merci encore à toi =)
0
Rejoignez-nous