|
|
Strona 1 z 1
|
[ Posty: 2 ] |
|
Księgi czy bufor, jak rozpoznać
Autor |
Wiadomość |
qres
Rejestracja: 2010-03-30, 11:53 Posty: 23 Pomógł: 2
|
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 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
qres
Rejestracja: 2010-03-30, 11:53 Posty: 23 Pomógł: 2
|
Re: Księgi czy bufor, jak rozpoznać
(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 |
|
|
|
Strona 1 z 1
|
[ Posty: 2 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 15 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
|
|
|
|