Sche.... wie unangenehm.
Besten Dank.
chesstiger : ich probier die UDF mal aus. Liest sich gut.
Sche.... wie unangenehm.
Besten Dank.
chesstiger : ich probier die UDF mal aus. Liest sich gut.
Hallo,
nun habe ich schon so oft das WMNotify benutzt und zum laufen bekommen,
aber in diesem Script geht es nicht.
Das WMNotify soll (wie nur unschwer zu sehen) auf Doppelclick im ListView reagieren.
Irgendwo ist ein Fehler.
Kann mir jemand sagen wo er steckt?
Note: Es passiert quasi gar nix bei Doppelclick...
Danke vorab
#include <Constants.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiHeader.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <ComboConstants.au3>
#include <ProgressConstants.au3>
#include <ListviewConstants.au3>
#include <GuiComboBox.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <string.au3>
#include <StaticConstants.au3>
#include <includeMy\mssql.au3>
#include <string.au3>
Global $var1, $ListeWE
[/autoit] [autoit][/autoit] [autoit]Opt("GUICoordMode", 1)
$WEKomi = GUICreate ("WEKomi - Kommissionierung Wareneingang",1366,700,1,1) ; start the definition
GUISetBkColor(0xA6CAF0)
GUISetIcon(@ScriptDir & "\media\favicon.ico")
GUICtrlCreateGroup("", 20, 1,1335, 58)
$Pic2 = GUICtrlCreatePic(@ScriptDir & "\media\LOGO1.gif", 800, 10, 156, 47)
$Bestellnummer = GUICtrlCreateInput("XXXXX", 500, 10, 80, 34)
GUICtrlSetFont(-1, 16, 400, 0, "Calibri")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$hListeWE = _GUICtrlListView_Create($WEKomi,"", 10, 108, 1335,600)
_GUICtrlListView_SetExtendedListViewStyle ($hListeWE, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER, $LVS_EX_TWOCLICKACTIVATE,$LVS_EX_MULTIWORKAREAS))
GUISetState()
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
[/autoit] [autoit][/autoit] [autoit]_GUICtrlListView_InsertColumn($hListeWE, 0, "BestellNr",90)
_GUICtrlListView_InsertColumn($hListeWE, 1, "Pos",50)
_GUICtrlListView_InsertColumn($hListeWE, 2, "Artikel Nr",90)
_GUICtrlListView_InsertColumn($hListeWE, 3, "Bezeichnung Position",260)
_GUICtrlListView_InsertColumn($hListeWE, 4, "Bauteilnummer",200)
_GUICtrlListView_InsertColumn($hListeWE, 5, "Stüli Position",220)
_GUICtrlListView_InsertColumn($hListeWE, 6, "bestellt",100)
_GUICtrlListView_InsertColumn($hListeWE, 7, "geliefert",100)
_GUICtrlListView_InsertColumn($hListeWE, 8, "Länge",70)
_GUICtrlListView_InsertColumn($hListeWE, 9, "Breite",70)
_GUICtrlListView_InsertColumn($hListeWE, 10,"Höhe",70)
GUISetState ()
GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")
While 1
$Msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $Bestellnummer
If StringLen(GUICtrlRead($Bestellnummer))> 5 or StringLen(GUICtrlRead($Bestellnummer))< 5 Then
MsgBox(5,"Achtung", "Die Bestellnummer ist nicht korrekt!")
ElseIf StringLen(GUICtrlRead($Bestellnummer))= 5 Then
Kontrolle()
if $var1 == Null Then
MsgBox(0, "Achtung", "Diese Eingegebene Bestellnummer gibt es im Beosys nicht!")
Else
Wareneingangsliste()
EndIf
EndIf
EndSelect
Wend
func Kontrolle()
$sql = _SQLCon("Server", "Datenbank")
$var1 = _SQLQuery($sql, "SELECT BST_Nummer" & _
" FROM Bestellung" & _
" WHERE (BST_Nummer = " & GUICtrlRead($Bestellnummer) & ")")
EndFunc
[/autoit] [autoit][/autoit] [autoit]func Wareneingangsliste()
_GUICtrlListView_DeleteAllItems($hListeWE)
$sql = _SQLCon("Server", "Datenbank")
$var1 = _SQLQuery($sql, "SELECT Bestellung.BST_Nummer, BestellungPosition.BSP_Position, Artikel.ART_Nummer, BestellungPosition.BSP_Nummer, BestellungPosition.BSP_Bezeichnung, BestellungPosition.BSP_ZeichnungsNummer, " & _ ;
" Struktur.STR_PositionGesamt, BestellungPosition.BSP_MengeBestellt, BestellungPosition.BSP_MengeGeliefert, BestellungPosition.BSP_Laenge, BestellungPosition.BSP_Breite, BestellungPosition.BSP_Hoehe " & _
" FROM BestellungPosition INNER JOIN" & _
" Bestellung ON BestellungPosition.BSP_BestellungID = Bestellung.BST_BestellungID LEFT OUTER JOIN" & _
" Artikel ON BestellungPosition.BSP_ArtikelID = Artikel.ART_ArtikelID LEFT OUTER JOIN" & _
" Struktur INNER JOIN" & _
" BestellungAuftrag ON Struktur.STR_StrukturID = BestellungAuftrag.BAZ_StrukturID ON BestellungPosition.BSP_BestellungPositionID = BestellungAuftrag.BAZ_BestellungPositionID" & _
" WHERE (Bestellung.BST_Nummer = " & GUICtrlRead($Bestellnummer) & ")")
Dim $iLV1 = 0 ; Zähler i für ListView1
with $var1
While not .EOF
;~ MsgBox(1,"Test", "Test")
_GUICtrlListView_ADDItem($hListeWE,.Fields("BST_Nummer").value,0)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_Position").value,1)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("ART_Nummer").value,2)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_Bezeichnung").value,3)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_ZeichnungsNummer").value,4)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("STR_PositionGesamt").value,5)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_MengeBestellt").value,6)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_MengeGeliefert").value,7)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_Laenge").value,8)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_Breite").value,9)
_GUICtrlListView_AddSubItem($hListeWE,$iLV1,.Fields("BSP_Hoehe").value,10)
$iLV1 += 1
.Movenext
WEnd
EndWith
_SQLEnd($sql)
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
;~ #forceref $hWnd, $iMsg, $iwParam
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
;~ ConsoleWrite($hWnd & @TAB & $iMsg & @TAB & $iwParam & @TAB & $ilParam & @TAB & $iIDFrom & @CRLF)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $ListeWE
MsgBox(16, "Error", $hListeWE)
Switch $iCode
Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
MsgBox(16, "Error", "Es wurde kein Datensatz markiert!")
Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
Local $aInfo[12] = [$hWndFrom, _
$iIDFrom, _
$iCode, _
DllStructGetData($tInfo, "Index"), _
DllStructGetData($tInfo, "SubItem"), _
DllStructGetData($tInfo, "NewState"), _
DllStructGetData($tInfo, "OldState"), _
DllStructGetData($tInfo, "Changed"), _
DllStructGetData($tInfo, "ActionX"), _
DllStructGetData($tInfo, "ActionY"), _
DllStructGetData($tInfo, "lParam"), _
DllStructGetData($tInfo, "KeyFlags")]
_LeftDblClickListe($aInfo)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_NOTIFY
Func _LeftDblClickListe($aInfo)
$300links = StringLeft(_GUICtrlListView_GetItemTextString($hListeWE), 400)
$result = StringInStr($300links, "SN")
$result = $result - 1
Global $SNNummer = StringLeft($300links, $result)
If $SNNummer == 0 Then
MsgBox(16, "Error", "Es wurde kein Datensatz markiert!")
Elseif $SNNummer <> 0 Then
MsgBox(16, "Error", $SNNummer)
;~ ClipPut ($lfdNR_TGNListe)
;~ RunWait(@scriptdir & "\TGN\TGNBearbeiten.exe")
;~ TelefonGespraechsListe()
EndIf
EndFunc
Moin Moin.
ich habe ein Script geschrieben, dass in einem Ordner und allen darunterliegenden Ordnern die
Bilder auf eine bestimmte Größe verkleinert.
In dem Script kann man einige Parameter eingeben, dann liest es die Ordnerstruktur aus und startet PhotoResize über die Konsole (siehe Code).
Hier ein Ausschnitt von dem Aufruf der Konsole
$result = StringTrimRight($Filelist[$i][0], 1)
MsgBox (1,"Info","Nächster Ordner ist: " & $result)
RunWait(@ComSpec & ' /c ' & 'PhotoResize.exe -w' & GuiCTRLRead($Width) & ' ' & $Ueberschreiben & ' ' & $Skip & ' -o "' & $result & '"')
$i = $i + 1
Until $i = $Filelist[0][0] + 1
Wenn ich das Script direkt starte, funktioniert es einwandfrei.
Jetzt habe ich es noch in das Kontextmenü eingebunden.
Das Script startet auch, aber der Aufruf von PhotoResize über die Konsole klappt nicht.
Hat das etwas mit Instanzen zu tun?
Vielen Dank vorab.
Servus zusammen,
mittels Script starte ich den MS Internetexplorer und logge mich auf einer Seite automatisch ein.
Leider bekomme ich das nicht mit dem Firefox hin.
Vielleicht kann mir jemand helfen.
Hier mein Code der den IE startet:
$url = 'https://loginSeitevonYmail'
$oIE = _IECreate($url)
$oForm = _IEFormGetObjByName ($oIE, "login_form")
$oQuery1 = _IEFormElementGetObjByName ($oForm, "login")
$oQuery2 = _IEFormElementGetObjByName ($oForm, "passwd")
$oQuery3 = _IEFormElementGetObjByName ($oForm, ".save")
_IEFormElementSetValue ($oQuery1, "xy@ymail.com")
_IEFormElementSetValue ($oQuery2, "mein Password")
_IEFormSubmit ($oQuery3)
Vielen Dank vorab
Moin Zusammen,
wenn ich ein Input kreiere und es folgendermaßen (siehe Quellcode) abfrage, dann startet
die Suchfunktion, wenn ich etwas eingegeben habe und auf ENTER drücke.
Case $Msg[0] = $SuchePosition And $Msg[1] = $Hauptfenster
DatensatzSucheMaterialliste()
Case $Msg[0] = $SucheKenner And $Msg[1] = $Hauptfenster
DatensatzSucheMaterialliste()
case $Msg[0] = $SucheBeschaffungsart And $Msg[1] = $Hauptfenster
DatensatzSucheMaterialliste()
Kreiere ich ein Combo, dann reagiert es auf einen Wechsel der Eingetragungen (bei der gleichen Abrage).
Das ist gut so und soll auch bei mir so sein.
In die Combobox kann ich aber auch manuell etwas eintragen (wie beim Input).
Leider reagiert es dann aber nicht auf ENTER.
Gibt es eine Möglichkeit das einzustellen oder muss ich mir da Brücken bauen?
Vielen Dank vorab
Dieser Beitrag ist eine kleine Brücke funktioniert aber einwandfrei:
http://www.autoit.de/index.php?page=Thread&postID=251152&highlight=combobox#post251152
AAh ja.
Das Leben kann so einfach sein...
Danke
Servus,
ich habe eine Liste in der ich Spalte 0 editierbar gesetzt habe.
Kann ich nur bestimmte Zeilen der Spalte 0 die Editierbarkeit wieder entnehmen?
Danke vorab!
Hey,
ich habe AutoIT jetzt noch mal auf einem anderen Rechner installiert.
Habe eine Testdatenbank erstellt und ein Testprogramm.
#include <sqlite.au3>
#include <sqlite.dll.au3>
Local $hQuery, $aRow , $sMSG
Local $Datenbankdatei = (@ScriptDir & "\DB\test.s3db")
_SQLite_Startup()
if @error > 0 Then
MsgBox(1, "Test", "dll kann nicht geladen werden")
Exit -1
EndIf
$hDB_a = _SQLite_Open($Datenbankdatei)
If @error > 0 Then
MsgBox(1, "Test", "Die Datenbank kann nicht geladen werden!")
EXIT -1
EndIf
_SQLite_Query(-1, "SELECT Name1, * FROM [Laendertabelle] ORDER BY NAME1;", $hQuery)
WHILE _SQLite_FetchData($hQuery, $aRow) = $SqLITE_OK
DIM $Trenner = "|"
$sMSG &= $Trenner & $aRow[0]
WEnd
MsgBox(1, "Test", $sMsg)
_SQLite_Close()
_SQLite_Shutdown()
#
Die DB findet ihr in Test.zip
Wenn ich die Daten auslese, werden keine Umlaute dargestellt.
Irgendeiner muss doch ne Info dazu haben! Das gibts doch net!
Ich glaube ja, dass es an der Autoit-Version liegt.
Vielleicht wird beim Compilieren die Codierung nicht korrekt umgemodelt?!
Kann das denn wenigsten einer wiederlegen?
Hey Leute,
hat keiner mehr eine Idee, oder?
Trotzdem danke für eure Meldungen.
ZitatIn einem Teil des Tools, dass ich im Februar 2010 das letzte mal compiliert habe, wird z.B. ein Mitarbeiter namens Vosskämper,
der aus der DB geladen wird nach wie vor korrekt angezeigt!
Wenn ich das jetzt noch mal neu Compiliere, dann liest er Vossk?mper.
Ich hab AutoIt auch einem anderen Rechner installiert und diverse Tests gemacht... bringt alles nichts.
Wie gesagt SQLiteadmin zeigt alles korrekt an.
Wenn ich über SQLiteadmin Daten nach Excel exportiere, werden Umlaute auch korrekt dargestellt!
Ein anderes Tool liest Daten aus einer MS SQL Dqatenbank. Das läuft einwandfrei.
Vielleicht hat ja doch noch jemand eine Idee.
Hey autoBert,
negativ: Wenn ich einen neuen DS erfasse, dann zeigt er es in sqliteadmin korrekt an und in meinem Tool wieder falsch.
In einem Teil des Tools, dass ich im Februar 2010 das letzte mal compiliert habe, wird z.B. ein Mitarbeiter namens Vosskämper,
der aus der DB geladen wird nach wie vor korrekt angezeigt!
Ja, ich hatte se dann auch gefunden... danke!!!
Also, dein Tool schmeisst auch nicht die korrekten Umlaute aus.
Sqliteadmin hingegen schon!
Ich hab jetzt auch schon eine neue sqlite.au3 in die Includes geladen
und
die SQLite3.dll angesprochen:
_SQLite_Startup (@ScriptDir&"\SQLite\SQLite3.dll")
statt
_SQLite_Startup ()
eine neue SQLite.dll finde ich gar nicht!
meine ist vom 19.12.2005
--> Das gibts doch net!!!!
Includes
#include <SQLite.au3>
#include <SQLite.dll.au3>
Datenbank öffnen
func DBoeffnen()
Local $DatenbankDatei = (@ScriptDir&"\SQLite\DBs\ReiKo2007.db")
_SQLite_Startup () ;Sicherheitsabfragen bezüglich der Datenbank
If @error > 0 Then
MsgBox(16, "SQLite Error", "SQLite.dll kann nicht geladen werden!")
Exit - 1
EndIf
$hDB_a = _SQLite_Open ($DatenbankDatei) ; Öffnet die Datenbank ReiKo2007 Sicherheitsabfragen bezüglich der Datenbank
If @error > 0 Then
MsgBox(16, "SQLite Error", "Die Datenbank kann nicht geladen werden!")
Exit - 1
EndIf
;Inhalt für das Feld Monteur
_SQlite_Query (-1, "SELECT DBPersonalNR, * FROM [Mitarbeiter] ORDER BY DBPersonalNR;",$hQuery)
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK ; Read Out the next Row
Dim $Trenner = "|"
Dim $Comma = ", "
Dim $Leerzeichen = " "
$sMsg &= $aRow[2] & $Leerzeichen & $aRow[4] & $Comma & $aRow[3] & $Trenner
WEnd
EndFunc
Abfragebeispiel
;~ ; Es ist eine Ausländische Montage
if $Stunden >= "24" Then
_SQLite_QuerySingleRow (-1, "SELECT min_24h FROM [Laendertabelle] WHERE Land = '" & $aRow1[3] & "';",$aRow)
$Spesen = $aRow[0]
MsgBox(1, "Test", StringToBinary($aRow1[3],4))
ElseIf $Stunden >= "14" and $Stunden < "24" Then
_SQLite_QuerySingleRow (-1, "SELECT kleiner_24h_min_14h FROM [Laendertabelle] WHERE Land = '" & $aRow1[3] & "';",$aRow)
$Spesen = $aRow[0]
elseIf $Stunden >= "8" and $Stunden < "14" Then
_SQLite_QuerySingleRow (-1, "SELECT kleiner_14h_min_8h FROM [Laendertabelle] WHERE Land = '" & $aRow1[3] & "';",$aRow)
$Spesen = $aRow[0]
ElseIf $Stunden < "8" Then
_SQLite_QuerySingleRow (-1, "SELECT kleiner_8h FROM [Laendertabelle] WHERE Land = '" & $aRow1[3] & "';",$aRow)
$Spesen = $aRow[0]
EndIf
EndIf
$SpesenUebergabe = $Spesen + $aRow1[34] ; Neu programmiert: "Spesen(Aufschlag)" 11.02.2010
return StringFormat("%.2f",$SpesenUebergabe)
Moin Leute,
2007 hab ich ein Reisekostentool programmiert, welches Daten in eine SQLite DB speichert.
Seit irgendeiner neueren Version von AutoIT (so vermute ich zumindest), werden die Umlaute aus der DB falsch ausgelesen, was natürlich zu Problemen führt.
Er setzt beim Auslesen für alle Umlaute eine Raute ein, indem sich ein Fragezeichen befindet
Ich kann quasi an den DB-Skript's, des Tools keine Updates programmieren.
Ich suche jetzt schon einige Zeit, aber bin scheinbar blind.
Kann mir jemand helfen, dass ich wieder ä,ü,ö usw. aus der DB auslesen kann?
Vielen Dank vorab
Hey Leute,
danke erst mal für die extrem schnellen Anworten!!!
TopFit
@BugFix & peethebee:
FileExists liefert 0 und
ZitatFileexists geht also auch nicht
FileGetLongName liefert den Pfad in der Form: U:\Pfad1\Pfad2\*.pdf
ZitatFileGetLongName scheint dann ja zu gehen
????????
Hier noch mal der Code (jetzt auch wie ich die Ordner-Informationen hole):
Global $Ordner1 = IniRead ( @ScriptDir & "\KoLookConf.ini", "Pfad1", "pfz", "Not found")
Global $Ordner2 = IniRead ( @ScriptDir & "\KoLookConf.ini", "Pfad2", "pfz", "Not found")
_GUICtrlListView_DeleteAllItems($hDateiliste)
If GuiCTRLRead($Input_PDF_Suche) <> "" Then
$test1 = FileExists($Ordner1 & GuiCTRLRead($Input_PDF_Suche) & ".pdf")
$test2 = FileGetLongName ( $Ordner1 & GuiCTRLRead($Input_PDF_Suche) & ".pdf" )
MsgBox(48, "Achtung", $test1 & @CRLF & $test2)
EndIf
In Input_PDF_Suche hab ich lediglich einen * eingegeben.
Wenn ich Ordner1 und Ordner2 in einer MSGBox ausgebe, dann ist das Erg. korrekt!
@ Protex
Mit der Programmierung über Arrays bin ich angefangen,
fand es so aber einfacher, weil ich aus dem ListView der Eintrag ins Clipboar kopieren will.
Und dafür brauche ich Pfad und Datei.
Geht sicherlich auch. Meinst du es ist besser?