陈清红
2025-04-14 880f3c0257eeb8c37761d484258fdd102a369a19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Quintiq file version 2.0
#parent: #root
Method EditUnit (
  internal[GUIComponent] parent,
  Unit selection
) id:Method_DialogCreateEditUnit_EditUnit
{
  #keys: '[11660.0.16642470]'
  Body:
  [*
    // Edit a unit
    
    data := shadow( selection );
    
    Dialog.Data( data );
    
    this.SetDefaultValue( selection.Parent(), selection.Group() );
    
    DataHolderUnitSelection.Data( selection );
    
    if( not isnull( data ) )
    {
      CheckBoxHasStart.Checked( selection.StartDate().IsFinite() )
      CheckBoxHasEnd.Checked( selection.EndDate().IsFinite() )
    }
    
    Dialog.SetUI();
    Dialog.SetDefaultCapacity();
    Dialog.SetTooltip();
    
    result := this.DoModal( parent );
    
    if( result > 0 )
    {
      parentunit := null( Unit );
      if( CheckBoxParent.Checked() )
      {
        parentunit := SelectionParent.Data();
      }
    
      start := Date::MinDate();
      end := Date::MaxDate();
      if( CheckBoxHasStart.Checked() )
      {
        start := GUIDateTimeSelectorStart.DateTime().Date();
      }
      if( CheckBoxHasEnd.Checked() )
      {
        end := GUIDateTimeSelectorEnd.DateTime().Date();
      }
    
      data.Parent( relset, parentunit );
      if( CheckBoxHasUserFrozenFutureDuration.Checked() )
      {
        GUIDurationSelectorUserFrozenFutureDuration.Enabled( false );
        data.UserFrozenFutureDuration( GUIDurationSelectorUserFrozenFutureDuration.Duration() );     
      }
      
      data.StartDate( start );
      data.EndDate( end );
      selection.UpdateTypeIndex( EditorID.Text() );      // Read-only, apply changes to shadow is not taking place for read-only attribute when editing.
      data.Commit();
    }
  *]
}