Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Excel
Message
From
24/06/1999 16:01:32
 
 
To
24/06/1999 15:33:37
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Re: Excel
Miscellaneous
Thread ID:
00233182
Message ID:
00233686
Views:
30
Here is a sample foxpro code I have been working on the table structure looks like this.

Let me know what you think
Darren Mc Dowell

table Name: sd_main

sd_num (N)(10)(primary key)
sd_title (C)(30)
sd_date (D)
sd_level (N)(2)
sd_sisp98 (N)(6)
sd_nns (N)(6)
sd_appr (N)(6)
sd_ptd (N)(6)
sd_proj (N)(6)
sd_pstart (D)
sd_astart (D)
sd_pend (D)
sd_aend (D)
sd_req (D)
sd_des (D)
sd_cons (D)
sd_accept (D)
sd_imp (D)

The VFP Code looks like this. (It is not fine tuned yet, i am still working on it.)

lnProd = "2"
llOk = .T.
llError = .F.


Do WHILE llOk
lnConnect1 = SQLCONNECT('Emri')

IF lnConnect1 = -1
llError = .T.
llOk = .F.
ENDIF

* Select Product
lnTest = 0
lcSql = "Select * From sd_main where sd_prod = " + lnProd + " Order By sd_num"
DO WHILE lnTest = 0
lnTest = SQLEXEC(lnConnect1,lcSql,'Prod')
ENDDO

IF lnTest = -1
llError = .T.
llOk = .F.
ENDIF

loExcel = CreateObject('Excel.Application')
loExcel.Workbooks.Add
loBook = loExcel.ActiveWorkBook
loSheet = loExcel.ActiveSheet
loExcel.Visible = .T.

* Set My Column Width
loSheet.Columns(1).ColumnWidth = .85
loSheet.Columns(2).ColumnWidth = 35
loSheet.Columns(3).ColumnWidth = 1
loSheet.Columns(4).ColumnWidth = 8
loSheet.Columns(5).ColumnWidth = 8
loSheet.Columns(6).ColumnWidth = 8
loSheet.Columns(7).ColumnWidth = 8
loSheet.Columns(8).ColumnWidth = 8
loSheet.Columns(9).ColumnWidth = 7
loSheet.Columns(10).ColumnWidth = 7
loSheet.Columns(11).ColumnWidth = 7
loSheet.Columns(12).ColumnWidth = 7
loSheet.Columns(13).ColumnWidth = 7
loSheet.Columns(14).ColumnWidth = 7
loSheet.Columns(15).ColumnWidth = 7
loSheet.Columns(16).ColumnWidth = 7
loSheet.Columns(17).ColumnWidth = 7

* Row 1
loSheet.Range('A1').Value = "NASCO System Development Overview"
loSheet.Range("A1","Q1").Merge
loSheet.Range("A1:Q1").Borders(-4107).LineStyle = 9
loSheet.Range("A1").Font.Size = 14
loSheet.Range("A1").Font.Bold = .T.
loSheet.Range("A1,Q1").Font.Name = "Arial"
loSheet.Range("A1,Q1").HorizontalAlignment = -4108

* Row 2
loSheet.Range('A2').Value = ALLTRIM(STR(DAY(CTOD(ALLTRIM(STR(MONTH(DATE()))) + "/01/" + ALLTRIM(STR(YEAR(DATE())))) - 1))) + "-" + CMONTH(DATE()-30) + "-" + ALLTRIM(STR(Year(DATE())))
loSheet.Range("A2","Q2").Merge
loSheet.Range("A2").Font.Size = 14
loSheet.Range("A2").Font.Bold = .T.
loSheet.Range("A2,Q2").Font.Name = "Arial"
loSheet.Range("A2,Q2").HorizontalAlignment = -4108

* Row 3

loSheet.Rows(3).RowHeight = 9.75

* Draw My Lines
loSheet.Range("A3:Q3").Borders(-4107).LineStyle = 1
loSheet.Range("C4:C6").Borders(-4152).LineStyle = 1
loSheet.Range("I4:I6").Borders(-4152).LineStyle = 1
loSheet.Range("Q4:Q6").Borders(-4152).LineStyle = 1
loSheet.Range("A6:Q6").Borders(-4107).LineStyle = 1

* Row 4
loSheet.Range("A4:Q4").Font.Size = 10
loSheet.Range("A4:Q4").Font.Bold = .T.
loSheet.Range("A4:Q4").Font.Name = "Arial"

loSheet.Range("D4:H4").Merge
loSheet.Range("D4").Value = "Capital Budget ($,000)"
loSheet.Range("D4,H4").HorizontalAlignment = -4108
loSheet.Range('D4','H4').interior.Color = RGB(200,200,200)

loSheet.Range("I4:L4").Merge
loSheet.Range("I4").Value = "Timeline (MM/YY)"
loSheet.Range("I4,L4").HorizontalAlignment = -4108
loSheet.Range('I4','L4').interior.Color = RGB(200,200,200)

loSheet.Range("M4:Q4").Merge
loSheet.Range("M4").Value = "Current State (MM/YY)"
loSheet.Range("M4,Q4").HorizontalAlignment = -4108
loSheet.Range('M4','Q4').interior.Color = RGB(200,200,200)

* Row 5
loSheet.Range("A5:Q6").Font.Size = 9
loSheet.Range("A5:Q6").Font.Bold = .T.
loSheet.Range("A5:Q6").Font.Name = "Arial"
loSheet.Range("A5:Q6").HorizontalAlignment = -4108

loSheet.Range("F5").Value = "Approved"
loSheet.Range("G5").Value = "Project"
loSheet.Range("I5").Value = "Planned"
loSheet.Range("J5").Value = "Actual"
loSheet.Range("K5").Value = "Planned"
loSheet.Range("L5").Value = "Actual"
loSheet.Range("P5").Value = "Accept"

* Row 6

loSheet.Range("B6").Value = "Project System Initiative"
loSheet.Range("D6").Value = "SISP 98"
loSheet.Range("E6").Value = "99 $'s"
loSheet.Range("F6").Value = "Projects"
loSheet.Range("G6").Value = "To-Date"
loSheet.Range("H6").Value = "Projected"
loSheet.Range("I6").Value = "Start"
loSheet.Range("J6").Value = "Start"
loSheet.Range("K6").Value = "End"
loSheet.Range("L6").Value = "End"
loSheet.Range("M6").Value = "Req."
loSheet.Range("N6").Value = "Design"
loSheet.Range("O6").Value = "Construct"
loSheet.Range("P6").Value = "Test"
loSheet.Range("Q6").Value = "Impl."

X = 8
Select Prod
SCAN
lcB = "B" + ALLTRIM(STR(X))
lcD = "D" + ALLTRIM(STR(X))
lcE = "E" + ALLTRIM(STR(X))
lcF = "F" + ALLTRIM(STR(X))
lcG = "G" + ALLTRIM(STR(X))
lcH = "H" + ALLTRIM(STR(X))
lcI = "I" + ALLTRIM(STR(X))
lcJ = "J" + ALLTRIM(STR(X))
lcK = "K" + ALLTRIM(STR(X))
lcL = "L" + ALLTRIM(STR(X))
lcM = "M" + ALLTRIM(STR(X))
lcN = "N" + ALLTRIM(STR(X))
lcO = "O" + ALLTRIM(STR(X))
lcP = "P" + ALLTRIM(STR(X))
lcQ = "Q" + ALLTRIM(STR(X))

IF Prod.sd_level = 1
loSheet.Range(lcB).font.Bold = .T.
loSheet.Range(lcB).Value = IIF(ISNULL(Prod.sd_title),'',ALLTRIM(Prod.sd_title))
ELSE
loSheet.Range(lcB).Value = IIF(ISNULL(Prod.sd_title),'',SPACE(Prod.sd_level * 2) + ALLTRIM(Prod.sd_title))
ENDIF
loSheet.Range(lcD).Value = IIF(ISNULL(Prod.sd_sisp98),'',Prod.sd_sisp98)
loSheet.Range(lcE).Value = IIF(ISNULL(Prod.sd_nns),'',Prod.sd_nns)
loSheet.Range(lcF).Value = IIF(ISNULL(Prod.sd_appr),'',Prod.sd_appr)
loSheet.Range(lcG).Value = IIF(ISNULL(Prod.sd_ptd),'',Prod.sd_ptd)
loSheet.Range(lcH).Value = IIF(ISNULL(Prod.sd_proj),'',Prod.sd_proj)
loSheet.Range(lcI).Value = IIF(ISNULL(Prod.sd_pstart),'',Prod.sd_pstart)
loSheet.Range(lcJ).Value = IIF(ISNULL(Prod.sd_astart),'',Prod.sd_astart)
loSheet.Range(lcK).Value = IIF(ISNULL(Prod.sd_pend),'',Prod.sd_pend)
loSheet.Range(lcL).Value = IIF(ISNULL(Prod.sd_aend),'',Prod.sd_aend)
loSheet.Range(lcM).Value = IIF(ISNULL(Prod.sd_req),'',Prod.sd_req)
loSheet.Range(lcN).Value = IIF(ISNULL(Prod.sd_des),'',Prod.sd_des)
loSheet.Range(lcO).Value = IIF(ISNULL(Prod.sd_cons),'',Prod.sd_cons)
loSheet.Range(lcP).Value = IIF(ISNULL(Prod.sd_accept),'',Prod.sd_accept)
loSheet.Range(lcQ).Value = IIF(ISNULL(Prod.sd_impl),'',Prod.sd_impl)
X = X + 1
ENDSCAN

* Last Row
lcB = "B" + ALLTRIM(STR(X))
lcD = "D" + ALLTRIM(STR(X))
lcE = "E" + ALLTRIM(STR(X))
lcF = "F" + ALLTRIM(STR(X))
lcG = "G" + ALLTRIM(STR(X))
lcH = "H" + ALLTRIM(STR(X))

loSheet.Range(lcB + ":" + lcH).font.Bold = .T.

lcRangeD = "D8:D" + ALLTRIM(STR(X-1))
lcRangeE = "E8:E" + ALLTRIM(STR(X-1))
lcRangeF = "F8:F" + ALLTRIM(STR(X-1))
lcRangeG = "G8:G" + ALLTRIM(STR(X-1))
lcRangeH = "H8:H" + ALLTRIM(STR(X-1))

loSheet.Range(lcB).Font.Bold = .T.
loSheet.Range(lcB).Font.Italic = .T.
loSheet.Range(lcB).Value = "SubTotal"
loSheet.Range(lcB).HorizontalAlignment = -4108

loSheet.Range(lcD).Value = "=SUM(" + lcRangeD + ")"
loSheet.Range(lcE).Value = "=SUM(" + lcRangeE + ")"
loSheet.Range(lcF).Value = "=SUM(" + lcRangeF + ")"
loSheet.Range(lcG).Value = "=SUM(" + lcRangeG + ")"
loSheet.Range(lcH).Value = "=SUM(" + lcRangeH + ")"

* Set My Side Lines
loSheet.Range("A2:A6").Borders(-4131).LineStyle = 9

SqlDisconnect(lnConnect1)
llOk = .F.

ENDDO
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform