 |
Użytkownicy Oprogramowania Humansoft Nieoficjalne forum użytkowników oprogramowania firmy Humansoft (Hermes SQL, Corax)
|
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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 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
|
Wysł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 |
|
 |
|
|
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
|