Statistik drucken bitte hilfe :D

  • Hallo abend,

    hab in der hilfe gefunden wie man ne reine txt datei druckt.
    Wie kann ich machen dass er Inhalte eines Steuerelementes druckt. Wie z.B. Guictrlcreateinput oder ..Label ??


    Hier script:
    (P.S.: Func _printudf() ist das beispiel dass ich gefunden hab..)

    Spoiler anzeigen
    [autoit]

    #include <GuiListView.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <StaticConstants.au3>
    #include <File.au3>
    $hot=Hotkeyset("{F5}")
    ;Global Const $LVFI_PARAM = 0x0001
    ;Global Const $LVIF_TEXT = 0x0001
    ;Global Const $LVM_FIRST = 0x1000
    Global Const $LVM_GETITEM = $LVM_FIRST + 5
    ;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
    ;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140

    [/autoit] [autoit][/autoit] [autoit]

    Dim $nCurCol = -1
    Dim $nSortDir = 1
    Dim $bSet = 0
    Dim $nCol = -1
    Dim $nr, $aSperrungdaten

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate('Otmar Call-Shop', 500, 600, -1,-1)
    GUISetBkColor(0xFFFFFF)
    Guictrlcreatelabel("Artikel-Anzahl",320,10)
    $Input4 = GUICtrlCreateInput("", 320, 30, 50, 21)
    Guictrlcreatelabel("Artikel-Bezeichnung",10,10)
    $Input1 = GUICtrlCreateInput("", 110, 12, 200, 21)
    Guictrlcreatelabel("Artikel-Kategorie",10,35)
    $Input2 = GUICtrlCreateCombo("Wasserpfeifen", 110, 35, 200, 21,0x0003)
    GuiCTRLSETDATA(-1,"Tabak|Kohle|Sonstiges")
    Guictrlcreatelabel("Artikel-Verkaufspreis",10,55)
    $Input3 = GUICtrlCreateInput("", 110, 57, 150, 21)
    $Inputeur=Guictrlcreateinput("€",260,57,50,21)
    Guictrlsetstate(-1,$GUI_DISABLE)
    $Buttondel = GUICtrlCreateButton("Entfernen", 410, 7, 75, 35, 0)
    $Button = GUICtrlCreateButton("Registrieren", 410, 42, 75, 35, 0)
    $Listview1 = GUICtrlCreateListView("Artikelnummer|Artikel | Kategorie | Verkaufspreis | Anzahl", 10, 80, 480, 500)
    GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
    $mnu = GUICtrlCreateContextMenu($Listview1)
    $mnu_edit = GUICtrlCreateMenuItem('Artikel Verkaufen', $mnu)

    [/autoit] [autoit][/autoit] [autoit]

    $mnu_del = GUICtrlCreateMenuItem('Artikel Löschen', $mnu)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    Local $SperrungINI = @ScriptDir & "\Sperrung.ini"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Global $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    Local $lastNum = IniRead($SperrungINI, "Numbers", "last", 9999)

    [/autoit] [autoit][/autoit] [autoit]

    _FillListView()
    GUISetState(@SW_SHOW, $Form1)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1]
    Case $Form1
    _mazosIniVerringerer($nummer)
    _FillListView()
    Switch $nMsg[0]
    Case $GUI_EVENT_CLOSE
    Exit
    Case $mnu_edit
    $nummer=Inputbox("Datenbank 1.0.1","Bitte geben Sie die Artikelnummer an","")
    Case $Buttondel
    If @Error then Msgbox(0,"Titel","Text" & @Error)
    _Filedelete()
    Case $hot
    _FillListView()
    Case $Button
    $lastNum += 1
    $Input = GUICtrlRead($Input1)
    $Input100=Guictrlread($Input2)
    $Input200=GUICTRLREAD($Input3 )
    $Input300=Guictrlread($Input4 )
    $Input400=Guictrlread($Inputeur)
    IniWrite($SperrungINI, "Numbers", "last", $lastNum)
    IniWrite($SperrungINI, "Sperrung", $lastNum, $Input & "|" & $Input100 & "|" & $Input200 & $Input400 & "|" & $Input300)
    IniWrite($SperrungINI, "edit", $lastNum, "")
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    Guictrlsetdata($Input1,"")
    Guictrlsetdata($Input3,"")
    Guictrlsetdata($Input4,"")
    _FillListView()
    Case $mnu_del
    _Filedelete()
    Case $Listview1
    $bSet = 0
    $nCurCol = $nCol
    GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
    DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
    EndSwitch
    EndSwitch
    WEnd
    Func _printudf()

    $file = FileOpenDialog( "zu druckende Datei ", " ", "Textdokumente (*.txt) ", 1)
    If @error Then Exit

    [/autoit] [autoit][/autoit] [autoit]

    $print = _FilePrint($file)
    If $print Then
    MsgBox(0, "Drucken ", "Die Datei wurde gedruckt. ")
    Else
    MsgBox(0, "Drucken ", "Fehler: " & @error & @CRLF & "Die Datei wurde nicht gedruckt. ")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _mazosInivermehrer($nummer1);$nummer=z.B.10004
    $vorher=IniRead("Sperrung.ini","Sperrung",$nummer1,"0")
    $pos=StringInStr($vorher,"|",Default,+1)
    $vorne=StringLeft($vorher,$pos)
    $hinten=StringTrimLeft($vorher,$pos)
    $neu=$vorne & ($hinten+1)
    IniWrite("Sperrung.ini","Sperrung",$nummer1,$neu)
    EndFunc
    Func _mazosIniVerringerer($nummer);$nummer=z.B.10004
    $vorher=IniRead("Sperrung.ini","Sperrung",$nummer,"0")
    $pos=StringInStr($vorher,"|",Default,-1)
    $vorne=StringLeft($vorher,$pos)
    $hinten=StringTrimLeft($vorher,$pos)
    $neu=$vorne & ($hinten-1)
    IniWrite("Sperrung.ini","Sperrung",$nummer,$neu)
    EndFunc
    Func _Filedelete()
    $index = _GUICtrlListView_GetSelectedIndices($Listview1)
    $del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
    IniDelete($SperrungINI, "Sperrung", $del_Key)
    $aSperrung = IniReadSection($SperrungINI, "Sperrung")
    _GUICtrlListView_DeleteItemsSelected($Listview1)
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _FillListView()
    _GUICtrlListView_DeleteAllItems($Listview1)
    If $lastNum = 9999 Then Return
    For $i = 1 To UBound($aSperrung) - 1
    GUICtrlCreateListViewItem($aSperrung[$i][0] & '|' & $aSperrung[$i][1], $Listview1)
    Next
    EndFunc
    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $Listview1
    If Not IsHWnd($Listview1) Then $hWndListView = GUICtrlGetHandle($Listview1)

    [/autoit] [autoit][/autoit] [autoit]

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_RCLICK
    Return $GUI_RUNDEFMSG
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc
    Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
    Local $nSort
    If $nColumn = $nCurCol Then
    If Not $bSet Then
    $nSortDir = $nSortDir * - 1
    $bSet = 1
    EndIf
    Else
    $nSortDir = 1
    EndIf
    $nCol = $nColumn
    $val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
    $val2 = GetSubItemText($Listview1, $nItem2, $nColumn)
    If $nColumn = 2 Then
    $val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
    $val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
    EndIf
    $nResult = 0
    If $val1 < $val2 Then
    $nResult = -1
    ElseIf $val1 > $val2 Then
    $nResult = 1
    EndIf
    $nResult = $nResult * $nSortDir
    Return $nResult
    EndFunc
    Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
    Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
    DllStructSetData($stLvfi, 1, $LVFI_PARAM)
    DllStructSetData($stLvfi, 3, $nItemID)

    [/autoit] [autoit][/autoit] [autoit]

    Local $stBuffer = DllStructCreate("char[260]")

    [/autoit] [autoit][/autoit] [autoit]

    $nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));

    [/autoit] [autoit][/autoit] [autoit]

    Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")

    [/autoit] [autoit][/autoit] [autoit]

    DllStructSetData($stLvi, 1, $LVIF_TEXT)
    DllStructSetData($stLvi, 2, $nIndex)
    DllStructSetData($stLvi, 3, $nColumn)
    DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
    DllStructSetData($stLvi, 7, 260)

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));

    [/autoit] [autoit][/autoit] [autoit]

    $sItemText = DllStructGetData($stBuffer, 1)

    [/autoit] [autoit][/autoit] [autoit]

    $stLvi = 0
    $stLvfi = 0
    $stBuffer = 0

    [/autoit] [autoit][/autoit] [autoit]

    Return $sItemText
    EndFunc

    [/autoit]
  • Hallo mazo09,

    da du weist wie du eine Textdatei drucken kannst, musst du nur vor dem drucken eine erstellen. Zum auslesen der Daten aus den Steuerelementen nimmst du GuiCtrlRead etc. (sprich die gleichen Routinen, die du jetzt bereits benutzt). Schau dir vorher dazu in der Hilfe FileOpen, FileWrite und FileClose an. Falls du weist, wie man Notepad fernsteuert, kannst du auch diesen benutzen. Auch eine Word-Automation ist denkbar, siehe dazu die Liste der nutzerdefinierte Funktionen für Word in der Hilfe an. Viele Wege führen nach Rom zum Ausdruck eines Belegs, musst dich nur einlesen oder (falls keine Zeit und da es ja für deine eigene Firma ist) ein Angebot in die Jobbörse stellen,

    mfg (Auto)Bert