Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-03-28, 23:30x



Odpowiedz w temacie  [ Posty: 3 ] 
WYMIARY Towarów, nazwa na dokumentach WartosciWymiarow 
Autor Wiadomość

Rejestracja: 2010-04-23, 14:14
Posty: 18
Pomógł: 1
Post WYMIARY Towarów, nazwa na dokumentach WartosciWymiarow
Kod:
dispatch xGetParams=xFactory.NewObject("XParams")
string sGetError
Dispatch xTw
xTw = xFactory.NewObject("BTowar")

string sub Wymiary( string sKod)
int iWym
xTw.Load(sKod)
xGetParams.Clear()
xGetParams.kod=sKod
xTw=xFactory.GetObject("BTw",xGetParams)
Wymiary = xTw.nazwa

   for iWym = 1 to iWym > xTw.WartosciWymiarow.Count()
      Wymiary += xTw.WartosciWymiarow.Item(iWym).wymiar.definicja.nazwa+ ": " + xTw.WartosciWymiarow.Item(iWym).wartosc + lf
   next iWym

endsub

Message Wymiary("504343")



Pogrzebałem na forum i mam powyższy kod. Dostaję informację Obiekt nie obsługuje właściwości lub metody o nazwie: "WartosciWymiarow"

Gdy najzwyczajniej pobieram np. nazwę towaru xTw.nazwa to oczywiście działa.


Dodatkowo - posłużyłem się kodem zaproponowanym przez eksperta Rafała
http://www.forum.mojasymfonia.pl/viewtopic.php?f=2&t=5080&hilit=wymiary+na+wz

Na niektórych stanowiskach pojawia się komunikat
Kod:
Problem pojawia się taki:

Błąd wykonania
Obiekt OLE nie został zainicjowany


Wersja SymfoniaERP 2020.1


2019-11-26, 17:09
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2010-11-25, 09:46
Posty: 438
Pomógł: 7
Post Re: WYMIARY Towarów, nazwa na dokumentach WartosciWymiarow
jaki to program ?


2019-12-02, 14:56
Wyświetl profil

Rejestracja: 2010-04-23, 14:14
Posty: 18
Pomógł: 1
Post Re: WYMIARY Towarów, nazwa na dokumentach WartosciWymiarow
Sage Symfonia ERP 2020.1. Jest to moduł Handel i kod z ambasic'a.

Nie dostałem odpowiedzi, dałem sobie spokój z dostępem do wymiarów przez obiekty i napisałem sobie takiego inklud'a

Kod:
dispatch xConn=GetAdoConnection()
dispatch xConnTmp=GetAdoConnection()
dispatch xConnTemp=GetAdoConnection()
dispatch xRec="ADODB.Recordset"
dispatch xRTmp="ADODB.Recordset"
dispatch xRTemp="ADODB.Recordset"
dispatch cmdAdo = "ADODB.Command"
cmdAdo.ActiveConnection = xConnTemp
cmdAdo.CommandTimeout = 50000


xRec.CursorType=1
xRec.LockType=3

xRTmp.CursorType=1
xRTmp.LockType=3

string sSQL
long lCount

//-------------------------------------------------------------------------------------------------------------
int sub funWymiarylist()
   
string sKodTowaru
int dIdElementu
string sMiejsceMag

   sSQL="SELECT kod FROM TW "
   sSQL+="WHERE typ = 0 "

   xRec.Open(sSQL,xConn)
   While !xRec.EOF()
      lCount+=1
      sKodTowaru = xRec.Fields("kod").value

      print xRec.Fields("kod").value
      print LF;
      print using "%d",lCount;
      print LF;

         xRtmp.Open("SELECT ElementId From SSCommon.STElements WHERE SSCommon.STElements.Title='"+sKodTowaru+"'",xConnTmp)
         While !xRtmp.EOF()
               dIdElementu = xRtmp.Fields("ElementId").value
               xRtmp.MoveNext()
         wend
         xRtmp.Close()

         xRtmp.Open("SELECT CDim_Miejsce#składowaniaHM_6780_1 FROM SSCommon.ProductClassification WHERE SSCommon.ProductClassification.ElementId ="+(using "%d",dIdElementu),xConnTmp)
         While !xRtmp.EOF()
               if xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value then // to jest potrzebne, bo jak pusta komórka, to element jest int (chyba 0 albo null), jak pełna - to string
                  sMiejsceMag = xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value
            endif

               xRtmp.MoveNext()
         wend
         xRtmp.Close()
   
         print sMiejsceMag
         print LF;
         xRec.MoveNext()
   wend
   xRec.Close() : lCount=0

Endsub

string sub funDajTwWymiar(string sKodTowaru)
   int dIdElementu
   string sMiejsceMag

   xRtmp.Open("SELECT ElementId From SSCommon.STElements WHERE SSCommon.STElements.Title='"+sKodTowaru+"'",xConnTmp)
   While !xRtmp.EOF()
         dIdElementu = xRtmp.Fields("ElementId").value
         xRtmp.MoveNext()
   wend
   xRtmp.Close()

   xRtmp.Open("SELECT CDim_Miejsce#składowaniaHM_6780_1 FROM SSCommon.ProductClassification WHERE SSCommon.ProductClassification.ElementId ="+(using "%d",dIdElementu),xConnTmp)
   While !xRtmp.EOF()
      if xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value then // to jest potrzebne, bo jak pusta komórka, to element jest int (chyba 0 albo null), jak pełna - to string
         funDajTwWymiar = xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value
      ELSE
         funDajTwWymiar = ""
      endif
      xRtmp.MoveNext()
   wend
   xRtmp.Close()
Endsub



int sub funZmienTwWymiar(string sKodTowaru, string sNoweMiejsce)
   int dIdElementu
   string sMiejsceMag

   print sKodTowaru;
   print " nowe miejsce: ";
   print sNoweMiejsce;
   print " ";

   
   xRtmp.Open("SELECT ElementId From SSCommon.STElements WHERE SSCommon.STElements.Title='"+sKodTowaru+"'",xConnTmp)
   While !xRtmp.EOF()
         dIdElementu = xRtmp.Fields("ElementId").value
         xRtmp.MoveNext()
   wend
   xRtmp.Close()
   if dIdElementu then
      xRtmp.Open("SELECT CDim_Miejsce#składowaniaHM_6780_1 FROM SSCommon.ProductClassification WHERE SSCommon.ProductClassification.ElementId ="+(using "%d",dIdElementu),xConnTmp)
      While !xRtmp.EOF()
         if xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value then // to jest potrzebne, bo jak pusta komórka, to element jest int (chyba 0 albo null), jak pełna - to string
            print "znalazłem stare miejsce ";
            sMiejsceMag = xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value
            print sMiejsceMag;
            cmdAdo.CommandText = "UPDATE SSCommon.ProductClassification SET CDim_Miejsce#składowaniaHM_6780_1 = '"+sNoweMiejsce+"' WHERE SSCommon.ProductClassification.ElementId="+(using "%d",dIdElementu)
            cmdAdo.Execute()
            print " zmienione";
            //print xRtmp.Fields("CDim_Miejsce#składowaniaHM_6780_1").value
         ELSE
            print "nie znalazłem rekordu miejsca"
            print LF
         endif
         xRtmp.MoveNext()
      wend
      xRtmp.Close()
   else
      print " nie znalazłem kartoteki"
   endif



   print LF;
Endsub



int sub funImportMiejscatxt()

      int id, idWyst
      String Plik_w ="C:\\MIEJSCA\\MIEJSCA.txt"
      Int Numer_plik = Open Plik_w For input
      Int tw2, err
      String strLine, strKod, strMiejsce, konc
      Float cena, ilosc

      buf = ""
      Input # Numer_plik, strLine
      
      Do
         buf = strLine
         konc = Find Regular "{;*}\{;*}\{;*}"
         
         strKod = Regular 1
         strMiejsce = Regular 2
         buf = strKod
         delete ";"
         strKod = buf
         
         buf = strMiejsce
         delete ";"
         strMiejsce = buf
         
         funZmienTwWymiar(strKod,strMiejsce)
         Input # Numer_plik, strLine
      Loop Until strLine=="EOF"
endsub


Moja baza ma wymiar, który mnie interesuje tutaj: CDim_Miejsce#składowaniaHM_6780_1 - trzeba sobie zmienić.

int sub funWymiarylist() - listuje nam co mamy wpisane przy kodzie towarowym
funDajTwWymiar(string sKodTowaru) - daje nam element wymiaru na podstawie kodu towarowego (ta funkcja wkleja mi wymiar na dokumenty magazynowe)
funZmienTwWymiar(string sKodTowaru, string sNoweMiejsce) - wprowadza zmianę do wymiaru dla zadanego towaru

Ostatnia funkcja to bonus - potrzebowałem zaimportować wymiary do towarów z excela/pliku tekstowego - musi wyglądać jak poniżej.

;KODTOWARU1;ELEMENTWYMIARU1;
;KODTOWARU2;ELEMENTWYMIARU2;
;KODTOWARU3;ELEMENTWYMIARU3;
;KODTOWARU4;ELEMENTWYMIARU4;
EOF

To moje kodowanie jest brzydkie i paździeżowe, ale działa lepiej niż obiekty biznesowe BY SAGE.


2019-12-03, 00:44
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 3 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Kolumna nazwa towaru w dokumentach handlowych

w Programy Handlowe

kamilllb

1

2733

2015-02-10, 20:31

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki [HMF2009a] Błąd listy towarów w dokumentach?

w Programy Handlowe

Maciek

5

3374

2009-07-07, 09:15

krzysiek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. ERP Handel Nazwa odbiorcy = Nazwa nabywcy

w Programowanie

straniero

2

3167

2015-07-27, 15:59

straniero Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. HMF wymiary analityczne

w Programowanie

KrzysztofK

0

1877

2021-10-03, 11:08

KrzysztofK Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 3 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant