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

📄 commsmdljf.pas

📁 县级供电企业电费核算源码, 在客户处正常运行8年以上, Delphi 5开发,数据库为Interbase/Firebird, 深入使用Procedure和Trigger等, 对入门者具有很好的参考价值
💻 PAS
📖 第 1 页 / 共 2 页
字号:
					Var A_No1, A_No2, A_No3:String;
                    Var A_Last1, A_Last2, A_Last3:Extended;
                    Var A_Count1, A_Count2, A_Count3:Extended);
Begin
	With DM_Proc.sp_GetAmmeter Do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
        Prepare();
        ExecProc();
        UnPrepare();
        A_No1 := Params.ParamValues['v_No1'];
        A_No2 := Params.ParamValues['v_No2'];
        A_No3 := Params.ParamValues['v_No3'];
        A_Last1 := Params.ParamValues['v_Last1'];
        A_Last2 := Params.ParamValues['v_Last2'];
        A_Last3 := Params.ParamValues['v_Last3'];
        A_Count1 := Params.ParamValues['v_Count1'];
        A_Count2 := Params.ParamValues['v_Count2'];
        A_Count3 := Params.ParamValues['v_Count3'];
    End;
End;

//根据用户号得到表号,只取表的后六位
procedure p_GetAmmeterNo(v_House_No:String;	Var A_No1, A_No2, A_No3:String);
Begin
	With DM_Proc.sp_GetAmmeterNo Do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
        Prepare();
        ExecProc();
        UnPrepare();
        A_No1 := Params.ParamValues['v_No1'];
        A_No2 := Params.ParamValues['v_No2'];
        A_No3 := Params.ParamValues['v_No3'];
    End;
End;

//求农网维护费单价
Function F_GetServicePrice(V_Elect_No:String):Extended;
Begin
	with DM_Proc,sp_GetServicePrice do
    Begin
        Params.ParamValues['v_Elect_No'] := V_Elect_No;
        Prepare();
    	ExecProc();
        UnPrepare();
        Result := Params.ParamValues['V_Service_Price'];
    End;
End;

//求农网维护费
Function F_GetServiceFee(V_House_No:String):Extended;
begin
	with Dm_Proc, sp_GetServiceFee do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
        Prepare();
        ExecProc();
        UnPrepare();
        Result := Params.ParamValues['v_Service_Fee'];
    End;
end;

//求农网维护费
Procedure P_GetService(V_House_No:String;
						Var v_Service_Price1, v_Service_Price2, v_Service_Price3, v_Service_Price4,
                        v_Service_Amount1, V_Service_Amount2, v_Service_Amount3, v_Service_Amount4,
                        v_Service_Amount: Extended);
begin
	with Dm_Proc, sp_GetService do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
        Prepare();
        ExecProc();
        UnPrepare();
        v_Service_Price1 := Params.ParamValues['v_Service_Price1'];
        v_Service_Price2 := Params.ParamValues['v_Service_Price2'];
        v_Service_Price3 := Params.ParamValues['v_Service_Price3'];
        v_Service_Price4 := Params.ParamValues['v_Service_Price4'];
        v_Service_Amount1 := Params.ParamValues['v_Service_Amount1'];
        v_Service_Amount2 := Params.ParamValues['v_Service_Amount2'];
        v_Service_Amount3 := Params.ParamValues['v_Service_Amount3'];
        v_Service_Amount4 := Params.ParamValues['v_Service_Amount4'];
        v_Service_Amount := Params.ParamValues['v_Service_Amount'];
    End;
end;

//求国家电价
Procedure P_GetCountry(V_House_No:String;
						Var V_Country_Price1, v_Country_Price2, V_Country_Price3, V_Country_Price4,
                        v_Country_Amount1, V_Country_Amount2, v_Country_Amount3, v_Country_Amount4,
                        v_Country_Amount: Extended);
begin
	with Dm_Proc, sp_GetCountry do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
        Prepare();
        ExecProc();
        UnPrepare();
        v_Country_Price1 := Params.ParamValues['v_Country_Price1'];
        v_Country_Price2 := Params.ParamValues['v_Country_Price2'];
        v_Country_Price3 := Params.ParamValues['v_Country_Price3'];
        v_Country_Price4 := Params.ParamValues['v_Country_Price4'];
        v_Country_Amount1 := Params.ParamValues['v_Country_Amount1'];
        v_Country_Amount2 := Params.ParamValues['v_Country_Amount2'];
        v_Country_Amount3 := Params.ParamValues['v_Country_Amount3'];
        v_Country_Amount4 := Params.ParamValues['v_Country_Amount4'];
        v_Country_Amount := Params.ParamValues['v_Country_Amount'];
    End;
end;

//设置用户的当前选择, 其实应为设置当前使用的变压器
//Procedure p_SetCurrent(v_Class:String;v_Value:String);
//Begin
//	with DM_Proc,sp_SetCurrent do
//    begin
//    	Params.ParamValues['v_Class'] := v_Class;
//    	Params.ParamValues['v_value'] := v_Value;
//        Prepare();
//        ExecProc();
//        UnPrepare();
//    end;
//	P_Log('当前变压器: '+v_Value);

//End;

//根据用户号求用电地址
Function F_GetAddress(V_House_No:String):String;
Begin
	with DM_Proc,sp_GetAddress do
    Begin
    	Params.ParamValues['v_House_No'] := V_House_No;
        Prepare();
    	ExecProc();
        UnPrepare();
        Result := Params.ParamValues['V_Address'];
    End;
End;

//根据用户号求线路名称
Function F_GetLine(V_House_No:String):String;
Begin
	with DM_Proc,sp_GetLine do
    Begin
    	Params.ParamValues['v_House_No'] := V_House_No;
        Prepare();
    	ExecProc();
        UnPrepare();
        Result := Params.ParamValues['V_Line'];
    End;
End;

//取得当前系统月份
Procedure P_GetCurrentYearMonth(Var CYear, CMonth:String);
Begin
   	with dm_proc,sp_GetCurrent do
    begin
		Params.ParamValues['V_CurrentDate'] := '';
        Prepare();
		ExecProc();
        CYear := Params.ParamValues['V_CurrentYear'];
        CMonth := Params.ParamValues['V_CurrentMonth'];
		UnPrepare();
    end;
end;

//显示消息窗口
Procedure P_OpenMessageBox(v_Caption:String;v_Msg:String);
Begin
	F_Msg.P_Set(v_Caption, v_Msg);
    F_Msg.Show();
    F_Msg.Update();
End;

//关闭消息窗口
Procedure P_CloseMessageBox;
Begin
    F_Msg.Close();
End;

//得到指定表的计量数
Function f_GetUsedCount(v_House_no:String;v_Ammeter_Order:Integer):Extended;
Begin
   	with dm_proc,sp_GetUsedCount do
    begin
		Params.ParamValues['V_House_no'] := v_House_No;
		Params.ParamValues['V_Ammeter_Order'] := v_Ammeter_Order;
        Prepare();
		ExecProc();
		UnPrepare();
        Result := Params.ParamValues['V_Count'];
    end;
End;

//根据村、社编号取得村、社名称
Procedure p_GetVillageName(v_Village_No:String;var v_Village_Name:String);
Begin
   	with dm_proc,sp_GetVillageName do
    begin
		Try
			Params.ParamValues['V_Village_no'] := v_Village_No;
    	    Prepare();
			ExecProc();
			UnPrepare();
	        v_Village_Name := Params.ParamValues['V_Village_Name'];
        Finally
        End;
    end;
End;

//设置变压器为自主供电
Procedure p_DisbranchTransfer(v_Transfer_No:String);
Begin
    with dm_proc, sp_DisbranchTransfer do
    Begin
    	Params.ParamValues['v_Transfer_No'] := v_Transfer_No;
        Prepare();
        ExecProc();
        UnPrepare();
    End;
End;

//设置变压器为并户供电方式
Procedure p_MergeTransfer(v_STransfer_No, v_DTransfer_No:String);
Begin
    with dm_proc, sp_MergeTransfer do
    Begin
    	Params.ParamValues['v_STransfer_No'] := v_STransfer_No;
    	Params.ParamValues['v_DTransfer_No'] := v_DTransfer_No;
        Prepare();
        ExecProc();
        UnPrepare();
    End;
End;

//用户换表
Procedure p_AmmeterReplace(v_House_No:String;v_Ammeter_Order:integer);
Begin
    with dm_proc, sp_AmmeterReplace do
    Begin
    	Params.ParamValues['v_House_No'] := v_House_No;
    	Params.ParamValues['v_Ammeter_Order'] := v_Ammeter_Order;
        Prepare();
        ExecProc();
        UnPrepare();
    End;
End;

//变压器改编号
Procedure p_TransferAlterLine(v_STransfer_No, v_DTransfer_No:String);
Begin
	with dm_Proc, sp_TransferAlterLine do
    Begin
    	Params.ParamValues['v_STransfer_No'] := v_STransfer_No;
    	Params.ParamValues['v_DTransfer_No'] := v_DTransfer_No;
        Prepare();
        ExecProc();
        UnPrepare();
    End;
End;


//移表
Procedure p_AmmeterMove(v_SHouse_No:String;v_Ammeter_No:String;v_DHouse_No:String);
Begin
	with dm_proc,sp_AmmeterMove do
    Begin
    	Params.ParamValues['v_SHouse_No'] := v_SHouse_No;
    	Params.ParamValues['v_Ammeter_No'] := v_Ammeter_No;
    	Params.ParamValues['v_DHouse_No'] := v_DHouse_No;
        Prepare();
        ExecProc();
        UnPrepare();
    End;
End;

//根据户号得到变压器相关信息
Procedure P_GetTransferInfo(vHouseNo:String;var vTransferNo, vTransferName:String; var vAmmeterCount, vAutoAmmeterCount: Integer);
Begin
    With DM_Proc ,sp_GetTransferInfo Do
    Begin
        Params.ParamValues['vHouseNo'] := vHouseNo;
        Prepare;
        ExecProc;
        UnPrepare();
        vTransferNo := Params.ParamValues['vTransferNo'];
        vTransferName := Params.ParamValues['vTransferName'];
        vAmmeterCount := Params.ParamValues['vAmmeterCount'];
        vAutoAmmeterCount := Params.ParamValues['vAutoAmmeterCount'];
    End;
End;

//计算电炊用户数
Procedure P_CalcCooks();
Begin
    With DM_Proc ,sp_CalcCooks Do
    Begin
        Prepare;
        ExecProc;
        UnPrepare();
    End;
End;

//设置结算方式
Procedure SetIronMode(IronMode: Boolean);
Begin
	With DM_Table Do
    Begin
    	Query.Close();
		If IronMode Then
	    	Query.SQL.Text := 'Update Tb_Option Set f_Value = 1 Where f_Option = ''IronMode'''
		Else
        	Query.SQL.Text := 'Update Tb_Option Set f_Value = 0 Where f_Option = ''IronMode''';
		Try
	    	Query.ExecSQL();
        Except
        	ShowMessage('系统不能设置结算方式,请先升级您的系统!');
        End;
    End;
End;

//从数据库中读取结算方式, 加变损时返回True
Function GetIronMode():Boolean;
Begin
	Result := False;
	With DM_Table Do
    Begin
    	Query.Close();
    	Query.SQL.Text := 'Select f_Value From Tb_Option Where f_Option = ''IronMode''';
        Try
	    	Query.Open();
		    If Query['f_Value'] = 1 Then
    	    	Result := True;
        Except
//        	ShowMessage('系统启动后请立即进行升级!');
        End;
    End;
End;

//计算指定台变下的电炊用户数
Procedure P_CalcTransferCooks(vTransferNo:String);
Begin
    With DM_Proc ,sp_CalcTransferCooks Do
    Begin
        Params.ParamValues['vTransferNO'] := vTransferNo;
        Prepare;
        ExecProc;
        UnPrepare();
    End;
End;


//================================================================
Initialization//系统初始化部分
begin
	IniFile := TIniFile.Create('SMDLJF.INI');
    DefaultSection := 'Default';
    Default_Transfer_No := '';
    //进度条步长
    ProgressBarStep := IniFile.ReadInteger(DefaultSection,'ProgressBarStep',10);
    gFeeDBServer := IniFile.ReadString('收费','数据库服务器','CWCM-SERVER:E:\Data\Fee\Fee.FB');
    gEnabledFee := IniFile.ReadBool('收费','收费使能', False);
    IniFile.WriteString('收费','数据库服务器',gFeeDBServer);
    IniFile.WriteBool('收费','收费使能', gEnabledFee);
end;

finalization
Begin
    //进度条步长
	IniFile.WriteInteger(DefaultSection,'ProgressBarStep',ProgressBarStep);
End;


end.

⌨️ 快捷键说明

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