Français
Forum

Elegante Druckausgabe

 

Sebald
Grandjean
Salut,

folgende devoir: Erstellen einer einfachen Eingabemaske pour une Buchungsanordnung. Réservations erstellen, Travailler, effacer etc. dans Profan un Kinderspiel!

un peu anspruchsvoller ist qui Druckausgabe, car là gibt es une très compliqué gestalteten Vordruck (Linien, Kästchen, weitere Felder, qui später de main ausgefüllt volonté, etc.)

comment würdet son so quelque chose lösen? avec den Zeichenfunktionen de Profan chaque Element sur qui Leinwand 'malen' ou bien vllt. doch une BMP magasin, qui qui erforderlichen Elemente déjà beinhaltet et ensuite qui eingegebenen Werte drüberdrucken laisser? Gibt es peut-être encore une autre Possibilité?

Salut Sebald
 
08.02.2018  
 




H.Brill
comment sieht es car avec einer Gridbox aus,
alors einer Tabelle ?

Zum ausdrucken des Gitternetzes nutze je toujours
que voici (Printgrid.inc) :
 $H commctrl.ph
 $H Structs.ph
 $H Messages.ph

Proc CountGridColumns

    Paramètres Handle hGrid
    Déclarer Memory b
    Déclarer flag&
    Var TotalColumns& = 0
    Struct LV_COLUMN = ~LV_COLUMN
    Faible b, LV_COLUMN
    b.mask& = ~LVCF_WIDTH

    Repeat

        Inc TotalColumns&
        flag& = SendMessage(hGrid, ~LVM_GETCOLUMN, TotalColumns&, b)

    Until flag& = 0

    Dispose b
    Retour TotalColumns&

ENDPROC

Proc LV_GETCOLUMN

    Paramètres Handle Hdl,Index&
    Déclarer Column#,Text$,Erfolg%
    Struct LVCOLUMN = mask&, fmt&, cx&, pszText%%, cchTextMax&, iSubItem&, iImage&, iOrder&
    Faible Column#, LVCOLUMN
    Text$ = $ MkStr("\z",160)' ici anpassen, si le Textes länger son devrait
    Column#.mask& = ~LVCF_TEXT
    Column#.pszText%% = Addr(Text$)
    Column#.cchTextMax& = 160' s.o.
    SendMessage(Hdl,~LVM_GETCOLUMN,Index&,Column#)
    Retour Text$

ENDPROC

Proc ErstelleHTM

    Paramètres Handle dGrid, us$, htmdatei$
    Déclarer anz&, la ligne$, cols&, column$, tmp$
    cols& = CountGridColumns(dGrid)
    Déclarer Memory b
    Assign #1, htmdatei$
    Rewrite #1
    Imprimer #1,"<!DOCTYPE html PUBLIC"+chr$(34)+»-//W3C//DTD XHTML 1.0 Transitional//EN"+chr$(34)+"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"+chr$(34)+">"
    Imprimer #1, "<html xmlns="+chr$(34)+"https://www.w3.org/1999/xhtml"+chr$(34)+" xml:lang="+chr$(34)+"de"+chr$(34)+" lang="+chr$(34)+"de"+chr$(34)+">"
    Imprimer #1,"<head>"
    Imprimer #1, "<title>" + us$ + "</title>"
    Imprimer #1, "<style type="+chr$(34)+"text/css"+chr$(34)+">"
    Imprimer #1, "td {font-family:Verdana; font-size:12px; border: 1px solid rgb(0, 0, 0); padding: 3px; text-align: left}"
    Imprimer #1, "th {font-family:Verdana; font-size:12px; font-weight:bold; border: 1px solid rgb(0, 0, 0); padding: 3px; text-align: left}"
    Imprimer #1, ".la ligne1 {font-family:Verdana; font-size:12px; }"
    Imprimer #1, ".la ligne3 {font-family:Verdana; font-size:12px;color:black; background-color:#A8D2FD;}"
    Imprimer #1, "</style>"
    Imprimer #1,"</head>"
    Imprimer #1, "<body>"
    Imprimer #1, "<table>"
    Imprimer #1, "<colgroup>"
    Struct LV_COLUMN = Maske&,Formate&,SpaltenBreite&,pointerText&,TextLen&,Spalte&
    Déclarer Column#,x&
    Faible Column#,LV_COLUMN

    WhileLoop 0,(cols& - 1),1

        With Column#

            .Maske&         = $000F
            .Spalte&        = &loop

        EndWith

        SendMessage(Grid,$1019,&loop,Column#)
        x&= SendMessage(Grid,$101D,&loop,0)
        Imprimer #1, "<col width="+chr$(34)+Str$(x&)+"px"+chr$(34)+">"

    Endwhile

    Imprimer #1, "</colgroup>"
    Imprimer #1, "<tr >"

    WhileLoop 0, Cols&-1

        Imprimer #1, "<th class="+chr$(34)+"zeile3"+chr$(34)+">" + Trim$(LV_GETCOLUMN(dGrid, &loop)) + "</th>"

    Endwhile

    Imprimer #1, "</tr>"
    anz& = GetCount(dGrid)
    Var x%=0

    Tandis que x%<anz&

        Imprimer #1, "<tr>"

        WhileLoop 0, Cols&-1

            Imprimer #1, "<td class="+chr$(34)+"zeile1"+chr$(34)+">" + Trim$(GetText $(dGrid, x%, &loop)) + "</td>"

        Endwhile

        Imprimer #1, "</tr>"
        inc x%

    Endwhile

    Imprimer #1, "</table>"
    Imprimer #1, "</body>"
    Imprimer #1, "</html>"
    Fermer #1
    '@ShellExec(htmdatei$, "open", 1)

ENDPROC

Proc ShowHtm

    Paramètres Handle hwindow, Grid, String fichier, us$
    Déclarer Handle htmWin, hWin, hbtn1, hbtn2, Int ende2
    ende2 = 0
    ErstelleHTM(Grid, us$, fichier)' Html-Dossier erzeugen
    hWin  = @Créer("Dialog", hwindow, "HTML - Fenster", 10, 10, 800, 400)
    hbtn1 = @Créer("Button", hWin, "Drucke", 10, 10, 60, 25)
    hbtn2 = @Créer("Button", hWin, "Ende", 100,  10, 60, 25)
    htmWin = @Créer("HTMLWin", hWin, fichier, 1, 10, 60, 750, 300)

    WhileNot ende2

        WaitInput

        Si @Clicked(hbtn1)

            ' Drucken
            Messagebox("Mit rechter Bouton de la souris sur qui Tabelle klicken\nund im Kontexmenü Drucken auswählen !", "Info", 0)
            '@ShellExec(fichier, "print", 0)

        ElseIf @Clicked(hbtn2)

            DestroyWindow(hWin)
            ende2 = 1
            SetActiveWindow(%HWnd)

        EndIf

    Endwhile

    DestroyWindow(hWin)

ENDPROC


Ausdruck : ShowHtm(Fensterhandle, Gridboxhandle, Htmldatei, us$)
Htmldatei ist seulement un Dateiname -> z.B. Druck.html. si on
später fois le Htmldatei im Browser anschauen/nochmal drucken voudrais.
us$ = Überschrift.

tu dois seulement regarder, qui chaque champ avec quelque chose pleine ist, sonst
sieht es später pas so joli aus.

si es seulement une page ist, pourrait on aussi avec ScreenCopy ou bien
WinCopy essayer.

Ansonsten arrêt sur une Bitmap zeichnen et StartPrint...EndPrint
sur dem Drucker ausgeben.

là devrait je de dir quelque chose plus Info avons, comment cela im individuel
aussieht.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.02.2018  
 




Sebald
Grandjean
Vielen Dank!
je vergaß: je benutze encore une XProfan 10 aus 2006, werde bientôt mais la fois aufrüsten sur qui X4, si vous récente rauskommt.

dedans qui Boxen müssten ensuite nochmals Rechtecke et Striche angezeigt volonté, quoi qui l'affaire encore komplexer faire serait. malheureusement trop allem Übel encore verschiedene Schriftgrößen (
 
08.02.2018  
 




H.Brill
bof, zeichnen peux du oui avec den Grafikbefehlen
Rectangle,Line, LineTo usw.

alors, je serait là alles sur einem Static (est une Art
Leinwand) faire.

ici la fois un Ansatz :
Déclarer Handle label1, label2, edit1, edit2, static
Déclarer Handle btn1, btn2
Déclarer Int ende
Fenêtre 800, 400
static = Créer("Static", %HWnd, 10, 10, 350, 200)
label1 = Créer("Text", static, "Nummer :", 10, 10, 80, 25)
label2 = Créer("Text", static, "Name   :", 10, 40, 80, 25)
edit1  = Créer("Edit", static, », 90, 10, 40, 25)
edit2  = Créer("Edit", static, », 90, 40, 120, 25)
btn1   = Créer("Button", %Hwnd, "Drucken", 380, 10, 60, 25)
btn2   = Créer("Button", %HWnd, "Ende",    380, 40, 60, 25)
Début de peinture static
DrawIcon "A", 50, 80
DrawIcon "GESICHT", 100, 80
UseFont "ARIAL", 24, 16, 1, 0, 0
DrawText 10, 120, "Erster Text !"
UseFont "ARIAL", 16,   8, 1, 0, 0
DrawText 10, 170, "Zweiter Text !"
EndPaint
ende = 0

WhileNot ende

    WaitInput

    Si Clicked(btn1)

        ' Drucken
        WinCopy static

    ElseIf Clicked(btn2)

        ende = 1

    EndIf

    Cas %Key = 2 : ende = 1

Endwhile

Fin

cela pourrait aussi dans Version 10 courir.

Sollte on cela formulaire am Bildschirm ou bien sur dem papier
remplir peut ?
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.02.2018  
 




Sebald
Grandjean
qui Anzeige ist seulement comme une Art Endkontrolle gedacht, qui on voit, quoi là ausgedruckt wird. Ausgefüllt wird ensuite rien plus, sauf pour dem Ausdrucken per main.

ne...aucune großes Ding à sich, je werde cela wohl sur un JPG ou bien BMP faire et ensuite réellement den Eingabetext drüberzeichnen. là DINA4 qui Ausgabegröße ist, muss je wohl sur un Element zurückgreifen, quoi scrollbar ist.

p.s. qui Code dessus verursacht Variablenfehler, je muss cela später am soir la fois ausprobieren.
 
08.02.2018  
 




H.Brill
peux son, qui qui Version encore keinen Variablentyp
Handle kennt. alors simple qui Variablen avec Postfix
% ou bien & déclarer.

cherche la fois ici pour Hauptfenster avec Scrollbalken.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.02.2018  
 




Sebald
Grandjean
je suis profantechnisch malheureusement hoffnungslos vieilli (Prfellow-Generation....). qui l'affaire bekomme je pas à l' courir. c'est pas wirklich tragisch, den Ausdruck bekomme je hin.

une Druckvorschau wird sich avec einfachen Mitteln wohl pas realisieren laisser. Es reicht zunächst, qui Eingaben editierbar trop avons, quoi oui une leichte devoir ist.

seulement nebenbei: Zur Zeit fonctionne qui Geschichte dans EXCEL avec quelque chose VB. j'ai den l'ambition es 'stand alone' dans Profan trop realisieren.
 
08.02.2018  
 




H.Brill
tu peux oui aussi cela kostenlose FreeProfan prendre.
là es du wenigstens la fois sur dem Stand de Version X2.

si es dans EXCEL + quelque chose VB allez, bekommt on cela avec
Profan aussi hin. quoi une editierbare Gridbox betrifft, là habe
je aussi quoi en supplément, quoi aussi funktioniert.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
09.02.2018  
 




E.T.
Quelque chose comme J'ai eu avant long, long Zeit la fois dans X11 gebastelt, avec simpler Druckvorschau et Druckfunktion .
je packe la fois 'nen Screenshot de qui Druckvorschau et une Ausdruck (sur pdf-Drucker gemacht) ran.

chez intérêt peux je oui la fois am WE den Voir le texte source raussuchen. était mais, là alle Elemente einzeln gezeichnet volonté, un droite "aufwendiges" partie. Bien sûr wurden div. données vom Programme ausgefüllt, si le données dans qui DB vorhanden étions. si je mich droite entsinne, sogar avec Drucker-Anpassung (Ränder usw.)

92 kB
Hochgeladen:09.02.2018
Downloadcounter108
Download
26 kB
Hochgeladen:09.02.2018
Downloadcounter102
Download
 
XProfan X3
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
09.02.2018  
 




Sebald
Grandjean
E.T. (09.02.2018)
Quelque chose comme J'ai eu avant long, long Zeit la fois dans X11 gebastelt.....


parfait! So veux je cela aussi hinbekommen. qui Druckroutine ist ne...aucune so großes Problem, plan Fleißarbeit. qui Durckvorschau (avec Scrollbalken) déjà plutôt.
 
09.02.2018  
 




Michael
W.
qui Mühe avec qui Druckvorschau fais je Je ne. cela peux on avec dem Druckerdialog avant dem Ausdruck vom Druckertreiber/Windows entleihen. là peux aussi abgebrochen volonté.

chez den Bildern, si es ensuite son soll, serait je un verlustfreies Format (alors png) choisir, avec cela là alles tranchant trop voyons ist. Denke aussi daran: si Du viel avec Linien zeichnen musst, ensuite schaue Dir qui Metafiles (emf) à.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.02.2018  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.642 Views

Untitledvor 0 min.
E.T.09.12.2022
Stringray05.01.2022
R.Schneider29.01.2021
Manfred Barei29.01.2021
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie