Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md

This commit is contained in:
2026-08-18 20:59:52 -04:00
commit 454973e269
5978 changed files with 2664094 additions and 0 deletions
+113
View File
@@ -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