11 lines
18 KiB
JSON
11 lines
18 KiB
JSON
{
|
|
"header": {
|
|
"version": 1,
|
|
"type": "record"
|
|
},
|
|
"body": {
|
|
"record1": {
|
|
"<1>": "declare function rowexists, msg, fieldcount, next_key, Get_Status\r\ndeclare subroutine forward_event, create_note\r\n$insert logical\r\n$insert quote_equ\r\n$insert quote_spec_equ\r\n$insert msg_equates\r\n$insert recipe_equ\r\n$insert rds_equ\r\n$insert rds_layer_info_equ\r\n$insert recipe_layer_info_equ\r\n$insert prod_spec_equ\r\n$insert wo_log_equ\r\n$insert wo_verify_equ\r\nequ CrLf$ to char(13):char(10)\r\n\r\nVoid = utility( 'CURSOR', 'H' )\r\n\r\nequ RunOrdNo$\t\tto 1\r\nequ RDSNo$\t\t\tto 2\r\nequ WafersSched$\tto 3\r\nequ Makeup$\t\tTO 4\r\n\r\nif (.qxj->visible = 1 ) and ( .qxj->check = 0 ) then\r\n\tMsgInfo = ''\r\n\tMsgInfo<mtext$> = 'Please make sure that schedule no# ': .schedule_no->text: ' should not be a ':CrLf$:'Wafer Etch/QXJ lot...You have not checked this.'\r\n\tMsgInfo<micon$> = '!'\r\n\tmsg( '', MsgInfo )\r\nend\r\n\r\nLockMessage = ''\r\nif rowexists( 'SCHEDULE', .schedule_no->text ) else\r\n .entry_id->text = @user4\r\nend\r\n\r\nNoSave = false$\r\nORDSDetail\t= get_property( @window, '@OrigRDSDetail' )\r\nRDSDetail\t= .rds_detail->array\r\nRDSNos\t\t= RDSDetail<RDSNo$>\r\nOrigRDSNos\t= RDSNos\r\n\r\n* Pull off Fields that will be used to update the RDS\r\n\r\nTorderLine \t\t= .order_detail_line->array\r\nQuoteNo\t\t\t= .quote_no->text\r\nScheduleNo\t\t= .schedule_no->text\r\nOrderNo\t\t\t= .order_no->text\r\nPO\t\t\t\t= .po->text\r\nCustNo\t\t\t= .cust_no->text\r\nOrderLineNo\t\t= TOrderLine<1>\t\t\t\t\t;* Added JCH 1/30/05\r\nPartNum\t\t\t= TOrderLine<2>\r\nLotNum\t\t\t= TOrderLine<3>\r\nWo\t\t\t\t= .wo->text\r\nWOStepKey\t\t= .WO_STEP_KEY->TEXT\t\t\t;* Added JCH 1/6/2005\r\n\r\n\r\nSubPartNos\t= XLATE('ORDER',OrderNo,37,'X')\t\t;* SUB_PART_NO field in ORDER table * Added JCH 1/30/05\r\nSubPartNo\t= SubPartNos<1,OrderLineNo>\t\t\t;* Added JCH 1/30/05\r\n\r\n\r\nPSNId\t\t\t= .PSN->text\r\nPSNRec \t\t\t= xlate( 'PROD_SPEC', PSNId, '', 'X' )\r\nSpecSubstrate\t= PSNRec<prod_spec_spec_substrate$>\r\nEpiLayerSpec\t= PSNRec<prod_spec_spec_epi$>\r\n\r\nForceUpdate\t\t= .force_update->check\r\n\r\nRow\t\t= 1\r\nRcnt\t= fieldcount( RDSDetail<1>, @vm )\r\nFOR Row = 1 TO Rcnt\r\n\tThisRDSLine\t\t= RDSDetail<RunOrdNo$,Row>:@vm:RDSDetail<RdsNo$,Row>:@vm:RDSDetail<WafersSched$,Row>:@vm:RDSDetail<Makeup$,Row>\r\n\tThisORDSLine\t= ORDSDetail<RunOrdNo$,Row>:@vm:ORDSDetail<RDSNo$,Row>:@vm:ORDSDetail<WafersSched$,Row>:@VM:ORDSDetail<Makeup$<Row>\r\n\t\r\n\tif ( ForceUpdate ) or ( ThisRDSLine <> ThisORDSLine ) or (( ThisRDSLine <> @vm:@vm:@fm ) and ( ThisRDSLine<1,RDSNo$> = '' ) ) THEN\r\n\t\t\r\n\t\t* this row has been changed/added\r\n\t\t\r\n\t\tCurRunOrdNo\t\t= ThisRDSLine<1,RunOrdNo$>\r\n\t\tCurWafersSched\t= ThisRDSLine<1,WafersSched$>\r\n\t\tCurMakeup\t\t= ICONV(ThisRDSLine<1,Makeup$>,'B')\r\n\t\t\r\n\t\tif CurRunOrdNo and CurWafersSched then\r\n\t\t\tgosub UpdateRDS\r\n\t\tend else\r\n\t\t\tif CurRunOrdNo = '' and CurWafersSched = '' else\r\n\t\t\t\tNoSave = true$\r\n\t\t\t\tMsgInfo = ''\r\n\t\t\t\tMsgInfo<micon$> = '!'\r\n\t\t\t\tMsgInfo<mtext$> = 'RDS Detail line ':Row:' must have a Run Order Number and Wafers Scheduled. No Run Data Sheet created/updated for this line.'\r\n\t\t\t\tVoid = msg( '', MsgInfo )\r\n\t\t\tend\r\n\t\tend\r\n\tend \r\n\r\nNEXT Row\r\n\r\nif RDSNos <> OrigRDSNos then\r\n RDSDetail = .rds_detail->array\r\n RDSDetail<RDSNo$> = RDSNos\r\n .rds_detail->array = RDSDetail\r\nend\r\nVoid = utility( 'CURSOR', 'A' )\r\nif NoSave else\r\n SavedWOs = get_property( @window, '@SavedWOs' )\r\n SavedCusts = get_property( @window, '@SavedCusts' )\r\n locate Wo in SavedWOs using @fm setting SPos else\r\n SavedWOs<-1> = Wo\r\n SavedCusts<-1> = .cust_name->text\r\n end\r\n Void = set_property( @window, '@SavedWOs', SavedWOs ) \r\n Void = set_property( @window, '@SavedCusts', SavedCusts ) \r\n forward_event()\r\n \r\n *obj_WO_Step('AddSchedInfo',ScheduleNo)\r\n *IF Get_Status(errCode) THEN DEBUG\r\nend\r\n\r\nif LockMessage then\r\n LockMessage[-2,2] = ''\r\n MsgInfo = ''\r\n MsgInfo<mtext$> = LockMessage\r\n MsgInfo<micon$> = '!'\r\n Void = msg( '', MsgInfo )\r\nend\r\nif RdsNos <> OrigRdsNos then\r\n TRds = RdsNos\r\n swap @vm:@vm with '' in TRds\r\n if TRds[-1,1] = @vm then TRds[-1,1] = ''\r\n swap @vm with ', ' in TRds\r\n TRds := '.'\r\n MsgInfo = ''\r\n MsgInfo<micon$> = '!'\r\n MsgInfo<mtext$> = 'The following Run Data Sheets were created ':TRds\r\n *************8Void = msg( '', MsgInfo )\r\nend\r\n\r\nreturn 0\r\n*===========================================================================*\r\nUpdateRDS:\r\n RDSRec = ''\r\n open 'RDS' to RDSTable else\r\n\t Void = msg( '', 'Unable to open RDS...' )\r\n\t\treturn 0\r\n end\r\n KeyToUse = RDSNos<1,Row>\r\n Update = true$\r\n if KeyToUse then\r\n Exists = true$\r\n lock RDSTable, KeyToUse then\r\n RDSRec = xlate( 'RDS', KeyToUse, '', 'X' )\r\n end else\r\n if LockMessage else\r\n LockMessage = 'Unable to lock RDS no(s). Try at a later point. '\r\n end\r\n LockMessage := KeyToUse :', '\r\n Update = false$\r\n end \r\n end else\r\n \r\n KeyToUse = next_key( 'RDS', RDSTable, 'NEXT', '' )\r\n\t \r\n\t Exists = false$\r\n RDSRec = ''\r\n RDSRec<rds_entry_id$> \t= @user4\r\n RDSRec<rds_entry_date$> \t= date() \r\n RDSRec<rds_entry_time$> \t= time()\r\n\t RDSRec<rds_status$> \t\t= 'C' ;* FOR RECEIVED\r\n\t RDSRec<rds_makeup_box$>\t\t= CurMakeup\t\t\t\t\t;* Added 9/26/2004 jch\r\n\t RDSRec<rds_wo_step_key$>\t= WOStepKey\t\t\t\t\t;* Added 1/06/2005 JCH\r\n\t RDSRec<rds_sub_part_no$>\t= SubPartNo\t\t\t\t\t;* Added JCH 1/30/05\r\n\t \r\n\t if CurRunOrdNo = 1 or CustNo = 6448 then ;* CONEXANT CREATE WO VERIFY FOR ALL LOTS\r\n\t\t * ASSIGN A WORK ORDER VERIFICATION TO THE FIRST BOX IF THE RDS DOES NOT EXISTS\r\n\t\t * IN OTHER WORDS IF IT ALREADY EXISTS THEN THE WO VERIFICATION DOES ALSO\r\n\t\t open 'WO_VERIFY' to WOVerifyTable else\r\n\t\t msg( '', 'Unable to open WO_VERIFY table' )\r\n\t\t return 0\r\n\t\t end\r\n\t\t\tWOVerifyID = next_key( 'WO_VERIFY', WOVerifyTable, 'NEXT', '' )\r\n\t\t\tWOVRec = ''\t\t\t\r\n\t\t\tWOVRec<wo_verify_entry_id$> = @user4\r\n\t\t\tWOVRec<wo_verify_entry_date$> = date()\r\n\t\t\tWOVRec<wo_verify_rds_id$> = KeyToUse\r\n\t\t\tWOVRec<wo_verify_status$> = 'O'\r\n\t\t\tif CustNo = 6448 then\r\n\t\t\t WOVRec<wo_verify_notes$> = 'Be sure to verify the deposit time has been changed back to the PRODUCT deposit time. Also, verify the current reactor set-up and specification to that of the material being loaded.'\r\n\t\t\tend\r\n\t\t\twrite WOVRec on WOVerifyTable, WOVerifyID else\r\n\t\t\t\tVoid = msg( '', 'Unable to write WO_VERIFY ':WOVerifyID )\r\n\t\t\t\treturn 0\r\n\t\t\tend\r\n\t\t\tunlock WOVerifyTable, WOVerifyID else\r\n\t\t\t\tVoid = msg( '', 'Unable to unlock WO_VERIFY ':WOVerifyID )\r\n\t\t\t\treturn 0\r\n\t\t\tend \r\n\t\t\tVoid = next_key( 'WO_VERIFY', WOVerifyTable, 'UPDATE', WOVerifyID )\r\n\t\t\tRDSRec<rds_wo_verify_id$> = WOVerifyID\r\n\t\tend\r\n end\r\n if Update then\r\n\t RDSRec<rds_quote_no$>\t\t\t= QuoteNo\r\n\t RDSRec<rds_schedule_no$>\t\t= ScheduleNo\t \r\n\t RDSRec<rds_wo$>\t\t\t\t\t= WO\r\n\t RDSRec<rds_commit_date_final$>\t= xlate( 'WO_LOG', WO, WO_LOG_COMMIT_DATE$, 'X' )\r\n\t RDSRec<rds_order_no$>\t\t\t= OrderNo\t \r\n\t RDSRec<rds_po$>\t\t\t\t\t= PO\t \r\n\t RDSRec<rds_cust_no$>\t\t\t= CustNo\r\n\t RDSRec<rds_part_num$>\t\t\t= PartNum\r\n\t RDSRec<rds_lot_num$>\t\t\t= LotNum\r\n\t RDSRec<rds_prod_spec_id$>\t\t= PSNId\r\n RDSRec<rds_special_inst$>\t\t= SpecSubstrate<1,QSSubInstructions$>\r\n RDSRec<rds_makeup_box$>\t\t\t= CurMakeup\t\t\t\t\t;* Added 9/26/2004 jch\r\n RDSRec<rds_wo_step_key$>\t\t= WOStepKey\t\t\t\t\t;* Added 1/06/2005 JCH\r\n RDSRec<rds_sub_part_no$>\t\t= SubPartNo\t\t\t\t\t;* Added JCH 1/30/05\r\n\t *\t \r\n\t SpecType = xlate( 'PROD_SPEC', PSNId, 'SPEC_TYPE', 'X' )\r\n\t RDSRec<rds_spec_type_orig$> = SpecType\r\n\t \r\n\t \r\n\t if ( SpecType = 'Q' ) and ( Exists = true$ ) then\r\n\t * IF IT IS A QUAL AND IT ALREADY EXISTS THEN DO NOT OVERWRITE THE SPECIFICATION AND/\r\n\t * OR RECIPE DATA CAUSE ENGINEERING MAY HAVE ALREADY MODIFIED VIA AN RDS OVERRIDE\r\n\t end else\r\n\t\t * first load the main layer into the run data sheet \r\n\t ConMinThick = EpiLayerSpec<1,QSEpiConcMinThick$> ;* could have @svm\r\n\t ConMaxThick = EpiLayerSpec<1,QSEpiConcMaxThick$> ;* could have @svm\r\n\t TcCnt = fieldcount( ConMinThick, @svm )\r\n\t for zz = 1 to TcCnt\r\n\t ConMinThick<1,1,zz> = iconv( ConMinThick<1,1,zz>, 'MS' )\r\n\t next zz\r\n\t TcCnt = fieldcount( ConMaxThick, @svm )\r\n\t for zz = 1 to TcCnt\r\n\t ConMaxThick<1,1,zz> = iconv( ConMaxThick<1,1,zz>, 'MS' )\r\n\t next zz\r\n\t convert @svm to @vm in ConMaxThick\r\n\t convert @svm to @vm in ConMinThick\r\n\t ConUnits = EpiLayerSpec<1,QSEpiConcUnits$> \r\n\t\t ResMinThick = EpiLayerSpec<1,QSEpiResMinThick$> \r\n\t\t ResMaxThick = EpiLayerSpec<1,QSEpiResMaxThick$> \r\n\t\t ResUnits = EpiLayerSpec<1,QSEpiResUnits$> \r\n\t\t MinThick = EpiLayerSpec<1,QSEpiMinThick$> \r\n\t\t MaxThick = EpiLayerSpec<1,QSEpiMaxThick$> \r\n\t\t ThickUnits = EpiLayerSpec<1,QSEpiThickUnits$> \r\n\t\t LDopant = EpiLayerSpec<1,QSEpiDopant$> \r\n\t\t Recipe = EpiLayerSpec<1,QSEpiRecipe$>\r\n\t\t RecipeRec = xlate( 'RECIPE', Recipe, '', 'X' )\r\n\t\t \r\n\t\t EpiResMeasure = EpiLayerSpec<1,QSEpiResMeasure$>\t\t;* JCH 12/1/2004\r\n\t\t RDSRec<rds_overgrow_req$> = FIELD(EpiResMeasure,'~',9)\t;* JCH 12/1/2004\r\n\t\t \r\n\r\n\t\t if Recipe <> RDSRec<rds_recipe_no$> then\r\n\t\t * if the recipe has not changed then do not change\r\n\t\t * recipe specific paramaters cause user may have overridden\r\n\t\t * and if this is the creation of a new rds then Recipe will\r\n\t\t * be <> RDSRec<rds_recipe_no$>\r\n\t\t\t RDSRec<rds_recipe_no$> = Recipe\r\n\t\t \tend\r\n\t\t \t\r\n\t\t \t\t\t \t\r\n\t\t * concentration\r\n\t\t ConMinThick = field( ConMinThick, @vm, 1, 1 )\t;* Changed to take only first SVM \r\n\t\t ConMaxThick = field( ConMaxThick, @vm, 1, 1 )\r\n\t RDSRec<rds_con_min$> = ConMinThick \r\n\t RDSRec<rds_con_max$> = ConMaxThick\r\n\t if ConMinThick and ConMaxThick then\r\n\t if ConMinThick = ConMaxThick then\r\n\t RDSRec<rds_con_target$> = ConMinThick\r\n\t end else\r\n\t * is it ok to do int \r\n\t *Mid = ConMinThick +++ ((ConMaxThick---ConMinThick)///2)\r\n\t *MinLessMax = (ConMaxThick---ConMinThick)\r\n\t *Mcnt = fieldcount(ConMinThick, @vm )\r\n\t *DivVar = str( 2:@vm, Mcnt )\r\n\t *DivVar[-1,1] = ''\r\n\t *Tans = MinLessMax///DivVar\r\n\t *Ans = ConMinThick+++Tans\r\n\t *RDSRec<rds_con_target$> = Mid\r\n\t \r\n\t ConTarget = ConMinThick + INT((ConMaxThick - ConMinThick)/2)\t;* Added 8/22/2004 JCH\r\n\t RDSRec<rds_con_target$> = ConTarget\r\n\t end\r\n\t end \r\n\t RDSRec<rds_con_units$> = ConUnits \r\n\t * resistivity\r\n\t RDSRec<rds_res_min$> = ResMinThick \r\n\t RDSRec<rds_res_max$> = ResMaxThick\r\n\t\t if ResMinThick and ResMaxThick then\r\n\t\t if ResMinThick = ResMaxThick then\r\n\t\t RDSRec<rds_res_target$> = ResMinThick\r\n\t\t end else\r\n\t Mid = ResMinThick + INT((ResMaxThick-ResMinThick)/2)\r\n\t RDSRec<rds_res_target$> = Mid\r\n\t end\t \r\n\t\t end \r\n\t\t RDSRec<rds_res_units$> = ResUnits\r\n\t\t * thickness\r\n\t\t RDSRec<rds_thick_min$> = MinThick \r\n\t\t RDSRec<rds_thick_max$> = MaxThick\r\n\t\t if MinThick and MaxThick then\r\n\t\t if MinThick = MaxThick then\r\n\t\t RDSRec<rds_thick_target$> = MinThick\r\n\t\t end else\r\n\t\t Mid = MinThick + INT((MaxThick-MinThick)/2)\r\n\t\t RDSRec<rds_thick_target$> = Mid\r\n\t\t end\r\n\t\t end \r\n\t RDSRec<rds_thick_units$> = ThickUnits \r\n\t * now fill in all same reactor layers\r\n\t convert char(248) to @fm in EpiLayerSpec\r\n\t RestOfLayers = field( EpiLayerSpec, @fm, 2, 9999 )\r\n\t RolCnt = fieldcount( RestOfLayers, @fm )\r\n\t RecipeLayerInfo = RecipeRec<recipe_layer_info$>\r\n\t \r\n\t convert char(248) to @fm in RecipeLayerInfo\r\n\t RDSLayerInfo = ''\r\n\t for j = 1 to RolCnt\r\n\t ThisSameLayer = RestOfLayers<j>\r\n\t ThisSameRecipeLayer = RecipeLayerInfo<j> \r\n\t TLayer = field( RDSRec<rds_layer_info$>, char(248), j )\r\n\t \r\n\t EpiResMeasure = ThisSameLayer<1,QSEpiResMeasure$>\t\t;* JCH 12/1/2004\r\n\t TLayer<1,RLOvergrowReq$> = FIELD(EpiResMeasure,'~',9)\t;* JCH 12/1/2004\r\n\t \r\n\t * concentration\r\n\t \r\n\t \tConMinThick = ThisSameLayer<1,QSEpiConcMinThick$,1> ;* could have @svm (no SVM's anymore JCH)\r\n\t ConMaxThick = ThisSameLayer<1,QSEpiConcMaxThick$,1> ;* could have @svm\r\n\t ConUnits = ThisSameLayer<1,QSEpiConcUnits$> \r\n\t\t \r\n\t\t ConMinThick = ICONV(ConMinThick,'MS')\r\n\t\t ConMaxThick = ICONV(ConMaxThick,'MS')\r\n\t\t \r\n\t TLayer<1,RLConMin$> = ConMinThick\r\n\t TLayer<1,RLConMax$> = ConMaxThick\r\n\t \r\n\t IF ConMinThick AND ConMaxThick THEN\r\n\t IF ConMinThick = ConMaxThick THEN\r\n\t TLayer<1,RLConTarget$> = ConMinThick\r\n\t END ELSE\r\n\t ConTarget = ConMinThick + INT((ConMaxThick-ConMinThick)/2)\r\n\t TLayer<1,RLConTarget$> = ConTarget\r\n\t \r\n\t END\t;* end of check for min = max\r\n\t END ;* End of check for presence of min and max\r\n\t \r\n\t TLayer<1,RLConUnits$> = ConUnits \r\n\t \r\n\t \r\n\t * recipe information\r\n\t if Recipe <> TLayer<1,RLRecipeNo$> then\r\n\t\t TLayer<1,RLRecipeNo$> = Recipe\r\n TLayer<1,RLThickRead$> = str( @svm, 16)\r\n TLayer<1,RLSheetRhoRead$> = str( @svm,16 )\r\n\t\t end\r\n\t\t \r\n\t\t * Thickness\r\n\t\t \r\n\t\t MinThick = ThisSameLayer<1,QSEpiMinThick$> \r\n\t\t MaxThick = ThisSameLayer<1,QSEpiMaxThick$> \r\n\t\t ThickUnits = ThisSameLayer<1,QSEpiThickUnits$> \r\n\t\t \r\n\t \t TLayer<1,RLThickMin$> = MinThick \r\n\t\t TLayer<1,RLThickMax$> = MaxThick\r\n\t\t if MinThick and MaxThick then\r\n\t\t if MinThick = MaxThick then\r\n\t\t TLayer<1,RLThickTarget$> = MinThick\r\n\t\t end else\r\n\t\t Mid = MinThick + INT((MaxThick-MinThick)/2)\r\n\t\t TLayer<1,RLThickTarget$> = Mid\r\n\t\t end\r\n\t\t end \r\n\t TLayer<1,RLThickUnits$> = ThickUnits \r\n\t \r\n\t \r\n\t * resistivity\r\n\t \r\n\t \tResMinThick = ThisSameLayer<1,QSEpiResMinThick$> \r\n\t\t ResMaxThick = ThisSameLayer<1,QSEpiResMaxThick$> \r\n\t\t ResUnits = ThisSameLayer<1,QSEpiResUnits$> \r\n\t\t \r\n\t TLayer<1,RLResMin$> = ResMinThick \r\n\t TLayer<1,RLResMax$> = ResMaxThick\r\n\t \t if ResMinThick and ResMaxThick then\r\n\t\t if ResMinThick = ResMaxThick then\r\n\t\t TLayer<1,RLResTarget$> = ResMinThick\r\n\t\t end else\r\n\t Mid =ResMinThick + INT((ResMaxThick-ResMinThick)/2)\r\n\t TLayer<1,RLResTarget$> = Mid\r\n\t end\t \r\n\t\t end \r\n\t\t TLayer<1,RLResUnits$> = ResUnits\r\n\t *\r\n\t RDSLayerInfo := TLayer:char(248)\r\n\t next j\r\n\t RDSLayerInfo[-1,1] = ''\r\n\t RDSRec<rds_layer_info$> = RDSLayerInfo\r\n\t end ;* END OF REWRITING THE SPEC USING ( SpecType = 'M' ) and ( Exists = true$ )\r\n **************************\r\n if .qxj->check then ;* PHILIPS AND SSI\r\n if RDSRec<rds_qxj_post$> <> 0 and RDSRec<rds_qxj_post$> <> '' then\r\n * already been entered do not change\r\n * to change must go to rds and zero out\r\n end else\r\n RDSRec<rds_qxj_post$> = 0\r\n end\r\n end else\r\n if RDSRec<rds_qxj_pre$> = '' and RDSRec<rds_qxj_post$> = 0 then\r\n RDSRec<rds_qxj_post$> = ''\r\n * what we are doing here is removing this rds as being a QXJ\r\n * if no data entry has been performed\r\n end\r\n end\r\n if ( .cust_no->text = 621 and CurRunOrdNo = 1 ) then\r\n * IT IS SILICON SYSTEMS AND IT IS THE FIRST RUN ORDER SO TAG THE QXJ - ETCH\r\n RDSRec<rds_qxj_post$> = 0\r\n end\r\n **************************\r\n * now write the record\r\n\t write RDSRec on RDSTable, KeyToUse else\r\n\t Void = msg( '', 'Unable to write ':KeyToUse:' on RDS...' )\r\n\t\t return 0\r\n\t end\r\n\t \r\n\t *CurrStatus = obj_RDS('CurrStatus',KeyToUse:@RM:RDSRec)\t\t\t\t;* Added 2/1/2005 JCH\r\n\t *obj_WO_Step('RDSStatus',WOStepKey:@RM:KeyToUse:@RM:CurrStatus)\t\t;* Added 2/1/2005 JCH\r\n\t \r\n\t unlock RDSTable, KeyToUse else\r\n\t Void = msg( '', 'Unable to unlock RDS ':KeyToUse:'...' )\r\n\t return 0\r\n\t end\r\n\t if Exists = false$ and not( index( KeyToUse, '.', 1 ) ) then\r\n\t Void = next_key( 'RDS', RDSTable, 'UPDATE', KeyToUse )\r\n\t end\r\n\tend\r\n\tRDSNos<1,Row> = KeyToUse\r\nreturn\r\n\r\n*===========================================================================*\r\n"
|
|
}
|
|
}
|
|
} |