{ "header": { "version": 1, "type": "record" }, "body": { "record1": { "<1>": "declare subroutine btree.extract, update_index, rlist, end_dialog\r\ndeclare function msg, key_sort, utility\r\n$insert lsl_users_equ\r\n$insert msg_equates\r\n\r\nopen 'DICT.INVOICE' to DictInvoiceTable else\r\n Void = msg( '', 'Unable to open DICT.INVOICE...' )\r\n return 0\r\nend\r\nSearchStr = ''\r\nCustIds = .customer_info->array<1>\r\nShipDateFrom = .ship_date_from->text\r\nShipDateThru = .ship_date_thru->text\r\nDueDateFrom = .due_date_from->text\r\nDueDateThru = .due_date_thru->text\r\nInvFrom = .inv_from->text\r\nInvThru = .inv_thru->text\r\nOpen = .open_check->check\r\nClosed = .closed_check->check\r\n*EntryIds = .entry_ids->array<1>\r\nWo = .wo->array\r\nPo = .po->array\r\nLotNum = .lot_num->array\r\nPartNum = .part_num->array\r\n*QuoteNos = .quote_nos->array\r\n*OrderNos = .order_nos->array\r\nswap @vm:@vm with '' in Wo\r\nif Wo[-1,1] = @vm then Wo[-1,1] = ''\r\nswap @vm:@vm with '' in Po\r\nif Po[-1,1] = @vm then Po[-1,1] = ''\r\nswap @vm:@vm with '' in LotNum\r\nif LotNum[-1,1] = @vm then LotNum[-1,1] = ''\r\nswap @vm:@vm with '' in PartNum\r\nif PartNum[-1,1] = @vm then PartNum[-1,1] = ''\r\nswap @vm:@vm with '' in CustIds\r\nif CustIds[-1,1] = @vm then CustIds[-1,1] = ''\r\n*swap @vm:@vm with '' in EntryIds\r\n*if EntryIds[-1,1] = @vm then EntryIds[-1,1] = ''\r\n*swap @vm:@vm with '' in QuoteNos\r\n*if QuoteNos[-1,1] = @vm then QuoteNos[-1,1] = ''\r\n*swap @vm:@vm with '' in OrderNos\r\n*if OrderNos[-1,1] = @vm then OrderNos[-1,1] = ''\r\nif CustIds then\r\n SearchStr<-1> = 'CUST_NO':@vm:CustIds\r\nend\r\nif ShipDateFrom and ShipDateThru then\r\n SearchStr<-1> = 'SHIP_DATE':@vm:ShipDateFrom:'...':ShipDateThru\r\nend else\r\n\tif ShipDateFrom then\r\n\t SearchStr<-1> = 'SHIP_DATE':@vm:'>=':ShipDateFrom\r\n\tend\r\n\tif ShipDateThru then\r\n\t SearchStr<-1> = 'SHIP_DATE':@vm:'<=':ShipDateThru\r\n\tend\r\nend\r\nif DueDateFrom and DueDateThru then\r\n SearchStr<-1> = 'DUE_DATE':@vm:DueDateFrom:'...':DueDateThru\r\nend else\r\n\tif DueDateFrom then\r\n\t SearchStr<-1> = 'DUE_DATE':@vm:'>=':DueDateFrom\r\n\tend\r\n\tif DueDateThru then\r\n\t SearchStr<-1> = 'DUE_DATE':@vm:'<=':DueDateThru\r\n\tend\r\nend\r\n*if EntryIds then\r\n* SearchStr<-1> = 'ENTRY_ID':@vm:EntryIds\r\n*end\r\nStatusVar = ''\r\nif Open then\r\n StatusVar<1,-1> = 'O'\r\nend\r\nif Closed then\r\n StatusVar<1,-1> = 'C'\r\nend\r\nif StatusVar then\r\n SearchStr<-1> = 'STATUS':@vm:StatusVar\r\nend\r\nif Wo then\r\n SearchStr<-1> = 'WO':@vm:Wo\r\nend\r\nif Po then\r\n SearchStr<-1> = 'PO_NO':@VM:Po\r\nend\r\nif LotNum then\r\n SearchStr<-1> = 'LOT_NUM':@vm:LotNum\r\nend\r\nif PartNum then\r\n SearchStr<-1> = 'PART_NUM':@vm:PartNum\r\nend\r\n*if QuoteNos then\r\n* SearchStr<-1> = 'QUOTE_IDS':@vm:QuoteNos\r\n*end\r\n*if OrderNos then\r\n* SearchStr<-1> = 'ORDER_NOS':@vm:OrderNos\r\n*end\r\nOrderBySpecial = ''\r\nif InvFrom and InvThru then\r\n SearchStr<-1> = 'SEQ':@vm:'>=':InvFrom:'...':InvThru\r\n SearchStr<-1> = 'SEQ':@vm:'#CM]'\r\n SearchStr<-1> = 'SEQ':@vm:'#DM]'\r\n OrderBySpecial = 'SEQ'\r\nend else\r\n if InvFrom then\r\n SearchStr<-1> = 'SEQ':@vm:'>=':InvFrom\r\n SearchStr<-1> = 'SEQ':@vm:'#CM]'\r\n SearchStr<-1> = 'SEQ':@vm:'#DM]'\r\n\t OrderBySpecial = 'SEQ'\r\n end\r\n if InvThru then\r\n SearchStr<-1> = 'SEQ':@vm:'>=':InvThru\r\n SearchStr<-1> = 'SEQ':@vm:'#CM]'\r\n SearchStr<-1> = 'SEQ':@vm:'#DM]'\r\n \t OrderBySpecial = 'SEQ' \r\n end \r\nend\r\n\r\nif SearchStr then\r\n SearchStr := @fm\r\n Void = utility( 'CURSOR', 'H' )\r\n * do a btree.extract\r\n btree.extract( SearchStr, 'INVOICE', DictInvoiceTable, Keys, '', Flag )\r\n if Flag <> 0 then\r\n Void = msg( '', 'Error while extracting INVOICE records...' )\r\n return 0\r\n end\r\n if Keys then\r\n convert @vm to @fm in Keys\r\n if OrderBySpecial then\r\n Keys = key_sort( Keys, 'INVOICE', OrderBySpecial, 1 ) \r\n end else\r\n Keys = key_sort( Keys, 'INVOICE', 'CUST_NAME':@fm:'#ENTRY_DATE', 1 )\r\n end\r\n end_dialog( @window, Keys )\r\n end else\r\n MsgInfo = ''\r\n MsgInfo = 'No records found meeting your criteria...' \r\n MsgInfo = '!'\r\n Void = msg( '', MsgInfo )\r\n end\r\n Void = utility( 'CURSOR', 'A' )\r\nend else\r\n MsgInfo = ''\r\n MsgInfo = 'You have not entered any search criteria...' \r\n MsgInfo = '!'\r\n Void = msg( '', MsgInfo )\r\nend\r\nreturn 0\r\n\r\n" } } }