Skip to content

Instantly share code, notes, and snippets.

@noakesey
noakesey / xpp
Created December 14, 2018 15:56
Handling form control
[FormControlEventHandler(formControlStr(FMVehicle, ShowVersions), FormControlEventType::Clicked)]
public static void ShowVersions_OnClicked(FormControl sender, FormControlEventArgs e)
{
FormRun formRun = sender.formRun() as FormRun;
//etc…
}
@noakesey
noakesey / xpp
Created December 14, 2018 15:56
Handling form datasource event
[FormDataSourceEventHandler(formDataSourceStr(FMVehicle, FMVehicle),
FormDataSourceEventType::written)]
public static void FMVehicle_OnWritten(FormDataSource sender, FormDataSourceEventArgs e)
{
FormRun formRun = sender.formRun() as FormRun;
//etc..
}
@noakesey
noakesey / xpp
Created December 14, 2018 15:55
Handling form event
[FormEventHandler(formstr(FMVehicle), FormEventyType::Inititialized)]
public static void FMVehicle_OnInitialized(xFormRun sender, FormEventArgs e)
{
FormDataSource ds = sender.dataSource(formDataSourceStr(FMVehicle, FMVehicle)
//etc..
}
@noakesey
noakesey / xpp
Created December 10, 2018 09:39
public void processTransactions(true, false, false, false, true, true, false, false, true);
/// <summary>
/// Class extensions should have an Extension suffix, and should include the name
/// of the extending model as an infix to maintain uniqueness. The extension class
/// must be marked as final as it would make no logical sense to subclass
/// or extend an extension.
/// </summary>
[ExtensionOf(classStr(CustTransSettlement))]
final class CustTransSettlement_MyNewModel_Extension
{
protected boolean isTransTypeValidForInsertSettlementLines(CustTrans _custTrans)
/// <summary>
/// Form extensions should have an Extension suffix, and should include the name
/// of the extending model as an infix to maintain uniqueness. The extension class
/// must be marked as final as it would make no logical sense to subclass
/// or extend an extension.
/// </summary>
[ExtensionOf(tableStr(HcmWorker))]
public final class HcmWorker_MyNewModel_Extension
{
public display Name someOtherName()
SysDictEnum dictEnum = new SysDictEnum(enumNum(ProjSalesPriceMarkup));
int enumValueCount = dictEnum.values();
for (int enumValueIndex = 0; enumValueIndex < enumValueCount; enumValueIndex++)
{
ProjSalesPriceMarkup value = dictEnum.index2Value(enumValueIndex);
str actual = dictEnum.index2Label(enumValueIndex);
str expected = strMin();
@noakesey
noakesey / DictEnum.xpp
Created November 9, 2018 20:35
How to iterate through an enum
DictEnum dictEnum = new DictEnum(enumNum(ProjFundingType));
if (dictEnum)
{
int enumValueCount = dictEnum.values();
//Iterate on positions, not values!!
for (int enumValueIndex = 0; enumValueIndex < enumValueCount; enumValueIndex++)
{
if (dictEnum.index2Value(enumValueIndex) != ProjFundingType::Customer)
{
doSomething(dictEnum.index2Value(enumValueIndex);