Dim pathdbf
sub Init_Components
self.Add "OpenD","TOpenDialog"
OpenD.Filter="  DBase|*.dbf"
 Self.Add "Dbf","TDbf"


with self
 .Left = 177
 .Top = 128
 .BorderStyle = "bsDialog"
 .Caption = "   (DBF)"
 .ClientHeight = 90
 .ClientWidth = 403
 .Color = "clBtnFace"
 .Font.Charset = "DEFAULT_CHARSET"
 .Font.Color = "clWindowText"
 .Font.Height = -11
 .Font.Name = "MS Sans Serif"
 .Font.Style = ""
 .OldCreateOrder = False
 .PixelsPerInch = 96
 self.add "Label1", "TLabel"
 with Label1
  .Left = 37
  .Top = 8
  .Width = 329
  .Height = 13
  .Caption = "  (*.dbf)    "
  end with
 self.add "Export", "TDBEditEh", TRUE
 with Export
  .Left = 8
  .Top = 27
  .Width = 369
  .Height = 19
  .Flat = True
  .TabOrder = 0
  .Visible = True
  .alwaysshowborder=true
  end with
 self.add "Button1", "TButton",TRUE
 with Button1
  .Left = 377
  .Top = 23
  .Width = 25
  .Height = 25
  .Caption = "..."
  .Font.Charset = "RUSSIAN_CHARSET"
  .Font.Color = "clWindowText"
  .Font.Height = -12
  .Font.Name = "Arial"
  .Font.Style = "fsBold"
  .ParentFont = False
  .TabOrder = 1
  end with
 self.add "BitBtn1", "TBitBtn",TRUE
 with BitBtn1
  .Left = 301
  .Top = 62
  .Width = 99
  .Height = 25
  .Caption = ""
  .TabOrder = 2
  .Kind = "bkCancel"
  end with
 self.add "BitBtn2", "TBitBtn",TRUE
 with BitBtn2
  .Left = 157
  .Top = 62
  .Width = 134
  .Height = 25
  .Kind = "bkOK"
  .Caption = ""
  .TabOrder = 3
  .Enabled=false
  end with
 end with

end sub

sub Button1_OnClick
OpenD.Execute
if OpenD.Tag=1 then
 Export.Text=OpenD.FileName
end if
Dbf.TableName=Export.Text
end sub

sub Export_OnChange
if Export.Text="" then  
 BitBtn2.Enabled=false
else
 BitBtn2.Enabled=true
end if
end sub

function GetOrNull (nname)
 str=Dbf.FieldByNameString(cstr(nname))
 if (str="") then
  str="null"
 else
 str="'" & str & "'"
 end if
 GetOrNull=str
end function


sub BitBtn1_OnClick
Self.Close
end sub

sub BitBtn2_OnClick
dim idfirm
  i=0

 if(not MyTrans.Intransaction) then MyTrans.StartTransaction
  Dbf.Active=true
  Query.CommandText= "select * from platporuch"
  Query.active=true
  do while not Dbf.Eof
  MQuery.active=false
  MQuery.Sql.Clear
  MQuery.Sql.add "select idfirm, GEN_ID(gen_platporuch_id,1) as id_poruch from account where accnumber='" & Dbf.FieldByNameString("SCHETPLATE") & "'"
  MQuery.active=true
  idfirm=mquery.fieldbynamestring("idfirm")
  ID_PORUCH=mquery.fieldbynamestring("id_poruch")
  if (idfirm<>"") then
  query.insert
    call query.setfieldbyname("ID_PORUCH",ID_PORUCH)
    call query.setfieldbyname("NUMPL",dbf.fieldbynamestring("numpl"))

    call query.setfieldbyname("idfirm",idfirm)
    call query.setfieldbyname("summarub",dbf.fieldbynamestring("summarub"))
    call query.setfieldbyname("summakop",dbf.fieldbynamestring("summakop"))
    call query.setfieldbyname("SPOSOBOPLAT",dbf.fieldbynamestring("SPOSOBOPLA"))
    call query.setfieldbyname("SCHETPLATEL",dbf.fieldbynamestring("SCHETPLATE"))
    call query.setfieldbyname("NAMEPLATEL",dbf.fieldbynamestring("NAMEPLATEL"))
    call query.setfieldbyname("INNPLATEL",dbf.fieldbynamestring("INNPLATEL"))
    call query.setfieldbyname("NAMEBANKPLATEL",dbf.fieldbynamestring("NAMEBANKPL"))
    call query.setfieldbyname("BIKBANKPLATEL",dbf.fieldbynamestring("BIKBANKPLA"))
    call query.setfieldbyname("KORBANKPLATEL",dbf.fieldbynamestring("KORBANKPLA"))
    call query.setfieldbyname("ADRESBANKPLATEL",dbf.fieldbynamestring("ADRBNKPL"))
    call query.setfieldbyname("SHETPOLUCH",dbf.fieldbynamestring("SHETPOLUCH"))
    call query.setfieldbyname("NAMEPOLUCHAT",dbf.fieldbynamestring("NAMEPOLUCH"))

    call query.setfieldbyname("INNPOLUCHAT",dbf.fieldbynamestring("INNPOLUCHA"))
    call query.setfieldbyname("BIKBANKPOLUCH",dbf.fieldbynamestring("BIKBANKPOL"))
    call query.setfieldbyname("NAMEBANKPOLUCH",dbf.fieldbynamestring("NAMEBANKPO"))
    call query.setfieldbyname("KORBANKPOLUCH",dbf.fieldbynamestring("KORBANKPOL"))
    call query.setfieldbyname("ADRESBANKPOLUCH",dbf.fieldbynamestring("ADRBNKPO"))
   ' call query.setfieldbyname("SROKPLAT",dbf.fieldbynamestring("SROKPLAT"))
    call query.setfieldbyname("OCHERPLAT",dbf.fieldbynamestring("OCHERPLAT"))
    call query.setfieldbyname("VIDOPLATI",dbf.fieldbynamestring("VIDOPLATI"))
    call query.setfieldbyname("NAZNPLATEZ",dbf.fieldbynamestring("NAZNPLATEZ"))
    call query.setfieldbyname("VALPLP",dbf.fieldbynamestring("VALPLP"))

    call query.setfieldbyname("KBK",dbf.fieldbynamestring("KBK"))
    call query.setfieldbyname("OKATO",dbf.fieldbynamestring("OKATO"))
    call query.setfieldbyname("OSNOVAN",dbf.fieldbynamestring("OSNOVAN"))
    call query.setfieldbyname("NALPER",dbf.fieldbynamestring("NALPER"))
    call query.setfieldbyname("NOMERDOC",dbf.fieldbynamestring("NOMERDOC"))
    call query.setfieldbyname("ETYPEDOC",dbf.fieldbynamestring("ETYPEDOC"))
    call query.setfieldbyname("STATNAL",dbf.fieldbynamestring("STATNAL"))
    call query.setfieldbyname("KPPPLATEL",dbf.fieldbynamestring("KPPPLATEL"))
    call query.setfieldbyname("KPPPOLUCH",dbf.fieldbynamestring("KPPPOLUCH"))
    call query.setfieldbyname("EDATEDOC",dbf.fieldbynamestring("EDATEDOC"))
query.post
    i=i+1
    label1.caption= ": " & i & " "
    query.processing
  end if
  Dbf.next
  loop
  label1.caption= "..."
  query.processing
  query.applyupdates("-1")
  mytrans.Commit
  MsgBox ""
end sub


sub main
'     
 Dim MyDatabase
 set  MyDatabase=MainForm.Controls("Database")
 Self.Add "MyTrans","TIBTransaction"
 MyTrans.DefaultDatabase=MyDatabase
 Self.Add "MQuery", "TIBQuery"
 With MQuery
  .Database=MyDataBase
  .Transaction=MyTrans
  .SQL.Clear
 end with
  
 Self.Add "Query", "TIBClientDataset"
  With Query
    .DBConnection=MyDataBase
    .DBTransaction=MyTrans
  End With

' 
call Init_Components


end sub
