mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
pobieranie danych z KD https://forum.mix-soft.pl/viewtopic.php?f=15&t=5737 |
Strona 1 z 1 |
Autor: | stopi [ 2014-04-17, 12:57 ] |
Tytuł: | 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 |
Autor: | rafal [ 2014-04-17, 14:05 ] |
Tytuł: | Re: pobieranie danych z KD |
Użyj GetValue() |
Autor: | stopi [ 2014-04-17, 14:13 ] |
Tytuł: | 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" |
Autor: | rafal [ 2014-04-17, 14:18 ] |
Tytuł: | 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ć. |
Autor: | stopi [ 2014-04-17, 14:37 ] |
Tytuł: | 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 |
Autor: | rafal [ 2014-04-17, 14:55 ] |
Tytuł: | 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. |
Autor: | stopi [ 2014-04-18, 12:31 ] |
Tytuł: | 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? |
Autor: | rafal [ 2014-04-18, 12:56 ] |
Tytuł: | 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? |
Autor: | stopi [ 2014-04-18, 13:22 ] |
Tytuł: | 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 |
Autor: | rafal [ 2014-04-18, 15:09 ] |
Tytuł: | Re: pobieranie danych z KD |
Mogę zaproponować jedynie kontakt z Ekspertem. Analiza problemu jest zbyt czasochłonna jak na forum. |
Autor: | stopi [ 2014-04-22, 10:58 ] |
Tytuł: | 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) |
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |