James
Here is a simple dialog and xBrowse for a single Header and Invoice screen using Ado ( ms access )
Rick Lipkin
Code: Select all | Expand
// BillView.prg
//
#INCLUDE "FIVEWIN.CH"
#Include "xBrowse.Ch"
//----------------------
FUNC _BillView( cMODE,oRsBill,oFontB,oBtn0,oBtn1,oBtn2,oBtn3,oBtn4,oBtn13 )
LOCAL SAYING, oUSERS, lOK, oBmp,oLbxD
LOCAL lOK1,oButt1,oButt2,cTitle
Local dBillDate,nInvoiceNumber,cPublication,cDescription,nAmountDue,nBills,cDetail
Local oBillDate,oInvoiceNumber,oPublication,oDescription,oAmountDue,oBills,oDetail
Local oSay1,oSay2,oSay3,oSay4,oSay5,oSay6,oSay7,oSay8,oSay9
Local oRsBillDetail,cSql,oErr,nRn
Local cAdName,oAdName
Local oDueDate,dDueDate,oTerms,cTerms
IF oRsBill:EOF
SAYING := "SORRY ... No Billing Information to View"
MsgInfo( SAYING )
RETURN(.F.)
ENDIF
cMode := "V"
nRn := oRsBill:Fields("Rn"):Value
oRsBillDetail := TOleAuto():New( "ADODB.Recordset" )
oRsBillDetail:CursorType := 1 // opendkeyset
oRsBillDetail:CursorLocation := 3 // local cache
oRsBillDetail:LockType := 3 // lockoportunistic
cSql := "Select * from [BillingDetail] where [Rn] = "+ltrim(str(nRn))
cSql += " Order By [PublicationName],[Week]"
TRY
oRsBillDetail:Open( cSQL,xCONNECT )
CATCH oErr
MsgInfo( "Error in Opening BillingDetail table" )
RETURN(.F.)
END TRY
oBtn0:Disable()
oBtn1:Disable()
oBtn2:Disable()
oBtn3:Disable()
oBtn4:Disable()
oBtn13:Disable()
LightGreenGrad()
dBillDate := If(empty(oRsBill:Fields("BillDate"):Value),Ctod(""),;
TtoDate(oRsBill:Fields("BillDate"):Value ))
nInvoiceNumber := If(empty(oRsBill:Fields("InvoiceNumber"):Value),0,;
oRsBill:Fields("InvoiceNumber"):Value)
cPublication := If(empty(oRsBill:Fields("PublicationName"):Value),space(50),;
oRsBill:Fields("PublicationName"):Value)
cDescription := If(empty(oRsBill:Fields("Description"):Value),space(50),;
oRsBill:Fields("Description"):Value)
cAdName := If(empty(oRsBill:Fields("AdName"):Value),space(50),;
oRsBill:Fields("AdName"):Value )
nAmountDue := If(empty(oRsBill:Fields("AmountDue"):Value),0,;
oRsBill:Fields("AmountDue"):Value)
nBills := If(empty(oRsBill:Fields("Bills"):Value),0,;
oRsBill:Fields("Bills"):Value)
dDueDate := If(empty(oRsBill:Fields("DueDate"):Value),Ctod(""),;
TtoDate(oRsBill:Fields("DueDate"):Value ))
cTerms := If(empty(oRsBill:Fields("Terms"):Value),space(15),;
oRsBill:Fields("Terms"):Value)
cTITLE := "Billing-Invoicing Information"
DO CASE
CASE cMODE = "A"
cTITLE := "Billing-Invoicing Information ADD"
CASE cMODE = "E"
cTITLE := "Billing-Invoicing Information EDIT"
CASE cMODE = "V"
cTITLE := "Billing-Invoicing Information VIEW"
ENDCASE
lOK := .F.
DEFINE BITMAP oBmp RESOURCE "BILLVIEW"
DEFINE DIALOG oUSERS RESOURCE "BILLVIEW" ;
TITLE cTITLE
REDEFINE SAY oSay1 ID 115 OF oUsers UPDATE // billdate
oSay1:SetFont( oFontB )
REDEFINE SAY oSay2 ID 117 OF oUsers UPDATE // invoice number
oSay2:SetFont( oFontB )
REDEFINE SAY oSay3 ID 119 OF oUsers UPDATE // publication
oSay3:SetFont( oFontB )
REDEFINE SAY oSay4 ID 128 OF oUsers UPDATE // description
oSay4:SetFont( oFontB )
REDEFINE SAY oSay5 ID 113 OF oUsers UPDATE // ad campaign
oSay5:SetFont( oFontB )
REDEFINE SAY oSay6 ID 123 OF oUsers UPDATE // amount due
oSay6:SetFont( oFontB )
REDEFINE SAY oSay7 ID 125 OF oUsers UPDATE // number bills
oSay7:SetFont( oFontB )
REDEFINE SAY oSay8 ID 129 OF oUsers UPDATE // due date
oSay8:SetFont( oFontB )
REDEFINE SAY oSay9 ID 121 OF oUsers UPDATE // terms
oSay9:SetFont( oFontB )
REDEFINE xBROWSE oLbxD ;
RECORDSET oRsBillDetail ;
COLUMNS "PUBLICATIONNAME", ;
"DESCRIPTION", ;
"TOTALBILLED" ;
COLSIZES 160,155,75 ;
HEADERS "Publication", ;
"Description", ;
"Billed" ;
ID 111 of oUsers ;
AUTOCOLS LINES CELL
oLbxD:lRecordSelector := .f.
oLbxD:lHScroll := .f. // turn off horiz scroll bar
_BrowColor(oLbxD)
REDEFINE GET oBillDate VAR dBillDate ID 116 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oDueDate VAR dDueDate ID 114 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oInvoiceNumber VAR nInvoiceNumber ID 118 of oUSERS PICTURE "999999999999" COLOR "N/W" READONLY
REDEFINE GET oTerms VAR cTerms ID 122 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oPublication VAR cPublication ID 120 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oAdName VAR cAdName ID 112 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oDescription VAR cDescription ID 127 of oUSERS COLOR "N/W" READONLY
REDEFINE GET oAmountDue VAR nAmountDue ID 124 of oUSERS PICTURE "99999999.99" COLOR "N/W" READONLY
REDEFINE GET oBills VAR nBills ID 126 of oUSERS PICTURE "9999" COLOR "N/W" READONLY
REDEFINE BTNBMP oButt1 ID 150 of oUSERS ; // ok
RESOURCE "OK", "DOK", "DOK" ;
PROMPT " &Ok " LEFT 2007;
ACTION (lOK := .T., oUsers:END())
REDEFINE BTNBMP oButt2 ID 160 of oUSERS ; // cancel
RESOURCE "CANCEL", "DCANCEL", "DCANCEL" ;
PROMPT "&Cancel " LEFT 2007;
ACTION ( lOk := .f., oUSERS:END())
ACTIVATE DIALOG oUSERS ;
ON INIT (oLbxD:SetFocus() );
ON PAINT (PalBmpDraw( hDC, 0, 0, oBmp:hBitmap ))
oRsBillDetail:CLose()
oRsBillDetail := nil
LightGreyGrad()
oBmp:End()
oBtn0:Enable()
oBtn1:Enable()
oBtn2:Enable()
oBtn3:Enable()
oBtn4:Enable()
oBtn13:Enable()
RETURN(.t. )
//--------------
Static Func LightGreenGrad()
SetDlgGradient( { { .50, nRGB(210,235,216), nRGB( 255, 255, 255 ) } } )
Return(nil)
//------------------
Static Func LightGreyGrad()
SetDlgGradient( { { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } )
Return(nil)
//-------------------
Static Func _BrowColor( oLbx )
// foreground // background
local aGradBarSelFocus := {{1, RGB(0,128,255) , RGB(0,128,255) }} // in focus
local aGradBarSel := {{1, RGB(255,255,255), RGB(192,192,192) }} // not in focus 192
WITH OBJECT oLbx
:bClrSel := {|| { CLR_BLACK, aGradBarSel } } // not in focus
:bClrSelFocus := { || { CLR_WHITE, aGradBarSelFocus } } // in focus
END
Return(nil)
// end BillView.prg
.Rc
Code: Select all | Expand
BILLVIEW
DIALOG 383,
47,
292,
322STYLE WS_POPUP | WS_CAPTION
FONT 6,
"MS Sans Serif"{ EDITTEXT
116,
103,
23,
54,
12 EDITTEXT
118,
103,
37,
54,
12, ES_RIGHT | WS_BORDER | WS_TABSTOP
EDITTEXT
120,
103,
65,
177,
12 EDITTEXT
112,
103,
51,
177,
12 EDITTEXT
127,
103,
79,
177,
12 EDITTEXT
124,
79,
287,
54,
12, ES_RIGHT | WS_BORDER | WS_TABSTOP
EDITTEXT
126,
79,
301,
54,
12, ES_RIGHT | WS_BORDER | WS_TABSTOP
CONTROL
"&Ok",
150,
"TBtnBmp",
32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
191,
288,
41,
25 CONTROL
"&Cancel",
160,
"TBtnBmp",
32 | WS_CHILD | WS_VISIBLE | WS_TABSTOP,
236,
288,
41,
25 LTEXT
"Invoice Number",
117,
10,
37,
88,
12, SS_NOPREFIX | WS_GROUP
LTEXT
"Bill Date",
115,
10,
23,
88,
12, SS_NOPREFIX | WS_GROUP
LTEXT
"Publication ",
119,
10,
66,
88,
12, SS_NOPREFIX | WS_GROUP
LTEXT
"Number Bills",
125,
10,
301,
62,
12, SS_NOPREFIX | WS_GROUP
LTEXT
"Amount Due",
123,
10,
287,
62,
12, SS_NOPREFIX | WS_GROUP
LTEXT
"Description",
128,
10,
80,
88,
12, SS_NOPREFIX | WS_GROUP
CONTROL
"",
111,
"TXBrowse",
0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP,
7,
97,
279,
182 LTEXT
"Ad Campaign Name",
113,
10,
52,
88,
12, SS_NOPREFIX | WS_GROUP
EDITTEXT
114,
218,
23,
62,
12 LTEXT
"Terms",
121,
169,
37,
48,
12, SS_NOPREFIX | WS_GROUP
EDITTEXT
122,
218,
37,
62,
12 LTEXT
"Due Date",
129,
169,
23,
48,
12, SS_NOPREFIX | WS_GROUP
}[URL=https:
//imageshack.com/i/j7ef08j]
[/URL]