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 

Pokaż kontakty v 1.0

 
Napisz nowy temat   Odpowiedz do tematu    Forum Użytkownicy Oprogramowania Humansoft Strona Główna -> Rozszerzenia
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: Pią 14:29, 18 Mar 2016    Temat postu: Pokaż kontakty v 1.0

Opis
Prosta funkcja która wyświetla szczegółowe dane kontrahenta, wraz ze wszystkimi zdefiniowanymi dla niego kontaktami (osobami). Powinna być dodana w widoku kontrahentów w postaci przycisku.

Znane problemy
Formularz nie rozwija się automatycznie, gdy kontrahent ma zdefiniowanych więcej niż ileś tam osób, dane znikają z formularza (można go rozciągnąć aby zobaczyć).

Wersja 1.0
Kod:

LOCAL lcCommand
LOCAL lcCommand2
LOCAL frmMyForm
LOCAL lcCursor

frmMyForm = CREATEOBJECT('FormContacts')

lcCommand = "SELECT SYMBOL_KTR, NAZWA_KTR, TEL, TLX, FAX, PRZEDSTAW, OSOBA_UPOW, EMAIL, WWW FROM KONTRAH WHERE SYMBOL_KTR = '"+SYMBOL_KTR+"'"
lcCommand2 = "SELECT NR_KNT, NAZW_KNT, IMIE_KNT, STAN_KNT, TEL1, EMAIL FROM KONT_KTR WHERE SYMBOL_KNT LIKE '"+SYMBOL_KTR+"%'"

lcCursor = mySqlExec(lcCommand)
IF EMPTY(lcCursor)
   RETURN .F.      && zapytanie się nie udało
ENDIF

SELECT &lcCursor
SCAN            && przetwórz kursor
   frmMyForm.SetCompany(nazwa_ktr)
   IF !EMPTY(przedstaw)
      frmMyForm.AddRow('Osoba',przedstaw)
   ENDIF
   IF !EMPTY(tel)
      frmMyForm.AddRow('Telefon',tel)
   ENDIF
   IF !EMPTY(tlx)
      frmMyForm.AddRow('Telefon2',tlx)
   ENDIF
   IF !EMPTY(fax)
      frmMyForm.AddRow('Fax',fax)
   ENDIF
   IF !EMPTY(email)
      frmMyForm.AddRow('Mail',email)
   ENDIF
   IF !EMPTY(www)
      frmMyForm.AddRow('WWW',www)
   ENDIF
ENDSCAN

lcCursor = mySqlExec(lcCommand2)
IF !EMPTY(lcCursor)   
   SELECT &lcCursor   
   SCAN
      frmMyForm.SetOtherContacts()
      frmMyForm.AddOtherContact(nr_knt, TRIM(imie_knt)+' '+TRIM(nazw_knt),TRIM(stan_knt),TRIM(tel1),TRIM(email))
   ENDSCAN   
ENDIF

READ EVENTS
frmMyForm.SHOW

CLEAR CLASS FormContacts   
RELEASE frmMyForm

DEFINE CLASS CfBtnQuit AS COMMANDBUTTON
   Caption = "Zamknij"
   Visible = .T.
   Left = 152
   Top = 35
   Height = 25
   Default = .T.
   PROCEDURE Click
       ThisForm.RELEASE && Zamyka Formularz NOTEVIL
   ENDPROC
ENDDEFINE

DEFINE CLASS CfLblCompany AS LABEL
   Alignment = 0
   Top = 10
   Left = 10
   Height = 25
   Width = 280
   Visible = .T.
   FontBold = .T.
   Caption = 'Firma: '
ENDDEFINE

DEFINE CLASS FormContacts AS FORM
   WindowType = 1
   AutoCenter = .T.
   Width = 350
   Height = 400
   Closable = .T.
   TitleBar = 1
   Caption = "Podsumowanie kontaktów"
   Icon = "X:\\Images\\ikony\\users.ico"
   
   ARows = 0
   PROCEDURE Load
      ThisForm.ADDOBJECT("lblc", "CfLblCompany")
      ON KEY LABEL ESCAPE release window
   ENDPROC

   PROCEDURE SetCompany
      LPARAMETERS param1
      ThisForm.lblc.Caption = 'Firma: '+param1
   ENDPROC
   
   PROCEDURE AddRow
      LPARAMETERS param1, param2
      ThisForm.ARows = ThisForm.ARows + 1
      
      LOCAL clabel, ctext      
      ThisForm.ADDOBJECT("rowlbl"+param1, 'Label')
      clabel = ThisForm.Controls(2*ThisForm.ARows)
      clabel.Caption = param1
      clabel.Left = 10
      clabel.Top = 20 + (25 * ThisForm.ARows)
      clabel.Visible = .T.
      
      ThisForm.ADDOBJECT("rowtxt"+param1, 'TextBox')
      ctext = ThisForm.Controls(2*ThisForm.ARows+1)      
      ctext.Value = param2
      ctext.Left = 80
      ctext.Top = clabel.Top - 5
      ctext.Width = 250
      ctext.ReadOnly = .T.
      ctext.Visible = .T.
   ENDPROC

   PROCEDURE SetOtherContacts
      IF VARTYPE (ThisForm.otherslbl) <> [O]
         LOCAL oclabel
         ThisForm.ADDOBJECT('otherslbl', 'Label')
         oclabel = ThisForm.Controls(ThisForm.ControlCount)
         oclabel.Caption = 'Pozostałe kontakty'
         oclabel.Left = 10
         oclabel.Top = 50 + (25 * ThisForm.ARows)
         oclabel.Width = 200
         oclabel.Visible = .T.
      ENDIF
   ENDPROC

   PROCEDURE AddOtherContact
      LPARAMETERS ident, pname, ppos, ptel, pmail
      ThisForm.ARows = ThisForm.ARows + 1
      LOCAL vlabel, ocnamelbl
      vlabel = "oclabel"+ident

      ThisForm.ADDOBJECT(vlabel, 'Label')      
      ocnamelbl = ThisForm.Controls(ThisForm.ControlCount)      
      ocnamelbl.Caption = pname
      IF !EMPTY(ppos)
         ocnamelbl.Caption = ocnamelbl.Caption + '('+ppos+')'
      ENDIF
      ocnamelbl.Left = 10
      ocnamelbl.Top = 50 + (25 * ThisForm.ARows)
      ocnamelbl.Width = 300
      ocnamelbl.Visible = .T.
      
      ThisForm.ADDOBJECT("octel"+ident, 'TextBox')
      octel = ThisForm.Controls(ThisForm.ControlCount)
      octel.Value = ptel
      octel.ReadOnly = .T.
      octel.Left = 10
      octel.Width = 150
      octel.Top = 50 + (25*ThisForm.ARows) + 20
      
      ThisForm.ADDOBJECT("ocmail"+ident, 'TextBox')
      ocmail = ThisForm.Controls(ThisForm.ControlCount)
      ocmail.Value = pmail
      ocmail.ReadOnly = .T.
      ocmail.Left = 180
      ocmail.Width = 150
      ocmail.Top = 50 + (25*ThisForm.ARows) + 20
      
      ocmail.Visible = .T.
      octel.Visible = .T.
      ThisForm.ARows = ThisForm.ARows + 1
   ENDPROC

   PROCEDURE Unload
      CLEAR CLASS CfBtnQuit
      CLEAR CLASS CfLblCompany
   ENDPROC
ENDDEFINE


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 -> Rozszerzenia 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