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

📄 main.pas

📁 这是一个好好用的网吧阿比系统骨素福夫斯蒂东浩ihjksaf
💻 PAS
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, Menus, Mask, DBCtrls,
  Buttons;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Edit1: TEdit;
    Label1: TLabel;
    DBGrid1: TDBGrid;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    N6: TMenuItem;
    N5: TMenuItem;
    PC1: TMenuItem;
    DBEsdjg: TDBEdit;
    DBEshangji: TDBEdit;
    DBExiaji: TDBEdit;
    DBEsj: TDBEdit;
    DBExj: TDBEdit;
    Label2: TLabel;
    Timer1: TTimer;
    Splitter1: TSplitter;
    Label3: TLabel;
    Label4: TLabel;
    Panel3: TPanel;
    DBGrid2: TDBGrid;
    Panel4: TPanel;
    N7: TMenuItem;
    DBEmrjg: TDBEdit;
    DBEyhm: TDBEdit;
    N8: TMenuItem;
    N9: TMenuItem;
    DBEqx: TDBEdit;
    DBText1: TDBText;
    N3: TMenuItem;
    Label5: TLabel;
    function sswu(yuanshi:string):real;
    function jgjs(shangji:string;xiaji:string;MM:string):string;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure N5Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure PC1Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure N3Click(Sender: TObject);
  private
    { Private declarations }
  public

    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

uses D_M, sd_gl, dd_gl, mr_jg, deng_lu, dl_gl, shan_chu;

{$R *.dfm}

function Tform1.sswu(yuanshi:string):real;
var
 dd:string;
begin
if pos('.',yuanshi)<>0 then
begin
  dd:=copy(yuanshi,pos('.',yuanshi)+1,3);

  if (strtofloat(dd)>=0)and(strtofloat(dd)<=25) then
    result:=strtofloat(copy(yuanshi,1,pos('.',yuanshi)-1))
  else
  if (strtofloat(dd)>25)and(strtofloat(dd)<=75) then
    result:=strtofloat(copy(yuanshi,1,pos('.',yuanshi)-1))+0.5
  else
  if (strtofloat(dd)>75)and(strtofloat(dd)<=99) then
    result:=strtofloat(copy(yuanshi,1,pos('.',yuanshi)-1))+1;
end
else
  result:=strtofloat(yuanshi);



  
end;


function Tform1.jgjs(shangji:string;xiaji:string;MM:string):string;
var
  tt,xiaoshi,fenzhong,allmoney:string;
begin
tt:='';
xiaoshi:='';
fenzhong:='';
allmoney:='';


 //tt:=timetostr(now()-strtodatetime(DM.ADOTgltemp.Lookup('卡编号',edit1.Text,'上机时间')));
 tt:=timetostr(strtodatetime(xiaji)-strtodatetime(shangji));
 xiaoshi:=copy(tt,1,2);
 if copy(xiaoshi,2,2)=':' then
 xiaoshi:=copy(xiaoshi,1,1);
 xiaoshi:=floattostr(strtofloat(xiaoshi)*strtofloat(MM));//小时位的计算

 if copy(tt,3,1)=':' then
    fenzhong:=copy(tt,4,2)
 else
    fenzhong:=copy(tt,3,2);
 fenzhong:=copy(floattostr(strtofloat(fenzhong)/60*strtofloat(MM)),1,4);// 分钟位的计算

 result:=floattostr(strtofloat(xiaoshi)+strtofloat(fenzhong));//总金额的计算


end;



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
 moneyall:double;
 ok,ss,xx:string;

begin
ss:='';
xx:='';

 if key=#13 then
   if (DM.ADOTgltemp.Lookup('卡编号',edit1.Text,'卡编号')=Null) then
      begin

       DM.ADOTgl.Append;
       DM.ADOTgl.FieldByName('卡编号').AsString:=edit1.Text;
       DM.ADOTgl.FieldByName('上机时间').AsString:=datetimetostr(now());
       DM.ADOTgl.FieldByName('操作员').AsString:=DBEyhm.Text;
       DM.ADOTgl.Post;
       DM.ADOTgltemp.Append;
       DM.ADOTgltemp.FieldByName('卡编号').AsString:=edit1.Text;
       DM.ADOTgltemp.FieldByName('上机时间').AsString:=datetimetostr(now());
       DM.ADOTgltemp.Post;
       edit1.Text:='';
       DBText1.Caption:=inttostr(strtoint(DBtext1.Caption)-1);
       DM.ADOQuery1.Close;
       DM.ADOQuery1.Open;
       DM.ADOQuery2.Close;
       DM.ADOQuery2.Open;
      end
   else
      begin

       dm.ADOTgl.Locate('卡编号;上机时间',vararrayof([DM.ADOTgltemp.Lookup('卡编号',edit1.Text,'卡编号'),DM.ADOTgltemp.Lookup('卡编号',edit1.Text,'上机时间')]),[]);
       dm.ADOTgl.Edit;
       DM.ADOTgl.FieldByName('下机时间').AsString:=datetimetostr(now());
       DM.ADOTgl.UpdateBatch;






      DM.ADOTgl.Edit;

      DM.ADOTjggl.First;
      ok:='';
      repeat
      begin
         if strtodatetime(DBEsj.Text)<=strtodatetime((datetostr(now())+' '+DBEshangji.Text)) then
           begin

              //情况2   *(*)
              if (strtodatetime(DBExj.Text)>=strtodatetime((datetostr(now())+' '+DBEshangji.Text)))and(strtodatetime(DBExj.Text)<strtodatetime((datetostr(now())+' '+DBExiaji.Text))) then
                 begin
                   DM.ADOTgl.FieldByName('结算').AsFloat:=sswu(jgjs(DBEsj.Text,datetostr(now())+' '+DBEshangji.Text,DBEmrjg.text))+sswu(jgjs(datetostr(now())+' '+DBEshangji.Text,DBExj.Text,DBEsdjg.Text));
                   ok:='ok';
                   break;
                 end;
              //情况5 *()*
              if (strtodatetime(DBExj.Text)>=strtodatetime((datetostr(now())+' '+DBExiaji.Text))) then
               begin
                moneyall:=0;
                moneyall:=sswu(jgjs(DBEsj.Text,datetostr(now())+' '+DBEshangji.Text,DBEmrjg.text));


                 while ok<>'ok' do
                 begin

                    DM.ADOTjggl.Next;

                      if DM.ADOTjggl.eof then
                        begin
                         DM.ADOTgl.FieldByName('结算').AsFloat:=moneyall+sswu(jgjs(datetostr(now())+' '+DBEshangji.Text,datetostr(now())+' '+DBExiaji.Text,DBEsdjg.Text))+sswu(jgjs(datetostr(now())+' '+DBExiaji.Text,DBExj.Text,DBEmrjg.Text));
                         ok:='ok';
                         break;
                        end;
                      if  (strtodatetime(DBExj.Text)<=strtodatetime((datetostr(now())+' '+DBEshangji.Text))) then
                        begin
                         DM.ADOTjggl.Prior;
                         
                         DM.ADOTgl.FieldByName('结算').AsFloat:=moneyall+sswu(jgjs(datetostr(now())+' '+DBEshangji.Text,datetostr(now())+' '+DBExiaji.Text,DBEsdjg.Text))+sswu(jgjs(datetostr(now())+' '+DBExiaji.Text,DBExj.Text,DBEmrjg.Text));
                         ok:='ok';
                         break;
                        end;

                    DM.ADOTjggl.Prior;
                    ss:=datetostr(now())+' '+DBExiaji.Text;
                    DM.ADOTjggl.Next;
                    xx:=datetostr(now())+' '+DBEshangji.Text;
                    DM.ADOTjggl.Prior;

                    moneyall:=moneyall+sswu(jgjs(datetostr(now())+' '+DBEshangji.Text,datetostr(now())+' '+DBExiaji.Text,DBEsdjg.Text))+sswu(jgjs(ss,xx,DBEmrjg.Text));
                    DM.ADOTjggl.Next;

                 end;



                break;
              end;


           end;



         if (strtodatetime(DBEsj.Text)>=strtodatetime((datetostr(now())+' '+DBEshangji.Text))) then
            begin
               //情况3   (**)
               if strtodatetime(DBExj.Text)<=strtodatetime((datetostr(now())+' '+DBExiaji.Text)) then
                  begin
                   DM.ADOTgl.FieldByName('结算').AsFloat:=sswu(jgjs(DBEsj.Text,DBExj.Text,DBEsdjg.Text));
                   ok:='ok';
                   break;
                  end;
               //情况4(*)*
            if strtodatetime(DBEsj.Text)<=strtodatetime((datetostr(now())+' '+DBExiaji.Text)) then
               if strtodatetime(DBExj.Text)>=strtodatetime((datetostr(now())+' '+DBExiaji.Text)) then
                 begin
                   DM.ADOTjggl.Next;
                   if DM.ADOTjggl.Eof then
                     begin
                       DM.ADOTgl.FieldByName('结算').AsFloat:=sswu(jgjs(DBEsj.Text,datetostr(now())+' '+DBExiaji.Text,DBEsdjg.Text))+sswu(jgjs(datetostr(now())+' '+DBExiaji.Text,DBExj.Text,DBEmrjg.text));
                       ok:='ok';
                       break;
                     end
                   else
                    begin
                      if (strtodatetime(DBExj.Text)<=strtodatetime((datetostr(now())+' '+DBEshangji.Text))) then
                        begin
                         DM.ADOTjggl.Prior;
                         DM.ADOTgl.FieldByName('结算').AsFloat:=sswu(jgjs(DBEsj.Text,datetostr(now())+' '+DBExiaji.Text,DBEsdjg.Text))+sswu(jgjs(datetostr(now())+' '+DBExiaji.Text,DBExj.Text,DBEmrjg.text));
                         ok:='ok';
                         break;
                        end;
                    end;
                 end;
            end;

      end;
        DM.ADOTjggl.Next;
      until DM.ADOTjggl.Eof;

      //情况1 **()
              if ok='' then
                begin
                 DM.ADOTgl.FieldByName('结算').AsFloat:=sswu(jgjs(DBEsj.Text,DBExj.Text,DBEmrjg.text));
                 
                 ok:=''
                end;

      DM.ADOTgl.UpdateBatch;





       DM.ADOTgltemp.Locate('卡编号',edit1.Text,[]);
       DM.ADOTgltemp.Edit;
       DM.ADOTgltemp.Delete;
       DM.ADOTgltemp.UpdateBatch;

       Edit1.Text:='';

       DM.ADOQuery1.Close;
       DM.ADOQuery1.Open;
       DM.ADOQuery2.Close;
       DM.ADOQuery2.Open;

       DBtext1.Caption:=inttostr(strtoint(DBtext1.Caption)+1);
      end;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
  sdgl.ShowModal;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
label2.Caption:=datetimetostr(now());
end;

procedure TForm1.PC1Click(Sender: TObject);
begin
 ddgl.ShowModal;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
  mrjg.ShowModal;
end;

procedure TForm1.N6Click(Sender: TObject);
begin
if DBEqx.Text='admin' then
  dlgl.ShowModal
else
  showmessage('您没有这个权限');

end;

procedure TForm1.N4Click(Sender: TObject);
begin
denglu.ShowModal;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
DM.ADOC.Execute;
DM.ADOTgltemp.Active:=true;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
shanchu.ShowModal;
end;

end.

⌨️ 快捷键说明

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