2487 lines
93 KiB
AutoIt
2487 lines
93 KiB
AutoIt
;LV_Eingabe_func.au3
|
|
|
|
Func _ListviewAutoWidthHeader($vLVName)
|
|
Local $hLV = GUICtrlGetHandle($vLVName)
|
|
$iCountColum = _GUICtrlListView_GetColumnCount($hLV)
|
|
|
|
For $i = 0 To $iCountColum - 1
|
|
_GUICtrlListView_SetColumnWidth($hLV, $i, $LVSCW_AUTOSIZE_USEHEADER)
|
|
Next
|
|
|
|
If $vLVName = $LVE_TAB_LV_PosListe Then
|
|
_GUICtrlListView_SetColumnWidth($hLV, 1, 250) ; Kurztext maximal auf 250.
|
|
EndIf
|
|
|
|
If $vLVName = $LV_Aufm Then
|
|
_GUICtrlListView_SetColumnWidth($hLV, 8, 250) ; Aufmaß Leistungstext maximal auf 250.
|
|
EndIf
|
|
|
|
EndFunc ;==>_ListviewAutoWidthHeader
|
|
|
|
Func _LV_LVAufMa_clear()
|
|
If MsgBox(3, "Liste Löschen???", "Wollen Sie die Liste wirklich löschen?") = 6 Then
|
|
_GUICtrlListView_DeleteAllItems($LV_Aufm)
|
|
_GUIListViewEx_Close($iLV_Aufma_Index)
|
|
;~ $aGLVEx_Data[1][2] = ""
|
|
EndIf
|
|
|
|
EndFunc ;==>_LV_LVAufMa_clear
|
|
|
|
Func _LV_LVAaufMa_List_import_from_TXT()
|
|
;~ _GUIListViewEx_SetActive($iLV_Left_Index)
|
|
Local $sFilePath, $aArray
|
|
;~ _GUICtrlListView_DeleteAllItems($LV_Aufm)
|
|
$aListeImport = ""
|
|
Local $message = "Bitte wählen Sie die Import Datei aus!"
|
|
|
|
Local $sFilePath = FileOpenDialog($message, @ScriptDir & "\_Aufmaße\", "Text (*.txt)", 1 + 4)
|
|
If @error Then
|
|
MsgBox(4096, "", "Keine Datei(en) ausgewählt")
|
|
Return "No Datei"
|
|
Else
|
|
$sFilePath = StringReplace($sFilePath, "|", @CRLF)
|
|
;~ MsgBox(4096, "", "Es wurde(n) " & $var & " ausgewählt")
|
|
_FileReadToArray($sFilePath, $aArray)
|
|
;~ _ArrayDisplay($aArray)
|
|
_Write_to_Console("importiere Aufmaß...")
|
|
If IsArray($aArray) Then
|
|
Dim $aListeImport[$aArray[0] - 15][13]
|
|
$iZ = 0
|
|
For $i = 16 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$iZ][$ii - 1] = $aTemp[$ii]
|
|
Next
|
|
$iZ = $iZ + 1
|
|
Next
|
|
_GUICtrlListView_AddArray($LV_Aufm, $aListeImport)
|
|
|
|
; Initiate LVEx - use read content as array - count parameter set - red insert mark - drag image - move edit by click + headers editable
|
|
;~ $iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, "", 0, 0xFF0000, True, 2)
|
|
$iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aListeImport, 0, 0xFF0000, True, 2)
|
|
|
|
;~ $iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aListeImport, 0, 0, True, 2 )
|
|
;~ _ArrayDisplay($aListeImport)
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
|
|
;~ $aGLVEx_Data[1][2] = $aListeImport
|
|
;~ __GUIListViewEx_ReWriteLV($iLV_Left_Index, $aListeImport,"", 1, "")
|
|
EndIf
|
|
;~ _DebugArrayDisplay($aArray)
|
|
$sTeilaufma = StringReplace($aArray[2], "Teilaufma=", "")
|
|
If $sTeilaufma = "X" Then
|
|
GUICtrlSetState($kopf_TAB_rd_teilauf, $GUI_CHECKED)
|
|
;~ GUICtrlSetState($radio_1, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_TAB_rd_teilauf, $GUI_UNCHECKED)
|
|
EndIf
|
|
$sSchlussaufma = StringReplace($aArray[3], "Schlussaufma=", "")
|
|
If $sSchlussaufma = "X" Then
|
|
GUICtrlSetState($kopf_TAB_rd_schluss, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_TAB_rd_schluss, $GUI_UNCHECKED)
|
|
EndIf
|
|
|
|
|
|
GUICtrlSetData($kopf_tab_txt_datum, StringReplace($aArray[4], "Datum=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_baustelle, StringReplace($aArray[5], "Baustelle=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_abrufnr, StringReplace($aArray[6], "AbrufNr=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_smnr, StringReplace($aArray[7], "SMNr=", ""))
|
|
GUICtrlSetData($kopf_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
GUICtrlSetData($kopf_tab_datum_start, StringReplace($aArray[9], "StartZ=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_datum_ende, StringReplace($aArray[10], "EndZ=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_aspa, StringReplace($aArray[11], "AspaN=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_telnr, StringReplace($aArray[12], "AspaTel=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_bauabschnitt, StringReplace($aArray[13], "Bauabschnitt=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_kolone, StringReplace($aArray[14], "Kolone=", ""))
|
|
|
|
_GUICtrlComboBox_SelectString($lve_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
_GUICtrlComboBox_SelectString($kopf_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
;~ _GUICtrlComboBox_SelectString($kopf_tab_txt_aspa, StringReplace($aArray[11], "AspaN=", ""))
|
|
|
|
$aStartDatum = StringSplit(GUICtrlRead($kopf_tab_datum_start), ".")
|
|
;~ _ArrayDisplay($aStartDatum)
|
|
If IsArray($aStartDatum) Then
|
|
If UBound($aStartDatum) = 3 Then
|
|
$iYear = $aStartDatum[3]
|
|
$iMonth = $aStartDatum[2]
|
|
$iDay = $aStartDatum[1]
|
|
_GUICtrlMonthCal_SetCurSel($kopf_tab_datumfeld_start, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
$aStartDatum = StringSplit(GUICtrlRead($kopf_tab_txt_datum_ende), ".")
|
|
If IsArray($aStartDatum) Then
|
|
If UBound($aStartDatum) = 3 Then
|
|
$iYear = $aStartDatum[3]
|
|
$iMonth = $aStartDatum[2]
|
|
$iDay = $aStartDatum[1]
|
|
_GUICtrlMonthCal_SetCurSel($kopf_tab_datumfeld_ende, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
EndFunc ;==>_LV_LVAaufMa_List_import_from_TXT
|
|
|
|
Func _LV_LVAaufMa_List_import_from_TXT_Pfad($sPfad)
|
|
;~ _GUIListViewEx_SetActive($iLV_Left_Index)
|
|
Local $sFilePath, $aArray
|
|
;~ _GUICtrlListView_DeleteAllItems($LV_Aufm)
|
|
$aListeImport = ""
|
|
_FileReadToArray($sPfad, $aArray)
|
|
;~ _ArrayDisplay($aArray)
|
|
_Write_to_Console("importiere Aufmaß...")
|
|
If IsArray($aArray) Then
|
|
Dim $aListeImport[$aArray[0] - 15][13]
|
|
$iZ = 0
|
|
For $i = 16 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$iZ][$ii - 1] = $aTemp[$ii]
|
|
Next
|
|
$iZ = $iZ + 1
|
|
Next
|
|
_GUICtrlListView_AddArray($LV_Aufm, $aListeImport)
|
|
|
|
Global $aLV_List_Right = _GUIListViewEx_ReadToArray($LV_Aufm, 1)
|
|
; The array as read from Right ListView and used subsequently
|
|
;_ArrayDisplay($aLV_List_Right, "Read from Right ListView")
|
|
|
|
; Initiate LVEx - use read content as array - count parameter set - red insert mark - drag image - move edit by click + headers editable
|
|
$iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aLV_List_Right, 0, 0xFF0000, True, 2)
|
|
|
|
;~ $iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aListeImport, 0, 0, True, 2 )
|
|
;~ _ArrayDisplay($aListeImport)
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
|
|
;~ $aGLVEx_Data[1][2] = $aListeImport
|
|
;~ __GUIListViewEx_ReWriteLV($iLV_Left_Index, $aListeImport,"", 1, "")
|
|
EndIf
|
|
;~ _DebugArrayDisplay($aArray)
|
|
$sTeilaufma = StringReplace($aArray[2], "Teilaufma=", "")
|
|
If $sTeilaufma = "X" Then
|
|
GUICtrlSetState($kopf_TAB_rd_teilauf, $GUI_CHECKED)
|
|
;~ GUICtrlSetState($radio_1, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_TAB_rd_teilauf, $GUI_UNCHECKED)
|
|
EndIf
|
|
$sSchlussaufma = StringReplace($aArray[3], "Schlussaufma=", "")
|
|
If $sSchlussaufma = "X" Then
|
|
GUICtrlSetState($kopf_TAB_rd_schluss, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_TAB_rd_schluss, $GUI_UNCHECKED)
|
|
EndIf
|
|
|
|
|
|
GUICtrlSetData($kopf_tab_txt_datum, StringReplace($aArray[4], "Datum=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_baustelle, StringReplace($aArray[5], "Baustelle=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_abrufnr, StringReplace($aArray[6], "AbrufNr=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_smnr, StringReplace($aArray[7], "SMNr=", ""))
|
|
GUICtrlSetData($kopf_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
GUICtrlSetData($kopf_tab_datum_start, StringReplace($aArray[9], "StartZ=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_datum_ende, StringReplace($aArray[10], "EndZ=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_aspa, StringReplace($aArray[11], "AspaN=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_telnr, StringReplace($aArray[12], "AspaTel=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_bauabschnitt, StringReplace($aArray[13], "Bauabschnitt=", ""))
|
|
GUICtrlSetData($kopf_tab_txt_kolone, StringReplace($aArray[14], "Kolone=", ""))
|
|
|
|
_GUICtrlComboBox_SelectString($lve_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
_GUICtrlComboBox_SelectString($kopf_tab_chb_vertrag, StringReplace($aArray[8], "Vertrag=", ""))
|
|
|
|
_GUICtrlComboBox_SelectString($kopf_tab_txt_aspa, StringReplace($aArray[11], "AspaN=", ""))
|
|
|
|
$aStartDatum = StringSplit(GUICtrlRead($kopf_tab_datum_start), ".")
|
|
;~ _ArrayDisplay($aStartDatum)
|
|
If IsArray($aStartDatum) Then
|
|
If UBound($aStartDatum) = 3 Then
|
|
$iYear = $aStartDatum[3]
|
|
$iMonth = $aStartDatum[2]
|
|
$iDay = $aStartDatum[1]
|
|
_GUICtrlMonthCal_SetCurSel($kopf_tab_datumfeld_start, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
$aStartDatum = StringSplit(GUICtrlRead($kopf_tab_txt_datum_ende), ".")
|
|
If IsArray($aStartDatum) Then
|
|
If UBound($aStartDatum) = 3 Then
|
|
$iYear = $aStartDatum[3]
|
|
$iMonth = $aStartDatum[2]
|
|
$iDay = $aStartDatum[1]
|
|
_GUICtrlMonthCal_SetCurSel($kopf_tab_datumfeld_ende, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
EndIf
|
|
|
|
|
|
EndFunc ;==>_LV_LVAaufMa_List_import_from_TXT_Pfad
|
|
|
|
Func _LV_LVaufMa_Save_List2Txt()
|
|
;~ $aInhalt = _GUIListViewEx_ReturnArray($iLV_Left_Index, 3)
|
|
;~ _ArrayDisplay($aInhalt)
|
|
;~
|
|
;~ $sTest = _GUIListViewEx_GetActive()
|
|
;~ MsgBox(64, "asfasdg", $sTest)
|
|
;~ _Write_to_Console(_GUIListViewEx_GetActive())
|
|
|
|
;~ _DebugArrayDisplay($aGLVEx_Data)
|
|
If IsArray($aGLVEx_Data) Then
|
|
For $i = 1 To UBound($aGLVEx_Data) - 1
|
|
;~ ConsoleWrite("Zeile " & $i & @CRLF)
|
|
|
|
;[n][2] = Shadow array
|
|
_DebugArrayDisplay($aGLVEx_Data[$i][2], "Shadow array| " & $i)
|
|
;~ MsgBox(64, "Shadow Array", "")
|
|
;~ ;[n][7] = Editable columns data
|
|
;~ _DebugArrayDisplay($aGLVEx_Data[$i][7], "Editable columns data")
|
|
;~ MsgBox(64, "Editable columns data", "")
|
|
;~ ;[n][23] - Default user colours
|
|
;~ _DebugArrayDisplay($aGLVEx_Data[$i][23], "Default user colours")
|
|
;~ MsgBox(64, "Editable columns data", "")
|
|
;~ ;[n][25] - Header data array
|
|
;~ _DebugArrayDisplay($aGLVEx_Data[$i][25], "Header data array")
|
|
;~ MsgBox(64, "Header data array", "")
|
|
;~ 0x000000
|
|
;~ 0xFEFEFE
|
|
;~ 0xFFFFFF
|
|
;~ 0xCC6600
|
|
|
|
Next
|
|
|
|
EndIf
|
|
EndFunc ;==>_LV_LVaufMa_Save_List2Txt
|
|
|
|
Func _LV_LVaufMa_add_Zeile()
|
|
;~ Global $iPosNr = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 0)
|
|
;~ Global $iKurztext = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 1)
|
|
;~ Global $iEinheit = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 2)
|
|
;~ Global $iPreis = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 3)
|
|
|
|
If GUICtrlRead($chb_letztezeile) = $GUI_CHECKED Then
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "False")
|
|
|
|
Else
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "True")
|
|
EndIf
|
|
|
|
Local $aIndex = _GUICtrlListView_GetSelectedIndices($lve_tab_lv_posliste, True)
|
|
|
|
;~ _ArrayDisplay($aIndex)
|
|
If $aIndex[0] = 1 Then
|
|
;~ ;nur eins markiert!
|
|
;_ArrayDisplay($aIndex)
|
|
$sPosi_Cord = _GUIListViewEx_GetLastSelItem($iLV_Aufma_Index)
|
|
$aPos = StringSplit($sPosi_Cord, "|")
|
|
$aItem = _GUICtrlListView_GetItemTextArray($lve_tab_lv_posliste, $aIndex[1])
|
|
GUICtrlSetData($lve_tab_txt_posnr, $aItem[1])
|
|
GUICtrlSetData($lve_tab_txt_kurztext, $aItem[2])
|
|
$sEinheit = $aItem[3]
|
|
$iPreis = $aItem[4]
|
|
$iMengeVorne = _replaceKom2Punkt(GUICtrlRead($LVE_TAB_txt_menge))
|
|
$iFakotr = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor))
|
|
$iMengeHinten = $iMengeVorne * $iFakotr
|
|
$iGesamtsumme = $iMengeHinten * _replaceKom2Punkt($iPreis)
|
|
|
|
$sString = GUICtrlRead($lve_tab_txt_rsa) & "|" & GUICtrlRead($lve_tab_txt_posnr) & "|" & GUICtrlRead($lve_tab_txt_faktor) & "|" & GUICtrlRead($lve_tab_txt_leange) & "|" & GUICtrlRead($lve_tab_txt_breite) & "|" & GUICtrlRead($lve_tab_txt_tiefe) & "|" & GUICtrlRead($LVE_TAB_txt_menge) & "|" & $sEinheit & "|" & GUICtrlRead($lve_tab_txt_kurztext) & "|" & GUICtrlRead($LVE_TAB_chb_bemerkung) & "|" & $iMengeHinten & "|" & $aItem[4] & "|" & _replacePunkt2Koma($iGesamtsumme)
|
|
$iCount = _GUICtrlListView_GetItemCount($lv_aufm)
|
|
|
|
;lese von Ini aus
|
|
$sAddMarkPos = IniRead($sPfadIni, "Setup", "addmarkpos", "False")
|
|
If $sAddMarkPos = "True" Then
|
|
;wenn True dann einfügen bei zuletzt markierter Position
|
|
If $sPosi_Cord = "" Then
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $sString)
|
|
Else
|
|
If $aPos[2] + 1 = $iCount Then
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2], $sString)
|
|
Else
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2] + 1, $sString)
|
|
EndIf
|
|
EndIf
|
|
Else
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $sString)
|
|
EndIf
|
|
|
|
Else
|
|
;mehrere markiert und hinzugefügt
|
|
;~ _DebugArrayDisplay($aIndex)
|
|
;~ _ArraySort($aIndex, 1, 1)
|
|
For $i = 1 To UBound($aIndex) - 1
|
|
|
|
$sPosi_Cord = _GUIListViewEx_GetLastSelItem($iLV_Aufma_Index)
|
|
$aPos = StringSplit($sPosi_Cord, "|")
|
|
If IsArray($aPos) Then
|
|
|
|
$aItem = _GUICtrlListView_GetItemTextArray($lve_tab_lv_posliste, $aIndex[$i])
|
|
|
|
$sRSA_Abschnitt = GUICtrlRead($lve_tab_txt_rsa)
|
|
$sPosNr = $aItem[1]
|
|
$sFaktor = GUICtrlRead($lve_tab_txt_faktor)
|
|
$sLeange = GUICtrlRead($lve_tab_txt_leange)
|
|
$sBreite = GUICtrlRead($lve_tab_txt_breite)
|
|
$sTiefe = GUICtrlRead($lve_tab_txt_tiefe)
|
|
$sMenge = GUICtrlRead($lve_tab_txt_menge)
|
|
$sME = $aItem[3]
|
|
$sLeistungstext = $aItem[2]
|
|
$sBemerkung = GUICtrlRead($lve_tab_chb_bemerkung)
|
|
$sEPreis = $aItem[4]
|
|
$sSumme = $sMenge * $sEPreis
|
|
$sADDZeile = $sRSA_Abschnitt & "|" & $sPosNr & "|" & $sFaktor & "|" & $sLeange & "|" & $sBreite & "|" & $sTiefe & "|" & $sMenge & "|" & $sME & "|" & $sLeistungstext & "|" & $sBemerkung & "|" & $sMenge & "|" & $sEPreis & "|" & $sSumme
|
|
|
|
$iCount = _GUICtrlListView_GetItemCount($lv_aufm)
|
|
;lese von Ini aus
|
|
$sAddMarkPos = IniRead($sPfadIni, "Setup", "addmarkpos", "")
|
|
If $sAddMarkPos = "True" Then
|
|
;wenn True dann einfügen bei zuletzt markierter Position
|
|
If $sPosi_Cord = "" Then
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $sADDZeile)
|
|
Else
|
|
If $aPos[2] + 1 = $iCount Then
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2], $sADDZeile)
|
|
Else
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2] + 1, $sADDZeile)
|
|
EndIf
|
|
EndIf
|
|
Else
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $sADDZeile)
|
|
EndIf
|
|
Else
|
|
MsgBox(64, "Fehler", "Multi _GUIListViewEx_GetLastSelItem(")
|
|
EndIf
|
|
Next
|
|
;~
|
|
EndIf
|
|
;GUICtrlSetData()
|
|
If GUICtrlRead($chb_text_edit) = $GUI_CHECKED Then
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6;9")
|
|
Else
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
GUICtrlSetData($lve_tab_chb_bemerkung, $cDataB, "")
|
|
EndIf
|
|
|
|
|
|
EndFunc ;==>_LV_LVaufMa_add_Zeile
|
|
|
|
Func _LV_LVaufMa_add_empty_zeile()
|
|
|
|
$sPosi_Cord = _GUIListViewEx_GetLastSelItem($iLV_Aufma_Index)
|
|
$aPos = StringSplit($sPosi_Cord, "|")
|
|
$iCount = _GUICtrlListView_GetItemCount($lv_aufm)
|
|
If IsArray($aPos) Then
|
|
|
|
Else
|
|
MsgBox(64, "Fehler", "kein Arra StringSplit($sPosi_Cord,'|'")
|
|
EndIf
|
|
|
|
|
|
If GUICtrlRead($chb_letztezeile) = $GUI_CHECKED Then
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "False")
|
|
|
|
Else
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "True")
|
|
EndIf
|
|
|
|
;lese von Ini aus
|
|
$sAddMarkPos = IniRead($sPfadIni, "Setup", "addmarkpos", "")
|
|
If $sAddMarkPos = "True" Then
|
|
;wenn True dann einfügen bei zuletzt markierter Position
|
|
If $sPosi_Cord = "" Then
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, "")
|
|
Else
|
|
If $aPos[2] + 1 = $iCount Then
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2], "")
|
|
Else
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $aPos[2] + 1, "")
|
|
EndIf
|
|
EndIf
|
|
Else
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, "")
|
|
EndIf
|
|
|
|
|
|
If GUICtrlRead($chb_text_edit) = $GUI_CHECKED Then
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6;9")
|
|
Else
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
GUICtrlSetData($lve_tab_chb_bemerkung, $cDataB, "")
|
|
EndIf
|
|
EndFunc ;==>_LV_LVaufMa_add_empty_zeile
|
|
|
|
Func _LV_LVAufMA_mark_copy()
|
|
$array = _GUICtrlListView_GetSelectedIndices($lv_aufm, True)
|
|
$iCount = _GUICtrlListView_GetItemCount($lv_aufm)
|
|
;~ _ArrayDisplay($array)
|
|
Dim $aListAufmass[1][13]
|
|
For $i = 1 To $array[0]
|
|
Local $sZeile = ""
|
|
|
|
$aTemp = _GUICtrlListView_GetItemTextArray($lv_aufm, $array[$i])
|
|
;~ $sZeile = _GUICtrlListView_GetItemTextString($LV_AM, $array[$i])
|
|
;~ _ArrayDisplay($aTemp)
|
|
$aListAufmass[0][0] = $aTemp[1]
|
|
$aListAufmass[0][1] = $aTemp[2]
|
|
$aListAufmass[0][2] = $aTemp[3]
|
|
$aListAufmass[0][3] = $aTemp[4]
|
|
$aListAufmass[0][4] = $aTemp[5]
|
|
$aListAufmass[0][5] = $aTemp[6]
|
|
$aListAufmass[0][6] = $aTemp[7]
|
|
$aListAufmass[0][7] = $aTemp[8]
|
|
$aListAufmass[0][8] = $aTemp[9]
|
|
$aListAufmass[0][9] = $aTemp[10]
|
|
$aListAufmass[0][10] = $aTemp[11]
|
|
$aListAufmass[0][11] = $aTemp[12]
|
|
$aListAufmass[0][12] = $aTemp[13]
|
|
;~ MsgBox(64,"",$sZeile)
|
|
|
|
If GUICtrlRead($chb_letztezeile) = $GUI_CHECKED Then
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "False")
|
|
|
|
Else
|
|
IniWrite($sPfadIni, "Setup", "addmarkpos", "True")
|
|
EndIf
|
|
|
|
$sAddMarkPos = IniRead($sPfadIni, "Setup", "addmarkpos", "")
|
|
If $sAddMarkPos = "True" Then
|
|
;wenn True dann einfügen bei zuletzt markierter Position
|
|
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $array[UBound($array) - 1] + $i, $aListAufmass)
|
|
|
|
Else
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $aListAufmass)
|
|
EndIf
|
|
|
|
;~ _GUIListViewEx_InsertSpec($iLV_Aufma_Index, $array[UBound($array) - 1] + $i, $aListAufmass)
|
|
Next
|
|
If GUICtrlRead($chb_text_edit) = $GUI_CHECKED Then
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6;9")
|
|
Else
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
GUICtrlSetData($lve_tab_chb_bemerkung, $cDataB, "")
|
|
EndIf
|
|
|
|
EndFunc ;==>_LV_LVAufMA_mark_copy
|
|
|
|
Func _EVAufmLV_Export_Exel()
|
|
|
|
;~ LEB_vorlage.xlsx
|
|
|
|
FileCopy(@ScriptDir & "\daten\LEB_vorlage.xlsx", @ScriptDir & "\_Aufmaße\LEB_vorlage.xlsx", $FC_OVERWRITE + $FC_CREATEPATH)
|
|
$sPfadExcel = @ScriptDir & "\_Aufmaße\LEB_vorlage.xlsx"
|
|
Local $oExcel = _Excel_Open()
|
|
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
|
|
Local $oWorkbook = _Excel_BookOpen($oExcel, $sPfadExcel)
|
|
If @error Then
|
|
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Error opening workbook '" & $sPfadExcel & @CRLF & "@error = " & @error & ", @extended = " & @extended)
|
|
_Excel_Close($oExcel)
|
|
;~ Exit
|
|
EndIf
|
|
Local $aArray = _GUIListViewEx_ReadToArray($LV_Aufm, 1)
|
|
;~ _ArrayDisplay($aArray)
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray, "B3")
|
|
$iLastZeile = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeLastCell).Row
|
|
|
|
With $oWorkbook.ActiveSheet.Range("A3:N" & $iLastZeile).Borders
|
|
.LineStyle = 1
|
|
.TintAndShade = 0
|
|
EndWith
|
|
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(N3:N" & $iLastZeile & ")", "N1")
|
|
|
|
; Zeilen Nummer hinzufügen in 10 schritten
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "10", "A3")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "20", "A4")
|
|
|
|
;~ MsgBox(64, "test", UBound($aArray))
|
|
|
|
If UBound($aArray) = 1 Then
|
|
$iStart = 3
|
|
;~ _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(A" & $iStart+$i & ")+10", "A" & $iStart + $i+1)
|
|
$sZNr = "=SUMME(A" & $iStart + 2 & ")+10"
|
|
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sZNr, "A5")
|
|
Else
|
|
Dim $aZNr[UBound($aArray) - 2]
|
|
$iStart = 3
|
|
For $i = 0 To UBound($aArray) - 3
|
|
;~ _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(A" & $iStart+$i & ")+10", "A" & $iStart + $i+1)
|
|
$aZNr[$i] = "=SUMME(A" & $iStart + $i + 1 & ")+10"
|
|
Next
|
|
;~ _ArrayDisplay($aZNr)
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aZNr, "A5")
|
|
EndIf
|
|
|
|
|
|
$sLEBNrREad = GUICtrlRead($frm_evaufm_txt_lebnr)
|
|
|
|
|
|
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sLEBNrREad, "C1")
|
|
|
|
$oWorkbook.ActiveSheet.Columns.AutoFit
|
|
$oWorkbook.ActiveSheet.PageSetup.Zoom = False
|
|
$oWorkbook.ActiveSheet.PageSetup.FitToPagesWide = 1
|
|
|
|
|
|
$sDateiname = $sLEBNrREad
|
|
|
|
|
|
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & ".xlsx", Default, True)
|
|
_Excel_Export($oExcel, $oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & ".pdf", Default, Default, Default, Default, Default, False)
|
|
_Excel_Close($oExcel)
|
|
;~
|
|
;~ Local $aWorkSheets = _Excel_SheetList($oWorkbook)
|
|
;~ _DebugArrayDisplay($aWorkSheets)
|
|
FileDelete($sPfadExcel)
|
|
EndFunc ;==>_EVAufmLV_Export_Exel
|
|
|
|
Func _LV_LVPostliste_load_txt($sTEst = "")
|
|
;~ Global $iPosNr = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 0)
|
|
;~ Global $iKurztext = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 1)
|
|
;~ Global $iEinheit = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 2)
|
|
;~ Global $iPreis = _GUICtrlListView_GetItemText($lve_tab_lv_posliste, $vRet[1], 3)
|
|
|
|
Global $aItem = _GUICtrlListView_GetItemTextArray($lve_tab_lv_posliste, $sTEst)
|
|
;~ Global $aItem = _GUICtrlListView_GetItemTextArray($lve_tab_lv_posliste, $vRet[1])
|
|
;~ _ArrayDisplay($aItem)
|
|
|
|
If IsArray($aItem) Then
|
|
Global $iPosNr = $aItem[1]
|
|
Global $iKurztext = $aItem[2]
|
|
Global $iEinheit = $aItem[3]
|
|
Global $iPreis = $aItem[4]
|
|
GUICtrlSetData($lve_tab_txt_posnr, $iPosNr)
|
|
GUICtrlSetData($lve_tab_txt_kurztext, $iKurztext)
|
|
|
|
GUICtrlSetData($lve_tab_txt_leange, "")
|
|
GUICtrlSetData($lve_tab_txt_breite, "")
|
|
GUICtrlSetData($lve_tab_txt_tiefe, "")
|
|
GUICtrlSetData($lve_tab_txt_menge, "")
|
|
GUICtrlSetData($lve_tab_txt_rsa, "")
|
|
GUICtrlSetData($lve_tab_txt_faktor, "1,0")
|
|
_txt_load_Liste_Langtxt($iPosNr)
|
|
_farben_Eingabe_daten($iEinheit)
|
|
|
|
GUICtrlSetData($frm_posfenst_posnr, $iPosNr)
|
|
GUICtrlSetData($frm_posfenst_ltex, $iKurztext)
|
|
Else
|
|
MsgBox(1, "Fehler", "aItem kein Array")
|
|
EndIf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_farben_Eingabe_daten($iEinheit)
|
|
EndFunc ;==>_LV_LVPostliste_load_txt
|
|
|
|
Func _LV_LVAufMa_save2temp()
|
|
$sDatum = GUICtrlRead($kopf_tab_txt_datum)
|
|
$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
|
|
$sAbrufNr = GUICtrlRead($kopf_tab_txt_abrufnr)
|
|
$sVertrag = GUICtrlRead($kopf_tab_chb_vertrag)
|
|
$sStartZ = GUICtrlRead($kopf_tab_datum_start)
|
|
$sEndZ = GUICtrlRead($kopf_tab_txt_datum_ende)
|
|
$sAspaN = GUICtrlRead($kopf_tab_txt_aspa)
|
|
$sAspaTel = GUICtrlRead($kopf_tab_txt_telnr)
|
|
$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
|
|
$sKolone = GUICtrlRead($kopf_tab_txt_kolone)
|
|
$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
|
|
|
|
;~ $aTempArray = _Listview2Array($lv_aufm)
|
|
;~ _ArrayDisplay($aTempArray)
|
|
Local $sItem
|
|
Local $iCount = _GUICtrlListView_GetItemCount($lv_aufm) - 1 ; Anzahl der Listview-Einträge holen
|
|
$sDateiname = "temp"
|
|
Local $hFile = FileOpen(@ScriptDir & "\_Aufmaße\" & $sDateiname & ".txt", 2) ; Datei zum speichern (überschreiben) öffnen
|
|
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
|
|
FileWriteLine($hFile, "[Kopfdaten]")
|
|
If GUICtrlRead($kopf_tab_rd_teilauf) = $GUI_CHECKED Then
|
|
FileWriteLine($hFile, "Teilaufma=X")
|
|
Else
|
|
FileWriteLine($hFile, "Teilaufma=")
|
|
EndIf
|
|
If GUICtrlRead($kopf_tab_rd_schluss) = $GUI_CHECKED Then
|
|
FileWriteLine($hFile, "Schlussaufma=X")
|
|
Else
|
|
FileWriteLine($hFile, "Schlussaufma=")
|
|
EndIf
|
|
FileWriteLine($hFile, "Datum=" & $sDatum)
|
|
FileWriteLine($hFile, "Baustelle=" & $sBaustelle)
|
|
FileWriteLine($hFile, "AbrufNr=" & $sAbrufNr)
|
|
FileWriteLine($hFile, "SMNr=" & $sSMnr)
|
|
FileWriteLine($hFile, "Vertrag=" & $sVertrag)
|
|
FileWriteLine($hFile, "StartZ=" & $sStartZ)
|
|
FileWriteLine($hFile, "EndZ=" & $sEndZ)
|
|
FileWriteLine($hFile, "AspaN=" & $sAspaN)
|
|
FileWriteLine($hFile, "AspaTel=" & $sAspaTel)
|
|
FileWriteLine($hFile, "Bauabschnitt=" & $sBauabschnitt)
|
|
FileWriteLine($hFile, "Kolone=" & $sKolone)
|
|
FileWriteLine($hFile, "[Aufmaßdaten]")
|
|
|
|
For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
|
|
$sItem = _GUICtrlListView_GetItemTextString($lv_aufm, $i) ; die Werte aus dem Listview-Eintrag holen
|
|
FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
|
|
Next
|
|
FileClose($hFile) ; Datei schließen
|
|
Else
|
|
;~ MsgBox(64, "Fehler beim Speichern", "Datei => " & @CRLF & @ScriptDir & "\Aufmaße\" & $sDateiname & ".txt" & @CRLF & "konnte nicht gespeichert werden!")
|
|
EndIf
|
|
EndFunc ;==>_LV_LVAufMa_save2temp
|
|
|
|
Func _LV_LVAufMa_save2txt()
|
|
$sDatum = GUICtrlRead($kopf_tab_txt_datum)
|
|
$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
|
|
$sAbrufNr = GUICtrlRead($kopf_tab_txt_abrufnr)
|
|
$sVertrag = GUICtrlRead($kopf_tab_chb_vertrag)
|
|
$sStartZ = GUICtrlRead($kopf_tab_datum_start)
|
|
$sEndZ = GUICtrlRead($kopf_tab_txt_datum_ende)
|
|
$sAspaN = GUICtrlRead($kopf_tab_txt_aspa)
|
|
$sAspaTel = GUICtrlRead($kopf_tab_txt_telnr)
|
|
$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
|
|
$sKolone = GUICtrlRead($kopf_tab_txt_kolone)
|
|
$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
|
|
|
|
Local $sItem
|
|
Local $iCount = _GUICtrlListView_GetItemCount($lv_aufm) - 1 ; Anzahl der Listview-Einträge holen
|
|
|
|
;~ ? * < > . , \ + : = / " ; [ ] |
|
|
|
|
$sDateiname = _CheckDateiname()
|
|
If $iFolderCreate = "True" Then
|
|
DirCreate(@ScriptDir & "\_Aufmaße\" & $sDateiname & "\")
|
|
|
|
Local $hFile = FileOpen(@ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & ".txt", 2)
|
|
$sImportTxt = @ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & ".txt"
|
|
Else
|
|
Local $hFile = FileOpen(@ScriptDir & "\_Aufmaße\" & $sDateiname & ".txt", 2)
|
|
$sImportTxt = @ScriptDir & "\_Aufmaße\" & $sDateiname & ".txt"
|
|
EndIf
|
|
|
|
; Datei zum speichern (überschreiben) öffnen
|
|
If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
|
|
FileWriteLine($hFile, "[Kopfdaten]")
|
|
If GUICtrlRead($kopf_tab_rd_teilauf) = $GUI_CHECKED Then
|
|
FileWriteLine($hFile, "Teilaufma=X")
|
|
Else
|
|
FileWriteLine($hFile, "Teilaufma=")
|
|
EndIf
|
|
If GUICtrlRead($kopf_tab_rd_schluss) = $GUI_CHECKED Then
|
|
FileWriteLine($hFile, "Schlussaufma=X")
|
|
Else
|
|
FileWriteLine($hFile, "Schlussaufma=")
|
|
EndIf
|
|
FileWriteLine($hFile, "Datum=" & $sDatum)
|
|
FileWriteLine($hFile, "Baustelle=" & $sBaustelle)
|
|
FileWriteLine($hFile, "AbrufNr=" & $sAbrufNr)
|
|
FileWriteLine($hFile, "SMNr=" & $sSMnr)
|
|
FileWriteLine($hFile, "Vertrag=" & $sVertrag)
|
|
FileWriteLine($hFile, "StartZ=" & $sStartZ)
|
|
FileWriteLine($hFile, "EndZ=" & $sEndZ)
|
|
FileWriteLine($hFile, "AspaN=" & $sAspaN)
|
|
FileWriteLine($hFile, "AspaTel=" & $sAspaTel)
|
|
FileWriteLine($hFile, "Bauabschnitt=" & $sBauabschnitt)
|
|
FileWriteLine($hFile, "Kolone=" & $sKolone)
|
|
FileWriteLine($hFile, "[Aufmaßdaten]")
|
|
For $i = 0 To $iCount ; Schleife, um alle Listview-Einträge durchzugehen
|
|
$sItem = _GUICtrlListView_GetItemTextString($lv_aufm, $i) ; die Werte aus dem Listview-Eintrag holen
|
|
FileWriteLine($hFile, $sItem) ; und in die Datei schreiben
|
|
Next
|
|
FileClose($hFile) ; Datei schließen
|
|
;~ MsgBox(64, "Datei wurde gespeichert!", "Das Aufmaß wurde gespeichert:" & @CRLF & @ScriptDir & "\Aufmaße\" & $sDateiname & ".txt")
|
|
Else
|
|
MsgBox(64, "Fehler beim Speichern", "Datei => " & @CRLF & @ScriptDir & "\Aufmaße\" & $sDateiname & ".txt" & @CRLF & "konnte nicht gespeichert werden!")
|
|
EndIf
|
|
|
|
;~ _X31_Export($sImportTxt, $sAusgabeX31)
|
|
GUICtrlSetData($kopf_TAB_txt_ausgabeExcel, $sDateiname)
|
|
EndFunc ;==>_LV_LVAufMa_save2txt
|
|
|
|
func _CheckDateiname()
|
|
$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
|
|
$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
|
|
$sSMnr = GUICtrlRead($kopf_tab_txt_smnr)
|
|
$sAbrufNr = GUICtrlRead($kopf_tab_txt_abrufnr)
|
|
|
|
$sDateiname = ""
|
|
$sDateiname = $sBaustelle & "_" & $sBauabschnitt & "_" & $sSMnr & "_" & $sAbrufNr
|
|
|
|
$sDateiname = StringReplace($sDateiname, "?", " ")
|
|
$sDateiname = StringReplace($sDateiname, "*", " ")
|
|
$sDateiname = StringReplace($sDateiname, "<", " ")
|
|
$sDateiname = StringReplace($sDateiname, ">", " ")
|
|
$sDateiname = StringReplace($sDateiname, ",", " ")
|
|
$sDateiname = StringReplace($sDateiname, "\", " ")
|
|
$sDateiname = StringReplace($sDateiname, "+", " ")
|
|
$sDateiname = StringReplace($sDateiname, ":", " ")
|
|
$sDateiname = StringReplace($sDateiname, "=", " ")
|
|
$sDateiname = StringReplace($sDateiname, "/", " ")
|
|
$sDateiname = StringReplace($sDateiname, '"', " ")
|
|
$sDateiname = StringReplace($sDateiname, ";", " ")
|
|
$sDateiname = StringReplace($sDateiname, "[", " ")
|
|
$sDateiname = StringReplace($sDateiname, "]", " ")
|
|
$sDateiname = StringReplace($sDateiname, "[", " ")
|
|
$sDateiname = StringReplace($sDateiname, "{", " ")
|
|
$sDateiname = StringReplace($sDateiname, "}", " ")
|
|
$sDateiname = StringReplace($sDateiname, "|", " ")
|
|
$sDateiname = StringReplace($sDateiname, " ", "_")
|
|
$sDateiname = StringReplace($sDateiname, "__", "_")
|
|
|
|
Return $sDateiname
|
|
EndFunc
|
|
|
|
Func _LV_LVAufMa_export2Excel()
|
|
If GUICtrlRead($kopf_TAB_chb_exportvorl) <> "" Then
|
|
|
|
$sPfad_Template = @ScriptDir & "\daten\templates\vorlage_" & GUICtrlRead($kopf_TAB_chb_exportvorl) & ".xlsx"
|
|
|
|
FileCopy($sPfad_Template, @ScriptDir & "\_Aufmaße\vorlage_" & GUICtrlRead($kopf_TAB_chb_exportvorl) & ".xlsx", $FC_OVERWRITE + $FC_CREATEPATH)
|
|
|
|
|
|
_LV_LVAufMa_openExcel(@ScriptDir & "\_Aufmaße\vorlage_" & GUICtrlRead($kopf_TAB_chb_exportvorl) & ".xlsx")
|
|
|
|
|
|
|
|
_LV_LVAufMa_save2txt()
|
|
Else
|
|
MsgBox(64, "Speichern nicht möglich", "Bitte wähle eine Exportvorlage aus.")
|
|
EndIf
|
|
|
|
|
|
EndFunc ;==>_LV_LVAufMa_export2Excel
|
|
|
|
Func _LV_LVAufMa_export2Excel_DLP()
|
|
|
|
If GUICtrlRead($kopf_TAB_chb_exportvorl) <> "" Then
|
|
|
|
$sPfad_Template = @ScriptDir & "\daten\templates\import_DLP.xlsx"
|
|
FileCopy($sPfad_Template, @ScriptDir & "\_Aufmaße\vorlage_" & GUICtrlRead($kopf_TAB_chb_exportvorl) & "_DLP.xlsx", $FC_OVERWRITE + $FC_CREATEPATH)
|
|
|
|
Local $aArray = _GUIListViewEx_ReadToArray($LV_Aufm)
|
|
|
|
_LV_AufMa_DLP($aArray, @ScriptDir & "\_Aufmaße\vorlage_" & GUICtrlRead($kopf_TAB_chb_exportvorl) & "_DLP.xlsx")
|
|
|
|
_LV_LVAufMa_save2txt()
|
|
Else
|
|
;MsgBox(64, "Speichern nicht möglich", "Bitte wähle eine Exportvorlage aus.")
|
|
EndIf
|
|
|
|
|
|
|
|
|
|
EndFunc ;==>_LV_LVAufMa_export2Excel_DLP
|
|
|
|
Func _LV_AufMa_DLP($aData, $sExcelPfad)
|
|
|
|
Local $oExcel = _Excel_Open()
|
|
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Fehler beim Starten von Excel.")
|
|
|
|
Local $oWorkbook = _Excel_BookOpen($oExcel, $sExcelPfad)
|
|
If @error Then
|
|
MsgBox($MB_SYSTEMMODAL, "Excel UDF", "Fehler beim Öffnen: " & $sExcelPfad)
|
|
_Excel_Close($oExcel)
|
|
EndIf
|
|
|
|
Local $oSheet = $oWorkbook.ActiveSheet
|
|
|
|
Local $iRows = UBound($aData)
|
|
Local $aExport[1][6]
|
|
Local $iWrite = 0
|
|
|
|
For $i = 0 To $iRows - 1
|
|
|
|
; ----------------------------------
|
|
; 🔥 WICHTIG: Nur Zeilen mit OZ zulassen
|
|
; ----------------------------------
|
|
If StringStripWS($aData[$i][1], 3) = "" Then ContinueLoop
|
|
|
|
; ----------------------------------
|
|
; Daten übernehmen
|
|
; ----------------------------------
|
|
ReDim $aExport[$iWrite + 1][6]
|
|
|
|
$aExport[$iWrite][0] = $aData[$i][1] ; OZ
|
|
$aExport[$iWrite][2] = $aData[$i][10] ; Abschnitt/Text
|
|
$aExport[$iWrite][5] = $aData[$i][0] ; Ergebnis
|
|
|
|
$iWrite += 1
|
|
|
|
Next
|
|
|
|
;~ _DebugArrayDisplay($aExport)
|
|
If $iWrite > 0 Then
|
|
_Excel_RangeWrite($oWorkbook, $oSheet, $aExport, "A2")
|
|
EndIf
|
|
|
|
; -------------------------------
|
|
; Kopfdaten
|
|
; -------------------------------
|
|
Local $sDatum = GUICtrlRead($kopf_tab_txt_datum)
|
|
Local $sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
|
|
Local $sAbrufNr = GUICtrlRead($kopf_tab_txt_abrufnr)
|
|
Local $sVertrag = GUICtrlRead($kopf_tab_chb_vertrag)
|
|
Local $sStartZ = GUICtrlRead($kopf_TAB_txt_datum)
|
|
Local $sEndZ = GUICtrlRead($kopf_tab_txt_datum_ende)
|
|
Local $sAspaN = GUICtrlRead($kopf_tab_txt_aspa)
|
|
Local $sAspaTel = GUICtrlRead($kopf_TAB_txt_telnr)
|
|
Local $sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
|
|
Local $sKolone = GUICtrlRead($kopf_TAB_txt_kolone)
|
|
Local $sSMnr = GUICtrlRead($kopf_TAB_txt_smnr)
|
|
|
|
Local $sDateiname = $sBaustelle & "_" & $sBauabschnitt & "_" & $sSMnr & "_" & $sAbrufNr
|
|
$sDateiname = StringRegExpReplace($sDateiname, '[\\\/:*?"<>|;,+={}[\]]', " ")
|
|
$sDateiname = StringReplace($sDateiname, " ", "_")
|
|
$sDateiname = StringReplace($sDateiname, "__", "_")
|
|
|
|
If $iFolderCreate = "True" Then
|
|
DirCreate(@ScriptDir & "\_Aufmaße\" & $sDateiname & "\")
|
|
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & "_DLP.xlsx", Default, True)
|
|
Else
|
|
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & "_DLP.xlsx", Default, True)
|
|
EndIf
|
|
|
|
_Excel_Close($oExcel)
|
|
FileDelete($sExcelPfad)
|
|
|
|
EndFunc
|
|
|
|
Func _LV_LVAufMa_openExcel($sPfadExcel)
|
|
Local $oExcel = _Excel_Open()
|
|
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
|
|
Local $oWorkbook = _Excel_BookOpen($oExcel, $sPfadExcel)
|
|
If @error Then
|
|
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeRead Example", "Error opening workbook '" & $sPfadExcel & @CRLF & "@error = " & @error & ", @extended = " & @extended)
|
|
_Excel_Close($oExcel)
|
|
;~ Exit
|
|
EndIf
|
|
Local $aArray = _GUIListViewEx_ReadToArray($LV_Aufm)
|
|
;~ _ArrayDisplay($aArray)
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aArray, "B8")
|
|
;~ $iLastZeile = $oWorkbook.ActiveSheet.UsedRange.SpecialCells($xlCellTypeLastCell).Row
|
|
$iLastZeile = UBound($aArray) + 7
|
|
|
|
With $oWorkbook.ActiveSheet.Range("A7:N" & $iLastZeile).Borders
|
|
.LineStyle = 1
|
|
.TintAndShade = 0
|
|
EndWith
|
|
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(N8:N" & $iLastZeile & ")", "N6")
|
|
|
|
|
|
|
|
; Zeilen Nummer hinzufügen in 10 schritten
|
|
;~ _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "10", "A8")
|
|
;~ _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "20", "A9")
|
|
|
|
;MsgBox(64, "test", UBound($aArray))
|
|
|
|
If UBound($aArray) = 1 Then
|
|
;~ $iStart = 8
|
|
; _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(A" & $iStart+$i & ")+10", "A" & $iStart + $i+1)
|
|
;~ $sZNr = "=SUMME(A" & $iStart + 2 & ")+10"
|
|
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "10", "A8")
|
|
Else
|
|
If UBound($aArray) = 0 Then
|
|
Else
|
|
Dim $aZNr[UBound($aArray)]
|
|
$iStart = 8
|
|
For $i = 0 To UBound($aArray) - 1
|
|
;~ ; _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "=SUMME(A" & $iStart+$i & ")+10", "A" & $iStart + $i+1)
|
|
If $i = 0 Then
|
|
$aZNr[0] = 10
|
|
Else
|
|
$aZNr[$i] = $aZNr[$i - 1] + 10
|
|
EndIf
|
|
|
|
Next
|
|
;~ _ArrayDisplay($aZNr)
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $aZNr, "A8")
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
|
|
$sDatum = GUICtrlRead($kopf_tab_txt_datum)
|
|
$sBaustelle = GUICtrlRead($kopf_tab_txt_baustelle)
|
|
$sAbrufNr = GUICtrlRead($kopf_tab_txt_abrufnr)
|
|
$sVertrag = GUICtrlRead($kopf_tab_chb_vertrag)
|
|
$sStartZ = GUICtrlRead($kopf_TAB_txt_datum)
|
|
$sEndZ = GUICtrlRead($kopf_tab_txt_datum_ende)
|
|
$sAspaN = GUICtrlRead($kopf_tab_txt_aspa)
|
|
$sAspaTel = GUICtrlRead($kopf_TAB_txt_telnr)
|
|
$sBauabschnitt = GUICtrlRead($kopf_tab_txt_bauabschnitt)
|
|
$sKolone = GUICtrlRead($kopf_TAB_txt_kolone)
|
|
$sSMnr = GUICtrlRead($kopf_TAB_txt_smnr)
|
|
|
|
If GUICtrlRead($kopf_tab_rd_teilauf) = $GUI_CHECKED Then
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "X", "H1")
|
|
Else
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "", "H1")
|
|
EndIf
|
|
If GUICtrlRead($kopf_tab_rd_schluss) = $GUI_CHECKED Then
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "X", "H2")
|
|
Else
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "", "H2")
|
|
EndIf
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sDatum, "K1")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sBaustelle, "C3")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sAbrufNr, "K3")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sVertrag, "K2")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sStartZ, "C4")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sEndZ, "F4")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sAspaN, "C5")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sAspaTel, "G5")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sBauabschnitt, "J6")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sKolone, "C6")
|
|
_Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $sSMnr, "K4")
|
|
|
|
|
|
$oWorkbook.ActiveSheet.Columns.AutoFit
|
|
|
|
$sDateiname = ""
|
|
$sDateiname = $sBaustelle & "_" & $sBauabschnitt & "_" & $sSMnr & "_" & $sAbrufNr
|
|
$sDateiname = StringReplace($sDateiname, "?", " ")
|
|
$sDateiname = StringReplace($sDateiname, "*", " ")
|
|
$sDateiname = StringReplace($sDateiname, "<", " ")
|
|
$sDateiname = StringReplace($sDateiname, ">", " ")
|
|
$sDateiname = StringReplace($sDateiname, ",", " ")
|
|
$sDateiname = StringReplace($sDateiname, "\", " ")
|
|
$sDateiname = StringReplace($sDateiname, "+", " ")
|
|
$sDateiname = StringReplace($sDateiname, ":", " ")
|
|
$sDateiname = StringReplace($sDateiname, "=", " ")
|
|
$sDateiname = StringReplace($sDateiname, "/", " ")
|
|
$sDateiname = StringReplace($sDateiname, '"', " ")
|
|
$sDateiname = StringReplace($sDateiname, ";", " ")
|
|
$sDateiname = StringReplace($sDateiname, "[", " ")
|
|
$sDateiname = StringReplace($sDateiname, "]", " ")
|
|
$sDateiname = StringReplace($sDateiname, "[", " ")
|
|
$sDateiname = StringReplace($sDateiname, "{", " ")
|
|
$sDateiname = StringReplace($sDateiname, "}", " ")
|
|
$sDateiname = StringReplace($sDateiname, "|", " ")
|
|
$sDateiname = StringReplace($sDateiname, " ", "_")
|
|
$sDateiname = StringReplace($sDateiname, "__", "_")
|
|
|
|
;~ $oWorkbook.ActiveSheet.PageSetup.Zoom = False
|
|
|
|
;~ $oWorkbook.ActiveSheet.PageSetup.FitToPagesWide = 1
|
|
|
|
If $iFolderCreate = "True" Then
|
|
DirCreate(@ScriptDir & "\_Aufmaße\" & $sDateiname & "\")
|
|
_Excel_Export($oExcel, $oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & ".pdf", Default, Default, Default)
|
|
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & ".xlsx", Default, True)
|
|
|
|
Local $importPfadTxt = @ScriptDir & "\_Aufmaße\" & $sDateiname & "\" & $sDateiname & ".txt"
|
|
Local $ausgabePfadX31 = @ScriptDir & "\_Aufmaße\" & $sDateiname & "\"& $sDateiname & "_x31.x31"
|
|
|
|
Else
|
|
_Excel_Export($oExcel, $oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & ".pdf", Default, Default, Default)
|
|
_Excel_BookSaveAs($oWorkbook, @ScriptDir & "\_Aufmaße\" & $sDateiname & ".xlsx", Default, True)
|
|
|
|
Local $importPfadTxt = @ScriptDir & "\_Aufmaße\" & $sDateiname & ".txt"
|
|
Local $ausgabePfadX31 = @ScriptDir & "\_Aufmaße\" & $sDateiname & "_x31.x31"
|
|
|
|
EndIf
|
|
_Excel_Close($oExcel)
|
|
|
|
FileDelete($sPfadExcel)
|
|
|
|
EndFunc ;==>_LV_LVAufMa_openExcel
|
|
|
|
Func _chb_bemerkung_from_ini()
|
|
|
|
$sData = FileRead(@ScriptDir & "\daten\conf.ini") ;Datei einlesen
|
|
$hFile = FileOpen(@ScriptDir & "\daten\conf.ini", $FO_OVERWRITE + $FO_UNICODE) ;im richtigen Format ein Handle zum schreiben eröffnen
|
|
FileWrite($hFile, $sData) ;in Datei schreiben
|
|
FileClose($hFile) ;Handle schliessen
|
|
|
|
$sFilePath = $sPfadIni
|
|
Local $aBemerkung = IniReadSection($sFilePath, "Bemerkung")
|
|
_ArraySort($aBemerkung)
|
|
;~ _ArrayDisplay($aBemerkung)
|
|
|
|
Global $cDataB = ""
|
|
For $i = 1 To UBound($aBemerkung) - 1
|
|
;~ $cDataB = StringReplace($cDataB , 'ü', "ü")
|
|
;~ $cDataB = StringReplace($cDataB , 'ä', "ä")
|
|
;~ $cDataB = StringReplace($cDataB , 'ö', "ö")
|
|
$cDataB &= "|" & $aBemerkung[$i][0]
|
|
Next
|
|
$cDataB &= "||"
|
|
GUICtrlSetData($lve_tab_chb_bemerkung, $cDataB, "")
|
|
;;Or GUICtrlSetData($MyControl, $cData, $FileList[1])
|
|
EndFunc ;==>_chb_bemerkung_from_ini
|
|
|
|
Func _chb_vertragsnr_from_ini()
|
|
_GUICtrlComboBox_ResetContent($kopf_tab_chb_vertrag)
|
|
_GUICtrlComboBox_ResetContent($lve_tab_chb_vertrag)
|
|
|
|
$sData = FileRead(@ScriptDir & "\daten\conf.ini") ;Datei einlesen
|
|
$hFile = FileOpen(@ScriptDir & "\daten\conf.ini", $FO_OVERWRITE + $FO_UNICODE) ;im richtigen Format ein Handle zum schreiben eröffnen
|
|
FileWrite($hFile, $sData) ;in Datei schreiben
|
|
FileClose($hFile) ;Handle schliessen
|
|
|
|
$sFilePath = $sPfadIni
|
|
Local $aKV = IniReadSection($sFilePath, "LV")
|
|
_ArraySort($aKV)
|
|
;~ _ArrayDisplay($aKV)
|
|
|
|
For $i = 1 To UBound($aKV) - 1
|
|
_GUICtrlComboBox_AddString($kopf_tab_chb_vertrag, $aKV[$i][0])
|
|
_GUICtrlComboBox_AddString($lve_tab_chb_vertrag, $aKV[$i][0])
|
|
Next
|
|
|
|
;~ GUICtrlSetData($kopf_tab_chb_vertrag, $cData, "")
|
|
;~ GUICtrlSetData($lve_tab_chb_vertrag, $cData, "")
|
|
EndFunc ;==>_chb_vertragsnr_from_ini
|
|
|
|
Func _kopf_load_from_ini()
|
|
|
|
$sData = FileRead(@ScriptDir & "\daten\conf.ini") ;Datei einlesen
|
|
$hFile = FileOpen(@ScriptDir & "\daten\conf.ini", $FO_OVERWRITE + $FO_UNICODE) ;im richtigen Format ein Handle zum schreiben eröffnen
|
|
FileWrite($hFile, $sData) ;in Datei schreiben
|
|
FileClose($hFile) ;Handle schliessen
|
|
|
|
$sTeilaufma = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Teilaufma", "xxx")
|
|
$sSchlussaufma = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Schlussaufma", "xxx")
|
|
$sDatum = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Datum", "xxx")
|
|
$sBaustelle = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", "xxx")
|
|
$sVertrag = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Vertrag", "xxx")
|
|
$sAbrufNr = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AbrufNr", "xxx")
|
|
$sStartZ = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", "xxx")
|
|
$sEndZ = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", "xxx")
|
|
$sAspaN = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AspaN", "xxx")
|
|
$sAspaTel = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AspaTel", "xxx")
|
|
$sBauabschnitt = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", "xxx")
|
|
$sKolone = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Kolone", "xxx")
|
|
$sSMnr = IniRead(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", "xxx")
|
|
|
|
|
|
_GUICtrlComboBox_ResetContent($kopf_tab_chb_vertrag)
|
|
_GUICtrlComboBox_ResetContent($lve_tab_chb_vertrag)
|
|
|
|
$sFilePath = $sPfadIni
|
|
Local $aKV = IniReadSection($sFilePath, "LV")
|
|
_ArraySort($aKV)
|
|
;~ _ArrayDisplay($aKV)
|
|
|
|
For $i = 1 To UBound($aKV) - 1
|
|
_GUICtrlComboBox_AddString($kopf_tab_chb_vertrag, $aKV[$i][0])
|
|
_GUICtrlComboBox_AddString($lve_tab_chb_vertrag, $aKV[$i][0])
|
|
Next
|
|
|
|
GUICtrlSetData($kopf_TAB_txt_datum, $sDatum)
|
|
GUICtrlSetData($kopf_TAB_txt_baustelle, $sBaustelle)
|
|
|
|
;~ GUICtrlSetData($kopf_TAB_chb_vertrag, $sVertrag)
|
|
;~ Local $aChb_rv = StringRegExp(GUICtrlRead($kopf_TAB_chb_vertrag), "([^_]+)", 3)
|
|
;~ _ArrayDisplay($aChb_rv)
|
|
;~ If IsArray($aChb_rv) Then
|
|
;~ Local $sChb_rv = $aChb_rv[0]
|
|
;~ Else
|
|
;~ $sChb_rv = ""
|
|
;~ EndIf
|
|
|
|
|
|
;~ GUICtrlSetData($kopf_TAB_chb_vertrag, $sChb_rv)
|
|
_GUICtrlComboBox_SelectString($kopf_tab_chb_vertrag, $sVertrag)
|
|
GUICtrlSetData($kopf_TAB_txt_abrufnr, $sAbrufNr)
|
|
GUICtrlSetData($kopf_TAB_datum_start, $sStartZ)
|
|
GUICtrlSetData($kopf_TAB_txt_datum_ende, $sEndZ)
|
|
GUICtrlSetData($kopf_tab_txt_aspa, $sAspaN)
|
|
_GUICtrlComboBox_SelectString($kopf_tab_txt_aspa, $sAspaN)
|
|
GUICtrlSetData($kopf_TAB_txt_telnr, $sAspaTel)
|
|
GUICtrlSetData($kopf_TAB_txt_bauabschnitt, $sBauabschnitt)
|
|
GUICtrlSetData($kopf_TAB_txt_kolone, $sKolone)
|
|
GUICtrlSetData($kopf_TAB_txt_smnr, $sSMnr)
|
|
|
|
;~ GUICTRLRead($Radio2) = $GUI_CHECKED
|
|
;~ MsgBox(64,"",$sTeilaufma)
|
|
If $sTeilaufma = "X" Then
|
|
GUICtrlSetState($kopf_tab_rd_teilauf, $GUI_CHECKED)
|
|
;~ GUICtrlSetState($radio_1, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_tab_rd_teilauf, $GUI_UNCHECKED)
|
|
EndIf
|
|
If $sSchlussaufma = "X" Then
|
|
GUICtrlSetState($kopf_tab_rd_schluss, $GUI_CHECKED)
|
|
Else
|
|
GUICtrlSetState($kopf_tab_rd_schluss, $GUI_UNCHECKED)
|
|
EndIf
|
|
|
|
|
|
$aStartDatum = StringSplit($sStartZ, ".")
|
|
If IsArray($aStartDatum) Then
|
|
If UBound($aStartDatum) = 2 Then
|
|
Else
|
|
|
|
;~ _DebugArrayDisplay($aStartDatum)
|
|
$iYear = $aStartDatum[3]
|
|
$iMonth = $aStartDatum[2]
|
|
$iDay = $aStartDatum[1]
|
|
_GUICtrlMonthCal_SetCurSel($kopf_TAB_datumfeld_start, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
EndIf
|
|
|
|
|
|
$aEnde = StringSplit($sEndZ, ".")
|
|
If IsArray($aEnde) Then
|
|
If UBound($aEnde) = 2 Then
|
|
Else
|
|
$iYear = $aEnde[0]
|
|
$iMonth = $aEnde[1]
|
|
$iDay = $aEnde[2]
|
|
|
|
_GUICtrlMonthCal_SetCurSel($kopf_TAB_datumfeld_ende, $iYear, $iMonth, $iDay)
|
|
EndIf
|
|
EndIf
|
|
EndFunc ;==>_kopf_load_from_ini
|
|
|
|
Func _kopf_save_2_ini()
|
|
$sDatum = GUICtrlRead($kopf_TAB_txt_datum)
|
|
$sBaustelle = GUICtrlRead($kopf_TAB_txt_baustelle)
|
|
$sAbrufNr = GUICtrlRead($kopf_TAB_txt_abrufnr)
|
|
$sVertrag = GUICtrlRead($kopf_TAB_chb_vertrag)
|
|
$sStartZ = GUICtrlRead($kopf_TAB_datum_start)
|
|
$sEndZ = GUICtrlRead($kopf_TAB_txt_datum_ende)
|
|
$sAspaN = GUICtrlRead($kopf_tab_txt_aspa)
|
|
$sAspaTel = GUICtrlRead($kopf_TAB_txt_telnr)
|
|
$sBauabschnitt = GUICtrlRead($kopf_TAB_txt_bauabschnitt)
|
|
$sKolone = GUICtrlRead($kopf_TAB_txt_kolone)
|
|
$sSMnr = GUICtrlRead($kopf_TAB_txt_smnr)
|
|
|
|
If GUICtrlRead($kopf_tab_rd_teilauf) = $GUI_CHECKED Then
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Teilaufma", "X")
|
|
Else
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Teilaufma", "")
|
|
EndIf
|
|
If GUICtrlRead($kopf_tab_rd_schluss) = $GUI_CHECKED Then
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Schlussaufma", "X")
|
|
Else
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Schlussaufma", "")
|
|
EndIf
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Datum", $sDatum)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Baustelle", $sBaustelle)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AbrufNr", $sAbrufNr)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "StartZ", $sStartZ)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "EndZ", $sEndZ)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Vertrag", $sVertrag)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AspaN", $sAspaN)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "AspaTel", $sAspaTel)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Bauabschnitt", $sBauabschnitt)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "Kolone", $sKolone)
|
|
IniWrite(@ScriptDir & "\daten\conf.ini", "Kopfdaten", "SMNr", $sSMnr)
|
|
EndFunc ;==>_kopf_save_2_ini
|
|
|
|
Func _txt_load_Liste_Langtxt($iPosNr)
|
|
|
|
Dim $aChb_rv[1]
|
|
$aChb_rv[0] = GUICtrlRead($lve_tab_chb_vertrag)
|
|
|
|
;~ Local $aChb_rv = StringRegExp(GUICtrlRead($lve_tab_chb_vertrag), "([^_]+)", 3)
|
|
If IsArray($aChb_rv) Then
|
|
Local $sChb_rv = $aChb_rv[0]
|
|
|
|
$sPfadLVPostxt = @ScriptDir & "\daten\LV\" & $sChb_rv & "\" & $iPosNr & ".txt"
|
|
Local $hFileOpen = FileOpen($sPfadLVPostxt)
|
|
If $hFileOpen = -1 Then
|
|
;~ MsgBox(64, "Error", $iPosNr & ".txt konnte nicht gefunden werden. Überprüfen ob .txt angelegt ist!")
|
|
Return False
|
|
EndIf
|
|
|
|
; Read the contents of the file using the handle returned by FileOpen.
|
|
Local $sFileRead = FileRead($hFileOpen)
|
|
;~ ShellExecute($sPfadLVPostxt)
|
|
;~ MsgBox(64,"",$sFileRead)
|
|
GUICtrlSetData($lve_tab_ed_langtext, $sFileRead)
|
|
GUICtrlSetData($frm_posfenst_ltext, $sFileRead)
|
|
|
|
FileClose($hFileOpen)
|
|
EndIf
|
|
EndFunc ;==>_txt_load_Liste_Langtxt
|
|
|
|
Func _txt_save_Langtext()
|
|
Local $aChb_rv = StringRegExp(GUICtrlRead($lve_tab_chb_vertrag), "([^_]+)", 3)
|
|
If IsArray($aChb_rv) Then
|
|
Local $sChb_rv = $aChb_rv[0]
|
|
|
|
$sPfadLVPostxt = @ScriptDir & "\daten\LV\" & $sChb_rv & "\" & $iPosNr & ".txt"
|
|
Local $hFileOpen = FileOpen($sPfadLVPostxt, 8 + 2 + 64)
|
|
If $hFileOpen = -1 Then
|
|
MsgBox($MB_SYSTEMMODAL, "", "Es ist während dem lesen der Datei ein Fehler aufgetreten.")
|
|
Return False
|
|
EndIf
|
|
$stxt = GUICtrlRead($frm_posfenst_ltext)
|
|
FileWrite($hFileOpen, $stxt)
|
|
|
|
; Schließt das Handle welches von FileOpen zurückgegeben wurde.
|
|
FileClose($hFileOpen)
|
|
EndIf
|
|
EndFunc ;==>_txt_save_Langtext
|
|
|
|
Func _Load_LV_From_Chb()
|
|
_Write_to_Console("lade Vertragsdaten")
|
|
Dim $aChb_rv[1]
|
|
;~ Local $aChb_rv = StringRegExp(GUICtrlRead($lve_tab_chb_vertrag), "([^_]+)", 3)
|
|
$aChb_rv[0] = GUICtrlRead($lve_tab_chb_vertrag)
|
|
;~ _DebugArrayDisplay($aChb_rv)
|
|
If IsArray($aChb_rv) Then
|
|
|
|
|
|
|
|
Local $sChb_rv = $aChb_rv[0]
|
|
|
|
;Vertrag von Kopdaten in Aufmaßhile
|
|
$sIndexChbVertrag = _GUICtrlComboBox_FindString($chb_vertrag, "data_" & $sChb_rv & ".ini")
|
|
_GUICtrlComboBox_SetCurSel($chb_vertrag, $sIndexChbVertrag)
|
|
|
|
;~ local $sIniWert = IniRead($sPfadIni, "LV", $sChb_rv, "")
|
|
Local $sFilePath = @ScriptDir & "\daten\LV\" & $sChb_rv & ".txt"
|
|
Local $aArray
|
|
|
|
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($lve_tab_lv_posliste))
|
|
_FileReadToArray($sFilePath, $aArray)
|
|
_ArrayDelete($aArray, 0)
|
|
_ArraySort($aArray)
|
|
|
|
;~ _DebugArrayDisplay($aArray)
|
|
;~ MsgBox(64,$sChb_rv,$sFilePath)
|
|
If IsArray($aArray) Then
|
|
Local $aSplit = StringSplit($aArray[0], "|")
|
|
;~ _ArrayDisplay($aSplit)
|
|
Dim $aListeImport[UBound($aArray)][$aSplit[0]]
|
|
;~ _GUICtrlListView_AddArray($ListView1, $aArray)
|
|
For $i = 0 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
|
|
If $aTemp[0] <> 4 Then
|
|
_ArrayDisplay($aTemp)
|
|
EndIf
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$i][$ii - 1] = $aTemp[$ii]
|
|
|
|
Next
|
|
Next
|
|
_GUICtrlListView_AddArray($lve_tab_lv_posliste, $aListeImport)
|
|
_ListviewAutoWidthHeader($lve_tab_lv_posliste)
|
|
|
|
|
|
|
|
|
|
_Pflichtfelder2Array()
|
|
;direkt in Array schreiben.
|
|
;~ $aGLVEx_Data[2][2] = $aListeImport
|
|
;~ __GUIListViewEx_ReWriteLV($iLV_PosList_Index, $aListeImport,"", 2, "")
|
|
$iLV_PosList_Index = _GUIListViewEx_Init($lve_tab_lv_posliste, $aListeImport, 0, 0, False, 1 + 512)
|
|
Else
|
|
MsgBox(64, "kein LV gefunden", "kein passendes LV im Programm gefunden." & @CRLF & "Bitte prüfen...")
|
|
EndIf
|
|
|
|
|
|
EndIf
|
|
EndFunc ;==>_Load_LV_From_Chb
|
|
|
|
Func _farben_Eingabe_daten($sEinheit)
|
|
|
|
Select
|
|
Case $sEinheit = "ST"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "LE"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "STD"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "M"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "M2"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "M3"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0x00FF11)
|
|
Case $sEinheit = "Psch"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "h"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0xFEFEFE)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0xFEFEFE)
|
|
Case $sEinheit = "t"
|
|
GUICtrlSetBkColor($lve_tab_txt_menge, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_leange, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_tiefe, 0x00FF11)
|
|
GUICtrlSetBkColor($lve_tab_txt_breite, 0x00FF11)
|
|
EndSelect
|
|
|
|
EndFunc ;==>_farben_Eingabe_daten
|
|
|
|
Func _search_posList()
|
|
|
|
Dim $aChb_rv[1]
|
|
$aChb_rv[0] = GUICtrlRead($lve_tab_chb_vertrag)
|
|
|
|
;~ Local $aChb_rv = StringRegExp(GUICtrlRead($lve_tab_chb_vertrag), "([^_]+)", 3)
|
|
If IsArray($aChb_rv) Then
|
|
Local $sChb_rv = $aChb_rv[0]
|
|
;~ local $sIniWert = IniRead($sPfadIni, "LV", $sChb_rv, "")
|
|
Local $sFilePath = @ScriptDir & "\daten\LV\" & $sChb_rv & ".txt"
|
|
Local $aArray
|
|
|
|
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($lve_tab_lv_posliste))
|
|
_FileReadToArray($sFilePath, $aArray)
|
|
_ArrayDelete($aArray, 0)
|
|
_ArraySort($aArray)
|
|
|
|
;~ _ArrayDisplay($aArray)
|
|
;~ MsgBox(64,$sChb_rv,$sFilePath)
|
|
Local $aSplit = StringSplit($aArray[0], "|")
|
|
;~ _ArrayDisplay($aSplit)
|
|
Dim $aListeImport[UBound($aArray)][$aSplit[0]]
|
|
;~ _GUICtrlListView_AddArray($ListView1, $aArray)
|
|
For $i = 0 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
|
|
If $aTemp[0] <> 4 Then
|
|
_ArrayDisplay($aTemp)
|
|
EndIf
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$i][$ii - 1] = $aTemp[$ii]
|
|
|
|
Next
|
|
Next
|
|
|
|
|
|
_GUICtrlListView_DeleteAllItems($lve_tab_lv_posliste)
|
|
|
|
$sText = GUICtrlRead($lve_tab_txt_suche)
|
|
|
|
If $sText = "" Then
|
|
_GUIListViewEx_Close($iLV_PosList_Index)
|
|
_Load_LV_From_Chb()
|
|
;~ _GUICtrlListView_AddArray($lv_lv_pos, $aListeImport)
|
|
Else
|
|
_GUIListViewEx_Close($iLV_PosList_Index)
|
|
;~ _ArrayDisplay($aListeImport)
|
|
If StringIsDigit($sText) Then
|
|
;bei zahlen in pOsnr spalte suchen
|
|
;~ MsgBox(64,"uahlen",$sText)
|
|
$iIndexs = _ArrayFindAll($aListeImport, $sText, 0, 0, 0, 1, 0)
|
|
Else
|
|
;bei nicht zahlen im kurztext suchen
|
|
;~ MsgBox(64,"kurztext",$sText)
|
|
$iIndexs = _ArrayFindAll($aListeImport, $sText, 0, 0, 0, 1, 1)
|
|
EndIf
|
|
;~ $iIndexs = _ArrayFindAll($aListeImport, $sText, 0, 0, 0, 1, 0)
|
|
|
|
;~ _ArrayDisplay($iIndexs)
|
|
For $i = 0 To UBound($iIndexs) - 1
|
|
_GUICtrlListView_AddItem($lve_tab_lv_posliste, $aListeImport[$iIndexs[$i]][0])
|
|
_GUICtrlListView_AddSubItem($lve_tab_lv_posliste, $i, $aListeImport[$iIndexs[$i]][1], 1)
|
|
_GUICtrlListView_AddSubItem($lve_tab_lv_posliste, $i, $aListeImport[$iIndexs[$i]][2], 2)
|
|
_GUICtrlListView_AddSubItem($lve_tab_lv_posliste, $i, $aListeImport[$iIndexs[$i]][3], 3)
|
|
Next
|
|
|
|
Global $aLV_List_left = _GUIListViewEx_ReadToArray($lve_tab_lv_posliste, 1)
|
|
; The array as read from Right ListView and used subsequently
|
|
;_ArrayDisplay($aLV_List_Right, "Read from Right ListView")
|
|
|
|
; Initiate LVEx - use read content as array - count parameter set - red insert mark - drag image - move edit by click + headers editable
|
|
$iLV_PosList_Index = _GUIListViewEx_Init($lve_tab_lv_posliste, $aLV_List_left, 0, 0, False, 1 + 512)
|
|
EndIf
|
|
Else
|
|
MsgBox(64, "Fehler", "Vertrag auswählen.")
|
|
EndIf
|
|
|
|
EndFunc ;==>_search_posList
|
|
|
|
Func _Pflichtfelder2Array()
|
|
Global $aPflichtfelder
|
|
Local $sFilePath = GUICtrlRead($lve_tab_chb_vertrag)
|
|
$aAVertrag = StringRegExp($sFilePath, '([^_]+)', 3)
|
|
If IsArray($aAVertrag) Then
|
|
$sFilePath = @ScriptDir & "\daten\LV\" & $aAVertrag[0] & "_pflicht.txt"
|
|
EndIf
|
|
_FileReadToArray($sFilePath, $aPflichtfelder)
|
|
_ArrayDelete($aPflichtfelder, 0)
|
|
EndFunc ;==>_Pflichtfelder2Array
|
|
|
|
Func _replaceKom2Punkt($sString)
|
|
Return StringReplace($sString, ",", ".")
|
|
EndFunc ;==>_replaceKom2Punkt
|
|
|
|
Func _replacePunkt2Koma($sString)
|
|
Return StringReplace($sString, ".", ",")
|
|
EndFunc ;==>_replacePunkt2Koma
|
|
|
|
Func _Listview2Array($sNameListview)
|
|
$aSpalten = _GUICtrlListView_GetItemTextArray($sNameListview)
|
|
$iColums = $aSpalten[0]
|
|
$iRows = _GUICtrlListView_GetItemCount($sNameListview)
|
|
;~ ConsoleWrite($iRows)
|
|
;~ _DebugArrayDisplay($aSpalten)
|
|
If $iColums = 1 Then
|
|
Else
|
|
;2dim Array
|
|
Dim $aTemp[$iRows][$iColums]
|
|
For $i = 0 To UBound($aTemp) - 1
|
|
$aItem = _GUICtrlListView_GetItemTextArray($sNameListview, $i)
|
|
For $ii = 1 To UBound($aItem) - 1
|
|
$aTemp[$i][$ii - 1] = $aItem[$ii]
|
|
Next
|
|
Next
|
|
;~ _setColor2Array($aTemp)
|
|
Return $aTemp
|
|
EndIf
|
|
|
|
EndFunc ;==>_Listview2Array
|
|
|
|
Func _EVAufmLV_mark_copi()
|
|
$array = _GUICtrlListView_GetSelectedIndices($frm_lv_evaufm, True)
|
|
$iCount = _GUICtrlListView_GetItemCount($frm_lv_evaufm)
|
|
;~ _ArrayDisplay($array)
|
|
Dim $aListAufmass[1][13]
|
|
For $i = 1 To $array[0]
|
|
Local $sZeile = ""
|
|
|
|
$aTemp = _GUICtrlListView_GetItemTextArray($frm_lv_evaufm, $array[$i])
|
|
;~ $sZeile = _GUICtrlListView_GetItemTextString($LV_AM, $array[$i])
|
|
;~ _ArrayDisplay($aTemp)
|
|
$aListAufmass[0][0] = $aTemp[1]
|
|
$aListAufmass[0][1] = $aTemp[2]
|
|
$aListAufmass[0][2] = $aTemp[3]
|
|
$aListAufmass[0][3] = $aTemp[4]
|
|
$aListAufmass[0][4] = $aTemp[5]
|
|
$aListAufmass[0][5] = $aTemp[6]
|
|
$aListAufmass[0][6] = $aTemp[7]
|
|
$aListAufmass[0][7] = $aTemp[8]
|
|
$aListAufmass[0][8] = $aTemp[9]
|
|
$aListAufmass[0][9] = $aTemp[10]
|
|
$aListAufmass[0][10] = $aTemp[11]
|
|
$aListAufmass[0][11] = $aTemp[12]
|
|
$aListAufmass[0][12] = $aTemp[13]
|
|
;~ _GUICtrlListView_AddArray($LV_Aufm, $aListAufmass)
|
|
$iCount = -1
|
|
_GUIListViewEx_InsertSpec($iLV_Aufma_Index, $iCount, $aListAufmass)
|
|
Next
|
|
|
|
;~ _GUICtrlListView_AddArray($LV_Aufm, $aListAufmass)
|
|
EndFunc ;==>_EVAufmLV_mark_copi
|
|
|
|
Func _EVAufmLV_import_txt()
|
|
Local $sFilePath, $aArray
|
|
;~ _GUICtrlListView_DeleteAllItems($LV_Aufm)
|
|
$aListeImport = ""
|
|
Local $message = "Bitte wählen Sie die Import Datei aus!"
|
|
|
|
Local $sFilePath = FileOpenDialog($message, @ScriptDir & "\_Aufmaße\", "Text (*.txt)", 1 + 4)
|
|
If @error Then
|
|
MsgBox(4096, "", "Keine Datei(en) ausgewählt")
|
|
Else
|
|
$sFilePath = StringReplace($sFilePath, "|", @CRLF)
|
|
;~ MsgBox(4096, "", "Es wurde(n) " & $var & " ausgewählt")
|
|
_FileReadToArray($sFilePath, $aArray)
|
|
;~ _ArrayDisplay($aArray)
|
|
_Write_to_Console("importiere Aufmaß...")
|
|
If IsArray($aArray) Then
|
|
Dim $aListeImport[$aArray[0] - 15][13]
|
|
$iZ = 0
|
|
For $i = 16 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$iZ][$ii - 1] = $aTemp[$ii]
|
|
Next
|
|
$iZ = $iZ + 1
|
|
Next
|
|
_GUICtrlListView_AddArray($frm_lv_evaufm, $aListeImport)
|
|
|
|
EndIf
|
|
|
|
|
|
EndIf
|
|
EndFunc ;==>_EVAufmLV_import_txt
|
|
|
|
Func _Summe_Aktuallisieren()
|
|
Local $aArrayAufmaListe = _GUIListViewEx_ReadToArray($LV_Aufm, 1)
|
|
;~ _DebugArrayDisplay($aArrayAufmaListe)
|
|
$iSummeset = 0
|
|
For $i = 0 To UBound($aArrayAufmaListe) - 1
|
|
Select
|
|
Case $aArrayAufmaListe[$i][7] = "M"
|
|
$aArrayAufmaListe[$i][6] = $aArrayAufmaListe[$i][3]
|
|
Case $aArrayAufmaListe[$i][7] = "M2"
|
|
$sMengeM2 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) ;Länge x Breite = Menge vorne
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM2) ;Menge neu Berechnen;
|
|
Case $aArrayAufmaListe[$i][7] = "M3"
|
|
$sMengeM3 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) * _replaceKom2Punkt($aArrayAufmaListe[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
Case $aArrayAufmaListe[$i][7] = "t"
|
|
$sMengeM3 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) * _replaceKom2Punkt($aArrayAufmaListe[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
;~ $aArrayAufmaListe[$i][6] = $aArrayAufmaListe[$i][3]
|
|
|
|
Case $aArrayAufmaListe[$i][7] = "LE"
|
|
|
|
|
|
EndSelect
|
|
|
|
ConsoleWrite($aArrayAufmaListe[$i][6] & @CRLF)
|
|
ConsoleWrite($sMengeM2 & @CRLF)
|
|
ConsoleWrite($sMengeM3 & @CRLF)
|
|
; Menge * Faktor = G-Menge
|
|
$sMenge = _replaceKom2Punkt($aArrayAufmaListe[$i][6]) * _replaceKom2Punkt($aArrayAufmaListe[$i][2])
|
|
$aArrayAufmaListe[$i][10] = _replacePunkt2Koma($sMenge) ; Menge (Menge * Faktor)
|
|
|
|
;G-Menge * Einzellspreis = Summe
|
|
$iSumme = _replaceKom2Punkt($aArrayAufmaListe[$i][10]) * _replaceKom2Punkt($aArrayAufmaListe[$i][11]) ;Menge hinten * Faktor)
|
|
$aArrayAufmaListe[$i][12] = _replacePunkt2Koma($iSumme)
|
|
_ArrayDisplay($aArrayAufmaListe)
|
|
$iSummeset = $iSummeset + $iSumme
|
|
|
|
|
|
Next
|
|
;~ _Write_to_Console("Preise aktualisieren")
|
|
GUICtrlSetData($lbl_summe, "Summe = " & _StringAddThousandsSepEx(_PriceRound($iSummeset)) & " €")
|
|
_Write_to_Console("Summe = " & _StringAddThousandsSepEx(_PriceRound($iSummeset)) & " €")
|
|
Return _replacePunkt2Koma($iSummeset)
|
|
|
|
EndFunc ;==>_Summe_Aktuallisieren
|
|
|
|
Func _Summe_Aktuallisieren_EVAufm()
|
|
Local $aArrayAufmaListe = _GUIListViewEx_ReadToArray($frm_lv_evaufm, 1)
|
|
;~ _DebugArrayDisplay($aArrayAufmaListe)
|
|
$iSummeset = 0
|
|
For $i = 0 To UBound($aArrayAufmaListe) - 1
|
|
Select
|
|
Case $aArrayAufmaListe[$i][7] = "M"
|
|
$aArrayAufmaListe[$i][6] = $aArrayAufmaListe[$i][3]
|
|
Case $aArrayAufmaListe[$i][7] = "M2"
|
|
$sMengeM2 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) ;Länge x Breite = Menge vorne
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM2) ;Menge neu Berechnen;
|
|
Case $aArrayAufmaListe[$i][7] = "M3"
|
|
$sMengeM3 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) * _replaceKom2Punkt($aArrayAufmaListe[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
Case $aArrayAufmaListe[$i][7] = "t"
|
|
$sMengeM3 = _replaceKom2Punkt($aArrayAufmaListe[$i][3]) * _replaceKom2Punkt($aArrayAufmaListe[$i][4]) * _replaceKom2Punkt($aArrayAufmaListe[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aArrayAufmaListe[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
Case $aArrayAufmaListe[$i][7] = "LE"
|
|
;~ $aArrayAufmaListe[$i][6] = $aArrayAufmaListe[$i][3]
|
|
|
|
EndSelect
|
|
|
|
;~ ConsoleWrite($aArrayAufmaListe[$i][6]& @CRLF)
|
|
;~ ConsoleWrite($sMengeM2& @CRLF)
|
|
;~ ConsoleWrite($sMengeM3& @CRLF)
|
|
; Menge * Faktor = G-Menge
|
|
$sMenge = _replaceKom2Punkt($aArrayAufmaListe[$i][6]) * _replaceKom2Punkt($aArrayAufmaListe[$i][2])
|
|
$aArrayAufmaListe[$i][10] = _replacePunkt2Koma($sMenge) ; Menge (Menge * Faktor)
|
|
|
|
;G-Menge * Einzellspreis = Summe
|
|
$iSumme = _replaceKom2Punkt($aArrayAufmaListe[$i][10]) * _replaceKom2Punkt($aArrayAufmaListe[$i][11]) ;Menge hinten * Faktor)
|
|
$aArrayAufmaListe[$i][12] = _replacePunkt2Koma($iSumme)
|
|
;~ _ArrayDisplay($aListAufmass)
|
|
$iSummeset = $iSummeset + $iSumme
|
|
|
|
|
|
Next
|
|
_Write_to_Console("Preise aktualisieren")
|
|
GUICtrlSetData($frm_evaufm_lbl_summe, "Summe = " & _StringAddThousandsSepEx(_PriceRound($iSummeset)) & " €")
|
|
_Write_to_Console("Summe = " & _PriceRound($iSummeset) & " €")
|
|
|
|
|
|
EndFunc ;==>_Summe_Aktuallisieren_EVAufm
|
|
|
|
Func _Aufma_Listview_werte_aktu()
|
|
$aInhalt = ""
|
|
;~ $aGLVEx_Data[$iLV_Left_Index][19] = 1
|
|
_GUIListViewEx_SetActive($iLV_Aufma_Index)
|
|
$aInhalt = _GUIListViewEx_ReturnArray($iLV_Aufma_Index, 3)
|
|
;~ Global $iLV_Left_Index = _GUIListViewEx_Init($LV_Aufm, $aInhalt, 0, 0, True, 2 + 32)
|
|
|
|
;~ $aColor = _GUIListViewEx_ReturnArray($iLV_Left_Index, 3)
|
|
$iSummeset = 0
|
|
;~ _DebugArrayDisplay($aInhalt)
|
|
|
|
|
|
If IsArray($aInhalt) Then
|
|
If UBound($aInhalt) < 1 Then
|
|
|
|
Else
|
|
;~ _ArrayDisplay($aColor)
|
|
;~ _DebugArrayDisplay($aInhalt)
|
|
|
|
For $i = 0 To UBound($aInhalt) - 1
|
|
;Ändere Kurztext
|
|
;~ $aInhalt[$i][1] ; PosNr
|
|
|
|
;Abfrage nach Einheit
|
|
Select
|
|
Case $aInhalt[$i][7] = "M"
|
|
;ändere meter Zeile 3 mit Menge
|
|
$aInhalt[$i][6] = $aInhalt[$i][3]
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][3], 6)
|
|
;Preis ändern
|
|
|
|
Case $aInhalt[$i][7] = "M2"
|
|
;Länge x Breite = Menge vorne
|
|
$sMengeM2 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4])
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM2) ;Menge neu Berechnen;
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][6], 6)
|
|
;Preis ändern
|
|
$sMengeM2 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4]) ;Länge x Breite = Menge vorne
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM2) ;Menge neu Berechnen;
|
|
Case $aInhalt[$i][7] = "M3"
|
|
;länge x Breite x Tiefe = Menge
|
|
$sMengeM3 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4]) * _replaceKom2Punkt($aInhalt[$i][5])
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][6], 6)
|
|
;preis Ändern
|
|
$sMengeM3 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4]) * _replaceKom2Punkt($aInhalt[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
Case $aInhalt[$i][7] = "LE"
|
|
;~ $aInhalt[$i][6] = $aInhalt[$i][3]
|
|
Case $aInhalt[$i][7] = "ST"
|
|
;~ $aInhalt[$i][6] = $aInhalt[$i][3]
|
|
Case $aInhalt[$i][7] = "STD"
|
|
;~ $aInhalt[$i][6] = $aInhalt[$i][3]
|
|
Case $aInhalt[$i][7] = "t"
|
|
$sMengeM3 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4]) * _replaceKom2Punkt($aInhalt[$i][5])
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][6], 6)
|
|
;preis Ändern
|
|
$sMengeM3 = _replaceKom2Punkt($aInhalt[$i][3]) * _replaceKom2Punkt($aInhalt[$i][4]) * _replaceKom2Punkt($aInhalt[$i][5]) ;länge x Breite x Tiefe = Menge
|
|
$aInhalt[$i][6] = _replacePunkt2Koma($sMengeM3)
|
|
EndSelect
|
|
;ändere Menge hinten mit Mengevorne * Faktor
|
|
$iMengeVorne = _replaceKom2Punkt($aInhalt[$i][6])
|
|
$iFakotr = _replaceKom2Punkt($aInhalt[$i][2])
|
|
$iMengeHinten = $iMengeVorne * $iFakotr
|
|
$aInhalt[$i][10] = _replacePunkt2Koma($iMengeHinten)
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][10], 10)
|
|
;ändere Gesamtpreishinten (MengeHinten*Einzellpreis)
|
|
$iGesamtsumme = $iMengeHinten * _replaceKom2Punkt($aInhalt[$i][11])
|
|
$aInhalt[$i][12] = _replacePunkt2Koma($iGesamtsumme)
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aInhalt[$i][12], 12)
|
|
;0 Nullen hinten löschen
|
|
If $aInhalt[$i][12] = "0" Or $aInhalt[$i][10] = "0" Then
|
|
$aInhalt[$i][12] = ""
|
|
$aInhalt[$i][10] = ""
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, "", 12)
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, "", 10)
|
|
EndIf
|
|
|
|
; Menge * Faktor = G-Menge
|
|
$sMenge = _replaceKom2Punkt($aInhalt[$i][6]) * _replaceKom2Punkt($aInhalt[$i][2])
|
|
$aInhalt[$i][10] = _replacePunkt2Koma($sMenge) ; Menge (Menge * Faktor)
|
|
|
|
;G-Menge * Einzellspreis = Summe
|
|
$iSumme = _replaceKom2Punkt($aInhalt[$i][10]) * _replaceKom2Punkt($aInhalt[$i][11]) ;Menge hinten * Faktor)
|
|
$aInhalt[$i][12] = _replacePunkt2Koma($iSumme)
|
|
;~ _ArrayDisplay($aListAufmass)
|
|
$iSummeset = $iSummeset + $iSumme
|
|
Next
|
|
GUICtrlSetData($lbl_summe, "Summe = " & _StringAddThousandsSepEx(_PriceRound($iSummeset)) & " €")
|
|
GUICtrlSetData($frm_extern_lbl_preis, "Summe = " & _StringAddThousandsSepEx(_PriceRound($iSummeset)) & " €")
|
|
;~ _GUICtrlListView_DeleteAllItems($lv_aufm)
|
|
;~ _GUICtrlListView_AddArray($lv_aufm, $aInhalt)
|
|
|
|
EndIf
|
|
EndIf
|
|
|
|
EndFunc ;==>_Aufma_Listview_werte_aktu
|
|
|
|
Func _ArryRemoveBlanks(ByRef $arr)
|
|
$idx = 0
|
|
For $i = 0 To UBound($arr) - 1
|
|
If $arr[$i] <> "" Then
|
|
$arr[$idx] = $arr[$i]
|
|
$idx += 1
|
|
EndIf
|
|
Next
|
|
If IsArray($arr) Then
|
|
ReDim $arr[$idx]
|
|
EndIf
|
|
EndFunc ;==>_ArryRemoveBlanks
|
|
|
|
Func _Check_Positionen_ImVertrag()
|
|
$aArray = _GUIListViewEx_ReadToArray($LV_Aufm, 0)
|
|
;~ _ArrayDisplay($aArray, "LV-Liste")
|
|
|
|
$aArrayUnique = _ArrayUnique($aArray, 1) ; Create a unique array of the second column.
|
|
|
|
_ArryRemoveBlanks($aArrayUnique)
|
|
_ArrayDelete($aArrayUnique, 0)
|
|
_ArraySort($aArrayUnique)
|
|
|
|
|
|
Local $sChb_rv = GUICtrlRead($lve_tab_chb_vertrag)
|
|
;~ local $sIniWert = IniRead($sPfadIni, "LV", $sChb_rv, "")
|
|
Local $sFilePath = @ScriptDir & "\daten\LV\" & $sChb_rv & ".txt"
|
|
Local $aArrayPosListe
|
|
|
|
_FileReadToArray($sFilePath, $aArrayPosListe)
|
|
_ArrayDelete($aArrayPosListe, 0)
|
|
_ArraySort($aArrayPosListe)
|
|
|
|
;~ _DebugArrayDisplay($aArrayPosListe)
|
|
|
|
If IsArray($aArrayPosListe) Then
|
|
;~ ConsoleWrite($sChb_rv & ".txt" & @CRLF)
|
|
;~ _DebugArrayDisplay($aArrayPosListe)
|
|
Local $aSplit = StringSplit($aArrayPosListe[0], "|")
|
|
If IsArray($aSplit) Then
|
|
;~ _ArrayDisplay($aSplit)
|
|
Dim $aListeImport[UBound($aArrayPosListe)][$aSplit[0]]
|
|
;~ _GUICtrlListView_AddArray($ListView1, $aArray)
|
|
For $i = 0 To UBound($aArrayPosListe) - 1
|
|
$aTemp = StringSplit($aArrayPosListe[$i], "|")
|
|
|
|
If $aTemp[0] <> 4 Then
|
|
_ArrayDisplay($aTemp)
|
|
EndIf
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$i][$ii - 1] = $aTemp[$ii]
|
|
|
|
Next
|
|
Next
|
|
|
|
;~ _ArrayDisplay($aListeImport, "PosListe")
|
|
|
|
Dim $aNotVertrag[1]
|
|
For $ii = 0 To UBound($aArrayUnique) - 1
|
|
For $i = 0 To UBound($aListeImport) - 1
|
|
If $aArrayUnique[$ii] = $aListeImport[$i][0] Then
|
|
$sTEst = True
|
|
ExitLoop
|
|
Else
|
|
$sTEst = False
|
|
EndIf
|
|
Next
|
|
If $sTEst = True Then
|
|
Else
|
|
_ArrayAdd($aNotVertrag, $aArrayUnique[$ii])
|
|
;~ ConsoleWrite($aArrayUnique[$ii] & "| nicht im aus ausgewählten Vertrag" & @CRLF)
|
|
EndIf
|
|
Next
|
|
|
|
;~ _DebugArrayDisplay($aNotVertrag)
|
|
Return $aNotVertrag
|
|
EndIf
|
|
EndIf
|
|
|
|
EndFunc ;==>_Check_Positionen_ImVertrag
|
|
|
|
|
|
Func _Write_to_Console($sString)
|
|
$sText = @YEAR & "." & @MON & "." & @MDAY & " | " & @HOUR & ":" & @MIN & ":" & @SEC & " " & $sString
|
|
GUICtrlSetData($logs_tab_ed_logs, GUICtrlRead($logs_tab_ed_logs) & @CRLF & $sText)
|
|
ConsoleWrite($sText & @CRLF)
|
|
FileWrite(@ScriptDir & "\Daten\_LOG_File.txt", $sText & @CRLF)
|
|
_GUICtrlEdit_LineScroll($logs_tab_ed_logs, 0, _GUICtrlEdit_GetLineCount($logs_tab_ed_logs))
|
|
EndFunc ;==>_Write_to_Console
|
|
|
|
Func _WM_COMMAND($hWinHandle, $iMsg, $wParam, $lParam)
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $tab1_txt_leange Then
|
|
GUICtrlSetData($tab1_txt_rest_laenge, GUICtrlRead($tab1_txt_leange))
|
|
EndIf
|
|
Select
|
|
Case $sEinheit = "ST"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Then
|
|
$sMenge_ST = 0
|
|
;~ $sMenge_ST = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_menge))
|
|
;GUICtrlSetData($lve_tab_txt_menge, $sMenge_ST)
|
|
EndIf
|
|
Case $sEinheit = "LE"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Then
|
|
$sMenge_LE = 0
|
|
;~ $sMenge_LE = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_menge))
|
|
GUICtrlSetData($lve_tab_txt_menge, $sMenge_LE)
|
|
EndIf
|
|
Case $sEinheit = "STD"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Then
|
|
$sMenge_STD = 0
|
|
;~ $sMenge_STD = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_menge))
|
|
GUICtrlSetData($lve_tab_txt_menge, $sMenge_STD)
|
|
EndIf
|
|
Case $sEinheit = "M"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_leange Or _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Then
|
|
$sMenge_m = 0
|
|
$sMenge_m = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_leange)) ;Länge x Breite = Menge vorne
|
|
$sMenge_m = _replacePunkt2Koma($sMenge_m)
|
|
GUICtrlSetData($lve_tab_txt_menge, $sMenge_m)
|
|
EndIf
|
|
Case $sEinheit = "M2"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_leange Or _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Or _WinAPI_LoWord($wParam) = $lve_tab_txt_breite Then
|
|
$sMenge_m2 = 0
|
|
$sMenge_m2 = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_leange)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_breite)) ;Länge x Breite = Menge vorne
|
|
$sMenge_m2 = _replacePunkt2Koma($sMenge_m2)
|
|
GUICtrlSetData($lve_tab_txt_menge, $sMenge_m2)
|
|
EndIf
|
|
Case $sEinheit = "M3"
|
|
If _WinAPI_HiWord($wParam) = $EN_CHANGE And _WinAPI_LoWord($wParam) = $lve_tab_txt_leange Or _WinAPI_LoWord($wParam) = $lve_tab_txt_faktor Or _WinAPI_LoWord($wParam) = $lve_tab_txt_breite Or _WinAPI_LoWord($wParam) = $lve_tab_txt_tiefe Then
|
|
$sMenge_m3 = 0
|
|
$sMenge_m3 = _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_faktor)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_leange)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_breite)) * _replaceKom2Punkt(GUICtrlRead($lve_tab_txt_tiefe)) ;Länge x Breite = Menge vorne
|
|
$sMenge_m3 = _replacePunkt2Koma($sMenge_m3)
|
|
GUICtrlSetData($lve_tab_txt_menge, $sMenge_m3)
|
|
EndIf
|
|
EndSelect
|
|
|
|
|
|
Return $GUI_RUNDEFMSG
|
|
EndFunc ;==>_WM_COMMAND
|
|
|
|
Func _GUICtrlListView_ScrollToItem($hListView, $item) ; $item : zero based ListViewItem
|
|
$item_to_scroll = $item
|
|
If $item_to_scroll >= 0 Then $item_to_scroll -= 1
|
|
$aRect = _GUICtrlListView_GetItemRect($hListView, $item_to_scroll, 3)
|
|
|
|
$V_iDY = $aRect[1] - 1
|
|
If $item <= 0 Then $V_iDY -= 12
|
|
_GUICtrlListView_Scroll($hListView, 1, $V_iDY)
|
|
EndFunc ;==>_GUICtrlListView_ScrollToItem
|
|
|
|
Func _LV_Farben()
|
|
$aArray = _GUIListViewEx_ReadToArray($LV_Aufm, 0)
|
|
;~ ConsoleWrite("_Listview2Array($LV_Aufm)" & @CRLF)
|
|
|
|
;~ _DebugArrayDisplay($aArray)
|
|
_Pflichtfelder2Array()
|
|
|
|
$sColor_leereZeile = IniRead($sPfadIni, "Color", "leereZeile", "0xF7CA14")
|
|
$sColor_Pflichtfelder = IniRead($sPfadIni, "Color", "Pflichtfelder", "0xED686B")
|
|
$sColor_nichtimVertrag = IniRead($sPfadIni, "Color", "nichtimVertrag", "0x3370AD")
|
|
If IsArray($aArray) Then
|
|
If UBound($aArray) <= 1 Then
|
|
Else
|
|
|
|
For $i = 0 To UBound($aArray) - 1
|
|
;immer zuerst alle Weiß
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, -1, 0xFFFFFF)
|
|
|
|
|
|
;einheiten Pflichtfelder Rot
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "ST" And $aArray[$i][6] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 6, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M" And $aArray[$i][3] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M2" And $aArray[$i][3] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M2" And $aArray[$i][4] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 4, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][3] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][4] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 4, $sColor_Pflichtfelder)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][5] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 5, $sColor_Pflichtfelder)
|
|
EndIf
|
|
;einheiten Nornmal Farbe
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "ST" And $aArray[$i][6] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 6, 0xFFFFFF)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M" And $aArray[$i][3] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, 0xFFFFFF)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M2" And $aArray[$i][3] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, 0xFFFFFF)
|
|
EndIf
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M2" And $aArray[$i][4] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 4, 0xFFFFFF)
|
|
EndIf
|
|
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][3] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 3, 0xFFFFFF)
|
|
EndIf
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][4] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 4, 0xFFFFFF)
|
|
EndIf
|
|
If $aArray[$i][1] <> "" And $aArray[$i][7] = "M3" And $aArray[$i][5] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 5, 0xFFFFFF)
|
|
EndIf
|
|
|
|
;pflichtfelder
|
|
|
|
If IsArray($aPflichtfelder) Then
|
|
Local $aiResult = _ArrayFindAll($aPflichtfelder, $aArray[$i][1], 0, 0, 0, 1)
|
|
|
|
If IsArray($aiResult) Then
|
|
If $aArray[$i][9] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 9, $sColor_Pflichtfelder)
|
|
EndIf
|
|
If $aArray[$i][9] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 9, 0xFFFFFF)
|
|
EndIf
|
|
EndIf
|
|
EndIf
|
|
|
|
;faktor ungleich 1
|
|
If $aArray[$i][2] <> "1,0" And $aArray[$i][9] = "" And $aArray[$i][7] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 9, $sColor_Pflichtfelder)
|
|
Else
|
|
If $aArray[$i][7] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, 9, 0xFFFFFF)
|
|
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
|
|
;leere Zeilen Orange
|
|
If $aArray[$i][0] = "" And $aArray[$i][1] = "" And $aArray[$i][10] = "" And $aArray[$i][11] = "" And $aArray[$i][12] = "" Then
|
|
;~ $aCollor[$i][$ii] = "0xF7CA14"
|
|
ListViewColorsFonts_SetItemColors($hLV, $i, -1, $sColor_leereZeile)
|
|
EndIf
|
|
;~ ListViewColorsFonts_SetItemFonts($hLV, $i, -1, 0xF7CA14
|
|
Next
|
|
|
|
|
|
$aNotIncludeFarben = ""
|
|
$aNotIncludeFarben = _Check_Positionen_ImVertrag()
|
|
|
|
For $ii = 0 To UBound($aArray) - 1
|
|
If IsArray($aNotIncludeFarben) Then
|
|
Local $aiResult = _ArrayFindAll($aNotIncludeFarben, $aArray[$ii][1], 0, 0, 0, 1)
|
|
|
|
If IsArray($aiResult) Then
|
|
If $aArray[$ii][9] = "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $ii, 1, $sColor_nichtimVertrag)
|
|
EndIf
|
|
If $aArray[$ii][9] <> "" Then
|
|
ListViewColorsFonts_SetItemColors($hLV, $ii, 1, 0xFFFFFF)
|
|
EndIf
|
|
EndIf
|
|
EndIf
|
|
Next
|
|
EndIf
|
|
EndIf
|
|
|
|
|
|
Local $hListView = GUICtrlGetHandle($LV_Aufm)
|
|
ListViewColorsFonts_Redraw($hListView)
|
|
;~ _DebugArrayDisplay($aCollor)
|
|
EndFunc ;==>_LV_Farben
|
|
|
|
Func _LV_Change_VertragsDaten()
|
|
Local $aArrayAufmaListe = _GUIListViewEx_ReadToArray($LV_Aufm, 0)
|
|
|
|
;~ _DebugArrayDisplay($aArrayAufmaListe)
|
|
|
|
$iFarbenV = "False"
|
|
|
|
Local $sChb_rv = GUICtrlRead($kopf_TAB_chb_vertrag)
|
|
$aNotIncludeFarben = ""
|
|
$aNotIncludeFarben = _Check_Positionen_ImVertrag()
|
|
|
|
Local $sFilePath = @ScriptDir & "\daten\LV\" & $sChb_rv & ".txt"
|
|
Local $aArray
|
|
_FileReadToArray($sFilePath, $aArray)
|
|
_ArrayDelete($aArray, 0)
|
|
_ArraySort($aArray)
|
|
|
|
Local $aSplit = StringSplit($aArray[0], "|")
|
|
;~ _ArrayDisplay($aSplit)
|
|
Dim $aListeImport[UBound($aArray)][$aSplit[0]]
|
|
;~ _GUICtrlListView_AddArray($ListView1, $aArray)
|
|
For $i = 0 To UBound($aArray) - 1
|
|
$aTemp = StringSplit($aArray[$i], "|")
|
|
|
|
If $aTemp[0] <> 4 Then
|
|
_ArrayDisplay($aTemp)
|
|
EndIf
|
|
For $ii = 1 To UBound($aTemp) - 1
|
|
$aListeImport[$i][$ii - 1] = $aTemp[$ii]
|
|
|
|
Next
|
|
Next
|
|
|
|
;~ _DebugArrayDisplay($aListeImport)
|
|
For $i = 0 To UBound($aArrayAufmaListe) - 1
|
|
For $ii = 0 To UBound($aListeImport) - 1
|
|
If $aArrayAufmaListe[$i][1] = $aListeImport[$ii][0] Then
|
|
;~ $aArrayAufmaListe[$i][11] = $aListeImport[$ii][3]
|
|
_GUICtrlListView_AddSubItem($lv_aufm, $i, $aListeImport[$ii][3], 11)
|
|
Else
|
|
;~ ListViewColorsFonts_SetItemColors($hLV, $i, 1, 0x3370AD)
|
|
EndIf
|
|
Next
|
|
Next
|
|
;~ _DebugArrayDisplay($aArrayAufmaListe)
|
|
|
|
;~ _Summe_Aktuallisieren()
|
|
|
|
Global $aLV_List_Right = _GUIListViewEx_ReadToArray($LV_Aufm, 0)
|
|
$iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aLV_List_Right, 0, 0xFF0000, True, 2)
|
|
|
|
;~ $iLV_Aufma_Index = _GUIListViewEx_Init($LV_Aufm, $aListeImport, 0, 0, True, 2 )
|
|
;~ _ArrayDisplay($aListeImport)
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, "0;2;3;4;5;6")
|
|
_GUIListViewEx_SetEditStatus($iLV_Aufma_Index, 9, 2, $cDataB, True)
|
|
|
|
_klick_ListAktu()
|
|
MsgBox(64, "Vertragspositionen wurden geändert!", "okay fertig")
|
|
|
|
EndFunc ;==>_LV_Change_VertragsDaten
|
|
|
|
Func _REB_TXT_to_Excel($sTXT, $sExcel)
|
|
|
|
Local $aLines
|
|
_FileReadToArray($sTXT, $aLines)
|
|
|
|
Local $Baustelle = ""
|
|
Local $Datum = ""
|
|
Local $Abschnitt = ""
|
|
|
|
Local $inHeader = False
|
|
Local $inData = False
|
|
|
|
; -------------------------------
|
|
; Kopf auslesen
|
|
; -------------------------------
|
|
For $i = 1 To $aLines[0]
|
|
|
|
Local $line = $aLines[$i]
|
|
|
|
If StringInStr($line, "[Kopfdaten]") Then
|
|
$inHeader = True
|
|
ContinueLoop
|
|
EndIf
|
|
|
|
If StringInStr($line, "[Aufmaßdaten]") Then ExitLoop
|
|
|
|
If $inHeader Then
|
|
If StringLeft($line, 10) = "Baustelle=" Then $Baustelle = StringTrimLeft($line, 10)
|
|
If StringLeft($line, 6) = "Datum=" Then $Datum = StringTrimLeft($line, 6)
|
|
If StringLeft($line, 13) = "Bauabschnitt=" Then $Abschnitt = StringTrimLeft($line, 13)
|
|
EndIf
|
|
|
|
Next
|
|
|
|
; -------------------------------
|
|
; Daten sammeln (dynamisch)
|
|
; -------------------------------
|
|
Local $aExport[0][6]
|
|
Local $iWrite = 0
|
|
|
|
For $i = 1 To $aLines[0]
|
|
|
|
Local $line = $aLines[$i]
|
|
|
|
If StringInStr($line, "[Aufmaßdaten]") Then
|
|
$inData = True
|
|
ContinueLoop
|
|
EndIf
|
|
|
|
If Not $inData Then ContinueLoop
|
|
|
|
; 🔥 WICHTIG: Trenner + Leerzeilen überspringen
|
|
If StringStripWS($line, 8) = "" Then ContinueLoop
|
|
|
|
; zusätzliche Sicherheit (||||||||||)
|
|
If StringRegExp($line, "^\|+$") Then ContinueLoop
|
|
|
|
Local $f = StringSplit($line, "|")
|
|
|
|
If $f[0] < 10 Then ContinueLoop
|
|
|
|
; 🔥 wichtigste Prüfung → OZ muss existieren
|
|
If StringStripWS($f[2], 3) = "" Then ContinueLoop
|
|
|
|
Local $Ort = $f[1]
|
|
Local $OZ = $f[2]
|
|
Local $Formel = $f[3]
|
|
Local $Ergebnis = $f[7]
|
|
Local $Text = $f[9]
|
|
|
|
; -------------------------------
|
|
; Zeile 1 (Bemerkung)
|
|
; -------------------------------
|
|
ReDim $aExport[$iWrite + 1][6]
|
|
|
|
$aExport[$iWrite][0] = $OZ
|
|
$aExport[$iWrite][1] = $Text
|
|
$aExport[$iWrite][2] = $Ort
|
|
$aExport[$iWrite][3] = ""
|
|
$aExport[$iWrite][4] = ""
|
|
$aExport[$iWrite][5] = ""
|
|
|
|
$iWrite += 1
|
|
|
|
; -------------------------------
|
|
; Zeile 2 (Formel)
|
|
; -------------------------------
|
|
ReDim $aExport[$iWrite + 1][6]
|
|
|
|
$aExport[$iWrite][0] = $OZ
|
|
$aExport[$iWrite][1] = ""
|
|
$aExport[$iWrite][2] = ""
|
|
$aExport[$iWrite][3] = $Formel
|
|
$aExport[$iWrite][4] = $Formel
|
|
$aExport[$iWrite][5] = $Ergebnis
|
|
|
|
$iWrite += 1
|
|
|
|
Next
|
|
|
|
; -------------------------------
|
|
; Excel schreiben (nur 1x!)
|
|
; -------------------------------
|
|
Local $oExcel = _Excel_Open()
|
|
Local $oBook = _Excel_BookNew($oExcel)
|
|
|
|
; Kopf
|
|
_Excel_RangeWrite($oBook, Default, "Bauvorhaben", "A2")
|
|
_Excel_RangeWrite($oBook, Default, $Baustelle, "C2")
|
|
|
|
_Excel_RangeWrite($oBook, Default, "Leistungsverzeichnis", "A3")
|
|
_Excel_RangeWrite($oBook, Default, $Abschnitt, "C3")
|
|
|
|
_Excel_RangeWrite($oBook, Default, "Aufmaß", "A4")
|
|
_Excel_RangeWrite($oBook, Default, $Datum, "D4")
|
|
|
|
; Datenblock schreiben (🔥 schnell)
|
|
If $iWrite > 0 Then
|
|
_Excel_RangeWrite($oBook, Default, $aExport, "A7")
|
|
EndIf
|
|
|
|
_Excel_BookSaveAs($oBook, $sExcel)
|
|
_Excel_Close($oExcel)
|
|
|
|
EndFunc
|
|
|
|
|
|
|
|
;#################
|
|
Func Dataflor_Zu_California($sEingabeDatei, $sAusgabeDatei, $sRefPrjName = "", $sRefPrjID = "", $sOwnerName = "")
|
|
|
|
If Not FileExists($sEingabeDatei) Then
|
|
MsgBox(16, "Fehler", "Eingabedatei nicht gefunden:" & @CRLF & $sEingabeDatei)
|
|
Return False
|
|
EndIf
|
|
|
|
Local $hLesen = FileOpen($sEingabeDatei, 0)
|
|
If $hLesen = -1 Then
|
|
MsgBox(16, "Fehler", "Konnte Datei nicht oeffnen:" & @CRLF & $sEingabeDatei)
|
|
Return False
|
|
EndIf
|
|
Local $sInhalt = FileRead($hLesen)
|
|
FileClose($hLesen)
|
|
|
|
; BOM entfernen falls vorhanden
|
|
If StringLeft($sInhalt, 3) = Chr(0xEF) & Chr(0xBB) & Chr(0xBF) Then
|
|
$sInhalt = StringMid($sInhalt, 4)
|
|
EndIf
|
|
|
|
$g_iIdCounter = 1000001
|
|
|
|
; =========================================================================
|
|
; SCHRITT 1: Zeilenenden normalisieren → einheitlich CRLF
|
|
; Muss als ERSTES passieren - Dataflor hat gemischte CR/CRLF!
|
|
; =========================================================================
|
|
$sInhalt = StringReplace($sInhalt, @CRLF, @LF)
|
|
$sInhalt = StringReplace($sInhalt, @CR, @LF)
|
|
$sInhalt = StringReplace($sInhalt, @LF, @CRLF)
|
|
|
|
; =========================================================================
|
|
; SCHRITT 2: <Street>-Zeilenumbrüche zu konvertieren
|
|
; Dataflor schreibt mehrzeilige Adressen direkt in den Tag → kaputtes XML
|
|
; StringRegExpReplace kann keine Callback-Funktion → manuell extrahieren
|
|
; =========================================================================
|
|
Local $aStreet = StringRegExp($sInhalt, "(<Street>)([\s\S]*?)(</Street>)", 1)
|
|
If Not @error Then
|
|
Local $sStreetAlt = $aStreet[0] & $aStreet[1] & $aStreet[2]
|
|
Local $sStreetNeu = $aStreet[0] & StringReplace($aStreet[1], @CRLF, " ") & $aStreet[2]
|
|
$sInhalt = StringReplace($sInhalt, $sStreetAlt, $sStreetNeu)
|
|
EndIf
|
|
|
|
; =========================================================================
|
|
; SCHRITT 3: XML-Kommentar ersetzen
|
|
; BUG-FIX: "<!--[^>]*-->" bricht am > in der URL "gaeb-toolbox.de/" ab!
|
|
; Korrekt: Muster als Variable bauen → [\s\S]*? matcht alles inkl. >
|
|
; =========================================================================
|
|
Local $sKommentarMuster = "<!--[\s\S]*?-->"
|
|
$sInhalt = StringRegExpReplace($sInhalt, $sKommentarMuster, "<!-- REB 23.003 (2009) - X31 Export AutoIt v5 -->")
|
|
|
|
; =========================================================================
|
|
; SCHRITT 4: GAEBInfo - Datum, Zeit, Programm
|
|
;
|
|
; BUG-FIX: Backreference-Kollision!
|
|
; "$1" & "2026-03-20" & "$2" ergibt nach Konkatenation "$12026-03-20$2"
|
|
; AutoIt liest "$12" als Capture-Gruppe 12 → nicht vorhanden → leer!
|
|
; Gleiches bei Zeit: "$108:00:00" → Gruppe 10!
|
|
; FIX: "${1}" begrenzt die Gruppe eindeutig → kein Kollisionsproblem.
|
|
; =========================================================================
|
|
Local $sHeute = @YEAR & "-" & StringFormat("%02d", @MON) & "-" & StringFormat("%02d", @MDAY)
|
|
Local $sZeit = StringFormat("%02d", @HOUR) & ":" & StringFormat("%02d", @MIN) & ":" & StringFormat("%02d", @SEC)
|
|
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<Date>)[^<]*(</Date>)", "${1}" & $sHeute & "${2}")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<Time>)[^<]*(</Time>)", "${1}" & $sZeit & "${2}")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<ProgSystem>)[^<]*(</ProgSystem>)", "${1}AutoIt REB Engine V1.2${2}")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<ProgName>)[^<]*(</ProgName>)", "${1}AutoIt REB X31 Export${2}")
|
|
|
|
; =========================================================================
|
|
; SCHRITT 5: PrjInfo anpassen (nur wenn Parameter übergeben)
|
|
; =========================================================================
|
|
If $sRefPrjName <> "" Then
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<RefPrjName>)[^<]*(</RefPrjName>)", "${1}" & $sRefPrjName & "${2}")
|
|
EndIf
|
|
If $sRefPrjID <> "" Then
|
|
$sInhalt = StringRegExpReplace($sInhalt, "(<RefPrjID>)[^<]*(</RefPrjID>)", "${1}" & $sRefPrjID & "${2}")
|
|
EndIf
|
|
|
|
; =========================================================================
|
|
; SCHRITT 6: QtyDetermInfo GUID ersetzen
|
|
;
|
|
; BUG-FIX 1: Chr(34) statt " im Regex → kein String-Terminierungs-Problem
|
|
; BUG-FIX 2: ${1} und ${2} statt $1/$2 → GUID kann mit Ziffer beginnen!
|
|
; Beispiel: GUID "3a4b..." → "$13a4b..." → AutoIt liest "$13" = Gruppe 13!
|
|
; =========================================================================
|
|
Local $sNeueGUID = _GenerateGUID()
|
|
Local $sChr34 = Chr(34)
|
|
Local $sGUIDMuster = "(QtyDetermInfo\s+ID=" & $sChr34 & ")[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(" & $sChr34 & ")"
|
|
$sInhalt = StringRegExpReplace($sInhalt, $sGUIDMuster, "${1}" & $sNeueGUID & "${2}")
|
|
|
|
; =========================================================================
|
|
; SCHRITT 7: OWN-Name anpassen (optional)
|
|
; =========================================================================
|
|
If $sOwnerName <> "" Then
|
|
Local $aOWN = StringRegExp($sInhalt, "(<OWN>[\s\S]*?</OWN>)", 1)
|
|
If Not @error Then
|
|
Local $sOWNAlt = $aOWN[0]
|
|
Local $sOWNNeu = StringRegExpReplace($sOWNAlt, "(<Name1>)[^<]*(</Name1>)", "${1}" & $sOwnerName & "${2}")
|
|
$sInhalt = StringReplace($sInhalt, $sOWNAlt, $sOWNNeu)
|
|
EndIf
|
|
EndIf
|
|
|
|
; =========================================================================
|
|
; SCHRITT 8: CtlgAssignType entfernen
|
|
; =========================================================================
|
|
$sInhalt = StringRegExpReplace($sInhalt, "\s*<CtlgAssignType\s*/>", "")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "\s*<CtlgAssignType>[^<]*</CtlgAssignType>", "")
|
|
|
|
; =========================================================================
|
|
; SCHRITT 9: BVBS:Explanation entfernen
|
|
; =========================================================================
|
|
$sInhalt = StringRegExpReplace($sInhalt, "<BVBS:Explanation>[^<]*</BVBS:Explanation>", "")
|
|
|
|
; =========================================================================
|
|
; SCHRITT 10: Leere Items entfernen (Qty=0.000 ohne Mengennachweis)
|
|
; =========================================================================
|
|
Local $iMax = 30
|
|
While $iMax > 0
|
|
Local $sVorher = $sInhalt
|
|
$sInhalt = StringRegExpReplace($sInhalt, _
|
|
"<Item\s[^>]+>\s*<QtyDeterm>\s*<Qty>0[,.]000</Qty>\s*</QtyDeterm>\s*</Item>", "")
|
|
If $sInhalt = $sVorher Then ExitLoop
|
|
$iMax -= 1
|
|
WEnd
|
|
|
|
; =========================================================================
|
|
; SCHRITT 11: Leere Container bereinigen
|
|
; =========================================================================
|
|
$iMax = 10
|
|
While $iMax > 0
|
|
Local $sVorher = $sInhalt
|
|
$sInhalt = StringRegExpReplace($sInhalt, "<Itemlist>\s*</Itemlist>", "")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "<BoQBody>\s*</BoQBody>", "")
|
|
$sInhalt = StringRegExpReplace($sInhalt, "<BoQCtgy[^>]*>\s*</BoQCtgy>", "")
|
|
If $sInhalt = $sVorher Then ExitLoop
|
|
$iMax -= 1
|
|
WEnd
|
|
|
|
; =========================================================================
|
|
; SCHRITT 12: IDs neu nummerieren (sequenziell ab DF_1000001)
|
|
; =========================================================================
|
|
$sInhalt = _NummeriereIDs($sInhalt)
|
|
|
|
; =========================================================================
|
|
; SCHRITT 13: Zeilen-IDs neu vergeben
|
|
; PROBLEM: Dataflor vergibt Zeilen-IDs in der ERFASSUNGSREIHENFOLGE,
|
|
; nicht in der POSITIONS-Reihenfolge. California sortiert die Anzeige
|
|
; nach Zeilen-ID → Positionen erscheinen durcheinander.
|
|
; FIX: Alle Zeilen-IDs sequenziell neu vergeben in der Reihenfolge
|
|
; wie sie im XML stehen (= Reihenfolge der Positionen).
|
|
; =========================================================================
|
|
$sInhalt = _RenummeriereZeilenIDs($sInhalt)
|
|
|
|
; =========================================================================
|
|
; SCHRITT 14: XML formatieren
|
|
; =========================================================================
|
|
$sInhalt = _FormatXML($sInhalt)
|
|
|
|
; =========================================================================
|
|
; SCHRITT 15: Ausgabedatei mit UTF-8 BOM schreiben
|
|
; =========================================================================
|
|
Local $hDatei = FileOpen($sAusgabeDatei, 2 + 128) ; 2=ueberschreiben, 128=UTF-8 BOM
|
|
If $hDatei = -1 Then
|
|
MsgBox(16, "Fehler", "Konnte Ausgabedatei nicht erstellen:" & @CRLF & $sAusgabeDatei)
|
|
Return False
|
|
EndIf
|
|
FileWrite($hDatei, $sInhalt)
|
|
FileClose($hDatei)
|
|
|
|
;~ MsgBox(64, "Fertig", "Konvertierung abgeschlossen!" & @CRLF & @CRLF & "Ausgabe:" & @CRLF & $sAusgabeDatei)
|
|
Return True
|
|
EndFunc
|
|
|
|
; =============================================================================
|
|
; Zeilen-IDs in QTakeoff-Rows neu vergeben
|
|
; FORMAT: BBBBZZ (6 Zeichen, REB 23.003 Standard)
|
|
; BBBB = Blattnummer 0001-9999 (wird hochgezählt)
|
|
; ZZ = Zeilennummer A0 (fest) - gültiges Buchstabe+Ziffer-Format
|
|
;
|
|
; Ergebnis: 0001A0, 0002A0, 0003A0, ... streng aufsteigend
|
|
; ✓ 100% gültiges REB-Adressfeld (kein "unzulässig"-Fehler)
|
|
; ✓ Streng aufsteigend → California zeigt Positionen in richtiger Reihenfolge
|
|
; ✓ Eindeutig → keine Kollisionen
|
|
; ✓ Bis zu 9999 Zeilen pro Datei
|
|
; =============================================================================
|
|
Func _RenummeriereZeilenIDs($sXML)
|
|
Local $iBlatt = 1 ; Startet bei 0001, wird pro Zeile um 1 erhöht
|
|
|
|
Local $iPos = 1
|
|
While True
|
|
; Nächste QTakeoff Row finden
|
|
Local $iStart = StringInStr($sXML, 'QTakeoff Row="', 0, 1, $iPos)
|
|
If $iStart = 0 Then ExitLoop
|
|
|
|
Local $iRowStart = $iStart + 14
|
|
Local $iRowEnd = StringInStr($sXML, '"', 0, 1, $iRowStart)
|
|
If $iRowEnd = 0 Then ExitLoop
|
|
|
|
; Nur Standard-Rows mit 80 Zeichen verarbeiten
|
|
If ($iRowEnd - $iRowStart) = 80 Then
|
|
; Neue ID: Blattnummer vierstellig + "A0"
|
|
; Zeichen 70-75 (StringMid: 1-basiert, Position 70, Länge 6)
|
|
Local $sNeueID = StringFormat("%04d", $iBlatt) & "A0"
|
|
Local $sRow = StringMid($sXML, $iRowStart, 80)
|
|
Local $sRowNeu = StringLeft($sRow, 69) & $sNeueID & StringMid($sRow, 76)
|
|
|
|
; Zeile im XML ersetzen
|
|
$sXML = StringLeft($sXML, $iRowStart - 1) & $sRowNeu & StringMid($sXML, $iRowEnd)
|
|
$iBlatt += 1
|
|
EndIf
|
|
|
|
$iPos = $iRowStart + 1
|
|
WEnd
|
|
|
|
Return $sXML
|
|
EndFunc
|
|
|
|
; =============================================================================
|
|
; IDs sequenziell neu nummerieren
|
|
; =============================================================================
|
|
Func _NummeriereIDs($sXML)
|
|
Local $aAlleIDs = StringRegExp($sXML, 'ID="(DF_[0-9]+)"', 3)
|
|
If @error Then Return $sXML
|
|
|
|
Local $aEindeutig[0]
|
|
For $i = 0 To UBound($aAlleIDs) - 1
|
|
Local $bGefunden = False
|
|
For $j = 0 To UBound($aEindeutig) - 1
|
|
If $aEindeutig[$j] = $aAlleIDs[$i] Then
|
|
$bGefunden = True
|
|
ExitLoop
|
|
EndIf
|
|
Next
|
|
If Not $bGefunden Then
|
|
ReDim $aEindeutig[UBound($aEindeutig) + 1]
|
|
$aEindeutig[UBound($aEindeutig) - 1] = $aAlleIDs[$i]
|
|
EndIf
|
|
Next
|
|
|
|
For $i = 0 To UBound($aEindeutig) - 1
|
|
Local $sNeu = "DF_" & $g_iIdCounter
|
|
$g_iIdCounter += 1
|
|
$sXML = StringReplace($sXML, 'ID="' & $aEindeutig[$i] & '"', 'ID="' & $sNeu & '"')
|
|
Next
|
|
Return $sXML
|
|
EndFunc
|
|
|
|
; =============================================================================
|
|
; XML formatieren
|
|
; =============================================================================
|
|
Func _FormatXML($sXML)
|
|
$sXML = StringRegExpReplace($sXML, ">\s+<", ">" & @CRLF & "<")
|
|
|
|
$sXML = StringReplace($sXML, "<BoQBody>", "<BoQBody>" & @CRLF)
|
|
$sXML = StringReplace($sXML, "<Itemlist>", "<Itemlist>" & @CRLF)
|
|
$sXML = StringRegExpReplace($sXML, "(<BoQCtgy[^>]*>)", "${1}" & @CRLF)
|
|
$sXML = StringRegExpReplace($sXML, "(<Item [^>]*>)", "${1}" & @CRLF)
|
|
|
|
Local $aClose[5] = ["</BoQBody>", "</Itemlist>", "</BoQCtgy>", "</Item>", "</QtyDeterm>"]
|
|
For $i = 0 To 4
|
|
$sXML = StringReplace($sXML, $aClose[$i], @CRLF & $aClose[$i] & @CRLF)
|
|
Next
|
|
|
|
$sXML = StringReplace($sXML, "<QtyDeterm>", @CRLF & "<QtyDeterm>" & @CRLF)
|
|
|
|
While StringInStr($sXML, @CRLF & @CRLF & @CRLF)
|
|
$sXML = StringReplace($sXML, @CRLF & @CRLF & @CRLF, @CRLF & @CRLF)
|
|
WEnd
|
|
|
|
While StringLeft($sXML, 2) = @CRLF
|
|
$sXML = StringMid($sXML, 3)
|
|
WEnd
|
|
|
|
Return $sXML
|
|
EndFunc
|
|
|
|
; =============================================================================
|
|
; GUID generieren
|
|
; =============================================================================
|
|
Func _GenerateGUID()
|
|
Local $aTeile[5] = [8, 4, 4, 4, 12]
|
|
Local $sGUID = ""
|
|
For $i = 0 To 4
|
|
If $i > 0 Then $sGUID &= "-"
|
|
For $j = 1 To $aTeile[$i]
|
|
$sGUID &= StringLower(Hex(Random(0, 15, 1), 1))
|
|
Next
|
|
Next
|
|
Return $sGUID
|
|
EndFunc |