hareketleri nasıl birleştirebilirim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
muhittin_turmus
Üye
Mesajlar: 27
Kayıt: 09 Ağu 2003 10:30
Konum: izmir

hareketleri nasıl birleştirebilirim

Mesaj gönderen muhittin_turmus »

(kullandığım veritabanı dbase)

yaptığım çalışmamda x table var bu table da müşteri kodu ve adı tutuluyor
y table da ise hareketleri tutuluyor.. içinde alım tarihi,stok adı vealınan miktar değişkeni var
ben x table ile y table bağladım index ile örneğin musteri kodunu getirince o müşteriye ait alınan stoğu ve miktarını gosteriyor.. diğer müşteriyide çağırınca onun bilgilerini ayrı gosteriyor.. (cari ve hareketi mantığı)

3. table ise z table lım. bu table ise sadece alım tarihi,stok adı ve bakiye stok miktarı var..

yapamadığım olay şu:aynı tarihte alınan z tabla ındaki stok bakiye kısmına o tarihte alınan a stoğunun toplam miktarını yazsın..

örneğin a müşterisinden b tarihli 3 adet mause aldım..b müşterisindende aynı tarihli 10 adet mause aldım istiyorumki z table na o tarihli aldığım stoğun toplam bakiyesini yazsın.. ve şimdiye kadar alınan a stoğunun miktarını yazsın mantığını çozemedim yardımcı olursanız sevinirim..
gençliğine güvenip
erken derken...
belki
elveda bile diyemessin
giderken...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba,
örneğin a müşterisinden b tarihli 3 adet mause aldım..b müşterisindende aynı tarihli 10 adet mause aldım istiyorumki z table na o tarihli aldığım stoğun toplam bakiyesini yazsın.. ve şimdiye kadar alınan a stoğunun miktarını yazsın mantığını çozemedim yardımcı olursanız sevinirim..
Örneğin a müşterisine 23/04/2004 tarihinde 3 adet mouse satışı oldu.
b Satıcısından da 23/04/2004 tarihinde 10 adet mouse aldık diyelim.
Stoğu bulmak için Giriş ten Çıkışı çıkartmalıyız Stoğumuz 7 şu anda.

Örneğimizi Genişletelim.

ilk önce Sql kullanarak 23/04/2004 tarihi ve tarihinden önce satılan Mouse ları bir toplamını alalım.

Kod: Tümünü seç

         Select SUM(CIKIS) From Tablo1 Where IslemTuru = 'SATIS' and Urun = 'MOUSE' and Tarih <= '23/04/2003' 
Burada yapmış olduğumuz SQL işlemi IslemTuru nun SATIS olması ve Urun'un Mouse olması son olarakta Tarih in 23 nisan 2004 ve o tarhiten küçük olan tarihlerdeki şart ları belirten bir sorgulamadır. SUM komutu ile de CIKIS ların toplamını alırız. Bu SQL işlemini bir değişkene attıktan sonra bu işlemi GIRIS olan bolum ile de yaparsan ardından GIRIS ten CIKIS'I cıkartırsan neticeye ulaşırsın.

Kolay Gelsin...
İyi Geceler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
muhittin_turmus
Üye
Mesajlar: 27
Kayıt: 09 Ağu 2003 10:30
Konum: izmir

huseyin abi sağolda ....

Mesaj gönderen muhittin_turmus »

abisağol yazmıssında anlamadım burda yanlızca giriş olcak çıkış yok
gençliğine güvenip
erken derken...
belki
elveda bile diyemessin
giderken...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba

Burada sadece giriş olacak diyorsan SQL 'i ni yazdığım gibi düzenleyebilirsin.

Kod: Tümünü seç

Select SUM(GIRIS) From Tablo1 Where IslemTuru = 'ALIS' and Urun = 'MOUSE' and Tarih = '23/04/2003' 
Tablolarının yapısı farklı olabilir. SQL kullanırsan buna benzer bir yapıyla ulaşabilirsin. Bunu SQL kodunu size fikir vermesi açısından yazdım. :wink:

Birde anlamadığınız noktalar nelerdir. Belki ben de anlamamış olabilirim :roll:

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
muhittin_turmus
Üye
Mesajlar: 27
Kayıt: 09 Ağu 2003 10:30
Konum: izmir

huseyın abi umarım anlarsın

Mesaj gönderen muhittin_turmus »

hüseyin abi yapmak istediğim şu inan ki çok basit ama ben,m bilgim zayıf olduğu için yapamıyorum
ve senin verdiğim kodlardan da birsey anlamadım ok komutu anladım ama nerde neyin içinde nasıl kullananacağını bilmiyorum..

abi ben şunu yaptım cari table ım var.bu taybelda adısoyadı,kodu var..
2.table ım alım tableı..bundada stok adı, miktarı ,bakiye ve ındx adında bir değişkenim var
şunu yapıyorum carıtable ile alım tablenı master sourc ile bağladım bir cariyi çağırdığım zaman o cariye ait
alım hareketleri geliyor...yani hangi cariye ne kaydettiysem o bilgiler geliyor...

ben kaydederkende table1.post metodunu kullanıyorum..her kaydet dediğimde alta ki grid ekranınabilgileri atıyor...

bende formun altına bir yere 2. grid ekranı koydum bu grid ekranını içindede alım tarihi ve bakiye var..

istiyorumki istenilen müşteriyi çağırıp alınan stoğu yazıp kaydet dediğin zaman nasıl alttaki grid ekranına bilgileri kaydediyor diğer 2.grid ekranınada o tarihte alınan bakiyeyi hesaplasın..
örneğin:a müşterisi 15.04.2004 tarihinde 3 adet kalem sattı. yine aynı tarihte aynı müşteri 2 saat sonra yine geldi 5 adet klaem daha sattı..
her alım yaptığımda bakiye otomatik olarak artsın.

abi yaptığım programda hep alım var satış yok sen sağol demişşin sql kullan demişşin su kodu vermişşin Select SUM(GIRIS) From Tablo1 Where IslemTuru = 'ALIS' and Urun = 'MOUSE' and Tarih = '23/04/2003'
mesala burda sum(giriş) demişşin bu giris ne tanımlamamı değişkenmi,bu direk boyle yazsan hata verir zanedersem

işlem turu alış demişşin burdaki alısı direkt boyle yazarsam hata vermezmi yanı bunları anlamadım zan edersem bunları tanımlamamk lazım nasıl nerde tanımlayacağız..,ne olarak tanımlamamız gerekiyo
eğer dataylı anlatırsan çok sevinirim benim 1 kere mantığını anlamam yeterli olur inan ..yardımcı olursanız sevinirim..çok şıkıstım..
gençliğine güvenip
erken derken...
belki
elveda bile diyemessin
giderken...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

abi yaptığım programda hep alım var satış yok sen sağol demişşin sql kullan demişşin su kodu vermişşin Select SUM(GIRIS) From Tablo1 Where IslemTuru = 'ALIS' and Urun = 'MOUSE' and Tarih = '23/04/2003'
mesala burda sum(giriş) demişşin bu giris ne tanımlamamı değişkenmi,bu direk boyle yazsan hata verir zanedersem

işlem turu alış demişşin burdaki alısı direkt boyle yazarsam hata vermezmi yanı bunları anlamadım zan edersem bunları tanımlamamk lazım nasıl nerde tanımlayacağız..,ne olarak tanımlamamız gerekiyo
eğer dataylı anlatırsan çok sevinirim benim 1 kere mantığını anlamam yeterli olur inan ..yardımcı olursanız sevinirim..çok şıkıstım..
Tekrar Merhaba,
Bakın Yazdığım SQL kodudur. Bu SQL kodunu Query bileşenleri ile kullanabilirsin.

SUM(GIRIS) ibaresi GIRIS alanlarının toplamıdır. Giriş alanı Tablonda Stok miktarları ilgilendiren kısımdır. Burayı kendi tablonda ki alan ismine göre düzenleyebilrsin.

SQL bilgin zayıfsa ipucu kısmında detaylı derecede örnekler. Var.

Bu SQL işlemleri datandaki tablolarla alakalıdır. Dışardan sorgulama işlemi yazdığın zaman değişken kullanmalısın. Örnek olarak tarih kısmını değişken olarak tanımlayabilirsin.

SQL işlemlerinde veriye erişmek için direkt olarak dataset in Field'ından yararlanabilirsin.

Kod: Tümünü seç


var 
  StokToplam : Integer;
Begin
  StokToplam := Query1.Fields[0].AsInteger;  
  ShowMessage(IntTostr(StokToplam)); 
End;

Eğer verdiğim bilgiler yeterli olmuyorsa Programını ve veritabanını sıkıştır gönder eksik olan kısmını ben tamamlayıp sana gönderirim.

İyi Geceler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
muhittin_turmus
Üye
Mesajlar: 27
Kayıt: 09 Ağu 2003 10:30
Konum: izmir

bakiyeyi toplama(hüseyin abi)

Mesaj gönderen muhittin_turmus »

huseyin abi yaptım olmadı program hata veriyor ben sana basit bir örnek program yolluyorum her kayıtta bakiyeyide yazsın onu yapamadım bakarsansevinirim abi yolladığım örnekte cariyi kaydediyon sonra o cariyi çağırıp hareketine mal alımı işliyon ama her işlediğinde bakiyeyi toplasında yazsın sen onu sql den yapamadım olmadı programı mail attım
gençliğine güvenip
erken derken...
belki
elveda bile diyemessin
giderken...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşım Olayını hallettim mail adresine postaladım. Yalnız Sql in Sum olayını kullanamadım Dbase Tablolarında problem olabilir. (DBase tecrübem yok)

After Post olayına yazdığım kod çalışıyor.

Kod: Tümünü seç

procedure TForm2.Table2AfterPost(DataSet: TDataSet);
var
    Bak:Integer;
begin
    Bak:= 0;
    with Query1 Do
    Begin
        Close;
        Sql.Clear;
        Sql.Add('Select * From Har Where MAL = :Mal');
        Params[0].AsString := DBEdit3.Text;
        Open;
    End;

    if Query1.RecordCount > 0 Then
    Begin
        Query1.First;
        While not Query1.eof Do
        Begin
            Bak := Bak + Query1MIK.AsInteger;
            Query1.Next;
        End;
        with Query1 do
        Begin
            Close;
            Sql.Clear;
            Sql.Add('Update HAR Set TOPLAM = '''+IntToStr(Bak)+'''Where Mal = :Mal1');
            Params[0].AsString := DBEdit3.Text;
            ExecSql;
        End;
    End;
    Table2.Refresh;
end;
Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşlar araştırdım BDE de Sql in SUM ve MAX vb..komutlarında problem oluyormuş bu BDE den kaynaklanıyormuş.

Bu problemi aşabilen varmı veya deniyen Merak ettim de :)

İyi Çalışmalar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Öyle bir sorunla hiç karşılaşmadım. Nasıl bir hata alıyorsun?
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Recep Abi

Database DBase
Editör Delphi6
Kullanılan Bileşen Query

Çok basit bir Sql uygulamasın

Select Sum(MIK) from HAR.DBF

Hata mesajı ise
Query1:Field 'MAL' not Found.

Teşekkürler.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

SqlExplorer ile denedin mi?
ben bir ornek yaptım sorun yok
yani alanı topluypr guzelcene
muhtemelen senin query bileseninde alanlar bolumunde kalmıs bir sey bu 'MAL'
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam SqlExplorer de denedim. Problem yok tahminim Query bileşeninde problem olabilir. Güncellemesini nasıl yapıp deneyebilirim acaba ?

Teşekkür Ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

valla Query bilesen kodlarından kaynaklanmıyordur buyuk ihtimalle
yani boyle bir olay olsa farkedilmeden cozulurdu
ben d5 te query bileseni ile denemedim ama vaktim olursa deneyip bildiririm
eger delphi sp yuklemissen guncelleme icin yeterli
mesela bende sp2 yuklu daha baska yok sanırım d5 icin
kolay gelsin
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hocam Delphi 6 orjinal halini kullanıyorum hiçbir güncelleme yapmadım sadece IBX bileşenlerimi güncellemiştim. SP güncellemesi Delphi 6 içinde geçerli olabilirmi?

Teşekkür Ederim...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla