>>CLEAR >>CLOSE DATABASES ALL >>SET ASSERTS ON >> >>getOptionID = 1 >>getMakeID = 22 >>getModelIDs = [_1_2_3] >>oCa = CREATEOBJECT([cadealeropts]) >>IF oCa.CursorFill() >> BROWSE NORMAL >> IF NOT TABLEUPDATE(1, .t., oCa.Alias) >> AERROR(aaaa) >> CLEAR >> DISPLAY MEMORY LIKE aaaa >> ENDIF >> >>ELSE >> AERROR(aaaa) >> CLEAR >> DISPLAY MEMORY LIKE aaaa >>ENDIF >> >> >> >> >>DEFINE CLASS cadealeropts AS cursoradapter >> SelectCmd = "select DealerOpts.OptsID, NVL(DealerOpts.OptionID,?getOptionID) as OptionID, NVL(DealerOpts.MakeID, ?getMakeID) as MakeID, "+; >> "Models.ModelID as ModelID, Models.MfgName, Models.Name as ModelName, "+; >> "Models.ModelNmbr as ModelNmbr, Models.ModelYear as ModelYear, DealerOpts.Retail, DealerOpts.Cost, "+; >> "DealerOpts.Costline, DealerOpts.Type as cType, DealerOpts.StdOption "+; >> "from DealerOpts "+; >> "RIGHT JOIN Models ON DealerOpts.ModelID = Models.ModelID and DealerOpts.OptionID = ?getOptionID and "+; >> "DealerOpts.MakeID = ?getMakeID where cast(Models.ModelID as varchar(12)) $ (?getModelIDs)" >> CursorSchema = "OptsID I, OptionID I, MakeID I, ModelID I, MfgName C(40), ModelName C(65), "+; >> "ModelNmbr C(20), ModelYear C(40), Retail N(10, 2), Cost N(10, 2), Costline N(10, 2),"+; >> "cType C(12), StdOption L(1)" >> Alias = "curdealeropts" >> DataSourceType = "Native" >> Flags = 0 >> CompareMemo = .T. >> FetchMemo = .F. >> SendUpdates = .T. >> KeyFieldList = "OPTSID" >> Tables = "DealerOpts" >> UpdatableFieldList = "OPTIONID, MAKEID, MODELID, RETAIL, COST, COSTLINE, CTYPE, STDOPTION" >> UpdateNameList = "OPTSID DealerOpts.OPTSID,OPTIONID DealerOpts.OPTIONID, MAKEID DealerOpts.MAKEID,"+; >> "MODELID DealerOpts.MODELID, RETAIL DealerOpts.RETAIL, COST DealerOpts.COST, "+; >> "COSTLINE DealerOpts.COSTLINE, CTYPE DealerOpts.Type, STDOPTION DealerOpts.STDOPTION" >> BreakOnError = .T. >> UseCursorSchema = .T. >> UseTransactions = .T. >> Name = "cadealeropts" >> >> PROCEDURE Init >> set multilocks on >> llReturn = dodefault() >> ENDPROC >> >> PROCEDURE BeforeUpdate(cFldState, lForce, nUpdateType, cUpdateInsertCmd, cDeleteCmd) >> IF ISNULL(EVALUATE(this.Alias +[.OPTSID])) >> TEXT TO cUpdateInsertCmd NOSHOW TEXTMERGE PRETEXT 15 >> INSERT INTO DealerOpts (OptionID, MakeID, Retail, Cost, Costline, cType, StdOption, ModelID) >> VALUES >> (<<EVALUATE(this.Alias+[.OptionID])>>, >> <<EVALUATE(this.Alias+[.MakeID])>>, >> <<EVALUATE(this.Alias+[.Retail])>>, >> <<EVALUATE(this.Alias+[.Cost])>>, >> <<EVALUATE(this.Alias+[.Costline])>>, >> <<EVALUATE(this.Alias+[.cType])>>, >> <<EVALUATE(this.Alias+[.StdOption])>>, >> <<EVALUATE(this.Alias+[.ModelID])>>) >> ENDTEXT >> ENDIF >> ENDPROC >>ENDDEFINE >>>>
cd\ md TestNaomi cd TestNaomi CREATE DATABASE Naomi CREATE TABLE DealerOpts (OptsID I AUTOINC NEXTVALUE 1, OptionID I, MakeID I, Retail N(10, 2), Cost N(10, 2), Costline N(10, 2), cType C(12), StdOption L, ModelID I) CREATE TABLE Models (ModelID I, MfgName C(40), ModelName C(65), ModelNmbr C(20), ModelYear C(40)) CLEAR CLOSE DATABASES ALL SET ASSERTS ON getOptionID = 2 getMakeID = 22 getModelIDs = [_1_2_3] oCa = CREATEOBJECT([cadealeropts]) IF oCa.CursorFill() BROWSE NORMAL IF NOT TABLEUPDATE(1, .t., oCa.Alias) AERROR(aaaa) CLEAR DISPLAY MEMORY LIKE aaaa ENDIF ELSE AERROR(aaaa) CLEAR DISPLAY MEMORY LIKE aaaa ENDIF DEFINE CLASS cadealeropts AS cursoradapter SelectCmd = "select DealerOpts.OptsID, NVL(DealerOpts.OptionID,?getOptionID) as OptionID, NVL(DealerOpts.MakeID, ?getMakeID) as MakeID, "+; "Models.ModelID as ModelID, Models.MfgName, Models.Name as ModelName, "+; "Models.ModelNmbr as ModelNmbr, Models.ModelYear as ModelYear, DealerOpts.Retail, DealerOpts.Cost, "+; "DealerOpts.Costline, DealerOpts.Type as cType, DealerOpts.StdOption "+; "from DealerOpts "+; "RIGHT JOIN Models ON DealerOpts.ModelID = Models.ModelID and DealerOpts.OptionID = ?getOptionID and "+; "DealerOpts.MakeID = ?getMakeID " +; "where cast(Models.ModelID as varchar(12)) $ (?getModelIDs)" CursorSchema = "OptsID I, OptionID I, MakeID I, ModelID I, MfgName C(40), ModelName C(65), "+; "ModelNmbr C(20), ModelYear C(40), Retail N(10, 2), Cost N(10, 2), Costline N(10, 2),"+; "cType C(12), StdOption L(1)" Alias = "curdealeropts" DataSourceType = "Native" Flags = 0 CompareMemo = .T. FetchMemo = .F. SendUpdates = .T. KeyFieldList = "OPTSID" Tables = "DealerOpts" UpdatableFieldList = "OPTIONID, MAKEID, MODELID, RETAIL, COST, COSTLINE, CTYPE, STDOPTION" UpdateNameList = "OPTSID DealerOpts.OPTSID,OPTIONID DealerOpts.OPTIONID, MAKEID DealerOpts.MAKEID,"+; "MODELID DealerOpts.MODELID, RETAIL DealerOpts.RETAIL, COST DealerOpts.COST, "+; "COSTLINE DealerOpts.COSTLINE, CTYPE DealerOpts.Type, STDOPTION DealerOpts.STDOPTION" BreakOnError = .T. UseCursorSchema = .T. UseTransactions = .T. Name = "cadealeropts" PROCEDURE Init set multilocks on llReturn = dodefault() ENDPROC PROCEDURE BeforeUpdate(cFldState, lForce, nUpdateType, cUpdateInsertCmd, cDeleteCmd) IF ISNULL(EVALUATE(this.Alias +[.OPTSID])) TEXT TO cUpdateInsertCmd NOSHOW TEXTMERGE PRETEXT 15 INSERT INTO DealerOpts (OptionID, MakeID, Retail, Cost, Costline, cType, StdOption, ModelID) VALUES (<<EVALUATE(this.Alias+[.OptionID])>>, <<EVALUATE(this.Alias+[.MakeID])>>, <<EVALUATE(this.Alias+[.Retail])>>, <<EVALUATE(this.Alias+[.Cost])>>, <<EVALUATE(this.Alias+[.Costline])>>, <<EVALUATE(this.Alias+[.cType])>>, <<EVALUATE(this.Alias+[.StdOption])>>, <<EVALUATE(this.Alias+[.ModelID])>>) ENDTEXT ENDIF ENDPROC ENDDEFINE