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

📄 tcommsenddatathread_unit.pas

📁 这是一个非常实用的实时串口通讯程序
💻 PAS
📖 第 1 页 / 共 5 页
字号:
                                                                       if iIfopen=1  then
                                                                         AccountOpen :=false;
                                                                       if iChange=0 then
                                                                         AccountOpen :=true;
                                                                     end;
                                                                   except
                                                                   end;
                                                                 end;
                                                          7:     begin   //机房计费
                                                                   SQL.Text :=' SELECT PERSON_ACCOUNT.PA_ACCOUNT, PERSON_ACCOUNT.PA_PWD, '+
                                                                              '          PERSON_ACCOUNT.PA_STATUS, PERSON_ACCOUNT.PA_IFOPEN, '+
                                                                              '          PERSON_ACCOUNT.PA_MONEY,  '+
                                                                              '          DEGREETYPE.ChangeScale, ToTalDay_Limit, Pass_Limit '+
                                                                              ' FROM PERSON_ACCOUNT INNER JOIN '+
                                                                              '          DEGREETYPE ON '+
                                                                              '          PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID'+
                                                                              ' WHERE (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') AND '+
                                                                              '       (PERSON_ACCOUNT.PA_MONEY> 0) and (PA_STATUS=1)';// AND '+
                                                                              //'       (PERSON_ACCOUNT.PA_IFOPEN = ''0'')';
                                                                   try
                                                                     Open;
                                                                     if RecordCount >0 then
                                                                     begin
                                                                       AccountOpen :=true;
                                                                       iAccount     := FieldByName('PA_ACCOUNT').AsInteger;
                                                                       iAccountPwd  := FieldByName('PA_PWD').AsInteger;
                                                                       iStatus      := FieldByName('PA_STATUS').AsInteger-1;
                                                                       //iIfOpen      := FieldByName('PA_IFOPEN').AsInteger;
                                                                       iAMoney      := FieldByName('PA_MONEY').AsInteger;
                                                                       //iALMoney     := FieldByName('Pass_Limit').AsInteger;
                                                                       //iMFMoney     := FieldByName('MF_MONEY').AsInteger;
                                                                       iChange      := FieldbyName('ChangeScale').AsInteger;
                                                                     end;
                                                                   except
                                                                   end;
                                                                 end;
                                                          1:     begin   //售饭,消费
                                                                   Controltype :=0;
                                                                   SendStatus :=false;
                                                                   SQL.Text :=' SELECT PERSON_ACCOUNT.PA_ACCOUNT, PERSON_ACCOUNT.PA_PWD, '+
                                                                              '          PERSON_ACCOUNT.PA_STATUS,PERSON_ACCOUNT.PA_IFOPEN, '+
                                                                              '          PERSON_ACCOUNT.PA_MONEY, Use_PassWord, '+
                                                                              '          DEGREETYPE.ChangeScale, ToTalDay_Limit, Pass_Limit,'+
                                                                              '          PA_OverMoney ,PA_MFCount,DEGREETYPE.DEGREE_NAME,PA_DEPTID, '+
                                                                              '          PA_Name, ISNULL(PA_Sub+PA_RBack,0) As SendStaMoney '+
                                                                              ' FROM PERSON_ACCOUNT INNER JOIN '+
                                                                              '          DEGREETYPE ON '+
                                                                              ' PERSON_ACCOUNT.PA_DEGREEID = DEGREETYPE.DEGREE_ID  '+
                                                                              ' WHERE (PERSON_ACCOUNT.PA_CARDNO = ' + IntToStr(iAccount) + ') AND '+
                                                                              '       (PERSON_ACCOUNT.PA_MONEY >= 0) and (PA_STATUS=1) ';
                                                                   try
                                                                     Open;
                                                                     if RecordCount >0 then
                                                                     begin
                                                                       AccountOpen :=true;
                                                                       iAccount     := FieldByName('PA_ACCOUNT').AsInteger;
                                                                       iAccountPwd  := FieldByName('PA_PWD').AsInteger;
                                                                       iStatus      := FieldByName('PA_STATUS').AsInteger-1;
                                                                       //iIfOpen      := FieldByName('PA_IFOPEN').AsInteger;
                                                                       iAMoney      := FieldByName('PA_MONEY').AsInteger;
                                                                       idepid     :=FieldbyName('PA_DEPTID').AsInteger;
                                                                       idegname   :=FieldbyName('DEGREE_NAME').AsString;
                                                                       ipername   :=FieldbyName('PA_NAME').AsString;
                                                                       
                                                                       iSendStaMoney :=FieldbyName('SendStaMoney').AsInteger;
                                                                       //////////免费次数begin/////////////////////////
                                                                       if Controltype =0 then
                                                                       begin
                                                                         if MFControl and ( FieldByName('PA_MFCount').AsInteger>=1) then
                                                                         begin
                                                                           iAMoney      := 99999;  //免费用户发99999
                                                                           Controltype  :=1;
                                                                           ///插入免费、修改账户免费次数表begin////
                                                                           Close;
                                                                           Sql.Text  :='UPDATE PERSON_ACCOUNT SET PA_MFCount=PA_MFCount-1 '+
                                                                                        ' WHERE PA_ACCOUNT='+IntToStr(iAccount)+' '+
                                                                                        ' INSERT INTO MFRecordTAB   '+
                                                                                        '        (Account_No, Account_Name, Account_DeptID, Account_Degree, Record_Time, '+
                                                                                        '        Operator_Name, Operator_ID, TPathNum, MachineNum, CommandNum) '+
                                                                                        '  VALUES ('+IntToStr(iAccount)+', '''+ipername+''', '+IntToStr(idepid)+', '+
                                                                                        ' '''+idegname+''', '''+FormatDateTime('yyyy-mm-dd hh:nn:ss',now)+''','+
                                                                                        ' '''+UserName+''', '+IntToStr(UserID)+', '+IntToStr(CommNetDriver.GDataBuf[iHead+2])+', '+
                                                                                        ' '+IntToStr(CommNetDriver.GDataBuf[iHead+3])+',1)';
                                                                           ExecSql;
                                                                           ///插入免费表end/////
                                                                         end;
                                                                       end;
                                                                       //////////免费次数end/////////////////////////

                                                                       //////////透支限额begin/////////////////////////
                                                                       if Controltype =0 then
                                                                       begin
                                                                         if  (iAMoney =0) and (FieldByName('PA_OverMoney').AsInteger>0) then
                                                                         begin
                                                                           iAMoney      := FieldByName('PA_OverMoney').AsInteger;  //免费用户发99999
                                                                           Controltype  :=1;
                                                                           ///插入透支表begin////

                                                                           ///插入透支表end/////
                                                                         end;
                                                                       end;
                                                                       //////////透支限额end/////////////////////////

                                                                       /////////消费限额处理begin/////////////
                                                                       //if UsePassLimit=1 then
                                                                       if Controltype=0 then
                                                                       begin
                                                                         if FieldByName('Use_PassWord').AsInteger=1 then
                                                                         begin            ///日累计限额和当餐累计限额 比较 那个小用那个
                                                                           Controltype  :=3;
                                                                           if  FieldByName('Pass_Limit').AsInteger<=FieldByName('ToTalDay_Limit').AsInteger  then
                                                                           begin
                                                                             iALMoney := FieldByName('Pass_Limit').AsInteger;
                                                                           end
                                                                           else
                                                                           begin
                                                                             iALMoney := FieldByName('ToTalDay_Limit').AsInteger;
                                                                           end;
                                                                           if iAlMoney<=0 then  //限额小于0 赋值为0
                                                                           begin
                                                                             iAlMoney :=0;
                                                                           end;
                                                                         end
                                                                         else
                                                                         begin
                                                                           iALMoney :=$8000;     ///8000H不使用限额
                                                                         end;
                                                                       end;
                                                                       {else
                                                                       begin
                                                                         iALMoney :=$8000;     ///8000H不使用限额
                                                                       end; }
                                                                       //////////消费限额处理end ////////////////

                                                                       ///////发放补助、回绕//////////////////////////////////////
                                                                       if iSendStaMoney > 0 then
                                                                       begin
                                                                         iStatus :=$40;  //高位设置成$40
                                                                         iAMoney :=iSendStaMoney;
                                                                         SendStatus :=true;

                                                                       end;

                                                                     end;
                                                                   except
                                                                   end;
                                                                 end;
                                                          2:     begin    //出纳
                                                                    //////判断出纳机是否打开  //没打开 AccountOpen:=false;
                                                                    ////是操作员卡则不查询账户
                                                                  begin
                                                                    for OperCount :=1 to OperTotalCount do
                                                                       begin
                                                                         if (CardNo = OperApp[OperCount].OperCard) then //Open 出纳机
                                                                         begin
                                                                           iStatus :=$80;
                                                                           AccountOpen:=false;
                                                                           ///在此查询当前操作员序号
                                                                           IsOperCard :=true;
                                                                           NowOper := OperCount;
                                                                           ///////{drc}/////////////////
                                                                           if In_Servpay  then
                                                                           begin
                                                                             if AdminCardNo <> CardNo then
                                                                             begin
                                                                               iStatus :=$80;
                                                                               AccountOpen:=false;
                                                                               ///在此查询当前操作员序号
                                                                               IsOperCard :=false;
                                                                               NowOper := 0;
                                                                             end;
                                                                           end;
                                                                           break;

⌨️ 快捷键说明

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