Autor Wątek: Sfera - problem ze skryptem  (Przeczytany 6196 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline tyska

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1,28
Sfera - problem ze skryptem
« dnia: Lipiec 09, 2012, 16:58:19 »
witam,
mam mały problem ze skryptem sfery.
tworzę obecnie nową bazę zarówno towarów, jak i kontrahentów i by ułatwić sobie sprawę korzystam ze sfery, jednak mam mały problem by dodać pełną listę informacji o kontrahentach - wszystko wchodzi z tabeli w excelu prócz tel ;-((
jaki kod trzeba wpisać, by telefony załadowały się wraz z resztą danych?
oKh.Telefony.i co dalej? = cells (row, 2)

podobny problem mam ze zdjęciami produktów  - też się ie chcą załadować ;-((
otw.zdjecia.element(1) = cells (row,3)


z góry dzięki za pomoc

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera - problem ze skryptem
« Odpowiedź #1 dnia: Lipiec 09, 2012, 17:49:55 »
Polecam poczytać dokumentację do Sfery:

Cytuj
Sfera - InsERT GT dla aplikacji 1.0
Metoda Dodaj
Dodaje nowy obiekt typu KhTelefon (telefon kontrahenta).

Składnia
wyrazenie.Dodaj(val)
wyrazenie
Wymagane wyrażenie, które zwraca kolekcja KhTelefony
Parametry
val
variant. Nazwa nowododawanego telefonu.
Uwagi
Przykład
Przykład pokazuje dodanie telefonu do istniejącego kontrahenta o zadanym symbolu.
Sub DodajTelefon()
On Error GoTo ErrHandler
 
    Dim oSgt As Insert.Subiekt
    Dim oKh As Insert.Kontrahent
    Dim oKhTel As Insert.KhTelefon
    Dim sym As String
    Dim nazwa As String
    Dim numer As String
    Dim strTel As String
    Dim strRodzaj As String
    Dim CzyIstnieje As Boolean
    Dim Rodzaj As Boolean
   
   
    'Wczytanie symbolu kontrahenta, który ma być wyświetlony
    sym = InputBox("Podaj symbol kontrahenta", "Kontrahent")
    If sym = "" Then
        MsgBox "Należy wybrać kontrahenta.", vbCritical
        Exit Sub
    End If
           
    'Uruchomienie Subiekta GT
    Set oSgt = UruchomSubiekta()
   
    'Sprawdzenie czy istnieje kontrahent
    CzyIstnieje = oSgt.Kontrahenci.Istnieje(sym)
    If CzyIstnieje = False Then
        oSgt.Okno.Widoczne = False
        MsgBox "Kontrahent o podanym symbolu nie istnieje"
        Exit Sub
    Else
 
        'Wczytanie kontrahenta do kolekcji
        Set oKh = oSgt.Kontrahenci.Wczytaj(sym)
   
        'Ukrycie okna Subiekta GT
        oSgt.Okno.Widoczne = False
       
        strTel = InputBox("Podaj nazwę telefonu:", "Nazwa nowego telefonu")
       
        'Dodanie obiektu telefonu kontrahenta
        Set oKhTel = oKh.Telefony.Dodaj(strTel)
       
        'Wypełnienie danymi pozostałych parametrów telefonu
        oKhTel.numer = InputBox("Podaj numer telefonu", "Numer nowego telefonu")
        oKhTel.Typ = gtaTelefonTypSluzbowy
        oKhTel.Podstawowy = True
        strRodzaj = MsgBox("Numer ma być telefonem (Tak) czy faksem (Nie)?", vbYesNo)
        If strRodzaj = vbYes Then
            oKhTel.Rodzaj = False
        Else
            oKhTel.Rodzaj = True
        End If
       
        'Zapisanie obiektu kontrahenta do bazy danych
        oKh.Zapisz
        oKh.Wyswietl
       
        'Zamknięcie obiektu kontrahenta
        oKh.Zamknij
       
        End If
   
    Exit Sub
ErrHandler:
    MsgBox "Wystąpił błąd: " & Err.Number & " - " & Err.Description
   
End Sub
Daniel, Białystok.

Offline tyska

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1,28
Odp: Sfera - problem ze skryptem
« Odpowiedź #2 dnia: Lipiec 10, 2012, 08:33:57 »
hej,
dzięki za odp.
oczywiście taką metodę przerobiłam i owszem działa, ale w niej muszę mieć osobny dokument i w wyskakujące okienka wpisywać nr tel., nazwę, czy fax...
a ja mam już gotowy plik w excelu z kolumnami zawierającymi wszystkie potrzebne mi dane. Wszystko prócz nr tel. się z tego pliku ładuje w parę sekund.
z pewnością tel. też by się ładował, ale w kodzie sfera potrzebuje więcej informacji odnośnie czy to służbowy, jaka nazwa, czy podstawowy, czy fax - a ja tej kombinacji kodu nie znam ;-((

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera - problem ze skryptem
« Odpowiedź #3 dnia: Lipiec 10, 2012, 08:57:18 »
To jest właśnie przykład, a nie program przygotowany pod twoje potrzeby. To trochę tak jak byś zrobił prawo jazdy na Nissanie Micra i potem powiedział, że Skodą Octawią nie pojedziesz bo to inny samochód. Jeśli nie radzisz sobie z takimi podstawowymi operacjami, to zleć to komuś innemu, bo pomoc sprowadzać się będzie do pisania kodu Ciebie.

Nie ma potrzeby używać wyskakujących okienek, wszystkie dane niezbędne do wprowadzenia numeru których nie masz w Excelu możesz przecież zastąpić stałymi - pusta nazwa, typ "służbowy", jak masz jeden telefon to zawsze będzie podstawowy, zawsze telefon.

To chyba mój pierwszy kod w vb w życiu:

Cytuj
'Wczytanie kontrahenta do kolekcji
        Set oKh = oSgt.Kontrahenci.Wczytaj(sym)
   
        'Ukrycie okna Subiekta GT
        oSgt.Okno.Widoczne = False
               
        'Dodanie obiektu telefonu kontrahenta
        Set oKhTel = oKh.Telefony.Dodaj("")
       
        'Wypełnienie danymi pozostałych parametrów telefonu
        oKhTel.numer = cells (row, 2)
        oKhTel.Typ = gtaTelefonTypSluzbowy
        oKhTel.Podstawowy = True
        oKhTel.Rodzaj = False
       

        'Zapisanie obiektu kontrahenta do bazy danych
        oKh.Zapisz
        oKh.Wyswietl

--

Ze zdjęciami i wszystkimi kolekcjami podobnie - najpierw muszi dodać obiekt do kolekcji, a potem uzupełnić jego dane.

--

Proszę jeszcze zajrzeć do pliku "ImportPotencjalnychKlientow.xls" w dołączonych do programu przykładach (InsERT\Przykłady).
« Ostatnia zmiana: Lipiec 10, 2012, 10:00:23 wysłana przez dkozlowski »
Daniel, Białystok.

Offline tyska

  • Nowy użytkownik
  • *
  • Wiadomości: 4
  • Reputacja +0/-0
  • Wersja programu: 1,28
Odp: Sfera - problem ze skryptem
« Odpowiedź #4 dnia: Lipiec 10, 2012, 11:31:17 »
witam,
raz jeszcze dzięki za odpowiedź - niestety podane kombinacje przez Ciebie nie skutkują.
ale już znalazłam wymyśliłam kod pasujący idealne do mojego schematu:
gdyby ktoś kiedyś szukał:
oKh.Telefony.Dodaj(strTel).Numer = Cells(row, 1)

pozdrawiam

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera - problem ze skryptem
« Odpowiedź #5 dnia: Lipiec 10, 2012, 12:07:16 »
Jeśli coś Ci nie działa to przynajmniej napisz co się dzieje - czy pojawia się jakiś błąd, brak jest oczekiwanego efektu, itp - i zamieść kod który to realizuje. Wrzuciłem zaproponowany przeze mnie kod do przykładu i wszystko działa jak należy - plik w załączniku. Czy w moim kodzie zmieniłaś kolumnę komórki z 2 na 1 bo raz piszesz tak, a raz inaczej ?

Za to w Twoim kodzie co jest zapisywane do zmiennej "strTel", gdzie jest jej inicjalizacja ?
Daniel, Białystok.

Offline Marcin G

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: Subiekt 1.56
Odp: Sfera - problem ze skryptem
« Odpowiedź #6 dnia: Lipiec 05, 2017, 14:38:46 »
Witam
Mam podobny problem tylko że po wykonaniu poniższego kodu dostaję błąd w momencie zapisu
Cytuj
Błąd zapisu do bazy danych. Zapis spowodowałby naruszenie integralności danych.
Więcej informacji na ten temat w pomocy, w rozdziale "Problemy techniczne".

Wiecie co może być przyczyną?

 
var kontr = (Kontrahent) _sgt.Kontrahenci.Wczytaj(ktr.kh_Id);
         
             if (tel != null)
            {
                var tele = (KhTelefon)kontr.Telefony.Dodaj("");
                tele.Nazwa = tel.tel_Nazwa.Trim();
                tele.Numer = tel.tel_Numer.Trim();
                tele.Podstawowy = tel.tel_Podstawowy;
                tele.Rodzaj = tel.tel_Rodzaj;
                tele.Typ = TelefonTypEnum.gtaTelefonTypKomorkowy;
             }

                kontr.Zapisz();
           

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17255
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera - problem ze skryptem
« Odpowiedź #7 dnia: Lipiec 05, 2017, 14:42:50 »
Zapewne zapisujesz dane, których nie przyjmuje baza danych, niestety nie raczyłeś napisać jakie wartości zawierają zmienne.
Daniel, Białystok.

Offline Marcin G

  • Nowy użytkownik
  • *
  • Wiadomości: 8
  • Reputacja +0/-0
  • Wersja programu: Subiekt 1.56
Odp: Sfera - problem ze skryptem
« Odpowiedź #8 dnia: Lipiec 05, 2017, 14:50:44 »
       var tele = (KhTelefon)kontr.Telefony.Dodaj("");
                tele.Nazwa = tel.tel_Nazwa.Trim();     //string
                tele.Numer = tel.tel_Numer.Trim();     //string
                tele.Podstawowy = tel.tel_Podstawowy;  //bool 
                tele.Rodzaj = tel.tel_Rodzaj; // tutaj jest int=1 próbowałem tutaj też bool=true ale jest to samo

tel jest obiektem z drugiej bazy Subiekta zbudowanym na podstawie tabeli tel__Ewid

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 9235
  • Reputacja +1306/-21
  • Wersja programu: Najnowsza
Odp: Sfera - problem ze skryptem
« Odpowiedź #9 dnia: Lipiec 05, 2017, 22:40:09 »
A numer telefonu coś zawiera?
Sławek, Zduńska Wola

Forum Użytkownikow Subiekt GT

Odp: Sfera - problem ze skryptem
« Odpowiedź #9 dnia: Lipiec 05, 2017, 22:40:09 »