Das OFFIZIELLE PROFAN SUPPORT FORUM
Einsteigerfragen
PROFAN-Programmierung
Helfer & Tools
Anregungen & Vorschläge
PROFAN-NEWS
Die Regeln!
2 - PROFAN-Programmierung

 Neues Thema  |  Zur Übersicht  |  Suchen  |  Einloggen   Vorherige Nachricht  |  Nächste Nachricht 
 Re: Tab beim Datei Speichern
Autor: Heinz Brill (---.dip0.t-ipconnect.de)
Datum:   19.12.19 18:54

Das ist wohl eher das Problem mit den Schriftfonts.
Ein Buchstabe, z.B. ein W ist wohl breiter als eine Ziffer
z.B. 1.
Wenn es nur ums Anschauen geht, machst du das
in der Gridbox mit den Spaltendefinitionen (Name,Ausrichtung,Breite).

Wenn es ums Drucken geht, geht das besser mit HTML.
Hier mal eine .inc, bei der du ShowHTM mit Parameter Handle der
Gridbox usw. aufrufen kannst :

 $H commctrl.ph
 $H Structs.ph
 $H Messages.ph
 
 Proc CountGridColumns
   Parameters Handle hGrid
   Declare Memory b
   Declare 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
   Dispose b
   Return TotalColumns&
 EndProc
 
 Proc LV_GETCOLUMN
   Parameters Handle Hdl,Index&
   Declare Column#,Text$,Erfolg%
   Struct LVCOLUMN = mask&, fmt&, cx&, pszText%%, cchTextMax&, iSubItem&, iImage&, iOrder&
   Dim Column#, LVCOLUMN
   Text$ = MkStr$("\z",160) ' hier anpassen, wenn die Texte länger sein sollten
   Column#.mask& = ~LVCF_TEXT
   Column#.pszText%% = Addr(Text$)
   Column#.cchTextMax& = 160 ' s.o.
   SendMessage(Hdl,~LVM_GETCOLUMN,Index&,Column#)
   Return Text$
 EndProc
 
 Proc ErstelleHTM
   Parameters Handle dGrid, us$, htmdatei$
   Declare anz&, zeile$, cols&, column$, tmp$
   cols& = CountGridColumns(dGrid)
   Declare Memory b
 
   Assign #1, htmdatei$
   Rewrite #1
     Print #1,"<!DOCTYPE html PUBLIC"+chr$(34)+"-//W3C//DTD XHTML 1.0 Transitional//EN"+chr$(34)+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"+chr$(34)+">"
     Print #1, "<html xmlns="+chr$(34)+"http://www.w3.org/1999/xhtml"+chr$(34)+" xml:lang="+chr$(34)+"de"+chr$(34)+" lang="+chr$(34)+"de"+chr$(34)+">"
     Print #1,"<head>"
     Print #1, "<title>" + us$ + "</title>"
     Print #1, "X = ANFAHREN   B = BEI BEDARF<BR>A = ANRUFEN      R = RUHETAG<BR>"
     Print #1, "<style type="+chr$(34)+"text/css"+chr$(34)+">"
     Print #1, "td {font-family:Verdana; font-size:12px; border: 1px solid rgb(0, 0, 0); padding: 3px; text-align: left}"
     Print #1, "th {font-family:Verdana; font-size:12px; font-weight:bold; border: 1px solid rgb(0, 0, 0); padding: 3px; text-align: left}"
     Print #1, ".zeile1 {font-family:Verdana; font-size:12px; }"
     Print #1, ".zeile3 {font-family:Verdana; font-size:12px;color:black; background-color:#A8D2FD;}"
     Print #1, "</style>"
 
     Print #1,"</head>"
     Print #1, "<body>"
     Print #1, "<table>"
     Print #1, "<colgroup>"
   Struct LV_COLUMN = Maske&,Formate&,SpaltenBreite&,pointerText&,TextLen&,Spalte&
   Declare Column#,x&
   Dim 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)
      Print #1, "<col width="+chr$(34)+Str$(x&)+"px"+chr$(34)+">"
   EndWhile
   Print #1, "</colgroup>"
 
      Print #1, "<tr >"
   WhileLoop 0, Cols&-1
     Print #1, "<th class="+chr$(34)+"zeile3"+chr$(34)+">" + Trim$(LV_GETCOLUMN(dGrid, &loop)) + "</th>"
   EndWhile
   Print #1, "</tr>"
   anz& = GetCount(dGrid)
   Var x%=0
   While x%<anz&
     Print #1, "<tr>"
     WhileLoop 0, Cols&-1
      Print #1, "<td class="+chr$(34)+"zeile1"+chr$(34)+">" + Trim$(GetText$(dGrid, x%, &loop)) + "</td>"
     EndWhile
     Print #1, "</tr>"
     inc x%
   EndWhile
 
   Print #1, "</table>"
   Print #1, "</body>"
   Print #1, "</html>"
   Close #1
   '@ShellExec(htmdatei$, "open", 1)
 EndProc
 
 Proc ShowHtm
 Parameters Handle hwindow, Grid, String datei, us$
 Declare Handle htmWin, hWin, hbtn1, hbtn2, Int ende2
 ende2 = 0
 ErstelleHTM(Grid, us$, datei) ' Html-Datei erzeugen
 hWin  = @Create("Dialog", hwindow, "HTML - Fenster", 10, 10, 800, 400)
 hbtn1 = @Create("Button", hWin, "Drucke", 10, 10, 60, 25)
 hbtn2 = @Create("Button", hWin, "Ende", 100,  10, 60, 25)
 htmWin = @Create("HTMLWin", hWin, datei, 1, 10, 60, 750, 300)
 
 WhileNot ende2
    WaitInput
    If @Clicked(hbtn1)
       ' Drucken
       Messagebox("Mit rechter Maustaste auf die Tabelle klicken\nund im Kontexmenü Drucken auswählen !", "Info", 0)
       '@ShellExec(datei, "print", 0)
    ElseIf @Clicked(hbtn2)
       DestroyWindow(hWin)
       ende2 = 1
       SetActiveWindow(%HWnd)
    EndIf
 EndWhile
 DestroyWindow(hWin)
 EndProc
 


Evtl. ist das schon brauchbar für dich.

H.Brill
XProfan X4 + FreeProfan

 Beitrag beantworten  |  Foren-Liste  |  Alle Antworten   Neuerer Beitrag  |  Älteres Thema 

 Beiträge Autor  Datum
 Tab beim Datei Speichern  Neu
Steven Scheidler 19.12.19 08:15 
 Re: Tab beim Datei Speichern  Neu
Heinz Brill 19.12.19 18:54 
 Re: Tab beim Datei Speichern  Neu
Steven Scheidler 21.12.19 19:37 
 Re: Tab beim Datei Speichern  Neu
a. hurler 05.01.20 07:42 
 Re: Tab beim Datei Speichern  Neu
Steven Scheidler 05.01.20 13:34 
 Re: Tab beim Datei Speichern  Neu
Heinz Brill 22.12.19 08:47 
 Re: Tab beim Datei Speichern  Neu
Heinz Brill 05.01.20 12:11 


 Foren-Liste  |  Zur Registrierung 
 Benutzerlogin
 Benutzername:
 Passwort:
 Login-Daten speichern:
   
 Passwort vergessen?
E-Mail-Adresse oder Username unten eingeben. Dann wird Dir per e-Mail ein neues Passwort zugeschickt.

phorum.org