Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Report Output To Excel.... Is this possible? If so best
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire de rapports & Rapports
Divers
Thread ID:
00459677
Message ID:
00460287
Vues:
26
>Hi Ed!
>
>Report Ouput to Excel is possible... You have to create a pre-format template in excel...
>

Yes, I know that - It's much slower than DataToClip followed by opening a worksheet, positioning and pasting, by lots - the COM overhead for 45K x 6 is big.

>***** I want to share my previous program...
>***** This source code is extracted from my previous program..
>***** I usually include an excel report to my client
>DIMENSION arrField(1)
>tmpsheet = GETOBJECT('','excel.sheet')
>XLApp = tmpsheet.APPLICATION
>XLApp.VISIBLE = .T.
>XLApp.WorkBooks.Open(sys(5)+curdir()+"fieldcash.xls")
>cFile = "FCBR "+;
> CMONTH(CTOD("01/" + RIGHT(reconcil.monthyear,2) + "/"+LEFT(reconcil.monthyear,4) ))+" "+;
> LEFT( reconcil.monthyear,4)+".XLS"
>XLApp.ActiveWorkbook.SaveAs(cFile)
>XLSheet = XLApp.ActiveSheet
>i = 0
>i = i + 1
>XLSheet.Cells(i,1).VALUE = "INTERNATIONAL ORGANIZATION FOR MIGRATION (IOM)"
>i = i + 1
>XLSheet.Cells(i,1).VALUE = "Mobile Information Referral and Community Assistance Service (MIRCAS)"
>i = i + 1
>XLSheet.Cells(i,1).VALUE = SETUP.header1
>i = i + 1
>XLSheet.Cells(i,1).VALUE = SETUP.header2
>i = i + 1
>XLSheet.Cells(i,1).VALUE = SETUP.header3
>i = i + 1
>i = i + 1
>i = i + 1
>XLSheet.Cells(i,1).VALUE = "FIELD CASH/BANK REPORT"
>i = i + 1
>i = i + 1
>XLSheet.Cells(i,2).VALUE = ": "+LEFT( reconcil.monthyear,4)
>XLSheet.Cells(i,6).VALUE = ": "+SETUP.CURRENCY
>XLSheet.Cells(i,10).VALUE = ": "+SETUP.SETUP
>i = i + 1
>XLSheet.Cells(i,2).VALUE = ": "+CMONTH(CTOD("01/" + RIGHT(reconcil.monthyear,2) + "/"+LEFT(reconcil.monthyear,4) ))
>XLSheet.Cells(i,6).VALUE = ": "+SETUP.bank
>XLSheet.Cells(i,10).VALUE = ": "+SETUP.misscode
>i = i + 2
>i = i + 2
>XLSheet.Cells(i,1).VALUE = LEFT(reconcil.monthyear,4)
>XLSheet.Cells(i,11).VALUE = ALLT(STR(reconcil.begbalance,13,2))
>THISFORM.curmoyr = reconcil.monthyear
>THISFORM.CURDATE = CTOD("01/"+RIGHT(THISFORM.curmoyr,2)+"/"+LEFT(THISFORM.curmoyr,4))
>tempdate = THISFORM.CURDATE+31
>curdate2 = CTOD("01/"+STR(MONTH(tempdate),2,0)+"/"+STR(YEAR(tempdate),4,0))-1
>SELECT VOUCHER
>WAIT WINDOW "Please wait..." NOWAIT
>SELECT reconcil
>SET FILTER TO reconcil.monthyear=THISFORM.curmoyr
>GO TOP
>************
>SELECT VOUCHER2
>SET FILTER TO prv_date>=reconcil.BEGDATE .AND. prv_date <= reconcil.ENDDATE
>GO TOP
>SELECT VOUCHER
>SET SKIP TO
>SET FILTER TO prv_date>=reconcil.BEGDATE .AND. prv_date <= reconcil.ENDDATE
>GO TOP
>IF !EOF()
> REPLACE VOUCHER.fund_bal WITH (reconcil.begbalance-VOUCHER.AMOUNT)
> nAmount = VOUCHER.fund_bal
> SKIP 1
> DO WHILE !EOF()
> REPLACE VOUCHER.fund_bal WITH (nAmount-VOUCHER.AMOUNT)
> nAmount = VOUCHER.fund_bal
> SKIP 1
> ENDDO
> GO TOP
> SELECT VOUCHER
> SET SKIP TO VOUCHER2
> GO TOP
> WAIT WINDOW "Done ... " NOWAIT
> THISFORM.HIDE
>ENDIF
>IF EOF()
> =MESSAGEBOX("No available record for this period!", 48, nACCIOMver)
>ELSE
> SELECT VOUCHER
> GO TOP
> cur_code = ""
> isfirst = .T.
> nAmt_Debit = 0
> nAmt_Credit = 0
> nPay_Debit = 0
> nPay_Credit = 0
> nReceipt = 0
>
> ntAmt_Debit = 0
> ntAmt_Credit = 0
> ntPay_Debit = 0
> ntPay_Credit = 0
> ntReceipt = 0
> WAIT WINDOW "Starting Excel..." NOWAIT
> GO TOP
> i = i + 1
> SCAN
> IF cur_code<>VOUCHER.prv_no
> i = i + 1
> cCell = "A"+ALLT(STR(i))
> XLApp.Range(cCell).Select
> XLApp.Selection.EntireRow.Insert
>*********************************
> XLSheet.Cells(i,1).VALUE = PADL(ALLT(STR(DAY(VOUCHER.prv_date),2,0)),2,"0")+"-"+SUBSTR(CMONTH(VOUCHER.prv_date),1,3)
> XLSheet.Cells(i,2).VALUE = PROPER(MLINE(VOUCHER.PAIDTO_RECFR,1))
> XLSheet.Cells(i,3).VALUE = PROPER(MLINE(VOUCHER.PARTICULARS,1))
> XLSheet.Cells(i,4).VALUE = VOUCHER.prv_no
> XLSheet.Cells(i,5).VALUE = VOUCHER.CHECK_NO
> nAmt_Debit = IIF(VOUCHER.AMOUNT<0, -1*VOUCHER.AMOUNT, 0)
> nAmt_Credit = IIF(VOUCHER.AMOUNT>0, VOUCHER.AMOUNT, 0)
>
> ntAmt_Debit = ntAmt_Debit + nAmt_Debit
> ntAmt_Credit = ntAmt_Credit + nAmt_Credit
> XLSheet.Cells(i,6).VALUE = IIF(VOUCHER.AMOUNT<0, -1*VOUCHER.AMOUNT, "")
> XLSheet.Cells(i,7).VALUE = IIF(VOUCHER.AMOUNT>0, VOUCHER.AMOUNT, "")
> XLSheet.Cells(i,11).VALUE = IIF(VOUCHER.fund_bal<>0,VOUCHER.fund_bal,"")
> nFund_balance = VOUCHER.fund_bal
> ENDIF
> i = i + 1
> cCell = "A"+ALLT(STR(i))
> XLApp.Range(cCell).Select
> XLApp.Selection.EntireRow.Insert
> nPay_Debit = IIF(VOUCHER2.AMT_DEBIT<>0,STR(VOUCHER2.AMT_DEBIT,13,2),"")
> nPay_Credit = IIF(VOUCHER2.amt_credit<>0,IIF(VOUCHER2.acct_code<>"1-553",STR(VOUCHER2.amt_credit,13,2),""),"")
> nReceipt = IIF(VOUCHER2.amt_credit<>0,IIF(VOUCHER2.acct_code="1-553",STR(VOUCHER2.amt_credit,13,2),""),"")
>
> ntPay_Debit = ntPay_Debit + VAL(nPay_Debit)
> ntPay_Credit = ntPay_Credit + VAL(nPay_Credit)
> ntReceipt = ntReceipt + VAL(nReceipt)
>
> XLSheet.Cells(i,8).VALUE = IIF(VOUCHER2.AMT_DEBIT<>0,VOUCHER2.AMT_DEBIT,"")
> XLSheet.Cells(i,9).VALUE = IIF(VOUCHER2.amt_credit<>0,IIF(VOUCHER2.acct_code<>"1-553",STR(VOUCHER2.amt_credit,13,2),""),"")
> XLSheet.Cells(i,10).VALUE = IIF(VOUCHER2.amt_credit<>0,IIF(VOUCHER2.acct_code="1-553",VOUCHER2.amt_credit,""),"")
> XLSheet.Cells(i,12).VALUE = VOUCHER2.acct_code
> XLSheet.Cells(i,13).VALUE = IIF(VOUCHER2.budget_line<>0,ALLT(STR(VOUCHER2.budget_line,5,2)),"")
> XLSheet.Cells(i,14).VALUE = PROPER(VOUCHER2.INV_REF_NO)
> cur_code = VOUCHER.prv_no
> SELECT VOUCHER
> ENDSCAN
> XLSheet.Cells(i+2,11).VALUE = nFund_balance
> i = i + 4
> WAIT WINDOW "Trend Data Retrieved" TIMEOUT 2
> SET DEFA TO (SYS(2003))
>ENDIF
>SELECT reconcil
>SET FILTER TO
>SELECT VOUCHER2
>SET FILTER TO
>SELECT VOUCHER
>SET FILTER TO
>CLOSE TABLES
>THISFORM.RELEASE
EMail: EdR@edrauh.com
"See, the sun is going down..."
"No, the horizon is moving up!"
- Firesign Theater


NT and Win2K FAQ .. cWashington WSH/ADSI/WMI site
MS WSH site ........... WSH FAQ Site
Wrox Press .............. Win32 Scripting Journal
eSolutions Services, LLC

The Surgeon General has determined that prolonged exposure to the Windows Script Host may be addictive to laboratory mice and codemonkeys
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform