Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-03-29, 08:11x



Odpowiedz w temacie  [ Posty: 4 ] 
Domyślne dokumenty i serie dla rejestru pieniężnego 
Autor Wiadomość

Rejestracja: 2015-12-02, 22:01
Posty: 2
Post Domyślne dokumenty i serie dla rejestru pieniężnego
Witam

Poszukuje informacji jak z obiektu BDokumentPn przejść przez rejestr i wydobyć skojarzone typy dokumentów wpłaty/wypłaty wraz z ich seriami.
Na podstawie wbudowanych raportów wyrzeźbiłem taki testowy raport, niestety nie mam punktu zaczepienia jak to kontynuować.
Kod:
dispatch xDokPn = xFactory.NewObject("BDokumentPn")
xDokPn.Load(using "kod='%s'", sKodPlatnosci)
// (...)
dispatch xRejPn = xDokPn.rejestr.LoadFullObject()

Kod ma posłużyć do automatycznego (gdzie się da) wypełniania pól importowanych płatności (właściwy raport importu płatności jest i działa ale straszy zaszytymi na sztywno kwiatkami, co utrudnia rozbudowe o kolejne rejestry):
Kod:
xDokPn.UstawTypDK("PADD")
xDokPn.UstawSerie("sPADD")

Z góry dzięki za wskazówki

EDIT: Symfonia Handel ERP 2015.c


2015-12-02, 22:28
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post Re: Domyślne dokumenty i serie dla rejestru pieniężnego
Ta wiadomość była pomocna.(1)
W tym przypadku obiektami może być Ci ciężko to wyciągnąć.
Ale możesz zrobić to z poziomu bazy.

Przykładowo rejestr który Cię interesuje to : BANK EUR

Kod:
SELECT       idTX
FROM            HM.KH
WHERE        (kod = 'BANK EUR') AND (typ = 104)


Pole idTX zawiera id rekordu z ustawieniami domyślnych dokumentów w tabeli [HM].[TX]

Kod:
SELECT *
FROM HM.TX
WHERE id = wartość_z_pola_idTx_tabeli_KH


Ustawienia trzymane są w polu opis w niespodziewanej postaci

Przykład wartości :
Kod:
trybRozliczania='0' typRaportu='' seriaKorekty='' typWplaty='BP' seriaWplaty='sBP' typWyplaty='BW' seriaWyplaty='sBW' parametrFK=''


O to chodziło?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2015-12-03, 00:07
Wyświetl profil

Rejestracja: 2015-12-02, 22:01
Posty: 2
Post Re: Domyślne dokumenty i serie dla rejestru pieniężnego
Dziekuje bardzo. O to chodzilo, chociaz mialem nadzieje ze da sie to zrobic jakos ladniej.
Trudno, w efekcie powstala u mnie funkcja owijajaca caly mechanizm do pobierania.
Moze komus sie przyda, wszelkie sugestie mile widziane :)

Kod:
string sub INT_getRejestrPnParam(string sRejestrKod, string sParametr)
   dispatch con = GetAdoConnection()
   dispatch rs = "ADODB.Recordset"
   INT_getRejestrPnParam = ""
   
   string sTemplate = "SELECT CASE WHEN (CHARINDEX ( '%s=''', TX.opis ) = 0) THEN '' ELSE SUBSTRING( TX.opis, CHARINDEX ( '%s=''', TX.opis ) + LEN('%s='''), CHARINDEX( '''', SUBSTRING( TX.opis, CHARINDEX ( '%s=''', TX.opis ) + LEN('%s='''), 10) ) - 1) END AS OUT FROM HM.KH WITH (NOLOCK) INNER JOIN HM.TX WITH (NOLOCK) ON (KH.idTX = TX.id) WHERE (KH.kod = '%s') AND (KH.typ = 104)"
   string sSQL = using sTemplate, sParametr, sParametr, sParametr, sParametr, sParametr, sRejestrKod

   if rs.State == 1 then rs.Close()
   rs.Open ( sSQL ,con,3)
   
   if rs.RecordCount > 0 then
      rs.MoveFirst()
      if !rs.EOF then
         INT_getRejestrPnParam = rs.Fields("OUT").Value
      endif
   endif
   rs.Close()
endsub


2015-12-03, 17:57
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3982
Pomógł: 445
Post Re: Domyślne dokumenty i serie dla rejestru pieniężnego
Sugestie raczej zbędne bo widać, że dobrze czujesz się w SQLu.
Do wydostania wartości tych parametrów z pola opis możesz użyć Find Regular z AmBasica

Kod:
string sub INT_getRejestrPnParam(string sRejestrKod, string sParametr)
   dispatch con = GetAdoConnection()
   dispatch rs = "ADODB.Recordset"
   
   string sSQL = using "SELECT opis FROM HM.KH INNER JOIN HM.TX ON (KH.idTX = TX.id) WHERE (KH.kod = '%s') AND (KH.typ = 104)", sRejestrKod

   if rs.State == 1 then rs.Close()
   rs.Open ( sSQL ,con,3)
   
   if rs.RecordCount > 0 then
         buf = rs.Fields("opis").Value
       if find regular (using "^*%s/='{*}'*$", sParametr) then INT_getRejestrPnParam = regular 1
   endif
   rs.Close()
endsub

print INT_getRejestrPnParam("BANK EUR", "typWplaty")

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2015-12-03, 18:19
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 4 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki [HMP2014] Notatka rejestru pieniężnego

w Programy Handlowe

jajecko

2

2922

2015-06-23, 14:56

jajecko Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Zmiana waluty rejestru pieniężnego

w Programy Handlowe

el_polacco

0

1912

2014-08-14, 16:15

el_polacco Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Baza SQL hasło domyślne

w Programy Księgowe

OMK

1

2162

2022-03-29, 17:09

OMK Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki domyslne sortowanie dokumentow sprzedazy

w Programy Handlowe

symfhan09

10

6455

2017-01-17, 16:54

rafal Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 7 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:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant