I am messing around with the Architecture made Simple work series. I have almost managed to mimic it in my screen.
I get these errors when it tries to update the values and process them.
---------------------------
Error
---------------------------
Unable to generate a save predicate for UserSettings if field SettingsID is not mapped in ttUserSettingsBefore. (11896)
---------------------------
OK
---------------------------
---------------------------
Error
---------------------------
Unable to generate SAVE-WHERE-STRING for SAVE-ROW-CHANGES for buffer UserSettings. (11911)
---------------------------
OK
---------------------------
I can not figure this out. I don't know if it's something involving the db or the includes or what. Also i left out other code sections that weren't the problem. If you need more info please let me know.
BTW i am on 10.1c
I get these errors when it tries to update the values and process them.
---------------------------
Error
---------------------------
Unable to generate a save predicate for UserSettings if field SettingsID is not mapped in ttUserSettingsBefore. (11896)
---------------------------
OK
---------------------------
---------------------------
Error
---------------------------
Unable to generate SAVE-WHERE-STRING for SAVE-ROW-CHANGES for buffer UserSettings. (11911)
---------------------------
OK
---------------------------
Code:
/****TEMP-TABLE******/
DEFINE TEMP-TABLE ttUserSettings BEFORE-TABLE ttUserSettingsBefore
FIELD SettingsID AS CHARACTER FORMAT "->,>>>,>>9"
FIELD UserName AS CHARACTER FORMAT "X(25)"
FIELD ScreenName AS CHARACTER FORMAT "X(25)"
FIELD FieldName AS CHARACTER FORMAT "X(25)"
FIELD FieldValue AS CHARACTER FORMAT "X(25)"
.
/****DATASET******/
DEFINE DATASET dsUserSettings FOR ttUserSettings.
/******UI*********/
/*Change Data*/
TEMP-TABLE ttUserSettings:TRACKING-CHANGES = TRUE.
FOR EACH ttUserSettings:
ASSIGN ttUserSettings.ScreenName = "Changed".
END.
TEMP-TABLE ttUserSettings:TRACKING-CHANGES = FALSE.
/* Gets a copy of only the records that were changed */
DEFINE VARIABLE hDSChanges AS HANDLE NO-UNDO.
CREATE DATASET hDSChanges.
hDSChanges:CREATE-LIKE (DATASET dsUserSettings:HANDLE).
hDSChanges:GET-CHANGES (DATASET dsUserSettings:HANDLE).
RUN changeUserSettingsData IN hSaUserSettings
(INPUT-OUTPUT DATASET-HANDLE hDSChanges).
hDSChanges:MERGE-CHANGES (DATASET dsUserSettings:HANDLE).
/******daUserSettings.cls******/
CLASS daUserSettings:
{ttUserSettings.i}
{dsUserSettings.i}
CONSTRUCTOR PUBLIC daUserSettings():
/* Init */
END CONSTRUCTOR.
METHOD PUBLIC VOID fetchUserSettingsData(
INPUT fFilterValue AS CHAR,
OUTPUT DATASET FOR dsUserSettings):
DEFINE VAR qString AS CHAR NO-UNDO.
DEFINE QUERY qUserSettings FOR UserSettings.
DEFINE DATA-SOURCE scUserSettings FOR QUERY qUserSettings.
BUFFER ttUserSettings:ATTACH-DATA-SOURCE(DATA-SOURCE scUserSettings:HANDLE,"").
QUERY qUserSettings:QUERY-PREPARE("For each UserSettings no-lock " + fFilterValue).
DATASET dsUserSettings:FILL().
END METHOD.
METHOD PUBLIC VOID changeUserSettingsData (
INPUT-OUTPUT DATASET FOR dsUserSettings):
DEFINE DATA-SOURCE scUserSettings FOR UserSettings.
/****Here is where the problem occurs ****/
BUFFER ttUserSettings:ATTACH-DATA-SOURCE(DATA-SOURCE scUserSettings:HANDLE).
FOR EACH ttUserSettingsBefore:
BUFFER ttUserSettingsBefore:SAVE-ROW-CHANGES().
END.
/***********************************/
END METHOD .
END CLASS.
I can not figure this out. I don't know if it's something involving the db or the includes or what. Also i left out other code sections that weren't the problem. If you need more info please let me know.
BTW i am on 10.1c