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

📄 dbrw.pas

📁 计量功能 事件记录 购电提醒 欠费报警 负荷控制 自检功能 显示功能 用户插卡错误信息显示
💻 PAS
字号:
unit DBRW;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls,
  Forms, Dialogs,Db, DBTables, FieldDef, ConstDef;

type
  TFrmDBRW = class(TForm)
    tabEMKind: TTable;
    tabEPKind: TTable;
    procedure tabEMKindBeforeOpen(DataSet: TDataSet);
    procedure tabEMKindAfterClose(DataSet: TDataSet);
    procedure tabEPKindBeforeOpen(DataSet: TDataSet);
    procedure tabEPKindAfterClose(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Function  btFunGetEMeterKind(var RecEKind: RecEMeterKindType):Byte;
Function  btFunSetEMeterKind(RecEKind: RecEMeterKindType):Byte;
Function  btFunClearEMeterKind(RecEKind: RecEMeterKindType):Byte;

Function  btFunGetEPriceKind(var RecEKind: RecEPriceKindType):Byte;
Function  btFunSetEPriceKind(RecEKind: RecEPriceKindType):Byte;
Function  btFunClearEPriceKind(RecEKind: RecEPriceKindType):Byte;

implementation

{$R *.DFM}

Function  btFunGetEMeterKind(var RecEKind: RecEMeterKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
 FrmDBRW:=TFrmDBRW.Create(nil);
 with FrmDBRW do begin
  try
    tabEMKind.DatabaseName:=RecEKind.sAilas;
    tabEMKind.Open;
    with tabEMKind do begin
      SetKey;
      FieldByName(FLDiEKind).AsInteger:=RecEKind.iEKind;
      if GotoKey then begin//查找指定记录
        RecEKind.iEConst:=FieldByName(FLDiEConst).AsInteger;
        RecEKind.sEMemDT:=FieldByName(FLDSEMemDT).AsString;
        RecEKind.sEMark:=FieldByName(FLDSEMark).AsString;
        Result := Byte(CntSuccess);
       end
      else Result := Byte(CntNone);
     end;
    tabEMKind.close;
  except
    Result := Byte(CntFail);
   end;
 end;
 FrmDBRW.Close;
end;

Function  btFunSetEMeterKind(RecEKind: RecEMeterKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
 FrmDBRW:=TFrmDBRW.Create(nil);
 with FrmDBRW do begin
  try
    tabEMKind.DatabaseName:=RecEKind.sAilas;
    tabEMKind.Open;
    with tabEMKind do begin
      SetKey;
      FieldByName(FLDiEKind).AsInteger:=RecEKind.iEKind;
      if Not GotoKey then begin//查找指定记录
        Append;
        FieldByName(FLDiEKind).AsInteger:=RecEKind.iEKind;
       end;
        Edit;
        FieldByName(FLDiEConst).AsInteger:=RecEKind.iEConst;
        FieldByName(FLDSEMemDT).AsString:=RecEKind.sEMemDT;
        FieldByName(FLDSEMark).AsString:=RecEKind.sEMark;
        Post;
        Result := Byte(CntSuccess);
     end;
    tabEMKind.close;
  except
    Result := Byte(CntFail);
   end;
 end;
 FrmDBRW.Close;
end;

Function  btFunClearEMeterKind(RecEKind: RecEMeterKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
  FrmDBRW:=TFrmDBRW.Create(nil);
  with FrmDBRW do begin
   try
    tabEMKind.DatabaseName:=RecEKind.sAilas;
    tabEMKind.Open;
    with tabEMKind do begin
      while Not tabEMKind.Eof do begin
        tabEMKind.Delete; //删除旧数据
        tabEMKind.First;
       end;
        Result := Byte(CntSuccess);
     end;
    tabEMKind.close;
   except
     Result := Byte(CntFail);
    end;
  end;
  FrmDBRW.Close;
end;

Function  btFunGetEPriceKind(var RecEKind: RecEPriceKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
 FrmDBRW:=TFrmDBRW.Create(nil);
 with FrmDBRW do begin
  try
    tabEPKind.DatabaseName:=RecEKind.sAilas;
    tabEPKind.Open;
    with tabEPKind do begin
      SetKey;
      FieldByName(FLDiEPriceKind).AsInteger:=RecEKind.iEPriceKind;
      if GotoKey then begin//查找指定记录
        RecEKind.sEPriceName:=FieldByName(FLDsEPriceName).AsString;
        RecEKind.fEPrice:=FieldByName(FLDfEPrice).AsFloat;
        RecEKind.sEPriceMark:=FieldByName(FLDSEPriceMark).AsString;
        Result := Byte(CntSuccess);
       end
      else Result := Byte(CntNone);
     end;
    tabEPKind.close;
  except
    Result := Byte(CntFail);
   end;
 end;
 FrmDBRW.Close;
end;

Function  btFunSetEPriceKind(RecEKind: RecEPriceKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
 FrmDBRW:=TFrmDBRW.Create(nil);
 with FrmDBRW do begin
  try
    tabEPKind.DatabaseName:=RecEKind.sAilas;
    tabEPKind.Open;
    with tabEPKind do begin
      SetKey;
      FieldByName(FLDiEPriceKind).AsInteger:=RecEKind.iEPriceKind;
      if Not GotoKey then begin//查找指定记录
        Append;
        FieldByName(FLDiEPriceKind).AsInteger:=RecEKind.iEPriceKind;
       end;
        Edit;
        FieldByName(FLDSEPriceName).AsString:=RecEKind.sEPriceName;
        FieldByName(FLDfEPrice).AsFloat:=RecEKind.fEPrice;
        FieldByName(FLDSEPriceMark).AsString:=RecEKind.sEPriceMark;
        Post;
        Result := Byte(CntSuccess);
     end;
    tabEPKind.close;
  except
    Result := Byte(CntFail);
   end;
 end;
 FrmDBRW.Close;
end;

Function  btFunClearEPriceKind(RecEKind: RecEPriceKindType):Byte;
var
  FrmDBRW: TFrmDBRW;
begin
  FrmDBRW:=TFrmDBRW.Create(nil);
  with FrmDBRW do begin
   try
    tabEPKind.DatabaseName:=RecEKind.sAilas;
    tabEPKind.Open;
    with tabEPKind do begin
      while Not tabEPKind.Eof do begin
        tabEPKind.Delete; //删除旧数据
        tabEPKind.First;
       end;
        Result := Byte(CntSuccess);
     end;
    tabEPKind.close;
   except
     Result := Byte(CntFail);
    end;
  end;
  FrmDBRW.Close;
end;


procedure TFrmDBRW.tabEMKindBeforeOpen(DataSet: TDataSet);
begin
  Session.AddPassword(Psw_EMKind);
end;

procedure TFrmDBRW.tabEMKindAfterClose(DataSet: TDataSet);
begin
  Session.RemovePassword(Psw_EMKind);
end;

procedure TFrmDBRW.tabEPKindBeforeOpen(DataSet: TDataSet);
begin
  Session.AddPassword(Psw_EPKind);
end;

procedure TFrmDBRW.tabEPKindAfterClose(DataSet: TDataSet);
begin
  Session.RemovePassword(Psw_EPKind);
end;

end.

⌨️ 快捷键说明

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