1

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.

Visual Fox Pro
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.

C#
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
 
 
    }
}
Bilmediğin Neyse Yanıldığındır.

2

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

sad

Bilmediğin Neyse Yanıldığındır.

3 Son düzenleyen, metin (01.03.2010 11:53:21)

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

biz logoya fatura vs.. atıyoruz. stok kartı hiç atmadık, böyle olması gerekir ama bende hata verdi:

Visual Fox Pro
LogoMalzemeKart=UnityApp.NewDataObject(0)

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("kart tamamdır")
Else
    MessageBox("hata var")
EndIf
 
logomalzemekart=null
Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

4

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Metin abi teşekürler ederim.

Visual Fox Pro
** STOK EKLEME

LogoMalzemeKart=UnityApp.NewDataObject(0)
LogoMalzemeKart.new()
LogoMalzemeKart.DataFields.FieldByName("CODE").Value = "12345"
LogoMalzemeKart.DataFields.FieldByName("NAME").Value = "malzemem"
LogoMalzemeKart.DataFields.DBFieldByName("CARDTYPE").Value = 1
LogoMalzemeKart.DataFields.DBFieldByName("ACTIVE").Value =0
If LogoMalzemeKart.post()
    MessageBox("kart tamamdır")
ELSE
    LastError = UnityApp.GetLastError
    LastErrorstr =UnityApp.GetLastErrorString
    MessageBox(STR(LastError)+"hata var"+LastErrorstr)
EndIf
logomalzemekart=null
Bilmediğin Neyse Yanıldığındır.

5

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

isteğin üzere logo'ya fatura gönderme kodlarını aşağıya koydum:

Visual Fox Pro
Local lo,ofat,osatir,xsatir

 
ofat=.Null.
osatir=.Null.
lo=.Null.
 
lo=This.lt_obj
ofat=lo.NewDataObject(19)
 
ofat.new
*
ofat.DataFields.DBFieldByName('FICHENO').Value = '~' &&Transform(m.fatno,"@l 9999999999")
ofat.DataFields.DBFieldByName('DATE_').Value = This.tarih.Value
ofat.DataFields.FieldByName('TYPE').Value = 8
 
ofat.DataFields.FieldByName('DOC_NUMBER').Value = TRANSFORM(m.fatno ,"@l 99999999")
ofat.DataFields.FieldByName('ARP_CODE').Value = This.carikod.kod.Value
 
osatir=ofat.DataFields.FieldByName('TRANSACTIONS').LineS
 
Select faarados
xsatir=0
Scan
    osatir.appendline
    osatir.Item[xsatir].FieldByName('TYPE').Value = 0                            && //satir tipi
    osatir.Item[xsatir].FieldByName('MASTER_CODE').Value = stokkodu                &&//malzeme kodu
    osatir.Item[xsatir].FieldByName('DATE').Value = Thisform.tarih.Value   &&//tarih
    osatir.Item[xsatir].FieldByName('QUANTITY').Value = miktar    &&        //miktar
    osatir.Item[xsatir].FieldByName('UNIT_CODE').Value = birimi  &&           //birim kodu
    osatir.Item[xsatir].FieldByName('VAT_RATE').Value = kdv
    osatir.Item[xsatir].FieldByName('PRICE').Value = fiyati    &&    //birim fiyat
    xsatir=xsatir+1
Endscan
*osatir.Item[0].FieldByName('ORDER_REFERENCE').Value := 10;
*    InvLine.Item[0].FieldByName('DIST_ORD_REFERENCE').Value := 6;
 
If !ofat.Post
    Try
        xerr=ofat.ValidateErrors.Item[0].Error
    Catch
        xerr="Bulunamayan hata"
    Finally
 
    Endtry
    stop(xerr,"LOGO Aktarma Hatası",,.T.)
Endif
 
 
ofat=.Null.
osatir=.Null.
lo=.Null.
Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

6

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Çok Teşekkürler.

Bilmediğin Neyse Yanıldığındır.

7

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

selamlar;
Aşağıdaki kod post ettikten sonra hata veriyor.
Sorun: bom_line.Item[0] ve ya bom_line.Item[1] gibi yazınca sorunsuz çalışıyor. Ama satır sayısı sabit değil 1 de olabiliyor 100 de.

Visual Fox Pro
LogoRecete=UnityApp.NewDataObject(54)

LogoRecete.new()
LogoRecete.DataFields.FieldByName('CODE').Value = Alltrim(CrRecetStok.malzeme_PARTNO)
LogoRecete.DataFields.FieldByName('NAME').Value = Alltrim(CrRecetStok.malzemeadi)
LogoRecete.DataFields.FieldByName('REV_CODE').Value = 'R1'
LogoRecete.DataFields.FieldByName('REV_RECORD_STATUS').Value = 1
LogoRecete.DataFields.FieldByName('REV_DATE').Value = Date()
bom_line = LogoRecete.DataFields.FieldByName('LINES').LineS
Select CrRecetStok
Locate
xsatir=0
SCAN
    bom_line.AppendLine
    If xsatir=0
        bom_line.Item[xsatir].FieldByName('LINE_TYPE').Value = 4
        bom_line.Item[xsatir].FieldByName('LINE_NO').Value = 2
        bom_line.Item[xsatir].FieldByName('UINFO1').Value = 1
        bom_line.Item[xsatir].FieldByName('UINFO2').Value = 1
        bom_line.Item[xsatir].FieldByName('AMOUNT').Value = 1
        bom_line.Item[xsatir].FieldByName('SCALABLE').Value = 1
        bom_line.Item[xsatir].FieldByName('ENGINEERING').Value = 1
        bom_line.Item[xsatir].FieldByName('PRODUCTION').Value = 1
        bom_line.Item[xsatir].FieldByName('COST').Value = 1
        bom_line.Item[xsatir].FieldByName('COST_RATE').Value = 1
        bom_line.Item[xsatir].FieldByName('FORMULA').Value = 1
        bom_line.Item[xsatir].FieldByName('DATA_REFERENCE').Value = 1
        bom_line.Item[xsatir].FieldByName('EFFECT_OP_TIME').Value = 1
        bom_line.Item[xsatir].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.malzemeadi)
        bom_line.Item[xsatir].FieldByName('UNIT_SET_CODE').Value = 'BS-000001'
        bom_line.Item[xsatir].FieldByName('UNIT_CODE').Value = 'ADET'
        bom_line.Item[xsatir].FieldByName('OP_CODE').Value = 'OPERASYON01'
    Else
        bom_line.Item[xsatir].FieldByName('LINE_TYPE').Value = 0
        bom_line.Item[xsatir].FieldByName('LINE_NO').Value = xsatir+2
        bom_line.Item[xsatir].FieldByName('UINFO1').Value = 1
        bom_line.Item[xsatir].FieldByName('UINFO2').Value = 1
        bom_line.Item[xsatir].FieldByName('AMOUNT').Value = CrRecetStok.miktar
        bom_line.Item[xsatir].FieldByName('SCALABLE').Value = 1
        bom_line.Item[xsatir].FieldByName('ENGINEERING').Value = 1
        bom_line.Item[xsatir].FieldByName('PRODUCTION').Value = 1
        bom_line.Item[xsatir].FieldByName('COST').Value = 1
        bom_line.Item[xsatir].FieldByName('FORMULA').Value = 1
        bom_line.Item[xsatir].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.wka_partno)
        bom_line.Item[xsatir].FieldByName('UNIT_SET_CODE').Value = Alltrim(CrRecetStok.birimset)
        bom_line.Item[xsatir].FieldByName('UNIT_CODE').Value = Alltrim(CrRecetStok.birim)
        bom_line.Item[xsatir].FieldByName('OP_CODE').Value = 'OPERASYON01'
    Endif
    xsatir=xsatir+1
Endscan
*MUTLAKA SATIRLARDAN SONRA OLACAK.
LogoRecete.DataFields.FieldByName('MP_CODE').Value = Alltrim(CrRecetStok.malzemeadi)
LogoRecete.DataFields.FieldByName('ROUT_CODE').Value = 'OPERASYON01'
If LogoRecete.Post()=.F.
    If LogoRecete.ErrorCode <> 0
        Messagebox("DB Error : (" + Str(LogoRecete.ErrorCode) + ") - " + LogoRecete.ErrorDesc)
    Else
        If LogoRecete.ValidateErrors.Count > 0
            For i = 0 To LogoRecete.ValidateErrors.Count - 1
                Messagebox("XML Error : (" + Str(LogoRecete.ValidateErrors.Item(i).Id) + ") - " + LogoRecete.ValidateErrors.Item(i).Error)
            Endfor
        Endif
    Endif
Else
    Wait Window "OK"
ENDIF
LogoRecete=.Null.
bom_line =.Null.
Bilmediğin Neyse Yanıldığındır.

8 Son düzenleyen, ugurlu2001 (09.03.2010 12:37:08)

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Mehmet;

Birde şöyle dene istersen:

Visual Fox Pro
LOCAL xsatir

LogoRecete=UnityApp.NewDataObject(54)
LogoRecete.new()
LogoRecete.DataFields.FieldByName('CODE').Value = Alltrim(CrRecetStok.malzeme_PARTNO)
LogoRecete.DataFields.FieldByName('NAME').Value = Alltrim(CrRecetStok.malzemeadi)
LogoRecete.DataFields.FieldByName('REV_CODE').Value = 'R1'
LogoRecete.DataFields.FieldByName('REV_RECORD_STATUS').Value = 1
LogoRecete.DataFields.FieldByName('REV_DATE').Value = Date()
bom_line = LogoRecete.DataFields.FieldByName('LINES').LineS
 
Select CrRecetStok
Locate
m.xsatir=0
 
SCAN
 
    bom_line.AppendLine
 
    If (m.xsatir)=0
        bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 4
        bom_line.Item[(m.xsatir)].FieldByName('LINE_NO').Value = 2
        bom_line.Item[(m.xsatir)].FieldByName('UINFO1').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('UINFO2').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('AMOUNT').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('SCALABLE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ENGINEERING').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('PRODUCTION').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('COST').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('COST_RATE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('FORMULA').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('DATA_REFERENCE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('EFFECT_OP_TIME').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.malzemeadi)
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_SET_CODE').Value = 'BS-000001'
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_CODE').Value = 'ADET'
        bom_line.Item[(m.xsatir)].FieldByName('OP_CODE').Value = 'OPERASYON01'
    Else
        bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 0
        bom_line.Item[(m.xsatir)].FieldByName('LINE_NO').Value = (m.xsatir)+2
        bom_line.Item[(m.xsatir)].FieldByName('UINFO1').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('UINFO2').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('AMOUNT').Value = CrRecetStok.miktar
        bom_line.Item[(m.xsatir)].FieldByName('SCALABLE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ENGINEERING').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('PRODUCTION').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('COST').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('FORMULA').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.wka_partno)
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_SET_CODE').Value = Alltrim(CrRecetStok.birimset)
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_CODE').Value = Alltrim(CrRecetStok.birim)
        bom_line.Item[(m.xsatir)].FieldByName('OP_CODE').Value = 'OPERASYON01'
    Endif
 
    m.xsatir= m.xsatir+1
Endscan
*MUTLAKA SATIRLARDAN SONRA OLACAK.
LogoRecete.DataFields.FieldByName('MP_CODE').Value = Alltrim(CrRecetStok.malzemeadi)
LogoRecete.DataFields.FieldByName('ROUT_CODE').Value = 'OPERASYON01'
If LogoRecete.Post()=.F.
    If LogoRecete.ErrorCode <> 0
        Messagebox("DB Error : (" + Str(LogoRecete.ErrorCode) + ") - " + LogoRecete.ErrorDesc)
    Else
        If LogoRecete.ValidateErrors.Count > 0
            For i = 0 To LogoRecete.ValidateErrors.Count - 1
                Messagebox("XML Error : (" + Str(LogoRecete.ValidateErrors.Item(i).Id) + ") - " + LogoRecete.ValidateErrors.Item(i).Error)
            Endfor
        Endif
    Endif
Else
    Wait Window "OK"
ENDIF
LogoRecete=.Null.
bom_line =.Null.

Not: anladığım kadarı ile xSatir la ilgili bir sorun var;  ya aynı isimde bir field var ve çakışma yapıyor; yada olmayan bir dizi elemanına referans veriyorsun.

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

9 Son düzenleyen, ugurlu2001 (09.03.2010 12:47:11)

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Birde Kodun daha okunaklı olması için IF bloğu için  şöyle bir syntax önerebilirim:

Visual Fox Pro
* 

    bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = Iif(m.xsatir = 0,4,0)
        bom_line.Item[(m.xsatir)].FieldByName('LINE_NO').Value = Iif(m.xsatir = 0,2, (m.xsatir)+2)
        bom_line.Item[(m.xsatir)].FieldByName('UINFO1').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('UINFO2').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('AMOUNT').Value = Iif(m.xsatir = 0,1, CrRecetStok.miktar)
        bom_line.Item[(m.xsatir)].FieldByName('SCALABLE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ENGINEERING').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('PRODUCTION').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('COST').Value = 1
    If (m.xsatir)=0
        bom_line.Item[(m.xsatir)].FieldByName('COST_RATE').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('DATA_REFERENCE').Value = 1
    ENDIF
        bom_line.Item[(m.xsatir)].FieldByName('FORMULA').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('EFFECT_OP_TIME').Value = 1
        bom_line.Item[(m.xsatir)].FieldByName('ITEM_CODE').Value = Iif(m.xsatir = 0,Alltrim(CrRecetStok.malzemeadi),Alltrim(CrRecetStok.wka_partno))
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_SET_CODE').Value = Iif(m.xsatir = 0,'BS-000001', Alltrim(CrRecetStok.birimset))
        bom_line.Item[(m.xsatir)].FieldByName('UNIT_CODE').Value = Iif(m.xsatir = 0,'ADET',Alltrim(CrRecetStok.birim))
        bom_line.Item[(m.xsatir)].FieldByName('OP_CODE').Value = 'OPERASYON01'
Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

10

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

ugurlu2001 yazdı:


Not: anladığım kadarı ile xSatir la ilgili bir sorun var;  ya aynı isimde bir field var ve çakışma yapıyor; yada olmayan bir dizi elemanına referans veriyorsun.


xsatir dışında şeylerde denedim. senin kod ile de deneme yaptım sonuç aynı.  sonuç hata 501 (logo hatası tabiki) dönüyor.

Bilmediğin Neyse Yanıldığındır.

11 Son düzenleyen, ugurlu2001 (09.03.2010 13:51:02)

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Mehmet, en mantıklısı Logo Dökümantosyalarına bakmak yada adamları arayıp destek almak.

Mehmet; birde xSatir yerine 0,1,2... gibi değerler kullandığında HATA Vermiyordu dimi?

İfadeyi TextMerge ile

TEXT
ENDTEXT

Arasında dinamik olarak kullansan?

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

12

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Selamlar;
Logo dökümanına baktım.
Logodan arkadaşlar destek veriyorlar C# de çalışıyor diyorlar.

Son durum;
Döngü içine girdiğinde ilk stoğu ekliyor  sorun yok. satir=satir+1 den tekra basa donuyor ve ilk satırda ( bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 0) aşağıdaki hatayı veriyor.
Hata: 1429 OLE IDispatch exception code 0 from ?: List index out of bounds
text endtext  ile dinamik bir şeikde yaptığımda nasıl post edeceğimi bilemiyorum.

Bilmediğin Neyse Yanıldığındır.

13

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Mehmet;

Bildiğim kadarı ile C# da Dizi elemanı  0 ( sıfır )  dan başlıyor;

VFP de ise 1.

Yani Sen datayı C# ile yazılmış bir DLL ile alıyorsan ve 0 ıncı eleman ise bunun VFP deki karşılığı : 1. eleman.

Galiba burda ufak bir hile yapman gerekiyor.

Logoyu ( veri yapısını ) hiç bilmediğimden yönlendirme yapamıyorum. Ama Fikir olarak umarım işe yarar bir detay yakalamışımdır.

Özetle; Logo Tiger daki (n.) eleman VFP deki (n+1 .) elemana eşit

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

14

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

ugurlu2001 yazdı:

Mehmet;

Bildiğim kadarı ile C# da Dizi elemanı  0 ( sıfır )  dan başlıyor;

VFP de ise 1.

Yani Sen datayı C# ile yazılmış bir DLL ile alıyorsan ve 0 ıncı eleman ise bunun VFP deki karşılığı : 1. eleman.

Galiba burda ufak bir hile yapman gerekiyor.

Logoyu ( veri yapısını ) hiç bilmediğimden yönlendirme yapamıyorum. Ama Fikir olarak umarım işe yarar bir detay yakalamışımdır.

Özetle; Logo Tiger daki (n.) eleman VFP deki (n+1 .) elemana eşit

benim çalışan koda bakarsan sıfır ile başladığını görebilirsin. bu bir vfp dizisi değil. dll den gelen bir nesne ve sıfırdan başlaması gerekiyor.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

15

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

mrduyar yazdı:

Selamlar;
Logo dökümanına baktım.
Logodan arkadaşlar destek veriyorlar C# de çalışıyor diyorlar.

Son durum;
Döngü içine girdiğinde ilk stoğu ekliyor  sorun yok. satir=satir+1 den tekra basa donuyor ve ilk satırda ( bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 0) aşağıdaki hatayı veriyor.
Hata: 1429 OLE IDispatch exception code 0 from ?: List index out of bounds
text endtext  ile dinamik bir şeikde yaptığımda nasıl post edeceğimi bilemiyorum.


xsatir sıfırdan başlar. bir yerde appendline yapmamış olabilirsin veya xsatir mevcut satırdan yukarıda olabilir. fatura, irsaliye, sipariş,... hepsini yapıyorum ben.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

16

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

metin yazdı:

xsatir sıfırdan başlar. bir yerde appendline yapmamış olabilirsin veya xsatir mevcut satırdan yukarıda olabilir. fatura, irsaliye, sipariş,... hepsini yapıyorum ben.


Reçete ile ilgili olan bir sorun diye düşünüyorum. Fatura da bende denedim herşey aynı çalışıyor. Yarın arkadaşlar gelecek. Teşekkürler.

Bilmediğin Neyse Yanıldığındır.

17

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

bug olabilir. biz logoya o kadar bug düzelttirdik ki lobjects'te. logo object i biz adam ettik diyebilirim.

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

18 Son düzenleyen, mrduyar (12.03.2010 10:51:03)

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Selamlar;
İşte Cevap: Siz siz olun scan endscan dan sonra select yapıp bir kayda gitmeyi unutmayın.:D

Visual Fox Pro
xsatir=0

bom_line.AppendLine
bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 4
bom_line.Item[(m.xsatir)].FieldByName('LINE_NO').Value = 2
bom_line.Item[(m.xsatir)].FieldByName('UINFO1').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('UINFO2').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('AMOUNT').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('SCALABLE').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('ENGINEERING').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('PRODUCTION').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('COST').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('COST_RATE').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('FORMULA').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('DATA_REFERENCE').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('EFFECT_OP_TIME').Value = 1
bom_line.Item[(m.xsatir)].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.malzeme_PARTNO)
bom_line.Item[(m.xsatir)].FieldByName('UNIT_SET_CODE').Value = 'BS-000001'
bom_line.Item[(m.xsatir)].FieldByName('UNIT_CODE').Value = 'ADET'
bom_line.Item[(m.xsatir)].FieldByName('OP_CODE').Value = 'OPERASYON01'
bom_line.Item[(m.xsatir)].FieldByName('OP_NAME').Value = 'OPERASYON01'
Scan
    xsatir=xsatir+1
    bom_line.AppendLine
    bom_line.Item[(m.xsatir)].FieldByName('LINE_TYPE').Value = 0
    bom_line.Item[(m.xsatir)].FieldByName('LINE_NO').Value = m.xsatir+2
    bom_line.Item[(m.xsatir)].FieldByName('UINFO1').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('UINFO2').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('AMOUNT').Value = CrRecetStok.miktar
    bom_line.Item[(m.xsatir)].FieldByName('SCALABLE').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('ENGINEERING').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('PRODUCTION').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('COST').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('FORMULA').Value = 1
    bom_line.Item[(m.xsatir)].FieldByName('ITEM_CODE').Value = Alltrim(CrRecetStok.wka_partno)
    bom_line.Item[(m.xsatir)].FieldByName('UNIT_SET_CODE').Value = Alltrim(CrRecetStok.birimset)
    bom_line.Item[(m.xsatir)].FieldByName('UNIT_CODE').Value = Alltrim(CrRecetStok.birim)
    bom_line.Item[(m.xsatir)].FieldByName('OP_CODE').Value = 'OPERASYON01'
    bom_line.Item[(m.xsatir)].FieldByName('OP_NAME').Value = 'OPERASYON01'
    Wait Window Timeout 2
Endscan
Select CrRecetStok  &&bunu bir daha unutma bu sana ders olsun.
Locate
LogoRecete.DataFields.FieldByName('MP_CODE').Value = Alltrim(CrRecetStok.malzemeadi)
LogoRecete.DataFields.FieldByName('ROUT_CODE').Value = 'OPERASYON01'
Bilmediğin Neyse Yanıldığındır.

19

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

hata select ile ilgiliyse logoyla ilgili bir problem yok demek ki. wait window'u niye koydun? büyük bir evrak olsa kaydetmesi çok uzun sürer. gerekli filan deme çünkü ben de lobjects kullanıyorum ve öyle birşey yok bende...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

20

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Wait wind kaldırdım.  Teşekkürler.

Bilmediğin Neyse Yanıldığındır.

21

Re: Logo tiger 2 için .net ten VFP ya kod çevirimi

Merhaba Arkadaşlar Benimde Bir Sorum Olacak ...........

Fatura Silerken İrsaliyeniin Silinmesini İstemiyorum.
Ancak Nasıl Yapılacağını Bulamadım.

Faturayı Aşağıdaki Kod İle Silince Fatura ile İrsaliye Siliniyor.

Bilgisi olan varsa yardımcı olursa sevinirim.
şimdiden teşekkürler..

Dim invoice As UnityObjects.Data
invoice = UApp.NewDataObject(UnityObjects.DataObjectType.doSalesInvoice)
Dim Myref As Integer = 5484
If invoice.Delete(Myref) Then
    MsgBox("Process Completed")
  Else
    MsgBox("Error ID : " + CStr(invoice.ErrorCode) + " - Str : " & invoice.ErrorDesc)
End If
  invoice = Nothing