1 Son düzenleyen, mrduyar (09.01.2007 15:27:51)

Konu: pivot table

selamlar;
Aşağıdaki kod çalışıyor. Benim istediğim sadece linkteki resmdede göründüğü gibi en sol kolona "sfirma1"  i eklemek.
Ama bunu bir türlü başaramadım.
Şimdiden teşekkürler.

www.wagner.com.tr/downloads/istenilen.jpg
Data;
www.wagner.com.tr/downloads/sonuc.dbf

Visual Fox Pro
SELECT DIST wkakod FROM sonuc INTO CURSOR firmalar

SELECT DIST siptar FROM sonuc INTO CURSOR tarihler
dosyaa=SYS(3)
dosyaadi = SYS(2023)+ "\"+dosyaa
SELECT sonuc
EXPORT TO &dosyaadi TYPE XL5 &&to xls file
lcRows = LTRIM(STR(RECCOUNT('sonuc')+1)) && Including header line
lcCols = LTRIM(STR(FCOUNT('sonuc')))
lcsatir= RECCOUNT('firmalar')
oExcel = CREATEOBJECT("
Excel.application")
#DEFINE xlDatabase 1
#DEFINE xlRowField 1
#DEFINE xlColumnField 2
#DEFINE xlPageField 3
#DEFINE xlDataField 4
#DEFINE xlsum -4157
#DEFINE xlRangeAutoFormatColor2 37
#DEFINE xlRangeAutoFormatTable1 12
WITH oExcel
    .workbooks.OPEN(dosyaadi) && Open saved xls
    WITH .ActiveWorkBook
        .ActiveSheet.PivotTableWizard(xlDatabase, ;
            "
&dosyaa"+"!R1C1:R"+lcRows+"C"+lcCols,"", "PivotTable1") && Wizard sets Range and name
        WITH .ActiveSheet.PivotTables("
PivotTable1")
            .AddFields( "
wkakod", "siptar", "sfiyat" ) && Fields added
            .PivotFields("
wkakod").ORIENTATION = xlRowField   && Dates added as second row field
            .PivotFields("
sfiyat").ORIENTATION = xlDataField && Quantity set as data field
            .PivotFields("
sure").ORIENTATION = xlDataField && Quantity set as data field
            .PivotFields("
hamfiyat").ORIENTATION = xlDataField && Quantity set as data field
            IF THISFORM.Optiongroup1.VALUE=2
                .PivotFields("
Count of hamfiyat").FUNCTION= xlsum
            ENDIF
            IF THISFORM.Optiongroup1.VALUE=1 AND EMPTY(THISFORM.text6.VALUE)
                .PivotFields("
Count of Sure").FUNCTION= xlsum
                .PivotFields("
Count of hamfiyat").FUNCTION= xlsum
            ENDIF
        ENDWITH
        .ActiveSheet.RANGE("
A1").AutoFormat(xlRangeAutoFormatColor2)
        .ActiveSheet.RANGE("
A1").AutoFormat(xlRangeAutoFormatTable1)
 
    ENDWITH
    oExcel.COLUMNS("
A:BB").COLUMNWIDTH = 11
    oExcel.COLUMNS("
B:CC").NumberFormat = "##,###"
    oExcel.RANGE('A4:CC4').NumberFormat = "
MmmM-yy"
    oExcel.Cells(1,3).SELECT
    oExcel.ActiveCell.VALUE = "
TARİH-SAAT"
    oExcel.ActiveCell.FONT.bold = .T.
    oExcel.Cells(1,4).SELECT
    oExcel.ActiveCell.VALUE = "
'"+TTOC(DATETIME())
    oExcel.ActiveCell.FONT.bold = .T.
    oExcel.Cells(1,6).SELECT
    oExcel.ActiveCell.VALUE = "
Filitreler: "+DTOC(THISFORM.text7.VALUE)+' '+ALLTRIM(IIF(THISFORM.Optiongroup1.VALUE=1,',Satışlar',',Siparişler'))+',Ab Number '+THISFORM.text6.VALUE+' Olanlar.'
    oExcel.Cells(5,2).SELECT
    oExcel.ActiveCell.VALUE ='Tutar'
    oExcel.Cells(5,3).SELECT
    oExcel.ActiveCell.VALUE ='Saat'
    oExcel.Cells(5,4).SELECT
    oExcel.ActiveCell.VALUE ='Hammadde'
    *    oexcel.Range("
A1:D7").Select
    *   oexcel.Selection.BorderS(7).LineStyle = 1 &&taralı alana yaz cizgi çizer 6,7,8,9, kenar nolar.
.VISIBLE = .T.


fastxtab i da denedim istediğim sonuca onadada ulaşamııyorum.  fastxtab ta "data" sadece 1 tane secebiliyorum. ben (sfiyat,sure,hamfiyat) toplamlarını istiyorum.

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

2

Re: pivot table

Visual Fox Pro
.AddFields( "wkakod","siptar", "sfiyat" ) && Fields added

            .PivotFields("sfirma1").ORIENTATION = xlRowField   && Dates added as second row field
            .PivotFields("wkakod").ORIENTATION = xlRowField   && Dates added as second row field
 
            .PivotFields("sfiyat").ORIENTATION = xlDataField && Quantity set as data field

Ya da daha iyisi:

Visual Fox Pro
DIMENSION aRowFields[2]

        aRowFields[1] = "sfirma1"
        aRowFields[2] = "wkakod"
        .AddFields( @aRowFields,"siptar", "sfiyat" ) && Fields added
 
            .PivotFields("sfiyat").ORIENTATION = xlDataField && Quantity set as data field