📄 uiqstk.pas
字号:
begin
ADOTable1.Next;
Continue;
end;
if intkey > 4 then
begin
case Random(3)+1 of
1: begin
F_STDAA:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='A'
end;
2: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='B'
end;
3: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='C'
end;
4: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAZ:='D'
end;
end;
end
else
begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
if intkey = 1 then
F_STDAZ:='A'
else if intkey = 2 then
F_STDAZ:='B'
else if intkey = 3 then
F_STDAZ:='C'
else if intkey = 4 then
F_STDAZ:='D';
end;
with OQueryST do
begin
try
Close;
SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
'('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
ExecSQL;
except
ADOTable1.Next;
Continue;
end;
STKRefeshData;
DBGrid2.Update;
end;
ADOTable1.Next;
Gauge1.AddProgress(1);
end;
}
while not ADOTable1.Eof do
begin
with OQuerySTLX do
begin
Close;
SQL.Text:='select * from SMTEST.D_IQSTK';
ExecSQL;
if RecNo <> 0 then
begin
Close;
SQL.Text:='select max(F_STXH) as STNo from SMTEST.D_IQSTK';
ExecSQL;
if OQuerySTLX.RecNo <> 0 then
F_STXH:=Fieldbyname('STNo').asinteger+1
else
F_STXH:=1;
end
else
begin
F_STXH:=1;
end;
end;
F_STNR:=ADOTable1.fieldbyname('tmnr').AsString;
F_KLXBH:=Format('%0.3d',[strtoint(ADOTable1.fieldbyname('tmlx').AsString)]);
Strtemp:=ADOTable1.fieldbyname('tmzqda').AsString;
num:=0;
intkey:=0;
for j := 1 to 6 do
begin
if Strtemp[j]= '1' then
begin
inc(num);
if num > 1 then
begin
Break;
end;
intkey:= j;
end;
end;
if (intkey = 0) or (num > 1)then
begin
ADOTable1.Next;
Continue;
end;
if intkey > 4 then
begin
case Random(3)+1 of
1: begin
F_STDAA:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='A'
end;
2: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='B'
end;
3: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
F_STDAZ:='C'
end;
4: begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda'+IntToStr(intkey)).AsString;
F_STDAZ:='D'
end;
end;
end
else
begin
F_STDAA:=ADOTable1.fieldbyname('tmda1').AsString;
F_STDAB:=ADOTable1.fieldbyname('tmda2').AsString;
F_STDAC:=ADOTable1.fieldbyname('tmda3').AsString;
F_STDAD:=ADOTable1.fieldbyname('tmda4').AsString;
if intkey = 1 then
F_STDAZ:='A'
else if intkey = 2 then
F_STDAZ:='B'
else if intkey = 3 then
F_STDAZ:='C'
else if intkey = 4 then
F_STDAZ:='D';
end;
with OQueryST do
begin
try
Close;
SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
'('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
ExecSQL;
except
ADOTable1.Next;
Continue;
end;
STKRefeshData;
DBGrid2.Update;
end;
ADOTable1.Next;
Gauge1.AddProgress(1);
end;
end;
if ADOTable1.TableName = 'kind' then
begin
while not ADOTable1.Eof do
begin
F_LLXBH:=Format('%0.3d',[ADOTable1.fieldbyname('id').asinteger]);
F_LXMC:=ADOTable1.fieldbyname('kind').AsString;
F_BZ:='';
with OQuerySTLX do
begin
try
Close;
SQL.Text:='insert into SMTEST.D_IQSTLX (F_LXBH,F_LXMC,F_BZ) values '+
'('''+F_LLXBH+''','''+F_LXMC+''','''+F_BZ+''')';
ExecSQL;
except
ADOTable1.Next;
Continue;
end;
STLXRefeshData;
end;
ADOTable1.Next;
Gauge1.AddProgress(1);
end;
end;
end;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
if ComboBox2.Text<>'' then
begin
ADOTable1.Close;
ADOTable1.TableName:=ComboBox2.Text;
ADOTable1.Open;
end;
end;
procedure TForm1.Button8Click(Sender: TObject);
var
F_STXH:Integer;
begin
if not OQuerySTLX.Active then
begin
exit;
end;
if Application.MessageBox('确实要删除该记录吗?','注意',MB_YESNO or MB_ICONINFORMATION) = IDNO then
begin
exit;
end;
try
with OQuerySTLX do
begin
F_LLXBH:=CutString('(',ListBox1.Items.Strings[ListBox1.ItemIndex],1,true);
Close;
SQL.Text:='delete from SMTEST.D_IQSTLX where F_LXBH = '''+F_LLXBH+'''';
ExecSQL;
end;
except
Application.MessageBox('删除失败!','错误',MB_OK or MB_ICONERROR);
Exit;
end;
STLXRefeshData;
Application.MessageBox('记录已删除','提示',MB_OK or MB_ICONINFORMATION);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
DataInFile: TextFile;
StrData : string;
F_STD : string;
OpenDialog: TOpenDialog;
OQuerySTK: TOraQuery;
begin
OpenDialog := TOpenDialog.Create(Self);
try
OpenDialog.InitialDir := ExtractFileDir(Application.ExeName);
OpenDialog.Filter := '文本文件 (*.txt)|*.txt';
if OpenDialog.Execute then
begin
AssignFile(DataInFile,OpenDialog.FileName);
Reset(DataInFile);
while not system.Eof(DataInFile) do
begin
with OQuerySTLX do
begin
Close;
SQL.Text:='select * from SMTEST.D_IQSTK';
ExecSQL;
if RecNo <> 0 then
begin
Close;
SQL.Text:='select max(F_STXH) as STNo from SMTEST.D_IQSTK';
ExecSQL;
if OQuerySTLX.RecNo <> 0 then
F_STXH:=Fieldbyname('STNo').asinteger+1
else
F_STXH:=1;
end
else
begin
F_STXH:=1;
end;
end;
Readln(DataInFile,F_STNR);
F_KLXBH:='001';
Readln(DataInFile,F_STD);
F_STDAA := copy(F_STD,0,pos(' ',F_STD)-1);
Delete(F_STD,0,pos(' ',F_STD)-1);
F_STDAB := copy(F_STD,0,pos(' ',F_STD)-1);
Delete(F_STD,0,pos(' ',F_STD)-1);
F_STDAC := copy(F_STD,0,pos(' ',F_STD)-1);
Delete(F_STD,0,pos(' ',F_STD)-1);
F_STDAD := copy(F_STD,0,pos(' ',F_STD)-1);
Readln(DataInFile,F_STDAZ);
if F_STDAZ = '1' then
begin
F_STDAZ := 'A';
end
else if F_STDAZ = '2' then
begin
F_STDAZ := 'B';
end
else if F_STDAZ = '3' then
begin
F_STDAZ := 'C';
end
else if F_STDAZ = '4' then
begin
F_STDAZ := 'D';
end;
with OQuerySTK do
begin
try
Close;
SQL.Text:='insert into SMTEST.D_IQSTK (F_LXBH,F_STXH,F_STNR,F_STDAA,F_STDAB,F_STDAC,F_STDAD,F_STDAZ) values '+
'('''+F_KLXBH+''','+IntToStr(F_STXH)+','''+F_STNR+''','''+
F_STDAA+''','''+F_STDAB+''','''+F_STDAC+''','''+F_STDAD+''','''+F_STDAZ+''')';
ShowMessage(SQL.Text);
//ExecSQL;
except
Continue;
end;
STKRefeshData;
end;
end;
end;
finally
OpenDialog.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -