📄 realtyc331.pas
字号:
unit RealtyC331;
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_RealtyC331 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Edit5: TEdit;
Edit6: TEdit;
DateTimePicker1: TDateTimePicker;
Label6: TLabel;
ComboBox1: TComboBox;
Label14: TLabel;
CheckBox1: TCheckBox;
Button5: TButton;
Button7: TButton;
Edit7: TEdit;
Button1: TButton;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure NN6Click(Sender: TObject);
procedure ToolButton10Click(Sender: TObject);
procedure GetID;
procedure FormCreate(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
bMod:bool;
sTable:string;
cols:integer;
end;
var
f_RealtyC331: Tf_RealtyC331;
implementation
uses data, main,RealtyC33,RealtyA14,Car4s931;
{$R *.dfm}
//Initial******************************
procedure Tf_RealtyC331.FormCreate(Sender: TObject);
Var
query,query1:TADOQuery;
stemp:string;
begin
datetimepicker1.Date:=date;
query:=TADOQuery.Create(nil);
query.Connection:=DataModuleADO.ADOConnection1;
query1:=TADOQuery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
query.SQL.clear;
query.sql.add('select distinct 名称 from 仪表种类');
query.Open;
while not query.eof do
begin
combobox1.Items.Add(query.fieldbyname('名称').Value);
query.Next;
end;
if f_RealtyC33.bMod=false then
begin
GetID;
end;
if f_RealtyC33.bMod then
begin
query.SQL.Clear;
query.SQL.Add('select * from 房间仪表 where 编号='''+f_RealtyC33.ListView1.Selected.Caption+'''');
query.Open;
if query.RecordCount>0 then
begin
query1.sql.Clear;
query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
query1.Open;
if query1.RecordCount>0 then stemp:=query1.fieldbyname('编号').Value+'--'+query1.fieldbyname('名称').Value;
edit1.Text:=query.fieldbyname('编号').Value;
combobox1.ItemIndex:=combobox1.Items.IndexOf(query.fieldbyname('仪表种类').Value);
edit7.text:=stemp;
edit2.Text:=query.fieldbyname('损耗率').Value;
edit3.Text:=query.fieldbyname('倍率').Value;
edit4.Text:=query.fieldbyname('回程').Value;
datetimepicker1.Date:=strtodate(query.fieldbyname('上次读数日期').Value);
edit5.Text:=query.fieldbyname('上次读数').Value;
edit6.Text:=query.fieldbyname('备注').Value;
if query.fieldbyname('是否主表').Value<>'N' then checkbox1.Checked:=true
else checkbox1.Checked:=false;
end;
end;
query1.Close;
query1.free;
query.Close;
query.free;
end;
procedure Tf_RealtyC331.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_RealtyC331.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_RealtyC331.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
//Close*************************************
procedure Tf_RealtyC331.NN6Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyC331.ToolButton10Click(Sender: TObject);
begin
NN6Click(Sender);
end;
procedure Tf_RealtyC331.Button7Click(Sender: TObject);
Var
query,query1:TADOQuery;
s,s1,s2,stemp,stemp1,stemp2,r1:string;
i,j:integer;
b:bool;
begin
query:=TADOQuery.Create(nil);
query.Connection:=DataModuleADO.ADOConnection1;
query1:=TADOQuery.Create(nil);
query1.Connection:=DataModuleADO.ADOConnection1;
s2:=mainform.getNum(edit7.text);
if edit1.Text='' then
begin
showmessage('编号不能为空!');
edit1.SetFocus;
exit;
end;
if combobox1.Text='' then
begin
showmessage('仪表种类不能为空!');
combobox1.SetFocus;
exit;
end;
if edit7.Text='' then
begin
showmessage('房间不能为空!');
edit7.SetFocus;
exit;
end;
if edit3.Text='' then
begin
showmessage('倍率不能为空!');
edit3.SetFocus;
exit;
end;
if edit4.Text='' then
begin
showmessage('回程不能为空!');
edit4.SetFocus;
exit;
end;
edit2.Text:=mainform.StdDou2(edit2.Text);
edit3.Text:=mainform.StdDou2(edit3.Text);
edit4.Text:=mainform.StdDou2(edit4.Text);
edit5.Text:=mainform.StdDou2(edit5.Text);
if edit6.Text='' then edit6.Text:='-';
if checkbox1.Checked then s1:='Y' else s1:='N';
query.sql.Clear;
query.SQL.Add('select * from 房间 where 编号='''+s2+'''');
query.Open;
if query.RecordCount>0 then r1:=query.fieldbyname('管理处').value;
if f_RealtyC33.bMod=true then
begin
if edit1.Text<>f_RealtyC33.listview1.selected.Caption then
begin
query.sql.clear;
query.SQL.add('select * from 房间仪表 where 编号='''+edit1.text+'''');
query.open;
if query.RecordCount>0 then
begin
showmessage('此记录已存在');
exit;
end;
end;
{b:=false;
if (f_RealtyC33.ListView1.Selected.Subitems[0]=combobox1.Text) and (f_RealtyC33.ListView1.Selected.Subitems[1]=s2) then b:=true;
if b=false then
begin
showmessage('此记录已存在');
exit;
end; }
s:='update 房间仪表 set 编号='''+edit1.Text;
s:=s+''',仪表种类='''+combobox1.Text;
s:=s+''',房间='''+s2;
s:=s+''',损耗率='+edit2.Text;
s:=s+',倍率='+edit3.Text;
s:=s+',回程='+edit4.Text;
s:=s+',上次读数='+edit5.text;
s:=s+',上次读数日期='''+datetostr(datetimepicker1.Date);
s:=s+''',备注='''+edit6.Text;
s:=s+''',是否主表='''+s1;
s:=s+''' where 编号='''+f_RealtyC33.ListView1.Selected.Caption+'''';
query.SQL.Clear;
query.sql.Add(s);
DataModuleADO.ADOConnection1.BeginTrans;
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
s:='select * from 房间仪表 where 编号 ='''+edit1.Text;
s:=s+'''';
query.SQL.Clear;
Query.SQL.Add(s);
Query.Open ;
if query.RecordCount>0 then
begin
query1.sql.clear;
query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
query1.Open;
if query1.RecordCount>0 then
begin
stemp1:=query1.fieldbyname('管理区').Value;
end;
with f_RealtyC33.ListView1.selected do
begin
Caption:=query.fieldbyname('编号').Value;
SubItems[0]:=Query.FieldByName('仪表种类').Value;
SubItems[1]:=mainform.getName('房间',query.fieldbyname('编号').Value);
SubItems[2]:=Query.FieldByName('倍率').Value;
SubItems[3]:=Query.FieldByName('回程').Value;
SubItems[4]:=Query.FieldByName('损耗率').Value;
SubItems[5]:=Query.FieldByName('上次读数').Value;
SubItems[6]:=Query.FieldByName('备注').Value;
SubItems[7]:=mainform.getName('管理区',stemp1);
end;
query.Next;
end;
query1.close;
query1.Free;
query.close;
query.Free;
close;
end
else
begin
query.sql.clear;
query.SQL.add('select * from 房间仪表 where 编号='''+edit1.text+'''');
query.open;
if query.RecordCount>0 then
begin
showmessage('此记录已存在');
exit;
end;
s:='select * from 房间仪表 where 房间='''+s2;
s:=s+''' and 仪表种类='''+ combobox1.Text;
s:=s+'''';
query.sql.clear;
query.SQL.add(s);
query.open;
if query.RecordCount>0 then
begin
showmessage('此记录已存在');
exit;
end;
s:='insert into 房间仪表 (编号,仪表种类,房间,倍率,回程,';
s:=s+'损耗率,上次读数日期,上次读数,是否主表,';
s:=s+'备注,总表)';
s:=s+'values (:s1,:s2,:s3,:s4,:s5,';
s:=s+':s6,:s7,:s8,:s9,:s10,:s11)';
query.SQL.Clear;
query.SQL.Add(s);
query.Parameters.ParamByName('s1').Value:=edit1.Text;
query.Parameters.ParamByName('s2').Value:=combobox1.Text;
query.Parameters.ParamByName('s3').Value:=s2;
query.Parameters.ParamByName('s4').Value:=strtofloat(edit3.text);
query.Parameters.ParamByName('s5').Value:=strtofloat(edit4.Text);
query.Parameters.ParamByName('s6').Value:=strtofloat(edit2.Text);
query.Parameters.ParamByName('s7').Value:=datetostr(datetimepicker1.date);
query.Parameters.ParamByName('s8').Value:=strtofloat(edit5.Text);
query.Parameters.ParamByName('s9').Value:=s1;
query.Parameters.ParamByName('s10').Value:=edit6.Text;
query.Parameters.ParamByName('s11').Value:='-';
DataModuleADO.ADOConnection1.BeginTrans;
query.ExecSQL;
DataModuleADO.ADOConnection1.CommitTrans;
s:='select * from 房间仪表 where 编号 ='''+edit1.Text;
s:=s+'''';
query.SQL.Clear;
Query.SQL.Add(s);
Query.Open ;
if query.RecordCount>0 then
begin
query1.sql.clear;
query1.SQL.add('select * from 房间 where 编号='''+query.fieldbyname('房间').Value+'''');
query1.Open;
if query1.RecordCount>0 then
begin
stemp1:=query1.fieldbyname('管理区').Value;
end;
with f_RealtyC33.ListView1.Items.Add do
begin
Caption:=query.fieldbyname('编号').Value;
SubItems.Add(Query.FieldByName('仪表种类').Value);
SubItems.Add(mainform.getName('房间',query.fieldbyname('编号').Value));
SubItems.Add(Query.FieldByName('倍率').Value);
SubItems.Add(Query.FieldByName('回程').Value);
SubItems.Add(Query.FieldByName('损耗率').Value);
SubItems.Add(Query.FieldByName('上次读数').Value);
SubItems.Add(Query.FieldByName('备注').Value);
SubItems.Add(mainform.getName('管理区',stemp1));
end;
query.Next;
end;
query1.Close;
query1.free;
query.Close;
query.free;
if f_RealtyC33.listview1.Items.Count > 0 then f_RealtyC33.ListView1.Items.Item[0].Selected := True;
getid;
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
combobox1.ItemIndex:=combobox1.Items.IndexOf('');
datetimepicker1.date:=date;
checkbox1.checked:=false;
end;
end;
procedure Tf_RealtyC331.Button5Click(Sender: TObject);
begin
close;
end;
procedure Tf_RealtyC331.Button1Click(Sender: TObject);
var
query:TADOQuery;
s:string;
begin
f_RealtyA14:=Tf_RealtyA14.Create(self);
f_RealtyA14.ToolButton6.Visible:=true;
f_RealtyA14.ShowModal;
if f_RealtyA14.bOk=true then
begin
edit7.Text:=f_RealtyA14.sNum+'--'+f_RealtyA14.sName;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -