📄 复件 global.pas
字号:
//=========================================================
// Global.pas
// 共享模块,保存字符串资源和共享常量、变量、函数及过程
//=========================================================
unit Global;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,comobj,ComCtrls, StdCtrls, DB,DBGrids, ADODB,Gauges;
Resourcestring
//===========================================================
// application information
//===========================================================
SAppName ='文具管理系统';
SAPPVersion ='V1.0.3 build 1215';
//SAppFirstVersion ='V1.0.0 build 1103';
SAppAuthor ='罗祖术';
SAppUse ='鹤山欣丰毛织制衣有限公司';
//SAppUser ='邓卓明';
//===========================================================
// DataBase Information
//===========================================================
SConnectString ='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';
SDefDataBaseName ='Stationery.Lzs';
SDefDataBasePwd ='软件作者:罗祖术'; //使用中文密码
//============================================================
// Database TableName and FieldName
//============================================================
STLogin ='登录';
SFPwd ='密码';
STDataChange ='修改数据'; //保存修改数据的密码,该密码经加密处理
STChgData ='修改数据';
STDept ='部门';
SFDept ='部门';
STSkin ='皮肤';
SFSkin ='皮肤';
STMonthStock ='每月仓存';
SFName ='姓名';
STCompanyName ='公司名称';
SFCompanyName ='公司名称';
STDepotStock ='仓库存货';
SFAutoNumber ='编号';
SFStockDate ='进货日期';
SFOutStockDate ='出仓日期';
SFAmount ='数量';
SFUnit ='单位';
SFGuiGe ='规格';
SFPrice ='单价';
SFMemo ='备注';
STGoodsStock ='货物进仓';
STGoodsOutput ='物品出仓';
STGoodsName ='物品名称';
SFGoodsNumber ='物品编号';
SFGoodsName ='物品名称';
//============================================================
// Message Information
//============================================================
SErrorTitle ='错误提示';
SHintTitle ='提示信息';
SConfirmTitle ='信息确认';
SMsgNotFindDatabase ='没有找到数据库文件: %s';
SMsgCompanyNameWriteOK ='公司名称设置成功,谢谢使用!';
SMsgDataWriteError ='数据存储出错!';
SMsgOrgPwdError ='原密码输入出错!';
SMsgReComfirmError ='两次输入的密码不相同!';
SMsgHintPwdModify ='数据修改密码己被人恶意清除,程序将拒绝运行!';
SMsgNewPwdSetupOK ='新密码设置成功,请牢记您所设置的新密码!';
SMsgAlikePwdError ='请勿与登录密码使用相同的密码';
SMsgChgOrgPwd ='数据修改密码的初始密码为:%s,为了数据安全,请注意将其更改!';
SMsgDataExist ='此项数据己存在,请勿重复!';
SMsgConfirmDelete ='数据被删除后是无法恢复的,您确定要删除吗?';
SMsgDataSaveOk ='数据成功存入!';
SMsgAlreadyStock =' 仓库己有存货。存货数量有:%s。请核对'+#13#10
+'其它项目是否相同,如确认无误,请直接输入数量,'+#13#10
+'己增加其中数目。';
SMsgNoStock ='此物品仓库内尚无存货!';
SMsgExitRun =' 您己经修改过基础信息,为了防止程序'+#13#10
+'出现异常错误请重新启动本程序!'+#13#10
+' 确定退出程序吗?';
SMsgInfoHint ='信息提示!';
SMsgNoEnough ='嘿!您有那么多的存货吗?';
SMsgAllGetGoods ='“%s”物品全部领了,请注意进货哟!';
SMsgTimePwd ='您有 3 次输入密码的机会!';
SMsgErrorTimePwd ='您还有 %s 次输入密码的机会!';
SMsgDeleteIncName ='确定要删除“公司名称”吗?';
SMsgDeleteDept ='确定要删除“部门设置”吗?';
SMsgDeleteGoods ='确定要删除“物品设置”吗?';
SMsgDeletePwd ='确定要删除“密码”吗?';
SMsgExitProgram =' 由于你删除了基础设置信息。为避'+#13#10+
'免程序出错,请重新启动本程序。';
SMsgDeletTable ='确定要“%s”数据表吗?';
SMsgDataCompressOk ='数据库压缩成功!';
SMsgDataCompressError ='数据库压缩失败!';
SMsgPreviewError ='数据打印预览错误,请确认你是否有需打印的数据?';
SAllowEdit ='可编辑状态';
SNotAllowEdit ='不可编辑状态';
SMsgExitEdit ='[ %d ]秒种后自动退出可编辑状态!';
SMsgNoJcHint =' 上月[ %s ]未做结存统计!如果选择"是",程序将自动'+#13#10#13#10+
'对上月数据进行结存!'+#13#10#13#10+
'您确定对上月数据进行结存吗?';
SMsgJCExists =' 数据库中己存在[ %s ]的结存数据,您是否将原有的结存'+#13#10#13#10+
'数据删除!然后重新结存呢?'+#13#10#13#10+
' 如果您确定要重新结存[ %s ]请点击“是”!确定吗?';
SMsgWillDeleteRegcode ='将删除软件的原注册信息,继续吗?';
SMsgDeleteRegcodeOk ='己经成功的删除了软件注册信息,请重新注册!';
SMsgDeleteRegcodeError ='信息删除出错,请重新启动软件。';
//注册码己经成功写入数据库,请重新启动程序己验证是否注册成功!
SMsgRegCodeWriteOk ='WhwJBfBbEE5foMUAcZtyz7Lo7THO4KTPp3z/J4Mv8JML9O8FQOyWrQk209cQ/ZmekRGZM3exwMiZ/mjn';
STitleHint ='RdG5GstN56C'; //信息提示
SMsgRegCodeWriteError ='WhwJBfBbop3TMh/Is4d45KZsYLteCaetC5DYaB';
STitleError ='1M+i0jxUTwL'; //错误提示
sNotReg ='PFbdufXHnmL'; //未注册版
sAlreadyReg ='9szdazFG6kK'; //己注册版
//============================================================
// SQL Information
//============================================================
SSQLTY0 ='Select * from %s ';
SSQLTY1 ='Select * from %s order by %s';
SSQLTY2 ='Select * from %s order by autono';
SSQLStrTerm ='Select * from %s where %s="%s"';
SSQLStrNoShowOut ='Select * from AllInsurance where FEarlyOut=False order by autono';
SSQLStrTermInt ='Select * from %s where %s=%d';
SSQLDeleteData ='Delete from %s where %s="%s"';
SSQLDeleteDataTable ='Delete * from %s';
SSQLInsertStock ='insert into 仓库存货(进货日期,物品编号,物品名称,规格,数量,单位,单价,备注) '+
'values(:S_Date,:S_Number,:S_Name,:S_GG,:S_Acount,:S_Unit,:S_Price,:S_Memo)';
SSQLInsertGetGoods ='Insert into 物品出仓(出仓日期,部门,姓名,物品编号,物品名称,规格,数量,单位,备注) '+
'values (:S_Date,:S_Dept,:S_Name,:S_Number,:S_GoodsName,:S_GG,:S_Acount,:S_Unit,:S_Memo) ';
SSQLGoodsStock ='insert into 货物进仓(进货日期,物品编号,物品名称,规格,数量,单位,单价,备注) '+
'values(:S_Date,:S_Number,:S_Name,:S_GG,:S_Acount,:S_Unit,:S_Price,:S_Memo)';
SSqlAddGoods ='Update 仓库存货 set 数量=数量+%s,备注=:S_Memo where 物品编号="%s"';
SSQLUpdateStock ='Update 仓库存货 set 数量=数量-%s where 物品编号="%s"';
SSQLdistinct ='Select distinct %s from %s';
//============================================================
// Form Caption
//============================================================
SFormLogin ='登录';
SFormBaseSetup ='基础信息设置';
SFormStock ='进货信息录入';
SFormDataMgr ='数据管理';
SFormGetGoods ='领取物品登记';
SFormTongJi ='综合数据统计';
SFormAbout ='关于程序';
SFormReg ='软件注册(免费注册版)';
//============================================================
// Other STring
//============================================================
//============================================================
// procedure and function
//============================================================
//简化 messagesbox 函数
function MsgBox(Msg:Variant;Title:string;Flag:longint):integer;
function CompressDB(Afile:string):boolean;
// ACCESS 数据库压缩函数
//导出 Excel 表格
procedure GenXlsFile(sPRG:TGauge;SDBGrid:TDBGrid;sDataSet:TADOQuery;Fn:String;Vis:Boolean);
const
my_key = 33189;
var
FindDatabase:boolean; //用来标识是否找到数据库文件
Pwd:string; //保存登录密码
ChgPwd:string; //保存数据修改密码
IncName:string; //用来保存数据库内的公司名称
RegOK:boolean; //是否成功注册了软件
RegName:string; //注册名称
implementation
function MsgBox(Msg:Variant;Title:string;Flag:longint):integer;
//简化MessageBox函数
begin
if length(title)=0 then title:=SAppName;
case flag of
0:flag:=MB_OK + MB_ICONINFORMATION;
1:flag:=MB_OK + MB_ICONERROR;
2:flag:=MB_YESNO + MB_ICONERROR;
3:flag:=MB_YESNO + MB_ICONWARNING;
4:flag:=MB_YesNo +MB_ICONQUESTION;
else
flag:=MB_OK + MB_ICONERROR;
end;
Result:=application.MessageBox(pchar(vartostr(Msg)),pchar(Title),flag);
end;
function compressDB(Afile:string):boolean;
//
var
DaoVar: OLEVariant;
begin
try
DaoVar := CreateOleObject('dao.DBEngine.36');
if FileExists('db.tmp') then deletefile('db.tmp');
// DaoVar.CompactDatabase(afile,'db.tmp'); //压缩无密码的数据库
//压缩有密码的数据库。注意:密码不能为空
DaoVar.CompactDatabase(afile,'db.tmp',';pwd='+SDefDataBasePwd+'',0,';pwd='+SDefDataBasePwd+'');
if deletefile(afile) then RenameFile('db.tmp',Afile);
result:=true;
except
result:=False;
end;
end;
{导出 Excel 表格}
procedure GenXlsFile(sPRG:TGauge;SDBGrid:TDBGrid;sDataSet:TADOQuery;Fn:String;Vis:Boolean);
//uses ComObj;
var
ExcelApp: Variant;
i,j:integer;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
except
application.MessageBox('系统中的MS Excel软件没有安装或安装不正确!','错误',MB_ICONERROR+MB_OK);
exit;
end;
ExcelApp.visible:=vis;
try
excelapp.caption:='应用程序调用 Microsoft Excel';
ExcelApp.WorkBooks.Add;
//写入标题行
for i:=1 to sDBGrid.FieldCount do
begin
ExcelApp.Cells[1,i].Value:=sDBGrid.Columns[i-1].Title.Caption ;
end;
sprg.MaxValue:=sDataSet.RecordCount; //插入进度条
{ for i:=1 to sDataSet.Fields.Count do
begin
ExcelApp.Cells[1,i].Value :=sDataSet.Fields[i-1].DisplayName;
end; }
sDataSet.First;
i:=2;
while not sDataSet.Eof do
begin
for j:=0 to sDataSet.Fields.Count-1 do
begin
ExcelApp.Cells[i,j+1].Value :=sDataSet.Fields[j].AsString;
end;
sDataSet.Next;
i:=i+1;
sprg.Progress :=sprg.Progress +1; //进度条步长
end;
sDataSet.First;
sPrg.Progress :=0; //
if application.MessageBox('数据导出完成.确认保存吗?','信息提示',MB_ICONQUESTION+MB_YESNO+MB_DEFBUTTON1+MB_SYSTEMMODAL)=IDYES then
begin
if not ExcelApp.ActiveWorkBook.Saved then
ExcelApp.ActiveWorkBook.SaveAs(fn);
end
else begin
ExcelApp.ActiveWorkBook.Saved := True; //不保存
end;
finally
excelapp.quit; //退出EXCEL软件
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -