Что нового

Пишем торговую программу

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
axlwor [?]
тема холиварная
в чем ее "холиварность"?

люди, подождите ответа автора, что за неестественная активность? пишите лучше скрипты ;D
 

axlwor

Скриптер
Сообщения
657
Репутация
147
разные мнения. кто-то точно знает что лучше писать самому, кто-то - использовать готовое
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
axlwor [?]
слабоват для холивара. Windows vs Linux, FF vs IE/Opera/..., Intel vs AMD, KDE vs Gnome, и т.д. и т.п., вот настоящие темы для холивара. а это так, самая обычная и банальная конфронтация двух альтернатив.
 
Автор
M

Max98

Новичок
Сообщения
45
Репутация
3
Появились первые, хоть и скромные наработки. А, чуть не забыл: придумал название для программы - Online Market.

Код:
#cs
Имя программы...: Online Market
Версия..........: 1.1
Автор...........: Max98
Назначение......: Программа для ведение учёта торговли и бухгалтерии
#ce

; Опции
Opt("GUICloseOnESC", 1)
Opt("TrayMenuMode", 3)

; Библиотеки
#include <Crypt.au3>
#include <GUIConstantsEx.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 = ""

; Вход
Login()

; Системный трей
TrayCreateItem("Выход")

; GUI интерфейс
GUICreate($sTitle, 800, 600)
GUISetState()

; Меню
$hFileMenu = GUICtrlCreateMenu("Файл")
$hMarketMenu = GUICtrlCreateMenu("Магазин")
$hHelpMenu = GUICtrlCreateMenu("Помощь")
$hSaveMarketReport = GUICtrlCreateMenuItem("Сохранить отчёт продаж", $hFileMenu)
$hSaveWarehouseReport = GUICtrlCreateMenuItem("Сохранить отчёт состояния склада", $hFileMenu)

While True
	Switch GUIGetMsg()
	Case $GUI_EVENT_CLOSE
		Exit
	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

Понимаю, что продвигаюсь очень медленно. Просто на разработку не всегда хватает времени. ;D

Продолжение следует... ;D
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
С такими темпами ты её закончишь 21.12.2012, что и станет для земли концом света ;D
 

armenxxx1

Продвинутый
Сообщения
155
Репутация
56
Почему бы не использовать в качестве базы данных регистров Windows ? Или просто reg файл... Затем сделать графический интерфейс, который может быть обработан записей...
 
Автор
M

Max98

Новичок
Сообщения
45
Репутация
3
Подразработал программу.

Код:
#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
 
Верх