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

📄 realtyc42a.pas

📁 物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、各分公司、各物业管理处连接到一起
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit RealtyC42A;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dbcgrids, Grids, DBGrids, DB, ADODB, StdCtrls, Buttons, ExtCtrls,
  StrUtils, ExtDlgs, ComCtrls, math, ToolWin, ImgList, Menus;

type
    Tf_RealtyC42A = class(TForm)
    Label2: TLabel;
    Button5: TButton;
    Button7: TButton;
    Edit7: TEdit;
    Button1: TButton;
    Label3: TLabel;
    Edit5: TEdit;
    Button2: TButton;
    Label7: TLabel;
    Edit8: TEdit;
    Button3: TButton;
    DateTimePicker1: TDateTimePicker;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label4: TLabel;


    procedure NN6Click(Sender: TObject);


    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
     bMod:bool;
     sTable:string;
     cols:integer;
     bGetdata:bool;
  end;


var
  f_RealtyC42A: Tf_RealtyC42A;
implementation
uses data, main,RealtyC33,RealtyA12,Car4s931,realtyI11C,RealtyA11;
{$R *.dfm}



//Close*************************************
procedure Tf_RealtyC42A.NN6Click(Sender: TObject);
begin
    close;
end;



procedure Tf_RealtyC42A.Button7Click(Sender: TObject);
Var
    query,query1,query2,query11,query3:TADOQuery;
    sMonth,s,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,r,r3,ss,r1,r2,r4,r5,s77,r77,rr,sNum:string;
    i:integer;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;
    query1:=TADOQuery.Create(nil);
    query1.Connection:=DataModuleADO.ADOConnection1;
    query2:=TADOQuery.Create(nil);
    query2.Connection:=DataModuleADO.ADOConnection1;
    query11:=TADOQuery.Create(nil);
    query11.Connection:=DataModuleADO.ADOConnection1;
    query3:=TADOQuery.Create(nil);
    query3.Connection:=DataModuleADO.ADOConnection1;

    if (edit5.Text='') and (edit8.text='') and (edit7.Text='')  then
    begin
        showmessage('请选择要新增的单位');
        exit;
    end;

    if combobox1.Text='' then
    begin
        showmessage('请选择要新增的收费项目');
        exit;
    end;

    s:='select * from 收费项目 where 编号='''+mainform.getNum(combobox1.Text);
    s:=s+'''';

    query.SQL.clear;
    query.SQL.Add(s);
    query.Open;
    if query.RecordCount>0 then
    begin
        sNum:=query.fieldbyname('编号').Value ;
        r77:=query.fieldbyname('仪表种类').Value;
    end;

    if edit5.Text<>'' then
    begin
        ss:='按管理区';
        s:='select * from 抄表费用 where 收费月份='''+copy(datetostr(DateTimePicker1.Date),1,7);
        s:=s+''' and 收费项目='''+sNum;
        s:=s+''' and 自动生成类别='''+ss+'''';

        query.SQL.clear;
        query.SQL.Add(s);
        query.Open;
        if query.RecordCount>0 then
        begin
            showmessage('已经'+ss+'生成'+copy(datetostr(DateTimePicker1.Date),1,7)+'月份的收费项目:'+combobox1.Text+''' 的抄表收费');
            exit;
        end;

        query11.SQL.clear;
        query11.SQL.Add('select * from 房间 where 管理区='''+mainform.getNum(edit5.Text)+'''');
        query11.Open;
        while not query11.Eof do
        begin
            s2:=query11.fieldbyname('编号').Value;
            rr:=query11.fieldbyname('管理区').Value;

            s3:='-';
            query1.SQL.Clear;
            query1.SQL.Add('select * from 入伙登记 where 房间='''+s2+'''');
            query1.Open;
            if query1.RecordCount>0 then
            begin
                s3:=query1.fieldbyname('客户').Value;

                query1.SQL.Clear;
                query1.SQL.Add('select * from 客户资料 where 客户名称='''+s3+'''');
                query1.Open;
                if query1.RecordCount>0 then
                begin
                    s3:=query1.fieldbyname('客户代码').Value;
                end;
            end;


            s:='select * from 房间收费项目设置 where 房间编号='''+s2;
            s:=s+''' and  收费项目编号='''+mainform.getNum(combobox1.text);
            s:=s+'''';

            s9:='0';
            query.SQL.Clear;
            query.SQL.Add(s);
            query.Open;
            while not query.Eof do
            begin
                s4:=query.fieldbyname('收费项目编号').Value;
                s5:=query.fieldbyname('收费标准编号').Value;


                s:='select * from 收费项目 where 编号='''+s4;
                s:=s+''' and 费用项目类型='''+'抄表收费项目';
                s:=s+'''';

                query2.SQL.Clear;
                query2.SQL.Add(s);
                query2.Open;
                if query2.RecordCount>0 then
                begin
                    s:='select * from 收费标准 where 编号='''+query.fieldbyname('收费标准编号').Value;
                    s:=s+'''';

                    query2.SQL.Clear;
                    query2.SQL.Add(s);
                    query2.Open;
                    if query2.RecordCount>0 then
                    begin
                        s9:=query2.fieldbyname('单价').Value;


                        s:='select * from 收费时间 where 编号='''+query2.fieldbyname('收费时间').Value;
                        s:=s+'''';
                        query2.SQL.Clear;
                        query2.SQL.Add(s);
                        query2.Open;
                        if query2.RecordCount>0 then
                        begin
                            if query2.fieldbyname('名称').Value='收当月' then
                            begin
                                s6:=query2.fieldbyname('收费日期').Value;
                                if strtoint(s6)<10 then s6:='0'+s6;

                                s6:=copy(datetostr(DateTimePicker1.Date),1,7)+'-'+ s6;

                                sMonth:=copy(datetostr(DateTimePicker1.Date),1,7);
                            end;

                            if query2.fieldbyname('名称').Value='收上月' then
                            begin
                                if strtoint(query2.fieldbyname('收费日期').Value)<10 then s6:='0'+query2.fieldbyname('收费日期').Value
                                else s6:= query2.fieldbyname('收费日期').Value;

                                s7:=copy(datetostr(DateTimePicker1.Date),1,7)+'-01';
                                s7:=datetostr(strtodate(s7)-1);

                                s6:=copy(s7,1,7)+'-'+ s6;

                                sMonth:=copy(s7,1,7);
                            end;

                            if query2.fieldbyname('名称').Value='收下月' then
                            begin
                                if strtoint(query2.fieldbyname('收费日期').Value)<10 then s6:='0'+query2.fieldbyname('收费日期').Value
                                else s6:= query2.fieldbyname('收费日期').Value;

                                s7:=copy(datetostr(DateTimePicker1.Date),1,7)+'-28';
                                s7:=datetostr(strtodate(s7)+4);

                                s6:=copy(s7,1,7)+'-'+ s6;

                                sMonth:=copy(s7,1,7);
                            end;


                            if query2.fieldbyname('名称').Value='指定月' then
                            begin
                                s6:=query2.fieldbyname('收费日期').Value;
                                if strtoint(s6)<10 then s6:='0'+s6;

                                s6:=copy(datetostr(DateTimePicker1.Date),1,7)+'-'+ s6;

                                sMonth:=copy(datetostr(DateTimePicker1.Date),1,7);

                                s:='select * from 收费时间明细 where 编号='''+query2.fieldbyname('编号').Value;
                                s:=s+''' and 月份='''+copy(copy(datetostr(DateTimePicker1.Date),1,7),6,2);
                                s:=s+'''';

                                query2.SQL.Clear;
                                query2.SQL.Add(s);
                                query2.Open;
                                if query2.RecordCount=0 then
                                begin
                                    s6:='';
                                    sMonth:='-';
                                end;
                            end;
                        end;
                    end;

                    s9:=mainform.StdDou2(s9);
                    r1:=mainform.StdDou2(r1);
                    r2:=mainform.StdDou2(r2);
                    r3:=mainform.StdDou2(r3);
                    r4:=mainform.StdDou2(r4);
                    r5:=mainform.StdDou2(r5);

                    query3.SQL.clear;
                    query3.SQL.Add('select * from 房间仪表 where 房间 ='''+s2+''' and 仪表种类='''+r77+'''');
                    query3.Open;
                    if query3.RecordCount>0 then
                    begin
                        s77:=query3.fieldbyname('编号').Value;
                    end;

                    s:='select * from 房间抄表 where 房间 ='''+s2;
                    s:=s+''' and 抄表月份='''+sMonth;
                    s:=s+''' and 房间仪表='''+s77;
                    s:=s+'''';

                    query3.SQL.clear;
                    query3.SQL.Add(s);
                    query3.Open;
                    if query3.RecordCount>0 then
                    begin
                        r1:=query3.fieldbyname('实际行度').Value;
                        r2:=query3.fieldbyname('上次读数').Value;
                        r3:=query3.fieldbyname('本次读数').Value;

                        s7:=query3.fieldbyname('上次读数日期').Value;
                        s8:=query3.fieldbyname('读数日期').Value;


                        s := 'select top 1 * from 抄表费用 ORDER BY  单号 DESC';

                        query1.SQL.Clear;
                        Query1.SQL.Add(s);
                        Query1.Open ;
                        if query1.recordcount > 0 then
                        begin
                            s:= Query1.Fieldbyname('单号').AsString;
                            s:= Copy(S, 1, 7);
                            i:= strtoint(s)+1;
                            if i<10 then s1 := '000000'+inttostr(i)
                            else if (i > 9) and (i<100) then s1 := '00000'+inttostr(i)
                            else if (i > 99) and (i<1000) then s1 := '0000'+inttostr(i)
                            else if (i > 999) and (i<10000) then s1 := '000'+inttostr(i)
                            else if (i > 9999) and (i<100000) then s1 := '00'+inttostr(i)
                            else if (i > 99999) and (i<1000000) then s1 := '0'+inttostr(i)
                            else if i>999999 then s1 := inttostr(i);
                        end
                        else  s1 := '0000001';

                        s:='select * from 抄表费用 where 收费月份='''+sMonth;
                        s:=s+''' and 房间='''+s2+''' and 收费项目='''+s4;
                        s:=s+'''';

                        query1.SQL.clear;
                        query1.SQL.Add(s);
                        query1.Open;
                        if (query1.RecordCount=0) and (s6<>'')then
                        begin
                            s:='insert into 抄表费用 (单号,房间,客户,收费项目,收费标准,';
                            s:=s+'应收日期,仪表,上次读数,本次读数,实际行度,';
                            s:=s+'公摊,总行度,计费开始日期,计费结束日期,单价,';
                            s:=s+'金额,优惠金额,优惠后金额,滞纳金截至日期,滞纳金天数,';
                            s:=s+'滞纳金,减免缴滞纳金,应收滞纳金,收取滞纳金,应收金额,';
                            s:=s+'已收金额,已收全,收全日期,备注,制单人,';
                            s:=s+'修订人,自动生成类别,收费月份)';
                            s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
                            s:=s+':s6,:s7,:s8,:s9,:s10,';
                            s:=s+':s11,:s12,:s13,:s14,:s15,';
                            s:=s+':s16,:s17,:s18,:s19,:s20,';
                            s:=s+':s21,:s22,:s23,:s24,:s25,';
                            s:=s+':s26,:s27,:s28,:s29,:s30,';
                            s:=s+':s31,:s32,:s33)';

                            query1.SQL.Clear;
                            query1.SQL.Add(s);

                            query1.Parameters.ParamByName('s1').Value:=s1;
                            query1.Parameters.ParamByName('s2').Value:=s2;
                            query1.Parameters.ParamByName('s3').Value:=s3;
                            query1.Parameters.ParamByName('s4').Value:=s4;
                            query1.Parameters.ParamByName('s5').Value:=s5;

                            query1.Parameters.ParamByName('s6').Value:=s6;
                            query1.Parameters.ParamByName('s7').Value:=s77;
                            query1.Parameters.ParamByName('s8').Value:=r2;
                            query1.Parameters.ParamByName('s9').Value:=r3;
                            query1.Parameters.ParamByName('s10').Value:=r1;

                            query1.Parameters.ParamByName('s11').Value:=strtofloat(r5);;
                            query1.Parameters.ParamByName('s12').Value:=strtofloat(r1)+strtofloat(r5);
                            query1.Parameters.ParamByName('s13').Value:=s7;
                            query1.Parameters.ParamByName('s14').Value:=s8;
                            query1.Parameters.ParamByName('s15').Value:=strtofloat(s9);
                            query1.Parameters.ParamByName('s16').Value:=strtofloat(s9)*(strtofloat(r1)+strtofloat(r5));


                            query1.Parameters.ParamByName('s17').Value:=0;
                            query1.Parameters.ParamByName('s18').Value:=0;

⌨️ 快捷键说明

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