Posty bez odpowiedzi |oraz Aktywne tematy Dzisiaj jest 2024-04-29, 07:06x



Odpowiedz w temacie  [ Posty: 14 ] 
Kontrolka picturebox 
Autor Wiadomość

Rejestracja: 2008-09-05, 11:06
Posty: 29
Post Kontrolka picturebox
Witam,
Chciałbym uzyskać rzecz następującą:
Przy pomocy, np. procedury wywołanej z okna, w karcie towaru chciałbym móc pokazać fotografię danego towaru.
Domyślam się że można coś takiego osiągnąć używając kontrolki picturebox (lub innej).
W pomocy do AmBasic'a jest informacja, że można z poziomu Symfonii uruchomić różne kontrolki, brak niestety jakichkolwiek szczegółów, lub przykładów jakie kontrolki można stosować i w jaki sosób (metody, etc).
Ponieważ za cienki za mnie bolek jeśli chodzi o programowanie (z dużymi oporami radzę sobie z napisaniem prostego raportu) miałbym gorącą prośbę o pomoc (najchętniej z jakimś przykładem :P)
Z góry wielkie dzienx :)


2008-11-07, 11:59
Wyświetl profil
Autor Wiadomość
 



Rejestracja: 2008-09-05, 11:06
Posty: 29
Post 
zapomniałem dodać, że chodzi o Symfonię Premium :)


2008-11-07, 16:21
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post 
Aby wyswietlić zdjęcie towaru z poziomu kartoteki najprościej :
1. utwórz katalog "zdjęcia" w katalogu z danymi towaru
2. skopiuj tam zdjęcia towarów np:. w formacie jpg z nazwami plików tak jak kody w kartotece np:. Atlas 14 silnik.jpg itd ...
3. Raporty → Kartoteki → Raporty z menu → Towary utwórz nowy raport o nazwie "Pokaż zdjęcie"
4. Wklej do niego nastepujący kod
Kod:
int iPos = SetTaggedPos(FS)

baseTW tw
tw.GetRecById( GetLineId(iPos))

ShellExecute( KatalogFirmy() + "zdjecia\\" + tw.GetField("kod") + ".jpg", "OPEN" )

NoOutput()


Od tej pory masz dostepną funkcję "Pokaż zdjęcie" pod prawym klawiszem myszy w kartotece towarów. Zdjęcie będzie otwierane w domysnym programie zarejestrowanym dla wybranego typu jpg, bmp itp.

[center]Obrazek [/center]

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2008-11-07, 20:30
Wyświetl profil

Rejestracja: 2008-04-10, 09:34
Posty: 24
Post 
ewentualnie można zrobić swojego ocx/dispatch, który będzie integralną częścią symfonii i u każdego klienta będzie wyglądał w ten sam sposób niezależnie od domyślnych przeglądarek jpeg'ów


2008-11-21, 14:14
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
a jak zadeklarować taką kontrolkę OCX i się nią posługiwać. Z poleceniem Control jakoś mi nie wychodzi. Poniżej fragment z helpa:

Polecenie umieszcza w oknie dialogowym kontrolkę OCX. Możliwe jest sterowanie działaniem kontroli oraz odczyt generowanych przez nią zdarzeń.

Polecenie jest zasadniczo przeznaczone do współpracy z kontrolkami Symfonii. Niektórych z istniejących w systemie kontrolek OCX nie da się umieścić w oknie dialogowym przy pomocy tego polecenia.

Składnia
Int Control String nOCX, Dispatch ctrl, Int x0, Int y0, Int dx, Int dy
Argumenty

String nOCX Nazwa kontrolki. Może to być nazwa predefiniowana w programie: "grid”, "edit" lub nazwa pod jaką kontrolka jest zarejestrowana w systemie np. "MXGRID.MXGridCtrl.1”.
Dispatch ctrl Nazwa zmiennej utworzonej w celu przechowywania obiektu kontrolki.
Int x0 Odległość lewej krawędzi pola kontrolki od lewej krawędzi okna dialogowego, liczona w pikselach.
Int y0 Odległość górnej krawędzi pola kontrolki od górnej krawędzi okna dialogowego, liczona w pikselach.
Int dx Szerokość pola kontrolki, liczona w pikselach.
Int dy Wysokość pola kontrolki, liczona w pikselach.
Wartość zwracana
Identyfikator kontrolki.


2009-02-28, 13:34
Wyświetl profil

Rejestracja: 2009-03-17, 15:25
Posty: 18
Pomógł: 2
Post 
faktycznie bardzo przydatna rzecz. Ciekaw jestem jak można coś takiego zrobić dla Handlu Forte?


2009-03-19, 13:48
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
No właśnie. To byłoby coś. Ciekawe jakich się nie da (bo piszą, że jest przeznaczone do pracy z kontrolkami Symfonii i niektórych się nie da) i jak podać tę nazwę.

Może ktoś ma doświadczenia w tym temacie?

Pozdro.


2009-03-19, 18:28
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post 
Kontrolka MxGrid dostarczana razem z Symfonią jest dobrym przykładem.
Potestujcie z innymi.

Kod:
dispatch dGrid

FORM "Test MxGrid", 200,400

    CONTROL "MXGRID.MXGridCtrl.1",dGrid, 5,5,185,365
   
int rv = ExecForm( OnCommand )

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2009-03-19, 23:12
Wyświetl profil

Rejestracja: 2008-04-10, 09:34
Posty: 24
Post 
Też byłem ciekawy jak można takie coś zrobić i grzebałem, szukałem, aż w końcu zrobiłem.
Pełny .Net do dyspozycji w połączeniu z czymkolwiek z Sage co obsługuje polecenie control.

Technologia jest na tyle sprawdzona, że ruszyła do produkcji.

Jeden minus kontrolek .NET stosowanych w ambasic to obciążenie procesora, ale to już raczej nie wina net'a tylko sposobu w jaki sage wywołuje takie kontrolki.

A szczegóły tego można zobaczyć na forum wlasne kontrolki w AmBasic


2009-04-06, 10:32
Wyświetl profil
Ekspert
Ekspert

Rejestracja: 2007-11-16, 15:08
Posty: 3983
Pomógł: 445
Post 
podzielisz się efektem swojej pracy? Może załączysz jakiś przykład jak to robić?

_________________
Skontaktuj się z Ekspertem | Zamów dodatek

tel. 22 7 538 538
ekspert@mojaSymfonia.pl
http://www.mojaSymfonia.pl


2009-04-06, 10:56
Wyświetl profil

Rejestracja: 2008-06-03, 12:18
Posty: 106
Post 
Problem jest z wpisaniem nazwy (parametru) w AmBasic. Może ktoś poda przykład deklaracji takiej kontrolki - innej niż z Symfonii (np. MxGrid).


2009-04-07, 19:08
Wyświetl profil

Rejestracja: 2008-04-10, 09:34
Posty: 24
Post 
Benji_Pete co Ty się tak uparłeś na tego AmBasica? Źle projektujesz w .NET (o ile projektujesz a nie korzystasz z gotowych bibliotek)
Niektórych kontrolek faktycznie się nie da, bo nie są przygotowane z myślą o działaniu z Symfonią, Excellem czy InternetExplorerem (ActiveX)

Nie ma za bardzo kiedy tego przygotować ale proszę:
Kod:
dispatch xDsp

int sub PokazJpeg()
   xDsp.ShowPicture("C:\\test.jpg")
endsub

form "hmpLib", 300, 200
   control "hmpLib.JpegBrowser", xDsp, 10, 10, 300, 90
   button "Pokaż jpeg'a z funkcji w AmBasic", 10, 100, 270, 24, PokazJpeg()
execform

error ""


Kod wywołania kontrolki który umieścił rafal jest jak najbardziej w porządku.

Chodzi tutaj o nazwę biblioteki i wewnętrzne nazwy metod, a dokładnie tak jak pisałem w innym poście o parametry InteropServices.

Dokładnie mówiąc po znaczniku 'control' wpisujesz to co masz w projekcie kontrolki w atrybutach InteropServices, a konkretnie atrybut 'ProgId'

Gdyby ktoś jeszcze nie wierzył, to w załączeniu dll (trzeba wcześniej zarejestrować w systemie!) a jego użycie jw.

Metoda xDsp.ShowPicture wywołuje całą formatkę z .NET'a, a control "hmpLib.JpegBrowser" ładuje na formę z AmBasica tylko kontrolkę z biblioteki.

To co jest w załączeniu testowałem na HMP 2008A i 2009C.
Działa bez najmniejszych problemów.


Załączniki:
Komentarz: Biblioteka z kontrolką
hmpLib.zip [3.99 KiB]
Pobrany 446 razy
2009-04-07, 22:53
Wyświetl profil

Rejestracja: 2010-06-28, 10:04
Posty: 12
Post 
W jaki sposób połączyć to:

rafal pisze:
Aby wyswietlić zdjęcie towaru z poziomu kartoteki najprościej :
1. utwórz katalog "zdjęcia" w katalogu z danymi towaru
2. skopiuj tam zdjęcia towarów np:. w formacie jpg z nazwami plików tak jak kody w kartotece np:. Atlas 14 silnik.jpg itd ...
3. Raporty → Kartoteki → Raporty z menu → Towary utwórz nowy raport o nazwie "Pokaż zdjęcie"
4. Wklej do niego nastepujący kod
Kod:
int iPos = SetTaggedPos(FS)

baseTW tw
tw.GetRecById( GetLineId(iPos))

ShellExecute( KatalogFirmy() + "zdjecia\" + tw.GetField("kod") + ".jpg", "OPEN" )

NoOutput()



Z tym:
rafal pisze:
Kontrolka MxGrid dostarczana razem z Symfonią jest dobrym przykładem.
Potestujcie z innymi.

Kod:
dispatch dGrid

FORM "Test MxGrid", 200,400

    CONTROL "MXGRID.MXGridCtrl.1",dGrid, 5,5,185,365
   
int rv = ExecForm( OnCommand )


lub z tym:

mnat pisze:
Nie ma za bardzo kiedy tego przygotować ale proszę:
Kod:
dispatch xDsp

int sub PokazJpeg()
   xDsp.ShowPicture("C:\\test.jpg")
endsub

form "hmpLib", 300, 200
   control "hmpLib.JpegBrowser", xDsp, 10, 10, 300, 90
   button "Pokaż jpeg'a z funkcji w AmBasic", 10, 100, 270, 24, PokazJpeg()
execform

error ""



I jeszcze taka sprawa: jeżeli mam trzy kody w kartotece towarów różniące się tylko ostatnią literą (np. CA325/G, CA325/P, CA325/RAD) jak zrobić, żeby wrzucić tylko jedno zdjęcie i pokazało się ono we wszystkich trzech towarach. Albo, żeby to: tw.GetField("kod") polecenie brało pod uwagę kod tylko do "/".

Aha jeszcze jedno: czy jest równie prosty sposób, aby zdjęcie pokazywało się jako miniaturka w formatce towaru?


2010-06-29, 09:21
Wyświetl profil

Rejestracja: 2009-11-02, 11:47
Posty: 8
Post 
Cytuj:
dispatch dGrid

FORM "Test MxGrid", 200,400

CONTROL "MXGRID.MXGridCtrl.1",dGrid, 5,5,185,365

int rv = ExecForm( OnCommand )
Kod:

Po kolei:
dispatch dGrid = przygotowanie zmiennej, która będzie wskazywać na naszego grida
FORM "Test MxGrid", 200,400 = przygotowanie formatki, na której położony będzie grid
CONTROL "MXGRID.MXGridCtrl.1",dGrid, 5,5,185,365 = zainicjowanie wizualnej kontrolki, która jest klasy MXGridCtrl z modułu MXGRID i przypisanie jej do zmiennej dGrid.
Moduł z gridem jest domyślnie dostępny po instalacji Symfonii.
int rv = ExecForm( OnCommand ) = wywołanie formatki na ekran

Odnośnie Twojego problemu z kodami towarów, musisz sprawdzić, czy kod towaru zawiera znak "/" i pobrać pierwszą część kodu, aby wyświetlić odpowiedni plik.
Najprościej będzie to zrobić przy użyciu polecenia find regular.

Miniaturka w formatce towaru - nie wydaje mi się. Aż tak daleko nie możemy ingerować w wygląd aplikacji Symfonii.



2010-06-29, 11:59
Wyświetl profil
Wyświetl posty nie starsze niż:  Sortuj wg  
Odpowiedz w temacie   [ Posty: 14 ] 
   Podobne tematy   Autor   Odpowiedzi   Odsłony   Ostatni post 
Na tym forum nie ma nowych nieprzeczytanych postów. Kontrolka MxDlg

w Programowanie

tatanka

8

4779

2018-10-31, 07:43

rafal Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Załączniki Kontrolka UserControl .NET w Handel Premium

[ Przejdź na stronę: 1, 2 ]

w Programowanie

Darek258

15

7169

2013-11-19, 22:16

koronen Wyświetl najnowszy post

Na tym forum nie ma nowych nieprzeczytanych postów. Kontrolka OCX nie inicjuje się w formularzu.

w Programowanie

Mustrum

2

3064

2016-09-13, 09:39

Mustrum Wyświetl najnowszy post



Kto jest online

Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 100 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

Szukaj:
Przejdź do:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Support forum phpbb by phpBB Assistant