Forum Użytkownicy Oprogramowania Humansoft Strona Główna Użytkownicy Oprogramowania Humansoft
Nieoficjalne forum użytkowników oprogramowania firmy Humansoft (Hermes SQL, Corax)
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Jak przeszukać listę i zaznaczyć na niej znalezioną pozycję

 
Napisz nowy temat   Odpowiedz do tematu    Forum Użytkownicy Oprogramowania Humansoft Strona Główna -> Pomoc
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Thorvaldsen
Administrator



Dołączył: 06 Lip 2015
Posty: 71
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Śro 15:42, 08 Lip 2015    Temat postu: Jak przeszukać listę i zaznaczyć na niej znalezioną pozycję

Na wstępie zaznaczam, że to nowy temat, który dopiero teraz zbadałem, nie wiem jeszcze na ile będzie uniwersalny. Każdy komentarz mile widziany.

Listy w HermesSQL (zarówno te dostępne z kartotek - Artykuły, Kontrahenci), czy te wywoływane z innych dokumentów (np. wybór kontrahenta, wybór produktu) są zbudowane bardzo podobnie. Każda lista wydaje się zawierać kontener cntPozycje w którym znajdują się (najwyraźniej) te same obiekty. Najważniejszy z nich (klasy XGrid, dziedziczącej najpewniej po istniejącym w FoxPro Grid) jest dostępny pod numerem 5.

Odwołoć się do niego można (z poziomu funkcji użytkownika) w następujący sposób:
Kod:
_screen.ActiveForm.cntPozycje.CONTROLS(5)


Mam świadomość, że odwoływanie się do indeksu 5 może nie być najlepszym sposobem, ale póki co innego rozwiązania nie szukałem. Wydaje się działać zarówno w artykułach (kartoteka), jak i liście kontrahentów (z poziomu innego dokumentu).

Mając dostęp do tego grida, możemy wykonać rzecz następującą:

Kod:

SELECT(_screen.ActiveForm.cntPozycje.CONTROLS(5).RecordSource)
LOCATE FOR SKROT_KTR = 'SZUKANY_KONTRAHENT'
IF FOUND()
    _screen.ActiveForm.cntPozycje.CONTROLS(5).SetFocus
ENDIF


W przypadku wywołania LOCATE FOR możemy oczywiście podać inną nazwę kolumny którą chcemy przeszukiwać, co już zależy od naszego kontekstu - może to być SYMBOL_ART, SYMBOL_KTR czy co tam innego.


Post został pochwalony 0 razy

Ostatnio zmieniony przez Thorvaldsen dnia Pią 11:27, 10 Lip 2015, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Thorvaldsen
Administrator



Dołączył: 06 Lip 2015
Posty: 71
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Śro 15:33, 29 Lip 2015    Temat postu:

Do grida można się też odwołać bezpośrednio po nazwie:
Kod:

_screen.ActiveForm.cntPozycje.grdPozycje


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
JanuszHermesa




Dołączył: 13 Maj 2016
Posty: 31
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 23:17, 27 Sie 2016    Temat postu:

To raczej było ustawienie się na pierwszym rekordzie który spełnia dany warunek bo jeśi ktoś faktycznie chce zaznaczy to

select "nasz kursor"
scan

replace znacznik with .t.
endscan


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
JanuszHermesa




Dołączył: 13 Maj 2016
Posty: 31
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 23:20, 27 Sie 2016    Temat postu:

select "nasz kursor"
scan for warunek lub
if warunek
replace znacznik with .t.
endif
endscan


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Thorvaldsen
Administrator



Dołączył: 06 Lip 2015
Posty: 71
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Wto 9:17, 30 Sie 2016    Temat postu:

Mi konkretnie chodziło właśnie o podświetlenie na liście pierwszego pasującego (wyszukiwanie kontrahenta z listy po unikalnym numerze), ale rzeczywiście jeżeli trzeba by de facto "zaznaczyć" rekordy, to nie miałbym pojęcia jak to ugryźć. Dlatego dzięki wielkie! Przyda się.

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Użytkownicy Oprogramowania Humansoft Strona Główna -> Pomoc Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać 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 głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin