?? myself.pas
字號:
//商場管理系統(tǒng)單機版Ver 2.0 源程序
//本版本開始設計于2002年5月初
//作者:肖揚
//本系統(tǒng)除了第三方控件或源程序外,所有代碼均為作者本人獨立完成
//如果你引用了本程序中的源代碼,希望你能保留本信息
//如果你對本程序有何建議,請與作者聯(lián)系
//聯(lián)系方法:thinknet@china.com
//特別感謝:《Delphi 之葵花寶典2.7》、大富翁論壇,以及本程序中曾經(jīng)(或正在)引用
// 或借鑒過的源程序代碼的作者,對未保留原作者信息的源程序的作者表示歉意!
//如果本程序中的源代碼侵犯了您的權(quán)益,請與作者聯(lián)系,將立即刪除
//本系統(tǒng)中的源程序只供您研究、開發(fā)個人軟件或免費軟件,
//任何商業(yè)使用均需經(jīng)本系統(tǒng)作者同意!!!
//自定義單元
unit MYSELF;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, ToolWin, Buttons, ImgList, ExtCtrls, jpeg, StdCtrls,ShellAPI,
tvAPIThing,DBTables;
function rmb(nn:real):string;
function GetPyIndexChar(hzchar:string):char;
function getstringpy(sourcestr:string):string;
function Getfilever():string;
function Fieldautoturn(SS:string):string;
function Nowindex():string;
function Msgbox(Handle:integer;Text,Caption:String;flag:integer):integer;
function Checkrights(S_sourcerights:string;S_checkrights:string):boolean;//權(quán)限檢測
function DaysInMonth(MYdate:TDate):Integer; //統(tǒng)計任意月份的天數(shù)
const
Infmsg0001='數(shù)據(jù)保存成功!';
Infmsg0002='數(shù)據(jù)刪除成功!';
Infmsg0003='數(shù)據(jù)修改成功!';
Infmsg0004='數(shù)據(jù)保存失敗!請檢查后重新保存。';
Infmsg0005='檢測到有數(shù)據(jù)窗口正外于打開狀態(tài)!';
Askmsg0001='數(shù)據(jù)已修改,是否保存?';
Askmsg0002='確定要保存以上數(shù)據(jù)內(nèi)容?';
Askmsg0003='是否要繼續(xù)?';
Errormsg0001='數(shù)據(jù)庫打開錯誤,請與系統(tǒng)管理員聯(lián)系。'+#13+#13+'錯誤代碼:';
Errormsg0002='關鍵內(nèi)容(字段)不能為空。'+#13+#13+'錯誤代碼:';
Errormsg0003='關鍵內(nèi)容(字段)已存在。'+#13+#13+'錯誤代碼:';
Errormsg0004='數(shù)據(jù)庫更新失敗,請與系統(tǒng)管理員聯(lián)系。'+#13+#13+'錯誤代碼:';
Errormsg0005='數(shù)據(jù)庫刪除錯誤,請與系統(tǒng)管理員聯(lián)系。'+#13+#13+'錯誤代碼:';
Errormsg0006='你沒有足夠的權(quán)限使用本功能,請與系統(tǒng)管理員聯(lián)系。'+#13+#13+'錯誤代碼:';
Errormsg0007='管理員信息不可刪除。'+#13+#13+'錯誤代碼:';
Errormsg0008='沒有輸入有效的數(shù)據(jù)記錄,請重新輸入!';
Errormsg0009='沒有檢測到商品的庫存記錄,請重新輸入!';
Errormsg0010='檢測到商品的庫存數(shù)量小于出貨數(shù)量,請重新輸入!' ;
Errormsg0011='打印機打開錯誤,打印不能完成。請檢查系統(tǒng)是否安裝默認打印機!';
Errormsg0012='日期輸入錯誤,請重新輸入!'+#13+#13+'錯誤代碼:';
implementation
//返加人民幣的中文數(shù)值
function RMB(NN:real):string;
var
HZ,NS,NW,NA,N1,N2:string;
LA,X,Nk:integer;
begin
if NN>9999999999999.99 then
begin
MessageDlg('金額溢出。',mtError,[mbOk], 0);
HZ:='';
Result:=HZ;
exit;
end;
if NN=0 then
begin
HZ:='零元';
result:=HZ;
exit;
end;
NS:='零壹貳叁肆伍陸柒捌玖';
NW:='分角元拾佰仟萬拾佰仟億拾佰仟萬';
NA:=FloatToStr(NN*100);
LA:=length(NA);
X:=1;
HZ:='';
while X<=LA do
begin
NK:=Ord(NA[x])-Ord('0');
N1:=Copy(NS,NK*2+1,2);
N2:=Copy(NW,LA*2+1-X*2,2);
if (NK=0) AND ((N2='億') OR( N2='萬') OR( N2='元'))then
begin
if copy(HZ,Length(HZ)-1,2)='零' then
HZ:=copy(HZ,1,length(HZ)-2);
if copy(HZ,Length(HZ)-1,2)='億' then
if N2='元' then
begin
N1:=N2;
N2:='零';
end
else
N2:=''
else
begin
N1:=N2;
N2:='零';
end
end
else if NK=0 then
begin
if copy(HZ,length(HZ)-1,2)='零' then
N1:='';
if N2='分' then
begin
if copy(HZ,length(HZ)-1,2)='零' then
HZ:=copy(HZ,1,length(HZ)-2)+'整'
else
HZ:=HZ+'整';
N1:='';
end;
N2:='';
end;
HZ:=HZ+N1+N2;
X:=X+1
end;
Result:=HZ;
end;
//返回單個漢字的拼音首字母
function GetPyIndexChar(hzchar:string):char;
begin
case word(hzchar[1]) shl 8 +word(hzchar[2]) of
$B0A1..$B0D0 : RESULT :='A';
$B0D1..$B2C0 : RESULT :='B';
$B2C1..$B4F2 : RESULT :='C';
$B4F3..$B6E9 : RESULT :='D';
$B6EA..$B7A1 : RESULT :='E';
$B7A2..$B8C0 : RESULT :='F';
$B8C1..$B9FD : RESULT :='G';
$B9FE..$BBF6 : RESULT :='H';
$BBF7..$BFA5 : RESULT :='J';
$BFA6..$C0AB : RESULT :='K';
$C0AC..$C2E7 : RESULT :='L';
$C2E8..$C4C2 : RESULT :='M';
$C4C3..$C5B5 : RESULT :='N';
$C5B6..$C5BD : RESULT :='O';
$C5BE..$C6D9 : RESULT :='P';
$C6DA..$C8BA : RESULT :='Q';
$C8BB..$C8F5 : RESULT :='R';
$C8F6..$CBF9 : RESULT :='S';
$CBFA..$CDD9 : RESULT :='T';
$CDDA..$CEF3 : RESULT :='W';
$CEF4..$D1B8 : RESULT :='X';
$D1B9..$D4D0 : RESULT :='Y';
$D4D1..$D7F9 : RESULT :='Z';
else
//result :=char(0);
result :='V';
end;
end;
//返回漢字串的拼首字母串
function getstringpy(sourcestr:string):string;
var
I_temp : integer;
B_temp : bool;
begin
result:='';
B_temp:=false;
for i_temp:=1 to length(sourcestr) do
begin
if B_temp then
B_temp:=false
else
begin
if word(sourcestr[i_temp])<176 then
result:=result+sourcestr[i_temp]
else
begin
result:=result+GetPyIndexChar(sourcestr[i_temp]+sourcestr[i_temp+1]);
b_temp:=true;
end;
end;
end;
end;
function Getfilever():string;
var
x : TFixedFileInfo;
APIThing : TtvAPIThing;
begin
APIThing := TtvAPIThing.Create( nil );
x := APIThing.FileInfo( Application.ExeName );
result:='Ver'+IntToStr( x.wFileVersionLS ) + '.' + IntToStr( x.wFileVersionMS )+ '.'
+ IntToStr( x.wProductVersionLS) + '.'
+ IntToStr( x.wProductVersionMS ) ;
end;
function Fieldautoturn(SS:string):string;
var
NF:array[1..21] of string;
begin
//初始化名片字段定義
NF[1]:='姓名';
NF[2]:='電話';
NF[3]:='手機';
NF[4]:='宅電';
NF[5]:='郵件';
NF[6]:='傳呼';
NF[7]:='單位';
NF[8]:='地址';
NF[9]:='郵編';
NF[10]:='住宅';
NF[11]:='傳真';
NF[12]:='職務';
NF[13]:='部門';
NF[14]:='網(wǎng)址';
NF[15]:='特長';
NF[16]:='QQ號';
NF[17]:='生日';
NF[18]:='性別';
NF[19]:='血型';
NF[20]:='星座';
NF[21]:='備注';
if (SS='姓名') or (SS='名稱') then
begin
result:=NF[1];
exit;
end;
if (SS='電話') or (SS='公司電話') or (SS='聯(lián)系電話') or (SS='辦公電話') then
begin
result:=NF[2];
exit;
end;
if (SS='手機') or (SS='移動電腦') or (SS='手持電話') or (SS='行動電話')
or (SS='大哥大') then
begin
result:=NF[3];
exit;
end;
if (SS='宅電') or (SS='家電') or (SS='住宅電話') or (SS='家庭電話') or (SS='其它電話')
or (SS='保密電話') then
begin
result:=NF[4];
exit;
end;
if (SS='郵件') or (uppercase(SS)=Uppercase('Email')) or (Uppercase(SS)=uppercase('E-mail'))
or (SS='電子郵件') or (SS='電郵') then
begin
result:=NF[5];
exit;
end;
if (SS='傳呼') or (uppercase(SS)=Uppercase('BB')) or (Uppercase(SS)=uppercase('BP'))
or (SS='拷機') or (SS='呼機') then
begin
result:=NF[6];
exit;
end;
if (SS='單位') or (SS='公司') or (SS='單位名稱') or (SS='公司名稱') then
begin
result:=NF[7];
exit;
end;
if (SS='地址') or (SS='公司地址') or (SS='單位地址') or (SS='郵政地址') or (SS='聯(lián)系地址') then
begin
result:=NF[8];
exit;
end;
if (SS='郵編') or (SS='郵政編碼') then
begin
result:=NF[9];
exit;
end;
if (SS='住宅') or (SS='家庭') or (SS='家庭地址') or (SS='其他地址') or (SS='其它地址') then
begin
result:=NF[10];
exit;
end;
if (SS='傳真') or (SS='公司傳真') or (SS='單位傳真') or (SS='傳真號碼') then
begin
result:=NF[11];
exit;
end;
if (SS='職務') or (SS='頭銜') or (SS='稱呼') or (SS='稱謂') or (SS='職稱') then
begin
result:=NF[12];
exit;
end;
if (SS='部門') then
begin
result:=NF[13];
exit;
end;
if (SS='網(wǎng)址') or (SS='主頁') or (SS='網(wǎng)頁') or (SS='公司網(wǎng)址') or (SS='公司網(wǎng)頁')
or (SS='公司主頁') or (SS='單位網(wǎng)址') or (SS='單位網(wǎng)頁') or (SS='單位主頁') then
begin
result:=NF[14];
exit;
end;
if (SS='特長') or (SS='興趣') or (SS='特點') or (SS='愛好') or (SS='喜好') or (SS='擅長') then
begin
result:=NF[15];
exit;
end;
if (SS='QQ號') or (SS='OICQ號') or (SS='ICQ號') or (SS='網(wǎng)絡傳呼')
or (SS='QQ') or (SS='OICQ') or (SS='ICQ') or (SS='網(wǎng)絡BB') or (SS='網(wǎng)絡BP') then
begin
result:=NF[16];
exit;
end;
if (SS='生日') or (SS='出生日期') or (SS='出生年月') or (SS='出生年月日') or (SS='出生時間') then
begin
result:=NF[17];
exit;
end;
if (SS='性別') then
begin
result:=NF[18];
exit;
end;
if (SS='血型') then
begin
result:=NF[19];
exit;
end;
if (SS='星座') then
begin
result:=NF[20];
exit;
end;
if (SS='備注') or (SS='其它') or (SS='其他') or (SS='備注信息') or (SS='其它信息')
or (SS='其他信息') or (SS='備忘') then
begin
result:=NF[21];
exit;
end;
result:=SS;
end;
function Nowindex():string;
begin
result:=formatdatetime('yyyymmdd',date)+'-'+formatdatetime('hhmmss',time)
end;
function Checkrights(S_sourcerights:string;S_checkrights:string):boolean;//權(quán)限檢測
begin
S_checkrights:=trim(S_checkrights);
if length(S_sourcerights)<>10 then
S_sourcerights:='0000000000';
if S_checkrights='查看' then
begin
if S_sourcerights[1]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='增加' then
begin
if S_sourcerights[2]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='編輯' then
begin
if S_sourcerights[3]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='刪除' then
begin
if S_sourcerights[4]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='高級' then
begin
if S_sourcerights[5]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='報表打印' then
begin
if S_sourcerights[6]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='打印預覽' then
begin
if S_sourcerights[7]='1' then
result:=true
else
result:=false;
end
else if S_checkrights='系統(tǒng)設置' then
begin
if S_sourcerights[8]='1' then
result:=true
else
result:=false;
end
else
result:=false;
end;
function DaysInMonth(MYdate:TDate):Integer;
var
MyMonth,MyYear,MyDay : Word;
MyDayTable : TDayTable;
tmpBool : Boolean;
begin
DecodeDate(MYdate, MyYear, MyMonth, MyDay);
tmpBool := IsLeapYear(MyYear);
MyDayTable := MonthDays[tmpBool];
Result := MyDayTable[MyMonth];
end;
//自定義信息對話框
function Msgbox(Handle:integer;Text,Caption:String;flag:integer):integer;
var
Msg:TMsgBoxParams;
begin
Msg.cbSize:=Sizeof(Msg);
Msg.hwndOwner:=Handle;
Msg.hInstance:=hinstance;
Msg.lpszText:=PChar(Text);
Msg.lpszCaption:=PChar(Caption);
Msg.dwStyle:=flag+MB_USERICON;
Msg.lpszIcon:='MAINICON';
Msg.dwContextHelpId:=1;
Msg.lpfnMsgBoxCallback:=nil;
Msg.dwLanguageId:=LANG_NEUTRAL;
Result:=integer(MessageBoxIndirect(Msg));
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -