Probe for Windows: Example graph reports

Highlight latest reading

The 27 mm gain from the previous week is shown, with the colour depending on gain or loss.

details

Images

Image files (.jpg or .bmp for crop type and irrigation method can be output.
The images can be un-distorted, or stretched/shrunk to any size

gpt details

Target crop size using a straight line

This report will plot an ideal target tracking line for crop size that are entered as keydata.

The minimum and maximum size values are entered in the FULL and REFILL columns.

Critical Date 1 is used as the date of minimum size, and Critical Date 6 for the date of maximum size

In the example, the last measured value of 15.00 is 1.7 mm below the target size (16.7 mm) - or 74% of the target size

gpt details

Target crop size with multiple points

Crop size is being entered as keydata, and this report will plot target tracking lines, both high and low, with the values being entered in a text file.

In the example, the last measured value (35.00) is 5.8 mm below the target size (40.8)

Uses PlotExtra(date,extra)

Example of a size file...

0,Variety1_Minimum,Variety1_Maximum,Variety2_Minimum,Variety2_Maximum
DATE2,2,5 'first sample
1 Jun,10,16
15 Jun,15,22
1 Jul,25,30
10 Jul,40,50
DATE6,45,55 'harvest

gpt details

Gauges

Various Gauges can be included in a report

The Allocation Bucket is full of blue water at the beginning of the season, and then empties as water is applied

The Water In Profile acts like a fuel gauge - high after an irrigation or rain, and then reduces as water is used.

The Sentek is similar

The Profile Gauge is like a mini-depth graph, but shows changes in VSW, and not absolute values

All Gauges are configured on FileMenu/Export tab: gauge output: GPT

details

Scheduling Calculations

Custom labels with irrigation recomendations can be in various colours and styles

In this example the next irrigation calculation (Apply 87 mm by Sat 17 Aug effective= 58mm delivered= 87 mm) is by PRWIN using 'cyclic' method (irrigate-when-rz1-reaches-refill)

The predicted RZ1 is plotted blue/dash, and includes forecast rain.

The report is also calculating the required irrigation (smd=129-133mm) using irrigate-in-next7days (Alan Christie, Enviro-Tech Services)

details

Schedule values

This report shows all variables that are available that can be used to calculate irrigation requirements

The report can also be used as a check on calculations.

details

Schedule: Reaching target

This report displays messages about current RZ1 relative to upper/lower - Too Wet - 15 mm above Upper
, and also the predicted RZ1 relative to the target Predicted too wet - 22 mm above target

Uses functions TargetAMT(), PredictedtAMT()

details

Critical dates

Labels in various colurs and styles about critical dates.

In the example the user is being warned that there is only 8 days to harvest (Veraison ???).

details

Critical Date 3 (Veraison)

This report shows Upper, Lower, Target, Stress, Predicted RZ1 values at (in this example) CriticalDate3 = Veraison
The last reading was 156 on 2 Jan, with Upper, Lower and Predicted values plotted for the rest of the season

The report shows that the strategy (Target from grapestd.hi, grapestd.lo) is to stress the crop (below Refill) by Veraison, but that the predicted RZ1 at Veraison will be above Upper (because of predicted rain and low dwu)

The Predicted value will only be shown if the lates reading is before the Critical Date


Uses functions TargetAMT() , PredictedtAMT() , StressAMT() , YDataByValue()
gpt details

Example.gpt

Group,Order,Type,Source,Alias,format,Align,Options,Orientation,Size,Colour,Left,Top,Width,Height

'time graph scales
'TXMIN= left date axis 
'TXMAX= right date axis
'TYMIN= LHS axis bottom 
'TYMAX= LHS axis top

'depth graph scales
'DXMIN= VSW axis left (minimum)
'DXMAX= VSW axis righ (maximum)
'DYMIN= depth axis bottom
'DYMAX= depth axis top

'TYRelative(), TXRelative()

'named colours: RED,GREEN, etc see https://www.rsne.com.au/prwin3/repdefs.htm#colourcodes
'other colour examples
'coral = #ff7f50 orange=#ff8c00 deep pink #ff1493 green #008000 dark green #006400 dark red #8B0000 see: https://www.w3schools.com/cssref/css_colors.php

'graph styles used in these examples for scaling to RHS axis
'hard-coded styles - ie StyleID is hardcoded 
'StyleID=49 KeyK1  (crop size saved in K1)
'StyleID=84 = Drip/Predicted/Actual

'User styles
'StyleID=89='TargetSize' scale for 'size'

'gpt line options: GGGGGGGGGG  [1]=border H=ON, [2]=bold H=ON, [3]=units H=ON, [4]=negative-in-red  [5]=FillStyle (G=none, H=solid, I=diagonal, J=???TODO), [6]=LineStyle (G=solid, H=dash, I=dot etc), [7]=spare
'[n] is a character options string:  HGGGGGHGGGG option  see: https://www.rsne.com.au/prwin/repdefs.htm#optioncodes

'Note: Option(n) is a site-specific user choice, although some can be local or global 
'eg Option(4) = Plot Delivererd Rain  see https://www.rsne.com.au/prwin/repdefs.htm#graphoption

'===========================
'output all examples
1,1,ReportTitle,example_all
1,2,INCLUDE,example_highlightlatest    'Highlight Latest
1,3,INCLUDE,example_images    'Images
1,4,INCLUDE,example_targetline    'Target Line
1,5,INCLUDE,example_gauges    'Gauges
1,6,INCLUDE,example_schedulevalues    'Schedule Values
1,7,INCLUDE,example_schedule    'Shedule
1,7,INCLUDE,example_scheduleagritech    'Schedule Agritech
1,8,INCLUDE,example_criticaldates    'Critical Dates

'======================================
2,1,REPORTTITLE,example_highlightlatest '

'labels and arrows pointing at last 2 readings

'latest reading, formatted in mm, [1] border, [2]=bold, [3]=units,[5]=fill. positioned 10 days after CRNTDATE and 5 mm higher
2,2,FORMULA,CRNTAMT,latest RZ1,AMT,align,HHHGHGGGGGGGG,ABOVERIGHT,100,BLACK,CRNTDATE+10,CRNTAMT+5,,

'arrow pointing from label to latest reading, 1pt, dark green
2,2,ARROW,source,1 pt black arrow pointing to latest reading,format,align,GGGGGGGGGG,orientation,1.5,DARKGREEN,CRNTDATE+10,CRNTAMT+5,CRNTDATE,CRNTAMT

'only output if previous reading RZ1 is on the graph
2,5,BEGINIF,PREVDATE>TXMIN

	'previous RZ1 is past left axis, on the graph area

	'output previous RZ1, formatted mm|ins, [1] border, [2] bold, [3] units, [5] filled, positioned 10 days before previous reading,  
	2,6,FORMULA,PREVAMT,Last weeks RZ1,AMT,Left,HHHGHGGGGGGGGGGGGG,ABOVELEFT,100,BLACK,PREVDATE-10,PREVAMT+5,,

	'1pt black arrow pointing from 2,5 FORMULA to the previous reading
	2,6,ARROW,source,1pt black arrow pointing to previous reading,format,align,GGGGGGGGGGGGG,orientation,1.5,DARKGREEN,PREVDATE-10,PREVAMT+5,PREVDATE,PREVAMT

	'show change in RZ1 half-way between Previous and Latest, and a line showing the change
	'too cluttered  !
	'2,7,FORMULA,(CRNTAMT-PREVAMT),GAIN,AMT,1,HHHHGGGGGGGGGGGG,Centre,,BLACK,(CRNTDATE+PREVDATE)/2,+10+(CRNTAMT+PREVAMT)/2,,
	'2,7,Arrow,source,Black 2pt arrow showing gain from last week,format,align,GGGGGGGGGGGG,orientation,2,BLACK,PREVDATE-20,PREVAMT+10,CRNTDATE+10,CRNTAMT+10 

	'show change in RZ1 in last week
	'Gain' or 'Loss' saved in variable 'gain_text'
	'NOTE: must use type=TEXT to save a text variable
	2,9,BEGINIF,CRNTAMT>PREVAMT 

		'RZ1 is higher than previous RZ1
		2,10,text,gain_text=Gain
		2,10,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGGGGGG,orientation,size,ORANGE

	2,11,ELSE

		2,12,text,gain_text=Loss
		2,12,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGGGGGG,orientation,size,PALEBLUE

	2,13,ENDIF

	'label with [1] border,[2] not bold,[5] FillStyle=H=solid  20 days after RZ1. 10% below top of timegraph 
	2,15,LABEL,%gain_text% = %ABS(CRNTAMT-PREVAMT):AMT:1%,There has been a gain this week,format,align,HGGGHGGGGGGGGG,ABOVERIGHT,120,BLACK,CRNTDATE+20,TYRELATIVE(10),,

	'arrow pointing from previousRZ1 to currentRZ1 [6]=linestyle = I = dot, 1pt, RED
	2,16,ARROW,source,1pt black arrow pointing from previous to current,format,align,GGGGGIGGGGGGGG,orientation,1,RED,PREVDATE,PREVAMT,CRNTDATE,RZ1

	'1pt solid line from 2,15 label to middle of arrow
	2,17,LINE,source,1pt black line pointing to middle of arrow,format,align,GGGGGGGGGGGGG,0,1,BLACK,CRNTDATE+20,TYRELATIVE(10),(CRNTDATE+PREVDATE)/2,(RZ1+PREVAMT)/2

2,18,ENDIF 'PrevDate past left axis

'==========================
3,1,REPORTTITLE,example_images '
'image files must be .jpg or .bmp, and in folder: PRWIN\reports\

'heading above all images
3,2,LABEL,Example image files,alias,format,align,GGGGGGGGGG,ABOVERIGHT,100,BLACK,80,2 

'if only X1,Y1 is specified (top,left), and X2,Y2 are blank, the image is *not* distorted
3,3,PICTURE,apple.jpg,This site is growing apples,format,align,HGGGGGGGGG,orientation,size,colour,80,4,,
3,4,LABEL,apple.jpg - size not set,alias,format,align,HGGGGGGGGGG,BELOWRIGHT,80,BLACK,85,5,, 

'if x2,y2 are also specified the image will be squeezed/stretched into the rectangle
3,5,PICTURE,apple.jpg,alias,format,align,GGGGGGGGGG,orientation,size,colour,80,15,85,20
3,6,LABEL,apple.jpg - size set,alias,format,align,HGGGGGGGGGG,BELOWRIGHT,size,BLACK,85,15

'Method(1) get the name of the image file depending on CropNum and hold in 'pic_crop'
'NOTE: must use type=TEXT for text assignment
3,15,LABEL,{CropNum=%CropNum%},alias,format,align,GGGGGGGGGGG,ABOVERIGHT,size,RED,85,25 'tempo for checking

'use Select/Case because can handles multiple values  '3,7,BEGINIF,CropNum=33
3,6,SELECT,CropNum

3,7,CASE,33

	'Crops.ID = 33 = Potato
	3,8,TEXT,pic_crop=potato.jpg

3~7~CASE~18,9,10  '~ demlimiter because using ',' in CASE list

	'Crops.ID = 8,9,10 are all Hops
	3,10,TEXT,pic_crop=hop.jpg

3,11,ELSE

	'all other crops are grapes
	3,12,TEXT,pic_crop=grape.jpg

3,7,ENDSELECT

'output the selected image, no distortion
3,14,PICTURE,%pic_crop%,Image from Crop,format,align,GGGGGGGGGGG,orientation,size,colour,80,25,,
3,15,LABEL,%pic_crop% [CropNum=%CropNum%],Image name from If/Else/EndIf,format,align,HGGGGGGGGGG,BELOWRIGHT,size,Black,85,25

'Method(2) get the name of the file entered on ProbeMenu/Crops  CROPS.CROPIMAGE
3,16,PICTURE,%CROPIMAGE%,Image from CROPS.CROPIMAGE,format,align,GGGGGGGGGGG,orientation,size,colour,80,32
3,17,LABEL,Crops.CropImage=%CropImage%,Image from CropImage,format,align,HGGGGGGGGGG,BELOWRIGHT,size,BLACK,85,32

'Irrigation Method - hold image in variable 'pic_method'
3,18,BEGINIF,MethodID=2

	'continuous (drip)
	3,7,TEXT,pic_method=dripper.jpg

3,19,ELSE

	'cyclic  
	6,7,TEXT,pic_method=pivot.jpg

	'show a micro-jet !
	6,7,TEXT,pic_method=sprinkler.jpg

3,20,ENDIF

'output image, only X1,Y1 so no distortion
3,21,PICTURE,%pic_method%,alias,format,align,HGGGGGGGGGG,orientation,size,colour,80,40
3,22,LABEL,%pic_method% {MethodID=%MethodID%},alias,format,align,HGGGGGGGGGG,BELOWRIGHT,size,BLACK,85,40 ' 

'=============================
4,1,ReportTitle,example_targetline '
'crop size has been entered in K1, and are being plotted  ' Agritech 2024 site BONES3 site=2302
'maximum and minimum size have been entered in K1_FULL and K1_REFILL
'NOTE:all K1's will need changing if size is entered in another keydata row

'CriticalDate1 used as start of straight line
'CriticalDate6 used as end of straight line eg 'Harvest'

'put GraphStyleID=89 in variable -  used for axis scale (see top)
4,24,TEXT,target_graphstyle=49
'4,24,TEXT,target_graphstyle=129 'added by user for plotting 'size'

4,2,BEGINIF,K1_FULL 'do method(1) if a maximum value has been entered

	'Method[1] - straight line using K1_FULL and K1_REFILLl
	'plot straight line showing target during the season, width=1pt, colour=#008000, [6]=LineStyle = I = dot
	'GraphStyleID=49 is the style used to plot 'size' in K1, and is required for axis scale
	4,3,LINE,source,Ideal tracking line for crop size,format,align,GGGGGIGGGGGGGGGGGG,orientation,1,LIGHTGREEN,DATE1,K1_REFILL,DATE6,K1_FULL,%target_graphstyle%

	'label at start of target line (left of start) #008000 = light green X=DATE1, Y=K1_REFILL
	4,4,LABEL,Target=%K1_REFILL:0:0% mm by %DATE1:d mmm:0% (%Date1Text%),alias,format,align,HGGGGGGGGGGGGG,LEFTPLUS,size,LIGHTGREEN,DATE1,K1_REFILL,,,%target_graphstyle%

	'label at end of target line X = DATE6  Y = K1_FULL
	4,5,LABEL,Target=%K1_FULL:0:0% mm by %DATE6:d mmm:0% (%Date6Text%),alias,format,align,HGGGGGGGGGGGGG,ABOVERIGHT,size,LIGHTGREEN,DATE6,K1_FULL,,,%target_graphstyle%

	'calculate value of target at CRNTDATE using equation of straight line 
	4,6,formula,TARGET_SIZE=K1_REFILL + (CRNTDATE-DATE1) * ((K1_FULL-K1_REFILL)/(DATE6-DATE1))

	'calculate proportion between maximum and minimum  
	4,6,formula,TARGET_PROPORTION=(K1-K1_REFILL)/(K1_FULL-K1_REFILL)

	'calculate difference between K1 (measured) and Target.  ABS() makes the value positive
	4,10,formula,TARGET_DIFFERENCE=ABS(K1-TARGET_SIZE)

	4,7,BEGINIF,K1 < TARGET_SIZE

		'size is below target, so text='below'
		8,6,TEXT,TARGET_DIFFERENCETEXT=below

	4,8,ELSE

		'size is above target, so text='above'
		4,8,TEXT,TARGET_DIFFERENCETEXT=above

	4,9,ENDIF

	'output label with 'difference' formatted to 1 decimal place, border, left and above latest size, StyleID=49 for axis scale
	4,11,LABEL,size is %TARGET_DIFFERENCE:0.0:0%mm %TARGET_DIFFERENCETEXT% target (%TARGET_SIZE:0.0:0% mm),alias,format,align,HGGGGGGGGG,ABOVELEFT,100,#008000,CRNTDATE-10,K1+15,,,%target_graphstyle%

	'arrow from 4,10 label pointing to latest size (K1), I=dash
	4,12,ARROW,source,arrow pointing to latest size,format,align,GGGGGHGGGGG,orientation,1,#008000,CRNTDATE-10,K1+15,CRNTDATE,K1,49 

	'show %  size / size range
	'4,13,Formula,TARGET_PROPORTION,RED,0%,Left,HHHHGGGGGGGGGG,Centre,,BLACK,70,80 'CRNTDATE,K11,,,%target_graphstyle% 'current value as % scale using style=49 

	'current value as % scale using style=49 
	4,14,Formula,TARGET_SIZE,RED,0.0%,Left,HHHHGGGGGGGGGG,AboveLeftPlus,,BLACK,LPRBDATE,K1,,,%target_graphstyle%

	'maximum and minimum values on 2 lines 
	4,16,Label,Maximum=%K1_FULL% by %DATE6:d mmm% (%Date6Text%)|Minimum=%K1_REFILL% on %DATE1:d mmm% (%Date1Text%),RED,0.0%,align,HGGGGGGGGGGG,ABOVERIGHT,size,BLACK,DATE1,K1-5,,,%target_graphstyle% 

4,17,ELSE

	'Method(2) - tracking values from file: example.siz 
	'plot maximum values from example.siz, values in column 1. [6]LineStyle=H=dash, 1pt, DARKBLUE, axis scale from GraphStyleID=89
	4,20,PLOTEXTRA,example.siz,Minimum tracking size for crop,0.0,align,GGGGGHGGGGGGGGGGGG,orientation,1,DARKBLUE,,,,,%target_graphstyle%
	'variable EXTRA = index of last PLOTEXTRA
	
	'get minimum at CRNTDATE
	'YValueByDate(Date,EXTRA) returns the Y value of an 'extra' line at 'date'
	'NB use ~ delimiter because ',' used in function
	4~21~formula~TARGET_MINIMUM = YValueByDate(CRNTDATE, Extra)

	'also plot maximum from example.siz, column 2
	4,22,PLOTEXTRA,example.siz:2,Maximum tracking line for crop,0.0,align,GGGGGIGGGGGGGGGGG,orientation,1,LIGHTBLUE,,,,,%target_graphstyle% 
	'get maximum value at CRNTDATE
	4~23~formula~TARGET_MAXIMUM = YValueByDate(CRNTDATE, Extra)
	
	4,25,BEGINIF,K1 > TARGET_MAXIMUM

		'above maximum target
		4,26,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,WARNING 
		4,26,LABEL,%K1-TARGET_MAXIMUM:0.0:0% mm above target (%TARGET_MAXIMUM:0.0:0%),alias,format,align,HGGGHGGGGG,ABOVERIGHT,100,BLACK,CRNTDATE+5,K1,,,%target_graphstyle%

		'vertical arrow from K1 to target maximum, StyleID=49 for axis scale
		4,26,ARROW,source,arrow pointing max to min,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE,TARGET_MAXIMUM,CRNTDATE,K1,%target_graphstyle%

	4,27,BEGINELSEIF,K1 < TARGET_MINIMUM

		'below minimum target
		4,28,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,WARNING 
		4,28,LABEL,%TARGET_MINIMUM-K1:0.0:0% mm below target (%TARGET_MINIMUM:0.0:0%),alias,format,align,HGGGHGGGGG,ABOVERIGHT,100,BLACK,CRNTDATE+5,K1,,,%target_graphstyle%

		'vertical arrow from target pointing to K1, StyleID=49 for axis scale
		4,28,ARROW,source,arrow pointing K1 to target,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE,TARGET_MINIMUM,CRNTDATE,K1,%target_graphstyle%

	4,29,ELSE

		'between max/min
		4,30,LABEL,%K1:0.0:0%mm inside target range (%TARGET_MINIMUM:0.0:0%-%TARGET_MAXIMUM:0.0:0%mm),alias,format,align,HGGGHGGGGGG,ABOVERIGHT,100,BLACK,CRNTDATE+5,K1,,,%target_graphstyle%
		'vertical arrow showing max/min range, K1, StyleID=49 for axis scale
		4,30,DOUBLEARROW,source,arrow pointing max to min,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE,TARGET_MINIMUM,CRNTDATE,TARGET_MAXIMUM,%target_graphstyle% 

	4,31,ENDIF

	'arrow from label pointing to latest size, StyleID=49 for axis scale
	4,32,ARROW,source,arrow pointing to latest value,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE+5,K1,CRNTDATE,K1,%target_graphstyle%

4,33,ENDIF

'======================================================================
5,1,ReportTitle,example_gauges '

'gauges configured on FileMenu/Export tab: Gauges, OutputTo=GraphReport

'Profile Gauge showing changes, both VSW and mm, at different depths
5,2,PROFILEGAUGE,K5,Changes,VSW,0,GHHGGGJJHGGGHGGG,0,80,Black,85,20,95,40
5,3,LABEL,Changes down profile,alias,format,align,HGGGGGGGGGG,BELOWPLUS,size,BLACK,90,40

'Sentek gauge is a diagram with arrow pointing to current state 
'vertical scale from full=100% to refill=0%. right scale mm, text size = 80%
'alias=caption above
5,7,GAUGE,RZ1,RZTEXT1,format,align,GGGGGGGGGGGG,orientation,80,colour,80,20,81,40
5,8,Label,Sentek,alias,format,align,HGGGGGGGGGG,BELOWPLUS,size,BLACK,80.5,40

'PRWIN fuel gauge shows how much water that is available to the plant remains in the profile
'left scale from full (100%) to empty (0%) right scale in  mm
'source = RZ1,FULL,REFILL  alias=caption above, 80%
5,4,GAUGE,RZ1,RZTEXT1,format,align,GGGGGGGGGGG,orientate,80,colour,70,20,73,40
5,5,Label,Water in profile,alias,format,align,HGGGGGGGGGG,BELOWPLUS,size,BLACK,71,40

'blue arrow pointing from the fuel gauge to the last RZ1 reading on the time graph
'5,6,ARROW,RZ1,Arrow pointing to last RZ1,format,align,GGGGGGGGGGGGG,orientate,1,BLUE,51.5,41,DATE_LASTP,RZ1

'Allocation - bucket of water that is full at the start of the season, and empties during the season
'assume K2 has value = @DIFF(meter), alias = caption
5,9,BUCKET,K2,Allocation (Kl/Ha),VOL,0,GGGGGGGGGGGGG,1,80,BLACK,60,20,63,40
5,10,Label,Allocation bucket,alias,format,align,HGGGGGGGGGG,BELOWPLUS,size,BLACK,61.5,40

'TODO check for Alex Virgo
'blue arrow, dash, from bottom of bucket to last point of K2 plot on time graph
'GraphStyle.ID = 49 for RHS scale
'5,11,ARROW,source,Arrow pointing to last value,0,0,GGGGGHGGGGGGGHGGGG,0,0.5,BLUE,61.5,40,DATE_LASTP,K2,49

'5,12,LINE,K15,AllocationTrack,VOL,0,GHGGKKKGGGGG,0,1,RED,DATE_FIRSTP,K15_FIRSTP,SEASONEND,K15_FULL
'5,13,LINE,K10,AllocationTrack,VOL,0,GGGGGGGGKKKGGG,0,1,RED,DATE_FIRSTP,@GSY(54, K10_FULL),SEASONEND,@GSY(54, K10_REFILL)
'TEMPO 5,14,LINE,K5,VirgoAllocationTrack,Alias,0,GGGGGGGGGGGGGG,0,1,54,DATE_C3,K5_C3,SEASONEND,K5_FULL,54

'plot keydata row 11
'5,15,PlotRow,K1,Size,0,Left,GGGGGGGGGG,orientation,size,BLACK,X1,Y1,X2,Y2 
'5,16,Label,Size: %K11% - %K11_FULL:0.0:0%,alias,format,Left,GGGGGGGGGG,orientation,110,RED,82,5,90,10
'5,17,FORMULA,(K1-K1_REFILL)/(K1_FULL-K1_REFILL),alias,0%,LEFT,GGGGGGGGGG,orientation,110,RED,90,5,98,10

'==========================================
7,0,ReportTitle,example_schedulevalues '
7,1,INCLUDE,example_check

'TODO !!! output all schedule values
'MethodID=2 = continous - colour = dark green: #006400
'MethodID=0 = cyclic - colour - dark red #8B0000

'labels at top 
7,1,LABEL,All schedule values,alias,format,CENTRE,GGGGGGGGGGG,orientation,size,BLACK,88,4,99,7
7,1,LABEL,Variable,Name of variable,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,7,88,10
7,2,LABEL,Numeric,numeric value 2 decimal places,0.00,RIGHT,GGGGGGGGGG,orientation,size,BLACK,88,7,93,10 'H=border
7,3,LABEL,Text,text version or formatted,format,RIGHT,GGGGGGGGGG,orientation,size,Black,93,7,99,10

'Forecast values. Might might not be used in the prediction calculations
6,4,LABEL,ForecastRain,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,10,88,13
6,5,FORMULA,ForecastRain,the total amount has come from a 7 day forecast in mm/ins,0.00,RIGHT,HGGGGGGGGG,orientation,size,BLACK,88,10,93,13,91 'H=border 91=Information TEMPO
6,6,TEXT,ForecastRain_T,the total amount has come from a 7 day forecast already formatted,format,RIGHT,HGGGGGGGGG,,,BLACK,93,10,99,13

'arrow pointing to forecast rain
6,7,BEGINIF,(ForecastRain>0) AND Option(2) 'Option(2) = plot-delivered-rain. see https://www.rsne.com.au/prwin/repdefs.htm#optioncodes  (4=Plot-delivered-Irrigation)

	'delivered rain is being plotted
	'rain(s) will be somewhere in drip period, StyleID=80 for axis scale
	6,8,ARROW,source,point to forecast rain,format,align,GGGGGIGGGGG,orientation,1,#006400,88,11.5,CRNTDATE+dripdays/2,ForecastRain,80

6,10,ENDIF 'ForecastRain > 0

'forecast ET
6,11,LABEL,ForecastET,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,13,88,16
6,12,FORMULA,ForecastET,numeric with format=dwu,0.00,RIGHT,HGGGGGGGGG,orientation,size,BLACK,88,13,93,16,90 'Style=90=Warning
6,13,TEXT,ForecastET_T,ForecastET_T,format,RIGHT,HGGGGGGGGG,orientation,size,BLACK,93,13,99,16

'blue line to separate values actually used to calculate predicted schedule
6,14,LINE,source,Values used to calculate predicted schedule,format,align,GGGGGGGGGGG,orientation,1,blue,84,16.5,99,16.5

'Rain used in schedule calculation - where is this used ???
6,15,LABEL,PredictedRain,,,RIGHT,GGGGGGGGGGG,,,BLACK,78,17,88,20
6,16,FORMULA,PredictedRain,,0.00,RIGHT,HGGGGGGGGG,,,BLACK,88,17,93,20
6,17,TEXT,PredictedRain_T,,,RIGHT,HGGGGGGGGG,,,BLACK,93,17,99,20

'ET used ???
6,18,LABEL,PredictedET,,,RIGHT,GGGGGGGGGGG,,,BLACK,78,20,88,23

6,99,BEGINIF,PredictedET<0.5

	6,16,TEXT,predicted_colour=warning

6,99,ELSE

	6,16,TEXT,predicted_colour=PaleGreen

6,99,ENDIF  'PredictedET>0.5

6,19,FORMULA,PredictedET,,0.00,RIGHT,HGGGGGGGG,,,BLACK,88,20,93,23
6,20,TEXT,PredictedET_T,,,RIGHT,HGGGGGGGGG,,,BLACK,93,20,99,23

'average Kcrop used in schedule calculation.  Enabled on ReadingsMenu/Scheduling tab: ???
6,21,LABEL,PredictedKc,,,RIGHT,GGGGGGGGGGG,,,BLACK,78,23,88,26
6,22,FORMULA,PredictedKC,alias,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,23,93,26
6,23,TEXT,PredictedKC_T,alias,format,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,93,23,99,26

'average Ksoil used in schedule calculation.  Enabled on ReadingsMenu/Scheduling tab: ???
6,24,LABEL,PredictedKs,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,26,88,29
6,25,FORMULA,PredictedKs,alias,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,26,93,29
6,26,TEXT,PredictedKs_T,alias,format,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,93,26,99,29

'ET used in schedule calculation.  Selected on ReadingsMenu/Scheduling
6,27,LABEL,ScheduleDWU,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,29,88,32
6,28,FORMULA,ScheduleDWU,alias,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,29,93,32
6,29,FORMULA,ScheduleDWU,alias,DWU,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,29,99,32

'arrow pointing to middle of predicted RZ line
'too confusing
6,30,BEGINIF,Option(11) '(11) = 'Plot Schedule' on GraphMenu/Options/Local tab: time graph

	6,31,BEGINIF,MethodID=2

		'continuous - point to middle of predicted RZ1 line
		'6,32,ARROW,source,Continuous: This is SCHEDULEDATE,format,align,GGGGGIGGGGG,,1,#006400,88,30.5,(CRNTDATE+SCHEDULEDATE)/2,(SUPPERAMT+SLOWERAMT)/2

	6,33,ELSE

		'cyclic
		'6,34,ARROW,source,Cyclic this is SCHEDULEDATE,format,align,GGGGGIGGGGG,orientation,1,#8B0000,88,30.5,SCHEDULEDATE,SUPPERAMT

	6,35,ENDIF

6,36,ENDIF 'plot schedule

'delivery factor Deliver = Effective * Factor  Set on ReadingsMenu/Schedule tab: Deliver
6,37,LABEL,Factor2,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,32,88,35
6,38,FORMULA,FACTOR2,alias,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,32,93,35
6,39,LABEL,del=effective*factor2,alias,format,RIGHT,GGGGGGGGGGG,BELOWRIGHT,size,BLACK,93,32,,

'see https:///rsne.com.au/prwin/formulas.htm#stressamt
6,40,LABEL,StressAMT(CrntDate),alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,35,88,38
'output calculated stress amount, and hold value in 'stress_rz1'
6,41,FORMULA,stress_rz1=StressAMT(CRNTDATE),alias,0.00,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,88,35,93,38
6,42,LABEL,annual|permanent,alias,format,RIGHT,GGHGGGGGGGG,BELOWRIGHT,size,BLACK,93,35,, 'reminder 

'arrow point to ???
6,43,ARROW,source,alias,format,align,GGGGGIGGGGG,orientation,1,#8B0000,88,36.5,CRNTDATE,STRESS_RZ1

'ScheduleAMT = EfectiveAmount * FACTOR2
'show how FACTOR2 is used

'calculate 'extra' due to FACTOR2
'6,7,FORMULA,extra=(SUPPERAMT - SLOWERAMT) * (FACTOR2 - 1)  
6,44,FORMULA,extra=SCHEDULEAMT - (SCHEDULEAMT/FACTOR2)

'calculate mid point between SUPPERAMT and top of irrigation (SLOWERAMT+SHEDULEAMT) for cyclic
6,45,FORMULA,midpoint=SUPPERAMT+extra/2  

'6,46,LABEL,Predictions plotted [%Option(11)%],alias,format,align,GGGGGGGGGGG,BELOWRIGHT,size,BLUE,3,3

5,7,BEGINIF,Option(11) '11='plot predictions' GraphMenu/Options/Local tab: Time Graph  see https:www.rsne.com.au/prwin3/repdefs.htm#optioncodes

	5,7,LABEL,Predictions plotted [%Option(11)%],alias,format,align,GGGGGGGGGGG,BELOWRIGHT,size,BLUE,0,0

	5,7,BEGINIF,MethodID=2

		'continous StyleID=84 (DripPredict)
		'5,7,ARROW,source,Extra amount from FACTOR2,format,align,GGGGGIGGGGG,orientation,size,#006400,SCHEDULEDATE,SUPPERAMT,SCHEDULEDATE,SUPPERAMT+extra,84

		'arrow pointing to drip block
		'5,7,ARROW,source,Continuous:Point to ScheduleAMT at ScheduleDate,format,align,GGGGGIGGGGG,orientation,size,#006400,88,39.5,SCHEDULEDATE,SCHEDULEAMT,84

	5,7,ELSE
		'cyclic - vertical line showing predicted gain
		5,7,ARROW,source,Extra amount from FACTOR2,format,align,GGGGGIGGGGG,orientation,size,#8B0000D,SCHEDULEDATE,SUPPERAMT,SCHEDULEDATE,SUPPERAMT+extra
		5,7,FORMULA,temp=SUPPERAMT+((SUPPERAMT - SLOWERAMT) * (FACTOR2 - 1)) * 0.5  

		'plot line to mid-point
		5,7,LINE,,Point to Extra from FACTOR2,format,align,GGGGGIGGGGG,orientation,size,#8B0000,88,39.5,SCHEDULEDATE,midpoint
		'TEMPO 5,7,LABEL,ScheduleAmt=Required*Factor2,,FRM,RIGHT,GGHGGGGGGGG,BelowRight,,BLACK,93,38,,
	
		5,7,FORMULA,temp,alias,0.00,RIGHT,GGHGGGGGGGG,BelowRight,size,BLACK,93,38,,

	5,7,ENDIF

5,7,ELSE

	5,7,LABEL,Predictions not plotted [%Option(11)%],alias,format,align,GGGGGGGGGGG,BELOWRIGHT,size,RED,0,0
	
5,7,ENDIF 'plot  predictions

'Crop Type and Irrigation Method
'CropType 0 = Permanent(stress=refill), 1 = Annual(stress=lower)

'label with 'stress'
5,7,LABEL,stress,alias,format,align,HGGGGGGGGGG,BelowLeft,size,RED,88,42,,

5,7,BEGINIF,CropType=0

	'save 'permanent'
	5,7,TEXT,temp=Permanent 

	'1 pt dot red arrow, pointing to REFIll at the latest reading
	5,7,ARROW,source,Point to REFILL(stress),format,align,GGGGGIGGGGG,orientation,1,RED,85,43.5,CRNTDATE,REFILL

5,7,ELSE

	'save 'annual'
	5,7,TEXT,temp=Annual 

	'1 pt dot red arrow, pointing to calculated LOWER at the latest reading
	5,7,ARROW,source,Point to LOWER(stress),format,align,GGGGGIGGGGG,orientation,1,RED,85,43.5,CRNTDATE,LOWERAMT

5,7,ENDIF 'CropType

'show 'annual' or 'permanent', no border, not bold
5,7,LABEL,%temp%,alias,format,LEFT,GGGGGGGGGGG,orientation,size,BLACK,88,42,93,45 

'MethodID 0 = Cyclic(flood), 2 = Continous(drip)
5,7,BEGINIF, METHODID=2

	'5,7,TEXT,temp=Continous 'save text
	5,7,LABEL,Continous irrigation (every day),alias,format,LEFT,GGGGGGGGGGG,orientation,size,BLACK,78,42,99,45 'no border, bold

5,7,ELSE

	'5,7,TEXT,temp=Cyclic 'save text
	'show text, border
	5,7,LABEL,Cyclic irrigation,alias,format,LEFT,GGGGGGGGGGG,orientation,size,BLACK,78,42,99,45 'no border, bold

5,7,ENDIF 

'show text, border
5,7,LABEL,%temp%,alias,format,LEFT,GGGGGGGGGGG,orientation,size,BLACK,93,42,99,45 'no border, bold

'deliver amount
5,7,LABEL,ScheduleAMT,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,46,88,49
5,7,FORMULA,ScheduleAMT,alias,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,46,93,49
5,7,FORMULA,ScheduleAMT,alias,IRR,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,46,99,49

'effective amount
5,7,LABEL,Effective,alias,format,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,49,88,52
5,7,FORMULA,ScheduleEffectiveAmount,alias,0.00,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,88,49,93,52 '2 decimal places
5,7,FORMULA,ScheduleEffectiveAmount,alias,AMT,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,49,99,52 'formatted by ProbeMenu/DisplayUnits 

'scheduled date
5,7,LABEL,ScheduleDate,alias,,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,52,88,55
5,7,Formula,ScheduleDate,alias,0.0,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,88,52,93,55
5,7,Formula,ScheduleDate,alias,d mmm yyyy HH:MM,LEFT,HGGGGGGGGGG,orientation,size,BLACK,93,52,99,55

'arrow from FACTOR2 to ScheduleAMT to show how FACTOR2 is used
5,7,ARROW,source,point to ScheduleAMT,format,align,GGGGGIGGGGG,orientation,1,RED,93,39.5,93,47

'plot arrows to predicted irrigation
5,7,BEGINIF,MethodID=2

	'continuous
	'small vertical line 
	5,7,FORMULA,target=(SUPPERAMT+SLOWERAMT)/2
	5,7,LINE,source,alias,format,align,GGGGGIGGGGG,orientation,1,#006400,SCHEDULEDATE,target-5,SCHEDULEDATE,target+5

	'arrow pointing at target - assume target = (UPPER+LOWER)/2 
	5,7,Arrow,source,Continuous:Point to target,format,align,GGGGGIGGGGGG,orientation,1,#006400,88,50.5,SCHEDULEDATE,target

	'point from ScheduleAMT to top/end of drip block
	5,7,Arrow,source,Continuous Point to top of drip block,format,align,GGGGGIGGGGG,orientation,1,#006400,88,47.5,SCHEDULEDATE,SCHEDULEAMT/DRIPDAYS,84

	'point to  EffectiveAMT at end of drip block
	5,7,Arrow,source,Continuous Point to top of drip block,format,align,GGGGGIGGGGG,orientation,1,#006400,88,50.5,SCHEDULEDATE,(SCHEDULEAMT/FACTOR2)/DRIPDAYS,84

	'5,7,BEGINIF,SCHEDULEAMT=0
	'5,7,ELSE
	'5,7,Arrow,source,Continuous Point to top of drip block,format,align,GGGGGGGGGGG,orientation,2,#006400,88,39.5,(CRNTDATE+SCHEDULEDATE)/2,SCHEDULEAMT/DRIPDAYS,84
	'5,7,ENDIF


5,7,ELSE

	'cyclic=
	'highlight how FACTOR2 is used
	'5,7,ARROW,source,Extra amount from FACTOR2,format,align,GGGGGIGGGGG,orientation,size,RED,SCHEDULEDATE,SUPPERAMT,SCHEDULEDATE,SUPPERAMT+temp
	'5,7,FORMULA,temp=SUPPERAMT+((SUPPERAMT - SLOWERAMT) * (FACTOR2 - 1)) * 0.5  

	'plot line to mid-point
	'5,7,LINE,source,Point to Extra from FACTOR2,format,align,GGGGGIGGGGG,orientation,size,RED,88,39.5,SCHEDULEDATE,temp2
	'TEMPO 5,7,LABEL,ScheduleAmt=Required*Factor2,,FRM,RIGHT,GGHGGGGGGGG,BelowRight,,BLACK,93,38,,


	5,7,Arrow,,Point to SCHEDULEAMT above UPPER on time graph,,,GGGGGIGGGGG,,1,#8B0000,88,47.5,SCHEDULEDATE,SLOWERAMT+SCHEDULEAMT
	5,7,ARROW,,Point to SUPPERAMT,,,GGGGGIGGGGG,,1,RED,88,50.5,SCHEDULEDATE,SUPPERAMT

5,7,ENDIF


'5,7,Label,Deliver,,0.00,RIGHT,GGGGGGGGGGG,,,BLACK,78,38,88,41
'5,7,Formula,ScheduleAMT,ScheduleAMT*FACTOR2,0.00,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,38,93,41
'5,7,Formula,ScheduleAMT*FACTOR2,,IRR,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,38,98,41

'UPPER at ScheduleDate 55-58
5,7,LABEL,SUPPERAMT,alias,0.00,RIGHT,GGGGGGGGGGG,orientation,size,BLACK,78,55,88,58
5,7,FORMULA,SUPPERAMT,Value of UPPER at Schedule Date,0.00,RIGHT,HGGGGGGGGGG,,,BLACK,88,55,93,58
'1pt, dotted red arrow
5,7,ARROW,source,Pointing to UPPERAMT at schedule date,orientation,size,GGGGGIGGGGG,orientation,1,RED,88,56.5,SCHEDULEDATE,SUPPERAMT
5,7,FORMULA,SUPPERAMT,alias,AMT,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,55,99,58

'LOWER at ScheduleDate 58-61
5,7,LABEL,SLOWERAMT,,0.00,RIGHT,GGGGGGGGGGG,,,BLACK,78,58,88,61
5,7,FORMULA,SLOWERAMT,Value of LOWER at Schedule Date,0.00,RIGHT,HGGGGGGGGGG,,,BLACK,88,58,93,61
5,7,ARROW,,Pointing to LOWER at SheduleDate,,,GGGGGIGGGGG,,1,RED,88,59.5,SCHEDULEDATE,SLOWERAMT
5,7,FORMULA,SLOWERAMT,alias,AMT,RIGHT,HGHGGGGGGGG,orientation,size,BLACK,93,58,99,61

'schedule amount calculations
'see https://www.rsne.com.au/prwin/formulas.htm#scheduleamounts
'If these intermediate values are calculated... 78,88,93,99

'continous in dark green #006400
'cyclic in dark red #8B0000

11,27,BEGINIF,MethodID=2 'continous 
	
	11,27,LABEL,WetArea,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,size,#006400,78,61,88,64
	11,27,FORMULA,WetArea,Calculated Wet Area,0.00,RIGHT,HGHGGGGGGGGGGGG,orientation,size,BLACK,88,61,93,64 '2 dec places
	11,27,FORMULA,WetArea,Calculated Wet Area,AREA,RIGHT,HGHGGGGGGGGGGGG,orientation,size,BLACK,93,61,99,64 'format with ProbeMenu/DisplayUnits

	11,27,LABEL,MaxApplicationRate:,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,100,#006400,78,64,88,67
	11,27,FORMULA,MaxApplicationRate,alias,0.00,RIGHT,HGHGGGGGGGGGGGG,orientation,size,BLACK,88,64,93,67
	11,27,FORMULA,MaxApplicationRate,alias,DWU,RIGHT,HGHGGGGGGGGGGG,orientation,size,BLACK,93,64,99,67'ProbeMenu/DisplayUnits
	11,27,Arrow,source,Point to MaxApplicationRate,format,align,GGGGGIGGGGG,orientation,1,#006400,88,65.5,TXMAX,MaxApplicationRate,84'arrow pointing to maximum application rate on RHS axis(StyleID=84)

	11,27,BEGINIF,(ScheduleAMT/DripDays) > (MaxApplicationRate-0.5) 'label if ScheduleAmt above or near MaxApplicationRate

		11,27,LABEL,Limited by Max Rate (%MaxApplicationRate:DWU:1%) !,alias,format,align,HGGGGGGGGGGGGG,Right,100,RED,ScheduleDate,ScheduleAMT/DripDays,,,84

	11,27,ENDIF


11,27,ELSE 'cyclic

	11,27,LABEL,PumpRate:,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,size,#8B0000,78,61,88,64
	11,27,FORMULA,WATERVOL/WATERTIME/1000,alias,0.00,LEFT,GGGGGGGGGGGGGG,orientation,size,BLACK,88,61,93,64
	11,27,LABEL,%WATERVOL/WATERTIME/1000:0% Ml/day,alias,format,RIGHT,HGGGGGGGGGGGGG,orientation,size,BLACK,93,61,99,64

	11,27,LABEL,Deliver(volume):,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,100,#8B0000,78,64,88,67
	11,27,FORMULA,DeliverAmountVOL = SCHEDULEAMT * WetArea * 10,alias,VOL,RIGHT,HGGGGGGGGGG,orientation,size,BLACK,88,64,93,67
	11,27,LABEL,SCHEDULEAMT*WetArea*10,alias,format,LEFT,GGGGGGGGGGGGGG,orientation,size,BLACK,93,64,99,67

	'point from Deliver to top/middle of drip block (StyleID=84)
	11,27,Arrow,source,Cyclic - point to top of drip block,format,align,GGGGGGIGGGG,orientation,1,#8B0000,88,65.5,(CRNTDATE+SCHEDULEDATE)/2,SCHEDULEAMT/DRIPDAYS,84


11,27,ENDIF

11,27,LABEL,Deliver(hours):,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,100,BLACK,78,67,88,70
11,27,FORMULA,ScheduleTime,alias,0.000,RIGHT,HGHGGGGGGGGGG,orientation,size,BLACK,88,67,93,70
11,27,FORMULA,ScheduleTime,alias,HH:MM,RIGHT,HGGGGGGGGGGGGG,orientation,size,BLACK,93,67,99,70

11,27,LABEL,Deliver(volume):,alias,format,RIGHT,GGGGGGGGGGGGGG,orientation,100,BLACK,78,70,88,73
11,27,FORMULA,ScheduleVolume,alias,0.00,RIGHT,HGHGGGGGGGGGG,orientation,size,BLACK,88,70,93,73
11,27,FORMULA,ScheduleVolume,alias,VOL,RIGHT,HGHGGGGGGGGGGGG,orientation,size,BLACK,93,70,99,73

'debug
'11,27,LABEL,AREA=%AREA:0.00% WETWIDTH=%WETWIDTH% PLANTSPACE=%PLANTSPACE% WetArea=%WetArea:0.00% WATERVOL=%WATERVOL% WATERTIME=%WATERTIME%,alias,format,RIGHT,HGGGGGGGGGGGGG,orientation,size,BLACK,58,58,99,60

'================================
6,0,ReportTitle,example_schedule '
'suggestions for schedule messages
7,1,INCLUDE,example_check 'TEMPO just for checking

'recommendation text in rectangle, multiple lines. [1]=border H=ON [5]=FillStyle H=solid 
'set border 1 pt RED
5,22,BORDER,source,alias,format,align,GGGGGGGGGGGGG,orientation,1,PALERED
5,22,TEXT,SITES.COMMENT,alias,format,LEFTWRAP,HGGGHGGGGGGGG,orientation,100,BLACK,82,8,99,43

'can also do recommendation using X,Y, multiple lines.[1]=border=H [5]=FillStyle H=solid 
'but cannot handle tabs
5,22,TEXT,SITES.COMMENT,alias,format,align,HGGGHGGGGGGGG,BELOW,100,BLACK,TXMAX,TYMAX-10,,

'back to standard
5,22,BORDER,source,alias,format,align,GGGGGGGGGGGGG,orientation,1,BLACK


'schedule message examples

'hold X1,Y1 position of main label
11,27,FORMULA,X1=(CRNTDATE+TXMAX)/2
11,27,FORMULA,Y1=TYRELATIVE(10)

11,27,BEGINIF,SCHEDULEAMT > 0

	'Recommendation [1]=H=border=H, [2]=H=Bold, [5]=FillStyle H=Solid, [6]=LineStyle G=Solid
	'done below 11,28,LABEL,Apply %SCHEDULEAMT:AMT:1% by %SCHEDULEDATE:ddd D MMM%,Calculated Schedule,format,align,HHGGHGGGGGGGGGGG,ABOVERIGHT,120,BLACK,X1,Y1,,

	11,29,BEGINIF,MethodID=2
		'continuous
		11,30,FORMULA,DRIP_TOP=SCHEDULEAMT/DripDays   
		11,30,TEXT,DATE_TEXT=by %SCHEDULEDATE:ddd D MMM%

		'also point to top/middle of PRGraph drip block. needs StyleID=84 for axis scale
		11,31,BEGINIF,Option(4) AND Option(11) '4 = plot delivered gains, 11 = plot prediction

			'use StyleID=84=drip
			'StyleID scaling must use either numeric (%SCREEN), or a formula that returns main LHS axis (mm)
			12,32,ARROW,source,Amount=%SCHEDULEAMT:AMT:1% needs applying,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,X1,20,(CRNTDATE+SCHEDULEDATE)/2,ScheduleAMT/DripDays,84

		11,33,ELSE

			'thick line showing extent of drip block 
			11,34,LINE,source,apply over %DRIPDAYS% days,format,align,GGGGGGGGGG,orientation,2,WETTING,CRNTDATE,RZ1,SCHEDULEDATE,RZ1

			'point from label 11, 27 to top/middle of double arrow
			12,34,ARROW,source,Amount=%SCHEDULEAMT:AMT:1% needs applying,format,align,GGGGGGGGGG,orientation,1,DARKGREEN,X1,Y1,(CRNTDATE+SCHEDULEDATE)/2,RZ1

		11,99,ENDIF

	11,27,ELSE

		'cyclic

		11,27,TEXT,DATE_TEXT=on %SCHEDULEDATE:ddd D MMM YYYY%

		'delivered amount
		'12,54,LINE,source,Amount=%SCHEDULEAMT:AMT:1% needs applying,format,align,GGGGGGGGGGGGG,orientation,3,GREEN,SCHEDULEDATE,SLOWERAMT,SCHEDULEDATE,SLOWERAMT+SCHEDULEAMT

		'arrow pointing to top of delivered gain
		'SLOWERAMT = RZ1 trip value.  SCHEDULEAMT = mm needed = height of gain bar
		12,54,ARROW,source,Deliver = %FULL:AMT:1% - %REFILL:AMT:1% * %FACTOR2:0.0% ,format,align,GGGGGGGGGG,orientation,1,BLACK,X1,Y1,SCHEDULEDATE,SLOWERAMT+SCHEDULEAMT

	11,27,ENDIF

	'do label last so arrows are hiden by FillColour
	'Recommendation [1]=H=border=H, [2]=H=Bold, [5]=FillStyle H=Solid, [6]=LineStyle G=Solid
	11,27,LABEL,Apply %SCHEDULEAMT:AMT:1% %date_text%,Calculated Schedule,format,align,HHGGHGGGGGGGGGGG,ABOVERIGHT,120,BLACK,X1,Y1,,

11,27,ELSE

	'scheduled amount = zero [1]=border [2]=bold [5]=filled
	11,27,LABEL,No irrigation required this week,Calculated Schedule,format,ABOVERIGHT,HHGGHGGGGGGGGGG,0,120,BLACK,X1,Y1,,

11,27,ENDIF

'=======================================
11,1,REPORTTITLE,example_scheduleAgriTech '

'Alan Christie calculations - cyclic, but DripDays comes in to it

11,2,INCLUDE,example_check 'TEMPO just for checking

'testing 11,27,LABEL,full=%FULL%  rz1=%RZ1:0.00%  estdwu=%EstDWU:0.00:1% DripDays=%DripDays%,testing,format,align,HGGGGGGGGG,BELOWRIGHT,80,BLACK,10,10

'calculate predicted deficit in 7 days. include rain
11,5,FORMULA,PREDICTED_DATE=CRNTDATE+DRIPDAYS   
11,3,FORMULA,PREDICTED_RZ1=(CRNTAMT - (ESTDWU * DRIPDAYS)) + ForecastRain 'is this what Alan does ???
11,4,FORMULA,PREDICTED_SMD=FULL-PREDICTED_RZ1   
11,6,TEXT,PREDICTED_SMDRANGE=%PREDICTED_SMD:AMT:0%-%PREDICTED_SMD+5:AMT:1%  

'just for checking
11,7,LABEL,Option(59)=%Option(59)% :FULL=%FULL:0.00:1% :REFILL=%REFILL:0.00:1% :CRNTAMT=%CRNTAMT:0.00:1% :EstDWU=%EstDWU:0.00:1% :PREDICTED_RZ1=%predicted_rz1:0.00:1% :PREDICTED_SMD=%predicted_smd:0.00:1% :PREDICTED_DATE=%predicted_date:d mmm yyyy% :ForecastRain=%FORECASTRAIN:0.00:1% :PredictedRain=%PredictedRAIN:0.00:1%,alias,format,align,HGGGGGGGGGGGGGG,BELOWRIGHT,80,BLACK,0,2
11,7,LABEL,PREDICTED_RZ1=CRNTAMT - (EstDWU * DripDays) + ForecastRain|PREDICTED_SMD = FULL-PREDICTED_RZ1,alias,format,align,HGGGHGGGGGG,BELOWRIGHT,80,BLACK,0,4

'arrow darkgreen line from current RZ1 to predicted RZ1
11,7,ARROW,source,Predicted RZ1 in %DripDays% days with EstDWU=%EstDWU:DWU:1% and forecast rain=%FORECASTRAIN:AMT:1%,format,align,GGGGGGGGGG,orientation,1,DARKBLUE,CRNTDATE,CRNTAMT,PREDICTED_DATE,PREDICTED_RZ1

'double arrow from FULL to predicted RZ1
11,54,DOUBLEARROW,source,SMD=%PREDICTED_SMD:AMT:1% - needs applying,format,align,GGGGGGGGGGGG,orientation,1.5,DARKBLUE,PREDICTED_DATE,PREDICTED_RZ1,PREDICTED_DATE,FULL

11,27,BEGINIF,Option(59) '59 = uc_UseForecastRain  

	'Example[1]
	'plot line from text to midlle of vertical line
	11,54,LINE,source,SMD = %predicted_smd:AMT:1% - needs applying,format,align,GGGGGGGGGGGG,orientation,1,DARKGREEN,PREDICTED_DATE+8,FULL+10,PREDICTED_DATE,(FULL+PREDICTED_RZ1)/2
	'label
	11,27,LABEL,%FORECASTRAIN:AMT:1% rain forecast in next %DripDays% days| so smd = %predicted_smdrange%,Predicted deficit at end of next 7 days,format,align,HGGGHGGGGGGG,ABOVERIGHT,110,BLUE,predicted_date+8,FULL+10,,

11,27,ELSE

	'Example[2]
	'line from text to middle of vertical line
	12,54,LINE,source,SMD = %predicted_smd:AMT:1% that needs applying,format,align,GGGGGGGGGGGG,orientation,1,DARKGREEN,PREDICTED_DATE+10,FULL-2,PREDICTED_DATE,(FULL+PREDICTED_RZ1)/2
	'label
	11,27,LABEL,If no rain in next %DripDays:0% days| at %EstDWU:DWU:1% SMD=%predicted_smdrange%,Predicted deficit at end of next 7 days (%PREDICTED_DATE:ddd D MMM YYYY%),format,align,HGGGHGGGGGG,ABOVERIGHT,110,BLACK,PREDICTED_DATE+10,FULL-2,,


11,27,ENDIF 'Option(59)

'================================
12,0,ReportTitle,example_targetrz1 '

'messages about RZ1 relative to UPPER and LOWER

'calculate RZ1 and difference
11,27,FORMULA,currenttarget_rz1=TargetAMT(CRNTDATE)
11,27,FORMULA,target_rz1=TargetAMT(SCHEDULEDATE)
11,27,FORMULA,predicted_rz1=PredictedAMT(SCHEDULEDATE)
11,27,FORMULA,target_difference=TargetAMT(SCHEDULEDATE)

'debug top left
11,27,LABEL,ScheduleAMT=%ScheduleAMT:0.00:1% TargetRZ1=%target_rz1:0.00:1% predicted_rz1=%predicted_rz1:0.00:1% CurrentTarget=%currenttarget_rz1:0.00:1%,alias,format,align,GGGGGGGGGGG,BELOWRIGHT,80,BLACK,0,3,,

'do current RZ1
11,27,BEGINIF,RZ1 > UPPERAMT 

	'too high
	'arrow and warning label
	7,2,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE+5,RZ1+5,CRNTDATE,RZ1 
	11,27,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGGGG,orientation,size,WARNING
	11,27,LABEL,Too wet - %RZ1-UPPERAMT:AMT:1% above upper|RZ1=%RZ1:AMT:1% Upper=%UPPERAMT:AMT:1%,alias,format,align,HGGGHGGGGGG,RIGHT,100,BLACK,CRNTDATE+5,RZ1+5,,

11,27,BEGINELSEIF,RZ1 < LOWERAMT 

	'too low
	'arrow and warning label
	11,27,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE+10,RZ1-5,CRNTDATE,RZ1 
	11,27,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,WARNING
	11,27,LABEL,Too dry - (%LOWERAMT-RZ1:AMT:1%) %RZ1:AMT:1% below lower|RZ1=%RZ1:AMT:1% Lower=%LOWERAMT:AMT:1%,alias,format,align,HGGGHGGGGGG,RIGHT,100,BLACK,CRNTDATE+10,RZ1-5,,

11,27,ELSE 

	'in range
	'arrow and ok label
	11,27,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE+10,RZ1,CRNTDATE,RZ1 
	11,27,TEXT,%RZ1:AMT:1% is in range (%LOWERAMT:AMT:0%-%UPPERAMT:AMT:1%),alias,format,align,GGGGGGGGGGGGGGGG,RIGHT,1,BLACK,CRNTDATE+10,RZ1 

11,27,ENDIF 

'reset fillcolour
11,28,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,YELLOW

'target RZ1
'11,29,BEGINIF,predicted_rz1 > SUPPERAMT
	'could do extra heavy warning if above UPPER ???

11,29,BEGINIF,predicted_rz1 > target_rz1 

	'above target

	'label and arrow pointing to predicted RZ1
	11,2,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE+5,predicted_rz1+2,SCHEDULEDATE,predicted_rz1 
	11,27,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,WARNING
	11,27,LABEL,Predicted too wet - %predicted_rz1-target_rz1:AMT:1% above target|Predicted RZ1=%predicted_rz1:AMT:1% on %SCHEDULEDATE:d mmm:% dwu=%ScheduleDWU:DWU:1%,alias,format,align,HGGGHGGGGGG,RIGHT,100,BLACK,SCHEDULEDATE+5,predicted_rz1+2,,

	'vertical arrow showing difference
	7,2,DOUBLEARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE,predicted_rz1,SCHEDULEDATE,target_rz1 
	
	'set too-high
	11,27,FORMULA,ontarget=1 

11,27,BEGINELSEIF,predicted_rz1 < target_rz1 

	'below target

	'label and arrow pointing to predicted RZ1
	7,2,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE+5,predicted_rz1-2,SCHEDULEDATE,predicted_rz1 
	11,27,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,WARNING
	11,27,LABEL,Predicted too dry - %predicted_rz1-target_rz1:AMT:1% below target|Predicted RZ1=%predicted_rz1:AMT:1% on %SCHEDULEDATE:d mmm:% dwu=%ScheduleDWU:DWU:1%,alias,format,align,HGGGHGGGGGG,RIGHT,100,BLACK,SCHEDULEDATE+5,predicted_rz1-2,,

	'vertical arrow showing difference
	7,2,DOUBLEARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE,predicted_rz1,SCHEDULEDATE,target_rz1 

	'set too-low 
	11,27,FORMULA,ontarget=2 

11,27,ELSE 

	'will hit target
	7,2,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE+5,predicted_rz1,SCHEDULEDATE,predicted_rz1 
	11,27,TEXT,Predicted to hit target (%target_rz1:AMT:0%),alias,format,align,GGGGGGGGGGGGGGGG,RIGHT,80,BLACK,SCHEDULEDATE+5,predicted_rz1,, 

	'set just-right
	11,27,FORMULA,ontarget=0 

11,27,ENDIF 

'reset fillcolour
11,27,FILLCOLOUR,source,alias,format,align,HGGGHGGGGGG,orientation,size,YELLOW

'show arrow from RZ1 to TargetRZ1
11,27,BEGINIF,ontarget>0 
	'only if will hit target
	'arrow, 1p, dot, from RZ1 to RZTarget to show what *should* happen 
	11,27,ARROW,source,alias,format,align,GGGGGIGGGGGGGGGGG,orientation,1,DARKGREEN,CRNTDATE,RZ1,SCHEDULEDATE,target_rz1
11,27,ENDIF 

'label and arrow pointing to target RZ1
7,2,ARROW,source,alias,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,SCHEDULEDATE+5,target_rz1,SCHEDULEDATE,target_rz1,,
11,27,LABEL,Target=%target_rz1:AMT:1% on %SCHEDULEDATE:d mmm:%,alias,format,align,HGGGHGGGGGG,RIGHT,100,BLACK,SCHEDULEDATE+5,target_rz1,,


'========================== use: Site 2, Western Block, Rows 78/79 (ALVINE VINEAYRD) Lynette 2023/24
7,1,REPORTTITLE,example_criticaldates '
7,1,INCLUDE,example_check 'Method/CropType top left 

'use CriticalDate6
'2 pt blue vertical line at CriticalDate6 
'(but might already be plotted)
7,2,LINE,source,Vertical line at CriticalDate4,format,align,GGGGGGGGGGGGGGGG,orientation,1,BLUE,DATE6,TYMIN,DATE6,TYMAX 

7,2,FORMULA,days_togo=DATE4-CRNTDATE

'tempo check
'7,3,LABEL,days-togo=%days_togo:0%,alias,format,align,HGGGGGGGGG,BELOWRIGHT,80,BLACK,10,0,,

'message about season end, top centre of time graph
'7,5,LABEL,%SEASONEND-CRNTDATE:0% days to end of season (%SEASONEND:d mmm:0%),alias,format,align,HHGGHGGGGG,BELOWPLUS,120,BLACK,(TXMIN+TXMAX)/2,TYMAX,,

7,2,BEGINIF,days_togo<20
	7,11,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGG,orientation,size,WARNING
7,2,ENDIF

'message about critical date 6, border, bold, size=150
7,3,LABEL,Only %days_togo:0% days to %Date6Text% (%DATE6:d mmm:0%),alias,format,align,HGGGHGGGGG,LEFT,100,BLACK,DATE6-10,TYMAX-12,,

7,11,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGG,orientation,size,YELLOW 'back to normal

'1 pt DarkGreen arrow from 7,3 label to CriticalDate line
7,4,ARROW,source,Arrow pointing at top of CriticalDate1,format,align,GGGGGGGGGGGGGGGG,orientation,1,DARKGREEN,DATE6-10,TYMAX-12,DATE6,TYMAX-12

'====================
7,1,REPORTTITLE,example_criticaldate3 ''
7,1,INCLUDE,example_check 'Method/CropType top left 

'details about target and stress at DATE3 (veraison Estimate) Site 2, Western Block Lynette 2023/24'
'set value of plotdate
11,27,FORMULA,plotdate=DATE3

'explain what example does...
7,11,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGG,orientation,size,PALEGREEN
11,27,LABEL,{detail of all RZ values at any date},alias,format,align,HGGGHGGGGG,BELOW,100,BLACK,plotdate,TYMAX-5,,
7,11,FILLCOLOUR,source,alias,format,align,GGGGGGGGGGG,orientation,size,YELLOW

'if not plotting CriticalDates, plot vertical line and label
6,30,BEGINIF,Option(17)=0 '(17) = plot CriticalDates OFF  GraphMenu/Options/Local tab: time graph see: /prwin3/repdefs.htm#optioncodes

	13,27,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,2,RED,plotdate,TYMIN,plotdate,TYMAX

	'label centred on PlotDate
	11,27,LABEL,%DATE3TEXT% (%plotdate:d mmm%),alias,format,align,HGGGHGGGGG,BELOWPLUS,100,BLACK,plotdate,TYMAX,,

6,30,ENDIF

'call report: example_plotdate
11,27,INCLUDE,example_plotdate

'could also do other critical dates, SeasonEnd, etc
11,27,FORMULA,plotdate=DATE2
'11,27,INCLUDE,example_plotdate
11,27,FORMULA,plotdate=DATE5
'11,27,INCLUDE,example_plotdate

'================ subroutine()
13,1,ReportTitle,example_plotdate ' CRNTDATE

	'can only plot PREDICTED if in future
	13,3,FORMULA,plotdate_predicted=PredictedAMT(plotdate) 'predicted RZ1 on right because will overlap
	13,4,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+1,plotdate_predicted,plotdate,plotdate_predicted
	13,5,LABEL,P=%plotdate_predicted:AMT:1%,alias,format,align,HGGGHGGGGG,RIGHT,80,BLACK,plotdate+1,plotdate_predicted,,

13,6,ENDIF

13~7~FORMULA~plotdate_upper=YValueByDate(plotdate,0) '0=upper
13,8,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,BLACK,plotdate-1,plotdate_upper,plotdate,plotdate_upper
13,9,LABEL,U=%plotdate_upper:AMT:1%,alias,format,align,HGGGHGGGGG,LEFT,80,BLACK,plotdate-1,plotdate_upper,,

13~10~FORMULA~plotdate_lower=YValueByDate(plotdate,1) '1=lower
13,11,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,BLACK,plotdate-1,plotdate_lower,plotdate,plotdate_lower
13,12,LABEL,L=%plotdate_lower:AMT:1%,alias,format,align,HGGGHGGGGG,LEFT,80,BLACK,plotdate-1,plotdate_lower,,

13,13,FORMULA,plotdate_target=TargetAMT(plotdate)
13,14,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate-1,plotdate_target,plotdate,plotdate_target
13,15,LABEL,T=%plotdate_target:AMT:1%,alias,format,align,HGGGHGGGGG,LEFT,80,BLACK,plotdate-1,plotdate_target,,

13,16,FORMULA,plotdate_stress=StressAMT(plotdate)
13,17,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+1,plotdate_stress,plotdate,plotdate_stress
13,18,LABEL,S=%plotdate_stress:AMT:1%,alias,format,align,HGGGHGGGGG,RIGHT,80,BLUE,plotdate+1,plotdate_stress,,

'debug
13,19,LABEL,%plotdate:d mmm:0% P=%plotdate_predicted:0.00:1% T=%plotdate_target:0.00:1%  S=%plotdate_stress:0.00:1%,alias,format,align,HGGGGGGGGG,BELOWRIGHT,80,BLACK,20,0,,

'calculate target stress
13,20,FORMULA,plotdate_difference=plotdate_stress - plotdate_target 
13,21,FORMULA,plotdate_middle=(plotdate_stress+plotdate_target)/2
13,22,BEGINIF,plotdate_target < plotdate_stress

	'target below stress, so stressed

	13,23,FILLCOLOUR,source,alias,format,align,GGGGGGIGGGG,orientation,size,WARNING
	13,24,LABEL,Target stress = %plotdate_difference:AMT:1%,alias,format,align,HGGGHGGGGG,RIGHT,110,WHITE,plotdate+5,plotdate_middle,,  'at %plotdate:d mmm:0%

	'vertical line at plotdate, from target to stress
	13,25,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,4,DARKRED,plotdate,plotdate_stress,plotdate,plotdate_target

	'arrow pointing from label to middle of line
	13,26,ARROW,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+5,plotdate_middle,plotdate,plotdate_middle

13,27,ELSE

	'not stressed
	13,28,LABEL,Target not stressed,alias,format,align,HGGGHGGGGG,RIGHT,80,BLACK,plotdate+5,plotdate_middle,,  'at %plotdate:d mmm:0% (%plotdate_difference:AMT:1%)

	'vertical line at plotdate, from target to stress
	13,29,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate,plotdate_stress,plotdate,plotdate_target

	'arrow pointing from label to middle of line
	13,30,ARROW,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+2,plotdate_stress+5,plotdate,plotdate_middle

13,31,ENDIF

13,32,FILLCOLOUR,source,alias,format,align,GGGGGGIGGGG,orientation,size,YELLOW 'back to normal

'calculate predicted stress only if PLOTDATE is in future
13,33,BEGINIF,PLOTDATE > CRNTDATE 

	13,34,FORMULA,plotdate_difference=plotdate_stress - plotdate_predicted
	13,35,FORMULA,plotdate_middle=(plotdate_stress + plotdate_predicted)/2
	13,36,BEGINIF,plotdate_predicted < plotdate_stress

		'predicted below stress
		13,37,FILLCOLOUR,source,alias,format,align,GGGGGGIGGGG,orientation,size,WARNING
		13,38,LABEL,Predicted stress = %plotdate_differen10:31 AM 09-Oct-24ce:AMT:1% ,alias,format,align,HGGGHGGGGG,ABOVERIGHT,100,WHITE,plotdate+5,plotdate_middle,, 'at %plotdate:d mmm:0%

		'vertical line at plotdate, from predicted to stress
		13,39,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,4,DARKRED,plotdate,plotdate_predicted,plotdate,plotdate_stress

		'arrow pointing from label to middle of line
		13,49,ARROW,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+2,plotdate_predicted+5,plotdate,plotdate_middle

	13,41,ELSE

		'not stressed
		'is a label needed ?
		13,42,LABEL,Predicted not stressed,alias,format,align,HGGGHGGGGG,RIGHT,80,BLACK,plotdate+5,plotdate_middle,, ' at %plotdate:d mmm:0% (%plotdate_difference:AMT:1%)

		'vertical line at plotdate, from predicted to stress
		13,43,LINE,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate,plotdate_stress,plotdate,plotdate_predicted

		'arrow pointing from label to middle of line
		13,44,ARROW,source,alias,format,align,GGGGGGIGGGG,orientation,1,DARKGREEN,plotdate+5,plotdate_middle,plotdate,plotdate_middle

	13,45,ENDIF

	13,46,FILLCOLOUR,source,alias,format,align,GGGGGGIGGGG,orientation,size,YELLOW 'back to normal

13,47,ENDIF 'PLOTDATE > CRNTDATE

'============================
12,1,REPORTTITLE,example_spares	'

'testing variables
'5,7,LABEL,Option(60)=%Option(60)% CropType=%CropType% TargetOnTop=%TargetOnTop%,alias,format,LEFT,HGGGGGGGGGG,orientation,size,BLACK,78,60,99,65

'crop stage
'16,2,LINE,RED,,,,0,0,1,0,DATE2,TYMAX,DATE2,TYMIN
'16,2,TEXT,Date2Text,,,,0,AbovePlus,100,1,DATE2,TYMAX,,
'16,2,FORMULA,Date2,,d mmm,,0,BelowPlus,100,1,DATE2,TYMAX,,

'Alan Christie
'11,14,Formula,RZ2FULL-RZ2,,AMT,Left,JJGGGGGGGG,0,110,RED,73,34,84,37
'11,14,Formula,RZ2FULL-RZ2-200,,AMT,Left,JJGHGGGGGG,0,110,RED,73,34,84,37
'11,27,Label,Size=    >,,,Left,JJGGGGGGGG,0,110,RED,62,37,98,40


'7,7,Label,Variable,Alias,Format,RIGHT,HHGGGGGGGGG,,,BLACK,50,2,60,5
'7,7,Label,Value,Alias,,LEFT,HHGGGGGGGGG,,,BLACK,60,2,70,5
'7,7,Label,Text,Alias,,LEFT,HHGGGGGGGG,,,BLACK,70,2,80,5

'7,7,Label,SeasonEnd:,,,RIGHT,HGGGGGGGGGG,,,BLACK,50,5,60,8
'7,7,Formula,SeasonEnd,,0.000,LEFT,HGGGGGGGGGG,,,BLACK,60,5,70,8
'7,7,Formula,SeasonEnd,,d mmm yyyy,LEFT,HGGGGGGGGGG,,,BLACK,70,5,80,8

'7,7,Label,CurrentDate:,,,RIGHT,HGGGGGGGGGG,,,BLACK,50,8,60,11
'7,7,Formula,CRNTDATE,,0.000,LEFT,HGGGGGGGGGG,,,BLACK,60,8,70,11
'7,7,Formula,CRNTDATE,,d mmm yyyy HH:MM,LEFT,HGGGGGGGGGG,,,BLACK,70,8,80,11


'=============
11,1,REPORTTITLE,example_check '