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 

Automatyczne wyświetlenie OPISU z Kartoteki Kontrahenta

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




Dołączył: 11 Mar 2016
Posty: 36
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 10:32, 12 Mar 2016    Temat postu: Automatyczne wyświetlenie OPISU z Kartoteki Kontrahenta

Witam,
czy wiesz jak zrobić automatyczne wyświetlenie OPIS z Kartoteki klienta, po wyborze kontrahenta w dokumentach rozchodowych?

Definicje dokumentów>Jakiś rejestr>Prolog do dokumentów

Operatorowi po wyborze kontrahenta na WZ lub FV otwierałoby się okienko z OPISEM danego kontrahenta. (do zamknięcia przez operatora)


Post został pochwalony 0 razy

Ostatnio zmieniony przez JuliusPL dnia Sob 10:32, 12 Mar 2016, 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: Sob 13:42, 12 Mar 2016    Temat postu:

Zakładam, że mówisz o polu UWAGI. Nie ma w bazie danych pola OPIS przy Kontrahentach.

Także, jeżeli chodzi o uwagi to w prologu dajesz po prostu:

Kod:

EDIT_TXT("O", "UWAGI", SQL_FIND("UWAGI", "KONTRAH", "SKROT_KTR = ?SKROT_KTR"))


Pierwszy parametr - O - oznacza tylko do odczytu, drugi to tytuł okna więc możesz dowolnie zmieniać. Trzeci to wartość do wyświetlenia.


Post został pochwalony 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
JuliusPL




Dołączył: 11 Mar 2016
Posty: 36
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pon 15:19, 14 Mar 2016    Temat postu:

Dokładnie, chodzi mi o pole UWAGI.

Kod działa. Chciałem go zmodyfikować, aby wyskakiwało okienko tylko w przypadku gdy pole UWAGI coś zawiera i popełniłem coś takiego.

Kod:

IF SQL_FIND("UWAGI", "KONTRAH", "SKROT_KTR = ?SKROT_KTR")
EDIT_TXT("O", "UWAGI", SQL_FIND("UWAGI", "KONTRAH", "SKROT_KTR = ?SKROT_KTR"))
ENDIF

Teoretycznie powinno działać, ale wypluwa błąd w procedurze użytkownika
Cytat:
Program: 0000bkm108hb
Linia nr: 1
Problem nr: 9
Data type mismatch.


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: Pon 18:49, 14 Mar 2016    Temat postu:

Tak, oczywiście. FoxPro nie konwertuje sobie typów zmiennych, instrukcja IF oczekuje wartości logicznej, a SQL_FIND zwraca ciąg (nawet pusty).

Rozwiążaniem jest wykorzystanie przydatnej funkcji EMPTY, która zwraca wartość .T. (tak oznacza się w foxpro True) jeżeli przekazany ciąg jest pusty, oraz znacznika negacji.

Konkretnie w twoim przypadku:
Kod:

LOCAL MY_UWAGI
MY_UWAGI = SQL_FIND("UWAGI", "KONTRAH", "SKROT_KTR = ?SKROT_KTR")
IF !EMPTY(MY_UWAGI)
    EDIT_TXT("O", "UWAGI", MY_UWAGI)
ENDIF


LOCAL - definujemy zmienną lokalną MY_UWAGI
Podstawiamy wartość SQL_FIND pod nia, aby nie obciążać bazy, aczkolwiek to tylko jedno proste zapytanie.


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




Dołączył: 11 Mar 2016
Posty: 36
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Wto 15:02, 15 Mar 2016    Temat postu:

Działa, dzięki.

Rozumiem, że analogicznie można w ten sam sposób sprawdzić, czy jakiś kontrahent ma podpięte jakieś pliki, np: pdf w dodatku oznaczone domyślnie.

Zamiast wypełniać pola uwagi, można podpiąć pod kontrahenta plik PDF np. z "warunkami handlowymi i innymi ustaleniami". Sprawdzić czy taki plik istnieje i go wywołać.


Kod:

LOCAL MY_UWAGI
MY_UWAGI = SQL_FIND("NAZWA_PL, ROZSZ_PL", "PLIKI_SK", "KARTOTEKA = ?SKROT_KTR AND GLOWNY = 1")  //może być błąd ze składnią (zgaduję)
IF !EMPTY(MY_UWAGI)
    //jeśli istnieje to otworzyć plik (jakimś domyślnym edytorem)
ENDIF


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 20:31, 15 Mar 2016    Temat postu:

Teoretycznie tak Smile

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




Dołączył: 11 Mar 2016
Posty: 36
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 15:11, 16 Mar 2016    Temat postu:

No właśnie, liczyłem na rozwinięcie tematu przez bardziej zaawansowanych użytkowników forum Smile

Post został pochwalony 0 razy

Ostatnio zmieniony przez JuliusPL dnia Śro 15:37, 16 Mar 2016, 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 22:00, 16 Mar 2016    Temat postu:

No to jest trochę bardziej skomplikowana sprawa, dlatego się nie rozpisywałem. Po pierwsze pytanie czy szukamy jakiegokolwiek pliku (po np. nazwie, lub jej fragmencie), czy dowolnego pierwszego pliku? Bo do kontrahenta może być przypisanych więcej plików i są one przechowywane w innym miejscu.

Myślę, że najlepiej rozpocząć nowy wątek i tam opisać szczegółowo swoje oczekiwania.


Post został pochwalony 0 razy

Ostatnio zmieniony przez Thorvaldsen dnia Czw 9:28, 17 Mar 2016, w całości zmieniany 1 raz
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