At about this time, I would opt to train the manager in how to design reports.
Code:
'Date Created: 09-Jun-2011 11:29:00 AM
'Last Updated: 09-Jun-2011 04:16:52 PM
'Created By : andy
'Updated By : andy
OPTION STRICT
OPTION ENCRYPTED_TOKENS
ON ERROR GOTO ERR_HANDLER
DIM vInvoice_ItemsP as P
DIM vOrderC as C
DIM vFilterC as C
DIM vFormatC as C
DIM vIndxN as N
DIM arrInvoice[0] as P
DIM arrInvoice[0].ProductC as C
DIM arrInvoice[0].ExtensionN as N
vInvoice_ItemsP = table.open("invoice_items",FILE_RW_SHARED)
vOrderC = "Product_id"
vInvoice_ItemsP.order(vOrderC)
vInvoice_ItemsP.fetch_first()
WHILE .not. vInvoice_ItemsP.fetch_eof()
vIndxN = arrInvoice.find(vInvoice_ItemsP.Product_Id, "ProductC")
IF vIndxN > 0 THEN
'Product found
arrInvoice[vIndxN].ExtensionN = arrInvoice[vIndxN].ExtensionN + vInvoice_ItemsP.extension
ELSE
'Product not Found
arrInvoice[].ProductC = vInvoice_ItemsP.product_id
arrInvoice[..].ExtensionN = vInvoice_ItemsP.extension
END IF
vInvoice_ItemsP.fetch_next()
END WHILE
vInvoice_ItemsP.close()
vFormatC = "ProductC|ExtensionN"
trace.WriteLn(arrInvoice.dump_properties(vFormatC))
END
'-----------------------------------
'Error handler
'-----------------------------------
ERR_HANDLER:
Dim err as N= error_code_get()
Dim msg as C= "Error # "+ err + crlf() + error_text_get(err)
msg = msg + crlf() + "Script: " + error_script_get()
msg = msg + crlf() + "Line #: " + error_line_number_get()
trace.writeln(msg)
ui_msg_box("Error", msg, ui_attention_symbol)
msg = ""
END
Bookmarks