Pomocník systému OBERON
OBERON API - príklad exportu skladových kariet

Formulár OBERON API

 

V tlačidle Exportovať sa nachádza uvedený zdrojový kód:

PrivateSub btn_Exportovat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Exportovat.Click

      '--- Oddeľovač polí v súbore
     
Const CONST_OddelovacPoli = "|"         

      '--- Deklarácia objektov  
      Dim tmp_AppOBERON As Exa.OBERON.Application.API.AppEngine = Nothing 
Nothing
      Dim myEx As Exa.Basic.Exceptions.ExaException = Nothing

 

      '--- Zakázať tlačidlo
      btn_Exportovat.Enabled = False

 

      '--- Vymazanie statusu --
      txt_Status.Clear()
      txt_Status.Text = 
"Export skladových kariet ..."
 

      '--------------------------------------------
      '--- Úvodná inicializácia aplikácie ---
      '--------------------------------------------

      '--- Vytvorenie objektu aplikácie OBERON
      tmp_AppOBERON = New Exa.OBERON.Application.API.AppEngine()    
      myEx = tmp_AppOBERON.App_Initialize()
      If myEx.Result = False
Then
            '--- Chyba spustenia
            txt_Status.Text = myEx.Description
            GoTo ExitSub
      End
If

      '--------------------------------------------
      '--- Nastavenie firmy ktorá sa má otvoriť ---
      '--------------------------------------------

      Dim tmp_CompanySettings As New Exa.OBERON.ApplicationEnvironment.CompanyOpenSettings

      '--- Mód spustenia - pri tomto nastavení sa napr. neinicializujú pripojené zariadenia ako snímač čiarových kódov
      tmp_CompanySettings.Application_Mode = Exa.OBERON.ApplicationEnvironment.CompanyOpenSettings.enum_Application_Mode.OBERON_Center

      '--- Prihlasovacie meno do OBERON-u
      tmp_CompanySettings.Application_UserName = txt_UzivatelMeno.Text      

      '--- Prihlasovacie heslo do OBERON-u    
      tmp_CompanySettings.Application_Password = txt_UzivatelHeslo.Text     

     '--- Typ databázy MDB, v budúcnosti aj podpora SQL serverov     
      tmp_CompanySettings._ConnectionSettings.DataSourceType = Exa.Database.enm_DataSourceTypes.MicrosoftAccessOleDB_1997 

      '--- Databáza MDB ktorá sa má otvoriť
      tmp_CompanySettings._ConnectionSettings.ConnectionString.Database = txt_Databaza.Text     

      '--- Otvorenie firmy 
      myEx = tmp_AppOBERON.Company_Open(tmp_CompanySettings) 
      If myEx.Result = False
Then
            '--- Chyba otvorenia firmy
            txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
            GoTo ExitSub
      End
If

 

      '-------------------------------------------------------------
      '--- Firma bola úspešne otvorená - je možné začať pracovať ---
      '-------------------------------------------------------------
 

      '--- Vytvoriť objekt skladu z ktorého chceme exportovať údaje
      Dim tmp_Sklad As New Exa.OBERON.Shared.Stock.Stocks.Stock(tmp_AppOBERON._AppConfiguration)
      myEx = tmp_Sklad._Load(txt_Sklad.Text)
      If myEx.Result = False
Then
            '--- Chyba otvorenia skladu /pravdepodobne chybný názov skladu/
            txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
            GoTo ExitSub
      End
If
 

      '--- Načítanie zoznamu skladových kariet ---
      Dim tmp_SkladoveKarty_Zoznam As New Exa.OBERON.Stock.StockCards.StockCard_List(tmp_AppOBERON._AppConfiguration,Exa.OBERON.Stock.StockCards.StockCard_List.enm_ListType.BaseList)
      myEx = tmp_SkladoveKarty_Zoznam._LoadData(tmp_Sklad, String.Empty)    
     
'--- String.Empty - Bolo možné vložiť aj ďalšiu podmienku, napr. "Skupina = 'nejaká skladová skupina', alebo MnozstvoZostatok <> 0"
      If myEx.Result = False Then
            '--- Chyba načítania skladových kariet
            txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description
            GoTo ExitSub
      End
If

 

      '--- Skladové karty boli načítané, je možné exportovať ----
      '--- Vytvoriť textovú premennú do ktorej sa budú napĺňať údaje so skladových kariet
      Dim tmp_ExportovaneUdaje As New System.Text.StringBuilder
      Dim tmp_SkladovaKarta As Exa.OBERON.Stock.StockCards.StockCard = Nothing 
'---- Objekt jednej skladovej karty
      For Each e_Karta As DataRow In tmp_SkladoveKarty_Zoznam.Object_Table.DatabaseTable_Data.Rows

            tmp_SkladovaKarta = Nothing
            tmp_SkladovaKarta = tmp_SkladoveKarty_Zoznam.DataRecord(e_Karta)
            If tmp_SkladovaKarta Is Nothing
Then
                  '--- Chyba pri načítaní jednej skladovej karty
                  txt_Status.Text = txt_Status.Text & vbCrLf & myEx.Description

                  '--- Pokračovať v cykle - načítavať ďalšiu kartu
                  Continue For
            End If

            '------------------------------------
            '--- Skladová karta bola načítaná ---
            '------------------------------------
 

            '--- Je možné pracovať s údajmi na skladovej karte
           
'--- Uložiť údaje do textovej premennej, ktorá sa potom zapíše do súboru
            Dim tmp_Riadok As New System.Text.StringBuilder
 

            tmp_Riadok.Append(tmp_SkladovaKarta.Number)    '--- Číslo karty
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.BarCode)   
'--- Čiarový kód
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Name)     
'--- Názov
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Description_Additional)         
'--- Doplňujúci text
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Price1_WithoutVAT)    
'--- predajná cena 1 bez DPH
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Price1_WithVAT)    
'--- predajná cena 1 s DPH
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Amount)   
'--- Množstvo zostatok
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.Unit)
'--- Merná jednotka
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.IShop_Name)     
'--- názov pre internetový obchod
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.IShop_Description)
'--- popis
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.IShop_Picture_Small)
'--- názov súboru - malý obrázok
            tmp_Riadok.Append(CONST_OddelovacPoli)

            tmp_Riadok.Append(tmp_SkladovaKarta.IShop_Picture_Big)
'--- názov súboru - veľký obrázok
            tmp_Riadok.Append(CONST_OddelovacPoli)
 

            '--- Je možné doplniť ďalšie polia ..........
            '...

            '--- Jeden riadok polí skladovej karty bol vytvorený, vložiť celý riadok do celkovej textovej premennej ---
            tmp_ExportovaneUdaje.AppendLine(tmp_Riadok.ToString)
 

      Next

  

      '--- Všetky údaje boli načítané a vložené do textovej premennej tmp_ExportovaneUdaje

     
'--- Uloženie hodnôt do súboru
      Dim tmp_Subor As IO.FileStream
      tmp_Subor = New IO.FileStream(txt_Subor.Text, IO.FileMode.Create)

      
'--- Objekt pre zápis do súboru - umožňuje nastaviť aj kódovú stránku daných údajov
      Dim tmp_SuborZapisovac As New IO.StreamWriter(tmp_Subor, System.Text.Encoding.Default)

      
'--- Zapísanie do súboru
      tmp_SuborZapisovac.WriteLine(tmp_ExportovaneUdaje.ToString)

     
'--- Zapísanie do súboru
      tmp_SuborZapisovac.Close()
      tmp_Subor.Close()

 

ExitSub:

 

      '--- Zatvorenie firmy ---
      If tmp_AppOBERON.IsCompanyOpen = True Then
            tmp_AppOBERON.Company_Close()
      End
If

      txt_Status.Text = txt_Status.Text & vbCrLf & "Export bol ukončený ..."

      '--- Povoliť tlačidlo
      btn_Exportovat.Enabled =
True
EndSub

Ďalší komentár k zdrojovému textu

Príbuzné témy

Exalogic, s.r.o., www.exalogic.sk

25.4.2018