Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-11-22, 01:20x



Odpowiedz w temacie  [ Posty: 22 ]  Przejdź na stronę 1, 2  Następna
[FiK premium 2008] ambasic - porównywanie dat 
Autor Wiadomość

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post [FiK premium 2008] ambasic - porównywanie dat
jest jakis sposob zeby pobrac rekordy z danej bazy z zakresu dat?
pod forte mozna to zrobic zapytaniem sql a tu? :-/
getrec() tez albo mniejszy rowny albo wiekszy rowny..
nie ma dostepnego typu datowego, tylko pod stringa mozna podstawic a tu trochę zabawy zeby porównac daty... :roll:


2008-03-17, 12:42
Wyświetl profil
Autor Wiadomość
 


Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
Mają tu znaczenie pola które są indeksowane i klucze.
Chętnie odpowiem na przykładzie konkretnego przykładu.

Napisz z jakiej tabeli jakie dane chcesz pobrać.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2008-03-17, 13:19
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
transakcje z okreslonego zakresu dat, czyli z "transakcje" wg "data" pobrac np. "dokid" ale kryterium jest tez konto i narazie wg tego filtru tylko pobieram dane, trzeba jednak rekordy ograniczyc tylko do wybranego zakresu dat
zakres wczytywany z formatki datedit-ami


widzę ze poszczegolne lata sa w osobnych katalogach.. czyli jesli data bedzie miala zakres 2006-2008 to trzeba osobno otwierac bazy z poszczegolnych katalogow.. :shock:
chyba ze o czyms nie wiem..


2008-03-17, 13:24
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
Istnieją przynajmniej trzy sposoby na dostanie się do bazy transakcji z poziomu AMBasic'a.

    1. Za pomocą Obiektu integracji. Obiekt Rozrachunki.
    2. Za pomocą ODBC - jak się okazuje Pervasive nie jest niezbędny.
    3. Za pomocą GetRec itd...

3. Najważniejsze jest aby dobrać taki klucz z istniejących, który najlepiej sprawdzi się w szukaniu wg. naszych zał.
W tym przypadku użyjmy klucza "dataOkr". W kluczu tym mamy dwa pola
- rozliczona // status transakcji 0-nierozliczona, 1-rozliczona
- dataOkr // data okresu sprawozdawczego dokumentu

Kod:
   int bTra = open KatalogFirmy() + "07trans.dat" for base "transakcje"
   BaseError( bTra, 4)

   string SzukajOd = "2005-01-01"
   string SzukajDo = "2005-06-31"
   int err

   SetKey(bTra,"dataOkr")
   SetKeySeg(bTra,"rozliczona",0)
   SetKeySeg(bTra,"dataOkr",SzukajOd)

   err = GetRec(bTra, GE)

   while !err && GetField(bTra,"dataOkr") >= SzukajDo
         
      // tu coś robimy ze znalezionymi transakcjami

      err = GetRec(bTra, NX)
   wend   



Cytuj:
widzę ze poszczegolne lata sa w osobnych katalogach.. czyli jesli data bedzie miala zakres 2006-2008 to trzeba osobno otwierac bazy z poszczegolnych katalogow..
chyba ze o czyms nie wiem..


Poszczególne lata są w osobnych katalogach. Jednak tabela Transakcje jest w katalogu wpólnym dla wszystkich lat. I wystarczy otwarcie tak jak w przykładzie.

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2008-03-17, 23:00
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
zdaje się, że zeby się polączyc przez odbc potrzebny jest sterownik a ten instaluje się własnie z pervasivem.
o obiekcie rozrachunki jakos nie widze informacji w dokumentacji programu..
właciwie moje błedne zalozenie ze porownywanie dat jako 2 stringow nie bedzie prawidłowe :evil: - dzięki za info :)

a co do samych danych - nie wystarczą tylko "transakcje" bo potrzebne byly dane z dokumentow i z ksiąg i z bufora ale procedurka sparametryzowana załatwia temat.


2008-03-19, 11:50
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 4000
Pomógł: 448
Post 
user pisze:
zdaje się, że zeby się polączyc przez odbc potrzebny jest sterownik a ten instaluje się własnie z pervasivem.


Jeżeli nie mamy pervasiva możemy dostać się do bazy przez ODBC. Wymaga to jednak instalacji sterownika ODBC. Jest to bezpłatne narzędzie
Kod:
           ODBC Interface 2.04 for Windows 95 and Windows NT
                   ODBC Interface 2.04 for Windows
                              Release  1
                            February 1998
                              README.TXT

                (C) Copyright 1997, Pervasive Software Inc.
                         All Rights Reserved


do pobrania ze strony : http://www.goldstarsoftware.com/FTP/od32v204.zip

UWAGA! Nie można używać tego narzędzia razem z Pervasivem.

user pisze:
o obiekcie rozrachunki jakos nie widze informacji w dokumentacji programu.

Opis dostęny jest w dokumentacji obiektu integracji. Dokumentacja ta nie jest dostarczana z programem.

do pobrania : http://forum.mojasymfonia.pl/dload.php?action=category&id=4

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

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


2008-03-19, 15:58
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
dzieki raz jeszcze :-D


2008-03-19, 18:41
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
user pisze:
transakcje z okreslonego zakresu dat, czyli z "transakcje" wg "data" pobrac np. "dokid" ...


BOGU dziękować transakcje są w jednej tabeli, rozliczenia również.
To dokumenty i zapisy są w tabelach rocznych, a do tego jeszcze bufor i ksiegi...


2008-04-02, 21:11
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
z tymi bazami z poszczegolnych lat mam problem z dostępem do danych: getrec zwraca bląd nr 9 (z dokument.: "Komunikat nr 9 Koniec pliku")
wystarczy ze podstawię pod ten sam kod sciezke do jakiejs bazy z katalogfirmy a nie z podkatalogu roku np. kontrahenci i wszystko pięknie czyta :D zmieniałam klucze, parametr (ge, eq, fs) - doszłam ze nie w tym rzecz. teraz juz probuję na kluczu "id" i z parametrem fs zeby bylo uniwersalnie. czy ktos moze wie o co chodzi z tym błędem? aha, dziwi mnie ze na bazie demo działa ale na bazie firmowej wywala.


2008-04-08, 16:02
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
może kawałek kodu - będzie łatwiej odpowiedzieć


2008-04-08, 16:05
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
na demo działają obydwa.
na bazie firmowej:
ten nie działa (rok bez znaczenia)
Kod:
string dir2=katalogfirmy() +"2006\\"
string dostep= dir2 + "07dokum.dat"
int tr = Open dostep For Base "dokumenty"
baseerror(tr,4)   
SetKey(tr,"id" )
SetKeySeg(tr,"id",0)
int errtr=Getrec(tr,FS)
if errtr!=0 then    error using "Nr błędu: %d", errtr
while !errtr
print using "\n%s",getfield(tr,"skrot")
errtr=getrec(tr,NX)
wend


ten działa
Kod:
string dir2=katalogfirmy()
string dostep= dir2 + "08kontr.dat"
int tr = Open dostep For Base "kontrahenci"
baseerror(tr,4)   
SetKey(tr,"id" )
SetKeySeg(tr,"id",0)
int errtr=Getrec(tr,FS)
if errtr!=0 then    error using "Nr błędu: %d", errtr
while !errtr
print using "\n%s",getfield(tr,"nazwa")
errtr=getrec(tr,NX)
wend



2008-04-08, 18:51
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
Może dlatego, że w DEMO są zaksięgowane dokumenty a w Twojej firmie jeszcze nie :-(

Kod:
int tr = Open  katalogroku()+"07dok_b.dat" for base "buf_dokum"
baseerror(tr,4)   


int errtr=Getrec(tr,FS)
if errtr!=0 then     error using "Nr błędu: %d", errtr
while !errtr
print using "\n%s",getfield(tr,"skrot")
errtr=getrec(tr,NX)
wend


Ot poprostu otwierasz bazę dokumentów zaksiegowanych a nie tych w buforze.
Spróbuj z tym powyżej...


Ostatnio zmieniony 2008-04-08, 22:38 przez darek.007, łącznie zmieniany 1 raz



2008-04-08, 22:34
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
nie. ja wyraznie napisałam że problem dotyczy baz podzielonych na lata. przeciez nie bede podawala przykladow na wszystkie mozliwosci :D mial byc przyklad to byl - akurat ostatniej bazy jaką testowalam. generalnie w raporcie glownym wykrzacza się akurat na bazie 06zap_b.dat - zapisy w buforze. teraz testuję sobie tylko na tym małym fragmencie kodu bo tu lezy problem. tylko nie wiem w czym.


2008-04-09, 00:35
Wyświetl profil

Rejestracja: 2007-12-13, 23:19
Posty: 367
Pomógł: 2
Post 
Poprzedni kawałek naprawiłem.
Teraz dlaczego się wykrzacza na zapisach w buforze - niewiem.

Dopóki nie zobaczę nie będę mógł pomóc :-(


2008-04-09, 00:59
Wyświetl profil

Rejestracja: 2008-03-12, 15:45
Posty: 71
Pomógł: 1
Post 
dobrze. napiszę jeszcze raz.
Kod:
int errtr
string dir2=katalogfirmy() +"2006\\"
string dostep= dir2 + "06zap_b.dat"
int tr = Open dostep For Base "buf_zapisy"
baseerror(tr,4)   
SetKey(tr,"virtualne" )
SetKeySeg(tr,"synt",502)
SetKeySeg(tr,"poz1",7)
errtr=GetRec(tr,GE)
if errtr!=0 then error using "Nr błędu: %d", errtr

while !errtr
print using "%0.2f\n",getfield(tr,"kwota")
errtr=getrec(tr,NX)
wend


a konkretnie to co naprawiłes? bo widzę tylko usunięte
SetKey(tr,"id" )
SetKeySeg(tr,"id",0)

co w rzeczy samej nie moze stanowic problemu bo jest ignorowane przez "fs". a w moim przykladzie jest, poniewaz docelowo nie chcę pobierac ilus-tam tysięcy rekordów, tylko je przefiltrować, wiec i tak te polecenia muszą byc zastosowane.

no i zmieniles sciezkę, ale tu musi być string składany bo nie chodzi wylącznie o dane z katalogroku ale z róznych lat. i tez nie w tym rzecz, gdyby string byl zle złozony komunikat byłby inszy (np. o braku pliku).

edit:
aha, i z gory zaznaczam ze bląd jest bez względu na to czy podam wartosci wszystkich SetKeySeg w tym kluczu czy tylko te co w tym kodzie. jesli podam wszystkie poziomy analityki i date (a podaję zeby ograniczyc zakres danych) to i tak jest bląd.


2008-04-09, 11:51
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 22 ]  Przejdź na stronę 1, 2  Następna
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki hande premium 2011 - pervasive otwarte pliki 51dkp.dat

w Programy Handlowe

sosnek

0

2201

2011-02-10, 10:43

sosnek Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Przeniesienie Symfonii FiK 20011 z server 2003 na 2008

w Programy Księgowe

ali30

2

3008

2011-10-22, 20:10

ali30 Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Brak automatycznego przeksięgowania kont w FiK Forte 2008.b

w Programy Księgowe

Jagakom

1

2255

2010-04-19, 15:22

wrob Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Dodawanie kontrahenta (Ambasic, Handel Premium)

w Programowanie

Mihu

2

3144

2009-03-30, 13:16

Mihu Wyświetl najnowszy post



Kto jest online

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