|
|
Strona 1 z 1
|
[ Posty: 11 ] |
|
Autor |
Wiadomość |
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
pobieranie danych z KD
Witam Jeśli powtarzam temat to bardzo przepraszam ale skoro piszę to znaczy że nie znalazłem tematu który by mi pomógł w 100 % potrzebuję pomocy odnośnie pobrania danych kadrowych mam taki coś: zestaw danych kadrowych składa się z kilku elementów niektóre z nich są (element kadrowy zgrupowany) oraz (element kadrowy) problem polega na tym że nie wiem jak odczytać wartość z (elementu kadrowego) dodatkowo przy wykorzystaniu Kod: For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem_STAM(p)=comp.GetName()
message( "pozycja -" +(using "%L",p )+ " wierszy - "+ (using "%L", comp.GetValuesCount())+ " kolumny - "+ (using "%L", comp.GetAttrCount()))
next p pozycje się zmieniają tyle ile jest elementów (OK) wiersze za każdym razem wyświetla mi 0 natomiast kolumny czasem wyświetla wartość ile jest kolumn a czasem wyświetla 0 ( ale tego nie trzeba tłumaczyć dlaczego tak jest to oczywiste) pytanie jest dlaczego dla każdego elementu wyświetla mi ilość wierszy 0 i w jaki sposób mogę pobrać te dane Z góry wielkie dzięki za pomoc
|
2014-04-17, 12:57 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: pobieranie danych z KD
Użyj GetValue()
|
2014-04-17, 14:05 |
|
|
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
Re: pobieranie danych z KD
Używam GetValue
według dokumentacji jest takie coś
Int GetValue( HRValue Value, int valindex, [int attrindex]) w przypadku zwykłych elementów kadrowych nie trzeba używać tego co jest w nawiasie [ ]) ok to do tablicy to zrozumiałe
tak więc zapisał bym to getvalue(value, nrwiersza ) ale na każdym wierszu mi wyświetla 0 więc nie wiem co bym miał podstawić za zmienną "int valindex"
|
2014-04-17, 14:13 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: pobieranie danych z KD
W przykładzie nie widzę, żeby było użyte GetValue().
Podaj cały kod, który można uruchomić i sprawdzić.
|
2014-04-17, 14:18 |
|
|
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
Re: pobieranie danych z KD
podaję fragment kodu jeśli chcesz to zamieszczę cały ale muszę go pozmieniać do wersji czytelnej dla każdego nie tylko dla mnie( bałagan) Kod: while idprac DodajImieNazwisko(idprac) if !Pracownik(prac,idprac) then message sErrBlednyPrac : error " "
mgr.LoadHRComponentsSet(zestaw) mgr.SetEmpId(idprac)
nCount=mgr.GetCount() For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem(p)= comp.GetName()
next p
i=i+1
Tabela_ind(i)=using "%L",idprac
tabela_oso(i)=(prac.Nazwisko)
mgr.LoadHRComponentsSet(27889)
mgr.SetEmpId(idprac)
nCount = mgr.GetCount()
For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem_STAM(p)=comp.GetName()
message (comp.GetValue(Value,comp.GetValuesCount())) // Tutaj za każdym razem wywala mi komunikat argument po za zakresem
message( "pozycja -" +(using "%L",p )+ " wierszy - "+ (using "%L", comp.GetValuesCount())+ " kolumny - "+ (using "%L", comp.GetAttrCount()))
next p
idprac = GetNext() WEND
|
2014-04-17, 14:37 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: pobieranie danych z KD
Kolejność użycia Kod: 1. GetComponent() 2. comp.GetValuesCount() 3. comp.GetValue()
poczytaj jeszcze w dokumentacji o GetValue i co powinieneś dawać jako jej parametry. Możesz także skontaktować się z Ekspertem.
|
2014-04-17, 14:55 |
|
|
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
Re: pobieranie danych z KD
Dzięki za zainteresowanie ale sprawdzałem w dokumentacji i w raporcie dane kadrowe i nie rozumiem tego
while idprac DodajImieNazwisko(idprac) if !Pracownik(prac,idprac) then message sErrBlednyPrac : error " "
mgr.LoadHRComponentsSet(zestaw) // zestaw =102 mgr.SetEmpId(idprac)
nCount=mgr.GetCount() For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem(p)= comp.GetName()
next p
i=i+1
Tabela_ind(i)=using "%L",idprac tabela_oso(i)=(prac.Nazwisko) mgr.LoadHRComponentsSet(27889)
mgr.SetEmpId(idprac)
nCount = mgr.GetCount()
For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem_STAM(p)=comp.GetName() message(using "%L",comp.GetValuesCount ()) message(using "%L",comp.GetAttrCount ()) next p
idprac = GetNext() WEND
//--------------
użyłem tak jak napisałeś
1. GetComponent 2. comp.GetValuesCount () sprawdzając ile jest wierszy oraz comp.GetAttrCount () spawdzając ile jest kolumn i w przypadku wierszy zawsze mam 0 a w przypadku kolumn to mi wartości wyświetla jeśli występują kolumny
sprawdzałem także z raportem dane kadrowe ale w tam jest For j=1 to J>comp.GetValuesCount ()
i niestety ja mam stale wartość 0 wiec mi tej pętli nie wykona
Pytanie Gdzie robię błąd?
|
2014-04-18, 12:31 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: pobieranie danych z KD
Nie moge Ci pomoc bo kod ktory wkleiles nie dziala po przeklejeniu. Brak deklaracji zmiennych. Napewno jest to caly kod?
|
2014-04-18, 12:56 |
|
|
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
Re: pobieranie danych z KD
nie to był jedynie fragment chodzi mi o te ilości wierszy Kod: #include "pdfparam.sci" #include "hf_graf.sci" #include "strings.sci" #define OK 2 #define ANULUJ -1
HRMgr mgr HRComponent comp HRValue value
Infoprac prac InfoSkladnik skl InfoSchemat sch_ksi
long idgrupy = val (Arg0) long typ = val (Arg1)
//----------------id zestawy long zestaw = 102
if !idgrupy &&!!typ then message sErrTylkoZOknaPrac : error " "
if !SetGroup (idgrupy,typ,TR_PRACOWNICY) then message sErrBlednaGrupa : error " "
long idprac = GetFirst()
string datapoc = "" string data1= "" string dana
int p,i,ilosc,n,ilosc2,j, ilosci ,ilosci2
if !idprac then message sErrBrakPrac : error " " mgr.LoadHRComponentsSet(zestaw)
int nCount = mgr.GetCount()
string aNazwyElement(nCount) string aNazwyElem(nCount)
for p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElement(p)=comp.GetName()
next p
while idprac
DodajImieNazwisko(idprac) if !Pracownik(prac,idprac) then message sErrBlednyPrac : error " "
mgr.LoadHRComponentsSet(zestaw) mgr.SetEmpId(idprac)
nCount=mgr.GetCount() For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem(p)= comp.GetName()
next p
i=i+1
Tabela_ind(i)=using "%L",idprac
tabela_oso(i)=(prac.Nazwisko)
mgr.LoadHRComponentsSet(27889)//interesujący mnie id zestawu
mgr.SetEmpId(idprac)
nCount = mgr.GetCount()
//message (using "%L", nCount)
For p=1 to p>nCount mgr.GetComponent(comp,#p) aNazwyElem_STAM(p)=comp.GetName() message(using "%L",comp.GetValuesCount ()) message(using "%L",comp.GetAttrCount ())
next p
idprac = GetNext() WEND
for p=1 to p>i print "id - " print Tabela_ind(p) + " | " print tabela_oso(p) print "\n"
next p
|
2014-04-18, 13:22 |
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: pobieranie danych z KD
(1)
Mogę zaproponować jedynie kontakt z Ekspertem. Analiza problemu jest zbyt czasochłonna jak na forum.
|
2014-04-18, 15:09 |
|
|
stopi
Rejestracja: 2008-08-13, 20:01 Posty: 53
|
Re: pobieranie danych z KD
Zrobione
problem był w odczytywaniu danych ponieważ nie miałem mgr.LoadValues( datapoc, datakoniec) (chyba że się mylę ekspertem nie jestem w pisaniu raportów zwłaszcza w KD) następnie tam gdzie jest element typu tablica używam comp.GetValue( value, nr_wiersz, nr_kolumny ) a w przypadku zwykłych elementów uzywam comp.GetValue( value, nr_wiersz)
|
2014-04-22, 10:58 |
|
|
|
Strona 1 z 1
|
[ Posty: 11 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 17 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
|
|
|
|