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

📄 charge_report_400v_f.pas

📁 县级供电企业电费核算源码, 在客户处正常运行8年以上, Delphi 5开发,数据库为Interbase/Firebird, 深入使用Procedure和Trigger等, 对入门者具有很好的参考价值
💻 PAS
字号:
unit Charge_Report_400V_F;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, Grids, DBGrids, StdCtrls, ComCtrls, ExtCtrls, ppDB,
  ppDBPipe, ppParameter, ppVar, ppBands, ppReport, ppStrtch, ppSubRpt,
  ppCtrls, ppPrnabl, ppClass, ppCache, ppComm, ppRelatv, ppProd, ppEndUsr;

type
  TF_Charge_Report_400V = class(TForm)
    PC_Charge: TPageControl;
    Ts_400V: TTabSheet;
    DBG_400V: TDBGrid;
    Panel1: TPanel;
    Panel2: TPanel;
    Bt_Close: TButton;
    Panel3: TPanel;
    Bt_Calc: TButton;
    Bt_Print: TButton;
    RB_Charged: TRadioButton;
    Rb_UnCharged: TRadioButton;
    Rb_All: TRadioButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    DTP_Start: TDateTimePicker;
    Label3: TLabel;
    DTP_End: TDateTimePicker;
    CB_AllReceiver: TCheckBox;
    R_400V: TppReport;
    ppHeaderBand1: TppHeaderBand;
    ppLabel1: TppLabel;
    ppLabel2: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppLabel8: TppLabel;
    ppLabel9: TppLabel;
    ppLine2: TppLine;
    ppLine3: TppLine;
    ppLine4: TppLine;
    ppLine5: TppLine;
    ppLine6: TppLine;
    ppLine12: TppLine;
    ppDetailBand1: TppDetailBand;
    ppDBText1: TppDBText;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppDBText5: TppDBText;
    ppDBText8: TppDBText;
    ppLine1: TppLine;
    ppLine7: TppLine;
    ppLine8: TppLine;
    ppLine9: TppLine;
    ppLine10: TppLine;
    ppLine11: TppLine;
    ppFooterBand1: TppFooterBand;
    ppSummaryBand1: TppSummaryBand;
    ppDBCalc1: TppDBCalc;
    ppDBCalc2: TppDBCalc;
    ppDBCalc3: TppDBCalc;
    ppDBCalc4: TppDBCalc;
    ppDBCalc5: TppDBCalc;
    ppLine13: TppLine;
    ppLine14: TppLine;
    ppLine15: TppLine;
    ppLine16: TppLine;
    ppLine17: TppLine;
    ppLabel6: TppLabel;
    ppParameterList1: TppParameterList;
    DBP_400V: TppDBPipeline;
    D_400V: TppDesigner;
    Bt_Edit: TButton;
    Q_400V: TQuery;
    Ds_400V: TDataSource;
    procedure Bt_CalcClick(Sender: TObject);
    procedure Bt_CloseClick(Sender: TObject);
    procedure Bt_PrintClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Bt_EditClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_Charge_Report_400V: TF_Charge_Report_400V;

implementation

uses
	CommSmdljf, CommFee;

{$R *.DFM}

procedure TF_Charge_Report_400V.Bt_CalcClick(Sender: TObject);
Var
    StartDate, EndDate: String[10];
    SqlStr: String;
begin
	StartDate := DateToStr(DTP_Start.Date);
    EndDate := DateToStr(DTP_End.Date);

	Q_400V.Close();
//ShowMessage('Wait...');
	Q_400V.SQL.Clear();
	Q_400V.SQL.Add('Select H.f_Used_Amount As f_FeeAmount');
    Q_400V.SQL.Add(', V.f_Village_Name || H.f_Position As f_Position');
    Q_400V.SQL.Add(', H.*');
	Q_400V.SQL.Add(', H.f_Used_Amount - H.f_Last_Balance As f_Should_Receive');
    Q_400V.SQL.Add(' From Tb_House H');
    Q_400V.SQL.Add('   Join Tb_Village V On H.f_Village_No = V.f_Village_No');
	SqlStr := '';
    If RB_Charged.Checked Then//已缴费统计
    Begin
	    SqlStr := Format(' f_Charge_Date Between "%s" And "%s"',[StartDate, EndDate]);
    	If Not CB_AllReceiver.Checked Then//不是全部收款人
    		SqlStr := SqlStr + Format(' And f_Receiver = "%s"',[LoginNo]);
    End
    Else If RB_UnCharged.Checked Then//未交费用户统计
	    SqlStr := ' f_Charge_Date Is Null'
	Else If RB_All.Checked Then//全部用户
	    SqlStr := '';
    If SqlStr <> '' Then
    Begin
    	SqlStr := ' Where ' + SqlStr;
        Q_400V.SQL.Add(SqlStr);
    End;
	Q_400V.SQL.Add(' Order By f_House_No');
    Q_400V.Open();
end;

procedure TF_Charge_Report_400V.Bt_CloseClick(Sender: TObject);
begin
	Close();
end;

procedure TF_Charge_Report_400V.Bt_PrintClick(Sender: TObject);
begin
	R_400V.Template.FileName := gRootPath + '400V收费明细.RTM';
    R_400V.Template.LoadFromFile();
    R_400V.Print();
end;

procedure TF_Charge_Report_400V.FormCreate(Sender: TObject);
begin
	DTP_Start.DateTime := Now();
    DTP_End.DateTime := Now();
end;

procedure TF_Charge_Report_400V.Bt_EditClick(Sender: TObject);
begin
    R_400V.Template.FileName := gRootPath + '400V收费明细.RTM';
    R_400V.Template.LoadFromFile();
    D_400V.ShowModal();
    If R_400V.Modified Then
        If Application.MessageBox('报表已被修改, 存储报表?','系统提示',MB_YESNO) = IDYES Then
            R_400V.Template.SaveToFile();
end;

procedure TF_Charge_Report_400V.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
	MyReleaseForm(TForm(F_Charge_Report_400V));
end;

end.

⌨️ 快捷键说明

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