📄 unit1.pas
字号:
if (adoquery4.FieldByName('sbmc').AsString='') then aaa:=aaa+'请输入设备名称!';
if (adoquery4.FieldByName('azdd').AsString='') then aaa:=aaa+'请输入安装地点!';
if (adoquery4.FieldByName('eddl').AsString='') then aaa:=aaa+'请输入额定电流!';
if (adoquery4.FieldByName('fzr').AsString='') then aaa:=aaa+'请输入设备负责人!';
if ((adoquery4.FieldByName('jstd').AsInteger<0) or (adoquery4.FieldByName('jstd').AsInteger>7)) then aaa:=aaa+'本软件内建的设备监控通道为0--7,共8条,请选择0--7!';
if aaa <> '' then showmessage(aaa);
end;
end;
procedure TForm1.ADOQuery5BeforeScroll(DataSet: TDataSet);
var
aaa:string;
begin
if pagecontrol1.ActivePageIndex=3 then
begin
aaa:='';
if (adoquery5.FieldByName('servername').AsString='') then aaa:=aaa+'请输入dde服务器名称!';
if (adoquery5.FieldByName('itemname').AsString='') then aaa:=aaa+'请输入dde项目名称!';
if (adoquery5.FieldByName('start').AsString='') then aaa:=aaa+'请输入开始通道数据标识!';
if (adoquery5.FieldByName('num').AsString='') then aaa:=aaa+'请输入通道数目!';
if aaa <> '' then showmessage(aaa);
end;
end;
procedure TForm1.ADOQuery6BeforeScroll(DataSet: TDataSet);
var
aaa:string;
begin
if pagecontrol1.ActivePageIndex=4 then
begin
aaa:='';
if (adoquery6.FieldByName('name').AsString='') then aaa:=aaa+'请输入通道名称!';
if (adoquery6.FieldByName('sj_id').AsString='') then aaa:=aaa+'请输入数据标识!';
if (adoquery6.FieldByName('sj_type').AsString='') then aaa:=aaa+'请输入数据类型!';
if (adoquery6.FieldByName('save').AsString='') then aaa:=aaa+'请选择是否保存数据!';
if (adoquery6.FieldByName('if_wrw').AsString='') then aaa:=aaa+'请选择是否企业污染物!';
if (adoquery6.FieldByName('if_time').AsString='') then aaa:=aaa+'请选择是否在实时监控中显示图表!';
if (adoquery6.FieldByName('warming').AsString='') then aaa:=aaa+'请选择是否对此数据通道进行报警监控!';
if adoquery6.FieldByName('sj_id').AsInteger<8 then aaa:=aaa+'数据标识0--7已分配给设备监控通道,此处只能大于7!';
if ((adoquery6.FieldByName('bili').AsString='') and (adoquery6.FieldByName('total_dw').AsString <> '' )) then aaa:=aaa+'请输入换算比例!';
if aaa <> '' then showmessage(aaa);
end;
end;
procedure TForm1.DdeClientItem1Change(Sender: TObject);
var
tmp_sql,aaa,infostr:string;
info_length:integer; //收到的dde信息长度
i,m,n,k,b:integer; //循环变量
tdinfo:array [1..99] of info;
sn,mn,nn:integer;
begin
jvasqlscript9.Script.Clear;
//// 把dde信息解析到tdifo数组
infostr:=ddeclientitem1.Text;
info_length:=length(ddeclientitem1.Text);
m:=1;
n:=1;
aaa:='';
for i:=1 to info_length do
begin
if (infostr[i]=',') or (infostr[i]=';') then
begin
if infostr[i]=',' then
begin
if n=2 then tdinfo[m].time:=strtodatetime(aaa);
if n=1 then tdinfo[m].tongdao:=strtoint(aaa);
if n=3 then tdinfo[m].shuju:=strtofloat(aaa);
n:=n+1;
aaa:='';
end;
if infostr[i]=';' then
begin
tdinfo[m].shuju:=strtofloat(aaa);
aaa:='';
n:=1;
m:=m+1;
if m>100 then m:=1;
end;
end
else
begin
aaa:=aaa+infostr[i];
end;
end;
for i:=1 to m-1 do
begin
//td_shuju[tdinfo[i].tongdao+xx_td[1]]:=tdinfo[i].shuju;
if (tdinfo[i].tongdao +xx_td[1])<8 then
begin
n:=tdinfo[i].tongdao;
case n of
0: begin
if tdinfo[i].shuju <0.5 then jvtransled1.Color:=clred else jvtransled1.Color:=clskyblue;
if (td_shuju[0].shuju=1) and (jvtransled1.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['0',datetimetostr(td_shuju[0].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[0].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[0].shuju then td_shuju[0]:=tdinfo[i];
end;
1: begin
if tdinfo[i].shuju <0.5 then jvtransled2.Color:=clred else jvtransled2.Color:=clskyblue;
if (td_shuju[1].shuju=1) and (jvtransled2.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['1',datetimetostr(td_shuju[1].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[1].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[1].shuju then td_shuju[1]:=tdinfo[i];
end;
2: begin
if tdinfo[i].shuju <0.5 then jvtransled3.Color:=clred else jvtransled3.Color:=clskyblue;
if (td_shuju[2].shuju=1) and (jvtransled3.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['2',datetimetostr(td_shuju[2].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[2].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[2].shuju then td_shuju[2]:=tdinfo[i];
end;
3: begin
if tdinfo[i].shuju <0.5 then jvtransled4.Color:=clred else jvtransled4.Color:=clskyblue;
if (td_shuju[3].shuju=1) and (jvtransled4.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['3',datetimetostr(td_shuju[3].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[3].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[3].shuju then td_shuju[3]:=tdinfo[i];
end;
4: begin
if tdinfo[i].shuju <0.5 then jvtransled5.Color:=clred else jvtransled5.Color:=clskyblue;
if (td_shuju[4].shuju=1) and (jvtransled5.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['4',datetimetostr(td_shuju[4].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[4].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[4].shuju then td_shuju[4]:=tdinfo[i];
end;
5: begin
if tdinfo[i].shuju <0.5 then jvtransled6.Color:=clred else jvtransled6.Color:=clskyblue;
if (td_shuju[5].shuju=1) and (jvtransled6.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['5',datetimetostr(td_shuju[5].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[5].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[5].shuju then td_shuju[5]:=tdinfo[i];
end;
6: begin
if tdinfo[i].shuju <0.5 then jvtransled7.Color:=clred else jvtransled7.Color:=clskyblue;
if (td_shuju[6].shuju=1) and (jvtransled7.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['6',datetimetostr(td_shuju[6].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[6].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[6].shuju then td_shuju[6]:=tdinfo[i];
end;
7: begin
if tdinfo[i].shuju <0.5 then jvtransled8.Color:=clred else jvtransled8.Color:=clskyblue;
if (td_shuju[7].shuju=1) and (jvtransled8.Color=clskyblue) then
begin
aaa:=format('insert into shebeiyunxing (sj_id,kj,gj,yunxing) values (%s,"%s","%s","%s");',['7',datetimetostr(td_shuju[7].time),datetimetostr(tdinfo[i].time),datetimetostr(tdinfo[i].time-td_shuju[7].time)]);
jvasqlscript9.Script.Add(aaa);
end;
if tdinfo[i].shuju <> td_shuju[7].shuju then td_shuju[7]:=tdinfo[i];
end;
end;
end
else
begin
stringgrid1.Cells[1,tdinfo[i].tongdao-7+xx_td[1]]:=timetostr(tdinfo[i].time);
stringgrid1.Cells[2,tdinfo[i].tongdao-7+xx_td[1]]:=floattostr(tdinfo[i].shuju);
end;
end;
for i:=1 to m-1 do
begin
adoquery11.First;
while not adoquery11.Eof do
begin
n:=adoquery11.Fields[0].AsInteger;
if tdinfo[i].tongdao+xx_td[1]=adoquery11.Fields[2].AsInteger then
begin
if (adoquery11.Fields[3].AsString='实型') or (adoquery11.Fields[3].AsString='整型') or (adoquery11.Fields[3].AsString='计算') then
begin
if adoquery11.Fields[10].AsString <> '' then
begin
td_total[n].day:=td_total[n].day+tdinfo[i].shuju/adoquery11.Fields[11].AsFloat;
td_total[n].month:=td_total[n].month+tdinfo[i].shuju/adoquery11.Fields[11].AsFloat;
td_total[n].year:=td_total[n].year+tdinfo[i].shuju/adoquery11.Fields[11].AsFloat;
td_total[n].modify:=true;
end;
aaa:=format('insert into linshi (td_id,sj,data) values (%s,"%s",%s);',[adoquery11.fields[0].asstring,datetimetostr(tdinfo[i].time),floattostr(tdinfo[i].shuju)]); //存储
jvasqlscript9.Script.Add(aaa);
td_shuju[tdinfo[i].tongdao+xx_td[1]]:=tdinfo[i]; //暂存当前值
////
if tdinfo[i].tongdao+xx_td[1]=xs_td then //处理数据显示
begin
xs_data.Add(floattostr(tdinfo[i].shuju));
xs_time.Add(datetimetostr(tdinfo[i].time));
//处理表格显示
for b:=1 to 21 do
begin
if xs_data.Count>=21 then
begin
stringgrid2.Cells[0,b]:=timetostr(strtodatetime(xs_time.Strings[xs_time.count-22+b]));
stringgrid2.Cells[1,b]:=xs_data.Strings[xs_time.Count-22+b];
end
else
begin
if xs_data.Count>(b-1) then
begin
stringgrid2.Cells[0,b]:=timetostr(strtodatetime(xs_time.Strings[b-1]));
stringgrid2.Cells[1,b]:=xs_data.Strings[b-1];
end
else
begin
stringgrid2.Cells[0,b]:='';
stringgrid2.Cells[1,b]:='';
end;
end;
end;
if sx=1 then
if xs_data.Count >= strtoint(edit2.Text) then
begin
edit3.Text:=inttostr(xs_data.Count-strtoint(edit2.Text));
lineseries1.Clear;
for b:=1 to strtoint(edit2.Text) do
begin
lineseries1.Add(strtofloat(xs_data.Strings[strtoint(edit3.Text)+b-1]),xs_time.Strings[strtoint(edit3.Text)+b-1]);
end;
end
else lineseries1.Add(strtofloat(xs_data.Strings[xs_data.count-1]),xs_time.Strings[xs_data.count-1]);
label36.Caption:=inttostr(xs_data.Count);
end;
////
if adoquery11.Fields[12].AsString='是' then //报警处理
begin
adoquery9.First;
while not adoquery9.Eof do
begin
if adoquery9.Fields[1].AsInteger=n then
begin
if adoquery9.Fields[3].AsString='是' then
begin
if tdinfo[i].shuju> adoquery9.Fields[2].AsFloat then
begin
if td_warm[n].max=false then
begin
td_warm[n].max:=true;
aaa:=format('insert into warming (td_id,td_name,warming_time,warming_type,memo) values (%s,"%s","%s","%s","%s");',[inttostr(n),adoquery11.fields[1].asstring,datetimetostr(tdinfo[i].time),'最大值超标',('当前值为'+floattostr(tdinfo[i].shuju)+','+'最大警戒值为'+adoquery9.fields[2].asstring)]);
jvasqlscript9.Script.Add(aaa);
end;
end;
end;
if adoquery9.Fields[5].AsString='是' then
begin
if tdinfo[i].shuju < adoquery9.Fields[4].AsFloat then
begin
if td_warm[n].min=false then
begin
td_warm[n].min:=true;
aaa:=format('insert into warming (td_id,td_name,warming_time,warming_type,memo) values (%s,"%s","%s","%s","%s");',[inttostr(n),adoquery11.fields[1].asstring,datetimetostr(tdinfo[i].time),'低于最小值',('当前值为'+floattostr(tdinfo[i].shuju)+','+'最小警戒值为'+adoquery9.fields[4].asstring)]);
jvasqlscript9.Script.Add(aaa);
end;
end;
end;
if adoquery9.Fields[8].AsString='是' then
begin
if td_total[n].day > adoquery9.Fields[6].AsFloat then
begin
if td_warm[n].day=false then
begin
td_warm[n].day:=true;
aaa:=format('insert into warming (td_id,td_name,warming_time,warming_type,memo) values (%s,"%s","%s","%s","%s");',[inttostr(n),adoquery11.fields[1].asstring,datetimetostr(tdinfo[i].time),'大于日累最大警戒值',('当前日累值为'+floattostr(td_total[n].day)+','+'最大警戒值为'+adoquery9.fields[6].asstring)]);
jvasqlscript9.Script.Add(aaa);
end;
end;
end;
if adoquery9.Fields[11].AsString='是' then
begin
if td_total[n].month > adoquery9.Fields[9].AsFloat then
begin
if td_warm[n].month=false then
begin
td_warm[n].month:=true;
aaa:=format('insert into warming (td_id,td_name,warming_time,warming_type,memo) values (%s,"%s","%s","%s","%s");',[inttostr(n),adoquery11.fields[1].asstring,datetimetostr(tdinfo[i].time),'大于月累最大警戒值',('当前月累值为'+floattostr(td_total[n].month)+','+'最大警戒值为'+adoquery9.fields[9].asstring)]);
jvasqlscript9.Script.Add(aaa);
end;
end;
end;
if adoquery9.Fields[14].AsString='是' then
begin
if td_total[n].year > adoquery9.Fields[12].AsFloat then
begin
if td_warm[n].year=false then
begin
td_warm[n].year:=true;
aaa:=format('insert into warming (td_id,td_name,warming_time,warming_type,memo) values (%s,"%s","%s","%s","%s");',[inttostr(n),adoquery11.fields[1].asstring,datetimetostr(tdinfo[i].time),'大于年累最大警戒值',('当前年累值为'+floattostr(td_total[n].year)+','+'最大警戒值为'+adoquery9.fields[12].asstring)]);
jvasqlscript9.Script.Add(aaa);
end;
end;
end;
end;
adoquery9.Next;
end;
end;
end
else
begin
//离散数据处理
adoquery8.First;
while not adoquery8.Eof do
begin
if (adoquery8.Fields[1].AsInteger =tdinfo[i].tongdao+xx_td[1]) and (strtofloat(adoquery8.Fields[4].asstring)=tdinfo[i].shuju) then
begin
k:=adoquery8.Fields[0].AsInteger;
yx_total[k].modify:=true;
yx_total[k].day:=tdinfo[i].time-td_shuju[tdinfo[i].tongdao+xx_td[1]].time+yx_total[k].day;
yx_total[k].month:=tdinfo[i].time-td_shuju[tdinfo[i].tongdao+xx_td[1]].time+yx_total[k].month;
yx_total[k].year:=tdinfo[i].time-td_shuju[tdinfo[i].tongdao+xx_td[1]].time+yx_total[k].year;
aaa:=format('insert into linshi (td_id,sj,data) values (%s,"%s",%s);',[adoquery11.fields[0].asstring,datetimetostr(tdinfo[i].time),floattostr(tdinfo[i].shuju)]); //存储
jvasqlscript9.Script.Add(aaa);
td_shuju[tdinfo[i].tongdao+xx_td[1]]:=tdinfo[i];
////
if tdinfo[i].tongdao+xx_td[1]=xs_td then //处理数据显示
begin
xs_data.Add(floattostr(tdinfo[i].shuju));
xs_time.Add(datetimetostr(tdinfo[i].time));
//处理表格显示
for b:=1 to 21 do
begin
if xs_data.Count>=21 then
begin
stringgrid2.Cells[0,b]:=timetostr(strtodatetime(xs_time.Strings[xs_time.count-22+b]));
stringgrid2.Cells[1,b]:=xs_data.Strings[xs_time.Count-22+b];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -