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

📄 unit_common_files.pas

📁 房屋出租信息管理系统,房屋出租信息的录入、查询、删除以及用户管理等功能
💻 PAS
字号:
unit Unit_common_files;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, ExtCtrls, Mask, DBCtrls, Grids, DBGrids, Db, DBTables,
  AppEvnts, Buttons, WinSock, ADODB, Variants;
   var
       CurrentID      :string;
       CurrentUserName:string;//当前操作用户名称
       Currentturename:string;
       CurrentPassword:string;//当前用户名称简写
       Currentaward_1 :string;
       Currentaward_2 :string;
       Currentaward_3 :string;
       Currentaward_4 :string;
       StrTableName   :string;
       SyTableName    :string;
       OldTableName   :string;
   ChineseNumericNames:array[0..9] of string=('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
   function ToChineseCurrency(theCurr: Currency): string; //大小写转换
   procedure Warning(warnMsg:String);//警告提示信息
   function Transform(Chinises: String): String;//取助记码字符
   function get_goods_zjm(TempStr: string): string;//取得助记码字符串
   function CurrentUserName1:string;
   Procedure GetTableName(nYear,nMonth :integer );
   Procedure GetsyTableName(nYear,nMonth :integer );
   procedure AlterView;
   Procedure CreateBiaodiTable;
   procedure CreateSybiaodiTable;
implementation

uses DataModule, Login;
/////////////////////////////////////////////////////////////////////
function ToChineseCurrency(theCurr: Currency): string;  //大小写转换
var
  ShiWan,Wan,Qian,Bai,Shi,Ge,Jiao,Fen:Integer;
  CurrStr:string;
  Curr:Currency;
begin
  Curr:=Abs(StrToFloat(IntToStr(Round(theCurr*100)))/100);
  ShiWan:=Trunc(Curr/100000) mod 10;
  Wan:=Trunc(Curr/10000) mod 10;
  Qian:=Trunc(Curr/1000) mod 10;
  Bai:=Trunc(Curr/100) mod 10;
  Shi:=Trunc(Curr/10) mod 10;
  Ge:=Trunc(Curr) mod 10;
  Jiao:=Trunc(Curr*10) mod 10;
  Fen:=Round(Curr*100) mod 10;
  CurrStr:='';
  if (CurrStr<>'') or (ShiWan<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[ShiWan]+'拾';
  if (Wan<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Wan]+'万'
  else
    if (ShiWan<>0) then CurrStr:=CurrStr+'万';
  if (Qian<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Qian]+'仟'
  else
    if (CurrStr<>'') and (Bai<>0) then CurrStr:=CurrStr+ChineseNumericNames[0];
  if (Bai<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Bai]+'佰'
  else
    if (CurrStr<>'') and (Shi<>0) then CurrStr:=CurrStr+ChineseNumericNames[0];
  if (Shi<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Shi]+'拾'
  else
    if (CurrStr<>'') and (Ge<>0)
      then CurrStr:=CurrStr+ChineseNumericNames[0];
  if (Ge<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Ge]+'圆'
  else
    if (CurrStr<>'') then
      CurrStr:=CurrStr+'圆';
  if (Jiao<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Jiao]+'角'
  else
    if (CurrStr<>'') and (Fen<>0) then
      CurrStr:=CurrStr+ChineseNumericNames[0];
  if (Fen<>0) then
    CurrStr:=CurrStr+ChineseNumericNames[Fen]+'分'
  else
    CurrStr:=CurrStr+'整';
  if (theCurr<0) then
    Result:='负'+CurrStr
  else
    Result:=CurrStr;
end;
////////////////////////////////////////////////////////////////////
procedure AlterView;
var nYear,nMonth,nDay:word;
    ADQ_XmXf:TADOQuery;
begin
   ADQ_XmXf:=TADOQuery.Create(nil);
   ADQ_XmXf.Connection:=DB_module.ADOCon ;
   DecodeDate(Now(),nYear,nMonth,nDay);
   GetTableName(nYear,nMonth);
   GetsyTableName(nYear,nMonth);
   With  ADQ_XmXf  do
        Begin
           Close;
           SQL.Clear;
           SQL.Text :='Alter view XmXf as SELECT C.manid, D.manname, D.Zjm, C.fangno,B.Cbrq, B.lsb, B.rsb,'
                    +'B.db, B.mqb,A.Cbrq AS bycbrq, A.lsb AS bylsb,A.rsb AS byrsb, A.db AS bydb,A.mqb AS bymqb'
                    +' FROM dbo.Zf_Man D INNER JOIN dbo.Zf_Rz C ON D.manid = C.manid INNER JOIN '
	            +''+ StrTableName+ ' A ON C.fangno = A.fangno INNER JOIN '
	            +''+ SyTableName+ ' B ON A.fangno = B.fangno';
           ExecSQL;
        End;
end;
///////////////////////////////////////////////////////////////////
procedure CreateBiaodiTable;
var  ADQ_Biaodi:TADOQuery;
begin
    ADQ_Biaodi:=TADOQuery.Create(nil);
    ADQ_Biaodi.Connection:=DB_module.ADOCon ; 
    With  ADQ_Biaodi  do
      Begin
         Close;
         SQL.Clear;
         SQL.Text:='Select *  From Sysobjects  Where name='''+StrTableName+'''';
         Open;
      End;
   if  ADQ_Biaodi.IsEmpty  then
   Begin
      With  ADQ_Biaodi  do
        Begin
           Close;
           SQL.Clear;
           SQL.Text :='CREATE TABLE [dbo].['+StrTableName+'] ('
                    +'[ID] [int] IDENTITY (1, 1) NOT NULL ,'
                    +'[fangno] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,'
	            +'[Cbrq] [datetime] NOT NULL ,'
	            +'[lsb] [numeric](6, 2) NULL ,'
       	            +'[rsb] [numeric](6, 2) NULL ,'
       	            +'[db] [numeric](6, 2) NULL ,'
       	            +'[mqb] [numeric](6, 2) NULL'
                    +') ON [PRIMARY]' ;
           ExecSQL;
        End;
     With   ADQ_Biaodi  do
       Begin
          Close;
          SQL.Clear;
          SQL.Text:='ALTER TABLE [dbo].['+StrTableName+'] WITH NOCHECK ADD '
                   +'CONSTRAINT [PK_'+StrTableName+'] PRIMARY KEY  CLUSTERED'
                   +'([ID])  ON [PRIMARY] ' ;
          ExecSQL;
       End;
  End;
end;
///////////////////////////////////////////////////////////////////
procedure CreateSyBiaodiTable;
var  ADQ_Biaodi:TADOQuery;
begin
    ADQ_Biaodi:=TADOQuery.Create(nil);
    ADQ_Biaodi.Connection:=DB_module.ADOCon ; 
    With  ADQ_Biaodi  do
      Begin
         Close;
         SQL.Clear;
         SQL.Text:='Select *  From Sysobjects  Where name='''+SyTableName+'''';
         Open;
      End;
   if  ADQ_Biaodi.IsEmpty  then
   Begin
      With  ADQ_Biaodi  do
        Begin
           Close;
           SQL.Clear;
           SQL.Text :='CREATE TABLE [dbo].['+SyTableName+'] ('
                    +'[ID] [int] IDENTITY (1, 1) NOT NULL ,'
                    +'[fangno] [char] (8) COLLATE Chinese_PRC_CI_AS NOT NULL ,'
	            +'[Cbrq] [datetime] NOT NULL ,'
	            +'[lsb] [numeric](6, 2) NULL ,'
       	            +'[rsb] [numeric](6, 2) NULL ,'
       	            +'[db] [numeric](6, 2) NULL ,'
       	            +'[mqb] [numeric](6, 2) NULL'
                    +') ON [PRIMARY]' ;
           ExecSQL;
        End;
     With   ADQ_Biaodi  do
       Begin
          Close;
          SQL.Clear;
          SQL.Text:='ALTER TABLE [dbo].['+SyTableName+'] WITH NOCHECK ADD '
                   +'CONSTRAINT [PK_'+SyTableName+'] PRIMARY KEY  CLUSTERED'
                   +'([ID])  ON [PRIMARY] ' ;
          ExecSQL;
       End;
  End;
end;
///////////////////////////////////////////////////////////////////
procedure GetTableName(nYear,nMonth :integer );
begin
  if nMonth<10 then
    begin
     StrTableName:='zf_Biaodi'+IntToStr(nYear)+'0'+intToStr(nMonth);
    end
  else
    begin
     StrTableName:='zf_Biaodi'+IntToStr(nYear)+intToStr(nMonth);
    end;
end;
//////////////////////////////////////////////////////////////////////////
procedure GetsyTableName(nYear,nMonth :integer );
begin
  if nMonth<10 then
    begin
     SyTableName:='zf_Biaodi'+IntToStr(nYear)+'0'+intToStr(nMonth-1);
    end
  else
    begin
     SyTableName:='zf_Biaodi'+IntToStr(nYear)+intToStr(nMonth-1);
    end;
end;
//////////////////////////////////////////////////////////////
function CurrentUserName1:string;
var ADOQry:TADOQuery;
begin
try
   ADOQry:=TADOQuery.Create(nil);
   ADOQry.Connection:=DB_module.ADOCon;
   ADOQry.SQL.Add('select * from login_user where user_loginname=:username and user_password=:password');
   ADOQry.Parameters.ParamByName('username').Value:=paramstr(1);
   ADOQry.Parameters.ParamByName('password').Value:=Trim(paramstr(2));
   ADOQry.open;
      if not ADOQry.IsEmpty then
      begin
        CurrentID       := Trim(ADOQry.FieldByName('user_ID').AsString )  ;
        CurrentUserName := Trim(ADOQry.FieldByName('user_loginname').AsString);
        Currentturename := Trim(ADOQry.FieldByName('user_name').AsString );
        CurrentPassword := Trim(ADOQry.FieldByName('user_password').asstring);
        Currentaward_1  := Trim(ADOQry.FieldByName('award_1').AsString);
        Currentaward_2  := Trim(ADOQry.FieldByName('award_2').AsString);
        Currentaward_3  := Trim(ADOQry.FieldByName('award_3').AsString);
        Currentaward_4  := Trim(ADOQry.FieldByName('award_4').AsString);
      end;
   result:=CurrentUserName;
   finally
   ADOqry.Free;
end;
end; 
////////////////////////////////////////////////////警告提示信息
procedure Warning(WarnMsg:String);    //警告通用函数
begin
  Application.MessageBox(PChar(WarnMsg),'警告',MB_OK or MB_ICONWARNING);
end;
////////////////////////////////////////////////////////////////////////////////
function get_goods_zjm(TempStr: string): string;
var
 i:Integer;
 Str,Str1:String;
begin
//得到助记码
if TempStr <>'' then
 begin
  i := 1;
  Str := '';
  while i<=Length(TempStr) do
   begin
    //中文
    if ord(Char(TempStr[i]))>127 then
     begin
      Str1 := '';
      Str1 := TempStr[i];
      Str1 := Str1 + TempStr[i+1];
      i:= i+2;
      Str := Str + Transform(Str1);
     end
    else
    //英文
     begin
      Str := Str+UpCase(TempStr[i]);
      i:= i+1;
     end;
   end;
  Result:=Str;
 end;
end;
function Transform(Chinises: String): String;
var
tt:integer;
begin
  tt:=WORD(Chinises[1]) shl 8 + WORD(Chinises[2]);
    case tt of
    $B0A1..$B0C4 : result := 'A';
    $B0C5..$B2C0 : result := 'B';
    $B2C1..$B4ED : result := 'C';
    $B4EE..$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 := '?'
   end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -