Вы находитесь на странице: 1из 2

[ExtensionOf(formStr(SalesTable ))]

final class SalesTable_Extension


{

/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormEventHandler(formStr(SalesTable), FormEventType::Initialized)]
public static void SalesTable_OnInitialized(xFormRun sender, FormEventArgs e)
{
FormRun SalesTableListPage = sender;
FormBuildDesign SalesTableListPageDesign =
SalesTableListPage.form().design();

SalesTableListPageDesign.workflowEnabled(true);
SalesTableListPageDesign.workflowDatasource(tableStr(SalesTable));
SalesTableListPageDesign.workflowType(workflowTypeStr(Avenir_SOWF_Type));
}
//To enable workflow in SalesTable form
[PostHandlerFor(classStr(SalesTableInteraction),
methodStr(SalesTableInteraction, enableHeaderActions))]
public static void
SalesTableInteraction_Post_enableHeaderActions(XppPrePostArgs args)
{
SalesTable activeRecord;
SalesTableInteraction interaction = args.getThis();
Page salesTablePage = interaction.page();
if (salesTablePage.activeRecord(tablestr(SalesTable)))
{
FormRun formrun = salesTablePage.formRun();
FormBuildDesign design = formrun.form().design();
FormDesign wfDesign = formrun.design();
//WF setup
design.workflowEnabled(true);
design.workflowDatasource(tableStr(SalesTable));
design.workflowType(workflowTypeStr(LTSalesOrderWFType));
wfDesign.workflowEnabled(true);
wfDesign.workflowDatasource(tableStr(SalesTable));
wfDesign.workflowType(workflowTypeStr(LTSalesOrderWFType));
//updating wf controls
formrun.updateWorkflowControls();
}
}
// To make workflow button visible in SalesTable form,
[PostHandlerFor(formStr(SalesTable), formMethodStr(SalesTable,
canSubmitToWorkflow))]
public static void SalesTable_Post_canSubmitToWorkflow(XppPrePostArgs args)
{
FormRun salesTableDetails = args.getThis();
formDataSource salesTableDS =
salesTableDetails.dataHelper().FindDataSource(formDataSourceStr(SalesTable,
SalesTable));
SalesTable salesTable = salesTableDS.cursor();
boolean ret = args.getReturnValue();
if (salesTable.LTWorkFlowStatus == VersioningDocumentState::Draft)
{
ret = NoYes::True;
}
else
{
ret = NoYes::false;
}
args.setReturnValue(ret);

salesTableDetails.design().controlName('WorkflowActionBarButtonGroup').visible(true
);
}

/// <summary>
/// Can submit to workflow
/// </summary>
/// <param name="args"></param>
[PostHandlerFor(classStr(FormDataUtil), staticMethodStr(FormDataUtil,
canSubmitToWorkflow))]
public static void FormDataUtil_Post_canSubmitToWorkflow(XppPrePostArgs args)
{
Common record =
args.getArg(identifierStr(_record));
SalesTable salesTable = record as SalesTable;
boolean ret = args.getReturnValue();

if (record.TableId == tableNum(SalesTable))
{
if (salesTable.Avenir_SOStatus == Avenir_SOStatus::NotSubmitted)
{
ret = boolean::true;
}
else
{
ret = boolean::false;
}
}
args.setReturnValue(ret);
}

Вам также может понравиться