fortages
Новичок
- Сообщения
- 81
- Репутация
- 3
Доброго времени суток! Всех с наступившим Новым Годом!
Помогите, пожалуйста разобраться, в чем ошибка.
Есть папки
C:\Отчеты\Склад1\
C:\Отчеты\Склад2\
C:\Отчеты\Склад3\
C:\Отчеты\Склад4\
C:\Отчеты\Склад5\
В этих папках набор txt-вайлов.
Есть пять кнопок с названиями этих складов соответственно.
Есть функция _Search(), которая выводит перечень файлов в папке. (строка 38)
Как сделать так, чтобы по нажатию на кнопку "Склад №" функция поиска "смотрела" в другую папку?
Вот этот кусок кода не знаю, где разместить
То есть, получается как...
Нужно чтобы посмотрели в Склад1, выбрали там файлы, сформировали из них отчет кнопкой "В буфер", перешли в Склад2, выбрали там что-то, дозаписали...
А у меня - как задала в 31й строчке значение, так только оно и открывается, а кнопки другие не реагируют. :-\
Вот остальная часть кода.
Помогите пожалуйста правильно разместить условие с Case...
Помогите, пожалуйста разобраться, в чем ошибка.
Есть папки
C:\Отчеты\Склад1\
C:\Отчеты\Склад2\
C:\Отчеты\Склад3\
C:\Отчеты\Склад4\
C:\Отчеты\Склад5\
В этих папках набор txt-вайлов.
Есть пять кнопок с названиями этих складов соответственно.
Есть функция _Search(), которая выводит перечень файлов в папке. (строка 38)
Как сделать так, чтобы по нажатию на кнопку "Склад №" функция поиска "смотрела" в другую папку?
Вот этот кусок кода не знаю, где разместить
Код:
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Sklad1
$checked_theme = 'C:\Отчеты\Склад1\*.TXT'
Case $Sklad2
$checked_theme = 'C:\Отчеты\Склад2\*.TXT'
Case $Sklad3
$checked_theme = 'C:\Отчеты\Склад3\*.TXT'
Case $Sklad4
$checked_theme = 'C:\Отчеты\Склад4\*.TXT'
Case $Sklad5
$checked_theme = 'C:\Отчеты\Склад5\*.TXT'
EndSwitch
ExitLoop
WEnd
То есть, получается как...
Нужно чтобы посмотрели в Склад1, выбрали там файлы, сформировали из них отчет кнопкой "В буфер", перешли в Склад2, выбрали там что-то, дозаписали...
А у меня - как задала в 31й строчке значение, так только оно и открывается, а кнопки другие не реагируют. :-\
Вот остальная часть кода.
Помогите пожалуйста правильно разместить условие с Case...
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
Global $GUI = GUICreate('Список', 445, 616, 450, 32), $flag = 0
$Sklad1 = GUICtrlCreateButton("Склад 1", 8, 16, 75, 25, $WS_GROUP)
$Sklad2 = GUICtrlCreateButton("Склад 2", 96, 16, 75, 25, $WS_GROUP)
$Sklad3 = GUICtrlCreateButton("Склад 3", 184, 16, 75, 25, $WS_GROUP)
$Sklad4 = GUICtrlCreateButton("Склад 4", 272, 16, 75, 25, $WS_GROUP)
$Sklad5 = GUICtrlCreateButton("Склад 5", 360, 16, 75, 25, $WS_GROUP)
Global $LIST = GUICtrlCreateTreeView(8, 48, 425, 465,0x0100)
$NumberLabel = GUICtrlCreateLabel("Количество", 16, 528, 92, 17)
Global $NumberInput = GUICtrlCreateInput("", 128, 528, 201, 21)
$NumberOK = GUICtrlCreateButton("В буфер", 344, 528, 89, 25, $WS_GROUP)
$START = GUICtrlCreateButton("ОК", 16, 568, 161, 33, $WS_GROUP)
$ButtonExit = GUICtrlCreateButton("Выход", 272, 568, 161, 33, $WS_GROUP)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
;############################################
;----------------------------------------------------------
Global $checked_theme = 'C:\Отчеты\Склад1\*.TXT'
;Global $SEARCH = FileFindFirstFile($checked_theme)
;----------------------------------------------------------
_Search()
Func _Search()
Dim $A[1] = [0]
Global $SEARCH = FileFindFirstFile($checked_theme)
$COUNTER = 1
While True
$FILE = FileFindNextFile($SEARCH)
If @error Then ExitLoop
If $FILE = 'INFO.TXT' Then ContinueLoop ; пропускаем файл отчёта
$FAM = StringRegExpReplace($FILE, '^(.*)\.(.*)$', '\1')
ReDim $A[$COUNTER + 1]
$A[$COUNTER] = GUICtrlCreateTreeViewItem($FAM, $LIST)
$COUNTER += 1
WEnd
FileClose($SEARCH)
GUISetState()
While True
If $flag = 1 Then
$flag = 0
For $i = 0 To UBound($A) - 1
GUICtrlSetState($A[$i], $GUI_UNCHECKED)
Next
Local $numbercheck = GUICtrlRead($NumberInput)
If $numbercheck <> '' Then
For $i = 0 To $numbercheck
GUICtrlSetState($A[$i], $GUI_CHECKED)
Next
EndIf
EndIf
Switch GUIGetMsg()
Case -3
Exit
Case $START
$REPORT = FileOpen('список.txt', 2)
For $COUNTER = 0 To UBound($A) - 1
$STATE = GUICtrlRead($A[$COUNTER])
$FAM = GUICtrlRead($A[$COUNTER], 1)
If ($STATE = 1) Or ($STATE = 257) Then
$CURRENT = FileOpen($FAM & '.TXT', 0)
$TEXT = FileRead($CURRENT)
FileClose($CURRENT)
FileWrite($REPORT, $TEXT & @CRLF)
EndIf
Next
FileClose($REPORT)
Exit
;############################################
Case $ButtonExit
Exit
Case $NumberOK
MsgBox(0, "Запись в файл", "Запись в файл")
;############################################
EndSwitch
WEnd
EndFunc ;<=Search
Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
Local $nNotifyCode, $nID
$nNotifyCode = BitShift($iwParam, 16)
$nID = BitAND($iwParam, 0xFFFF)
Switch $hWnd
Case $GUI
Switch $nNotifyCode
Case $EN_CHANGE
Switch $nID
Case $NumberInput
$flag = 1
EndSwitch
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
GUISetState(@SW_SHOW)