📄 syspublic.~pas
字号:
unit SysPublic;
interface
uses Windows, Messages, dxDBGrid, dxDBTL, dxDBCtrl, SysUtils, Dialogs, Forms,
Classes, Variants, dxEditor, dxCntner, dxEdLib, dxTL, StdCtrls, dxDBELib, Db,
ADODB, VCLUnZip, VCLZip, Controls, WinSock, ShellApi, jpeg, graphics, TypInfo,
ExtCtrls, ComObj, KsSkinLabels, KsSkinPanels, KsSkinButtons, KsSkinForms,
KsSkinCheckBoxs, KsSkinGroupBoxs, KsSkinListBoxs, KsSkinTabs,
KsSkinSpinButtons, sncCurrency, KsSkinEdits, dxBar, ComCtrls, IdSMTP,
IdMessage, AgentObjects_TLB, dxGrClms, dxDBTLCl, ListBoxForm, SysReset,
se_controls;
const
{系统所有全局常量}
//软件发布
HTTP_WWW_NAME = 'LEONDC软件';
SOFTWARE_CAPTION = 'LEONDC财务进销存2003';
SOFTWARE_ECAPTION = 'WinSale';
SOFTWARE_VERSION_NET = 1; //是否是网络版, 1为单机版,2为网络版
SOFTWARE_USER_NUMBER = 1; //软件用户数量,为1是代表单机版
SOFTWARE_VERSION_MODE = 2; //软件版本1为财务版2为进销存版3为餐饮版4为超市版
SOFTWARE_VERSION_NUM = 428; //软件版本号
DEBUG_FILE = 'Debug.ini'; //调试时不出现各种图形
//加密串
GENERAL_REGISTER_CODE = 'WSQL-2003-9561-0423-951U-BXRO';
//为测试期增加用户所设正式发行一定要删去
ENCRYPT_KEY = '钥匙';
//保存主菜单
MENU_SAVE_INI = 'STMainMenu.dll';
//系统文件定义
FILE_LOGIN_DATA = 'LoginDB.mdb';
FILE_ACCESS_DLL = 'MainDB.mdb';
FILE_WWW = 'WinWWW';
FILE_SKINS = 'WinSkins';
FILE_START_PIC = 'LoginPic.jpg';
FILE_DESKTOP_PIC = 'Desktop.jpg';
FILE_AGENT = 'ROCKY.ACS';
FILE_BACKUP_DIR = 'Backup';
FILE_SAVE_DIR = 'Save';
FILE_DATA_DIR = 'Data';
FILE_DATA_TAIL = '.RDB';
ACCESS_DB_PASSWORD = 'ren28939';
HTTP_WWW_LINK = 'http://www.SQLVC.com';
ROOT_PASSWORD = 'ren28939'; //万能密码
ROOT_NAME = '系统管理员'; //超级用户名称
//小数位数
FORMAT_2 = '0.00';
FORMAT_4 = '0.0000';
//基础资料{10-20}
BASE_AREA = 11;
BASE_DEPT = 12;
BASE_EMPLOYE_SORT = 13;
BASE_LEARNING = 14;
BASE_CASH_BANK = 15;
BASE_WARE_SORT = 16;
BASE_WARE_UNIT = 17;
BASE_INCOME_TYPE = 18;
BASE_CURRENCY_STYLE = 19;
BASE_INCOME_SORT = 20;
BASE_CHANGE_TYPE = 21;
BASE_NARRATE = 22;
BASE_STOCK_ORDER = 23; //库存批次
//固定资产
BASE_FIXED_SORT = 31;
BASE_FIXED_MODE = 32;
BASE_FIXED_USE = 33;
//复杂基础资料{20-30}
BASE_CLIENT = 41;
BASE_PROVIDE = 42;
BASE_EMPLOYE = 43;
BASE_WARE = 44;
BASE_DEPOT = 45;
BASE_SUBJECT = 46; //会计科目
//固定资产
BASE_FIXED_ADD = 51;
BASE_FIXED_DEC = 52;
BASE_FIXED_WORK = 53;
BASE_FIXED_DEPRECIATE = 54;
BASE_FIXED_UN_DEPRECIAT = 55;
//工资管理
BASE_WAGE_KIND = 56; //种类
BASE_WAGE_PROCEDURE = 57; //工序
BASE_WAGE_ITEM = 58; //工资项目
WAGE_DATA_INPUT = 59; //工资数据录入
//进货单编辑{100-110}
STOCK_EDIT_BEGIN = 100;
STOCK_ORDER_EDIT = 101; //进货订单
STOCK_FORMAL_EDIT = 102; //进货单
STOCK_MONEY_EDIT = 103; //进货付款单
STOCK_BACK_EDIT = 104; //进货退货单
STOCK_EDIT_END = 110;
//销售单编辑{110-120}
SALE_EDIT_BEGIN = 110;
SALE_ORDER_EDIT = 111; //销售订单
SALE_FORMAL_EDIT = 112; //销售单
SALE_MONEY_EDIT = 113; //销售收款单
SALE_READY_EDIT = 114; //现款销售单
SALE_BACK_EDIT = 115; //销售退货单
SALE_POS_EDIT = 116; //零售单(POS)
SALE_EDIT_END = 120;
//库存单据
EXIST_EDIT_BEGIN = 120;
EXIST_DRAW = 121; //领料单
EXIST_RETURN = 122; //退料单
EXIST_LOSING = 123; //报损单
EXIST_INCREASE = 124; //报溢单
EXIST_PRESENT = 125; //赠送单
EXIST_GAIN = 126; //获赠单
EXIST_ENTER_DEPOT = 127; //产品进仓
EXIST_CHECK_LIST = 128; //库存盘点
EXIST_CHANGE_PRICE = 129; //存货调价
EXIST_EXCHANGE = 130; //仓库调拨
EXIST_PRICE_EXCHANGE = 131; //变价调拨
EXIST_ASSEMBLY = 132; //组装拆卸
EXIST_OTHER = 133; //库存变动
EXIST_EDIT_END = 139;
//钱流单据
MONEY_EDIT_BEGIN = 139;
MONEY_EXPENSES = 140; //其它费用单
MONEY_INCOME = 141; //其它收入单
MONEY_DEPOSIT = 142; //银行存取款
MONEY_EDIT_END = 145;
//进货单查询{150-160}
STOCK_ORDER_BILL = 151;
STOCK_FORMAL_BILL = 152;
STOCK_MONEY_BILL = 153;
STOCK_BACK_BILL = 154;
ALL_STOCK_BILL = 155;
//销售单查询{160-170}
SALE_ORDER_BILL = 161;
SALE_FORMAL_BILL = 162;
SALE_MONEY_BILL = 163;
SALE_READY_BILL = 164;
SALE_BACK_BILL = 165;
SALE_POS_BILL = 116;
ALL_SALE_BILL = 167;
//库存单据查询
EXIST_DRAW_BILL = 168;
EXIST_RETURN_BILL = 169;
EXIST_LOSING_BILL = 170;
EXIST_INCREASE_BILL = 171;
EXIST_PRESENT_BILL = 172;
EXIST_GAIN_BILL = 173;
EXIST_ENTER_DEPOT_BILL = 174;
EXIST_CHECK_LIST_BILL = 175;
EXIST_CHANGE_PRICE_BILL = 176;
EXIST_EXCHANGE_BILL = 177;
EXIST_PRICE_EXCHANGE_BILL = 178;
EXIST_ASSEMBLY_BILL = 179;
EXIST_OTHER_BILL = 180;
ALL_EXIST_BILL = 181;
//钱流单据查询
MONEY_EXPENSES_BILL = 182;
MONEY_INCOME_BILL = 183;
MONEY_DEPOSIT_BILL = 184;
ALL_MONEY_BILL = 185;
//记账凭证
ACCOUNT_VOUCHER_EDIT = 190;
ACCOUNT_VOUCHER_QUERY = 191;
//单据配置
BILL_ALL_SETUP = 200;
//各种查询统计
WARE_STOCK_QUERY = 301; //商品库存统计表
WARE_STOCK_DISTRIBUTE = 302; //商品库存统计表
WARE_STOCK_PRICE_EDIT = 303; //商品物价管理
WARE_STOCK_EDIT = 304; //期初库存修改
//------------------------------------
WARE_STOCK_ORDER_COLLECT = 311; //商品采购订单汇总表
EMPLOYE_STOCK_ORDER_COLLECT = 312; //业务员采购订单汇总表
CLIENT_STOCK_ORDER_COLLECT = 313; //供应商供货订单汇总表
//------------------------------------
WARE_SALE_ORDER_COLLECT = 314; //商品销售订单汇总表
EMPLOYE_SALE_ORDER_COLLECT = 315; //业务员销售订单汇总表
CLIENT_SALE_ORDER_COLLECT = 316; //客户销售订单汇总表
//------------------------------------
EMPLOYE_STOCK_COLLECT = 321; //业务员采购汇总表
WARE_STOCK_COLLECT = 322; //商品采购汇总表
PROVIDE_STOCK_COLLECT = 323; //供应商供货汇总表
EMPLOYE_STOCK_DETAILED = 324; //业务员采购明细表
WARE_STOCK_DETAILED = 325; //商品采购明细表
PROVIDE_STOCK_DETAILED = 326; //供应商供货明细表
//------------------------------------
WARE_SALE_COLLECT = 331; //商品销售汇总表
EMPLOYE_SALE_COLLECT = 332; //业务员销售汇总表
CLIENT_SALE_COLLECT = 333; //客户销售汇总表
WARE_SALE_DETAILED = 334; //商品销售明细表
EMPLOYE_SALE_DETAILED = 335; //业务员销售明细表
CLIENT_SALE_DETAILED = 336; //客户销售明细表
//------------------------------------
WARE_SALE_PROFIT = 341; //商品销售利润表
EMPLOYE_SALE_PROFIT = 342; //业务员销售利润表
CLIENT_SALE_PROFIT = 343; //客户销售利润表
//-------------------------------------
CLIENT_RECEIPT_QUERY = 345; //客户应收查询
PROVIDE_PAYABLE_QUERY = 346; //供应商应付查询
CLIENT_RECEIPT_DETAILED = 347; //应收款明细
PROVIDE_PAYABLE_DETAILED = 348; //应付款明细
//-------------------------------------
QUERY_FIXED_BILL = 351; //固定资产清单
QUERY_FIXED_DEPRECIATE = 352; //固定资产折旧表
QUERY_FIXED_PILE_DEPRECIATE = 353; //固定资产累计折旧余额表
QUERY_FIXED_WORK = 354; //固定资产工作量查询
//-------------------------------------
QUERY_WAGE_LEARNING = 355; //员工结构分析
QUERY_WAGE_PRINT_BAR = 356; //打印工资条
QUERY_WAGE_PRINT_TAB = 357; //打印工资发放表
QUERY_WAGE_PRINT_SUM = 358; //打印工资汇总表
//-------------------------------------
//权限控制用
CHANGE_PASSWORD = 360; //修改密码
OPERATE_LOG = 361; //操作日志
ACCOUNT_INFO = 362; //账套选项
SET_START_ACCOUNT = 363; //启用账套
USER_LIMIT_FORM = 364; //权限控制
SYSTEM_RESET = 365; //系统重建
ACCOUNT_START = 367; //启用账套
//-------------------------------------
//控件风格
STYLE_FLAT = 1;
STYLE_3D = 2;
STYLE_WEB = 3;
//与PrinForm中的常量对应
SHOW_REPORT = 1;
PRINT_REPORT = 2;
DESIGN_REPORT = 3;
INITI_REPORT = 4;
type
TGridREC = record
BandColor: TColor;
HeaderColor: TColor;
Color: TColor;
LookAndFeel: TdxLookAndFeel;
end;
var
SYSAccountBookPath, SYSAccountBookName: string; //账套路径、名称
SYSStartDate: TDateTime; //登陆时开始时间
lLoginAccountID: Integer = 0; //登陆的账套ID号
LoginEmployeID: Integer = 0; //登陆的职员ID号
LoginEmployeName: string = ''; //登陆的职员名称
bAdministrator: Boolean = False; //是否为系统管理员
bStartAccount: Boolean = False; //是否是开账壮态
bUseTwoUnit: Boolean = False; //是否使用双单位
GridREC: TGridREC; //表格参数变量定义
lGB23_BIG5: Integer = 0; //内码模式0为简体1为繁体
bSoftRegister: Boolean = False; //是否为注册版
bUseAgent, bExistAgent: Boolean; //是否使用助手
Peedy: IAgentCtlCharacter; //全局助手变量
Request: IAgentCtlreQuest; //全局助手变量
UserID: string; //用户ID 2003-06-02 PZX
//升级版本要做的事
function UpdateSoftVar: Boolean;
//所有基础资料选择
function BaseSelect(lMode, lSelect: Integer; sFilter: string; lParentMode:
Integer = 0; lOneRet: Integer = 0; sPlusSQL: string = ''): string; //资料选择
//所有单据资料选择
function BillSelect(lMode: Integer; lSelect: Integer = 0; bRead: Boolean = False): string;
//更新单位应收应付
function UpdateUnitARTotal(lTrans, lUnitID, lPeriod: Integer; dDate: TDateTime;
dARTotal, dDoARTotal: Double): Boolean;
//更新库存
function UpdateStock(lTrans, lWareID, lDepotID: Integer; dNumber, dPrice,
dTotal: Double; sStockDB: string = 'WareStock'): Boolean;
//所有查询统计
function QuerySelect(lMode, lTree: Integer; sFilterID: string = ''): string;
//打印窗口
function PrintForm(Form1: TForm; lTitle1, lMode1: Integer; sFile1: string;
sChart1: string = ''): Boolean;
//账套管理
function LoginShow(sMode: string): Boolean;
//得到字段对应的值
function FieldToValue(sAllField, sAllValue, sField: string): string;
//返回带','逗号定符串的几号值
function GetCommaStr(sComma: string; lBit: Integer): string;
//返回带','逗号定符串的值的个数
function GetCommaStrCount(sComma: string): Integer;
//去多余的','
function TrimCommaStr(sComma: string): string;
//返回SQL可用字段加[]
function CommaStrToSQLField(sComma: string): string;
//设置GRID字段
function StrToGridField(Grid1: TdxDBGrid; sFieldName, sCaption, sWidth: string; sMask: string = ''): Boolean;
//设置Grid双表头
function StrToGridBand(dxGrid: TdxDBGrid; sCaption, sBandIndex: string):
Boolean;
//保存带多表查询的数据
function SaverQueryGrid_(dxGrid: TdxDBGrid; sTable, sFieldList: string; sIDField: string = 'ID'): Boolean;
//计算一行中几个字段的合计
function CalcRowSummary(dxGrid: TCustomdxDBTreeListControl; sSumField: string;
sRetField: string = ''; lMult: integer = 0; bPost: Boolean = True): Double;
//新增计算字段
procedure AddCalcField(ADOSet1: TADODataSet; sFieldName: string; sMode: Char = 'D');
//设置表格合计栏
function SetGridSummary(Grid1: TdxDBGrid; sSumField: string): Boolean;
//设置DBTREE字段
function StrToTreeField(Tree1: TdxDBTreeList; sFieldName, sCaption, sWidth:
string; sMask: string = ''): Boolean;
//设置TREEList字段
function StrToTreeList(Tree1: TdxTreeList; sCaption, sWidth: string): Boolean;
//设置表格表头Header居中
function SetHeaderCenter(Grid1: TdxDBGrid; ACanvas: TCanvas; ARect: TRect;
AText: string): Boolean;
//设置表格Band居中
function SetBandCenter(Grid1: TdxDBGrid; ABand: TdxTreeListBand; ACanvas:
TCanvas; ARect: TRect; AText: string): Boolean;
//设置所有控件只读
function SetEditRead(Form1: TForm; bRead: Boolean): Boolean;
//系统重建
function SysReset: Boolean;
//返回操作系统类型
function GetOS: string;
//返回起始结束日期
function GetDate(var tStartDate, tEndDate: TDateTime): Boolean;
//清除所有数据
function ClearDataSet(ADOSet1: TADODataSet): Boolean;
//保存Query
function SaveDataSet(ADOSet1: TADODataSet; Cached: Boolean): Boolean;
//保存Query
function SaveDataSet2(DataSet: TADODataSet; sTable: string; sID1: string = 'ID';
sNullField: string = ''): Boolean;
//单据配置显示
function BillSetupShow(lMode: Integer): Boolean;
//通过多选一窗口(RadioGroup)返回一个索引
function GetRadioGroup(sMemo: string; lOld: Integer): Integer;
//通过多选一窗口(ListBox)返回一个索引
function GetListBox(sCap, sMemo: string; lOld: Integer; sStyle1: string = ''): Integer;
//设置合计列
procedure SetColSum(dxGrid: TCustomdxDBTreeListControl; sCol: string; SumType: TdxSummaryType = cstSum);
//设置表格可写列
procedure SetCanWrite(dxGrid: TdxDBGrid; sWrite: string);
//画满表格
function DrawFullGrid(dxGrid: TdxDBGrid; ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode): Boolean;
//设置表格行颜色
procedure SetGridColor(Node: TdxTreeListNode; var Color: TColor);
//通过ID号返回名称
function FieldIdToName(sdbName, sID, sField: string): string;
//通过ID号返回名称指定ID定段
function FieldIdToNameEx(sdbName, sID, sFieldID, sField: string): string;
//通过SQL返回一个字段的值
function SqlToFieldValue(sSql, sField: string): string;
//得到期号
function GetPeriod: Integer;
//同操作Ini文件,得到一字段的值
function GetIniValue(ADOConnet: TADOConnection; sName: string): string;
//同操作Ini文件,修改一字段的值
function SetIniValue(ADOConnet: TADOConnection; sName, sValue: string): Boolean;
//检查DataSet字段的值
function CheckDataSetColValue(DataSet: TDataSet; sField: string; vValue: Variant): Integer;
//检查商品是否有库存
function CheckMinusWareStock(DataSet: TDataSet; sWareID: string): Integer;
//返回字段类型
function GetFieldType(fField: TField): string;
//通过DataSet返回ComboBox字符串
function TableToStrings2(DataSet: TADODataSet; var sField1, sField2, sField3: string; sSpl: string): Boolean;
//表格列名转换为字符串
function GridNameToStrings(dxTree: TCustomdxDBTreeListControl; sSpl: string): string;
//表格列字段名转换为字符串
function GridFieldToStrings(dxTree: TCustomdxDBTreeListControl; sSpl: string): string;
//表格列名求字段名
function GridTitleToField(dxGrid: TCustomdxDBTreeListControl; sTit: string): string;
//表格字段名求列名
function GridFieldToTitle(dxGrid: TCustomdxDBTreeListControl; sField: string): string;
//通过SQL返回ComboBox字符串
function TableToStrings(sSql: string; var sField1, sField2, sField3: string;
sSpl: string): Boolean;
//改变Grid列的类型
function ChangColumnType(Grid1: TCustomdxDBTreeListControl; Column:
TdxTreeListColumn; ColumnClass: TdxDBTreeListColumnClass): TdxTreeListColumn;
//得到单据简名
function GetBillShort(lMode: Integer): string;
//万能查找
function FindPublic(Grid1: TCustomdxDBTreeListControl; var sText: string; var
lFiled: Integer): Boolean;
//万能过滤
function FilterPublic(Grid1: TCustomdxDBTreeListControl): Boolean;
//取出表中不存在的最小值
function GetTableNoExists(sTab, sField: string): Integer;
//取表格中一个单元的值
function GetCells(dxGrid: TCustomdxTreeList; lCol, lRow: Integer): string;
//计算表格一列的合计
function CalcColSummary(dxGrid: TCustomdxDBTreeListControl; sFiled: string;
SumType: TdxSummaryType = cstSum): string;
//计算表格当前列的合计
function CalcColumnSummary(dxColumn: TdxDBTreeListColumn): string;
//算表中一列的合计
function GetTableSum(sTab, sField: string): Double;
//算表中最大值、最小值
function GetTableMax(sSQL, sField: string): Double;
function GetTableMin(sSQL, sField: string): Double;
//单据自动编号
function GetAutoSerial(lMode, lSave: Integer): string;
function GetAutoSerial2(lMode, lSave: Integer; sSP, sNum, sUser, sExp: string): string;
//修改父亲了类ID个数
procedure UpdateICCount(sDB: string; lParID: Integer);
//执行Sql
function ExecSql(sSql: string): Boolean;
//高级执行Sql
function ExecSqlEx(ADOConnet: TADOConnection; sSql: string): Boolean;
//检查表中有几个字段值相同
function CheckSameField(sTab, sField, sValue: string): Integer;
//返回ComboBox中值相同的行索引
function GetStringIndex(sCbx: TStrings; sItem: string): Integer;
//ShowMessage
procedure ShowMsg(sMsg: string);
//MessageBox
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -