7 Haziran 2012 Perşembe

T-SQL sorgusu yazarken kolon isimlerini sürükleyerek kolon isimlerini getirmek.


Mikro v14'te kullanılan güncel artikel listesi.

Cari hareketleri için kullanılan artikeller.
‘SOM' {Sorumluluk merkezi muhasebe kod artıkeli}
‘CGM' {Cari grup muh kod artikeli}
'CSM' {Cari sektör muh kodu}
'DBN' {Cari hareket database no}
'CKN' {Cari kart database no}
'SMM' {Online Sube muhasebe grup kodu}
‘BSM’ {hareket bağlı şube kodu}
'CMA' {Cari Muhasebe kod artikeli}
'YTM' {Yatırım teşvik kartı artikeli}
'YTY' {Yatırım teşvik yurtiçi veya yurtdışı kod artikeli. (Evrağın cinsine göre değişir)}
'YTS' {Yatırım teşvik detay tanımlarındaki artikel}
‘AMA’ {demirbaş kod artikeli}
'AFN’ {Aktif firma numarası }
'ASN' {Aktif şube numarası}
'PMA' {Proje kod artikeli}
‘CDN’ {cari döviz cins nosu}
‘AMY’ {aktif mali yıl}
‘OIV’ {Hizmet/stok ÖİV oranı}

Stok hareketleri için kullanılan artikeller.
‘IK' {İşemri varsa, işemrinin kodu}
‘IKN' {İşemri varsa, işemrinin db numarası}
'SKN' {Stok db no}
'DBN' {Stok hareket db no}
'PVO' {Stok perakende vergi yüzdesi}
‘TVO' {Stok toptan vergi yüzdesi}
'HVO' {Stok hareketin vergi yüzdesi}
‘SHD’ {stok hareket döviz no}
'DN' {depo no}
'DMK' {depo muh artikeli}
'DGK' {depo grup numarası}
'SMG' {Stok Muhasebe grup kodu}
'SMA' {Stok Muhasebe kod artikeli}
'CMA' {Cari Muhasebe kod artikeli}
‘CGM' {Cari grup muh kodu}
'CSM' {Cari sektör muh kodu}
'SMM' {Online Sube muhasebe grup kodu}
‘BSM’ {hareket bağlı şube kodu}
'SOM' {Hareketin Cari sorumluluk merkezi}
'SMS' {Hareketin Stok sorumluluk merkezi
'SSM' {Stok sektör muh kodu}
'YTM' {Yatırım teşvik kartı artikeli}
'YTY' {Yatırım teşvik yurtiçi veya yurtdışı kod artikeli. (Evrağın cinsine göre değişir)}
'YTS' {Yatırım teşvik detay tanımlarındaki artikel}
'AFN’ {Aktif firma numarası }
'ASN' {Aktif şube numarası}
'PMA' {Proje kod artikeli}
‘OIV’ {Stok ÖİV oranı}

Personel tahakkuklarında kullanılan artikeller.
‘DP’ {Personel departman muh.kodu}
'AY’ {İlgili tahakkuk ayı}
'SOM' {Srm.mrk. artikeli}
'PMA' {Proje artikeli}
‘SMM’ {Online şube kodu}
‘BSM’ {hareket bağlı şube kodu}
Sabit kıymet amortismanında kullanılan artikeller
'SOM' {Sabit kıymet srm.mrk artikeli}
'DBN' {Sabit kıymet db numarası}
‘AKN' {Sabit kıymet db kayıt no}
'SMM' {Online Sube muhasebe grup kodu}
‘BSM’ {hareket bağlı şube kodu}
'AMA' {Sabit kıymet Muhasebe kod artikeli}
'AFN’ {Aktif firma numarası }
'ASN' {Aktif şube numarası}
'PMA' {Sabit kıymet Proje kod artikeli}

Muhasebe fişindeki Shift+F1/F2 deki vergi kodlarının oluşmasında kullanılan artikeller (“%18 KDV için istediğim sayıda hesap tanıtamıyorum” diyen bürocular için yapılan düzenleme..)
'SOM' {Srm.mrk. artikeli}
'PMA' {Proje artikeli}
'AFN’ {Aktif firma numarası }
'ASN' {Aktif şube numarası}
'SMM' {Online Sube muhasebe grup kodu}
‘BSM’ {hareket bağlı şube kodu}
'SMS' {Srm.mrk. artikeli}
'DN' {depo no}
'DMK' {depo muh artikeli}
'DGK' {depo grup numarası}
'PVO' { vergi yüzdesi}
‘TVO' { vergi yüzdesi}
'HVO' { vergi yüzdesi}
'DBN' {db no}
‘AMY’ {aktif mali yıl}

Mikroshop Kullanılan Artikeller.
#SOM# : Depo sorumluluk merkezi
#DBN# : Sube No ( Dbid ) (Hatalı imiş, Aktif Sube No olarak gözüküyor, düzelteceğim )
#ASN# : Aktif Sube No
#SSM# : Sube Muhasebe Grup kodu
#CDN# : Müşteri Döviz cinsi 1
#CKK# : Müşteri kodu
#CKKS# : Müşteri kodunun son sayısal parçası ( 120.01.00039 => 00039 )

21 Şubat 2012 Salı

Mikro'da Cari Hesaplar ve Muhasebe Bakiyelerini Karşılaştırmak.

Bu sorgu yardımı ile cari hesap bakiyelerinin ve muhasebe bakiyelerinin karşılaştırması yapılabilir.


CREATE VIEW dbo.CARI_MUHASEBE_KARSILASTIRMA
AS 
SELECT TOP 100 PERCENT
     cari_kod AS [Cari Kodu]
    ,ISNULL(cari_unvan1,'') AS [Cari Ünvanı]
    ,cari_muh_kod AS [Cari Muhasebe Kodu]
    ,CASE WHEN muh_hesap_kod IS NULL THEN 'Yok' ELSE 'Var' END AS [Muhasebe Hesap Kodu]
    ,ISNULL(muh_hesap_isim1,'') AS [Muhasebe Hesap Ünvanı]
    ,ISNULL(SUM(dbo.fn_CariHesapAnaDovizBakiye('',0,cari_kod,'','',NULL,NULL,NULL,0)),'') AS [Cari Bakiye]
    ,ISNULL(SUM(dbo.fn_muhbakiye(muh_hesap_kod, dbo.fn_GetAktifFirma(), dbo.fn_GetAktifMaliYil(), 0)),'') AS [Muhasebe Bakiye]
FROM dbo.CARI_HESAPLAR WITH(NOLOCK)
    FULL OUTER JOIN dbo.MUHASEBE_HESAP_PLANI WITH(NOLOCK)
    ON (muh_hesap_kod=cari_muh_kod)
WHERE cari_muh_kod <> ''
GROUP BY cari_kod, cari_unvan1, cari_muh_kod, muh_hesap_kod, muh_hesap_isim1
GO

28 Aralık 2011 Çarşamba

Visual Studio 2010 C# 4.0 Örnekler


Visual Studio 2010 C# 4.0 örnekleri indirmek için;
http://code.msdn.microsoft.com/Visual-Studio-2010-Samples-31b491f3

SQL Server 2012 CONCAT Function hakkında – PRINT

SQL Server 2012 ile CONCAT functionu geliyor. String çerimlerinde fazladan dok yazmayı engelleyecek faydalı bir function.

PRINT ifadesini kullanarak ve doğrudan string ve datetime veri tür dönüşümlerinde aşağıdaki hatayı alırız.

PRINT 'Current Time ' + GETDATE()

 

SQL Server 2012 versiyon öncesinde çevirim işlemine tabi tutmak gerekiyordu.
PRINT 'Current Time ' + CAST(GETDATE() AS VARCHAR(20))

SQL Server 2012 versiyonu ile gelen CONCAT functionu ile daha hızlı kod yazmak mümkün olabilecek.
PRINT CONCAT('Current Time ', GETDATE())

Mikro v14 Eski tip formlarda SQL sorgu cümleleri yazmak

Mikro v14 ile form tasarım ekranlarına SQL sorgu cümleleri ile istenen alanların eklenebilmesi.

Evraklar üzerinde ALT+F tuşları ile ulaşılan form tasarım ekranlarımızın statik ve dinamik alanlarına SQL sorgusu ile istenilen bilginin yazdırılması sağlanmıştır. Böylece kullanıcılarımız herhangi bir müdahaleye gerek duymadan evrak dizaynlarında yazacakları sorgular ile erişebildikleri tüm alanlara ait bilgileri kullanarak döküm alabileceklerdir. Öncelikle belirtmek isteriz ki bu düzenleme sadece yeni tip form tasarım ekranlarımız için geçerlidir. Bu amaçla tasarım ekranının üst bölümünde yer alan parametreler menüsüne Dinamik sorgu düzenle” ve “Statik sorgu düzenle” seçenekleri eklenmiştir. Bu aşamada yapılması gereken hangi alana sorgu cümlesi ile bilgi yazılacak ise öncelikle ilgili seçeneğin seçilmesi, açılacak ekrana kullanılacak bilgiye ait sorgunun yazılmasıdır. Bu ekranlarda parametre olarak şimdilik @SNO ve @DNO alanları kullanılabilecektir.

@SNO  - Statik alandaki kaydın record numarası.
@DNO - Dinamik alandaki kaydın record numarasını ifade etmektedir.

Bu parametreler yazılan sorgunun where kısmında mutlaka kullanılmalı ve sorgunun doğru kayda ait olduğu garantilenmelidir.

Unutmamalısınız ki;

Statik sorgu, form dökülürken bir kez çalışmaktadır ve gelen bilgiler form üzerinde her yerde kullanılabilir. Dinamik sorgu ise her bir hareket satırı için çalışmaktadır.

Böylece kullanıcılarımız yazacakları sorgular sayesinde örneğin beden detaylı olarak takibini yaptıkları stokların, fatura evrakından girmiş oldukları beden detaylarının yazdırılmasını sağlayabileceklerdir.  Dinamik sorgu düzenle seçeneği ile sorgusunu yazıp data bağlantısını yapacak ve detay satırlarının hemen altında beden bilgilerinin yazılmasını sağlayabileceklerdir. Aynı şekilde faturadan girilmiş stokların ana sağlayıcısına ait cep numarasının dökülmesini de sağlayabileceklerdir. Bu örnekleri evrak bazında çoğaltabilmemiz mümkündür.

Şimdi bir örnekle ne yapmanız gerektiğini anlatalım.

Mesela faturanızdaki renk-beden detaylı stoklarınızın kırılım miktarlarını listelemek istediğinizi düşünelim. Bunun için,

∙    Yeni tip evrak tasarım formundaki Program menüsündeki “Dinamik sorgu düzenle” seçeneğini çalıştırarak karşınıza çıkan ekranda aşağıdaki sorguyu yazıp, form tasarımını kaydetmelisiniz.

SELECT * FROM dbo.BEDEN_HAREKETLERI WHERE BdnHar_DRECid_RECno=@DNO

∙    Daha sonra ekranınızın sol tarafında yer alan bölümden “Dinamik_sorgu_alanları” seçeneğini işaretleyip dizaynınızı oluşturmalısınız. Böylece Alt+K ile dökümü almak istediğinizde yazdığınız sorgunun dökümünü alabileceksiniz. Yani verdiğimiz örneğe göre faturadaki renk-beden detaylı stokların kırılımlarına göre miktarları dökülecektir.

Diğer tablolarla ilişki kurarak istediğiniz ortak verileri getirebilirsiniz.

SELECT MAX(dbo.fn_KurBul(cha_tarihi,sip_doviz_cinsi,1)) AS [Siparişin Faturalaşma Döviz Kuru]
FROM dbo.CARI_HESAP_HAREKETLERI WITH(NOLOCK)
    LEFT OUTER JOIN dbo.STOK_HAREKETLERI WITH(NOLOCK) ON (cha_RECid_DBCno=sth_fat_recid_dbcno AND cha_RECid_RECno=sth_fat_recid_recno)
    LEFT OUTER JOIN dbo.SIPARISLER WITH(NOLOCK) ON (sth_sip_recid_dbcno=sip_RECid_DBCno AND sth_sip_recid_recno=sip_RECid_RECno)
WHERE cha_RECno=@SNO

14 Aralık 2011 Çarşamba

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server.

SELECT *
FROM OPENROWSET('SQLOLEDB', 'Trusted_Connection=Yes;Server=(local);Database=MikroDB_V14_FIRMA', 'exec dbo.rp_PersonelCalismaListesi ''20111201'',''20111231''')
GO

SQLOLEDB aracılığı ile "SELECT FROM stored procedure" stored procedur çalıştırıyorsanız yada farklı bir yöntemle "SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource" mesaj alıyorsanız.

Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

--Gelişmiş seçenekleri tamamını göstermesi için;
EXEC sp_configure 'show advanced options', 0;
RECONFIGURE WITH OVERRIDE

EXEC sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE WITH OVERRIDE

--Tüm parametreleri görmek için;
EXEC sp_configure

7 Aralık 2011 Çarşamba

Mikro veritabanı üzerinde ihtiyaca göre triger kullanmak.

Mikro veritabanı üzerinde ihtiyaca göre triger kullanmak.
Microsoft SQL Server'da Mikro veritabanına eklenecek triger'ler sayesinde bazı işlemleri kolaylaştırabiliriz.

USE [MikroDB_V14_VERITABANI]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author      : Orhan ÖCAL
-- Create date : 07.12.2011
-- Description : Sipariş fişinde teslim türü boş geçilememesi için kontrol.
-- =============================================
CREATE TRIGGER [dbo].[SiparisTeslimTuruKontrol]
   ON [dbo].[SIPARISLER]
   AFTER INSERT, UPDATE
AS
BEGIN
     DECLARE @sip_teslimturu VARCHAR(25)
     set @sip_teslimturu =''

     SELECT @sip_teslimturu = sip_teslimturu
     FROM inserted
    
     IF @sip_teslimturu = ''
     BEGIN
         RAISERROR('TESLİM TÜRÜ GİRİLMELİDİR!', 16, 1)
         ROLLBACK
     RETURN
     END
END
GO

USE [MikroDB_V14_VERITABANI]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author      : Orhan ÖCAL
-- Create date : 07.12.2011
-- Description : CARI_HESAP_HAREKETLERI tablosunda kayıt sonrası Belge No alanına bilgi yazmak.
-- =============================================
ALTER TRIGGER [dbo].[FaturaOnayKontrol]
   ON [dbo].[CARI_HESAP_HAREKETLERI]
   AFTER INSERT, UPDATE
AS
BEGIN
     DECLARE @cha_RECno int
     SET @cha_RECno = 0

     SELECT @cha_RECno = cha_RECno
     FROM inserted
     WHERE cha_evrak_tip=0 AND cha_cinsi=6 --Toptan fatura
    
     UPDATE dbo.CARI_HESAP_HAREKETLERI
     SET cha_belge_no='ONAYLANMADI'
     WHERE cha_evrak_tip=0 AND cha_RECno=@cha_RECno
END

23 Kasım 2011 Çarşamba

Uzak Masa Üstü (Remote Desktop) Bağlantı Sorunu.

Uzak masa üstü (RDP) ile bağlanman istediğinizde bu mesajı alıyorsanız işte yapmanız gerekenler.

"Yerel bilgisayarın istemci lisansı yükseltilemediğinden veya yenilenemediğinden uzak oturumun bağlantısı kesildi."

Regedit :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\HardwareID] "ClientHWID"=hex:02,00,00,00,23,96,9a,dc,46,d6,42,77,d4,3b,22,83,99,45,fc,a6

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\Store]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSLicensing\Store\LICENSE000]

İçlerindeki bilgileri silmek sorunu çözecektir.