mojaSymfonia FORUM
https://forum.mix-soft.pl/

Eksport danych do txt lub połączenie ODBC
https://forum.mix-soft.pl/viewtopic.php?f=15&t=4654
Strona 2 z 2

Autor:  bzyq26 [ 2013-01-28, 17:49 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Tak przy okazji, chyba udało mi się wyrzucić tych nieszczęsnych kontrahentów. Nie wiem co oznacza pole typi, ale po ograniczeniu wyrzuciło mi odpowiednią ilość rekordów:

long sub WyswietlKomunikaty(IORec Rec)
WyswietlKomunikaty = 0
Long i = 0, typ
String strTmp, strTyp, msg
if (Rec.SetAtSection("__InfoWarningError")) then
print "\n Komunikaty zawarte w sekcji __InfoWarningError:\n"
while (Rec.NextSection())
Rec.NextField()
typ = val(Rec.GetFieldValue()) //typ komunikatu
select case typ
case 0
print "\nKomunikat systemowy:\t"
case 2
print "\nInformacja:\t"
case 4
print "\nUwaga!:\t"
case 6
print "\nBłąd!!:\t"
case 8
print "\nPytanie:\t"
endselect
Rec.NextField()
print Rec.GetFieldValue() + "\n" //treść komunikatu
wend
print "\n\n"
WyswietlKomunikaty = i
endif
endsub

IORec Rec

Int nrBazy1
Int Nr_pliku
String Plik
Int jest
Int Seg
Int Licznik = 1

Int id
String typ
Int typi
Int rodzaj
String znacznik
String kod
String nazwa
String miejscowosc
String ulica
String dom
String lokal
String kodpocz
String nip

String kontrahent

Plik = "C:\\Symfonia\\Raporty\\test9.txt"
Nr_pliku = Open Plik for output


nrBazy1 = Open "C:\\Symfonia\\Demo_hm\\51kh.dat" for Base "KH"
baseError (nrBazy1, 4)

SetKey(nrBazy1, "ID")

Seg=GetKeySeg (nrBazy1, "ID")

//Odczyt nowej zawartości rekordu
GetRec(nrBazy1, GE)
Do
GetRec(nrBazy1, EQ)

//Sprawdzenie zapisanych w rekordzie nowych informacji
id=GetField (nrBazy1, "id")
typ=GetField (nrBazy1, "typ")
typi=GetField (nrBazy1, "typi")
rodzaj=GetField (nrBazy1, "rodzaj")
znacznik=GetField (nrBazy1, "znacznik")
kod=GetField (nrBazy1, "kod")
nazwa=GetField (nrBazy1, "nazwa")
miejscowosc=GetField (nrBazy1, "miejscowosc")
ulica=GetField (nrBazy1, "ulica")
dom=GetField (nrBazy1, "dom")
lokal=GetField (nrBazy1, "lokal")
kodpocz=GetField (nrBazy1, "kodpocz")
nip=GetField (nrBazy1, "nip")
// kontrahent=GetField (nrBazy1, "kontrahent")

if typi==0 then
Print # Nr_pliku; Licznik
Print # Nr_pliku; ";"
Print # Nr_pliku; id
Print # Nr_pliku; ";"
Print # Nr_pliku; typ
Print # Nr_pliku; ";"
Print # Nr_pliku; typi
Print # Nr_pliku; ";"
Print # Nr_pliku; rodzaj
Print # Nr_pliku; ";"
Print # Nr_pliku; znacznik
Print # Nr_pliku; ";"
Print # Nr_pliku; kod
Print # Nr_pliku; ";"
Print # Nr_pliku; nazwa
Print # Nr_pliku; ";"
Print # Nr_pliku; miejscowosc
Print # Nr_pliku; ";"
Print # Nr_pliku; ulica
Print # Nr_pliku; ";"
Print # Nr_pliku; dom
Print # Nr_pliku; ";"
Print # Nr_pliku; lokal
Print # Nr_pliku; ";"
Print # Nr_pliku; kodpocz
Print # Nr_pliku; ";"
Print # Nr_pliku; nip
Print # Nr_pliku; ";"
Print # Nr_pliku; LF
endif
Loop Until GetRec(nrBazy1, NX)

Close Nr_pliku

WyswietlKomunikaty(Rec)

Autor:  bzyq26 [ 2013-01-28, 17:56 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

A tak przy okazji, mam pole np. typ albo typi - czy istnieje do tego identyfikatora jakiś słownik/relacje? Żeby dowiedzieć się co oznacza typi=0, muszę pobrać takie informacje z innego pliku ?

Autor:  wrob [ 2013-01-28, 17:58 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Jestes geniuszem masochizmu ilościowego w kodzie :)

//Sprawdzenie zapisanych w rekordzie nowych informacji
if GetField (nrBazy1, "typi")==0 then
Print # Nr_pliku; Licznik ;";";GetField (nrBazy1, "rodzaj");";";(nrBazy1, "znacznik");.........................
endif


wartosci dla typi akurat są definiowane w dokumentacji bazy ale, pola typu id, super, kod itp - maja oczywiście relacje do innych tabel

Autor:  bzyq26 [ 2013-01-28, 18:04 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

No wiesz zacząłem zgłębiać tajniki tegoż rozwiązania wczoraj więc nie jest najgorzej. Moim celem było wyrzucenie danych a nie nauka ambasica i poznawanie jego możliwości :)
Poza tym btrieve...aaa szkoda gadać :)

Dzięki serdeczne za pomoc.

Jeśli moglibyście podesłać jakieś docsy lub namiary na informacje dot. struktury rekordów(?) poszczególnych baz/plików, byłbym bardzo wdzięczny.

Autor:  bzyq26 [ 2013-01-28, 18:53 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Mam nadzieję, że ostatnie pytanie ... w jaki sposób sprawdzić nazwy pól rekordu?
Pobieram dane sprzedaży, ale nie wiem po jakich nazwach mam pobierać wartości poszczególnych kolumn...

Autor:  rafal [ 2013-01-29, 09:14 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

To moze sie przydac
viewtopic.php?f=2&t=4180

Autor:  bzyq26 [ 2013-01-31, 09:36 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Dzięki za linka, ale niestety w mojej wersji eksportuje do XMLa całkiem inne nazwy znaczników niż znajdują się w bazie. Sprzedaż jednak już wyciągnąłem z innego raportu.

Czy istnieje funkcja zwracająca nazwy wszystkich kolumn "bazy" czy obszaru? Teraz zabieram się za rozrachunki i nie mam tam możliwości eksportu danych, a raport zwraca same wartości, bez nazw kolumn.

Autor:  bzyq26 [ 2013-02-12, 16:28 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Witam,

czy mógłby ktoś podpowiedzieć, w jaki sposób można w handlu powiązać transakcję/linię zakupu/sprzedaży z kontem księgowym ?
Robiąc raport "Eksport ZK do FK" w pliku tekstowym mam wszystkie dane, tj. strona, konto, itp. Przeglądając raporty nie mogę dojść do tego, skąd ów konto i strona są brane...

Proszę o pomoc w temacie.

Pozdrawiam

Autor:  krzysiek [ 2013-02-12, 17:12 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Za pomocą schematu księgowania.

Autor:  bzyq26 [ 2013-02-13, 09:42 ]
Tytuł:  Re: Eksport danych do txt lub połączenie ODBC

Tak w aplikacji i pliku/tabeli XT widzę, że konta są zapisane w formacie np. Sprzedaż->SP->$01$#khSP (#P#R) itp.
A potrzebowałbym sposobu przełożenia takiego zapisu na kod konta, np. 201-1-2. Taki kod pojawia się w raporcie eksportu danych, tylko nie doszedłem jeszcze skąd on się wylicza.
W pliku XT również nie ma informacji o stronie, o kodzie konta, pozycji, typie ani o innych atrybutach pokazanych w aplikacji w ustawieniach schematów księgowań...

Pozdrawiam

Strona 2 z 2 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/