using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Secim
{
[ComVisible(true)]
public class Callback
{
Form1 f1;
delegate void mapinfo();//mapinfo değişken
public Callback(Form1 _f1)
{
f1 = _f1;
}
public void info(string a)
{
int k = Convert.ToInt32(Form1.mi.Eval("searchpoint(frontwindow(),commandinfo(1),commandinfo(2))"));
string tabloadi = "";
for (int i = 1; i <= k; i++)
{
tabloadi = Form1.mi.Eval("SearchInfo(" + i.ToString() + ",1)");
String row_id = Form1.mi.Eval("SearchInfo(" + i.ToString() + ",2)");
Form1.mi.Do("Fetch rec " + row_id + " From " + tabloadi);
if ((tabloadi == "Iller"))
{
f1.Invoke(new mapinfo(f1.f3.fill_form));
}
}
}
}
}
Burada il isimleri tek tek tablolar arasında eşleştiriliyor. f1, form1 türertilmiş bir nesne. Bir de f3 görüyorsunuz. bir adet form3 adında form oluşturun ve form1 clasının içinde form3 için f3 isimli nesne oluşturun. Form3 ün tasarımı aşagıdaki gibi labellerden oluşsun.using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace Secim
{
[ComVisible(true)]
public class Callback
{
Form1 f1;
delegate void mapinfo();//mapinfo değişken
public Callback(Form1 _f1)
{
f1 = _f1;
}
public void info(string a)
{
int k = Convert.ToInt32(Form1.mi.Eval("searchpoint(frontwindow(),commandinfo(1),commandinfo(2))"));
string tabloadi = "";
for (int i = 1; i <= k; i++)
{
tabloadi = Form1.mi.Eval("SearchInfo(" + i.ToString() + ",1)");
String row_id = Form1.mi.Eval("SearchInfo(" + i.ToString() + ",2)");
Form1.mi.Do("Fetch rec " + row_id + " From " + tabloadi);
if ((tabloadi == "Iller"))
{
f1.Invoke(new mapinfo(f1.f3.fill_form));
}
}
}
}
}
Bilgi butonun clickeventine mi.Do("run menu command id 2001"); komutunu yazın. Artık bu butona tıkladığınızda form3 açılacak. Lakin form3'te verilerimizi doldurmadık. Bunun için form 3 aşağıdaki şekilde kodlayın.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Secim
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
public void fill_form()
{
label8.Text = Form1.mi.Eval("iller.il_adi");
//AKAM
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (CHP Float)From AKAM_ICIN Set To CHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (HDP Float)From AKAM_ICIN Set To HDP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (MHP Float)From AKAM_ICIN Set To MHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (AKP Float)From AKAM_ICIN Set To AKP Where COL1 = COL2"); }
catch { }
//AKAM
label14.Text = Form1.mi.Eval("iller.akp");
label10.Text = Form1.mi.Eval("iller.chp");
label11.Text = Form1.mi.Eval("iller.HDP");
label12.Text = Form1.mi.Eval("iller.MHP");
//ORC
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (CHP_2 Float)From ORC_ICIN Set To CHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (HDP_2 Float)From ORC_ICIN Set To HDP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (MHP_2 Float)From ORC_ICIN Set To MHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (AKP_2 Float)From ORC_ICIN Set To AKP Where COL1 = COL2"); }
catch { }
//ORC
label15.Text = Form1.mi.Eval("iller.akp_2");
label16.Text = Form1.mi.Eval("iller.chp_2");
label17.Text = Form1.mi.Eval("iller.hdp_2");
label18.Text = Form1.mi.Eval("iller.mhp_2");
//ANDY_AR
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (CHP_3 Float)From ANDY_AR_ICIN Set To CHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (HDP_3 Float)From ANDY_AR_ICIN Set To HDP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (MHP_3 Float)From ANDY_AR_ICIN Set To MHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (AKP_3 Float)From ANDY_AR_ICIN Set To AKP Where COL1 = COL2"); }
catch { }
//ANDY_AR
label19.Text = Form1.mi.Eval("iller.akp_3");
label20.Text = Form1.mi.Eval("iller.chp_3");
label21.Text = Form1.mi.Eval("iller.hdp_3");
label22.Text = Form1.mi.Eval("iller.mhp_3");
//METROPOLL
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (CHP_4 Float)From METROPOLL_ICIN Set To CHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (HDP_4 Float)From METROPOLL_ICIN Set To HDP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (MHP_4 Float)From METROPOLL_ICIN Set To MHP Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (AKP_4 Float)From METROPOLL_ICIN Set To AKP Where COL1 = COL2"); }
catch { }
//METROPOLL
label23.Text = Form1.mi.Eval("iller.akp_4");
label24.Text = Form1.mi.Eval("iller.chp_4");
label25.Text = Form1.mi.Eval("iller.hdp_4");
label26.Text = Form1.mi.Eval("iller.mhp_4");
//GERÇEK
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (AK_PARTİ% Float)From Secim_Kopya_2 Set To AK_PARTİ% Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " (CHP% Float)From Secim_Kopya_2 Set To CHP% Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " ( HDP% Float)From Secim_Kopya_2 Set To HDP% Where COL1 = COL2"); }
catch { }
try { Form1.mi.Do("Add Column " + "\"Iller\"" + " ( MHP% Float)From Secim_Kopya_2 Set To MHP% Where COL1 = COL2"); }
catch { }
label28.Text = Form1.mi.Eval("iller.AK_PARTİ% ");
label29.Text = Form1.mi.Eval("iller.CHP%");
label30.Text = Form1.mi.Eval("iller. HDP% ");
label31.Text = Form1.mi.Eval("iller. MHP%");
this.ShowDialog();
}
fillform fonksiyonu Callback'te çağırdığımız bir fonksiyon. add column stringi araştırma şirketlerinin araştırma şirketinin chp, mhp, hdp ve akp için bulduğu sonuçları getirecek. Bu sonuçlar Fromtablo isminden önceki tanımlanmış olan sütunlara atılacak. Örn: Akp_2 Float. Bu değerleri labellerde göstermek kaldı. labeltext kısımlarına da eval komutuyla mapinfo içerisinden veri çekip yazdıracağız. artık bilgi butonumuzun işlevi tamam. Aşağıdaki resimde işleyişini görebilirsiniz.
Ankara için araştırma şirketlerinin sonuçları ve gerçek seçim sonucu karşılaştırması.
Hiç yorum yok:
Yorum Gönder