For example, when ordering you want the shop was already installed. This choice should be provided at the beginning of the program.
Perhaps another solution to this problem:
- To select the current object at the beginning of the program, you can use generated Flexberry form to nehrenovo class.
- To store the current object, you can use a static field public class.
- To set the current object, you can use the solution proposed in the article setting the value field of the object to create.
A user-level solution would be: have a list of stores when you start the application form appears where you can select the current store. When you create a record of the purchase the current store is automatically inserted.
Work in Flexberry Tool
In Flexberry was created the class diagram. To determine the current shop was created phranky class](fo_using-not-stored-classes.html) ВыборМагазинаПоУмолчанию
and the generated code.
Work with program code
In public the applications you develop in class to determine static field.
public class Магазин : ICSSoft.STORMNET.DataObject
{
public static Магазин CurrentShop;
//...
}
On the form nehrenovo class to suppress the message about saving data on a form, override the method OnClosing
where to ban the call to the base method.
To set field values when the form is opened to override the event Edit
.
To determine the behavior of the form by clicking on the button.
private void buttonAuthorize_Click(object sender, EventArgs e) //clicking on "Authorize"
{
//verify that the store you selected
if ((DataObject as ВыборМагазинаПоУмолчанию).ТекущийМагазин != null)
{
Магазин.CurrentShop = ((ВыборМагазинаПоУмолчанию)DataObject).ТекущийМагазин; //save the current store
this.DialogResult = DialogResult.OK; //to finish the authorization
this.Close();
}
else
{
MessageBox.Show("You have not selected a store for authorization.");
}
}
private void buttonExit_Click(object sender, EventArgs e) //clicking the "Exit" button
{
this.Close();
}
To run a form modal to launch the desktop application. Example from class МенеджерМагазиновDesktop
:
public static bool Run_SetCurrentShopForm()
{
bool result = false;
try
{
ICSSoft.STORMNET.RightManager.DisableAllRightChecks();
CheckForIllegalCrossThreadCalls = false;
IIS.WinUI.Runners.EditFormRunner fr =
new IIS.WinUI.Runners.EditFormRunner(typeof(C__ВыборМагазинаПоУмолчаниюE),
"", "Current store", "",
new ВыборМагазинаПоУмолчанию(),
typeof(ВыборМагазинаПоУмолчанию), false);
System.Windows.Forms.Form frm = null;
frm = fr.RunAndGetForm();
if (!frm.IsDisposed && !frm.Disposing)
{
frm.BringToFront();
frm.Visible = false;
CheckForIllegalCrossThreadCalls = false;
if (frm.ShowDialog() == DialogResult.OK)
{
result = true;
}
}
return result;
}
catch (Exception)
{
throw new Exception("Failed to set the default value.");
}
}
static void Main()
{
try
{
// *** Start programmer edit section *** (Managermagazin Before authorization)
//below code for launching the form
if (!Run_SetCurrentShopForm())
{
return; //that is, the user did not want to choose the default value, stop working
}
// *** End programmer edit section *** (Managermagazin Before authorization)
//...
}
//...
}