General information
Category:
Databases,Tables, Views, Indexing and SQL syntax
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
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only