Autor Wątek: Sfera i dodawanie/aktualizowanie promocji  (Przeczytany 3192 razy)

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

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Sfera i dodawanie/aktualizowanie promocji
« dnia: Maj 16, 2017, 16:13:51 »
Witajcie.
Przymierzam się do zrobienia pliku xlsm z prostą tabelą SYMBOL KONTRAHENTA, NAZWA GRUPY TOWAROWEJ i RABAT w celu zautomatyzowania dodawania/aktualizowania Promocji w Subiekcie (większość naszych klientów ma poza rabatem podstawowym rabaty indywidualne na każdą grupę towarową). Problematyczne jest klikanie na juz utworzoną promocję (lub tworzenie nowej) i modyfikowanie jej zawartości o nowego kontrahenta dlatego chciałem trochę zautomatyzować i przyspieszyć te czynności.

Ale juz na początku tworzenia VBS'a napotkałem problem bo w referencjach nie mogę odnaleźć (albo po prostu nie mogę się zorientować który to) obiektu odpowiedzialnego za utworzenie/modyfikację Promocji. No chyba ze w ogóle nie jest mozliwe utworzenie formularza z takimi funkcjonalnościami jakimi chcę.

Ktoś może mi pomóc?

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #1 dnia: Maj 16, 2017, 16:59:10 »
@pir
Profiler zwrócił mi taką wartość
exec sp_executesql N'INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P1,@P2,@P3); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P4,@P5,@P6); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P7,@P8,@P9); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P10,@P11,@P12); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P13,@P14,@P15); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P16,@P17,@P18); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P19,@P20,@P21); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P22,@P23,@P24); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P25,@P26,@P27); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P28,@P29,@P30); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P31,@P32,@P33); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P34,@P35,@P36); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P37,@P38,@P39); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P40,@P41,@P42); INSERT INTO "ASTRA".."dok_PromocjaKontrahent" ("pck_Id","pck_IdPromocja","pck_IdKontrahent") VALUES (@P43,@P44,@P45)',N'@P1 int,@P2 int,@P3 int,@P4 int,@P5 int,@P6 int,@P7 int,@P8 int,@P9 int,@P10 int,@P11 int,@P12 int,@P13 int,@P14 int,@P15 int,@P16 int,@P17 int,@P18 int,@P19 int,@P20 int,@P21 int,@P22 int,@P23 int,@P24 int,@P25 int,@P26 int,@P27 int,@P28 int,@P29 int,@P30 int,@P31 int,@P32 int,@P33 int,@P34 int,@P35 int,@P36 int,@P37 int,@P38 int,@P39 int,@P40 int,@P41 int,@P42 int,@P43 int,@P44 int,@P45 int',428277,588,272,428278,588,382,428279,588,419,428280,588,422,428281,588,449,428282,588,875,428283,588,964,428284,588,971,428285,588,1017,428286,588,1228,428287,588,1231,428288,588,1293,428289,588,1323,428290,588,1475,428291,588,1485

Offline pir

  • Aktywny użytkownik
  • ***
  • Wiadomości: 302
  • Reputacja +14/-0
  • Wersja programu: zazwyczaj aktualna chyba że czekam na jakąś poprawkę
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #2 dnia: Maj 16, 2017, 17:09:37 »
Nie doczytałem, że chcesz używać sfery. Moja podpowiedź tyczyła się bezpośredniego dostępu do bazy danych. Lepiej poczekaj na kogoś z większą wiedzą na temat sfery.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #3 dnia: Maj 16, 2017, 17:10:56 »
Spoko. Dzięki za info.
Jednocześnie proszę admina o przeniesienie do działu Dodatki - zestawienia - sfera bo chyba bardziej tu powinien znajdować się wątek.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17064
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #4 dnia: Maj 16, 2017, 18:23:06 »
Promocje nie są obsługiwane przez Sferę, pozostaje bezpośredni dostęp do bazy danych.

Ale juz na początku tworzenia VBS'a napotkałem problem bo w referencjach nie mogę odnaleźć (albo po prostu nie mogę się zorientować który to) obiektu odpowiedzialnego za utworzenie/modyfikację Promocji.

Na przyszłość szukaj takich informacji w pomocy do Sfery.
Daniel, Białystok.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #5 dnia: Maj 18, 2017, 08:37:17 »
Faktycznie mogłem sprawdzić. Dzięki.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17064
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #6 dnia: Maj 18, 2017, 08:51:25 »
Faktycznie mogłem sprawdzić. Dzięki.

Zwróć uwagę na model obiektowy, szybko można sprawdzić jakie obiekty są obsługiwane przez Sferę.
Daniel, Białystok.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #7 dnia: Maj 18, 2017, 09:43:26 »
No właśnie zerknąłem i znalazłem inną rzecz, która mnie zainteresowała.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17064
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #8 dnia: Maj 18, 2017, 10:04:06 »
A mnie zainteresowało to, co Ciebie zainteresowało ;)
Daniel, Białystok.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #9 dnia: Maj 18, 2017, 10:27:16 »
Przypisywanie wartości pól własnych do towarów. Dopiero zaczynam ogarnianie tematu i przypominanie sobie składni języków programowania. Znalazłem przykładowe rozwiązanie wpisywania wartości do pola w Pomocy do Sfery i przykłady z płyty ale muszę posiedzieć na testowej bazie z wrzuceniem tego w jeden formularz tak, żeby po wrzuceniu listy towarów (wystarczą kolumny SYMBOL, NAZWA, WARTOŚĆ POLA) i po kliknięciu na przycisk skrypt po odczytaniu symbolu towaru wpisał wartość z kolumny WARTOŚĆ do pola własnego.

Znalazłem na płycie przykład dodawania Kontrahenta z poziomu Excela
Dim oSubiekt As InsERT.Subiekt

Private Sub DodajKh_Click()
    ' Podłączenie Subiekta GT
    Dim oGT As New InsERT.gt

    oGT.Produkt = InsERT.gtaProduktSubiekt
    oGT.Wczytaj ("C:\Program Files\InsERT\InsERT GT\Subiekt.xml")

    Set oSubiekt = oGT.Uruchom(InsERT.gtaUruchomDopasuj, InsERT.gtaUruchom)

    ' Dodawanie kontrahentow
    Dim oKh As InsERT.Kontrahent
    Dim row As Integer      ' Wiersz wstawianych danych
    Dim Dodane As Integer
    Dim Opuszczone As Integer
   
    row = 5         ' Numer pierwszego wiersza z danymi
    Dodane = 0      ' Liczba dodanych kontrahentów
    Opuszczone = 0  ' Liczba opuszczonych kontrahentów
   
    On Error Resume Next
    While Cells(row, 1).Text <> ""
        Set oKh = Nothing
        Set oKh = oSubiekt.Kontrahenci.Wczytaj(Cells(row, 3))
   
        If oKh Is Nothing Then
            ' Nie ma kontrahenta o podanym symbolu
            Set oKh = oSubiekt.Kontrahenci.Dodaj(0)
            oKh.Symbol = Cells(row, 1)
            oKh.Nazwa = Cells(row, 2)
            oKh.NIP = Cells(row, 3)
            oKh.Ulica = Cells(row, 4)
            oKh.NrDomu = Cells(row, 5)
            oKh.NrLokalu = Cells(row, 6)
            oKh.Miejscowosc = Cells(row, 7)
            oKh.KodPocztowy = Cells(row, 8)
            oKh.WWW = Cells(row, 9)
            oKh.Zapisz
            Cells(row, 10) = ""
            Dodane = Dodane + 1
        Else
            ' W Subiekcie GT jest już kontrahent o podanym symbolu
            Cells(row, 10) = "Już istnieje"
            Opuszczone = Opuszczone + 1
        End If
        row = row + 1
    Wend
   
    MsgBox "Gotowe. Dodano" + Str(Dodane) + " kontrahentów, a  opuszczono" + Str(Opuszczone) + "."

End Sub

Private Sub EdytujKh_Click()
    If oSubiekt Is Nothing Then
        MsgBox "Brak połączenia z Subiektem GT"
        Exit Sub
    End If
    Dim oKh As InsERT.Kontrahent
   
    On Error GoTo Error_BrakKontrahenta
   
    Set oKh = oSubiekt.Kontrahenci.Wczytaj(CStr(Cells(ActiveCell.row, 1)))
    oKh.Wyswietl
    Exit Sub
Error_BrakKontrahenta:
    MsgBox "Należy wybrać wiersz z symbolem kontrahenta do edycji." + Cells(ActiveCell.row, 1)
End Sub

Ale ze moja wiedza wymaga aktualizacji to muszę wykombinować jak zamienić linijki z kontrahentami do efektu z tego przykładu:
Sub Towar_PoleWlasne()
On Error GoTo ErrHandler
 
    Dim oSubGT As InsERT.Subiekt
    Dim oTw As InsERT.Towar
   
    Set oSubGT = UruchomSubiekta()
    Set oTw = oSubGT.TowaryManager.Wczytaj(12)
    oTw.PoleWlasne("Zapach") = "Fiołkowy"
    oTw.Zapisz
    oTw.Wyswietl
    oTw.Zamknij
   
    Exit Sub
ErrHandler:
    MsgBox Err.Number & " - " & Err.Description
End Sub


Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4876
  • Reputacja +172/-11
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #10 dnia: Maj 18, 2017, 10:33:37 »
Może nie rozumiem co chcesz zmienić, ale w helpie jest analogiczny przykład dla pól własnych kontrahenta.
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #11 dnia: Maj 18, 2017, 10:51:43 »
To może jeszcze raz:
mój formularz ma zawierać 3 kolumny: SYMBOL, NAZWA TOWARU, WARTOŚĆ POLA. Czyli jak dobrze kojarzę do kolumn muszą być dopisane:
SYMBOL - tw.Symbol
NAZWA - nic, bo to jest potrzebne tylko do kontroli rodzaju towaru przeze mnie
WARTOŚĆ POLA - wartość stąd musi być wpisywana do oTw.PoleWlasne("QSHOP").

Sam przykład
Sub Towar_PoleWlasne()
On Error GoTo ErrHandler
 
    Dim oSubGT As InsERT.Subiekt
    Dim oTw As InsERT.Towar
   
    Set oSubGT = UruchomSubiekta()
    Set oTw = oSubGT.TowaryManager.Wczytaj(12)
    oTw.PoleWlasne("Zapach") = "Fiołkowy"
    oTw.Zapisz
    oTw.Wyswietl
    oTw.Zamknij
   
    Exit Sub
ErrHandler:
    MsgBox Err.Number & " - " & Err.Description
End Sub
jest dobry, ale nie wiem jak go zmodyfikować tak, żeby pobierał symbol z kolumny SYMBOL (na przykład A) i wpisywał do otw.PoleWlasne("QSHOP") wartość z kolumny WARTOŚĆ POLA (na przykład C).

Offline candy

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 4876
  • Reputacja +172/-11
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #12 dnia: Maj 18, 2017, 11:36:12 »
Leniuszek!
Pierwsza pozycja od góry: http://bfy.tw/BrQW
Nie pytaj co rząd może zrobić dla Ciebie. Spytaj czy mógłby tego nie robić.

Offline astralom

  • Użytkownik
  • **
  • Wiadomości: 65
  • Reputacja +1/-1
  • Wersja programu: 1.73
Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #13 dnia: Maj 18, 2017, 11:47:05 »
Dzięki!

Forum Użytkownikow Subiekt GT

Odp: Sfera i dodawanie/aktualizowanie promocji
« Odpowiedź #13 dnia: Maj 18, 2017, 11:47:05 »