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

📄 table_dm.pas

📁 县级供电企业电费核算源码, 在客户处正常运行8年以上, Delphi 5开发,数据库为Interbase/Firebird, 深入使用Procedure和Trigger等, 对入门者具有很好的参考价值
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    Tb_HouseF_LATEFEE: TFloatField;
    Tb_HouseF_2YEAR: TStringField;
    V_Ammeter_DataF_LNO: TStringField;
    V_Ammeter_DataF_COUNT: TFloatField;
    Tb_HouseF_CT: TIntegerField;
    V_HouseF_2YEAR: TStringField;
    V_HouseF_CT: TIntegerField;
    V_Ammeter_DataF_CT: TIntegerField;
    Ds_OrigHouse: TDataSource;
    Tb_OrigHouse: TTable;
    Tb_OrigHouseF_HOUSE_NO: TStringField;
    Tb_OrigHouseF_HOUSE_NAME: TStringField;
    Ds_OrigAmmeter: TDataSource;
    Tb_OrigAmmeter: TTable;
    Query: TQuery;
    Tb_OrigHouseF_BOX_NO: TStringField;
    Tb_OrigAmmeterF_HOUSE_NO: TStringField;
    Tb_OrigAmmeterF_AMMETER_ORDER: TIntegerField;
    Tb_OrigAmmeterF_AMMETER_NO: TStringField;
    Tb_OrigAmmeterF_LNO: TStringField;
    Tb_OrigAmmeterF_LCONSTANT: TSmallintField;
    Tb_OrigAmmeterF_PLRATE: TSmallintField;
    Tb_OrigAmmeterF_THIS_COUNT: TFloatField;
    Tb_OrigHouseF_TRANSFER_NO: TStringField;
    V_Transfer_WastingF_COOKS: TIntegerField;
    v_Transfer_FeeF_COOKS: TIntegerField;
    V_Line_FeeF_COOKS: TIntegerField;
    Ds_ZeroFee: TDataSource;
    Tb_ZeroFee: TTable;
    Tb_ZeroFeeF_HOUSE_NO: TStringField;
    Tb_ZeroFeeF_HOUSE_NAME: TStringField;
    Tb_TransferF_CENTERNO: TIntegerField;
    Tb_HouseF_COUNT: TFloatField;
    Tb_HouseF_USED_COUNT: TFloatField;
    Tb_HouseF_TRANS_USED: TIntegerField;
    V_HouseF_USED_COUNT: TFloatField;
    V_House_AmmeterF_CT: TIntegerField;
    v_Fee: TTable;
    StringField1: TStringField;
    StringField2: TStringField;
    FloatField1: TFloatField;
    FloatField2: TFloatField;
    FloatField3: TFloatField;
    FloatField4: TFloatField;
    FloatField5: TFloatField;
    FloatField6: TFloatField;
    FloatField7: TFloatField;
    FloatField8: TFloatField;
    FloatField9: TFloatField;
    FloatField10: TFloatField;
    FloatField11: TFloatField;
    FloatField12: TFloatField;
    FloatField13: TFloatField;
    FloatField14: TFloatField;
    FloatField15: TFloatField;
    FloatField16: TFloatField;
    FloatField17: TFloatField;
    FloatField18: TFloatField;
    FloatField19: TFloatField;
    FloatField20: TFloatField;
    FloatField21: TFloatField;
    FloatField22: TFloatField;
    FloatField23: TFloatField;
    FloatField24: TFloatField;
    StringField3: TStringField;
    FloatField25: TFloatField;
    FloatField26: TFloatField;
    Ds_vFee: TDataSource;
    Tb_FeeF_BOX_NO: TStringField;
    v_FeeF_BOX_NO: TStringField;
    Tb_HouseF_IRON_USED: TSmallintField;
    Q_HouseCard: TQuery;
    Ds_HouseCard: TDataSource;
    Q_HouseCardF_HOUSE_NO: TStringField;
    Q_HouseCardF_HOUSE_NAME: TStringField;
    Q_HouseCardF_DATE: TDateTimeField;
    Q_HouseCardF_NO1: TStringField;
    Q_HouseCardF_COUNT1: TIntegerField;
    Q_HouseCardF_USEDCOUNT1: TIntegerField;
    Q_HouseCardF_NO2: TStringField;
    Q_HouseCardF_COUNT2: TIntegerField;
    Q_HouseCardF_USEDCOUNT2: TIntegerField;
    Q_HouseCardF_NO3: TStringField;
    Q_HouseCardF_COUNT3: TIntegerField;
    Q_HouseCardF_USEDCOUNT3: TIntegerField;
    Q_HouseCardF_ADJUST_COUNT: TIntegerField;
    Q_HouseCardF_NOTE: TStringField;
    v_FeeF_EXCESSCOUNT: TIntegerField;
    v_FeeF_EXCESSAMOUNT: TFloatField;
    Tb_Excess: TTable;
    Ds_Excess: TDataSource;
    Tb_ExcessF_EXCESSTYPE: TSmallintField;
    Tb_ExcessF_EXCESSNAME: TStringField;
    Tb_ExcessF_EXCESSSCALE: TFloatField;
    Tb_ExcessF_EXCESSPRICE: TFloatField;
    Tb_HouseF_EXCESSTYPE: TSmallintField;
    V_HouseF_EXCESSTYPE: TSmallintField;
    v_Transfer_FeeF_EXCESSCOUNT: TIntegerField;
    v_Transfer_FeeF_EXCESSAMOUNT: TFloatField;
    V_Line_FeeF_EXCESSCOUNT: TIntegerField;
    V_Line_FeeF_EXCESSAMOUNT: TFloatField;
    Tb_TransferF_COPYDAY: TSmallintField;
    Tb_TransferF_ISAUTO: TStringField;
    Tb_HouseF_PRINTINVOICE: TStringField;
    V_HouseF_TRANS_USED: TSmallintField;
    Q_Log: TQuery;
    Q_LogF_DATE: TDateTimeField;
    Q_LogF_LOG: TStringField;
    procedure Tb_Ammeter1AfterInsert(DataSet: TDataSet);
    procedure Tb_Ammeter_Detail_TempAfterInsert(DataSet: TDataSet);
    procedure Tb_CtAfterInsert(DataSet: TDataSet);
    procedure Tb_Ammeter1BeforePost(DataSet: TDataSet);
    procedure Tb_TransferAfterInsert(DataSet: TDataSet);
    procedure Tb_VillageAfterInsert(DataSet: TDataSet);
    procedure Tb_LineAfterInsert(DataSet: TDataSet);
    procedure Tb_HouseAfterInsert(DataSet: TDataSet);
    procedure Tb_AmmeterAfterInsert(DataSet: TDataSet);
    procedure Tb_AmmeterBeforeInsert(DataSet: TDataSet);
    procedure Tb_TownAfterInsert(DataSet: TDataSet);
    procedure DM_TableCreate(Sender: TObject);
    procedure Tb_AmmeterPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure Tb_HouseBeforeCancel(DataSet: TDataSet);
    procedure Tb_AmmeterAfterPost(DataSet: TDataSet);
    procedure Tb_Ammeter_ModelAfterScroll(DataSet: TDataSet);
    procedure Tb_Ct_ModelAfterScroll(DataSet: TDataSet);
    procedure Tb_VillageAfterScroll(DataSet: TDataSet);
    procedure Tb_StationAfterScroll(DataSet: TDataSet);
    procedure Tb_LineAfterScroll(DataSet: TDataSet);
    procedure Tb_TransferAfterScroll(DataSet: TDataSet);
    procedure Tb_TownAfterScroll(DataSet: TDataSet);
    procedure Tb_VoltageAfterScroll(DataSet: TDataSet);
    procedure Tb_AmmeterBeforeDelete(DataSet: TDataSet);
    procedure Tb_HouseBeforeDelete(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DM_Table: TDM_Table;

implementation

uses CommSmdljf, Comm, Variants;

{$R *.DFM}












procedure TDM_Table.Tb_Ammeter1AfterInsert(DataSet: TDataSet);
begin
	DataSet['F_Ammeter_Count'] := 0;
	DataSet['F_Ammeter_Right'] := Tb_House['F_House_Name'];//产权设为户名
    DataSet['F_Ammeter_Date'] := Default_Ammeter_Date;//装表日期
    DataSet['F_Ammeter_Model'] := Default_Ammeter_Model;//电表型号
end;





procedure TDM_Table.Tb_Ammeter_Detail_TempAfterInsert(DataSet: TDataSet);
begin
	DataSet['F_Date'] := Date();
    DataSet['F_Ammeter_Count'] := 0;
end;








procedure TDM_Table.Tb_CtAfterInsert(DataSet: TDataSet);
begin
	DataSet['F_Ct_Model']:= Default_Ct_Model;//CT型号
    DataSet['F_Ct_Right']:= Tb_House['F_House_name'];//CT产权
end;

procedure TDM_Table.Tb_Ammeter1BeforePost(DataSet: TDataSet);
begin
	If Tb_House.Modified Then
    	Tb_House.Post();
end;

procedure TDM_Table.Tb_TransferAfterInsert(DataSet: TDataSet);
begin
	If Dm_Table.Tb_Line.EOF Then
    Begin
    	Application.MessageBox('必须先输入线路信息','系统提示',0);
		DataSet.Cancel();
    End
    Else
    Begin
		If AutoNo Then
   			DataSet['F_Transfer_No'] := F_NextTransferNo(Tb_Line['F_Line_No'])
   		Else
   			DataSet['F_Transfer_No'] := Tb_Line['F_Line_No'];
    End;
end;

procedure TDM_Table.Tb_VillageAfterInsert(DataSet: TDataSet);
begin
     If AutoNo Then
     	DataSet['F_Village_No'] := F_NextVillageNo(Tb_Town['F_Town_No'])
     Else
     	DataSet['F_Village_No'] := Tb_Town['F_Town_No'];
end;

procedure TDM_Table.Tb_LineAfterInsert(DataSet: TDataSet);
begin
	If Dm_Table.Tb_Station.EOF Then
    Begin
    	Application.MessageBox('必须先输入供电所信息','系统提示',0);
		DataSet.Cancel();
    End
    Else
    Begin
		If AutoNo Then
     		DataSet['F_Line_No'] := F_NextLineNo(Tb_Station['F_Station_No'])
     	Else
     		DataSet['F_Line_No'] := Tb_Station['F_Station_No'];
    End;
end;

procedure TDM_Table.Tb_HouseAfterInsert(DataSet: TDataSet);
begin
	If DataSet['F_Transfer_No'] = NULL Then
    Begin
    	Application.MessageBox('请先输入变压器信息','系统提示',0);
		DataSet.Cancel();
	End
    Else
    Begin
		If AutoNo Then
    		DataSet['F_House_No'] := F_NextHouseNo(Tb_Transfer['F_Transfer_No']+Default_Volume_No)
    	Else
    		DataSet['F_House_No'] := Tb_Transfer['F_Transfer_No']+Default_Volume_No;
		DataSet['F_Village_No'] := Tb_Village['F_Village_No'];
    	DataSet['F_Elect_No'] := Default_Elect_No;//用电类别
		DataSet['F_Voltage_No'] := Default_Voltage_No;//电压类别
		DataSet['F_Village_No'] := Default_Village_No;
		DataSet['F_Box_No'] := Default_Box_No;//箱号
    	DataSet['F_Date'] := Default_Date;//建卡日期
    End;
end;

procedure TDM_Table.Tb_AmmeterAfterInsert(DataSet: TDataSet);
begin
	If DataSet['F_House_No'] = NULL Then
    Begin
    	Application.MessageBox('请先输入用户信息,再输入电表信息','系统提示',0);
		DataSet.Cancel();
	End
    Else
    Begin
		DataSet['F_Ammeter_Order'] := 1;
		DataSet['F_Ammeter_Count'] := 0;
		DataSet['F_Ammeter_Right'] := Tb_House['F_House_Name'];//产权设为户名
    	DataSet['F_Ammeter_Date'] := Default_Ammeter_Date;//装表日期
    	DataSet['F_Ammeter_Model'] := Default_Ammeter_Model;//电表型号
		DataSet['F_Ct_Model'] := Default_Ct_Model;//CT型号
    End;
end;

procedure TDM_Table.Tb_AmmeterBeforeInsert(DataSet: TDataSet);
begin
	If Tb_House.Modified Then
    	Tb_House.Post();
end;


procedure TDM_Table.Tb_TownAfterInsert(DataSet: TDataSet);
begin
	If AutoNo Then
    	DataSet['F_Town_No'] := F_NextTownNo();
end;

procedure TDM_Table.DM_TableCreate(Sender: TObject);
begin
    P_OpenTable(Tb_Station);
    P_OpenTable(Tb_Line);
    P_OpenTable(Tb_Transfer);
end;

procedure TDM_Table.Tb_AmmeterPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
	Application.MessageBox(PChar(E.Message + #13#10#13#10
                            + '系统将取消此操作'),
							'系统提示',0);
    DataSet.Cancel();
    Action := daAbort;
end;

procedure TDM_Table.Tb_HouseBeforeCancel(DataSet: TDataSet);
begin
	If Tb_Ammeter.Modified Then
    	Tb_Ammeter.Cancel();
end;

procedure TDM_Table.Tb_AmmeterAfterPost(DataSet: TDataSet);
Var
	V_Sender, V_Content:String;
begin
	P_GetMsg(V_Sender, V_Content);//取得消息
    if V_Sender <> '' Then
    	Application.MessageBox(PChar(v_Content),'系统提示',0);
end;




procedure TDM_Table.Tb_Ammeter_ModelAfterScroll(DataSet: TDataSet);
begin
	Default_Ammeter_Model := DataSet['F_Ammeter_Model'];
end;

procedure TDM_Table.Tb_Ct_ModelAfterScroll(DataSet: TDataSet);
begin
	Default_Ct_Model := DataSet['F_Ct_Model'];
end;

procedure TDM_Table.Tb_VillageAfterScroll(DataSet: TDataSet);
begin
	Default_Village_No := DataSet['F_Village_No'];
end;

procedure TDM_Table.Tb_StationAfterScroll(DataSet: TDataSet);
begin
	Default_Station_No := DataSet['F_Station_No'];
end;

procedure TDM_Table.Tb_LineAfterScroll(DataSet: TDataSet);
begin
	Default_Line_No := DataSet['F_Line_No'];
end;

procedure TDM_Table.Tb_TransferAfterScroll(DataSet: TDataSet);
begin
	If Default_Transfer_No <> DataSet['F_Transfer_No'] Then
	Begin
		Default_Transfer_No := DataSet['F_Transfer_No'];
		if (Default_Transfer_No = NULL) Then
			Default_Transfer_No := ' ';
	End;
end;

procedure TDM_Table.Tb_TownAfterScroll(DataSet: TDataSet);
begin
	Default_Town_No := DataSet['F_Town_No'];
end;







procedure TDM_Table.Tb_VoltageAfterScroll(DataSet: TDataSet);
begin
     Default_Voltage_No := DataSet['F_Voltage_No'];
end;

procedure TDM_Table.Tb_AmmeterBeforeDelete(DataSet: TDataSet);
begin
	if Application.MessageBox('请确认,你将删除电表,与此表相关的数据都将被删除','系统提示',MB_YESNO) <> IDYES Then
		Abort();
end;

procedure TDM_Table.Tb_HouseBeforeDelete(DataSet: TDataSet);
begin
	if Application.MessageBox('请确认,你将用电户,与此户相关的数据都将被删除','系统提示',MB_YESNO) <> IDYES Then
		Abort();
    P_Log('删除用户'+Dataset['f_House_No'],'TB_HOUSE');
end;

end.

⌨️ 快捷键说明

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