Thorvaldsen
Administrator
Dołączył: 06 Lip 2015
Posty: 71
Przeczytał: 0 tematów
Pomógł: 1 raz Ostrzeżeń: 0/5
|
Wysł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
|
|