📄 hrunit1.~pas
字号:
unit HrUnit1;
interface
var
PackStr:string;
portname,baudname:integer;
UserStr:array[0..32] of string;
UserCount:string;
ack,Wptr,Rptr,Rpoc,Poc,Rpec,TPOC,TPEC,InPack,counter:integer;
lenflg,len:integer;
function XLDownData_Task:integer;overload;
function ParseData:integer;stdcall;
function ParseTask:integer;stdcall;
function Parse48DayCurveData:integer;stdcall;
function Parse38DayHourCurveData:integer;stdcall;
procedure saveData;
procedure saveCurveData;
implementation
uses
ADOdb,SysUtils,Dialogs,strutils,forms,pcomm,windows,Pack_CRCUnit1,ComCtrls,Variants,DateUtils,Controls,DataModuleUnit1,
AppUtil;
//******************************************************************************
function XLDownData_Task:integer;overload;
var
Fnum1:textfile;
DownFileName,temp,cmd,temp2,temp3:string;
i,j,k,count,ret,t0:integer;
ch:array[1..1000] of string;
flag,js,fh,exitflag:boolean;
lvitem:tlistitem;
begin
//****************************************生成新文件***************************************************************
DataModule1.adoquery3.Connection:=DataModule1.ADOConnection1;
DataModule1.adoquery3.SQL.Clear;
DataModule1.adoquery3.Close;
datamodule1.ADOQuery3.Filtered:=false;
//DataModule1.adoquery3.SQL.Add('select * from 任务分配表 where 抄表员号='''+trim(operno)+''' and 区号='''+trim(quno)+''' and 抄表日期='''+formatdatetime('mmdd',strtodatetime(DownTaskForm.listview1.Items[i-1].Caption))+''' and 标记=''0'' order by 本号 asc,设备ID号 asc,抄表员号 asc;');
//2007-01-23 改按 本号,注册号 排序
DataModule1.adoquery3.SQL.Add('select * from 任务分配表');
DataModule1.adoquery3.Prepared;
DataModule1.adoquery3.open;
assignfile(fnum1,extractfilepath(application.ExeName)+'Data\cIM_TA.db');
rewrite(fnum1);
if DataModule1.adoquery3.RecordCount <>0 then
begin
for k:=1 to DataModule1.adoquery3.RecordCount do
begin
application.ProcessMessages;
if k=1 then
temp2:='#'
else
begin
if trim(datamodule1.ADOQuery3.FieldByName('区号').AsString)=midbstr(ch[k-1],32,2) then
begin
if trim(datamodule1.ADOQuery3.FieldByName('本号').AsString)=midbstr(ch[k-1],34,4) then
temp2:='$'
else
temp2:='@';
end
else
temp2:='%';
end;
DataModule1.adoquery4.Connection:=DataModule1.ADOConnection1;
DataModule1.adoquery4.SQL.Clear;
DataModule1.adoquery4.Close;
datamodule1.ADOQuery4.Filtered:=false;
DataModule1.adoquery4.SQL.Add('select * from 设备信息表 where 注册号='''+trim(datamodule1.ADOQuery3.fieldbyname('注册号').AsString)+'''');
DataModule1.adoquery4.Prepared;
DataModule1.adoquery4.open;
temp2:=temp2+leftstr(DataModule1.adoquery4.fieldbyname('设备类型').AsString,1);
temp2:=temp2+stringofchar(chr(32),1-length(trim(DataModule1.adoquery4.fieldbyname('通道号').AsString)))+trim(DataModule1.adoquery4.fieldbyname('通道号').AsString);
//************水表个数**************
if (trim(DataModule1.adoquery4.fieldbyname('设备类型').AsString)='WCTU') or (trim(DataModule1.adoquery4.fieldbyname('设备类型').AsString)='MCTU') then
begin
DataModule1.adoquery4.Connection:=DataModule1.ADOConnection1;
DataModule1.adoquery4.SQL.Clear;
DataModule1.adoquery4.Close;
datamodule1.ADOQuery4.Filtered:=false;
DataModule1.adoquery4.SQL.Add('select count(*) as num from 设备信息表 where 设备ID号='''+trim(datamodule1.ADOQuery3.fieldbyname('设备ID号').AsString)+''' and (设备类型=''WCTU'' or 设备类型=''MCTU'' )');
DataModule1.adoquery4.Prepared;
DataModule1.adoquery4.open;
if datamodule1.ADOQuery4.FieldByName('num').AsInteger>8 then
temp2:=temp2+'8'
else
temp2:=temp2+trim(DataModule1.adoquery4.fieldbyname('num').AsString);
end
else
temp2:=temp2+'0';
//**************水量抄表状态****************
temp2:=temp2+'N';
//******************************************
DataModule1.adoquery4.Connection:=DataModule1.ADOConnection1;
DataModule1.adoquery4.SQL.Clear;
DataModule1.adoquery4.Close;
datamodule1.ADOQuery4.Filtered:=false;
DataModule1.adoquery4.SQL.Add('select * from 设备信息表 where 注册号='''+trim(datamodule1.ADOQuery3.fieldbyname('注册号').AsString)+'''');
DataModule1.adoquery4.Prepared;
DataModule1.adoquery4.open;
temp2:=temp2+stringofchar(char(32),8-length(trim(DataModule1.adoquery4.fieldbyname('抄表地址').AsString)))+trim(DataModule1.adoquery4.fieldbyname('抄表地址').AsString);
//temp2:=temp2+stringofchar(chr(32),16-length(trim(datamodule1.adoquery3.FieldValues['注册号'])))+trim(datamodule1.adoquery3.FieldValues['注册号']);
if (trim(datamodule1.ADOQuery4.fieldbyname('设备类型').AsString)='MCTU') then
temp2:=temp2+leftbstr(trim(datamodule1.adoquery3.FieldValues['注册号']),length(trim(datamodule1.adoquery3.FieldValues['注册号']))-1)+stringofchar(chr(32),16-length(trim(datamodule1.adoquery3.FieldValues['注册号'])))+rightbstr(trim(datamodule1.adoquery3.FieldValues['注册号']),1)
else
temp2:=temp2+stringofchar(chr(32),16-length(trim(datamodule1.adoquery3.FieldValues['注册号'])))+trim(datamodule1.adoquery3.FieldValues['注册号']);
if ((trim(datamodule1.ADOQuery4.fieldbyname('设备类型').AsString)='WCTU') or (trim(datamodule1.ADOQuery4.fieldbyname('设备类型').AsString)='MCTU')) and (leftstr(trim(datamodule1.ADOQuery4.fieldbyname('设备类型').AsString),1)=midbstr(ch[k-1],2,1)) then
begin
if trim(datamodule1.ADOQuery4.fieldbyname('设备ID号').AsString)=temp3 then
temp2:=temp2+stringofchar(chr(32),2)
else
temp2:=temp2+trim(rightstr(datamodule1.adoquery3.FieldValues['抄表日期'],2));
end
else
temp2:=temp2+trim(rightstr(datamodule1.adoquery3.FieldValues['抄表日期'],2));
temp3:=trim(datamodule1.ADOQuery4.fieldbyname('设备ID号').AsString);
temp2:=temp2+stringofchar('0',2-length(trim(datamodule1.ADOQuery3.FieldValues['区号'])))+trim(datamodule1.ADOQuery3.FieldValues['区号']);
temp2:=temp2+stringofchar('0',4-length(trim(datamodule1.ADOQuery3.FieldValues['本号'])))+trim(datamodule1.ADOQuery3.FieldValues['本号']);
temp2:=temp2+stringofchar('0',3-length(trim(datamodule1.ADOQuery3.FieldValues['牌号'])))+trim(datamodule1.ADOQuery3.FieldValues['牌号']);
//**********************************************************
temp2:=temp2+stringofchar(chr(32),8-length(trim(datamodule1.adoquery3.FieldValues['上期指数'])))+trim(datamodule1.adoquery3.FieldValues['上期指数']);
temp2:=temp2+stringofchar(chr(32),8-length(trim(datamodule1.adoquery3.FieldValues['上期水量'])))+trim(datamodule1.adoquery3.FieldValues['上期水量']);
//**********************************************************
temp2:=temp2+stringofchar(chr(32),40-length(trim(datamodule1.adoquery3.FieldValues['用户名称'])))+trim(datamodule1.adoquery3.FieldValues['用户名称']);
temp2:=temp2+stringofchar(chr(32),50-length(trim(datamodule1.adoquery3.FieldValues['用户地址'])))+trim(datamodule1.adoquery3.FieldValues['用户地址']);
//******************曲线抄表状态*******************
temp2:=temp2+'N';
//*************************************************
ch[k]:=temp2;
writeln(fnum1,ch[k]);
DataModule1.adoquery3.Next;
end;
end;
closefile(fnum1);
//---------------------------------------
assignfile(fnum1,extractfilepath(application.ExeName)+'Data\cIM_DA.dbf');
rewrite(fnum1);
closefile(fnum1);
end;
//******************************************************************************
function ParseData:integer;stdcall;
var
FromF:file;
NumRead, NumWritten,j,i: Integer;
temp:string;
tempstr:array[1..16] of string;
tempfj:Variant;
dangl:real;
Buf: array[0..51] of Char;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -