mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
Domyślne dokumenty i serie dla rejestru pieniężnego https://forum.mix-soft.pl/viewtopic.php?f=15&t=6944 |
Strona 1 z 1 |
Autor: | warden [ 2015-12-02, 22:28 ] |
Tytuł: | 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 |
Autor: | rafal [ 2015-12-03, 00:07 ] |
Tytuł: | Re: Domyślne dokumenty i serie dla rejestru pieniężnego |
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? |
Autor: | warden [ 2015-12-03, 17:57 ] |
Tytuł: | 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 |
Autor: | rafal [ 2015-12-03, 18:19 ] |
Tytuł: | 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") |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |