mojaSymfonia FORUM
https://forum.mix-soft.pl/

hyperlink w notatkach
https://forum.mix-soft.pl/viewtopic.php?f=15&t=2703
Strona 1 z 1

Autor:  marian [ 2011-01-19, 12:39 ]
Tytuł:  hyperlink w notatkach

Witam,

Mam takie pytanie. Czy można umieścić w notatkach albo gdzieś indziej w fakturze hyperlink. Tak aby po jego kliknięciu otwierała się domyślna przeglądarka i wyświetlała wskazaną stronę.

Pozdrawiam

Autor:  rafal [ 2011-01-19, 13:51 ]
Tytuł: 

Możesz użyć tego dodatku.

Notatka w dokumencie wygląda tak
Obrazek

Po wciśnięciu ALT+1 na otwartym dokumencie pokazuje się lista linków z notatki.
Dwukrotne kliknięcie na linku powoduje otwarcie go w domyślnej przeglądarce.
Obrazek

Co trzeba zrobić?

1. Zainstalować raport
Kod:
//"mixdrz.sc","Otwórz link z notatki dokumentu - include",70012,0,1.0.4,SYSTEM
//" Raporty Mix-soft",2400,14,62


limit 80000
dispatch dGrid
long idDok
int iBut

//------------------------------------------------
string sub GetNotatka()
//------------------------------------------------

basent nt

nt.SetKey ( "super" )
nt.SetKeySeg( "typi",0 )
nt.SetKeySeg( "baza",16 )
nt.SetKeySeg( "super",idDok )

if !nt.GetRec( EQ ) then

   GetNotatka = nt.GetField( "opis" )
endif

endsub


//------------------------------------------------
int Sub AddColumn(dispatch g, string ColName, int ColWidth, int ColType, int ColSize, int ColHidden, int ColLocked)
//------------------------------------------------
   int col

    G.ColumnCount = G.ColumnCount + 1
    col = G.ColumnCount - 1
    G.Columns(col).Name       = ColName
    G.Columns(col).Width       = ColWidth
    G.Columns(col).FieldType(ColType,ColSize)
    G.Columns(col).hidden       = ColHidden
    G.Columns(col).Locked       = ColLocked

endsub

//------------------------------------------------
int sub OnCommand(int id, int msg)
//------------------------------------------------
dispatch dRow

   if id==0 && msg == 0 then
   

                  dGrid.RowHeader = 0
                  dGrid.ColHeader = 0
                  dGrid.ColumnCount = 0
                  dGrid.RowCount = 0

   AddColumn(dGrid, "Link", 550, 0,200, 0, 0)

   buf = GetNotatka()

   
   while find regular "http{*}[ \n]-"
         dRow = dGrid.InsertRow(-1)
         dRow.Value(0) = "http" + regular 1
   wend

   endif
   
endsub

//------------------------------------------------
int sub dGrid_OnDblClick(dispatch q)
//------------------------------------------------   

ShellExecute(dGrid.Rows(q.Value(1)).Value(0),"OPEN")

endsub

//------------------------------------------------
int sub PokazLinki(long idDokumentu)
//------------------------------------------------
   
idDok = idDokumentu

        FORM "Linki", 600,300

                CONTROL "grid", dGrid, 5,5, 580,200
                iBut = button "Zamknij", 5,220, 80, 23, -1

        int rv = ExecForm OnCommand

endsub




2. Zmodyfikować raport Raporty → Procedury → Procedury wywoływane z okien

Kod:
//"procaltn.sc","Procedury wywoływane z okien",12015,0,1.0.0,SYSTEM
//" Procedury",2400,14,62

#include "Otwórz link z notatki dokumentu - include"

/////////////////////////////////////////////////////////////////////////////////////
// Procedury dostępne z poziomu okna dokumentu sprzedaży.
// Uruchamiane po naciśnięciu 'Alt' i cyfry (0-9)

int Sub OnDokumentSprzedazyAlt1(long lIdDk, int bBufor, long lIdPoz)
   
   pokazLinki(lIdDk)

   OnDokumentSprzedazyAlt1 = 0
EndSub

//...

Autor:  marian [ 2011-01-20, 10:28 ]
Tytuł: 

"1. Zainstalować raport "

Czy "zainstalować" to znaczy że w RAPORTY -> SPRZEDAŻ powinienem stworzyć nowy raport?

Jeśli tak to czy powinien mieć jakąś specjalną nazwę?


Pozdrawiam i dziękuję za powyższy kod

Autor:  rafal [ 2011-01-20, 10:56 ]
Tytuł: 

Skopiuj zawartość zamieszczonego raportu do pliku mixdrz.sc a następnie wykonaj Aktualizację raportów systemowych.

Autor:  marian [ 2011-01-20, 11:16 ]
Tytuł: 

Nie miałem na dysku takiego pliku (pracuje na Sage Forte Handel 2011.a)

Utworzyłem taki plik w ...Sage\Forte\Migracja bo tu znalazłem pliki z rozszerzeniem .sc - czy to właściwe miejsce na umieszczenie tego pliku?

Nie widzę też nigdzie przycisku do aktualizacji raportów. Moja wersja jest jeszcze nie aktywowana możliwe że to z tego powodu?

Pozdrawiam i dziękuję z góry za odpowiedź.

Autor:  rafal [ 2011-01-20, 11:33 ]
Tytuł: 

Skopiuj ten plik do jakiegoś pustego katalogu np:. C:\Symfonia\raporty
Następnie uruchom raport Raporty → System → Aktualizacja raportów systemowych
Podaj ten katalog.

Autor:  marian [ 2011-01-20, 12:02 ]
Tytuł: 

Kod:
//"mixdrz.sc","Otwórz link z notatki dokumentu - include",70012,0,1.0.4,SYSTEM
//"Pomocnicze ",2400,14,62


a plik umieściłem w C:\Program Files\Sage\Forte\Raport_wlasny

i taką ścieżkę podaję do aktualizacji raportów. Jednak otrzymuje błąd:


Cytuj:
mixdrz.sc BŁĄD Sygnatura raporty
'mixdrz.sc' nie zawiera nazwy katalogu


W Raportach systemowych mam taki folder jak Pomocnicze. Próbowałem ze spacją na końcu i bez ale bez różnicy.

Pozdrawiam

Autor:  rafal [ 2011-01-20, 12:05 ]
Tytuł: 

Może coś jest nie tak z tym nagłówkiem.
W takim razie w katalogu Pomocnicze zrób nowy raport. Nazwij go Otwórz link z notatki dokumentu - include i wklej zawartość z FORUM.

Autor:  rafal [ 2011-01-20, 12:06 ]
Tytuł: 

Inna sprawa, że raport jest do Symfonii a Ty masz FORTE.
Może nie zadziałać :)

Autor:  rafal [ 2011-01-20, 13:11 ]
Tytuł: 

Wersja dla Handlu FORTE. Tu mechanizm dostępny jest pod prawym klawiszem myszy na dokumencie.

[center]Obrazek [/center]

Kod:
//"mixdrz.sc","Otwórz link z notatki dokumentu","\Procedury\Raporty z menu formatek\Dokumenty sprzedaży\",0,1.0.0,SYSTEM


limit 80000
dispatch dGrid
long idDok
int iBut

//------------------------------------------------
string sub GetNotatka()
//------------------------------------------------

dispatch xDk

xDk = xFactory.NewObject("BDokumentSp")
xDk.Load((using "id=%l",idDok ))

GetNotatka = xDk.notatka

endsub


//------------------------------------------------
int Sub AddColumn(dispatch g, string ColName, int ColWidth, int ColType, int ColSize, int ColHidden, int ColLocked)
//------------------------------------------------
    int col

    G.ColumnCount = G.ColumnCount + 1
    col = G.ColumnCount - 1
    G.Columns(col).Name         = ColName
    G.Columns(col).Width         = ColWidth
    G.Columns(col).FieldType(ColType,ColSize)
    G.Columns(col).hidden         = ColHidden
    G.Columns(col).Locked         = ColLocked

endsub

//------------------------------------------------
int sub OnCommand(int id, int msg)
//------------------------------------------------
dispatch dRow

    if id==0 && msg == 0 then
   

                  dGrid.RowHeader = 0
                  dGrid.ColHeader = 0
                  dGrid.ColumnCount = 0
                  dGrid.RowCount = 0

    AddColumn(dGrid, "Link", 550, 0,200, 0, 0)

    buf = GetNotatka()

   
    while find regular "http{*}[ \n]-"
            dRow = dGrid.InsertRow(-1)
            dRow.Value(0) = "http" + regular 1
    wend

    endif
   
endsub

//------------------------------------------------
int sub dGrid_OnDblClick(dispatch q)
//------------------------------------------------   

ShellExecute(dGrid.Rows(q.Value(1)).Value(0),"OPEN")

endsub

   
idDok = GetLineId()

        FORM "Linki", 600,300

                CONTROL "grid", dGrid, 5,5, 580,200
                iBut = button "Zamknij", 5,220, 80, 23, -1

        int rv = ExecForm OnCommand


NoOutPut()

Autor:  marian [ 2011-01-20, 13:51 ]
Tytuł: 

Tak na początek to dzięki za to że pomagasz. Mam jakiś problem potrafię umieścić w menu kontekstowym przycisk w oknie Zakup, Sprzedaż (Raport z menu kartotek) itp ale nie mogę umieścić przycisku w menu kontekstowym już tam gdzie są pozycje co sprzedaliśmy.

Próbuję utworzyć raport w Procedury -> Raporty operacje kartotek -> Dokumenty sprzedaży

A co trzeba zmienić aby wywoływał się z Raport z menu kartotek bo teraz wyskakuje puste okienko.


Pozdrawiam

Autor:  wrob [ 2011-01-20, 14:20 ]
Tytuł: 

Jakich kartotek? Mozesz dac obrazek gdzie konkretnie chcesz to umiescic?

Autor:  rafal [ 2011-01-20, 14:48 ]
Tytuł: 

marian pisze:
A co trzeba zmienić aby wywoływał się z Raport z menu kartotek bo teraz wyskakuje puste okienko.


Utwórz katalog w raportach \Procedury\Raporty z menu formatek\Dokumenty sprzedaży\i tam wstaw ten raport.

Albo zrób przez Aktualizuj raporty systemowe, teraz powinno Ci zadziałać.

Autor:  marian [ 2011-01-20, 14:51 ]
Tytuł: 

Tu potrafię wstawić button ale jak wywołam kod to mam puste okno

Obrazek

a tu chciałbym :) ale nie mogę wstawić buttona do menu kontekstowego i czy kodu nie musze jakoś zmienić np inne id czy coś takiego.

Obrazek

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/