Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
# Property of Four Js*
|
||||
# (c) Copyright Four Js 1995, 2019. All Rights Reserved.
|
||||
# * Trademark of Four Js Development Tools Europe Ltd
|
||||
# in the United States and elsewhere
|
||||
#
|
||||
# Four Js and its suppliers do not warrant or guarantee that these
|
||||
# samples are accurate and suitable for your purposes. Their inclusion is
|
||||
# purely for information purposes only.
|
||||
|
||||
IMPORT FGL Styles
|
||||
IMPORT FGL CityList
|
||||
|
||||
DEFINE custarr DYNAMIC ARRAY OF RECORD
|
||||
c_id INTEGER,
|
||||
c_name VARCHAR(50),
|
||||
c_ts DATETIME YEAR TO SECOND
|
||||
END RECORD
|
||||
|
||||
DEFINE custcrit RECORD
|
||||
cust_id STRING,
|
||||
cust_name STRING,
|
||||
cust_state STRING,
|
||||
cust_city STRING,
|
||||
cust_zipcode STRING
|
||||
END RECORD
|
||||
|
||||
MAIN
|
||||
DEFINE s INTEGER
|
||||
DEFINE where_clause, name, state STRING
|
||||
DEFINE first_rows SMALLINT
|
||||
DEFINE first_rows_count INTEGER
|
||||
|
||||
OPTIONS INPUT WRAP
|
||||
|
||||
OPEN FORM f1 FROM "QueryCustomers"
|
||||
DISPLAY FORM f1
|
||||
|
||||
CALL addCommonStyles()
|
||||
CALL addStyleList1()
|
||||
|
||||
DIALOG ATTRIBUTES(FIELD ORDER FORM, UNBUFFERED)
|
||||
|
||||
INPUT BY NAME first_rows, first_rows_count
|
||||
ON CHANGE first_rows
|
||||
CALL DIALOG.setFieldActive("first_rows_count",first_rows)
|
||||
END INPUT
|
||||
|
||||
CONSTRUCT BY NAME where_clause
|
||||
ON cust_id,
|
||||
cust_name,
|
||||
cust_state,
|
||||
cust_city,
|
||||
cust_zipcode
|
||||
AFTER FIELD cust_id,
|
||||
cust_name,
|
||||
cust_state,
|
||||
cust_city,
|
||||
cust_zipcode
|
||||
DISPLAY BY NAME where_clause
|
||||
END CONSTRUCT
|
||||
|
||||
DISPLAY ARRAY custarr TO sr.*
|
||||
BEFORE ROW
|
||||
MESSAGE SFMT("Row: %1/%2", DIALOG.getCurrentRow("sr"), DIALOG.getArrayLength("sr"))
|
||||
END DISPLAY
|
||||
|
||||
BEFORE DIALOG
|
||||
LET first_rows = FALSE
|
||||
CALL DIALOG.setFieldActive("first_rows_count",FALSE)
|
||||
|
||||
ON ACTION zoom_city
|
||||
CALL select_city(DIALOG.getFieldBuffer("cust_city")) RETURNING s, name, state
|
||||
IF s==0 THEN
|
||||
DISPLAY name, state TO cust_city, cust_state
|
||||
END IF
|
||||
|
||||
-- Save/Load criterias: would be nice to have DIALOG.setFieldBuffer
|
||||
-- to make it generic.
|
||||
ON ACTION clear_criterias
|
||||
CLEAR cust_id, cust_name, cust_state, cust_city, cust_zipcode
|
||||
LET where_clause = NULL
|
||||
DISPLAY BY NAME where_clause
|
||||
ON ACTION load_criterias
|
||||
DISPLAY BY NAME custcrit.*
|
||||
ON ACTION save_criterias
|
||||
CALL get_fldbuf( cust_id, cust_name, cust_state, cust_city, cust_zipcode )
|
||||
RETURNING custcrit.*
|
||||
|
||||
ON ACTION fetch
|
||||
DISPLAY BY NAME where_clause
|
||||
CALL cust_loadlist(300 / LENGTH(where_clause))
|
||||
|
||||
ON ACTION clear_list
|
||||
CALL cust_loadlist(0)
|
||||
|
||||
ON ACTION close
|
||||
EXIT DIALOG
|
||||
|
||||
END DIALOG
|
||||
|
||||
END MAIN
|
||||
|
||||
-- Dummy function to fill the list of customers (normally, SELECT from database)
|
||||
FUNCTION cust_loadlist(m)
|
||||
DEFINE m,i INTEGER
|
||||
CALL custarr.clear()
|
||||
FOR i=1 TO m
|
||||
CALL custarr.appendElement()
|
||||
LET custarr[i].c_id = i
|
||||
LET custarr[i].c_name = "Name " || i
|
||||
LET custarr[i].c_ts = CURRENT
|
||||
END FOR
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user