📄 possystem.h
字号:
#include <ncurses.h>
#include "linklist.h"
#include "OracleDB.h"
#ifndef POSSYSTEM_H
#define POSSYSTEM_H
enum IsBorder{Yes,No};
enum Colore_Index{
Default,//默认不带有颜色
WHITE_BLACK,//白底黑字
BLACK_WHITE,//黑底白字
BLUE_WHITE,//蓝底白字
RED_WHITE,//红底白字
WHITE_RED,//白底红字
RED_BLACK//红底黑字
};
enum Dialog_Button_Index{
Button_Yes,//只有'是'按钮
Button_YesAndNo//有'是'跟'否'按钮
};
struct configInfo
{
char keyname[128];
char value[128];
};
typedef struct
{
char no[20];
}BillID;
#endif
WINDOW* CreateWindow(int hight,int width,int startY,int startX,enum IsBorder isBorder,enum Colore_Index index);
void printhline(WINDOW * win,int hight,int startY,int startX);
int GetStringLevelPrintSit(WINDOW * win,char * str);
void DestroyWindow(WINDOW * win);
int GetChar(WINDOW * win ,int startY,int startX);
//从指定窗口的指定位置读取指定个数的字符
int GetString(WINDOW * win,int startY,int startX,char *str,int strMaxLen);
void StringCenterPrint(WINDOW * win,int startY,char * str);//取得字符串
int GetPasswordString(WINDOW * win,int startY,int startX,char *str,int strMaxLen);//取得密码字符串
WINDOW * CreateButtonWindow(int startY,int startX,enum IsBorder isBorder,enum Colore_Index coloreIndex,char * str);
void IntoButtonWindow(WINDOW * win,enum Colore_Index coloreIndex);
void LeaveButtonWindow(WINDOW * win,enum Colore_Index coloreIndex);
//添加明细
int Add_List(int startY,int startX,saleProduct * salePro);
//新增明细窗口
int NewListWindow(int startY,int startX,char * title,char * barcode,int * amount);
//删除明细
int Del_List(int startY,int startX,saleProduct * salePro);
//删除明细窗口
int DelListWindow(int startY,int startX,char * title,saleProduct * salePro,int * amount);
//int NewListWindow(int startY,int startX,char * title);
int Message_Box(int hight,int width,int startY,int startX,enum Colore_Index coloreIndex,char *title,char * message);
//结帐窗口
int Reckoning_Window(int startY,int startX,float totalmoney);
int InputAdminPwdWin(int startY,int startX);
//退货窗口
int ReturningAProductWin(int startY,int startX);
int DialogWindow(int hight,int width,int startY,int startX,char * message,enum Colore_Index coloreIndex);
//Pos机的结帐窗口
int CreatePosReckoningWindow();
//登入窗口
int CreateLoginWindow(int higth,int width,int startY,int startX);
//取系统时间字符串
void GetSystemTime(char * timeString);
//读取配制文件 返回1就是读取失败 0就是成功 第一个参数是数据要存的指针,第二个是最多读取信息数 第三个指向是用来返回最终读取了多少条信息
int ReadConfigInfo(struct configInfo * config,int maxReadCount,int *alreadyReadCount);
//将选项反白
void option_reverse(WINDOW* win,int lines,int dir,int *cur,LINKLIST* linklist);
//取得任意数据指针
void * GetNodeData(LINKLIST* linklist,int cur);
//这边这两个函数是一对使用
int GetRollBill(int startY,int startX);
void ListOption_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);
//将产品结构转换成出售商品结构
void ConverToSaleRec(product * pro,saleProduct * sale,int amount);
//出售商品反白
void saleRecord_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);
//取单对话框
int HangBillDialog(int startY,int startX,LINKLIST *billList);
//挂单项反白显示
void HandBillItem_reverse(WINDOW* win,int cursorLocation,int currentRecNo,LINKLIST* linklist);
//撤消挂单
int Cancle_Hang_Bill_Dialog(int startY,int startX,LINKLIST *billList);
/////////////////////////////////////////////////////////////
// 后台管理函数
//////////////////////////////////////////////////////////////////////////
//后台管理入口函数
int BackgroundManager();
//后台管理主窗口
int BackgroundManagerWin();
//在指定窗口的指定位置打印出反白字符串
void StringRevers(WINDOW *win,int startY,int startX,char * str);
//////////////////////////////////////////////////////////////////////////
// 商品管理
//////////////////////////////////////////////////////////////////////////
//帐户管理入口函数
int CommodityManager();
//帐户管理主窗口
int CommodityManagerWin();
//商品添加窗口
int AddCommodityManagerWin();
//修改商品窗口
int ModifyCommodityWin(char * bar_code,product * productInfo);
//商品条码输入窗口
int CommodityBarCodeInputWin(char * title,char * barcodeStr,product * productInfo);
//商品分页显示窗口
int CommodityPaginationShowWin();
//商品分页显示窗口
int CommodityPaginationShowWin();
//打印商品信息 参数recordNum是代表每页显示多少条记录
void PrintProductInfo(WINDOW * win,int pageNumber,int recordNum);
//////////////////////////////////////////////////////////////////////////
// 帐户管理
//////////////////////////////////////////////////////////////////////////
//帐户管理入口函数
int AccountManager();
//添加帐户窗口
int AccountManagerWin();
int AddAccountWin();
//修改帐户窗口
int ModifyAccountWin();
//帐户ID输入窗口
int AccountIDInputWin(char * title,char * staff_id,staff * pStaff);
//打印帐户信息 参数recordNum是代表每页显示多少条记录
void PrintStaffInfo(WINDOW * win,int pageNumber,int recordNum);
//帐户分页显示窗口
int StaffPaginationShowWin();
//////////////////////////////////////////////////////////////////////////
// 销售管理
//////////////////////////////////////////////////////////////////////////
//销售管理入口函数
int VenditionManager();
//销售管理窗口
int VenditionManagerWin();
//销售日期查询窗口
int SearchVenditionByDateWin();
//按帐户ID查询销售的窗口
int SearchVenditionByAccountIDWin();
//////////////////////////////////////////////////////////////////////////
//判断是否为空
int isNull(char* str);
//取得单精度的字符串,返回特殊键码
int GetFloat(WINDOW * win,int startY,int startX,char *str,int strMaxLen);
//取得数字字符串,返回特殊键码
int GetNumber(WINDOW * win,int startY,int startX,char *str,int strMaxLen);
//判断一个浮点型输入是否符合大于min,小于max,格式是否正确,正确返回1,格式错或为空返回0,太小返回-1,太大返回-2
int Float_Input_Validate(char *floatnum,float min,float max);
//判断一个数字型输入是否符合大于min,小于max,正确返回1,格式错或为空返回0,太小返回-1,太大返回-2
int Int_Input_Validate(char *floatnum,int min,int max);
//只允许字母和空格,符合返回1,不符返回0,太短返回-1,太长返回-2
int Char_Input_Validate(char *str,int min,int max);
//判断字符串min内是否为结束符,为结束符返回假
int Input_Short(char *str,int min);
//验证money(前提是屏蔽输入非法字符,只允许输入0-9和。)
int isFloat(char* str);
//按日期查询销售窗口
int SearchSaleByDateShowWin(char * startdate,char * enddate);
//按员工编号查询销售窗口
int SearchSaleByStaffIDShowWin(char * staff_id);
//判断是否是闰年
int IsLeapYear(int year);
//验证数值是否在给定范围
int CheckRange(int value,int start,int end);
//返回 1代表年错误 2代表月错误 ,3代表日错误
int checkDate(int year,int month, int day);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -