Konu: form kullanımı hakkında
Ekte bir LİSTE formu var.
Program çalışıyor.
"Sorgula" tuşuna basıldığında YAPILAN SEÇİM "LISTE7.DBF" dosyasına aktarılıyor.
Sorunum : Çok kullanıcılı sistemde başka bir kullanıcı aynı anda aynı programı kullanığında yaptığı seçim bir de LISTE7.DBF dosyasına aktarıldığından diğer kullanıcının listesini bozmaktadır.
Yapmak istediğim : Program aynı anda başka kullanıcı tarafından kullanılsa bile listelerin karışmaması (Başka bir dosyaya kayudetmesi.) Ama yaratılan bu dosyaları bu form ile kullanabilmem.
Form kullanmadığım eski programlarımda :
dadi=SYS(3)
dosya=dadi+".DBF"
COPY FILE Liste7.DBF TO &dosya
şeklinde random bir program adı yaratıp bunu kayıt olmayan boş doyayı bu programa kopyalıyordum.
Yani her yeni kullanıcı random adlı başka başka dosyalar kullanabiliyordu. Böylece listelerde karışıklık olmuyordu.
Bunu FORM kullnarak nasıl yapabilirim.
Teşekkürler.
-------------------------------------------
SET EXCLUSIVE ON
CLOSE ALL
SET TALK OFF
SET NOTIFY OFF
ON ERROR DO HATA
Public oForm
oForm = Createobject("doviz")
oForm.Show(1)
Define Class doviz As Form
DataSession = 2
Top = 2
Left = 5
Height = 645
Width = 1170
Name = "doviz"
Caption = " Yapılan İş Sayısı "
orecord = .Null.
Add Object lblDolar As Label With ;
left = 5, Top = 5, Caption = "M.Tem.Adı:", AutoSize=.T.
Add Object txtAcente As myTextBox With ;
Top = 2, ;
left = 105, ;
Width = 180, ;
BackColor = 65535, ;
Value = SPACE(40), ;
InputMask = "XXXXXXXXXXXXXXXXXXXX", ;
Enabled = .f.
ADD OBJECT acente1 AS combobox WITH ;
Top = 2, ;
left = 85, ;
Width = 20, ;
BackColor = 65535, ;
Value = 0, ;
rowsourcetype=2,;
rowsource="Sattem.adi,no",;
boundcolumn=2,;
columncount=2,;
columnwidths="250,60,0",;
Enabled = .t.
Add Object cmdsorgula as CommandButton With ;
Top = 2, ;
Left = 640, ;
Height = 27, ;
Width = 84, ;
Caption = 'Sorgula', ;
Enabled = .t.
Add Object cmdexe as CommandButton With ;
Top = 2, ;
Left = 740, ;
Height = 27, ;
Width = 84, ;
Caption = '.EXEL Oluştur', ;
Enabled = .t.
Add Object cmdClose as CommandButton With ;
Top = 32, ;
Left = 640, ;
Height = 27, ;
Width = 84, ;
Caption = 'Kapat'
* Add Object cmdadi as CommandButton With ;
* Top = 182, ;
* Left = 340, ;
* Height = 27, ;
* Width = 84, ;
* Caption = 'Adı-Sırala'
Add Object grdListe as myGrid
Procedure cmdsorgula.Click
ppsorgula()
EndProc
Procedure cmdexe.Click
ppexe()
EndProc
Procedure cmdClose.Click
* CLOSE ALL
thisform.Release
EndProc
Procedure Load
SET TALK OFF
SET NOTIFY OFF
SET DELE ON
SET ESCAPE OFF
SET ECHO OFF
SET TALK OFF
SET DATE TO BRITI
SET CENT ON
set safe off
SELE 1
USE Siparis INDEX Siparis1,Siparis2
SELE 2
USE Liste7 INDEX Liste71
DELE ALL
SELE 42
USE sattem INDEX sattem2,sattem1
SELE 45
USE Musteri INDEX Musteri1,Musteri2
Endproc
PROCEDURE acente1.Init
lcCustomerID = "CENTC"
this.Value = m.lcCustomerID
ENDPROC
PROCEDURE acente1.InteractiveChange
with this.parent
.txtAcente.Value = Sattem.adi
endwith
ENDPROC
Enddefine
******************************************************************
Define Class myTextBox as TextBox
******************************************************************
Enabled = .f.
DisabledForeColor = Rgb(0,0,0)
SelectOnEntry = .t.
EndDefine
******************************************************************
Define Class myoptiongroup as optiongroup
******************************************************************
Enabled = .f.
DisabledForeColor = Rgb(0,0,0)
SelectOnEntry = .t.
EndDefine
******************************************************************
Procedure ppsorgula
******************************************************************
With oForm
IF VAL(.acente1.Value) = 0
SELE 2
DELE ALL
SET ORDER TO 1 DESC
SELE 45
GO TOP
DO WHILE .NOT. EOF()
ymusno = no
ymikro = mikro
ymusadi = adi
ysattemno = sattemno
ysattemadi = sattemadi
SELE 1
COUNT TO yisadet FOR musno = ymusno
SELE 2
APPEND BLANK
REPLA musno WITH ymusno
REPLA mikro WITH ymikro
REPLA musadi WITH ymusadi
REPLA isadet WITH yisadet
REPLA sattemno WITH ysattemno
REPLA sattemadi WITH ysattemadi
SELE 45
SKIP
ENDDO
ENDIF
IF VAL(.acente1.Value) <> 0
SELE 2
DELE ALL
SET ORDER TO 1 DESC
SELE 45
GO TOP
DO WHILE .NOT. EOF()
IF SatTemNo = VAL(.acente1.Value)
ymusno = no
ymikro = mikro
ymusadi = adi
ysattemno = sattemno
ysattemadi = sattemadi
SELE 1
COUNT TO yisadet FOR musno = ymusno
SELE 2
APPEND BLANK
REPLA musno WITH ymusno
REPLA mikro WITH ymikro
REPLA musadi WITH ymusadi
REPLA isadet WITH yisadet
REPLA sattemno WITH ysattemno
REPLA sattemadi WITH ysattemadi
ENDIF
SELE 45
SKIP
ENDDO
ENDIF
SELE 2
GO TOP
.grdListe.Refresh()
.grdListe.SetFocus()
EndWith
EndProc
******************************************************************
Procedure ppexe
******************************************************************
With oForm
EXPORT TO Sattem.xls TYPE XL5 FIELDS tarih,Saat,Barkod,Aciklama,Kullanici
local lcSource,lcTarget
lcSource = fullpath("Sattem.xls")
lcTarget = forcepath(m.lcSource, fullpath('liste'))
copy file (m.lcSource) to (m.lcTarget)
EndWith
EndProc
******************************************************************
Define Class myGrid as Grid
******************************************************************
* Top = 62
Top = 110
Left = 5
Height = 520
Width = 1158
ColumnCount = 6
DeleteMark = .F.
RecordMark = .t.
ReadOnly = .T.
RecordSource = "Liste7"
ScrollBars = 3
GridLineColor = Rgb(192,192,192)
Procedure Init
With this
* Scatter Name This.oRecord Memo
.Column1.Header1.Caption = 'Müşteri No'
.Column1.Width = 70
.Column1.InputMask = "999999"
.Column1.ControlSource = "Liste7.MusNo"
.Column2.Header1.Caption = 'Mikro Kodu'
.Column2.Width = 70
.Column2.ControlSource = "Liste7.Mikro"
.Column3.Header1.Caption = 'Müşteri Adı'
.Column3.Width = 200
.Column3.ControlSource = "Liste7.MusAdi"
.Column4.Header1.Caption = 'İş Adedi'
.Column4.Width = 80
.Column4.InputMask = "999,999"
.Column4.ControlSource = "Liste7.IsAdet"
.Column5.Header1.Caption = 'Sat.Tem.No'
.Column5.Width = 50
.Column5.ControlSource = "Liste7.SatTemNo"
.Column6.Header1.Caption = 'Satış Temsilcisi Adi'
.Column6.Width = 120
.Column6.ControlSource = "Liste7.SatTemAdi"
EndWith
this.SetAll('Enabled',.f.,'textbox')
this.SetAll('DisabledForeColor',0,'textbox')
EndProc
EndDefine
*
PROCEDURE HATA
? ERROR()
? MESSAGE()
WAIT
RETURN