Sayfayı Yazdır | Pencereyi Kapat

Butona tıklayınca tepki yok

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1050
Tarih: 04 Temmuz 2025 Saat 04:45
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Butona tıklayınca tepki yok
Mesajı Yazan: turgutkir
Konu: Butona tıklayınca tepki yok
Mesaj Tarihi: 03 Temmuz 2025 Saat 15:40
Yönetici Seçimini yapıp Devam Et butouna tıklayınca hiçbir tepki vermiyor. Kodlarda bi hata yok gibi gözüküyor mesaj bloklarıyla test etmeye çalıştım fakat sorunu çözemedim.

//------------------------------------------------------------------
//  MainCode
//------------------------------------------------------------------

var
  MainForm         : TclForm;
  lblTitle, lblDesc: TclLabel;
  cmbRole          : TclComboBox;
  btnNext          : TclButton;


void OpenPanel;
var
  roleVal : String;
{
  roleVal=LowerCase(cmbRole.Text);    

  if      roleVal == 'personel' 
  Clomosy.RunUnit('uPersonnelForm')
  else if 
  roleVal == 'yönetici' 
  Clomosy.RunUnit('uManagerForm')
  else    
  ShowMessage('Lütfen önce rol seçin.');
}


{
  MainForm=TclForm.Create(Self);
  MainForm.clSetCaption('Rol Seçimi');

  // Başlık
  lblTitle=MainForm.AddNewLabel(MainForm,'lblTitle',
    'Ziyaretçi Yönetim Sistemine Hoş Geldiniz');
  lblTitle.Font.Size  =18;
  lblTitle.Align      =alTop;
  lblTitle.Margins.Top=24;

  // Açıklama
  lblDesc=MainForm.AddNewLabel(MainForm,'lblDesc',
    'Lütfen rolünüzü seçin:');
  lblDesc.Align      =alTop;
  lblDesc.Margins.Top=12;

  // Rol seçimi
  cmbRole=MainForm.AddNewComboBox(MainForm,'cmbRole');
  cmbRole.AddItem('Personel','personel');
  cmbRole.AddItem('Yönetici','yonetici');
  cmbRole.Align      =alTop;
  cmbRole.Margins.Top=20;
  cmbRole.Width      =200;
  cmbRole.ItemIndex  =0;            

  // Devam butonu
  btnNext=MainForm.AddNewButton(MainForm,'btnNext','Devam Et');
  btnNext.Align      =alTop;
  btnNext.Margins.Top=32;
  btnNext.Width      =200;
  btnNext.Height     =40;           
  MainForm.AddNewEvent(btnNext, tbeOnClick, 'OpenPanel');  

  MainForm.Run;
}


//------------------------------------------------------------------
//  uManagerForm
//------------------------------------------------------------------

var
  FrmMgr          : TclForm;
  lstMeetings     : TclListView;

  edtStart, edtEnd : TclEdit;       

  cmbUser         : TclComboBox;
  btnFilter       : TclButton;
  qData           : TclSqlQuery;

/*---------------  personel listesini doldur  --------------------*/
void LoadUsers;
 var
  q : TclSqlQuery; 

{
 
  q = Clomosy.DBSQLServerQueryWith(
        'SELECT ID, FullName FROM Users ORDER BY FullName');

  cmbUser.Clear;
  while (not q.EOF) {
    cmbUser.AddItem(q.FieldByName('FullName').AsString,
                    q.FieldByName('ID').AsString);
    q.Next;
  };
}

/*---------------  tarih + personel filtresi  --------------------*/
void ApplyFilter;         
var
  sql : String;
  uid : String;
{
  sql =
    'SELECT M.ID as RECORD_GUID,' +
    '       U.FullName + '' - '' + M.CompanyName as MAIN_TEXT,' +
    '       CONVERT(nvarchar, M.MeetingDate,104) + '' '' +' +
    '       CONVERT(nvarchar, M.MeetingDate,108) as SUB_TEXT ' +
    'FROM Meetings M ' +
    'LEFT JOIN Users U ON U.ID = M.UserID ' +
    'WHERE 1=1';

  /* Tarih aralığı */
  sql =
    sql + ' AND M.MeetingDate BETWEEN ' +
    QuotedStr(Trim(edtStart.Text) + ' 00:00') +
    ' AND ' +
    QuotedStr(Trim(edtEnd.Text)   + ' 23:59');

  /* Personel filtresi */
  uid = cmbUser.GetValueIndex(cmbUser.ItemIndex);
  if (uid <> '') {
    sql = sql + ' AND M.UserID = ' + uid;
  };

  try
    qData.SQL.Text = sql;
    qData.Open;
    lstMeetings.clLoadListViewDataFromDataset(qData);
  except
    ShowMessage('Sorgu hatası: ' + LastExceptionMessage);
  };
}


/*---------------  formu oluştur  -------------------------------*/
void CreateForm;
{
  FrmMgr = TclForm.Create(Self);
  FrmMgr.clSetCaption('Yönetici Paneli');

  /* Tarih giriş kutuları */
  edtStart = FrmMgr.AddNewEdit(FrmMgr,'edtStart','Başlangıç (yyyy-MM-dd)');
  edtEnd   = FrmMgr.AddNewEdit(FrmMgr,'edtEnd'  ,'Bitiş (yyyy-MM-dd)');

  cmbUser  = FrmMgr.AddNewComboBox(FrmMgr,'cmbUser');

  btnFilter = FrmMgr.AddNewButton(FrmMgr,'btnFilter','Uygula');
  FrmMgr.AddNewEvent(btnFilter,tbeOnClick,'ApplyFilter');

  lstMeetings = FrmMgr.AddNewListView(FrmMgr,'lstMeetings');
  lstMeetings.Align = alClient;

  /* SQL Server bağlantısı */
  qData = TclSqlQuery.Create(null);
  Clomosy.DBSQLServerConnect(
    'SQL Server',
    'TURGUT-KIR\\ATIKER',
    'sa',
    '1',
    'TURGUT25',
    1433);
  qData.Connection = Clomosy.DBSQLServerConnection;

  /* Kutulara bugünün tarihi */
  edtStart.Text = FormatDateTime('yyyy-MM-dd', Date);
  edtEnd.Text   = edtStart.Text;

  LoadUsers;
  ApplyFilter;

  FrmMgr.Run;
}

/*---------------  RunUnit giriş noktası  -----------------------*/
void RunUnit;
{
  if (FrmMgr == null) {
    CreateForm;
  } else {
    FrmMgr.clShow;
  };



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 03 Temmuz 2025 Saat 16:29
Merhaba Turgut, 
Muhtemelen event2ın çalışmaması uManagerForm adı birimin de forumun prosedür içerisinde kalması. 
Form Create void içerisinde yazmadan çalıştığın zaman birime geçiş sağlanıyor. Ya da void çağırman gerekir. 
Birime geçtikten sonra uManagerForm adlı birimde 86. satırda Create hatası çıkıyor.



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net