/// <summary> /// Rate - set Multiply Rate from Divide Rate and vice versa /// </summary> /// <param name="ctx">context</param> /// <param name="windowNo">window no</param> /// <param name="tab">tab</param> /// <param name="field">field</param> /// <param name="value">value</param> /// <returns>null or error message</returns> public String Rate(Ctx ctx, int windowNo, GridTab tab, GridField field, Object value) { if (IsCalloutActive() || value == null) // assuming it is Conversion_Rate { return(""); } SetCalloutActive(true); Decimal rate1 = (Decimal)value; Decimal rate2 = Utility.Env.ZERO; Decimal one = new Decimal(1.0); if (System.Convert.ToDouble(rate1) != 0.0) // no divide by zero { rate2 = Decimal.Round(Decimal.Divide(one, rate1), 12, MidpointRounding.AwayFromZero); } // if (field.GetColumnName().Equals("MultiplyRate")) { tab.SetValue("DivideRate", rate2); } else { tab.SetValue("MultiplyRate", rate2); } log.Info(field.GetColumnName() + "=" + rate1 + " => " + rate2); SetCalloutActive(false); return(""); }
protected override void InitializeControls() { base.InitializeControls(); UpdateMainControlLayout(); UpdateRightControlLayout(); UpdateDetailsTabPanel(); UpdateGridTabPanel(); UpdateGridTab(); UpdateGrid(); UpdateLeftControlLayout(); UpdateFilterEditLayout(); UpdateApplyToolButton(); UpdateSaveToolButton(); UpdateFolderLayout(); TopLevelControl.MoveItem(0, BaseMessagePanel); TopLevelControl.MoveItem(1, MainControlLayout); MainControlLayout.MoveItem(0, LeftControlLayout); LeftControlLayout.MoveItem(0, CustomSearchContainer); LeftControlLayout.MoveItem(1, FolderLayout); FolderLayout.MoveItem(0, BaseFolder); LeftControlLayout.MoveItem(2, FilterEditLayout); FilterEditLayout.MoveItem(0, FilterEdit); FilterEdit.MoveItem(0, SaveToolButton); FilterEdit.MoveItem(1, ApplyToolButton); MainControlLayout.MoveItem(1, RightControlLayout); RightControlLayout.MoveItem(0, GridTabPanel); GridTabPanel.MoveItem(0, GridTab); GridTab.MoveItem(0, Grid); RightControlLayout.MoveItem(1, DetailsTabPanel); SetControlsDefInheritance(UId); InitializeLocalizableValues(); }
/** * Invoice Line - Charge. * - updates PriceActual from Charge * - sets PriceLimit, PriceList to zero * Calles tax * @param ctx context * @param WindowNo window no * @param mTab tab * @param mField field * @param value value * @return null or error message */ public String Invalidate(Ctx ctx, int WindowNo, GridTab mTab, GridField mField, Object value) { // Summary ? if (mTab.GetValue("IsSummary") != null) { mTab.SetValue("IsValid", false); return(""); } return(""); } // charge
/// <summary> /// Set Account Date to the date of the calling column. /// </summary> /// <param name="ctx">context</param> /// <param name="windowNo">window no</param> /// <param name="tab">tab</param> /// <param name="field">field</param> /// <param name="value">value</param> /// <returns>null or error message</returns> public String DateAcct(Ctx ctx, int windowNo, GridTab tab, GridField field, Object value) { if (IsCalloutActive()) // assuming it is resetting value { return(""); } // setCalloutActive(true); if (value == null || !(value.GetType() == typeof(DateTime))) { return(""); } tab.SetValue("DateAcct", value); // setCalloutActive(false); return(""); }
protected override void InitializeControls() { base.InitializeControls(); UpdateMainControlLayout(); UpdateRightControlLayout(); UpdateDetailsTabPanel(); UpdateGridTabPanel(); UpdateGridTab(); UpdateCheckMenuItemAdministratedByOperations(); UpdateCheckMenuItemAdministratedByColumns(); UpdateCheckMenuItemAdministratedByRecords(); UpdateCheckMenuItemLookup(); UpdateMenuSeparator(); UpdateCheckMenuItemModule(); UpdateCheckMenuItemAll(); UpdateLeftControlLayout(); UpdateFilterEditLayout(); UpdateApplyToolButton(); UpdateSaveToolButton(); UpdateFolderLayout(); TopLevelControl.MoveItem(0, BaseMessagePanel); TopLevelControl.MoveItem(1, MainControlLayout); MainControlLayout.MoveItem(0, LeftControlLayout); LeftControlLayout.MoveItem(0, CustomSearchContainer); LeftControlLayout.MoveItem(1, FolderLayout); FolderLayout.MoveItem(0, BaseFolder); LeftControlLayout.MoveItem(2, FilterEditLayout); FilterEditLayout.MoveItem(0, FilterEdit); FilterEdit.MoveItem(0, SaveToolButton); FilterEdit.MoveItem(1, ApplyToolButton); MainControlLayout.MoveItem(1, RightControlLayout); RightControlLayout.MoveItem(0, GridTabPanel); GridTabPanel.MoveItem(0, GridTab); GridTab.MoveItem(0, Grid); GridTab.MoveItem(0, CheckMenuItemAll); GridTab.MoveItem(1, CheckMenuItemModule); GridTab.MoveItem(2, MenuSeparator); GridTab.MoveItem(3, CheckMenuItemLookup); GridTab.MoveItem(4, CheckMenuItemAdministratedByRecords); GridTab.MoveItem(5, CheckMenuItemAdministratedByColumns); GridTab.MoveItem(6, CheckMenuItemAdministratedByOperations); GridTab.InsertItem(7, CreateCheckMenuItemIsInSSPEntitySchemaAccessList()); RightControlLayout.MoveItem(1, DetailsTabPanel); SetControlsDefInheritance(UId); InitializeLocalizableValues(); }
/// <summary> /// Start Callout. /// Callout's are used for cross field validation and setting values in other fields /// when returning a non empty (error message) string, an exception is raised /// When invoked, the Tab model has the new value! /// </summary> /// <param name="ctx">context</param> /// <param name="methodName">method name</param> /// <param name="windowNo">current window number</param> /// <param name="tab">model Tab</param> /// <param name="field">modal field</param> /// <param name="newValue">new value</param> /// <param name="oldValue">old value</param> /// <returns>Error message or ""</returns> public String Start(Ctx ctx, String methodName, int windowNo, GridTab tab, GridField field, Object newValue, Object oldValue) { if (methodName == null || methodName.Length == 0) { throw new ArgumentException("No Method Name"); } // String retValue = ""; StringBuilder msg = new StringBuilder(methodName).Append(" - ") .Append(field.GetColumnName()) .Append("=").Append(newValue) .Append(" (old=").Append(oldValue) .Append(") {active=").Append(IsCalloutActive()).Append("}"); if (!IsCalloutActive()) { log.Info(msg.ToString()); } // Find Method MethodInfo method = GetMethod(methodName); if (method == null) { throw new ArgumentException("Method not found: " + methodName); } int argLength = method.GetParameters().Length; if (!(argLength == 5 || argLength == 6)) { throw new ArgumentException("Method " + methodName + " has invalid no of arguments: " + argLength); } // Call Method try { Object[] args = null; if (argLength == 6) { args = new Object[] { ctx, windowNo, tab, field, newValue, oldValue } } ; else { args = new Object[] { ctx, windowNo, tab, field, newValue } }; retValue = (String)method.Invoke(this, args); } catch (Exception e) { SetCalloutActive(false); //Throwable ex = e.getCause(); // InvocationTargetException //if (ex == null) // ex = e; ////log.log(Level.SEVERE, "start: " + methodName, ex); //ex.printStackTrace(System.err); //retValue = ex.getLocalizedMessage(); retValue = e.Message; } return(retValue); }
/// <summary> ///Get Tab data and create MTab(s) /// </summary> /// <returns></returns> private bool LoadTabData() { log.Config(""); if (_vo.GetTabs() == null) { return(false); } for (int t = 0; t < _vo.GetTabs().Count; t++) { GridTabVO mTabVO = _vo.GetTabs()[t]; if (mTabVO != null) { int onlyCurrentDays = 0; if (t == 0 && IsTransaction()) { onlyCurrentDays = 1; } GridTab mTab = new GridTab(mTabVO, onlyCurrentDays, _vo); mTabVO.GetCtx().SetContext(mTabVO.windowNo, mTabVO.tabNo, "KeyColumnName", mTab.GetKeyColumnName()); // Set Link Column if (mTab.GetLinkColumnName().Length == 0) { List <String> parents = mTab.GetParentColumnNames(); // No Parent - no link if (parents.Count == 0) { ; } // Standard case else if (parents.Count == 1) { mTab.SetLinkColumnName(parents[0]); } else { // More than one parent. // Search prior tabs for the "right parent" // for all previous tabs for (int i = 0; i < _tabs.Count; i++) { // we have a tab GridTab tab = _tabs[i]; String tabKey = tab.GetKeyColumnName(); // may be "" // look, if one of our parents is the key of that tab for (int j = 0; j < parents.Count; j++) { String parent = parents[j]; if (parent.Equals(tabKey)) { mTab.SetLinkColumnName(parent); break; } // The tab could have more than one key, look into their parents if (tabKey.Equals("")) { for (int k = 0; k < tab.GetParentColumnNames().Count; k++) { if (parent.Equals(tab.GetParentColumnNames()[k])) { mTab.SetLinkColumnName(parent); break; } } } } // for all parents } // for all previous tabs } // parents.size > 1 } // set Link column mTab.SetLinkColumnName(null); // overwrites, if AD_Column_ID exists // _tabs.Add(mTab); } } // for all tabs LogAccess(); return(true); } // loadTabData