рджреВрд╕рд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдирд╣реАрдВред рднрд╛рдЧ 2: рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рддрд░реНрдХ



LsFusion рднрд╛рд╖рд╛ рдФрд░ рдордВрдЪ рддреНрд░рдпреА рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧред рдкрд╣рд▓рд╛ рднрд╛рдЧ рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдорд┐рд▓рд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдпрд╛ рдЕрдиреНрдп рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣рд░ рдЪреАрдЬ рдкрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рддрд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдлрд╛рдЗрдЯрд░ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рдЗрдЪреНрдЫреБрдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рдбрд╝рд╛рдИ рджреЗрдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд░рдХреНрдд рдХреЗ рд╕рд╛рде (рдФрд░ рдпрд╣ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдХреА рдЪрд░реНрдЪрд╛ рдиреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреА рдФрд░ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╣рд░рд╛рдпрд╛ рд╣реИ) ред рд▓реЗрдХрд┐рди рджреЛ рдмрд╛рддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

a) рдпрд╣ рд╣реИрдмрд░ рд╣реИред рдпрд╣реА рд╣реИ, рдПрдХ рддрдХрдиреАрдХреА рд╕рдВрд╕рд╛рдзрди, рд╡реЗ рдпрд╣рд╛рдВ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░реЛрдВ рдФрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрди рдирд╛рд░реЛрдВ рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдХреБрдЫ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред
рдмреА) рдпрд╣ рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рдЬрд╛рд░ рд╣реИ, рдФрд░ рдпрд╣ рд╡рдЬрди рдШрдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдЬрд╛рд░ рдХреЗ рд╕рдорд╛рди рд╣реИред рдпрд╣рд╛рдВ, рд╣рд░ рдХреЛрдИ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рд╡рд┐рд╡рд░рдг рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╢реИрддрд╛рди рдЭреВрда рдмреЛрд▓рддрд╛ рд╣реИ, рдпрд╛ рддреЛ рд╕рд░рд▓рддрдо CRUD рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рддрд░рдХреАрдмреЛрдВ рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрддреЗ рд╣реИрдВ: рд╡реЗ рдХреЛрдб рдХреЗ рдХреБрдЫ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдЫрд┐рдкрд╛рддреЗ рд╣реИрдВ "рдпрд╣ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ" "," рдПрдХ рджреЛ рдорд┐рдирдЯ рдореЗрдВ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ "рдФрд░ рдРрд╕рд╛ рд╣реА рд╕рдм рдХреБрдЫред

рджрд░рдЕрд╕рд▓, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рдереЗ: рдпрд╛ рддреЛ рдорд╛рд░реНрдХреЗрдЯрд┐рдВрдЧ рдмреБрд▓рд╢рд┐рдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн рдФрд░ рдЬреЛрдЦрд┐рдо рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВ, рдпрд╛ рдПрдХ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг рдФрд░ "рд╣рдореЗрдВ рджреВрд╕рд░реА рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ" рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓реЗрдЦ рди рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдард┐рди рд╣реЛрдЧрд╛, рдмрд▓реНрдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред рддрджрдиреБрд╕рд╛рд░, рд╣рдордиреЗ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рднрд╛рд╖рд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рд▓рд╛рднреЛрдВ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ (рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдирд╣реАрдВ), рддреЛ рд╕рд╛рдЗрдЯ рдкрд░ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рдкреГрд╖реНрда рд╣реЛрддреЗ рд╣реИрдВ: рдХреНрдпрд╛, рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдФрд░ рджреЗрддрд╛ рд╣реИ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЗрди рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╡рд╣рд╛рдВ рдСрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рднреА рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ "рдЭрд╛рдбрд╝рд┐рдпреЛрдВ рдореЗрдВ рдкрд┐рдпрд╛рдиреЛ" рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЛрдб рд╣реИрдВред

рд▓реЗрдХрд┐рди рдкрд░реНрдпрд╛рдкреНрдд рдЧреАрддрд╛рддреНрдордХ рдЦреБрджрд╛рдИ, рд╣рдо рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рддрд░реНрдХ рдХреЗ рд▓рдбрд╝рд╛рдХреВ рд╡рд┐рд╡рд░рдг рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВред

рдбреЛрдореЗрди рд▓реЙрдЬрд┐рдХ (рдкрд╣рд▓реЗ рд▓реЗрдЦ) рдХреА рддрд░рд╣, lsFusion рдореЗрдВ рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреА рд╕рднреА рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдПрдХ рд╕реНрдЯреИрдХ рд╣реИрдВ:



рдФрд░ рдпрд╣ рдЗрд╕ рд╕реНрдЯреИрдХ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛

рдЖрдХрд╛рд░


рдкреНрд░рд╕реНрддреБрддрд┐ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдПрдХ рд░реВрдк рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХрдорд╛рддреНрд░) рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ, рдЬреЛ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдФрд░ рдореБрджреНрд░рдг, рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдлрд╝реЙрд░реНрдо рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рд░реВрдк рд╕реЗ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • рдкреНрд░рдкрддреНрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдлрд╝реЙрд░реНрдо рдХреНрдпрд╛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
  • рдкреНрд░рдкрддреНрд░ рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЖрдХрд╛рд░ рдХреА рд╕рдВрд░рдЪрдирд╛


рд╣рдо рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╡рд╕реНрддреБрдПрдВ


рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдлреЙрд░реНрдо рдХреА рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЗрди рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рднреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрджрд┐ рдпрд╣ рд╕рдВрджрд░реНрдн рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо "рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" (рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП) рдФрд░ "рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" (рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП) рд╢рдмреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдкреНрд░рддреНрдпреЗрдХ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреА рдХрдХреНрд╖рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЧ рдпрд╛ рддреЛ рдЖрджрд┐рдо (рдмрд┐рд▓реНрдЯ-рдЗрди) рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ (рдХрд╕реНрдЯрдо) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
FORM currentBalances ' '
OBJECTS s = Stock, i = Item // ,
;
рдкреНрд░рдкрддреНрд░ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдХреНрд░рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рддрджрдиреБрд╕рд╛рд░, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕реЗрдЯ рд╕реЗ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ рд╣реИ)ред

рдХрд┐рд╕реА рднреА рд╕рдордп рдлреЙрд░реНрдо рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХрд╛ рдПрдХ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рд╣реИред рдЗрд╕рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рддреЛ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрд╛ рд╕реНрдерд┐рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ "рд╡рд╕реНрддреБрддрдГ"ред

рдЧреБрдг рдФрд░ рдХрд╛рд░реНрдп


рдкреНрд░рдкрддреНрд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЧреБрдгреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рддрд░реНрдХ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд░рд┐рдкреЛрд░реНрдЯ рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдореЗрдВ рдЙрдирдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдлреЙрд░реНрдо рдкрд░ рдЙрдирдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧреБрдгреЛрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдкрддреНрддрд┐ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ (рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╣рд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рд╣реИ)ред

рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡рд╕реНрддреБ


рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдлреЙрд░реНрдо рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдо рдЗрд╕реЗ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╣реЗрдВрдЧреЗ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбрд┐рд╕реНрдкреНрд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЙрддреНрддрд░рд╛рд░реНрджреНрдзред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╢реЗрд╖ рд░рд╛рд╢рд┐ рд╣реИ - рдПрдХ рдЧреЛрджрд╛рдо рдФрд░ рдорд╛рд▓, рдФрд░ рддреАрди рдЧреБрдг - рдЧреЛрджрд╛рдо рдФрд░ рдорд╛рд▓ рдХреЗ рдирд╛рдо рдФрд░ рдЧреЛрджрд╛рдо рдореЗрдВ рдорд╛рд▓ рдХрд╛ рд╕рдВрддреБрд▓рди:
FORM currentBalances ' '
OBJECTS s = Stock, i = Item // ,
PROPERTIES name(s), name(i), currentBalance(s, i)
;
рдлрд┐рд░, рдЧреЛрджрд╛рдо рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП, рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдПрд╕ (рдЧреЛрджрд╛рдо) рд╣реЛрдЧрд╛, рдФрд░ рдорд╛рд▓ рдФрд░ рд╢реЗрд╖ рд░рд╛рд╢рд┐ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП, рдореИрдВ (рдорд╛рд▓)ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджреГрд╢реНрдп рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЧреЛрджрд╛рдореЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╢реЗрд╖ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рди рдирд╣реАрдВ)ред

рдлрд┐рд▓реНрдЯрд░ рдФрд░ рдЫрдВрдЯрдиреА


рдкреНрд░рддреНрдпреЗрдХ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдСрд░реНрдбрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдлреЙрд░реНрдо рдкрд░ рджреЗрдЦрдиреЗ / рдЪрдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕реАрдорд┐рдд рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рд┐рд▓реНрдЯрд░ рдорд╛рдирджрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╣реИ (рдЕрд░реНрдерд╛рдд, рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде)ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЗрд╡рд▓ рдЙрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рд╢реНрд░реГрдВрдЦрд▓рд╛) рдХреЗ рд╕реЗрдЯ рджрд┐рдЦрд╛рдП рдЬрд╛рдПрдВрдЧреЗ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╕рдВрдкрддреНрддрд┐ рдорд╛рди NULL рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдХрд░реЗрдВрдЯрдмреИрд▓реЗрдВрд╕ (s, i) рдпрд╛ isActive (i) рдХреЛ рдЙрдкрд░реЛрдХреНрдд рдлреЙрд░реНрдо рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддреЗ рд╣реИрдВ:
FORM currentBalances ' '
OBJECTS s = Stock, i = Item // ,
PROPERTIES name(s), name(i), currentBalance(s, i)
FILTERS currentBalance(s, i) OR isActive(i)
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреЗрд╡рд▓ рд╡рд╣реА рдЙрддреНрдкрд╛рдж рдЬреЛ рд╕рдВрддреБрд▓рди рдкрд░ рд╣реИрдВ рдпрд╛ рд╕рдХреНрд░рд┐рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВ, рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рд╕реЙрд░реНрдЯреНрд╕ рдХреЛ рдЙрд╕ рд░реВрдк рдореЗрдВ рдЧреБрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдСрд░реНрдбрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рд╕рдм рдХреБрдЫ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИред

рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдореВрд╣


рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ "рдХрд╛рд░реНрдЯреЗрд╢рд┐рдпрди рдЙрддреНрдкрд╛рдж" рдЯреЗрдмрд▓ / рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреЛ рдХрд┐ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ - рд╕рднреА рдЬреЛрдбрд╝реЗ, рддреАрди рдСрдмреНрдЬреЗрдХреНрдЯ - рдЯреНрд░рд┐рдкрд▓реНрд╕, рдЖрджрд┐)ред
FORM currentBalances ' '
OBJECTS (s = Stock, i = Item) //
PROPERTIES name(s), name(i), currentBalance(s, i)
FILTERS currentBalance(s, i) OR isActive(i)
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рддрджрдиреБрд╕рд╛рд░, рд▓рдЧрднрдЧ рд╣рд░ рдЬрдЧрд╣, рдлреЙрд░реНрдо рдХреА рдПрдХрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмрдЬрд╛рдп рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ, рдЖрдк рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрдж "рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдФрд░ рдХрдИ рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕рдореВрд╣ рдмрд╣реБрдд рдХрдо рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдпрд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓рдиреЗ рдФрд░ рдЧрд┐рдирдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рд╡рд╕реНрддреБ рд╕реЗ рдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ "рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдореВрд╣" рдФрд░ "рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕реЗрдЯ" рдХреЗ рдмрдЬрд╛рдп рд╣рд░ рдЬрдЧрд╣ "рдСрдмреНрдЬреЗрдХреНрдЯ" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рдВрдкрддреНрддрд┐ рд╕рдореВрд╣


рдкреНрд░рдкрддреНрд░ рдкрд░ рдЧреБрдг, рдЬреИрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ, рдХреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЬрд╝рд╛рдЗрди) рдФрд░ рдкреНрд░рдкрддреНрд░ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж) рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдмрдВрдзрди рд╡реИрд╢реНрд╡рд┐рдХ рд╣реЛрддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдпрд╣ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрдВрдзрди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕реНрддрдВрдн рдХреА рд╡рд╕реНрддреБрдПрдБ


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЕрдкрдиреЗ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдареАрдХ рдПрдХ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ (рд╣рдо рдЙрдиреНрд╣реЗрдВ рдКрдкрд░реА рдХрд╣рддреЗ рд╣реИрдВ) рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдирдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдХрдИ рдмрд╛рд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдХреБрдЫ рд╢реАрд░реНрд╖ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпреЛрдВ рд╕реЗ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред рдЧреБрдгреЛрдВ рдХреА рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдореИрдЯреНрд░рд┐рдХреНрд╕" рдмрдирддрд╛ рд╣реИ - (рдкреНрд░рджрд░реНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ) x (рдКрдкрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ)ред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рдлреЙрд░реНрдо рдореЗрдВ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдХреЙрд▓рдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рди рдКрдкрд░реА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рдо рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ-рдЗрди-рдХреЙрд▓рдо рдХрд╣реЗрдВрдЧреЗ)ред
FORM currentBalances ' '
// ,
//
OBJECTS s = Stock, i = Item
//
PROPERTIES name(i), currentBalance(s, i) COLUMNS (s) HEADER name(s)
FILTERS isActive(i), isActive(s)
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рддреЛ, рдХреНрдпрд╛ рд░реВрдк рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдХрдореЛрдмреЗрд╢ рдпрд╣ рдкрддрд╛ рдЪрд▓ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЪрд▓реЛ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рдкрддреНрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛


рддреАрди рдлрд╛рд░реНрдо рдкреНрд░рд╕реНрддреБрддрд┐рдпрд╛рдБ рд╣реИрдВ:



рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦреЗрдВ
рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡:



рдореБрджреНрд░рдг:



рд╕рдВрд░рдЪрд┐рдд:



  • рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ред рдПрдХ рджреГрд╢реНрдп рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╛рддрдЪреАрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд╡рд╣ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдЗрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд░реВрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рдореБрджреНрд░рд┐рддред рдЗрд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рднреА рдлреЙрд░реНрдо рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ред рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЫрд╛рдкрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ (рдЬрд╣рд╛рдВ рд╕реЗ рдЗрд╕рдХрд╛ рдирд╛рдо рдорд┐рд▓рд╛)ред
  • рд╕рдВрд░рдЪрд┐рдд - рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд░рдЪрд┐рдд рд╕реНрд╡рд░реВрдкреЛрдВ (JSON, XML, DBF, рдЖрджрд┐) рдореЗрдВ рдлреЙрд░реНрдо рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рдЖрдорддреМрд░ рдкрд░ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдФрд░ рдореБрджреНрд░рд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧреНрд░рд╛рдлрд┐рдХ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╡реЗ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рджреЛ-рдЖрдпрд╛рдореА рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкреЗрдкрд░ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрдиред рддрджрдиреБрд╕рд╛рд░, рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЙрдкрдпреБрдХреНрдд рддрдВрддреНрд░ (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрджреНрд░рд┐рдд рдФрд░ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реНрдерд┐рд░ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╡реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЙрд╕ рд╕рдордп рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдЬрдм рдлреЙрд░реНрдо рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ)ред

рдкреНрд░рджрд░реНрд╢рдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рд╢реБрд░реВ рд╣реЛрдЧрд╛, рд╢рд╛рдпрдж, рд╕рдмрд╕реЗ рдХрдард┐рди - рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╕рд╛рдеред

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐


рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджреГрд╢реНрдп рдореЗрдВ, рдкреНрд░рдкрддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрди рд╡рд╕реНрддреБрдУрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд┐рд▓реНрдЯрд░, рдХреЙрд▓рдо рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреА рд╣реИрдВ, рдмрджрд▓реЗ рдореЗрдВ, рдЧреБрдгреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрддрдВрдн рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЗрд╕рдХреА рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рдкрддреНрд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╝реАрд▓реНрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЗрд╡рд▓ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
currentBalance ' ' (Stock s) = GROUP SUM currentBalance(s, Item i);
FORM currentBalances ' '
OBJECTS s = Stock, i = Item
// currentBalance(s) ,
PROPERTIES name(s), currentBalance(s) PANEL ,
name(i), currentBalance(s, i)
FILTERS currentBalance(s, i)
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдкреНрд░рдкрддреНрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рдмрджрд▓рдирд╛ рдпрд╛ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рдкрдВрдХреНрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЦреЛрдЬ рдСрдкрд░реЗрдЯрд░ (SEEK) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд┐рд╕реА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рдкреИрдирд▓ рдпрд╛ рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреИрдирдПрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд╕рднреА рдЧреБрдг рдкреИрдирд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ (рдЬреЛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рд╣реИ), рдЕрдиреНрдпрдерд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдЗрд╕рдХреЗ рд╕рднреА рдЧреБрдг рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЧреБрдг рдкреИрдирд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рджреГрд╢реНрдп рдореЗрдВ рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдПрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреЗрд╡рд▓ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА рдХреЛ рдЯреЗрдмрд▓ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рддреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рджреГрд╢реНрдп рднрд╛рдЧ рдХреА рдКрдВрдЪрд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдкрддреНрд░ рдмрдирд╛рддреЗ рд╕рдордп рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред

рд╕рд╛рде рд╣реА, рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЗрдВ рдлрд╝реЙрд░реНрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлреЙрд░реНрдо рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕реЗ рд░рд┐рдПрдХреНрдЯ, рдХреЗрд╡рд▓ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ)ред рд╕рд╛рде рд╣реА, рдпрд╣ рд╕рдм рдкреВрд░реНрдг рдкреБрдирд░реНрд╡рд┐рддрд░рдг (рдПрдХ рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ) рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдкрд░ рд╡реГрджреНрдзрд┐, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдЬрдм рдЕрдиреНрдп рддрдХрдиреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдХрд╛рд░реНрдп рдореЗрдВ рд╢реАрд░реНрд╖ рддреАрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЛрдЧ рдЕрдХреНрд╕рд░ рдЧреЛрд▓ рдЖрдБрдЦреЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджреВрд╕рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдкреВрд░реНрддрд┐ рдХреЛ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдкрд╣рд▓реА рдФрд░ рддреАрд╕рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдХрд╕рд┐рдд рд░реВрдк рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рддрдм рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдереЛрдбрд╝рд╛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдИ рджреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрдИ рд╣рдЬрд╛рд░реЛрдВ рд░рд┐рдХреЙрд░реНрдбреНрд╕)ред

рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рд╡реЗрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдореЛрдб (рдЬреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдореЛрдб (рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд▓рд╛рдЗрдВрдЯ, рдХрд┐рд╕реА рднреА рдореВрд▓ рдЧреНрд░рд╛рд╣рдХ рдХреА рддрд░рд╣, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдереЛрдбрд╝реА рдмреЗрд╣рддрд░ рдЬрд╡рд╛рдмрджреЗрд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг)ред

рд╡рд╕реНрддреБ рдкреЗрдбрд╝


рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдордВрдЪ рдЖрдкрдХреЛ рдкреЗрдбрд╝реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдлреНрд▓реИрдЯ ("рдПрдХ рджреВрд╕рд░реЗ рдХреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб") рдФрд░ рдкреБрдирд░рд╛рд╡рд░реНрддреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ "рдиреЗрд╕реНрдЯреЗрдб" рдСрдмреНрдЬреЗрдХреНрдЯ)ред

рдлреНрд▓реИрдЯ рдкреЗрдбрд╝, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рд╣реИ, рдЬрдм рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ "рд╕рдВрдпреБрдХреНрдд" рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
FORM currentBalances ' '
TREE tree s = Stock, i = Item
//
//
PROPERTIES name(s), currentBalance(s),
name(i), currentBalance(s, i)
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдпрд╣ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЬрдЯрд┐рд▓ рддрдВрддреНрд░ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдкреБрдирд░рд╛рд╡рд░реНрддреА рдкреЗрдбрд╝, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдмрд╣реБрдд рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдРрд╕реЗ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рдЬрд┐рд╕рдХрд╛ рдирд┐рдЪрд▓рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдКрдкрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╢реАрд░реНрд╖ рдСрдмреНрдЬреЗрдХреНрдЯ NULL рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
parent = DATA ItemGroup (ItemGroup) IN base;
group = DATA ItemGroup (Item) IN base;
//
level '' (ItemGroup child, ItemGroup parent) = RECURSION 1 AND child IS ItemGroup AND parent = child STEP 1 IF parent = parent($parent);
currentBalance ' ' (ItemGroup ig, Stock s) = GROUP SUM currentBalance(s, Item i) IF level(ig, group(i));

FORM currentBalances ' '
OBJECTS s=Stock PANEL //
PROPERTIES (s) name
TREE tree ig = ItemGroup PARENT parent, i = Item // /
PROPERTIES name(ig), currentBalance(ig, s)
PROPERTIES name(i), currentBalance(s, i)
FILTERS group(i) = ig
;
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдкрддреНрд░ рдкреНрд░рдмрдВрдзрди


рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреЗрд╣рддрд░ рдПрд░реНрдЧреЛрдиреЙрдорд┐рдХреНрд╕ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╕рднреА рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдо рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП), рдлреЙрд░реНрдо рдХреА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдСрдкрд░реЗрд╢рди рд╣реИрдВ:

  • рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ (рджреГрд╢реНрдп рдХреЙрд▓рдо, рдСрд░реНрдбрд░, рдлреЛрдВрдЯ, рдЖрджрд┐),
  • рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдФрд░ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдирд╛,
  • рд╕реНрддрдВрдн рдорд╛рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рд╕рдореВрд╣реАрдХреГрдд рдХрд░рдирд╛,
  • рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд▓ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдбреЗрд╡рд▓рдкрд░ рддрдерд╛рдХрдерд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рд╕рдореВрд╣ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ / рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
EXTEND FORM currentBalances //
FILTERGROUP stockActive // , , /
FILTER '' active(st) 'F11' // , F11
FILTERGROUP bal
FILTER ' ' currentBalance(st, sk) > 0 'F10'
FILTER ' ' currentBalance(st, sk) < 0 'F9'
FILTER ' ' currentBalance(st, sk) 'F8' DEFAULT
FILTER ' ' NOT currentBalance(st, sk) 'F7'
;
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рднреА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рддреАрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рд▓реМрдЯ рдЖрдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛ рдЕрднреА рднреА рдкреНрд░рд╕реНрддреБрддрд┐ рддрд░реНрдХ рд╕реЗ рдХреЛрдИ рд╕реАрдзрд╛ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдИрдЖрд░рдкреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЗрдЦ рдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд▓рд╣ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рднрд╛рд╖рд╛ / рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдЗрд╕ рд╡рд░реНрдЧ рд╕рд╣рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рдСрдмреНрдЬреЗрдХреНрдЯ рдСрдкрд░реЗрдЯрд░реНрд╕


рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдЬреЛрдбрд╝рдирд╛ / рд╣рдЯрд╛рдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕реЗ рдирдП рд░реВрдк рдореЗрдВ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рднреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдХреНрд░рд┐рдПрд╢рди рд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ рд╢рдмреНрдж рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рдирдИ - рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ
  • EDIT - рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рд╕рдВрдкрд╛рджрди
  • NEWEDIT - рдПрдХ рд╡рд╕реНрддреБ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рд╕рдВрдкрд╛рджрди
  • DELETE - рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдЯрд╛рдПрдВ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЪреВрдВрдХрд┐ рдЗрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХ рдирдП рд╕рддреНрд░ рдореЗрдВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдкрдХреЛ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕ рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ), рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрдмрдВрдзрд┐рдд рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рд╢реБрдЧрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ - NEWSESSION рдФрд░ NESTEDSESSION рд╡рд┐рдХрд▓реНрдк, рдЬреЛ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рдорд╛рди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдХреНрд░рд┐рдпрд╛рдПрдБ рдмрдирд╛рдирд╛, рд▓реЗрдХрд┐рди, рдЬреИрд╕реЗ рдСрдкрд░реЗрдЯрд░ рдЦреБрдж рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдирд╛рдо рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
FORM teams
OBJECTS t=Team
// /
PROPERTIES (t) NEWSESSION NEW , EDIT , DELETE
OBJECTS p=Player
FILTERS team(p)=t
//
PROPERTIES (p) NEW , DELETE
;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рдВрдкрд╛рджрди рдлреЙрд░реНрдо рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рдлреЙрд░реНрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝реЗрдВ, рдбрд┐рдЬрд╝рд╛рдЗрди рдмрджрд▓рдирд╛, рдЖрджрд┐ред) рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдкрд╛рджрди рдлрд╝реЙрд░реНрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╣реИ:
FORM order ''
OBJECTS o = Order PANEL
PROPERTIES (o) date, number

OBJECTS d = OrderDetail
PROPERTIES (d) nameBook, quantity, price, NEW , DELETE
FILTERS order(d) = o

EDIT Order OBJECT o
;
рдЗрд╕реА рддрд░рд╣, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рд░реВрдкреЛрдВ рдХреЛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдХрд╛рд░ рдбрд┐рдЬрд╛рдЗрди


рдЕрдзрд┐рдХрд╛рдВрд╢ рдореМрдЬреВрджрд╛ GUI рдХреЗ рд╕рд╛рде, рдПрдХ рдлреЙрд░реНрдо рдХреА рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рдиреЛрдбреНрд╕ рдШрдЯрдХ рд╣реИрдВред рдШрдЯрдХ, рдмрджрд▓реЗ рдореЗрдВ, рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдХрдВрдЯреЗрдирд░ - рдРрд╕реЗ рдШрдЯрдХ рдЬрд┐рдирдореЗрдВ рдЕрдиреНрдп рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВред
  • рдмреБрдирд┐рдпрд╛рджреА рдШрдЯрдХ - рдореВрд▓ рддрддреНрд╡реЛрдВ рдХреЗ рдЪрд┐рддреНрд░рдордп рдирд┐рд░реВрдкрдг: рдЯреЗрдмрд▓, рд╕рдВрдкрддреНрддрд┐ рдкреИрдирд▓, рдлрд┐рд▓реНрдЯрд░ рд╕рдореВрд╣, рдЖрджрд┐ред

рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЕрдВрджрд░ рдШрдЯрдХреЛрдВ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рдиреЗ рдХрд╛ рддрдВрддреНрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ CSS рдлреНрд▓реЗрдХреНрд╕рд┐рдмрд▓ рдмреЙрдХреНрд╕ рд▓реЗрдЖрдЙрдЯ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ (рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╡реЗрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рддрдВрддреНрд░ рдкрд░ рдмрд╣реБрдд рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлреЙрд░реНрдо рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдЖрдорддреМрд░ рдкрд░ рдЦрд░реЛрдВрдЪ рд╕реЗ рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдлреА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ)ред рдЖрдорддреМрд░ рдкрд░, рдлрд╝реЙрд░реНрдо рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдлреЙрд░реНрдо рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдмрджрд▓рддрд╛ рд╣реИ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рдХрдВрдЯреЗрдирд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдореМрдЬреВрджрд╛ рдШрдЯрдХреЛрдВ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рдбрд┐рдЬрд╛рдЗрди рдЙрджрд╛рд╣рд░рдг
FORM myForm 'myForm'
OBJECTS myObject = myClass
PROPERTIES (myObject) myProperty1, myProperty2 PANEL
FILTERGROUP myFilter
FILTER 'myFilter' myProperty1(myObject)
;
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреА рдкрджрд╛рдиреБрдХреНрд░рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:


FORM myForm ' '
OBJECTS u = CustomUser
PROPERTIES (u) name, NEW , DELETE

OBJECTS c = Chat
PROPERTIES (c) message, NEW , DELETE
FILTERS user(c) = u
;

DESIGN myForm {
NEW middle FIRST {
type = CONTAINERH ;
fill = 1 ; //
MOVE BOX (u);
MOVE BOX (c);
}
}
рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рдлреЙрд░реНрдо рдбрд┐рдЬрд╛рдЗрди 2.0 (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛)


рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ (рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдирд▓рд╛рдЗрди рдбреЗрдореЛ рдореЗрдВ) рдХреЗ рд░реВрдкреЛрдВ рдХреЗ рд╕рдВрд╡рд╛рджрд╛рддреНрдордХ рдирд┐рд░реВрдкрдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдлрд╝реЙрд░реНрдо рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИ, рдЖрдЗрдП рдмрддрд╛рддреЗ рд╣реИрдВ, рдХрд╛рдлреА рддрдкрд╕реНрд╡реАред рдпрд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд░рд╣реА рд╣реИ, рдЬрд╣рд╛рдВ рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ рдпрд╛ рдХрдВрдкрдиреА рдХреЗ рд╕рд╛рдереА рдЗрди рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрдкрд╕реНрдпрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡рд░реНрддрдорд╛рди рдлреЙрд░реНрдо рдбрд┐рдЬрд╛рдЗрди рддрдВрддреНрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдорд╛рдорд▓реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреАрдУрдПрд╕:

рдлреЙрд░реНрдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ


рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рд╛рд╕ рдмреА 2 рдмреА, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдмреА 2 рд╕реА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЗрдВрдЯрд░рдиреЗрдЯ рдмреИрдВрдХрд┐рдВрдЧ) рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рддреБрд░рдВрдд рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рд╕рд╡рд╛рд▓ рдЙрдардиреЗ рд▓рдЧрддреЗ рд╣реИрдВред

рд╡рд░реНрддрдорд╛рди рдЪрд░рдг рдореЗрдВ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдкреНрд░рдкрддреНрд░ рдбреЗрдЯрд╛ рдпреБрдХреНрдд рдПрдХ рд╡рд┐рд╢реЗрд╖ js-object рдмрдирд╛рдирд╛ рдФрд░ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХрд┐рд╕реА рднреА рдбрд┐рдЬрд╛рдЗрди рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдлреЙрд░реНрдо рдХреА рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдлрд╝реЙрд░реНрдо (рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдкрд░)

рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг - рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП REST (рдпрд╛ рдмрд▓реНрдХрд┐ рд╕реНрдЯреЗрдЯрд▓реЗрд╕) API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ:

рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ (рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдкрд░) рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рд░реВрдк рдЙрджрд╛рд╣рд░рдг

рд╕рдЪ рд╣реИ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд░реВрдкреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдпрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рдПрдореНрдмреЗрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╕рдмрд╕реЗ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдлреЙрд░реНрдо рдбрд┐рдЬрд╛рдЗрди рддрдВрддреНрд░ рдХрд╛ рдЕрдиреБрд╡рд╛рдж (рдкреНрд░реЗрдЬреЗрдВрдЯреЗрд╢рди рдкреНрд░рд╕реНрддреБрддрд┐)ред

  • рдордВрдЪ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╛рд░реНрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбрд┐рдЬрд╛рдЗрди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
  • рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдЗрд╕реЗ рд╕рд╣реЗрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреИрд╕рд╛ рдЪрд╛рд╣реЗ рд╡реИрд╕рд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рддрдм рдкреНрд▓реЗрдЯ рдлреЙрд░реНрдо рдХреЛ рдЦреЛрд▓рддреЗ рд╕рдордп рдЗрд╕ рд╕рдВрдкрд╛рджрд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рд╕рд╛рде рд╣реА, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд░рд┐рдПрдХреНрдЯ рдореВрд▓ рд░реВрдкреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдФрд░ рдЗрд╕ рддрд░рд╣ рджреЗрд╢реА рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ (рджреЗрд╢реА рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде) рд╣рдордиреЗ рдЕрднреА рддрдХ рдмрд╣реБрдд рдЧрд╣рд░рд╛рдИ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рд╕рдЪ рд╣реИ, рд╣рдо рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреБрд░рд╛рдиреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рддрдВрддреНрд░ рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐, рдПрдХ рд╣реА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкрдирд╛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рдкрддреНрд░ рдШрдЯрдирд╛рдПрдБ


рдбреЛрдореЗрди рдИрд╡реЗрдВрдЯ рдХреЗ рдмрд╛рдж рдлреЙрд░реНрдо рдИрд╡реЗрдВрдЯ рджреВрд╕рд░реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрд╡рд╕реНрдерд╛ рд╣реИ, рдЬреЛ рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - CHANGE рдШрдЯрдирд╛ред рдпрд╣ рдШрдЯрдирд╛ рддрдм рд╣реЛрддреА рд╣реИ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕рдВрдкрддреНрддрд┐ рдкрд░рд┐рд╡рд░реНрддрди / рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЙрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреАрдмреЛрд░реНрдб рдкрд░ рдХрд┐рд╕реА рднреА рдЧреИрд░-рд╕рд┐рд╕реНрдЯрдо рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдХрд░, рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХреА рдЬрд╛ рд░рд╣реА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдпрд╛ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗред

рд╡рд┐рд╖рдп рдХреНрд╖реЗрддреНрд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдлреЙрд░реНрдо рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдШрдЯрдирд╛ рд╣реЛрдиреЗ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреНрд░рдкрддреНрд░ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдмреЙрдХреНрд╕ рдореЗрдВ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдкрд░реНрдпреБрдХреНрдд CHANGE рдШрдЯрдирд╛ рдХреЗ рд╕рд╛рде, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЗрдирдкреБрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдорд╛рди рдореЗрдВ рдмрджрд▓реЗрдВ)ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХрднреА-рдХрднреА рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ рдЬрдм рдХрд┐рд╕реА рдлреЙрд░реНрдо рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
changeQuantity (Order o, Book b) {
INPUT q = INTEGER DO { //
IF lastOrderDetail(o, b) THEN { // ,
IF q THEN //
quantity(OrderDetail d) <- q IF d = lastOrderDetail(o, b) WHERE order(d) = o AND book(d) = b; //
ELSE // -
DELETE OrderDetail d WHERE order(d) == o AND book(d) == b;
} ELSE
IF q THEN
NEW d = OrderDetail { //
order(d) <- o;
book(d) <- b;
quantity(d) <- q;
}
}
}

EXTEND FORM order
OBJECTS b = Book
PROPERTIES name(b) READONLY , quantity(o, b) ON CHANGE changeQuantity(o, b)
;
, тАУ , ( , , , paste , ). . .


, , , , , , , , INPUT.

, , , , , , . рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
FORM order
OBJECTS o = Order
PROPERTIES (o) customer ON CHANGE {
INPUT s = STRING DO {
customer(o) <- s;
IF s THEN
MESSAGE 'Customer changed to ' + s;
ELSE
MESSAGE 'Customer dropped' ;
}
}
;
, , :

  • ,
  • ( ),
  • ,
  • .

, INPUT тАУ . (ASK):
DELETE Order o WHERE selected(o);
ASK ' ' + ( GROUP SUM 1 IF DROPPED (Order o)) + ' . ?' DO {
APPLY ;
}
(DIALOG) , , , , .

.


, . , , . , ┬л┬╗ . , A B, A B, A A, B (A, B) B, A B ( ┬л┬╗ ).

, , :

  • :
  • , , A B, A ( ).

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
FORM myForm 'myForm'
OBJECTS A, B SUBREPORT , C, D, E
PROPERTIES f(B, C), g(A, C)
FILTERS c(E) = C, h(B, D)
;


, , , , .


LGPL тАУ JasperReports.

, JasperReports , . , :

  • ┬л┬╗ ( , O1, O2, O3,тАж On, O2 тАУ O1, O3 тАУ O2 ..) ;
  • , .

┬л┬╗ , SUBREPORT ( , -):



:
FORM shipment
OBJECTS s=Shipment //
PROPERTIES (s) date, customer = nameCustomer, stock = nameStock // , ( customer) ( stock)
PROPERTIES total = ( GROUP SUM quantity(ShipmentDetail d)*price(d) IF shipment(d)=s) //
OBJECTS sd=ShipmentDetail //
FILTERS shipment(sd) = s //
PROPERTIES (sd) index, item = nameItem // , ( item)
PROPERTIES (sd) price, quantity // ,
PROPERTIES sum '' = (quantity(sd) * price(sd)) // - * ( sum)
;

run() {
// 12345
PRINT shipment OBJECTS s = ( GROUP MAX Shipment s IF number(s) = '12345' )
XLSX TO exportFile;
}



JasperReports (, lsFusion). , . , JasperSoft Studio.

, lsFusion- IDEA, Eclipse, ( Eclipse JasperReports ). IDEA , language injection, jrxml-, , , , , , . , , Eclipse GrammarKit autocomplete (, ), stub-, lazy chameleon- ( ), , . .


() :

  • (XML, JSON) тАУ , () -.
  • (DBF, CSV, XLS) тАУ - . parent, ┬л┬╗ -.

, (- ), , , ( ). . , .


тАУ XML, JSON. , , JSON ( XML ).

/ JSON , : JSON-, тАУ , тАУ . :

JSON
/ , / :

  • / : , .
  • X:
    • X , , . рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ:
      • X ,
      • ( ) X.

, / :

 JSON  ::= { JSON  ,   /    } JSON  ,   /  ::= JSON  1 | JSON   1 | JSON   1 JSON  2 | JSON   2 | JSON   2 ... JSON  M | JSON   M | JSON   M JSON  ::= "   " :   JSON   ::= "  " : { JSON   ,   /  } JSON   ::= "  " : [ { JSON   ,   /  1 }, { JSON   ,   /  2 }, ... { JSON   ,   /  N }, ] 


:
GROUP money;

FORM shipment
OBJECTS dFrom= DATE , dTo= DATE
OBJECTS s=Shipment //
PROPERTIES (s) date, customer = nameCustomer, stock = nameStock // , ( customer) ( stock)
FILTERS dFrom <= date(s) AND date(s) <= dTo //
OBJECTS sd=ShipmentDetail //
FILTERS shipment(sd) = s //
PROPERTIES (sd) IN money index, item = nameItem, price, quantity // , ( item), , money
;

run() {
EXPORT shipment OBJECTS dFrom = 2019_02_20 , dTo = 2019_04_28 ; //
}
 { "s": [ { "date": "21.02.19", "sd": [ { "money": { "item": " 3", "quantity": 1, "price": 5, "index": 1 } } ], "stock": " 2", "customer": " 2" }, { "date": "15.03.19", "sd": [ { "money": { "item": " 1", "quantity": 1, "price": 5, "index": 1 } }, { "money": { "item": " 2", "quantity": 1, "price": 10, "index": 2 } }, { "money": { "item": " 3", "quantity": 1, "price": 15, "index": 3 } }, { "money": { "item": " 4", "quantity": 1, "price": 20, "index": 4 } }, { "money": { "item": "Milk", "quantity": 1, "price": 50, "index": 5 } } ], "stock": " 1", "customer": " 3" }, { "date": "04.03.19", "sd": [ { "money": { "item": " 1", "quantity": 2, "price": 4, "index": 1 } }, { "money": { "item": " 2", "quantity": 3, "price": 4, "index": 2 } }, { "money": { "item": " 1", "quantity": 2, "price": 5, "index": 3 } } ], "stock": " 1", "customer": " 2" }, { "date": "04.03.19", "sd": [ { "money": { "item": " 1", "quantity": 3, "price": 1, "index": 1 } }, { "money": { "item": " 2", "quantity": 2, "price": 1, "index": 2 } } ], "stock": " 1", "customer": " 2" }, { "date": "14.03.19", "sd": [ { "money": { "item": " 2", "quantity": 1, "price": 2, "index": 1 } } ], "stock": " 1", "customer": " 2" }, { "date": "17.04.19", "sd": [ { "money": { "item": " 2", "quantity": 5, "price": 6, "index": 1 } }, { "money": { "item": " 1", "quantity": 2, "price": 6, "index": 2 } } ], "stock": " 1", "customer": " 1" }, { "date": "21.02.19", "sd": [ { "money": { "item": " 3", "quantity": 1, "price": 22, "index": 1 } } ], "stock": " 2", "customer": " 1" }, { "date": "21.02.19", "sd": [ { "money": { "item": " 3", "quantity": 1, "price": 22, "index": 1 } } ], "stock": " 2", "customer": " 1" }, { "date": "20.02.19", "sd": [ { "money": { "item": " 3", "quantity": 1, "price": 22, "index": 1 } } ], "stock": " 2", "customer": " 1" } ] } 


, JSON JSON-. , , IDE JSON , тАУ JSON. , ( , , JSON- ), . / JSON .


, :

  • .
  • тАУ , .

, , , ( ). , , , / :
run() {
EXPORT XLSX FROM item = upper(name(Item i)), currentBalance(i, Stock s),
stock = name(s), barcode(i), salePrice(i)
WHERE (name(i) LIKE '%%' OR salePrice(i) > 10 ) AND currentBalance(i, s);
}
, SELECT SQL. , , , ( , ).

, , , тАУ .


, , , :

  • тАУ .
  • тАУ : .
run(Genre g) {
SHOW booksByGenre OBJECTS g=g;
PRINT booksByGenre OBJECTS g=g;
EXPORT booksByGenre OBJECTS g=g;
}
тАУ ( ) . .

(SHOW, DIALOG)


:

  • (WAIT) тАУ , , , , .
  • (NOWAIT) тАУ .

.

, :

  • (FLOAT) тАУ .
  • (DOCKED) тАУ System.forms.

, тАУ .

, , (DIALOG). (, , ), , , .

, , (INPUT), ( ), , , ( ), , , ( ).
FORM booksByGenre
OBJECTS g = Genre PANEL
PROPERTIES (g) name
OBJECTS b = Book
PROPERTIES (b) name
FILTERS genre(b) = g
;

EXTEND FORM ordersByGenre
PROPERTIES (o) nameBook
ON CHANGE {
DIALOG booksByGenre OBJECTS g = g, b = book(o) INPUT DO
book(o) <- b;
}
;

(PRINT)


( ) , JasperReports : DOC, DOCX, XLS, XLSX, PDF, HTML, RTF , JasperReports. , , , , ( , ).

, - (PREVIEW), , / . , , .

(EXPORT, IMPORT)


, , , : XML, JSON, DBF, CSV, XLS, XLSX. .

, , , тАУ . () , () , .

тАУ , , ┬л ┬╗, :
  • .
  • ( , , , , , TRUE f(a) = b тАУ f(a) b)

TRUE ( , , 0 , .., , , ).
// ,
inn = DATA LOCAL BPSTRING [ 9 ] (Shipment);
barcode = DATA LOCAL BPSTRING [ 13 ] (ShipmentDetail);

FORM shipments
OBJECTS s=Shipment EXTID 'shipments' // EXTID s, shipments
PROPERTIES (s) number, date, inn
OBJECTS sd=ShipmentDetail EXTID 'detail' // EXTID sd, detail
FILTERS shipment(sd) = s // shipment detail
PROPERTIES (sd) barcode, price, quantity
;

run() {
FOR jsonFile = JSONFILE ( '\{ shipments : [ ' + // jsonFile / run, {} escape'
' \{number : "13423", date : "01.01.2019", inn : "2", detail : [\{ barcode : "141", quantity : 5, price : 10 \}, \{ barcode : "545", quantity : 2, price : 11 \}] \},' +
' \{number : "12445", date : "01.02.2019", inn : "1", detail : [\{ barcode : "13", quantity : 1, price : 22 \}] \} ]\}' )
DO {
IMPORT shipments FROM jsonFile; //
FOR BPSTRING [ 9 ] inn = inn(Shipment s) DO { // inn
customer(s) <- legalEntityINN(inn); // INN
stock(s) <- GROUP MAX st AS Stock; // - ( id)
}
FOR barcode(Item item) = barcode(ShipmentDetail sd) DO //
item(sd) <- item;

APPLY ;
exportString() <- IF canceled() THEN applyMessage() ELSE ' ' ;
}
}


, , . , , , . . ( ), .

- , ( ). , , ( ). .


. , тАФ .

тАУ , . , , . , , .



.



100x100 . , , . , ┬л┬╗ . , ( ). , . , .

. , - , , .

:
  • , тАУ , , .
  • тАУ forms, log, status, root, toolbar, tree, (, root, , )
FORM items;
FORM stocks;
FORM legalEntities;
FORM shipments;
hello() { MESSAGE 'Hello world' ; }
hi() { MESSAGE 'Hi' ; }

NAVIGATOR {
NEW FOLDER catalogs '' WINDOW toolbar { // ,
NEW items; // - items,
}
catalogs { //
NEW FORM stocksNavigator '' = stocks; // - stocksNavigator stocls catalogs
NEW legalEntities AFTER items; // - legalEntities catalogs items
NEW shipments;
}
NEW FOLDER documents '' WINDOW toolbar { // ,
// root,
//
NEW ACTION hi; // -
NEW ACTION h=hello; // -
MOVE shipments BEFORE h; // shipments catalogs document hello
}
}


, тАУ , , , , , ERP-. , , ┬л ┬╗, : ? рдЧрдВрднреАрд░рддрд╛ рд╕реЗ? ? , -, lsFusion language-based ( SQL ABAP), library-based ( Java 1C) / . , , тАУ domain-specific , . -, , , , . : , , , . , , , ( ).

. тАУ , :

  • : , , , , , ;
  • : , .

, :

  • . ┬л┬╗ : , , / . , , , , , , .
  • . control flow . , тАУ .
  • SQL ( ORM). , , , .

рдирд┐рд╖реНрдХрд░реНрд╖


, , (, , , , tutorial, , , ). , , ( ) ┬л┬╗, , lsFusion.

, , тАУ . , . , , ┬л . .┬╗, , ( - ).

. : ┬л ┬╗. , . , , lsFusion SQL-. , , , тАУ , - , . , SQL- ( ). , . , , ( , ), , , . ┬л?┬╗, ┬л ...?┬╗ ┬л?┬╗.

UPD: .

Source: https://habr.com/ru/post/hi460141/


All Articles