Friday, December 31, 2010

C sharp Türkçe karakter kontrol metodu

Eğer veritabanına Türkçe karakter yazmak istemiyorsanız, aşağıdaki metodu kullanabilirsiniz.

Kullanımı:
_Name += "MAIL_METIN,";
_Values += "'" + Tools.TurkceKarakterleriKaldir(HTMLCode) + "',"; 
public static string TurkceKarakterleriKaldir(string EskiMetin)
{
string YeniMetin = "";
string TurkceKarakterler="şŞçÇüÜİıöÖğĞ";
string YeniKarakterler ="sScCuUIioOgG";
for (int i = 0; i < EskiMetin.Length; i++)
{
bool Varmi = false;
for (int k = 0; k < TurkceKarakterler.Length; k++)
{
if (EskiMetin[i] == TurkceKarakterler[k])
{
YeniMetin += YeniKarakterler[k];
Varmi = true;
break;
}
}
if (!Varmi)
{
YeniMetin += EskiMetin[i];
}
}
return YeniMetin;
}
 

Friday, September 3, 2010

Tiger'da Cari Hesaba Muhasebe hesap kodunu otomatik olarak aktarmak

Tiger'da Cari Hesaba Muhasebe hesap kodunu otomatik olarak aktarmak için aşağıdaki SQL scriptini çalıştırabilirsiniz.



DECLARE @carilref INT
DECLARE @carimuhlref INT
DECLARE @muhlref INT
DECLARE @carikodu varchar(50)
DECLARE @definiti varchar(50)
DECLARE @muhasebekodu varchar(50)

DECLARE @carimuhlref2 INT
DECLARE @muhlref2 INT
DECLARE @lastCarimuhSeq INT

DECLARE @eksikkayitsayisi INT



DECLARE processes CURSOR FOR
SELECT CARI.LOGICALREF,CARI.CODE AS CARI_KODU,CARIMUH.LOGICALREF AS CARIMUH_LREF,MUH.CODE AS MUHASEBE_KODU FROM LG_107_CLCARD CARI WITH (NOLOCK)
LEFT OUTER JOIN LG_107_CRDACREF CARIMUH WITH (NOLOCK) ON CARIMUH.CARDREF=CARI.LOGICALREF AND CARIMUH.TRCODE = 5
LEFT OUTER JOIN LG_107_EMUHACC MUH WITH (NOLOCK) ON CARIMUH.ACCOUNTREF=MUH.LOGICALREF
WHERE (MUH.CODE<>CARI.CODE OR MUH.CODE IS NULL) and SUBSTRING(CARI.CODE,5,2) = '47' AND CARI.CARDTYPE<>22 and CARI.CODE NOT LIKE '25%' ORDER BY CARI.CODE

OPEN processes
FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
WHILE @@FETCH_STATUS = 0
BEGIN
--ilk olarak LG_107_CRDACREF tablosunda kayıt var mı kontrol edilecek. eğer varsa ve muhasebe kodu yok veya hatalıysa muhasebe tablosundan
--kayıt aktarılacak.
set @muhlref2 = 0

SELECT @muhlref2=LOGICALREF FROM LG_107_EMUHACC where CODE = @carikodu
if @muhlref2 = 0
begin
insert into #EksikKayitTableGintem (Firma,CariKodu) values (107,@carikodu)
end
else
begin
if @carimuhlref IS NOT NULL
begin

UPDATE [LG_107_CRDACREF]
SET
[TRCODE] = 5
,[ACCOUNTREF] = @muhlref2
WHERE [LOGICALREF] = @carimuhlref
print 'update' + cast(@carimuhlref as varchar(20))
end
ELSE
BEGIN
print 'insert' + cast(@carimuhlref as varchar(20))
SELECT @lastCarimuhSeq = LASTLREF from LG_107_CRDACREFSEQ where ID=1
UPDATE LG_107_CRDACREFSEQ SET LASTLREF = @lastCarimuhSeq + 1 WHERE ID=1
INSERT INTO [LG_107_CRDACREF]
([LOGICALREF],[TRCODE],[CARDREF],[TYP],[ACCOUNTREF],[CENTERREF],[SITEID],[RECSTATUS],[ORGLOGICREF],[PROJECTREF])
VALUES (@lastCarimuhSeq ,5 ,@carilref,1 ,@muhlref2 ,1 ,0,0,0 ,0)
END
end

--PRINT cast(@muhlref2 as varchar(20)) + '-' + @carikodu


FETCH NEXT FROM processes
INTO @carilref,@carikodu,@carimuhlref,@muhasebekodu
END
CLOSE processes
DEALLOCATE processes

Thursday, March 25, 2010

How to check if column exists in SQL Server table

CREATE FUNCTION ColumnExists(@TableName varchar(100), @ColumnName varchar(100))
RETURNS varchar(1) AS
BEGIN
DECLARE @Result varchar(1);
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = @TableName AND COLUMN_NAME = @ColumnName)
BEGIN
SET @Result = 'T'
END
ELSE
BEGIN
SET @Result = 'F'
END
RETURN @Result;
END
GO

GRANT EXECUTE ON [ColumnExists] TO [whoever]
GO

USAGE:
IF ColumnExists('LG_107_SPECODES', 'MARKA') = 'F'
BEGIN
ALTER TABLE LG_107_SPECODES
ADD MARKA varChar(50) NOT NULL
END
GO

Thursday, March 11, 2010

Tiger2 Bordro Asgari Geçim İndirimi Hatası

Tiger2 Bordro programında Asgari Geçim İndirimde çıkan sorun için Aile bireyleri tablosunu kontrol ederek FAMILYHIST tablosuna kayıt açan SQL scripti.
Not: Bu scripti çalıştırmadan önce FAMILYHIST tablosunun yedeğini alınız.
Örnek yedek alma komutu SELECT * INTO LH_001_FAMILYHIST_20100310 FROM LH_001_FAMILYHIST


--Personel'e ait aile bireyleri girişini düzenler
DECLARE @FamilyLref INT
DECLARE @PersonLref INT
DECLARE @Support INT
DECLARE @LastSeq INT
DECLARE @IsAvail INT
DECLARE @Donem DATETIME
SET @Donem='20100201'
DECLARE processes CURSOR FOR
SELECT
dbo.LH_001_FAMILY.LREF AS FAMILY_LREF,
dbo.LH_001_PERSON.LREF AS PERSON_LREF,
dbo.LH_001_FAMILY.SUPPORTED AS SUPPORT
FROM dbo.LH_001_PERIDINF RIGHT OUTER JOIN
dbo.LH_001_FAMILY ON dbo.LH_001_PERIDINF.LREF = dbo.LH_001_FAMILY.IDREF RIGHT OUTER JOIN
dbo.LH_001_PERSON ON dbo.LH_001_FAMILY.PERREF = dbo.LH_001_PERSON.LREF
WHERE dbo.LH_001_PERSON.FIRMNR = 382
OPEN processes
FETCH NEXT FROM processes
INTO @FamilyLref,@PersonLref,@Support
WHILE @@FETCH_STATUS = 0
BEGIN
SET @IsAvail = 0
SELECT @IsAvail = LREF FROM [LH_001_FAMILYHIST] where [CARDREF] = @FamilyLref AND [BEGDATE] = @Donem
IF @IsAvail = 0
BEGIN
print @FamilyLref
SELECT @LastSeq = LASTLREF from LH_001_FAMILYHISTSEQ where ID=1
UPDATE dbo.LH_001_FAMILYHISTSEQ SET LASTLREF = @LastSeq + 1 WHERE ID=1
INSERT INTO [bordro_db].[dbo].[LH_001_FAMILYHIST] ([LREF],[BEGDATE],[ENDDATE],[CARDREF],[SUPPORTED],[INJUREDEGREE],[MINWGDISCSTAT],[ORGLOGICREF],[RECSTATUS],[SITEID])
VALUES(@LastSeq,@Donem,NULL,@FamilyLref,@Support,0,1,0,0,0)
END
FETCH NEXT FROM processes
INTO @FamilyLref,@PersonLref,@Support
END
CLOSE processes
DEALLOCATE processes

Wednesday, February 17, 2010

LVF dosyası nasıl açılır?

LVF dosyası Logo tarafından üretilen programlarda oluşturulmuş rapor çıktısı formatıdır. Bu dosyayı açmak için Logo tarafından verilen kurulum CD'sinde Report Viewer programını bulabilirsiniz.

Elinizde CD yoksa aşağıdaki linkten gerekli Report Viewer programını indirip LVF dosyasını açabilirsiniz.

Programlar:
Report Viewer
LVF Linki:
ftp://download.logo.com.tr/Windows/TOOLS/tools/ReportViewer.rar

Örnek Program Görünümü:

Monday, February 15, 2010

Tiger/Unity'deki tarih bilgisinin çevrim işlemleri

Tiger/Unity veritabanında integer olarak tutulan tarih bilgisininin datetime'a çeviren fonksiyon.

CREATE FUNCTION fn_LogoDatetoSystemDate (@DEGER INT)
RETURNS datetime

AS
BEGIN
DECLARE @GUN VARCHAR(2), @AY VARCHAR(2), @YIL VARCHAR(4)

DECLARE @SONUC datetime
SELECT
@GUN=CAST((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/256*256)) AS VARCHAR(3))
SELECT
@AY=CAST(((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(65536*(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/65536)))-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)-(CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/256*256)))/256 AS VARCHAR(3))
SELECT
@YIL=CAST((CONVERT(INT,CONVERT(BINARY,@DEGER,2),0)/65536) AS VARCHAR(6))
SET @GUN=CASE WHEN LEN(@GUN)<2 THEN '0'+@GUN ELSE @GUN END
SET @AY=CASE WHEN LEN(@AY)<2 THEN '0'+@AY ELSE @AY END
SONUC:
IF @DEGER<>0
BEGIN
SET @SONUC=CONVERT(DATETIME, @YIL + '-' + @AY + '-' + @GUN + ' 00:00:00', 102)
END
IF @DEGER=0
SET @SONUC= NULL
RETURN @SONUC
END


Tiger/Unity için tarih bilgisinini datetime'a integer olarak çeviren fonksiyon.

CREATE FUNCTION fn_LogoTimetoSystemTime (@GELENDEGER INT)
RETURNS VARCHAR(8)
AS

BEGIN
DECLARE @SAAT VARCHAR(2), @DAKIKA VARCHAR(2), @SANIYE VARCHAR(2), @SONUC VARCHAR(8)
SELECT
@SAAT=RTRIM(CONVERT(char(20), ROUND(@GELENDEGER / 16777216, 2))),
@DAKIKA=RTRIM(CONVERT(char(20), ROUND((@GELENDEGER - ROUND(@GELENDEGER / 16777216, 2) * 16777216)/ 65536, 2))),
@SANIYE=RTRIM(CONVERT(char(20), ROUND((@GELENDEGER - ROUND(@GELENDEGER / 16777216, 2) * 16777216 - ROUND((@GELENDEGER - ROUND(@GELENDEGER / 16777216, 2) * 16777216) / 65536, 2) * 65536) / 256, 2)))
SET @SAAT=CASE WHEN LEN(@SAAT)=1 THEN '0'+@SAAT ELSE @SAAT END
SET @DAKIKA=CASE WHEN LEN(@DAKIKA)=1 THEN '0'+@DAKIKA ELSE @DAKIKA END
SET @SANIYE=CASE WHEN LEN(@SANIYE)=1 THEN '0'+@SANIYE ELSE @SANIYE END
SET @SONUC= @SAAT + ':' +@DAKIKA + ':' + @SANIYE
RETURN @SONUC
END

Wednesday, February 10, 2010

Logo Tiger'da Muhasebe Kodu olmayan cari kartların kontrolü

SELECT LOGICALREF,CODE, DEFINITION_, CITY FROM LG_106_CLCARD WHERE
(LOGICALREF NOT IN (SELECT CARDREF FROM LG_106_CRDACREF WHERE (LG_106_CRDACREF.TRCODE = 5)))
ORDER BY DEFINITION_

Logo Tiger'da firma dönem bilgilerini listelemek

SELECT FRM.NR AS FIRMA_NO,FRM.NAME AS FIRMA_ADI
DONEM.NR AS DONEM_NO FROM L_CAPIFIRM AS FRM
INNER JOIN L_CAPIPERIOD AS DONEM ON FRM.NR=DONEM.FIRMNR
order by FRM.NR,DONEM.NR

Left Join with Distinct Statement in T-SQL

Problem:

SQL Left Join, it return multiple rows of the same items. I tried DISTINCT but that didnt work because its on Left Join. So my question how to add DISTINCT to Left Join?

Solution:
SELECT *
FROM dbo.LG_106_10_STLINE (NOLOCK) INNER JOIN
dbo.LG_106_ITEMS (NOLOCK) ON dbo.LG_106_10_STLINE.STOCKREF = dbo.LG_106_ITEMS.LOGICALREF LEFT OUTER JOIN
dbo.LG_106_10_STFICHE (NOLOCK) ON dbo.LG_106_10_STLINE.STFICHEREF = dbo.LG_106_10_STFICHE.LOGICALREF LEFT OUTER JOIN
dbo.LG_106_CLCARD (NOLOCK) ON dbo.LG_106_10_STFICHE.CLIENTREF = dbo.LG_106_CLCARD.LOGICALREF LEFT OUTER JOIN
dbo.L_CAPIDIV (NOLOCK) ON dbo.LG_106_10_STFICHE.BRANCH = dbo.L_CAPIDIV.NR LEFT OUTER JOIN
dbo.LG_106_SPECODES (nolock) LG_106_SPECODES_1
--This is I Changed
(select DISTINCT dbo.LG_106_SPECODES.SPECODE,dbo.LG_106_SPECODES.DEFINITION_ FROM dbo.LG_106_SPECODES (NOLOCK)) LG_106_SPECODES_1 ON dbo.LG_106_ITEMS.STGRPCODE = LG_106_SPECODES_1.SPECODE LEFT OUTER JOIN
dbo.L_TRADGRP (NOLOCK) ON dbo.LG_106_10_STFICHE.TRADINGGRP = dbo.L_TRADGRP.GCODE LEFT OUTER JOIN
dbo.LG_106_SPECODES LG_106_SPECODES_2 (NOLOCK) ON dbo.LG_106_10_STLINE.DELVRYCODE = LG_106_SPECODES_2.SPECODE LEFT OUTER JOIN
LG_106_PROJECT (NOLOCK) ON LG_106_10_STLINE.PROJECTREF = LG_106_PROJECT.LOGICALREF LEFT OUTER JOIN
dbo.LG_106_10_INVOICE (NOLOCK) ON dbo.LG_106_10_STFICHE.INVOICEREF = dbo.LG_106_10_INVOICE.LOGICALREF
WHERE (dbo.LG_106_10_STFICHE.TRCODE IN (12)) AND
(LG_106_SPECODES_2.SPECODETYPE IS NULL OR LG_106_SPECODES_2.SPECODETYPE = 0)
AND (dbo.L_CAPIDIV.FIRMNR = 106)

Wednesday, January 20, 2010

I want to get ASCII value of string in C#, what can I do?

Sample Code:

string value = "9quali52ty3";

// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);

Result:

57 113 117 97 108 105 53 50 116 121 51

Monday, January 18, 2010

Logo Unity/Tiger veritabanı tabloları listesi

LG_XXX_PRCLIST Alış/Satış fiyatları

LG_XXX_ASCOND Alış/Satış koşulları

LG_XXX_TOOLREQ Araç ihtiyacları


LG_XXX_XX_SRVNUMS Aylık hizmet toplamları

LG_XXX_XX_SRVTOT Aylık hizmet alış/satış toplamları

LG_XXX_XX_BNTOTFIL Banka aylık toplamları

LG_XXX_XX_BNFICHE Banka fişleri

LG_XXX_XX_BNFLINE Banka hareketleri

LG_XXX_BANKACC Banka hesapları

LG_XXX_BNCARD Bankalar

LG_XXX_LNGEXCSETS Bazı kayıtların diğer dillerdeki açıklamaları

LG_XXX_UNITSETF Birim setleri

LG_XXX_UNITSETC Birim setleri arası çevrim katsayıları

LG_XXX_UNITSETL Birimler

LG_XXX_XX_CLTOTFIL Cari hesap aylık toplamları

LG_XXX_XX_CLFICHE Cari hesap fişeri

LG_XXX_XX_CLFLINE Cari hesap hareketleri

LG_XXX_CLINTEL Cari hesap istihbarat bilgileri

LG_XXX_CLCARD Cari hesap kartları

LG_XXX_XX_CLRNUMS Cari hesap risk tabloları

LG_XXX_EMPGROUP Çalışan grubu

LG_XXX_LABORREQ Çalışan ihtiyaçları

LG_XXX_EMGRPASS Çalışan-Grup ataması

LG_XXX_EMPLOYEE Çalışanlar

LG_XXX_XX_CSROLL Çek/Senet bordroları

LG_XXX_XX_CSTRANS Çek/Senet hareketleri

LG_XXX_XX_CSCARD Çek/Senet kartları

LG_XXX_DISTTEMP Dağıtım şablonları

LG_XXX_DISTLINE Dağıtım şablonu satırları

LG_XXX_XX_PERDOC Döküman bilgileri (örnek malzeme resmi)

LG_XXX_XX_FOLDER Döküman katalog bilgileri (watermark varsa)

LG_XXX_FIRMDOC Döküman katalog girişi(watermark)

L_LDOCNUM Döküman numaralama şablonları

LG_XXX_ACCCODES Entegrasyon bağlantı kodları

LG_XXX_XX_INVOICE Faturalar

LG_XXX_XX_TRANSAC Firma dönem bilgileri

L_CDBTMP Form boyutları

L_DAILYEXCHANGES Günlük döviz kurları

LG_XXX_XX_STINVTOT Günlük malzeme ambar toplamları

LG_XXX_SRVCARD Hizmet kartları

LG_XXX_SRVUNITA Hizmet kaydı-Birim ataması

LG_XXX_DECARDS İndirim/Masraf kartları

LG_XXX_DISPLINE İş emirleri

LG_XXX_WSATTASG İş ist.-Özellik ataması

LG_XXX_WSATTVAS İş ist.-Özellik değeri ataması

LG_XXX_WORKSTAT İş istasyonları

LG_XXX_WSGRPF İş istasyonu grupları

LG_XXX_WSCHVAL İş istasyonu özellik değerleri

LG_XXX_WSCHCODE İş istasyonu özellikleri

LG_XXX_WSGRPASS İş istasyonu-grup ataması

LG_XXX_PEGGING İşlem bağlantıları (üretim emri, sipariş)

LG_XXX_QCLVAL Kalite kontrol değerleri

LG_XXX_QASGN Kalite kontrol hareketi- Kalite kontrol ataması

LG_XXX_XX_SLQCASGN Kalite kontrol hareketleri

LG_XXX_QCSLINE Kalite kontrol satırları

LG_XXX_QCSET Kalite kontrol setleri

LG_XXX_STCOMPLN Karma koli satırları

LG_XXX_CRDACREF Kart-Muhasebe kodları

LG_XXX_XX_CSHTOTS Kasa aylık toplamları

LG_XXX_XX_KSLINES Kasa işlemleri

LG_XXX_KSCARD Kasalar

L_RPFILTSXXX Kaydedilen rapor filtreleri

L_RPLAYS_XXX Kaydedilen rapor tasarımları

LG_XXX_OCCUPATN Kaynak kullanımları (üretim)

L_GOUSERS Kullanıcılar

L_CAPIDEF Kuruluş bilgileri (ambar, işyer, fabrika vb.)

LG_XXX_LOGREP LOG (izleme) kaydı

LG_XXX_XX_PRDCOST Maliyet dönem kapama kayıtları

LG_XXX_XX_STINVENS Malzeme alış/satış aylık toplamları

LG_XXX_ITEMSUBS Malzeme alternatifleri

LG_XXX_XX_STLINE Malzeme hareketleri

LG_XXX_CHARASGN Malzeme özellik ataması

LG_XXX_XX_SERILOTN Malzeme seri lot no. Bilgileri

LG_XXX_INVDEF Malzeme-Ambar bilgileri

LG_XXX_ITMUNITA Malzeme-Birim ataması

LG_XXX_ITMFACTP Malzeme-Fabrika bilgileri

LG_XXX_ITMWSDEF Malzeme-İş ist. bilgileri

LG_XXX_ITMWSTOT Malzeme-İş ist. Toplamları (günlük)

LG_XXX_ITEMS Malzemeler

LG_XXX_ITMCLSAS Malzeme-Malzeme sınıfı ataması

LG_XXX_SELCHVAL Malzeme-Özellik değerleri

LG_XXX_SUPPASGN Malzeme-Tedarikçi ataması

LG_XXX_ITMBOMAS Malzeme-Ürecetesi ataması

LG_XXX_EMCENTER Masraf malzemeleri

LG_XXX_XX_EMUHTOT Muhasebe aylık toplamları

LG_XXX_XX_EMFICHE Muhasebe fişleri

LG_XXX_XX_EMFLINE Muhasebe hareketleri

LG_XXX_EMUHACC Muhasebe hesapları

LG_XXX_ENGCLINE Mühendislik değişikliği işlemi

LG_XXX_XX_PRODUCER Müstahsil faturası

L_NET Network kontrolü (kimlerin hangi firma ve dönemle çalıştığı)

LG_XXX_OPRTREQ Operasyon ihtiyacları

LG_XXX_OPERTION Operasyonlar

LG_XXX_LNOPASGN Operasyon-Malzeme ilişkisi

LG_XXX_OPATTASG Operasyon-Özellik ataması

LG_XXX_PRVOPASG Öceki operasyon ilişkileri

LG_XXX_PAYLINES Ödeme plan satırları

LG_XXX_PAYPLANS Ödeme planları

LG_XXX_XX_PAYTRANS Ödeme/Tahsilat hareketleri

LG_XXX_SPECODES Özel kodlar

LG_XXX_CHARVAL Özellik değerleri

LG_XXX_CHARCODE Özellik kodları

L_POSTCODE Posta kodları

LG_XXX_PRCARDS Promosyon kartları

LG_XXX_COPRDBOM Reçete-ek ürün ataması

LG_XXX_FAREGIST Sabit kıymet kayıtları

LG_XXX_FAYEAR Sabit kıymet yıllık kaydı

LG_XXX_TARGETS Satış elemanı hareketleri

LG_XXX_SLSCLREL Satış elemanı-Cari hesap ilişkisi

LG_XXX_SLSMAN Satış elemanları

LG_XXX_ROUTETRS Satış rota satırları

LG_XXX_ROUTE Satış yönetim raporları

LG_XXX_XX_SLTRANS Seri/Lot hareketleri

L_SHPAGENT Sevkiyat firmaları

L_SHPTYPES Sevkiyat türleri

LG_XXX_XX_ORFICHE Sipariş fişleri

LG_XXX_XX_ORFLINE Sipariş hareketleri

LG_XXX_XX_STFICHE Stok fişleri

LG_XXX_LOCATION Stok yerleri

L_CITY Şehirler

L_TRADGRP Ticari işlem grupları

LG_XXX_TRGPAR Trigger parametreleri

L_COUNTRY Ülkeler

LG_XXX_PRODORD Üretim emirleri

LG_XXX_RTNGLINE Üretim rota stırları

LG_XXX_ROUTING Üretim rotaları

LG_XXX_BOMREVSN Ürün reçete revizyonları

LG_XXX_BOMLINE Ürün reçete satırları

LG_XXX_BOMASTER Ürün reçeteleri

How can I get the Selected Item for LookupEdit in C#?

try this:
this.bankaSubeleriIdLookUpEdit.Properties.GetDataSourceValue("IBANNo", this.bankaSubeleriIdLookUpEdit.ItemIndex).ToString();