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

📄 c_hoteldata.pas

📁 立方酒店管理系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:

    if tblKfzt.FindKey([AKfbh]) then
    begin
      Result.AKfbh := AKfbh;
      Result.AZdbh := tblKfzt.FieldByName('D_ZDBH').AsString;
      Result.AKrbh := tblKfzt.FieldByName('D_KRBH').AsString;
      Result.AYjbh := tblKfzt.FieldByName('D_YJBH').AsString;
      Result.AKfbz := tblKfzt.FieldByName('D_KFBZ').AsString;
      Result.ASjfj := tblKfzt.FieldByName('D_SJFJ').AsCurrency;

      if tblKrxx.FindKey([Result.AKrbh]) then
      begin
        Result.AKrxm := tblKrxx.FieldByName('D_KRXM').AsString;
        Result.AKrlx := tblKrxx.FieldByName('D_KRLX').AsString;
        Result.ADdrq := tblKrxx.FieldByName('D_DDRQ').AsDateTime;
        Result.ADdsj := tblKrxx.FieldByName('D_DDSJ').AsDateTime;
      end;

      if tblKryj.FindKey([Result.AYjbh,0]) then
      begin
        Result.AFkfs := tblKryj.FieldByName('D_FKFS').AsString;
        Result.AYfrq := tblKryj.FieldByName('D_YFRQ').AsDateTime;
        Result.AYfsj := tblKryj.FieldByName('D_YFSJ').AsDateTime;
      end;

      if tblKrzd.FindKey([Result.AZdbh,0]) then
      begin
        Result.AZdlb := tblKrzd.FieldByName('D_ZDLB').AsString;
        Result.AXfje := tblKrzd.FieldByName('D_XFJE').AsCurrency;
      end;

      Result.AZdhh := GetMaxZdhh(Result.AZdbh);
    end;
  finally
    tblKfzt.Close;
    tblKrxx.Close;
    tblKryj.Close;
    tblKrzd.Close;
  end;
end;

//金额求和
function THotelData.SumSysJe(const ASqlStr: string): Currency;
begin
  with qrySysData do
  begin
    SQL.Clear;
    SQL.Add(ASqlStr);
    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if Fields[0].IsNull then Result := 0
    else Result := Fields[0].AsCurrency;
    Close;
  end;
end;

//金额求和
function THotelData.SumJe(const ASqlStr: string): Currency;
begin
  with qryUserData do
  begin
    SQL.Clear;
    SQL.Add(ASqlStr);
    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if Fields[0].IsNull then Result := 0
    else Result := Fields[0].AsCurrency;
    Close;
  end;
end;

//更新客房状态中的半全价和间接房价
procedure THotelData.UpdateJjfj(const AKfbh: string;ABqj: Integer;AJjfj: Currency);
begin
  try
    try
      tblKfzt.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if tblKfzt.FindKey([AKfbh]) then
    begin
      tblKfzt.Edit;
      tblKfzt.FieldByName('D_JJFJ').AsCurrency :=
        tblKfzt.FieldByName('D_JJFJ').AsCurrency+AJjfj;
      if ABqj=BQJ_BJ then
        tblKfzt.FieldByName('D_BJS').AsInteger :=
          tblKfzt.FieldByName('D_BJS').AsInteger + ABqj
      else
        tblKfzt.FieldByName('D_QJS').AsInteger :=
          tblKfzt.FieldByName('D_QJS').AsInteger + ABqj;
      tblKfzt.Post;
    end;
  finally
    tblKfzt.Close;
  end;
end;

//添加半全价到bqj.db
procedure THotelData.UpdateBqj(const AKfbh: string;ABqj: Integer;ASjfj,AJjfj: Currency);
begin
  if not tblBqj.Active then
    try
      tblBqj.Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

  if tblBqj.FindKey([AKfbh]) then
  begin
    tblBqj.Edit;
    tblBqj.FieldByName('D_SJFJ').AsCurrency := ASjfj;

    if ABqj=BQJ_BJ then
    begin
      tblBqj.FieldByName('D_BJS').AsInteger :=
        tblBqj.FieldByName('D_BJS').AsInteger + 1;//ABqj;
      tblBqj.FieldByName('D_BJ').AsString   :=
        tblBqj.FIeldByName('D_BJ').AsString+CurrToStr(AJjfj) + ',';
    end
    else
    if ABqj=BQJ_QJ then
    begin
      tblBqj.FieldByName('D_QJS').AsInteger :=
        tblBqj.FieldByName('D_QJS').AsInteger + 1;//ABqj;
      tblBqj.FieldByName('D_QJ').AsString   :=
        tblBqj.FIeldByName('D_QJ').AsString+CurrToStr(AJjfj) + ',';
    end;

    tblBqj.FieldByName('D_JJFJ').AsCurrency :=
      tblBqj.FieldByName('D_JJFJ').AsCurrency + AJjfj;
    tblBqj.Post;
  end
  else
  begin
    tblBqj.Insert;
    tblBqj.FieldByName('D_KFBH').AsString   := AKfbh;
    tblBqj.FieldByName('D_SJFJ').AsCurrency := ASjfj;
    if ABqj=BQJ_BJ then
    begin
      tblBqj.FieldByName('D_BJS').AsInteger :=
        tblBqj.FieldByName('D_BJS').AsInteger + 1;//ABqj;
      tblBqj.FieldByName('D_BJ').AsString   := CurrToStr(AJjfj) + ',';
    end
    else
    if ABqj=BQJ_QJ then
    begin
      tblBqj.FieldByName('D_QJS').AsInteger :=
        tblBqj.FieldByName('D_QJS').AsInteger + 1;//ABqj;
      tblBqj.FieldByName('D_QJ').AsString   := CurrToStr(AJjfj) + ',';
    end;

    tblBqj.FieldByName('D_JJFJ').AsCurrency := AJjfj;
    tblBqj.Post;
  end;

  //tblBqj.ApplyUpdates;
  //tblBqj.CommitUpdates;
  tblBqj.Close;
end;

//返回当前的客房状态
function THotelData.CheckKfzt(const AKfbh: string) : string;
begin
  with qryUserData do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select D_KFZT from KFZT where D_KFBH="'+AKfbh+'"');
    Prepare;
    Open;
    if Fields[0].IsNull then Result := ''
    else Result := Fields[0].AsString;
  end;
  {with tblSysData do
  begin
    if Active then Active := False;
    TableName := 'KFZT';
    try
      Open;
    except
      On E:Exception do
      begin
        ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                    +#13#10
                    +'错误信息:'
                    +E.Message);
        raise;
      end;
    end;

    if FindKey([AKfbh]) then
      Result := FieldByName('D_KFZT').AsString
    else
      Result := '';
    Close;
  end;}
end;

//获得编号
function THotelData.GetBh(const AFieldName,APrevStr: string): string;
begin
  Result := IntToHex(Trunc(TimeStampToMSecs(DateTimeToTimeStamp(Now))),12);
  {Result := '';
  with tblSysData do
  begin
    if Active then Active := False;
    TableName := 'BH';
    try
      try
        Open
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      First;
      Edit;
      //20020627 edit by ls.
      //根据当前时间自动生成编号
      //FieldByName(AFieldName).AsString := APrevStr+AddDH(FieldByName(AFieldName).AsString);
      FieldByName(AFieldName).AsString := IntToHex(Trunc(TimeStampToMSecs(DateTimeToTimeStamp(Now))),12);
      Post;
      Result := FieldByName(AFieldName).AsString;
    finally
      Close;
    end;
  end;}
end;

//通过名称查找编号
function THotelData.FindBh(const ATableName,AFieldBh,AFieldMc,AMc: string): string;
begin
  Result := '';
  Result := '';
  with qrySysData do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select '+AFieldBh+' from '+ATableName+' where '+AFieldMc+'="'+AMc+'"');
    Prepare;
    Open;
    Result := Fields[0].AsString;
  end;

  {with tblSysData do
  begin
    try
      if Active then Active := False;
      TableName := ATableName;
      try
        Open;
      except
          On E:Exception do
          begin
            ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                        +#13#10
                        +'错误信息:'
                        +E.Message);
            raise;
          end;
      end;

      if Locate(AFieldMc,AMc,[]) then
        Result := FieldByName(AFieldBh).AsString;
    finally
      Close;
    end;
  end;}
end;


//通过编号查找名称
function THotelData.FindMc(const ATableName,AFieldBh,AFieldMc,ABh: string): string;
begin
  Result := '';
  with qrySysData do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select '+AFieldMc+' from '+ATableName+' where '+AFieldBh+'="'+ABh+'"');
    Prepare;
    Open;
    Result := Fields[0].AsString;
  end;
  {with tblSysData do
  begin
    if Active then Active := False;
    TableName := ATableName;
    try
      try
        Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      if Locate(AFieldBh,ABh,[]) then
        Result := FieldByName(AFieldMc).AsString;
    finally
      Close;
    end;
  end;}
end;

function THotelData.FindUserBh(const ATableName,AFieldBh,AFieldMc,AMc: string): string;
begin
  Result := '';
  with tblUserData do
  begin
    if Active then Active := False;
    TableName := ATableName;
    try
      try
        Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      if Locate(AFieldMc,AMc,[]) then
        Result := FieldByName(AFieldBh).AsString;
    finally
      Close;
    end;
  end;
end;

//将所有名称添加到下拉框中
procedure THotelData.ListMc(AComboBox: TComboBox;const ATableName,AFieldMc: string);
begin
  with tblSysData do
  begin
    if Active then Active := False;
    TableName := ATableName;
    try

      try
        Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      AComboBox.Items.Clear;
      First;
      while not Eof do
      begin
        AComboBox.Items.Add(FieldByName(AFieldMc).AsString);
        Next;
      end;
    finally
      Close;
    end;
  end;
end;

//将所有代码和名称添加到下拉框中
procedure THotelData.ListDm(AComboBox: TComboBox;const ATableName,AFieldMc: string);
var
  s: string;
begin
  with tblSysData do
  begin
    if Active then Active := False;
    TableName := ATableName;
    try

      try
        Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      AComboBox.Items.Clear;
      First;
      while not Eof do
      begin
        s := FieldByName('D_DM').AsString+'|'+FieldByName(AFieldMc).AsString;
        AComboBox.Items.Add(s);
        Next;
      end;
    finally
      Close;
    end;
  end;
end;

procedure THotelData.ListDbDm(ADBComboBox: TDBComboBox;const ATableName,AFieldMc: string);
var
  s: string;
begin
  with tblSysData do
  begin
    if Active then Active := False;
    TableName := ATableName;
    try

      try
        Open;
      except
        On E:Exception do
        begin
          ShowWarning('打开数据库出错,请检查网络连接是否正常!'
                      +#13#10
                      +'错误信息:'
                      +E.Message);
          raise;
        end;
      end;

      ADBComboBox.Items.Clear;
      First;
      while not Eof do
      begin
        s := FieldbyName('D_DM').AsString+'|'+FieldByName(AFieldMc).AsString;
        ADBComboBox.Items.Add(s);
        Next;
      end;
    finally
      Close;
    end;
  end;
end;

//路径初始化
procedure THotelData.DataModuleCreate(Sender: TObject);
begin
  //获取系统路径,系统配置文件
  APP_DIR := ExtractFilePath(Application.ExeName);
  SystemReportDir := APP_DIR+'report\';
  {Database_Dir := APP_DIR + 'Database\UserData';
  if not Session.IsAlias('HotelUser') then
  begin
    Session.AddStandardAlias('HotelUser',Database_Dir,'PARADOX');
    Session.SaveConfigFile;
  end;}
  DatabaseUser.Connected := True;
end;

end.

⌨️ 快捷键说明

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