📄 ufrmimport.pas
字号:
begin
if (Trim(cbx1.Text) = '') or (Trim(cbx2.Text) = '') then
begin
exit;
end;
item := lv1.Items.Add;
item.Caption := cbx1.Text ;
item.SubItems.Add(cbx2.Text );
item.SubItems.Add( '0' );//标志特殊类型
btngo.Enabled := true;
btndel.Enabled := true;
btnclear.Enabled := true;
end;
procedure TfrmImport.btnclearClick(Sender: TObject);
begin
lv1.Items.Clear();
btngo.Enabled := false;
btndel.Enabled := false;
btnclear.Enabled := false;
end;
procedure TfrmImport.btnallClick(Sender: TObject);
var
i : integer;
item : TListItem;
begin
if (Trim(cbx1.Text) = '') or (Trim(cbx2.Text) = '') then
begin
exit;
end;
if cbx1.Items.Count <> cbx2.Items.Count then
begin
Application.MessageBox('字段数目不相等!','提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
lv1.Items.Clear();
for i := 0 to cbx1.Items.Count-1 do
begin
item := lv1.Items.Add;
item.Caption := cbx1.Text ;
item.SubItems.Add( cbx2.Text );
item.SubItems.Add( '0' );//标志特殊类型
end;
btngo.Enabled := true;
btndel.Enabled := true;
btnclear.Enabled := true;
end;
procedure TfrmImport.btndelClick(Sender: TObject);
begin
if lv1.Selected = nil then
begin
exit;
end;
lv1.Items.Delete(lv1.Selected.Index);
if lv1.Items.Count = 0 then
begin
btngo.Enabled := false;
btndel.Enabled := false;
btnclear.Enabled := false;
end;
end;
procedure TfrmImport.btngoClick(Sender: TObject);
var
sc,sb : string;
i : integer;
p : TListItem;
//m : TListItem;
ss,sql,sfield,svalue : string;
//j,k,icount : integer;
sflag : string;//yym 20050422 add
begin
if lv1.Items.Count = 0 then
begin
exit;
end;
btngo.Enabled := false;
{//去掉重复项目
icount := lv1.Items.Count;
for i := 0 to icount - 1 do
begin
p := lv1.Items.Item[i];
sc := p.Caption;
sb := p.SubItems.Strings[0];
//for (j=lv1->Items->Count-1;j>i;j--)
for j := icount - 1 downto i+1 do
//for j := i+1 to icount - 1 do
begin
m := lv1.Items.Item[j];
if (sc = m.Caption) and (sb = m.SubItems.Strings[0]) then
begin
//lv1.Items.Delete(j);
Application.MessageBox( '字段重复!','提示',MB_OK+MB_ICONINFORMATION);
btngo.Enabled := true;
//lv1.SetFocus;
//lv1.Items.Item[j].Selected;
exit;
icount := icount-1;
end;
end;
end;
//==================}
Query1.Close();
Query1.SQL.Text := 'select * from '+edita5.Text;
try
Query1.Open;
except
end;
if Query1.IsEmpty then
begin
Application.MessageBox( PChar(edita5.Text+' 中没有记录!'),'提示',MB_OK+MB_ICONINFORMATION);
exit;
end;
Query1.First();
sql := 'insert into '+editb5.Text +' (';
while not Query1.Eof do
begin
p := lv1.Items.Item[0];
sc := p.Caption ;
//--------------------------------------
//yym 20050422 add
sflag := p.SubItems.Strings[1];
//yym 20050512 mod
//sflag := '0';
if trim(sflag)='-1' then//特殊表的主键
begin
ss := '-x-';
end
else//常规导入
begin
ss := Query1.FieldByName(sc).AsString;
end;
//--------------------------------------
sfield := p.SubItems.Strings[0];
svalue := ''''+ss+'''';
for i := 1 to lv1.Items.Count-1 do
begin
p := lv1.Items.Item[i];
sc := p.Caption ;
sb := p.SubItems.Strings[0];
ss := Query1.FieldByName(sc).AsString;
sfield := sfield +',' + sb;
svalue := svalue +','''+ ss+'''';
end;
Query2.Close();
Query2.SQL.Text := sql+sfield+') values ('+svalue+')';
try
Query2.ExecSQL;
except
end;
Query1.Next;
end;
Query2.Close;
Query2.SQL.Text := 'select * from '+editb5.Text;
try
Query2.Open;
except
end;
end;
procedure TfrmImport.FormShow(Sender: TObject);
begin
Database1.Connected := false;
Database2.Connected := false;
path := ExtractFilePath(application.ExeName);
ini := TIniFile.Create(path+'config.may');
edita1.Text := ini.ReadString('Import', 'Server1', '10.10.20.8');
edita2.Text := ini.ReadString('Import', 'Database1','newhis');
edita3.Text := ini.ReadString('Import', 'user1', 'sa');
edita4.Text := ini.ReadString('Import', 'pass1', 'sa');
//edita5.Text := ini.ReadString('Import', 'table1', 'operator');
//--------------------------------------------------------------
editb1.Text := ini.ReadString('Import', 'Server2', '10.10.20.8');
editb2.Text := ini.ReadString('Import', 'Database2','newhis');
editb3.Text := ini.ReadString('Import', 'user2', 'sa');
editb4.Text := ini.ReadString('Import', 'pass2', 'sa');
//editb5.Text := ini.ReadString('Import', 'table2', 'operator');
ini.Free;
lv1.Items.Clear;
end;
procedure TfrmImport.FormDestroy(Sender: TObject);
begin
Database1.Connected := false;
Database2.Connected := false;
path := ExtractFilePath(application.ExeName);
ini := TIniFile.Create(path+'config.may');
ini.WriteString('Import', 'Server1', edita1.Text );
ini.WriteString('Import', 'Database1',edita2.Text );
ini.WriteString('Import', 'user1', edita3.Text );
ini.WriteString('Import', 'pass1', edita4.Text );
//ini.WriteString('Import', 'table1', edita5.Text );
//--------------------------------------------------
ini.WriteString('Import', 'Server2', editb1.Text );
ini.WriteString('Import', 'Database2',editb2.Text );
ini.WriteString('Import', 'user2', editb3.Text );
ini.WriteString('Import', 'pass2', editb4.Text );
//ini.WriteString('Import', 'table2', editb5.Text );
ini.Free;
end;
procedure TfrmImport.BitBtn1Click(Sender: TObject);
var
i,j:integer;
sa,sb:string;
item : TListItem;
begin
lv1.Items.Clear();
labA.Caption := IntToStr(cbx1.Items.Count);
labB.Caption := IntToStr(cbx2.Items.Count);
for i:= 0 to cbx1.Items.Count-1 do
begin
sa := cbx1.Items.Strings[i];
for j := 0 to cbx2.Items.Count do
begin
sb := cbx2.Items.Strings[i];
if trim(sa)=trim(sb) then
begin
//cbx1.ItemIndex := i;
//cbx2.ItemIndex := j;
//btnadd.Click;
item := lv1.Items.Add;
item.Caption := sa ;
item.SubItems.Add( sb );
item.SubItems.Add( '0' );//标志特殊类型
break;
end;
end;
end;
if lv1.Items.Count>0 then
begin
btngo.Enabled := true;
btndel.Enabled := true;
btnclear.Enabled := true;
end;
end;
{
var
item : TListItem;
begin
if (Trim(cbx1.Text) = '') or (Trim(cbx2.Text) = '') then
begin
exit;
end;
item := lv1.Items.Add;
item.Caption := cbx1.Text ;
item.SubItems.Add(cbx2.Text );
item.SubItems.Add( '0' );//标志特殊类型
btngo.Enabled := true;
btndel.Enabled := true;
btnclear.Enabled := true;
end;
}
procedure TfrmImport.edita5Change(Sender: TObject);
var
i,a: integer;
ss : string;
begin
Query1.Close();
Query1.SQL.Text := 'select * from '+ edita5.Text ;
try
Query1.Open();
except
exit;
end;
a := DBGrid1.FieldCount;
cbx1.Clear();
for i := 0 to a-1 do
begin
ss := DBGrid1.Columns.Items[i].FieldName;
cbx1.Items.Add(ss);
end;
if cbx1.Items.Count > 0 then
begin
cbx1.ItemIndex := 0;
end;
lv1.Items.Clear();
end;
procedure TfrmImport.editb5Change(Sender: TObject);
var
i,a: integer;
ss : string;
begin
Query2.Close();
Query2.SQL.Text := 'select * from '+ editb5.Text ;
try
Query2.Open();
except
exit;
end;
a := DBGrid2.FieldCount;
cbx2.Clear();
for i := 0 to a-1 do
begin
ss := DBGrid2.Columns.Items[i].FieldName;
cbx2.Items.Add(ss);
end;
if cbx2.Items.Count > 0 then
begin
cbx2.ItemIndex := 0;
end;
lv1.Items.Clear();
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -