Español
Foro

Elegante Druckausgabe

 

Sebald
Grandjean
¡Hola,

folgende Tarea: Erstellen uno einfachen Eingabemaske para una Buchungsanordnung. Reservas redactar, bearbeiten, löschen etc. In Profano una Kinderspiel!

Ein wenig anspruchsvoller Es el Druckausgabe, porque como hay una muy kompliziert gestalteten Vordruck (Linien, Kästchen, weitere Felder, el später a mano ausgefüllt voluntad, etc.)

Como würdet ihr así algo lösen? Mit el Zeichenfunktionen de Profano cada Element en el Leinwand 'malen' oder vllt. doch una BMP invitar, el el erforderlichen Elemente ya beinhaltet y luego el eingegebenen Werte drüberdrucken dejar? Gibt lo tal vez ni otro Möglichkeit?

Saludo Sebald
 
08.02.2018  
 




H.Brill
Como sieht lo porque con uno Gridbox de,
also uno Tabla ?

Zum ausdrucken des Gitternetzes nutze Yo siempre
que aquí (Printgrid.inc) :
 $H commctrl.ph
 $H Structs.ph
 $H Messages.ph

Proc CountGridColumns

    Parámetros Handle hGrid
    Declarar Memory b
    Declarar flag&
    Var TotalColumns& = 0
    Struct LV_COLUMN = ~LV_COLUMN
    Dim b, LV_COLUMN
    b.mask& = ~LVCF_WIDTH

    Repeat

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

    Until flag& = 0

    Disponer b
    Volver TotalColumns&

ENDPROC

Proc LV_GETCOLUMN

    Parámetros Handle Hdl,Index&
    Declarar Column#,Texto$,Erfolg%
    Struct LVCOLUMN = mask&, fmt&, cx&, pszText%%, cchTextMax&, iSubItem&, iImage&, iOrder&
    Dim Column#, LVCOLUMN
    Texto$ = MkStr$("\z",160)' hier adaptar, si la Textos länger ser debería
    Column#.mask& = ~LVCF_TEXT
    Column#.pszText%% = Addr(Texto$)
    Column#.cchTextMax& = 160' s.o.
    SendMessage(Hdl,~LVM_GETCOLUMN,Index&,Column#)
    Volver Texto$

ENDPROC

Proc ErstelleHTM

    Parámetros Handle dGrid, us$, htmdatei$
    Declarar anz&, zeile$, cols&, column$, tmp$
    cols& = CountGridColumns(dGrid)
    Declarar Memory b
    Asignar #1, htmdatei$
    Rewrite #1
    Imprimir #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)+">"
    Imprimir #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)+">"
    Imprimir #1,"<head>"
    Imprimir #1, "<title>" + us$ + "</title>"
    Imprimir #1, "<style type="+chr$(34)+"text/css"+chr$(34)+">"
    Imprimir #1, "td {font-family:Verdana; font-size:12px; border: 1px solid rgb(0, 0, 0); padding: 3px; texto-align: left}"
    Imprimir #1, "th {font-family:Verdana; font-size:12px; font-weight:bold; border: 1px solid rgb(0, 0, 0); padding: 3px; texto-align: left}"
    Imprimir #1, ".zeile1 {font-family:Verdana; font-size:12px; }"
    Imprimir #1, ".zeile3 {font-family:Verdana; font-size:12px;color:black; background-color:#A8D2FD;}"
    Imprimir #1, "</style>"
    Imprimir #1,"</head>"
    Imprimir #1, "<body>"
    Imprimir #1, "<table>"
    Imprimir #1, "<colgroup>"
    Struct LV_COLUMN = Maske&,Formate&,SpaltenBreite&,pointerText&,TextLen&,Spalte&
    Declarar Column#,x&
    Dim Column#,LV_COLUMN

    WhileLoop 0,(cols& - 1),1

        With Column#

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

        EndWith

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

    EndWhile

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

    WhileLoop 0, Cols&-1

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

    EndWhile

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

    Mientras que x%<anz&

        Imprimir #1, "<tr>"

        WhileLoop 0, Cols&-1

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

        EndWhile

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

    EndWhile

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

ENDPROC

Proc ShowHtm

    Parámetros Handle hwindow, Grid, String datei, us$
    Declarar Handle htmWin, hWin, hbtn1, hbtn2, Int ende2
    ende2 = 0
    ErstelleHTM(Grid, us$, datei)' Html-Expediente erzeugen
    hWin  = @Crear("Dialog", hwindow, "HTML - Fenster", 10, 10, 800, 400)
    hbtn1 = @Crear("Button", hWin, "Drucke", 10, 10, 60, 25)
    hbtn2 = @Crear("Button", hWin, "Ende", 100,  10, 60, 25)
    htmWin = @Crear("HTMLWin", hWin, datei, 1, 10, 60, 750, 300)

    Sinestar encargado ende2

        WaitInput

        If @Clicked(hbtn1)

            ' Drucken
            Messagebox("Mit rechter Botón del ratón en el Tabla clic\nund en el Kontexmenü Drucken auswählen !", "Info", 0)
            '@ShellExec(datei, "print", 0)

        ElseIf @Clicked(hbtn2)

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

        EndIf

    EndWhile

    DestroyWindow(hWin)

ENDPROC


Ausdruck : ShowHtm(Fensterhandle, Gridboxhandle, Htmldatei, us$)
Htmldatei es sólo una Dateiname -> z.B. Druck.html. Falls uno
später veces el Htmldatei en el Navegador anschauen/otra vez drucken möchte.
us$ = Überschrift.

Usted mußt sólo schauen, daß cada Feld con algo gefüllt es, sonst
sieht lo später no así schön de.

Wenn lo sólo una Página es, podría uno auch con ScreenCopy oder
WinCopy probieren.

Ansonsten sólo en una Mapa de bits dibujar y StartPrint...EndPrint
en el Drucker ausgeben.

Como müßte Yo de dir algo mehr Info haben, como el en el individual
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!
Yo vergaß: Yo benutze ni XProfan 10 de 2006, voluntad demnächst aber veces aufrüsten en el X4, si ellos neu rauskommt.

Innerhalb el Boxen müssten entonces nochmals Rechtecke y Striche adecuado voluntad, lo que el Sache todavía komplexer hacer sería. Leider a allem Übel siendo diferente Schriftgrößen (
 
08.02.2018  
 




H.Brill
Naja, dibujar kannst du sí con el Grafikbefehlen
Rectángulo,Line, LineTo usw.

Also, Yo sería como alles en una Static (es así una Art
Leinwand) hacer.

Hier veces una Ansatz :
Declarar Handle label1, label2, edit1, edit2, static
Declarar Handle btn1, btn2
Declarar Int ende
Ventana 800, 400
static = Crear("Static", %HWnd, 10, 10, 350, 200)
label1 = Crear("Text", static, "Nummer :", 10, 10, 80, 25)
label2 = Crear("Text", static, "Name   :", 10, 40, 80, 25)
edit1  = Crear("Edit", static, "", 90, 10, 40, 25)
edit2  = Crear("Edit", static, "", 90, 40, 120, 25)
btn1   = Crear("Button", %Hwnd, "Drucken", 380, 10, 60, 25)
btn2   = Crear("Button", %HWnd, "Ende",    380, 40, 60, 25)
StartPaint static
DrawIcon "A", 50, 80
DrawIcon "GESICHT", 100, 80
UseFont "ARIAL", 24, 16, 1, 0, 0
DrawText 10, 120, "Erster Texto !"
UseFont "ARIAL", 16,   8, 1, 0, 0
DrawText 10, 170, "Zweiter Texto !"
EndPaint
ende = 0

Sinestar encargado ende

    WaitInput

    If Clicked(btn1)

        ' Drucken
        WinCopy static

    ElseIf Clicked(btn2)

        ende = 1

    EndIf

    Case %Key = 2 : ende = 1

EndWhile

End

Das dürfte auch en Versión 10 laufen.

Sollte al Formular al Bildschirm oder en el Papier
ausfüllen puede ?
 
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
El Anzeige es sólo como una Art Endkontrolle pensamiento, daß uno sieht, qué como ausgedruckt se. Ausgefüllt se entonces nichts mehr, außer después de el Ausdrucken por Hand.

Kein großes Ding a se, Yo voluntad el wohl encima una JPG oder BMP hacer y luego tatsächlich el Eingabetext drüberzeichnen. Como DINA4 el Ausgabegröße es, muss Yo wohl en una Element zurückgreifen, qué scrollbar es.

p.s. el Code oben verursacht Variablenfehler, Yo muss el später al Abend veces ausprobieren.
 
08.02.2018  
 




H.Brill
Kann ser, daß el Versión todavía no Variablentyp
Handle sabe. Also simplemente el Variables con Sufijo
% oder & deklarieren.

Búsqueda veces hier después de Ventana principal con 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
Yo bin profantechnisch desafortunadamente hoffnungslos veraltet (Prfellow-Generation....). El Sache bekomme Yo no ans Laufen. Es no wirklich tragisch, el Ausdruck bekomme Yo hin.

Un Druckvorschau se se con einfachen Mitteln probablemente no realisieren dejar. Lo reicht primero, el Eingaben editierbar a haben, qué sí una leichte Tarea es.

Nur nebenbei: En el momento se ejecuta el Geschichte en EXCEL con algo VB. Yo habe el Ehrgeiz lo 'stand alone' en Profano a realisieren.
 
08.02.2018  
 




H.Brill
Usted puede en efecto el kostenlose FreeProfan nehmen.
Como bist du wenigstens veces en el Stand de Versión X2.

Wenn lo en EXCEL + algo VB va, bekommt al con
Profano auch hin. Was una editierbare Gridbox betrifft, como habe
Yo auch qué dazu, qué auch 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.
Algo como Tuve antes langer, langer Tiempo veces en X11 gebastelt, con simpler Druckvorschau y Druckfunktion .
Yo packe veces 'nen Screenshot de el Druckvorschau y una Ausdruck (en pdf-Drucker gemacht) ran.

En Interesse kann Yo sí veces al WE el Ver código fuente raussuchen. War aber, como todos Elemente einzeln suscrito voluntad, una bastante "aufwendiges" Teil. Natürlich fueron div. Daten vom Programa ausgefüllt, si la Daten en el DB disponible waren. Wenn Yo mich bastante entsinne, incluso con Drucker-Anpassung (Ränder usw.)

92 kB
Hochgeladen:09.02.2018
Ladeanzahl108
Descargar
26 kB
Hochgeladen:09.02.2018
Ladeanzahl102
Descargar
 
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)
Algo como Tuve antes langer, langer Tiempo veces en X11 gebastelt.....


Perfekt! So voluntad Yo el auch hinbekommen. El Druckroutine es kein así großes Problema, eben Fleißarbeit. El Durckvorschau (con Scrollbalken) ya más.
 
09.02.2018  
 




Michael
W.
El Mühe con el Druckvorschau mache Yo no. Das puede ser con el Druckerdialog antes el Ausdruck vom Druckertreiber/Windows entleihen. Dort kann auch abgebrochen voluntad.

En el Bildern, si entonces ser se, sería Yo una verlustfreies Formato (also png) wählen, así como alles scharf a sehen es. Denke auch daran: Si usted viel con Linien dibujar musst, entonces schaue Usted el Metafiles (emf) a.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.02.2018  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

6.641 Views

Untitledvor 0 min.
E.T.09.12.2022
Stringray05.01.2022
R.Schneider29.01.2021
Manfred Barei29.01.2021
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie