⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myself.pas

📁 超市管理系统
💻 PAS
字号:
//商场管理系统单机版Ver 2.0  源程序
//本版本开始设计于2002年5月初
//作者:肖扬
//本系统除了第三方控件或源程序外,所有代码均为作者本人独立完成
//如果你引用了本程序中的源代码,希望你能保留本信息
//如果你对本程序有何建议,请与作者联系
//联系方法:thinknet@china.com
//特别感谢:《Delphi 之葵花宝典2.7》、大富翁论坛,以及本程序中曾经(或正在)引用
//    或借鉴过的源程序代码的作者,对未保留原作者信息的源程序的作者表示歉意!
//如果本程序中的源代码侵犯了您的权益,请与作者联系,将立即删除

//本系统中的源程序只供您研究、开发个人软件或免费软件,
//任何商业使用均需经本系统作者同意!!!

//自定义单元
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;//权限检测
  function DaysInMonth(MYdate:TDate):Integer;    //统计任意月份的天数

const
   Infmsg0001='数据保存成功!';
   Infmsg0002='数据删除成功!';
   Infmsg0003='数据修改成功!';
   Infmsg0004='数据保存失败!请检查后重新保存。';
   Infmsg0005='检测到有数据窗口正外于打开状态!';

   Askmsg0001='数据已修改,是否保存?';
   Askmsg0002='确定要保存以上数据内容?';
   Askmsg0003='是否要继续?';

   Errormsg0001='数据库打开错误,请与系统管理员联系。'+#13+#13+'错误代码:';
   Errormsg0002='关键内容(字段)不能为空。'+#13+#13+'错误代码:';
   Errormsg0003='关键内容(字段)已存在。'+#13+#13+'错误代码:';
   Errormsg0004='数据库更新失败,请与系统管理员联系。'+#13+#13+'错误代码:';
   Errormsg0005='数据库删除错误,请与系统管理员联系。'+#13+#13+'错误代码:';
   Errormsg0006='你没有足够的权限使用本功能,请与系统管理员联系。'+#13+#13+'错误代码:';
   Errormsg0007='管理员信息不可删除。'+#13+#13+'错误代码:';
   Errormsg0008='没有输入有效的数据记录,请重新输入!';
   Errormsg0009='没有检测到商品的库存记录,请重新输入!';
   Errormsg0010='检测到商品的库存数量小于出货数量,请重新输入!' ;
   Errormsg0011='打印机打开错误,打印不能完成。请检查系统是否安装默认打印机!';
   Errormsg0012='日期输入错误,请重新输入!'+#13+#13+'错误代码:';
implementation

//返加人民币的中文数值
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]:='网址';
   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='联系电话') 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='联系地址') 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='网址') or (SS='主页') or (SS='网页') or (SS='公司网址') or (SS='公司网页')
      or (SS='公司主页') or (SS='单位网址') or (SS='单位网页') 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='网络传呼')
      or (SS='QQ') or (SS='OICQ') or (SS='ICQ') or (SS='网络BB') or (SS='网络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;//权限检测
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='系统设置' 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 + -