51

Re: Grid de cell merge gibi birsey

Böyle bir şey mi?

Visual Fox Pro
CLOSE DATABASES 

create cursor crsmakina ( kod c(6) )
insert into crsmakina values ("PR04")
insert into crsmakina values ("PR05")
insert into crsmakina values ("PR06")
insert into crsmakina values ("PR07")
insert into crsmakina values ("PR08")
 
CREATE CURSOR crsfisgun ( kodm c(10),emno c(6),kod c(16),miktaru n(8),A1 N(6),A2 N(6),B1 N(6),B2 N(6),C1 N(8),C2 N(8))
INSERT INTO crsfisgun VALUES ("PR04","301594","4020000403",60000,5000,0,0,0,0,0)
INSERT INTO crsfisgun VALUES ("PR04",    "301603","TŞ 2425 RÇN",119500,0,0    ,35600,0,40000,0)
INSERT INTO crsfisgun VALUES ("PR04",    "301586","TŞ 2423 RPK",18500,0    ,0,0,    0,0,0)
INSERT INTO crsfisgun VALUES ("PR04",    "301559","C2013",    47500,    0    ,0,0,    0,0,0)
INSERT INTO crsfisgun VALUES ("PR05" ,"301546","TEK 2863 RP"    ,775000 ,    200000 ,    200000,75000,0,0,0)
INSERT INTO crsfisgun VALUES ("PR05" ,"301597","TB 2206.70 RP",42250     ,    0 ,    0 ,0,0,0,0)
INSERT INTO crsfisgun VALUES ("PR05" ,"301610","TEK 2862 RP"    ,12800     ,    0,    0 ,0,0,0,0)
INSERT INTO crsfisgun VALUES ("PR06" , "301579" ,    "TE 2324 DPK"    ,130000 ,    60000 ,0 ,0,0,0,0)
INSERT INTO crsfisgun VALUES ("PR06" , "301394" ,    "TD 2122.80 RP"    ,100000 ,    0 ,0 ,0,0,60000,4000)
INSERT INTO crsfisgun VALUES ("PR06" , "301578" ,    "TE 2318 DPK"    ,154700 ,    0 ,    0 ,0,0,0,23000)
INSERT INTO crsfisgun VALUES ("PR06" , "301600" ,    "TÖZ 2045 DFBK"    ,32000     ,    0 ,    0 ,0,0,0,0)
INSERT INTO crsfisgun VALUES ("PR07" , "301509" ,    "61710200-02"    ,809600 ,    36000,0 ,63000,38100,66000,32000)
INSERT INTO crsfisgun VALUES ("PR08" , "301543" ,    "MT 2111.80 RP"    ,1218000 ,252000,28000,238000,112000,56000,168000)
INSERT INTO crsfisgun VALUES ("PR08" , "301607" ,    "MS 2111.80 RP"    ,210000 ,    0     ,    0,0,0,0,0)
 
CREATE CURSOR crsemir (emno c(6),miktar n(8))
INSERT INTO crsemir VALUES ("301594",100000)
INSERT INTO crsemir VALUES ("301603",250000)
INSERT INTO crsemir VALUES ("301586",100000)
INSERT INTO crsemir VALUES ("301559",100000)
INSERT INTO crsemir VALUES ("301546",90000)
INSERT INTO crsemir VALUES ("301597",120000)
INSERT INTO crsemir VALUES ("301610",120000)
INSERT INTO crsemir VALUES ("301579",500000)
INSERT INTO crsemir VALUES ("301394",300000)
INSERT INTO crsemir VALUES ("301578",170000)
INSERT INTO crsemir VALUES ("301600",150000)
INSERT INTO crsemir VALUES ("301509",30000)
INSERT INTO crsemir VALUES ("301543",85000)
INSERT INTO crsemir VALUES ("301607",100000)
INSERT INTO crsemir VALUES ("301608",100000)
 
create cursor crskart (Kod c(16),tanim C(40))
INSERT INTO crskart values ("TD 2122.80 RP","AAA")
INSERT INTO crskart values ("61710200-02",    "BBB")
INSERT INTO crskart values ("MT 2111.80 RP","CCC")
INSERT INTO crskart values ("TB 2201.65 RP","DDD")
INSERT INTO crskart values ("TEK 2863 RP",    "EEE")
INSERT INTO crskart values ("TK 2805 RP",    "FFF")
INSERT INTO crskart values ("C2013","GGG")
INSERT INTO crskart values ("TE 2318 DPK",    "HHHH")
INSERT INTO crskart values ("TE 2324 DPK",    "KKKK")
INSERT INTO crskart values ("TE 2341 RP",    "LLLLL")
INSERT INTO crskart values ("TŞ 2423 RPK",    "MMMM")
INSERT INTO crskart values ("TYE 2705 RPK",    "NNNN")
INSERT INTO crskart values ("4020000403",    "ZZZZZ")
INSERT INTO crskart values ("TB 2206.70 RP","TYTYTY")
INSERT INTO crskart values ("TD 2107.50 RP","ERTERT")
INSERT INTO crskart values ("TÖZ 2045 DFBK","YUTRWE")
INSERT INTO crskart values ("TŞ 2425 RÇN",    "HUNURTE")
INSERT INTO crskart values ("MS 2111.80 RP","MNKUM")
INSERT INTO crskart values ("MT 2117.80 RP","DTRUS")
INSERT INTO crskart values ("TEK 2862 RP",    "EKREST")
 
Select ;
    CrsMakina.kod As Kod,;
    CrsFisgun.emno,;
    CrsFisgun.kod As KodCrsFisGun,;
    CrsKart.TANIM,;
    CrsEmir.Miktar, ;
    CrsFisgun.miktaru,;
    CrsFisgun.A1,;
    CrsFisgun.A2,;
    CrsFisgun.B1,;
    CrsFisgun.B2,;
    CrsFisgun.C1,;
    CrsFisgun.C2 ;
From  CrsMakina ;
    INNER Join CrsFisgun     On  CrsMakina.kod = CrsFisgun.kodm ;
    INNER Join CrsEmir         On CrsFisgun.emno = CrsEmir.emno ;
    INNER Join CrsKart         On CrsFisgun.kod = CrsKart.kod ;
    order By CrsMakina.kod
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ü

52

Re: Grid de cell merge gibi birsey

evet, ekrana gelecek olanda makina kodu aynı olanlar birleştirilmiş olacak

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

53

Re: Grid de cell merge gibi birsey

"Makina kodu aynı olanları birleştirmek" ne demek? Bir tarifi var mı?

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ü

54

Re: Grid de cell merge gibi birsey

bumu aradigin

Visual Fox Pro
SET ENGINEBEHAVIOR 70

 
    Select ;
    CrsMakina.kod As Kod,;
    CrsFisgun.emno,;
    CrsFisgun.kod As KodCrsFisGun,;
    CrsKart.TANIM,;
    SUM(CrsEmir.Miktar) as miktar, ;
    CrsFisgun.miktaru,;
    CrsFisgun.A1,;
    CrsFisgun.A2,;
    CrsFisgun.B1,;
    CrsFisgun.B2,;
    CrsFisgun.C1,;
    CrsFisgun.C2 ;
From  CrsMakina ;
    INNER Join CrsFisgun     On  CrsMakina.kod = CrsFisgun.kodm ;
    INNER Join CrsEmir         On CrsFisgun.emno = CrsEmir.emno ;
    INNER Join CrsKart         On CrsFisgun.kod = CrsKart.kod ;
    order By CrsMakina.kod;
    group by 1 && CrsMakina.kod

Not : aslinda set enginebehavior 70 yapmadan yapmak daha dogru ama kısa yoldan yakalamak istedigin sonuc o mudur diye yazdim

http://www.soykansoft.com/images/twitter.jpghttp://www.soykansoft.com/images/wp.jpg

55 Son düzenleyen, ugurlu2001 (28.09.2010 17:17:22)

Re: Grid de cell merge gibi birsey

Tarık;

Bana mail ile yolladığın Excel dosyasına baktım. VFP de yada Herhangi bir SQL de Bu görüntü formunu SQL olarak alamazsın. En azından ben öyle biliyorum.

Zaten yolladığın HFlex grid örneğinde istediğini yapmışsın.

Ayrıca Excel'e aynı bana yolladığın formatta data transferi yapabilirsin. Forumda bu konuda oldukça örnek var

Ayrıca internette "Pivot Samples " olarakda aratabilirsin.

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ü

56 Son düzenleyen, ugurlu2001 (28.09.2010 17:18:28)

Re: Grid de cell merge gibi birsey

Aşağıdaki kodu kendine göre uyarlayabilirsin mesela :

Visual Fox Pro
*!* Excel Pivot sample

*!* Author:Cetin Basoz
*#include 'xlConstants.h'
TEXT TO m.lcSQL NOSHOW TEXTMERGE PRETEXT 15
SELECT RTRIM(emp.first_name) + ' ' +RTRIM(emp.last_name) as SalesMan,
    cs.company, pr.prod_name as ProductName, oi.quantity, YEAR(od.order_date) as yearOrdered
  FROM  customer cs
  INNER JOIN orders od on cs.cust_id = od.cust_id
  inner join employee emp on od.emp_id = emp.emp_id
  INNER JOIN orditems oi on od.order_id = oi.order_id
  INNER JOIN products pr on oi.product_id = pr.product_id
ENDTEXT
 
#Define xlSum  -4157
#Define xlDataField 4
#Define xlExternal 2
 
lcPageList = 'Company,YearOrdered'
lcRowList = 'ProductName'
lcColList = 'SalesMan'
lcDataField = 'Quantity'
 
Alines(laRowFields,m.lcRowList,.T.,",")
Alines(laColFields,m.lcColList,.T.,",")
Alines(laPageFields,m.lcPageList,.T.,",")
 
lcCaption   = 'Quantity Sold'
lnFunction  = xlSum
 
lcConnStr = 'Provider=VFPOLEDB;Data Source='+_samples+'Data\Testdata.dbc'
Local oExcel As 'Excel.Application'
oExcel = Createobject('Excel.Application')
With oExcel
  .Visible = .T.
  .Workbooks.Add
  *-- Destination of the pivottable inside Excel
  .ActiveWorkbook.ActiveSheet.Name = 'Product Sales'
  With .ActiveWorkbook.ActiveSheet
    oDestination = .Range('A1')
    With oExcel.ActiveWorkbook.PivotCaches.Add(xlExternal)
      .Connection  = 'OLEDB;'+m.lcConnStr
      .CommandType = 2 && xlCmdSQL
      .CommandText = m.lcSQL
      .CreatePivotTable(oDestination, 'PivotTable')
    Endwith
 
    With .PivotTables("PivotTable")
      Do Case
        Case !Empty(m.lcRowList) And !Empty(m.lcColList) And !Empty(m.lcPageList)
          .AddFields(@laRowFields, @laColFields, @laPageFields)
        Case !Empty(m.lcRowList) And !Empty(m.lcColList)
          .AddFields(@laRowFields, @laColFields)
        Case !Empty(m.lcRowList) And !Empty(m.lcPageList)
          .AddFields(@laRowFields, , @laPageFields)
        Case !Empty(m.lcRowList)
          .AddFields(@laRowFields)
        Case !Empty(m.lcColList) And !Empty(m.lcPageList)
          .AddFields(, @laColFields, @laPageFields)
        Case !Empty(m.lcColList)
          .AddFields(, @laColFields)
        Case !Empty(m.lcPageList)
          .AddFields(, , @laPageFields)
      Endcase
      .PivotFields(lcDataField).Orientation = xlDataField
      With .PivotFields('Sum of '+m.lcDataField)
        .Caption  = m.lcCaption
        .Function = m.lnFunction
      Endwith
    Endwith
    .UsedRange.Columns.AutoFit
  Endwith
  If Type('.ActiveWorkbook.ShowPivotTableFieldList') = 'L'
    .ActiveWorkbook.ShowPivotTableFieldList = .F.
  Endif
Endwith
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ü

57 Son düzenleyen, tarik (28.09.2010 21:12:59)

Re: Grid de cell merge gibi birsey

resim olarak eklemeyi hallettim sanırım,yapmak istediğim gridin en başındaki kod sütunundakinden başka  aynı değerlere sahip olan satırların tek bir satır gibi görünmesini istemiyorum gridin klavuz çizgileri devam etsin ayrı satır oldukları belli olsun,sadece en baştaki sütün hariç. birde bu numeric alanların formatı ve ,satırların renklendirmesini nasıl yaparım
örneğin PR04 kod numarası ile ilişkili olan satırlar yeşil,PR05 mavi,PR06 yeşil,PR07 ler mavi gibi


http://img8.imageshack.us/img8/7070/mergei.jpg
By tariketi at 2010-09-28

Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

58

Re: Grid de cell merge gibi birsey

.MergeCol(ix) = .t. bu satırı  .Mergecol(1) = .t.  olarak değiştirince sadece 1.sütunda aynı değere sahip olan satırları birleştirdi
şimdi renklendirmeyi yapmaya çalışıyorum,aşağıdaki kodu denedim ama sadece 1.sütunun rengini düzenliyor aynı renk düzeninin diğer sütunlarada devam etmesini nasıl sağlarım

Visual Fox Pro
FOR ix = .FixedRows TO .Rows-1

            .Row = m.ix
            .RowSel = m.ix
            DO case
            CASE ix%6=0
            lnColor = RGB(255,128,128)
            CASE ix%5=0
            lnColor = RGB(255,255,0)
            CASE ix%4=0
            lnColor = RGB(0,255,255)
            CASE ix%3=0
            lnColor = RGB(192,192,0)
            CASE ix%2=0
            lnColor = RGB(0,128,255)
            OTHERWISE
            lnColor = RGB(192,192,192)
            ENDCASE
            .CellBackColor = m.lnColor
        ENDFOR
Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

59

Re: Grid de cell merge gibi birsey

Visual Fox Pro
Thisform.Grid.SetAll("dynamicforecolor", "IIF(borc>0, RGB(0,0,255), RGB(0,0,0))")
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ü

60

Re: Grid de cell merge gibi birsey

uğur o değil istediğim, o yazdığım örnekteki kodun benzeri olmalı diye düşünüyorum
bu yazdığını daha önce kullanmıştım tek sütünda renklendirme yapıyor

ugurlu2001 yazdı:
Visual Fox Pro
Thisform.Grid.SetAll("dynamicforecolor", "IIF(borc>0, RGB(0,0,255), RGB(0,0,0))")
Kader, beyaz kağıda sütle yazılmış yazı
Elindeyse beyazdan, gel de sıyır beyazı. (NFK)

61

Re: Grid de cell merge gibi birsey

Birden fazla sütün için kullanabilirsin, hatta belli bir sütunda belli bir belli koşula uyan hücreleride sınırlayabilirsin.


Visual Fox Pro
Thisform.Grid.Column1.SetAll("dynamicforecolor", "IIF(borc>0, RGB(0,0,255), RGB(0,0,0))") gibi

Thisform.Grid.Column2.SetAll("dynamicforecolor", "IIF(borc>0, RGB(0,0,255), RGB(0,0,0))") gibi
Visual Fox Pro
 
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ü