Konu: Logo tiger 2 için .net ten VFP ya kod çevirimi
Selamlar;
Logo tiger2 için Dll dosyası aracılığı ile stok kartı açtırmak istiyorum. Logodan alınan DLL dosyası mevcut.
Local UnityApp As Variant
Local LastError As Variant
UnityApp = Createobject("UnityObjects.UnityApplication")
If !Isnull(UnityApp)
If UnityApp.connected=.T.
Wait Window ('Logo Ok') Nowa
Else
UnityApp.Disconnect
Endif
Else
LastError = UnityApp.GetLastError
UnityApp = .F.
MsgBox "Unity Application object not created ..."
Endif
If UnityApp.Login("LOGO", "LOGO",99)
Wait Window ('Firma Ok') Nowa
Else
Wait Window ("Hata:" + Str(UnityApp.GetLastError)+" "+ UnityApp.GetLastErrorString)
UnityApp.CompanyLogout
Endif
buraya kadar sorunsuz çalışıyor.
Aşağıdaki .net kodu kullanarak yeni stok kartı ekletmek isityorum .net bilgim fazla yok yardımcı olabilirmisiniz.
Çalışan orijinal .net kodu.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityObjects;
using System.Windows.Forms;
namespace hw
{
public class mg // my globals
{
public static UnityApplicationClass uo;
public static bool UnityeBagliyim;
public static void IlkDegerler()
{
uo = new UnityApplicationClass();
}
public static bool lesson_Connect()
{
if(uo.Connect())
{
MessageBox.Show("connect ok");
return true;
}
else
{
MessageBox.Show("connect:" + uo.GetLastError().ToString()+" "+uo.GetLastErrorString());
return false;
}
}
public static bool lesson_AddFirm()
{
string sEmsg = "";
if (!uo.Connected){MessageBox.Show("bağlan da gel");return false ;}
UnityObjects.Firm f = mg.uo.CAPI.Firms.NewFirm();
f.FirmNr = 44;
f.name = "malatya";
if (f.Post())
{ MessageBox.Show("firma kayıt edildi"); }
else
{
sEmsg = "hata :" +mg.uo.GetLastError().ToString() + " " + mg.uo.GetLastErrorString();
MessageBox.Show(sEmsg);
}
f = null;
return true;
}
public static bool lesson_AddFactoryDivision()
{
if (!mg.uo.Connected) { MessageBox.Show("bağlan da gel"); return false; }
string sEmsg = "";
UnityObjects.FactoryDivision fd= mg.uo.CAPI.Firms[0].Factories[0].FactoryDivisions.NewFactoryDivision();
fd.name = "şimdi ne olcak";
if (fd.Post())
{
MessageBox.Show("aha eklenti tamam");
}
else
{
sEmsg = "hata :" + mg.uo.GetLastError().ToString() + " - " + mg.uo.GetLastErrorString();
MessageBox.Show(sEmsg);
}
return true;
}
public static bool Baglan(string username, string password, int firmnumber)
{
if (uo.Connected)
{
MessageBox.Show("Unity e bağlısınız. Tekrar bağlantı için önce var olan bağlantıyı kesmelisiniz");
return false;
}
try
{
uo.Login(username, password, firmnumber);
if (uo.Connected)
{ return true; }
else
{ return false; }
}
catch (Exception e)
{
MessageBox.Show("Bağlantı Denemesinde Hata Oluştu:"+ e.Message);
return false;
}
}
public static bool BaglantiyiKes()
{
if (!uo.Connected)
{
MessageBox.Show("Unity e bağlı olmadığınız için bağlantı kesilmesine gerek yoktur");
return false;
}
uo.Disconnect();
MessageBox.Show("Bağlantınız kesildi");
return true;
}
public static bool lesson_addclcard()
{
string msg="";
if (!mg.uo.LoggedIn) { MessageBox.Show("bağlan da gel"); return false; }
Data clcard = mg.uo.NewDataObject(DataObjectType.doAccountsRP);
clcard.New();
clcard.DataFields.FieldByName("ACCOUNT_TYPE").Value=3;
clcard.DataFields.FieldByName("CODE").Value="00045";
clcard.DataFields.FieldByName("TITLE").Value="isim";
clcard.DataFields.FieldByName("ADDRESS1").Value = "adres";
clcard.DataFields.FieldByName("TOWN_CODE").Value = 1;
clcard.DataFields.FieldByName("TOWN").Value = "Aliağa";
if (clcard.Post())
{ MessageBox.Show("Cari kart eklendi"); }
else
{
if (clcard.ErrorCode==0)
{ // hata var ama hata veri tabanı hatası değil. Öyleyse hata XML hatasıdır.
msg +=" XML error";
for (int h = 0; h <= clcard.ValidateErrors.Count - 1; h++)
{
msg += "Err Id:" + clcard.ValidateErrors[h].ID.ToString();
msg += "Err Code:" + clcard.ValidateErrors[h].Error.ToString();
}
}
else
{// hata var ve hata veri tabanı hatası.
msg = "Veri Tabanı Hatası:" + clcard.ErrorCode.ToString()+" -" + clcard.ErrorDesc;
}
MessageBox.Show(msg);
}
clcard=null;
return true;
}
public static bool lesson_addSalesOrder()
{
string msg = "";
if (!mg.uo.LoggedIn) { MessageBox.Show("bağlan da gel"); return false; }
Data ss = mg.uo.NewDataObject(DataObjectType.doSalesOrderSlip);
ss.New();
ss.DataFields.FieldByName("NUMBER").Value = "~";
ss.DataFields.FieldByName("DATE").Value = System.DateTime.Today;
ss.DataFields.FieldByName("ARP_CODE").Value = "0000000000000002";
Lines ssLines = ss.DataFields.FieldByName("TRANSACTIONS").Lines;
ssLines.AppendLine();
ssLines[0].FieldByName("TYPE").Value = 0;
ssLines[0].FieldByName("MASTER_CODE").Value = "000000000000000000000001";
ssLines[0].FieldByName("QUANTITY").Value = 1;
ssLines[0].FieldByName("PRICE").Value = 11;
ssLines[0].FieldByName("VAT_RATE").Value = 8;
ssLines[0].FieldByName("UNIT_CODE").Value = "ADET";
// her satır için LOT kayıtlarının eklenmesi aşağıdaki gibidir.
// Lines ssLineSLDetail = ssLines[0].FieldByName("SL_DETAILS").Lines;
// ssLineSLDetail.AppendLine();
if (ss.Post())
{ MessageBox.Show("satış siparişi eklendi"); }
else
{
if (ss.ErrorCode == 0)
{ // hata var ama hata veri tabanı hatası değil. Öyleyse hata XML hatasıdır.
msg += " XML error";
for (int h = 0; h <= ss.ValidateErrors.Count - 1; h++)
{
msg += "Err Id:" + ss.ValidateErrors[h].ID.ToString();
msg += "Err Code:" + ss.ValidateErrors[h].Error.ToString();
}
}
else
{// hata var ve hata veri tabanı hatası.
msg = "Veri Tabanı Hatası:" + ss.ErrorCode.ToString() + " -" + ss.ErrorDesc;
}
MessageBox.Show(msg);
}
ss = null;
return true;
}
public static bool MalzemeKartAktarimi(TextBox tbInfo)
{
string sEmsg = "";
Data LogoMalzemeKart = mg.uo.NewDataObject(DataObjectType.doMaterial);
LogoMalzemeKart.New();
LogoMalzemeKart.DataFields.FieldByName("ACCOUNT_TYPE").Value = 3;
LogoMalzemeKart.DataFields.FieldByName("CODE").Value = "12345";
LogoMalzemeKart.DataFields.FieldByName("TITLE").Value = "malzemem";
if (LogoMalzemeKart.Post())
{ MessageBox.Show("kart kayıt edildi"); }
else
{
sEmsg = LogoMalzemeKart.ErrorDesc;
for (int h = 0; h <= LogoMalzemeKart.ValidateErrors.Count - 1; h++)
{
sEmsg += "Err Id:" + LogoMalzemeKart.ValidateErrors[h].ID.ToString();
sEmsg += "Err Code:" + LogoMalzemeKart.ValidateErrors[h].Error.ToString();
}
MessageBox.Show(sEmsg);
}
LogoMalzemeKart = null;
return true;
}// end of MalzemeKarti
}
}