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



Odpowiedz w temacie  [ Posty: 2 ] 
Księgi czy bufor, jak rozpoznać 
Autor Wiadomość

Rejestracja: 2010-03-30, 11:53
Posty: 23
Pomógł: 2
Post Księgi czy bufor, jak rozpoznać
FiK 2013
Witam ponownie
ja dalej z uporem maniaka :)
Jesteśmy na Liście Dokumentów, mamy id dokumentu wybranego "prawoklikiem" (Arg0) i jeśli chcemy korzystać z danych zawartych w bazie a nie z "grid'a", pojawia się problem, jak nasz raport ma rozpoznać czy to lista z bufora czy z ksiąg ?
Radzę sobie następującym kodem, opracowanym na podstawie raportów zawartych w FiK oraz informacji zgromadzonych na tym forum :

Kod:
#include "dbutil.sci"
#include "wrap.sci"

string    skZlisty
long    idZlisty,nrZlisty, ZrodloDb
int errDok(2),errDo
#define XROWSDATA userObject

         idZlisty   = XROWSDATA.item( 1 ).id
         nrZlisty   = val(Mid(XROWSDATA.item( 1 ).numer   ,5))
         skZlisty   = Mid(XROWSDATA.item( 1 ).numer   ,1,4)
            buf = skZlisty
            while replace " ", ""
            wend
            skZlisty = buf         

BASEHANDLE bKt, bKth, bDokTab(2),bDok(2),bD,bDo

   bDokTab( 1 ) = dbOpenDokBase( indeksRoku(), 0, 0 ) // księgi
   bDokTab( 2 ) = dbOpenDokBase( indeksRoku(), 1, 0 ) // bufor
      bDok(1) = bDokTab( 1 )
      bDok(2) = bDokTab( 2 )
      SetKey( bDok(1), "id" )
      SetKeySeg( bDok(1), "id", idZlisty )
      errDok(1) = GetRec( bDok(1), EQ )

      SetKey( bDok(2), "id" )
      SetKeySeg( bDok(2), "id", idZlisty )
      errDok(2) = GetRec( bDok(2), EQ )

         if  (GetField( bDok(1), "id" )==idZlisty)&&(GetField( bDok(1), "numer" )==nrZlisty)&&(GetField( bDok(1), "skrot" )==skZlisty) Then
               ZrodloDb = 0
         else
               ZrodloDb = 1
         endif


   DbClose(bDokTab( 1 ))
   DbClose(bDokTab( 2 ))
      


      bD = dbOpenDokBase( indeksRoku(), ZrodloDb, 0 )
      bDo = bD
               SetKey( bDo, "id" )
               SetKeySeg( bDo, "id", val(Arg0) )
               errDo = GetRec( bDo, EQ )
/*
// tu robimy co chcemy z danymi, oczywiście bez przesady :)            
*/
   DbClose(bD)


Pytanie moje brzmi, czy jest zmienna , właściwość lub metoda pozwalająca w prostszy sposób określić źródło danych z których powinniśmy skorzystać ?
PS. spokojnie można "zaremować" operacje tyczące się bazy opatrzonej indeksem 2 :)


2013-10-20, 11:07
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2010-03-30, 11:53
Posty: 23
Pomógł: 2
Post Re: Księgi czy bufor, jak rozpoznać
Ta wiadomość była pomocna.(1)
Sorki że tak post po poście ale nie mogę edytować poprzedniego.
Poniżej poprawiony kod pozwalający określić źródło danych Listy Dokumentów (może komuś się przyda)

Kod:
#include "dbutil.sci"
#include "fkutil.sci"
#include "wrap.sci"


long    idZlisty, ZrodloDb
int errDo

#define XROWSDATA userObject
   idZlisty   = XROWSDATA.item( 1 ).id

BASEHANDLE bKt, bKth, bD,bDo

   bD = dbOpenDokBase( indeksRoku(), 1, 0 ) // bufor
      bDo = bD
      SetKey( bDo, "id" )
      SetKeySeg( bDo, "id", XROWSDATA.item( 1 ).id )
      errDo = GetRec( bDo, EQ )

         if  dbNrEwToStr_Dok(bDo)==XROWSDATA.item( 1 ).numer Then
               ZrodloDb = 1
         else
               ZrodloDb = 0
         endif

      if ZrodloDb == 0 then
         DbClose(bD)
            bD = dbOpenDokBase( indeksRoku(), ZrodloDb, 0 )
            bDo = bD
      endif
               SetKey( bDo, "id" )
               SetKeySeg( bDo, "id", val(Arg0) )
               errDo = GetRec( bDo, EQ )

            
   if ZrodloDb == 1 Then
      Print "Dane pobrane z bufora";LF
   else
      Print "Dane pobrane z ksiąg";LF
   endif
Print "----------------";LF
Print "Arg0      :";Arg0;LF
Print "id        :";GetField( bDo, "id");"*";LF
Print "skrot     :";GetField( bDo, "skrot");"*";LF
Print "numer     :";GetField( bDo, "numer");"*";LF
Print "numer ewid:";dbNrEwToStr_Dok(bDo);"*";LF
Print "nr. dokum :";GetField( bDo, "nazwa");"*";LF
Print "treść     :";GetField( bDo, "tresc");"*";LF
Print "kontrahent:";GetField( bDo, "kontrahent");"*";LF
Print "data dokum:";GetField( bDo, "datadok");"*";LF
Print "data wprow:";GetField( bDo, "datawpr");"*";LF
Print "data oper :";GetField( bDo, "dataoper");"*";LF
Print "kwota     :";GetField( bDo, "kwota");"*";LF
Print "sygnatura :";GetField( bDo, "sygnatura");"*";LF

   DbClose(bD)


2013-10-21, 11:18
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 2 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Jak rozpoznać na jakim motorze bazy danych Symfonia działa

w Techniczne

goldengate

3

3031

2011-10-25, 14:51

krzysiek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Raporty księgi

w Programy Księgowe

szczepk

2

2019

2012-01-04, 17:26

szczepk Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Księgi rachunkowe bez VAT

w Programy Księgowe

MlodyKsiegowy

1

1779

2014-03-13, 14:57

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki import tylko do VAT nie do księgi

w Programy Księgowe

pedro9

1

1849

2012-07-12, 10:03

Maciek Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 10 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