Advertisement
Guest User

Untitled

a guest
Aug 15th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 5.28 KB | None | 0 0
  1. Func GroupWyslij()
  2.     If $FlagaGroupWyslij == 0 Then
  3.         GUICtrlSetColor($GButtonWyslij, 0xFF0000)
  4.         GUICtrlSetData($GButtonWyslij, "Wybierz stacje")        ;"Group Wyslij"
  5.         $FlagaGroupWyslij = 1
  6.     Else
  7.         GUICtrlSetColor($GButtonWyslij, 0x00000)
  8.         GUICtrlSetData($GButtonWyslij, "Group Wyslij")      ;"Group Wyslij"
  9.         $FlagaGroupWyslij = 0
  10.     EndIf
  11. EndFunc
  12.  
  13.  
  14. Func _InternalGroupWyslij($par)
  15.     ;-wypracowanie refzlecenie z parametru niestety nie ma nigdzie w tym momecie dostepnego odniesienia do zlecenia bezposrednio
  16.     ; trzeba to wypracowac z przekazanego parametru ktory jest odniesiem do stacji z linka B
  17.     ; Ustrawienie RefZlecenie jest niezbedne do odpalenia WinWX, RefZlecenie jest Global
  18.     $RefZlecenie = $par
  19.     If StringRight($par, 4) == "\BHP" Then $RefZlecenie = StringTrimRight($RefZlecenie, 4)
  20.     If StringRight($par, 3) == "\OŚ" Then $RefZlecenie = StringTrimRight($RefZlecenie, 3)
  21.     $poz = StringInStr($RefZlecenie, "\", 0, -1)
  22.     $stacja = StringTrimLeft($RefZlecenie, $poz)
  23.     $RefZlecenie = StringLeft($RefZlecenie, $poz-1)
  24.     ;MsgBox(0, "f", $RefZlecenie)
  25.     ;MsgBox(0, "f", $stacja)
  26.     WinWX()
  27.     ;-mamy odpalone okno win wx sprawdzony arkusz i policzone bhp i os teraz kawal kodu z edytuj status()
  28.     Show2CR("Sprawdzenie statusow...")
  29.     ;Sprawdzenie czy bhp i oś jest rowne ewentualnie bhp lub os jest rowne 0
  30.     If _Max($lbhp, $los) + _Min($lbhp, $los) <> _Max($lbhp, $los) AND $lbhp <> $los Then
  31.         ShowCR("BHP:" & $lbhp & "  OŚ:" & $los)
  32.         ShowCR("Niespelniony warunek.")
  33.         ShowCR("_Max($lbhp, $los) + _Min($lbhp, $los) <> _Max($lbhp, $los) AND $lbhp <> $los")
  34.         Return
  35.     EndIf
  36.     If $lbhp == 0 AND $los == 0 Then
  37.         ShowCR("BHP i OŚ = 0")
  38.         Return
  39.     EndIf
  40.     If $lbhp > $los Then $max = $lbhp
  41.     If $los > $lbhp Then $max = $los
  42.     If $los == $lbhp Then $max = $lbhp
  43.     Global $FlagaStatus = 0
  44.     ; 0 - same bhp,  1 - same os,  2 - bhp i os
  45.     If $lbhp > $los AND $los == 0 Then $FlagaStatus = 0
  46.     If $los > $lbhp AND $lbhp == 0 Then $FlagaStatus = 1
  47.     If $los == $lbhp Then $FlagaStatus = 2
  48.     Global $tab_stacje[$max]    ;tablica budowana na podstawie bhp
  49.     Dim $tab_stacje_2[$max]     ;tablica budowana na podtsawie os potrzebna do sprawdzenia poprawnosci kolejnosci
  50.     Global $tab_status[$max]
  51.     If $FlagaStatus == 0 OR $FlagaStatus == 1 Then
  52.         $index1 = 0
  53.         $oExcel = _ExcelBookOpen($RefZlecenie & "\Adresy i Numery Sprawozdan.xls",0,1)
  54.         For $wiersz=8 To 8 + $lbhp + $los + 2
  55.             $bo = _ExcelReadCell($oExcel, $wiersz, 2)
  56.             If $bo == "b" OR $bo == "B" OR $bo == "o" OR $bo == "O" Then
  57.                 $tab_stacje[$index1] = _ExcelReadCell($oExcel, $wiersz, 3)
  58.                 $tab_status[$index1] = _ExcelReadCell($oExcel, $wiersz, 4)
  59.                 $index1 += 1
  60.             EndIf
  61.         Next
  62.         _ExcelBookClose($oExcel, 0)
  63.     EndIf
  64.     If $FlagaStatus == 2 Then
  65.    
  66.         $index1 = 0
  67.         $index2 = 0
  68.         $oExcel = _ExcelBookOpen($RefZlecenie & "\Adresy i Numery Sprawozdan.xls",0,1)
  69.         For $wiersz=8 To 8 + $lbhp + $los + 2
  70.             $bo = _ExcelReadCell($oExcel, $wiersz, 2)
  71.             If $bo == "b" OR $bo == "B" Then
  72.                 $tab_stacje[$index1] = _ExcelReadCell($oExcel, $wiersz, 3)
  73.                 $tab_status[$index1] = _ExcelReadCell($oExcel, $wiersz, 4)
  74.                 $index1 += 1
  75.             EndIf
  76.  
  77.             If $bo == "o" OR $bo == "O" Then
  78.                 $tab_stacje_2[$index2] = _ExcelReadCell($oExcel, $wiersz, 3)
  79.                 $index2 += 1
  80.             EndIf
  81.         Next
  82.         _ExcelBookClose($oExcel, 0)
  83.         ;w tym momencie ilosc bhp i os jest znana i jest rowna bo zostalo to sprawdzone wczesniej
  84.         ;ale nie wiemy jak ulozone sa stacje w excelu. Poniewaz status jest obrabiany tylko na podstawie bhp
  85.         ;a statusy typu OS sa zapisywane w ciemno jako kopia BHP musimy byc pewni ze kolejnosc OS jest taka sama jak BHP
  86.         ;porownanie tablicy stacji bhp i os zalatwia sprawe
  87.         For $index = 0 To UBound($tab_stacje)-1
  88.             If $tab_stacje[$index] <> $tab_stacje_2[$index] Then
  89.                 ShowCR("Nieprawidlowe ulozenie stacji w EX.")
  90.                 ShowCR("Kolejnosc stacji BHP nie odpowiada kolejnosci OS.")
  91.                 Return
  92.             EndIf
  93.         Next
  94.     EndIf
  95.     ;_ArrayDisplay($tab_stacje , "#")
  96.     ;_ArrayDisplay($tab_status, "#")
  97.     ; kawalek kodu wykonany teraz mamy dwie tablice stacje i status i to nam potrzebne do dalszej roboty
  98.     $z = -1
  99.     For $index = 0 To UBound($tab_stacje)-1
  100.         If $tab_stacje[$index] == $stacja Then
  101.             ShowCR("Znaleziono " & $stacja & "  index: " & $index & "  Pozycja: " & $index+1)
  102.             $z = $index
  103.             ExitLoop
  104.         EndIf
  105.     Next
  106.     ;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
  107.     If $z = -1 Then
  108.         ShowCR("! Nie znaleziono " & $stacja & " Dziwna sprawa.")
  109.         Return
  110.     EndIf
  111.     ShowCR("Status: " & $tab_status[$z])
  112.     ;sprawdzenie czy wogole jest jakikolwiek status x jesli jest to nie mozna nic dalej robic bo x jest uzywany jako tymczasowy
  113.     For $index = 0 To UBound($tab_status)-1
  114.         If $tab_status[$index] == "x" Then
  115.             ShowCR("Znaleziono status x dla: " & $stacja & " Pozycja: " & $index & " Koniec.")
  116.             Return
  117.         EndIf
  118.     Next
  119.     ;zapamietanie statusow
  120.     Dim $zapamietane = $tab_status
  121.     ;ustawienie x
  122.     $tab_status[$z] = "x"
  123.     ;zapisywanie
  124.     ShowCR("Zapisywanie tymczasowych...")
  125.     _s_write_excel($tab_status)
  126.     ;all w Automat1() ;cdr all w Automat2() all w R Func Automat3() cdr all w R Func Automat4()
  127.     If StringInStr($RefZlecenie, "_K") <> 0 Then
  128.         Automat4()
  129.     Else
  130.         Automat3()
  131.     EndIf
  132.     ShowCR("Zapisywanie zapamietanych...")
  133.     _s_write_excel($zapamietane)
  134.     SendMail()
  135. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement