Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Func GroupWyslij()
- If $FlagaGroupWyslij == 0 Then
- GUICtrlSetColor($GButtonWyslij, 0xFF0000)
- GUICtrlSetData($GButtonWyslij, "Wybierz stacje") ;"Group Wyslij"
- $FlagaGroupWyslij = 1
- Else
- GUICtrlSetColor($GButtonWyslij, 0x00000)
- GUICtrlSetData($GButtonWyslij, "Group Wyslij") ;"Group Wyslij"
- $FlagaGroupWyslij = 0
- EndIf
- EndFunc
- Func _InternalGroupWyslij($par)
- ;-wypracowanie refzlecenie z parametru niestety nie ma nigdzie w tym momecie dostepnego odniesienia do zlecenia bezposrednio
- ; trzeba to wypracowac z przekazanego parametru ktory jest odniesiem do stacji z linka B
- ; Ustrawienie RefZlecenie jest niezbedne do odpalenia WinWX, RefZlecenie jest Global
- $RefZlecenie = $par
- If StringRight($par, 4) == "\BHP" Then $RefZlecenie = StringTrimRight($RefZlecenie, 4)
- If StringRight($par, 3) == "\OŚ" Then $RefZlecenie = StringTrimRight($RefZlecenie, 3)
- $poz = StringInStr($RefZlecenie, "\", 0, -1)
- $stacja = StringTrimLeft($RefZlecenie, $poz)
- $RefZlecenie = StringLeft($RefZlecenie, $poz-1)
- ;MsgBox(0, "f", $RefZlecenie)
- ;MsgBox(0, "f", $stacja)
- WinWX()
- ;-mamy odpalone okno win wx sprawdzony arkusz i policzone bhp i os teraz kawal kodu z edytuj status()
- Show2CR("Sprawdzenie statusow...")
- ;Sprawdzenie czy bhp i oś jest rowne ewentualnie bhp lub os jest rowne 0
- If _Max($lbhp, $los) + _Min($lbhp, $los) <> _Max($lbhp, $los) AND $lbhp <> $los Then
- ShowCR("BHP:" & $lbhp & " OŚ:" & $los)
- ShowCR("Niespelniony warunek.")
- ShowCR("_Max($lbhp, $los) + _Min($lbhp, $los) <> _Max($lbhp, $los) AND $lbhp <> $los")
- Return
- EndIf
- If $lbhp == 0 AND $los == 0 Then
- ShowCR("BHP i OŚ = 0")
- Return
- EndIf
- If $lbhp > $los Then $max = $lbhp
- If $los > $lbhp Then $max = $los
- If $los == $lbhp Then $max = $lbhp
- Global $FlagaStatus = 0
- ; 0 - same bhp, 1 - same os, 2 - bhp i os
- If $lbhp > $los AND $los == 0 Then $FlagaStatus = 0
- If $los > $lbhp AND $lbhp == 0 Then $FlagaStatus = 1
- If $los == $lbhp Then $FlagaStatus = 2
- Global $tab_stacje[$max] ;tablica budowana na podstawie bhp
- Dim $tab_stacje_2[$max] ;tablica budowana na podtsawie os potrzebna do sprawdzenia poprawnosci kolejnosci
- Global $tab_status[$max]
- If $FlagaStatus == 0 OR $FlagaStatus == 1 Then
- $index1 = 0
- $oExcel = _ExcelBookOpen($RefZlecenie & "\Adresy i Numery Sprawozdan.xls",0,1)
- For $wiersz=8 To 8 + $lbhp + $los + 2
- $bo = _ExcelReadCell($oExcel, $wiersz, 2)
- If $bo == "b" OR $bo == "B" OR $bo == "o" OR $bo == "O" Then
- $tab_stacje[$index1] = _ExcelReadCell($oExcel, $wiersz, 3)
- $tab_status[$index1] = _ExcelReadCell($oExcel, $wiersz, 4)
- $index1 += 1
- EndIf
- Next
- _ExcelBookClose($oExcel, 0)
- EndIf
- If $FlagaStatus == 2 Then
- $index1 = 0
- $index2 = 0
- $oExcel = _ExcelBookOpen($RefZlecenie & "\Adresy i Numery Sprawozdan.xls",0,1)
- For $wiersz=8 To 8 + $lbhp + $los + 2
- $bo = _ExcelReadCell($oExcel, $wiersz, 2)
- If $bo == "b" OR $bo == "B" Then
- $tab_stacje[$index1] = _ExcelReadCell($oExcel, $wiersz, 3)
- $tab_status[$index1] = _ExcelReadCell($oExcel, $wiersz, 4)
- $index1 += 1
- EndIf
- If $bo == "o" OR $bo == "O" Then
- $tab_stacje_2[$index2] = _ExcelReadCell($oExcel, $wiersz, 3)
- $index2 += 1
- EndIf
- Next
- _ExcelBookClose($oExcel, 0)
- ;w tym momencie ilosc bhp i os jest znana i jest rowna bo zostalo to sprawdzone wczesniej
- ;ale nie wiemy jak ulozone sa stacje w excelu. Poniewaz status jest obrabiany tylko na podstawie bhp
- ;a statusy typu OS sa zapisywane w ciemno jako kopia BHP musimy byc pewni ze kolejnosc OS jest taka sama jak BHP
- ;porownanie tablicy stacji bhp i os zalatwia sprawe
- For $index = 0 To UBound($tab_stacje)-1
- If $tab_stacje[$index] <> $tab_stacje_2[$index] Then
- ShowCR("Nieprawidlowe ulozenie stacji w EX.")
- ShowCR("Kolejnosc stacji BHP nie odpowiada kolejnosci OS.")
- Return
- EndIf
- Next
- EndIf
- ;_ArrayDisplay($tab_stacje , "#")
- ;_ArrayDisplay($tab_status, "#")
- ; kawalek kodu wykonany teraz mamy dwie tablice stacje i status i to nam potrzebne do dalszej roboty
- $z = -1
- For $index = 0 To UBound($tab_stacje)-1
- If $tab_stacje[$index] == $stacja Then
- ShowCR("Znaleziono " & $stacja & " index: " & $index & " Pozycja: " & $index+1)
- $z = $index
- ExitLoop
- EndIf
- Next
- ;jesli $z zostalo -1 to znaczy ze nic nie znaleziono i mamy dziwny przypadek gdzie baza tworzona na podstawie excela wskazala na stacje ktorej nie ma w tym excelu
- If $z = -1 Then
- ShowCR("! Nie znaleziono " & $stacja & " Dziwna sprawa.")
- Return
- EndIf
- ShowCR("Status: " & $tab_status[$z])
- ;sprawdzenie czy wogole jest jakikolwiek status x jesli jest to nie mozna nic dalej robic bo x jest uzywany jako tymczasowy
- For $index = 0 To UBound($tab_status)-1
- If $tab_status[$index] == "x" Then
- ShowCR("Znaleziono status x dla: " & $stacja & " Pozycja: " & $index & " Koniec.")
- Return
- EndIf
- Next
- ;zapamietanie statusow
- Dim $zapamietane = $tab_status
- ;ustawienie x
- $tab_status[$z] = "x"
- ;zapisywanie
- ShowCR("Zapisywanie tymczasowych...")
- _s_write_excel($tab_status)
- ;all w Automat1() ;cdr all w Automat2() all w R Func Automat3() cdr all w R Func Automat4()
- If StringInStr($RefZlecenie, "_K") <> 0 Then
- Automat4()
- Else
- Automat3()
- EndIf
- ShowCR("Zapisywanie zapamietanych...")
- _s_write_excel($zapamietane)
- SendMail()
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement