procedure TForm1.BitBtn2Click(Sender: TObject);
var
str: string;
_queueNUM: integer;
_queueTime: string;
MOC_NO: string; starttime, endtime: string;
temp1, temp2: string;
Data: Tstringlist;
i, j, k: integer;
Ppeopleflow1, Ppeopleflowtemp1: Ppeopleflow;
Flag: integer;
temp: string;
begin Series1.Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series5.Clear;
ClearData;
CleartempData; Data := Tstringlist.Create;
try
str := 'select distinct moc_no as MOC_NO from t_fundsflow ';
if ADOQuery3.Active then ADOQuery3.Close;
ADOQuery3.SQL.Text := str;
ADOQuery3.Open;
if ADOQuery3.RecordCount > 0 then
begin
ADOQuery3.First;
while not ADOQuery3.Eof do
begin
MOC_NO := ADOQuery3.FieldByName('MOC_NO').AsString;
Data.Add(MOC_NO);
ADOQuery3.Next;
end;
end; try
str := 'select MOC_NO,concat(SUBSTRING(localdatetime, 1, 15),''0:00'') as ''时间'', count(*) as ''数量'' ' +
' from t_fundsflow ' +
' where actionFLAG=''-'' and consumeDate=''%S'' and consumeTime<''%s'' and consumetime>''%s'' ' +
' group by SUBSTRING(localdatetime, 1, 15) ,MOC_NO'; if ADOQuery3.Active then ADOQuery3.Close;
//ADOQuery3.SQL.Text := str;
ADOQuery3.SQL.Text := Format(str, [datetimetostr(DateTimePicker1.Date), timetostr(DateTimePicker4.DateTime), timetostr(DateTimePicker3.DateTime)]);
ADOQuery3.Open;
Series1.Clear;
if ADOQuery3.RecordCount > 0 then
begin
ADOQuery3.First;
while not ADOQuery3.Eof do
begin MOC_NO := ADOQuery3.FieldByName('MOC_NO').AsString; _queueNUM := ADOQuery3.FieldByName('数量').AsInteger; _queueTime := ADOQuery3.FieldByName('时间').AsString; AddData(MOC_NO, _queueTime, _queueNUM); ADOQuery3.Next;
end;
end;
except
end;
try
temp1 := copy(datetimetostr(DateTimePicker3.date), pos(' ', datetimetostr(DateTimePicker3.date)) + 1, length(datetimetostr(DateTimePicker3.date)));
starttime := datetimetostr(DateTimePicker1.Date) + ' ' + Copy(temp1, 1, 4) + '0:00'; temp2 := copy(datetimetostr(DateTimePicker4.date), pos(' ', datetimetostr(DateTimePicker4.date)) + 1, length(datetimetostr(DateTimePicker4.date)));
endtime := datetimetostr(DateTimePicker1.Date) + ' ' + Copy(temp2, 1, 4) + '0:00'; for j := 0 to Data.Count - 1 do
begin
while (starttime <= endtime) do
begin
FLAG := 2;
for i := 0 to DataList.Count - 1 do
begin
Ppeopleflow1 := DataList.Items[i];
if ((Ppeopleflow1.machineNO = Data.Strings[j]) and (Ppeopleflow1.consumeDate = starttime)) then
begin
Flag := 1;
// break;
end;
end;
if FLAG = 2 then
begin
AddData(Data.Strings[j], starttime, 0);
end;
for k := 0 to Data.Count - 1 do
begin
AddtempData(Data.Strings[k], starttime, 0);
end;
starttime := datetimetostr(IncSecond(strtodatetime(starttime), 600));
end;
end;
except
end; for i := 0 to tempdatalist.Count - 1 do
begin
Ppeopleflowtemp1 := tempdatalist.Items[i]; for j := 0 to datalist.Count - 1 do
begin
Ppeopleflow1 := datalist.Items[j]; if (Ppeopleflowtemp1.consumeDate = Ppeopleflow1.consumeDate) and (Ppeopleflowtemp1.machineNO=Ppeopleflow1.machineNO) then
begin //Ppeopleflowtemp1.machineNO := Ppeopleflow1.machineNO;
Ppeopleflowtemp1.num := Ppeopleflow1.num;
end;
end;
end; for i := 0 to tempdatalist.Count - 1 do
begin
Ppeopleflow1 := tempdatalist.Items[i]; if Ppeopleflow1.machineNO = '0001' then
begin
temp := Ppeopleflow1.consumeDate;
//Series0001.Add(Ppeopleflow1.num,copy(temp,pos(' ',temp)+1,length(temp)),clRed);
Series1.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end;
if Ppeopleflow1.machineNO = '0002' then
begin
temp := Ppeopleflow1.consumeDate;
Series2.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = '0003' then
begin
temp := Ppeopleflow1.consumeDate;
Series3.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = '0004' then
begin
temp := Ppeopleflow1.consumeDate;
Series4.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = 'coffee1' then
begin
temp := Ppeopleflow1.consumeDate;
Series5.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end;
end;
if (ADOQuery3.Active=False) or (ADOQuery3.RecordCount=0)
then
begin
showmessage('无数据 条件是否输入正确')
end; finally
Data.Free; end;
end;
var
str: string;
_queueNUM: integer;
_queueTime: string;
MOC_NO: string; starttime, endtime: string;
temp1, temp2: string;
Data: Tstringlist;
i, j, k: integer;
Ppeopleflow1, Ppeopleflowtemp1: Ppeopleflow;
Flag: integer;
temp: string;
begin Series1.Clear;
Series2.Clear;
Series3.Clear;
Series4.Clear;
Series5.Clear;
ClearData;
CleartempData; Data := Tstringlist.Create;
try
str := 'select distinct moc_no as MOC_NO from t_fundsflow ';
if ADOQuery3.Active then ADOQuery3.Close;
ADOQuery3.SQL.Text := str;
ADOQuery3.Open;
if ADOQuery3.RecordCount > 0 then
begin
ADOQuery3.First;
while not ADOQuery3.Eof do
begin
MOC_NO := ADOQuery3.FieldByName('MOC_NO').AsString;
Data.Add(MOC_NO);
ADOQuery3.Next;
end;
end; try
str := 'select MOC_NO,concat(SUBSTRING(localdatetime, 1, 15),''0:00'') as ''时间'', count(*) as ''数量'' ' +
' from t_fundsflow ' +
' where actionFLAG=''-'' and consumeDate=''%S'' and consumeTime<''%s'' and consumetime>''%s'' ' +
' group by SUBSTRING(localdatetime, 1, 15) ,MOC_NO'; if ADOQuery3.Active then ADOQuery3.Close;
//ADOQuery3.SQL.Text := str;
ADOQuery3.SQL.Text := Format(str, [datetimetostr(DateTimePicker1.Date), timetostr(DateTimePicker4.DateTime), timetostr(DateTimePicker3.DateTime)]);
ADOQuery3.Open;
Series1.Clear;
if ADOQuery3.RecordCount > 0 then
begin
ADOQuery3.First;
while not ADOQuery3.Eof do
begin MOC_NO := ADOQuery3.FieldByName('MOC_NO').AsString; _queueNUM := ADOQuery3.FieldByName('数量').AsInteger; _queueTime := ADOQuery3.FieldByName('时间').AsString; AddData(MOC_NO, _queueTime, _queueNUM); ADOQuery3.Next;
end;
end;
except
end;
try
temp1 := copy(datetimetostr(DateTimePicker3.date), pos(' ', datetimetostr(DateTimePicker3.date)) + 1, length(datetimetostr(DateTimePicker3.date)));
starttime := datetimetostr(DateTimePicker1.Date) + ' ' + Copy(temp1, 1, 4) + '0:00'; temp2 := copy(datetimetostr(DateTimePicker4.date), pos(' ', datetimetostr(DateTimePicker4.date)) + 1, length(datetimetostr(DateTimePicker4.date)));
endtime := datetimetostr(DateTimePicker1.Date) + ' ' + Copy(temp2, 1, 4) + '0:00'; for j := 0 to Data.Count - 1 do
begin
while (starttime <= endtime) do
begin
FLAG := 2;
for i := 0 to DataList.Count - 1 do
begin
Ppeopleflow1 := DataList.Items[i];
if ((Ppeopleflow1.machineNO = Data.Strings[j]) and (Ppeopleflow1.consumeDate = starttime)) then
begin
Flag := 1;
// break;
end;
end;
if FLAG = 2 then
begin
AddData(Data.Strings[j], starttime, 0);
end;
for k := 0 to Data.Count - 1 do
begin
AddtempData(Data.Strings[k], starttime, 0);
end;
starttime := datetimetostr(IncSecond(strtodatetime(starttime), 600));
end;
end;
except
end; for i := 0 to tempdatalist.Count - 1 do
begin
Ppeopleflowtemp1 := tempdatalist.Items[i]; for j := 0 to datalist.Count - 1 do
begin
Ppeopleflow1 := datalist.Items[j]; if (Ppeopleflowtemp1.consumeDate = Ppeopleflow1.consumeDate) and (Ppeopleflowtemp1.machineNO=Ppeopleflow1.machineNO) then
begin //Ppeopleflowtemp1.machineNO := Ppeopleflow1.machineNO;
Ppeopleflowtemp1.num := Ppeopleflow1.num;
end;
end;
end; for i := 0 to tempdatalist.Count - 1 do
begin
Ppeopleflow1 := tempdatalist.Items[i]; if Ppeopleflow1.machineNO = '0001' then
begin
temp := Ppeopleflow1.consumeDate;
//Series0001.Add(Ppeopleflow1.num,copy(temp,pos(' ',temp)+1,length(temp)),clRed);
Series1.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end;
if Ppeopleflow1.machineNO = '0002' then
begin
temp := Ppeopleflow1.consumeDate;
Series2.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = '0003' then
begin
temp := Ppeopleflow1.consumeDate;
Series3.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = '0004' then
begin
temp := Ppeopleflow1.consumeDate;
Series4.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end; if Ppeopleflow1.machineNO = 'coffee1' then
begin
temp := Ppeopleflow1.consumeDate;
Series5.Add(Ppeopleflow1.num, copy(temp, pos(' ', temp) + 1, length(temp)));
end;
end;
if (ADOQuery3.Active=False) or (ADOQuery3.RecordCount=0)
then
begin
showmessage('无数据 条件是否输入正确')
end; finally
Data.Free; end;
end;
比如正常是 2010-01-01,可能某些机器转换后为2010/01/01
if (ADOQuery3.Active=False) or (ADOQuery3.RecordCount=0)
then
begin
showmessage('无数据 条件是否输入正确')
end;
就是说如果ADOQuery3如果没数据的 应该是会出提示的 但我查后并没有出提示 所以我才认为数据是有的