realtyc61.pas

来自「物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、」· PAS 代码 · 共 366 行

PAS
366
字号
unit RealtyC61;

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_RealtyC61 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label4: TLabel;
    Edit5: TEdit;
    edit4: TComboBox;
    Edit6: TEdit;
    Edit8: TEdit;
    Edit7: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label16: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Edit9: TEdit;
    Label19: TLabel;
    DateTimePicker1: TDateTimePicker;
    PopupMenu1: TPopupMenu;
    N53: TMenuItem;
    N54: TMenuItem;
    N55: TMenuItem;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    ListView1: TListView;
    Memo1: TMemo;
    Label3: TLabel;
    Button5: TButton;
    Button7: TButton;
    Button1: TButton;
    Button2: TButton;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure GetID;
    procedure FormCreate(Sender: TObject);
    procedure N53Click(Sender: TObject);
    procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure N54Click(Sender: TObject);
    procedure N55Click(Sender: TObject);
    procedure ListView1CustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure Button7Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure edit4Select(Sender: TObject);

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


var
  f_RealtyC61: Tf_RealtyC61;
implementation
uses data, main,RealtyC62,RealtyC611,RealtyB22,RealtyA14,Car4s931;
{$R *.dfm}
//Initial******************************
procedure Tf_RealtyC61.FormCreate(Sender: TObject);
Var
    query,query1:TADOQuery;
    s,s1,s2:string;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;
    query1:=TADOQuery.Create(nil);
    query1.Connection:=DataModuleADO.ADOConnection1;

    edit4.Items.add('新增结算方式');

    query.SQL.Add('select * from 辅助资料 where 类别='''+'结算方式'+'''');
    query.Open;
    while not query.Eof do
    begin
        Edit4.Items.Add(query.fieldbyname('名称').Value);
        query.Next;
    end;
    query.close;
    query.free;
    
    GetID;
    Datetimepicker1.Date:=date;
    edit8.text:=czy;   
end;

procedure Tf_RealtyC61.GetID;
Var
    query:TADOQuery;
    s:string;
    i:integer;
begin
    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;

    s := 'select top 1 * from 保证金 ORDER BY  单号 DESC';

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

    query.Close;
    query.free;
end;

//Tab****************************************
procedure Tf_RealtyC61.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if key=13 then
        Begin
            key:=0;
            perform(WM_NEXTDLGCTL,0,0);
        end
    else if key=VK_ESCAPE then close;
end;

//FreeForm**********************************
procedure Tf_RealtyC61.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action := caFree;
end;

procedure Tf_RealtyC61.N53Click(Sender: TObject);
begin
    bMod:=false;
    f_RealtyC611:=Tf_RealtyC611.create(self);
    f_RealtyC611.showmodal;
    if ListView1.Items.Count>0 then ListView1.Items.Item[0].Selected:=true;
end;

procedure Tf_RealtyC61.ListView1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
     if Button=mbRight then
     PopupMenu1.Popup(mouse.CursorPos.X,mouse.CursorPos.Y);
end;

procedure Tf_RealtyC61.N54Click(Sender: TObject);
begin
    if listview1.SelCount=0 then exit;
    bMod:=true;
    f_RealtyC611:=Tf_RealtyC611.create(self);
    f_RealtyC611.showmodal;
    if ListView1.Items.Count>0 then ListView1.Items.Item[0].Selected:=true;
end;

procedure Tf_RealtyC61.N55Click(Sender: TObject);
begin
    if listview1.SelCount=0 then exit;
    listview1.Selected.Delete;
end;

procedure Tf_RealtyC61.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
    if Item.Selected then
    begin
        Sender.Canvas.Brush.Color:=clMenuhighlight;
        (Sender as TListview).Canvas.Font.Color:=clwhite;
    end;
end;

procedure Tf_RealtyC61.Button7Click(Sender: TObject);
Var
    query:TADOQuery;
    s,s1,s2,s3,s4,r1:string;
    i,j:integer;
    d1,d2:double;
begin
    r1:=mainform.getNum(edit2.Text);
    if edit1.Text='' then
    begin
        showmessage('单号不能为空!');
        edit1.SetFocus;
        exit;
    end;
    if edit2.Text='' then
    begin
        showmessage('客户不能为空!');
        edit2.SetFocus;
        exit;
    end;
    if edit4.Text='' then
    begin
        showmessage('结算方式不能为空!');
        edit4.SetFocus;
        exit;
    end;
    if edit5.Text='' then
    begin
        showmessage('保证金额不能为空!');
        edit5.SetFocus;
        exit;
    end;

    edit5.Text:=mainform.stddou2(edit5.text);
    if edit6.text='' then edit6.Text:='-';
    edit7.text:=mainform.stddou2(edit7.text);
    if Memo1.Lines.Text='' then Memo1.Lines.Text:='-';
    if edit8.text='' then edit8.Text:='-';
    if edit9.text='' then edit9.Text:='-';


    query:=TADOQuery.Create(nil);
    query.Connection:=DataModuleADO.ADOConnection1;

    query.SQL.Clear;
    query.SQL.add('select * from 保证金 where 单号='''+edit1.Text+'''');
    query.open;
    if query.RecordCount>0 then
    begin
        showmessage('单号重复!');
        edit1.SetFocus;
        query.close;
        query.free;
        exit;
    end;

    s:='insert into 保证金 (单号,客户,房间,结算方式,保证金额,';
    s:=s+'收款日期,收据号,退款金额,备注,制单人,';
    s:=s+'修订人)';
    s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
    s:=s+':s6,:s7,:s8,:s9,:s10,';
    s:=s+':s11)';

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

    query.Parameters.ParamByName('s1').Value:=edit1.Text;
    query.Parameters.ParamByName('s2').Value:=r1;
    query.Parameters.ParamByName('s3').Value:=mainform.getNum(edit3.text);
    query.Parameters.ParamByName('s4').Value:=edit4.text;
    query.Parameters.ParamByName('s5').Value:=strtofloat(edit5.text);
    query.Parameters.ParamByName('s6').Value:=datetostr(datetimepicker1.date);
    query.Parameters.ParamByName('s7').Value:=edit6.text;
    query.Parameters.ParamByName('s8').Value:=mainform.stddou2(edit7.text);
    query.Parameters.ParamByName('s9').Value:=Memo1.Lines.Text;
    query.Parameters.ParamByName('s10').Value:=edit8.text;
    query.Parameters.ParamByName('s11').Value:=edit9.text;

    DataModuleADO.ADOConnection1.BeginTrans;
    query.ExecSQL;
    DataModuleADO.ADOConnection1.CommitTrans;

    if listview1.Items.Count>0 then
    begin
        for i:=0 to listview1.Items.Count-1 do
        begin
            if listview1.Items.Item[i].Caption='' then listview1.Items.Item[i].Caption:='-';
            listview1.Items.Item[i].SubItems[0]:=mainform.stddou2(listview1.Items.Item[i].SubItems[0]);

            s:='insert into 保证金明细 (单号,保证金项目,保证金额)';
            s:=s+'values (:s1,:s2,:s3,:s4)';

            query.sql.clear;
            query.SQL.add(s);
            query.Parameters.ParamByName('s1').Value:=edit1.text;
            query.Parameters.ParamByName('s2').Value:=listview1.Items.Item[i].Caption;
            query.Parameters.ParamByName('s3').Value:=strtofloat(listview1.Items.Item[i].subitems[0]);

            DataModuleADO.ADOConnection1.BeginTrans;
            query.ExecSQL;
            DataModuleADO.ADOConnection1.CommitTrans;
        end;
    end;
    query.Close;
    query.free;

    showmessage('保存成功!');

    getid;
    edit2.text:='';
    edit3.text:='';
    edit4.ItemIndex:=edit4.Items.IndexOf('');
    edit5.text:='';
    edit6.text:='';
    edit7.text:='';
    edit8.text:=czy;
    edit9.text:='';
    Memo1.Lines.Text:='';
    datetimepicker1.date:=date;
    listview1.Items.Clear;  

end;

procedure Tf_RealtyC61.Button5Click(Sender: TObject);
begin
    close;
end;

procedure Tf_RealtyC61.Button1Click(Sender: TObject);
begin
    f_RealtyB22:=Tf_RealtyB22.Create(self);
    f_RealtyB22.toolButton6.Visible:=true;
    f_RealtyB22.ShowModal;

    if  f_RealtyB22.bOk=true then
    begin
        edit2.Text:=f_RealtyB22.ListView1.Selected.Caption+'--'+f_RealtyB22.ListView1.Selected.SubItems[0];
    end;
end;

procedure Tf_RealtyC61.Button2Click(Sender: TObject);
begin
    f_RealtyA14:=Tf_RealtyA14.Create(self);
    f_RealtyA14.ToolButton6.Visible:=true;
    f_RealtyA14.ShowModal;

    if  f_RealtyA14.bOk=true then
    begin
       edit3.Text:=f_RealtyA14.sNum+'--'+f_RealtyA14.sName;
    end;
end;

procedure Tf_RealtyC61.edit4Select(Sender: TObject);
begin
    if edit4.Text='新增结算方式' then
    begin
        mainform.t1:='结算方式';
        f_Car4s931:=Tf_Car4s931.Create(self);
        f_Car4s931.showmodal;

        if f_Car4s931.bOK=true then
        begin
            edit4.Items.Add(mainform.t1);
            edit4.ItemIndex:=edit4.Items.IndexOf(mainform.t1);
        end
        else edit4.ItemIndex:=edit4.Items.IndexOf('');
    end;
end;

end.

⌨️ 快捷键说明

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