#cs
Имя программы...: Online Market
Версия..........: 1.1
Автор...........: Max98
Назначение......: Программа для ведение учёта торговли и бухгалтерии
#ce
; Опции
Opt("GUICloseOnESC", 1)
Opt("TrayMenuMode", 3)
; Библиотеки
#include <Crypt.au3>
#include <GUIConstantsEx.au3>
#include <GUIStatusBar.au3>
#include <ListViewConstants.au3>
#include "GUIListViewINI.au3"
; Переменные и константы
Global $sUser
Global $INI_FILE = @ScriptDir & "\Settings.ini", $USER_FILE = @ScriptDir & "\User.ini", $USER_DECRYPT_FILE = @ScriptDir & "\UserDecrypt.ini"
Global $FIRM_NAME = IniRead($INI_FILE, "Firm", "Name", "Online Market")
Global $PROG_NAME = "Online Market", $PROG_VERSION = "1.1"
Global $sTitle = ""
Local $aStatusParts[4] = [3, 200, 400, -1]
Local $sDateTime = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
; Вход
Login()
; Системный трей
TrayCreateItem("Выход")
; GUI интерфейс
$hWindow = GUICreate($sTitle, 800, 600)
; Adlib
AdlibRegister("_DateTimeUpdate")
AdlibRegister("_ListMenuUpdate")
; Меню
$hFileMenu = GUICtrlCreateMenu("Файл")
$hMarketMenu = GUICtrlCreateMenu("Магазин")
$hHelpMenu = GUICtrlCreateMenu("Помощь")
$hSaveMarketReport = GUICtrlCreateMenuItem("Сохранить отчёт продаж", $hFileMenu)
$hSaveWarehouseReport = GUICtrlCreateMenuItem("Сохранить отчёт состояния склада", $hFileMenu)
; Вкладки
GUICtrlCreateTab(0, 0, 800, 600)
; Вкладка "Состояние склада"
GUICtrlCreateTabItem("Состояние склада")
; ListView
$hListView = GUICtrlCreateListView("Наименование |Ед. измерен. |Кол-во |Цена |Код ", 0, 20, 800, 537, -1, $LVS_EX_FULLROWSELECT + $LVS_EX_GRIDLINES)
_GUICtrlListViewINI_LoadFromFile($hListView, $INI_FILE, "Storehouse")
$hListMenu = GUICtrlCreateContextMenu($hListView)
$hAdd = GUICtrlCreateMenuItem("Добавить товар", $hListMenu)
$hEdit = GUICtrlCreateMenuItem("Редактировать товар", $hListMenu)
$hDel = GUICtrlCreateMenuItem("Удалить товар", $hListMenu)
$hAction = GUICtrlCreateMenuItem("Провести торговую операцию", $hListMenu)
; Вкладка "Торговля"
GUICtrlCreateTabItem("Торговля")
; Label
$hSummLabel = GUICtrlCreateLabel("0.00 руб.", 50, 50, 300, 100)
GUICtrlSetFont($hSummLabel, 36)
; Вкладка "Персонал"
GUICtrlCreateTabItem("Персонал")
; Вкладка "Документооброт"
GUICtrlCreateTabItem("Документооброт")
; Вкладка "Отчёты"
GUICtrlCreateTabItem("Отчёты")
GUISetState()
; StatusBar
$hStatus = _GUICtrlStatusBar_Create($hWindow, -1, "Вход выполнен")
_GUICtrlStatusBar_SetParts($hStatus, $aStatusParts)
_GUICtrlStatusBar_SetText($hStatus, "Пользователь: " & $sUser, 1)
_GUICtrlStatusBar_SetText($hStatus, $sDateTime, 2)
_GUICtrlStatusBar_SetText($hStatus, "Состояние: Ожидание действий пользователя", 3)
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $hAdd
_Add()
Case $hEdit
_Edit()
Case $hDel
_Del()
Case $hAction
_Action()
EndSwitch
WEnd
; Функция входа в программу
Func Login()
; Запрашиваем имя пользователя
$sUserName = InputBox('Фирма "' & $FIRM_NAME & '"', "Введите имя пользователя")
If @error Then Exit
; Запрашиваем пароль
$sPassword = InputBox('Фирма "' & $FIRM_NAME & '"', "Введите пароль", "", "*")
If @error Then Exit
; Расшифровываем файл с именами и паролями пользователей
_Crypt_DecryptFile($USER_FILE, $USER_DECRYPT_FILE, "Online Market", $CALG_RC4)
; Читаем настоящий пароль
$sOriginalPassword = IniRead($USER_DECRYPT_FILE, "User", $sUserName, "Online Market")
; Проверяем пароль
If $sPassword <> $sOriginalPassword Then
MsgBox(48, 'Фирма "' & $FIRM_NAME & '"', "Неправильное имя пользователя или пароль!")
Exit
EndIf
; Удаляем расшифрованный файл
FileDelete($USER_DECRYPT_FILE)
; Задаём имя пользователя
$sUser = $sUserName
; Задаём константы
$sTitle = 'Фирма "' & $FIRM_NAME & '" - ' & $sUser
; Объясняем пользователю, что вход произведён
MsgBox(64, 'Фирма "' & $FIRM_NAME & '"', "Вход выполнен. " & $sTitle)
EndFunc
Func _DateTimeUpdate()
If $sDateTime <> @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN Then
$sDateTime = @MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN
_GUICtrlStatusBar_SetText($hStatus, $sDateTime, 2)
EndIf
EndFunc
Func _ListMenuUpdate()
If _GUICtrlListView_GetSelectedIndices($hListView) = "" Then
GUICtrlSetState($hAdd, $GUI_DISABLE)
GUICtrlSetState($hEdit, $GUI_DISABLE)
GUICtrlSetState($hDel, $GUI_DISABLE)
GUICtrlSetState($hAction, $GUI_DISABLE)
Else
GUICtrlSetState($hAdd, $GUI_ENABLE)
GUICtrlSetState($hEdit, $GUI_ENABLE)
GUICtrlSetState($hDel, $GUI_ENABLE)
GUICtrlSetState($hAction, $GUI_ENABLE)
EndIf
EndFunc