open-insight/LSL2/STPROC/CUST_ACTIVITY_RPT1.txt
2024-05-22 14:06:46 -07:00

513 lines
22 KiB
Plaintext

compile function CUST_ACTIVITY_RPT1()
begin condition
pre:
post:
end condition
declare function msg, set_property, send_event, dialog_box, utility, get_property
declare function set_printer, fieldcount, key_sort, ex_vm_rem, Printer_Select
declare subroutine rlist, or_view, activate_save_select, yield, extract_si_keys
declare subroutine update_index, btree.extract
$insert logical
$insert rlist_equates
$insert msg_equates
$insert names_equates
$insert quote_equ
$insert quote_spec_equ
$insert invoice_equ
$insert order_equ
$insert company_equ
$insert annual_contracts_equ
$insert oiprint_equates
$insert prod_spec_equ
Params = dialog_box( 'CUST_ACTIVITY_RPT1', @window, '*CENTER' )
if Params = 'CANCEL' or Params = '' then
return 0
end
Stat = utility( 'CURSOR', 'H' )
convert '*' to @fm in Params
CustNo = Params<1>
Time = Params<2> ;* prev mo, prev qtr, prev year if this param has a value then
;* ignore param 3 and 4
StartDate = Params<3> ;* they specified a certain date range start
EndDate = Params<4> ;* " " " " " " end
OrderStat = Params<5> ;* open, closed or all orders
QuoteStat = Params<6> ;* orders only or all quotes
DirToPrinter = Params<7>
PrintSpecOnly= Params<8>
Today = date()
TodayOut = oconv( Today, 'D4/' )
if Time <> '' then
* set StartDate and EndDate to actual dates if a Time was choosen
Months = '1/2/3/4/5/6/7/8/9/10/11/12'
DaysInMonth = '31/28/31/30/31/30/31/31/30/31/30/31'
convert '/' to @fm in Months
convert '/' to @fm in DaysInMonth
* setup quarters
CurYear = field(TodayOut,'/',3)
Q1S = iconv( '1/1/':CurYear, 'D' )
Q1E = iconv( '3/31/':CurYear, 'D' )
Q2S = iconv( '4/1/':CurYear, 'D' )
Q2E = iconv( '6/30/':CurYear, 'D' )
Q3S = iconv( '7/1/':CurYear, 'D' )
Q3E = iconv( '9/30/':CurYear, 'D' )
Q4S = iconv( '10/1/':CurYear, 'D' )
Q4E = iconv( '12/31/':CurYear, 'D' )
begin case
case Time = 'Previous Month'
PrevMonth = ((field(TodayOut,'/',1)+0)-1)
YrToUse = field(TodayOut,'/',3)
if PrevMonth = 0 then
* in other words it is january so the previous would be december
* so also need to set to previous year
PrevMonth = 12
YrToUse -=1
end
StartDate = PrevMonth:'/1/':YrToUse
if PrevMonth = 2 then
* see if it is leap year
if len(iconv(PrevMonth:'/29/':YrToUse, 'D')) then
EndDate = PrevMonth:'/29/':YrToUse
end else
EndDate = PrevMonth:'/28/':YrToUse
end
end else
MonthDays = DaysInMonth<PrevMonth>
EndDate = PrevMonth:'/':MonthDays:'/':YrToUse
end
case Time = 'Previous Qtr'
* what quarter are we in
begin case
case Today >= Q1S and Today <= Q1E
* use previous year quarter
StartDate = '10/1/':CurYear-1
EndDate = '12/31/':CurYear-1
case Today >= Q2S and Today <= Q2E
StartDate = oconv( Q1S, 'D2/' )
EndDate = oconv( Q1E, 'D2/' )
case Today >= Q3S and Today <= Q3E
StartDate = oconv( Q2S, 'D2/' )
EndDate = oconv( Q2E, 'D2/' )
case Today >= Q4S and Today <= Q4E
StartDate = oconv( Q3S, 'D2/' )
EndDate = oconv( Q3E, 'D2/' )
end case
case Time = 'Previous Year'
PrevYear = (field(TodayOut,'/',3)-1)
StartDate = '1/1/':PrevYear
EndDate = '12/31/':PrevYear
end case
end
gosub PrinterInit
Font<2> = 12
Void = set_printer( 'FONT', Font )
***************** program logic flow ********************************
*1) print customer information
*2) retrieve all annual contracts and print info if none don't print
*3) retrieve all quotes and loop through
*4) with each quote find orders used in that time frame and print info
*5) if order open print balance information
*********************************************************************
*(1) STEP ONE
CustRec = xlate( 'COMPANY', CustNo, '', 'X' )
Lout = 'Customer Information for ':CustRec<company_co_name$>
Table = ''
Table<-1> = Lout
TableColInfo = '^+10973'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = 'Bill to Information':@vm:'Ship to Information'
TableColInfo = '^+5486':@vm:'^+5486'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
BTAddr = CustRec<company_bill_to_address$>
swap @vm with ' ' in BTAddr
STAddr = CustRec<company_ship_to_address$>
swap @vm with ' ' in STAddr
Table<-1> = 'Attn:':@vm:CustRec<company_bill_to_attn$>:@vm:'Attn:':@vm:CustRec<company_ship_to_attn$>
Table<-1> = 'Company:':@vm:CustRec<company_bill_to_co$>:@vm:'Company:':@vm:CustRec<company_ship_to_co$>
Table<-1> = 'Address:':@vm:BTAddr:@vm:'Address:':@vm:STAddr
Table<-1> = 'City:':@vm:CustRec<company_bill_to_city$>:@vm:'City:':@vm:CustRec<company_ship_to_city$>
Table<-1> = 'State:':@vm:CustRec<company_bill_to_state$>:@vm:'State:':@vm:CustRec<company_ship_to_state$>
Table<-1> = 'Zip:':@vm:CustRec<company_bill_to_zip$>:@vm:'Zip:':@vm:CustRec<company_ship_to_zip$>
TableColInfo = '<+1440':@vm:'<+4046':@vm:'<+1440':@vm:'<+4046'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Void = set_printer( 'TEXT', '' )
*(2) STEP TWO
open 'DICT.ANNUAL_CONTRACTS' to DictAnnConTable else
MsgInfo = ''
MsgInfo<mcol$> = -2
MsgInfo<mrow$> = -2
MsgInfo<mtext$> = 'Unable to open DICT.ANNUAL_CONTRACTS...'
void = msg( '', MsgInfo )
return 0
end
SearchStr = ''
SearchStr<-1> = 'CUST_NO':@vm:CustNo
SearchStr<-1> = 'STATUS':@vm:'O' ;* force to open talk to Ray Krummen
SearchStr:= @fm
Flag = ''
btree.extract( SearchStr, 'ANNUAL_CONTRACTS', DictAnnConTable, ACKeys, '', Flag )
if Flag <> 0 then
MsgInfo = ''
MsgInfo<mcol$> = -2
MsgInfo<mrow$> = -2
MsgInfo<mtext$> = 'Error while extracting ANNUAL CONTRACT records...'
Void = msg( '', MsgInfo )
return 0
end
if ACKeys then
convert @vm to @fm in ACKeys
ACKeys = key_sort( ACKeys, 'ANNUAL_CONTRACTS', 'ENTRY_DATE', 1 )
* open annual contracts report on them
ACCnt = fieldcount( ACKeys, @fm )
for i = 1 to ACCnt
ThisACRec = xlate( 'ANNUAL_CONTRACTS', ACKeys<i>, '', 'X' )
Table = ''
Lout = 'B L A N K E T':fmt('','L#3'):'O R D E R # ':ACKeys<i>
Table<-1> = Lout
TableColInfo = '<+10080'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
Lout = ''
*Void = set_printer( 'TEXT', 'Contract Date from ':oconv(ThisACRec<annual_contracts_from_date$>, 'D2/' ):' to ':oconv(ThisACRec<annual_contracts_thru_date$>, 'D2/' ))
Table = ''
Table<-1> = 'Contract Start ':oconv(ThisACRec<annual_contracts_from_date$>,'D2/'):@vm:'Contract End ':oconv(ThisACRec<annual_contracts_thru_date$>,'D2/')
Table<-1> = 'Cust PO# ':ThisACRec<annual_contracts_po$>:@vm:'Quote# ':ThisACRec<annual_contracts_quote_num$>
Table<-1> = 'Orig$ ':oconv( ThisACRec<annual_contracts_contract_amount$>, 'MD2,$' ):@vm:'Balance ':oconv( xlate( 'ANNUAL_CONTRACTS', ACKeys<i>, 'BALANCE', 'X' ), 'MD2,$' )
TableColInfo = '<+5040':@vm:'<+5040'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
if ThisACRec<annual_contracts_notes$> <> '' then
TNote = ThisACRec<annual_contracts_notes$>
convert @tm to ' ' in TNote
TNote = trim(TNote)
Table = 'Description: ':TNote
TableColInfo = '<+10080'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_BOX)
end
next i
Void = set_printer('TEXT', '')
end
*(3) STEP THREE
QuoteKeys = xlate( 'COMPANY', CustNo, 'QUOTE_KEYS', 'X' )
convert @vm to @fm in QuoteKeys
QuoteKeys = key_sort( QuoteKeys, 'QUOTE', 'ENTRY_DATE', 1 )
QKcnt = fieldcount( QuoteKeys, @fm )
open 'DICT.ORDER' to DictOrderTable else
MsgInfo = ''
MsgInfo<mtext$> = 'Unable to open DICT.ORDER...'
MsgInfo<mcol$> = -2
MsgInfo<mrow$> = -2
void = msg( '', MsgInfo )
return 0
end
OrdSearchAdd = ''
if OrderStat = 'Open Orders' then
OrdSearchAdd = 'STATUS':@vm:'O'
end else
if OrderStat = 'Closed Orders' then
OrdSearchAdd = 'STATUS':@vm:'C'
end
* if not then it is set to all so no need for OrdSearchAdd
end
for i = 1 to QKcnt
ThisQuote = QuoteKeys<i>
QuoteRec = xlate( 'QUOTE', ThisQuote, '', 'X' )
if PrintSpecOnly then
gosub PrintQuoteSpec
end else
* show the order detail
SearchStr = ''
SearchStr<-1> = 'QUOTE_IDS':@vm:ThisQuote
SearchStr<-1> = 'ENTRY_DATE':@vm:StartDate:'...':EndDate
if OrdSearchAdd then
SearchStr<-1> = OrdSearchAdd
end
* EXPLAIN TO RAY THAT WHEN CHOOSING QUOTED PRODUCTS IT WILL SHOW QUOTES THAT WERE NOT
* ORDERED IN THAT TIME FRAME BUT MAY HAVE BEEN ORDERED IN SOME OTHER TIME FRAME
SearchStr := @fm
btree.extract( SearchStr, 'ORDER', DictOrderTable, OrderKeys, '', Flag )
if Flag <> 0 then
MsgInfo = ''
MsgInfo<mtext$> = 'Error while extracting ORDER records...'
MsgInfo<mcol$> = -2
MsgInfo<mrow$> = -2
Void = msg( '', MsgInfo )
return 0
end
if OrderKeys then
if QuoteStat = 'Ordered Products' then
* orders placed with this quote
gosub PrintQuoteSpec
convert @vm to @fm in OrderKeys
OrderKeys = key_sort( OrderKeys, 'ORDER', 'ENTRY_DATE', 1 )
OKCnt = fieldcount( OrderKeys, @fm )
for j = 1 to OKCnt
ThisOrder = OrderKeys<j>
OrderRec = xlate( 'ORDER', ThisOrder, '', 'X' )
* NEED TO LOOP THROUGH QUOTE_IDS AND GET ONLY THE CORRECT ONES
* AND ADD UP QTY PRICE AND SRP
* quote order vars
OrderStatus = OrderRec<order_status$>
PO = OrderRec<order_po$>
oQty = 0
oPrice = ''
oSRP = 0
oTot = 0
oSetup = 0
WO = ''
PartNum = ''
* total order vars
OrderDate = oconv(OrderRec<order_entry_date$>, 'D2/')
TotOrdAmt = xlate( 'ORDER', OrderKeys<j>, 'TOTAL_AMOUNT', 'X' )
InvAmt = 0
BalInvAmt = 0
NonInvAmt = 0
InvNos = ''
* end total order vars
* FOR WORK ORDER AND PART NUMBER WILL REPORT ON THE FIRST LINE ITEM THAT
* USED THAT QUOTE
QIdCnt = fieldcount( OrderRec<order_quote_ids$>, @vm )
for k = 1 to QIdCnt
if OrderRec<order_quote_ids$,k> = ThisQuote then
* this line item is using the current quote so add up qty, price, srp
if WO = '' then
WO = OrderRec<order_wo$,k>
end
if PartNum = '' then
PartNum = OrderRec<order_part_num$,k>
end
oQty += OrderRec<order_quantity$,k>
TPrice = OrderRec<order_price$,k>
if oPrice = '' then
oPrice = TPrice ;* should always be the same price per wafer for same spec
;* if not we have some major concerns at Epitronics Silicon Division
end
oSRP += OrderRec<order_srp_charge$,k>
oSetup += OrderRec<order_setup_charge$,k>
end
next k
* NEED TO SHOW INVOICING INFO
* NEED TO EXPLAIN THAT ORDER IS CLOSED WHEN PRODUCT IS SHIPPED
* BUT INVOICE STAYS OPEN UNTIL PAID
* NEED TO EXPLAIN TO RAY THAT THERE IS NO WAY OF TELLING ON A PARTIAL PAYMENT
* OF A MULTIPLE QUOTE(PRODUCT) INVOICE WHICH PART IT WAS APPLIED TO.
* SO I AM SIMPLY GOING TO SHOW THE TOTAL INVOICED AMOUNT FOR THIS ORDER
* BALANCE OF THE INVOICED AMOUNT AND THE DIFFERECE IS THE NON INVOICED AMOUNT
* MEANING THE PRODUCT HAS NOT RUN...USE THE PO TO GO AGAINST INVOICES
extract_si_keys( 'INVOICE', 'PO', PO, TInvIds )
tIcnt = fieldcount( TInvIds, @vm )
if tIcnt then
* we have invoices so show balance information
InvNos = TInvIds
swap @vm with '; ' in InvNos
InvAmt = sum(xlate( 'INVOICE', TInvIds, 'INVOICE_AMOUNT', 'X' ))
BalInvAmt = sum(xlate( 'INVOICE', TInvIds, 'BALANCE', 'X' ))
NonInvAmt = (TotOrdAmt-InvAmt)
end else
* no invoices created so the balance is the original order amt
BalInvAmt = TotOrdAmt
NonInvAmt = TotOrdAmt
end
* print total order info
Lout = 'TOTAL ORDER INFO FOR ORDER# ':ThisOrder
Table = ''
Table<-1> = Lout
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
Lout = ''
Table<-1> = 'Date':@vm:'Order Amt':@vm:'Invoice Amt':@vm:'Non Invoice Amt':@vm:'Balance':@vm:'Invoice Nos'
Lout = OrderDate:@vm
Lout:= oconv(TotOrdAmt,'MD2,$'):@vm
Lout:= oconv(InvAmt,'MD2,$'):@vm
Lout:= oconv(NonInvAmt,'MD2,$'):@vm
Lout:= oconv(BalInvAmt,'MD2,$'):@vm
Lout:= InvNos
Table<-1> = Lout
TableColInfo = '<+1080':@vm:'<+1800':@vm:'<+1800':@vm:'<+1987':@vm:'<+1800':@vm:'<+2606'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Lout = 'ORDER INFO FOR QUOTE# ':ThisQuote
Table = ''
Table<-1> = Lout
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
Lout = ''
Table<-1> = 'PO#':@vm:'WO#':@vm:'Part Num':@vm:'Qty':@vm:'Price':@vm:'SRP':@vm:'Setup':@vm:'Total'
Lout = PO:@vm
Lout:= WO:@vm
Lout:= PartNum:@vm
Lout:= oQty:@vm
Lout:= oconv(oPrice,'MD2,$'):@vm
Lout:= oconv(oSRP,'MD2,$'):@vm
Lout:= oconv(oSetup,'MD2,$'):@vm
Lout:= oconv( ((oQty*oPrice)+oSRP+oSetup), 'MD2,$' )
Table<-1> = Lout
TableColInfo = '<+1714':@vm:'<+1440':@vm:'<+1440':@vm:'<+907':@vm:'<+1267':@vm:'<+1267':@vm:'<+1267':@vm:'<+1771'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Void = set_printer( 'TEXT', '' )
next j
end else
* the user choose 'Quoted Products' and we have orders so skip
* this Quote
******************* SKIP THE QUOTE ***************************
end
end else
* no orders against this Quote check to see if the user choose Quoted Products
if QuoteStat = 'Quoted Products' then
gosub PrintQuoteSpec
end
* only print the quote and specification there are no orders against this quote
* so no need to print anything
end
end
next i ;* looping through quotes
Void = set_printer( 'TERM', 1 )
Stat = utility( 'CURSOR', 'A' )
return 0
*================================================================================================*
PrinterInit:
* initialize the printer and set the headings
if DirToPrinter = 'Yes' then
OutputParam = 0
end else
OutputParam = 3 ;* maximized print preview
end
PrintPath = Printer_Select('',1) ;* Get default printer path
Void = set_printer( 'INIT', '', '', '', '', OutputParam.PrintPath )
TheHeader = "C U S T O M E R":fmt('','L#3'):"A C T I V I T Y":fmt('','L#3'):"R E P O R T":fmt('','L#10'):"(":StartDate:" - ":EndDate:")":fmt('','L#10'):" Page #'P'"
Font = 'Times New Roman,14,L,1' ;* 14 point, Left just, Bold
convert ',' to @fm in font ;* Use @FM delimiter
Void = set_printer( 'FONTHEADFOOT', font )
Void = set_printer( 'HEADER', TheHeader, '', '' )
return
*================================================================================================*
PrintQuoteSpec:
* first prin quote specification information
Lout = 'Q U O T A T I O N / S P E C I F I C A T I O N':fmt('','L#3'):'I N F O R M A T I O N'
Table = ''
Table<-1> = Lout
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Table = ''
Table<-1> = 'Quote#':@vm:'Status':@vm:'Contact Name':@vm:'Contact Phone':@vm:'Contact Fax'
Lout = ''
Lout := ThisQuote:@vm
Lout := oconv(QuoteRec<quote_status$>,'[QUOTE_STATUS_CONV]'):@vm
Lout := xlate( 'NAMES', QuoteRec<quote_name_no$>, 'FIRST_LAST', 'X' ):@vm
NameRec = xlate( 'NAMES', QuoteRec<quote_name_no$>, '', 'X' )
Tphone = oconv( NameRec<names_phone$,1>, '[PHONE_FORMAT]' )
TExtension = NameRec<names_phone_ext$,1>
if TExtension then
TPhone := ' X':Textension
end
Lout := TPhone:@vm
Tfax = oconv( QuoteRec<quote_fax$>, '[PHONE_FORMAT]' )
if Tfax then
* had a fax on quote so ok
Lout := Tfax
end else
* no fax so set it to international fax if blank then it has neither
Lout := QuoteRec<quote_ifax$>
end
Table<-1> = Lout
TableColInfo = '<+1440':@vm:'<+1440':@fm:'<+2434':@vm:'<+2880':@vm:'<+2880'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Lout = 'S U B S T R A T E':fmt('','L#3'):'I N F O R M A T I O N'
Table = ''
Table<-1> = Lout
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
PSNId = QuoteRec<quote_prod_spec_id$>
SpecSubstrate = xlate( 'PROD_SPEC', PSNId, prod_spec_spec_substrate$, 'X' )
Table = ''
Table<-1> = 'Diameter':@vm:'Type':@vm:'Dopant':@vm:'Orientation':@vm:'Resistivity':@vm:'Bur Lay1':@vm:'Bur Lay2':@vm:'Bur Lay3'
Lout = ''
Lout := SpecSubstrate<1,QSSubWafersize$>:@vm
Lout := SpecSubstrate<1,QSSubType$>:@vm
Lout := SpecSubstrate<1,QSSubDopant$>:@vm
Lout := SpecSubstrate<1,QSSubOrientation$>:@vm
Lout := SpecSubstrate<1,QSSubResistivity$>:@vm
Lout := SpecSubstrate<1,QSSubBl1Dopant$>:@vm
Lout := SpecSubstrate<1,QSSubBl2Dopant$>:@vm
Lout := SpecSubstrate<1,QSSubBl3Dopant$>
Table<-1> = Lout
TableColInfo = '<+1714':@vm:'<+720':@vm:'<+1440':@vm:'<+1440':@vm:'<+1440':@vm:'<+1440':@vm:'<+1440':@vm:'<+1440'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
Lout = 'E P I':fmt('','L#3'):'I N F O R M A T I O N'
Table = ''
Table<-1> = Lout
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
EpiLayers = xlate( 'PROD_SPEC', PSNId, prod_spec_spec_epi$, 'X' )
*convert char(247) to @fm in EpiLayers ;* each seperate layer
*SepLCnt = fieldcount( EpiLayers, @fm)
******SEPERATE REACTOR LAYERS*********************************
* NO MORE SEPARATE REACTOR LAYERS DEFINED IN SPEC
* SO HAD TO MODIFY THIS CODE TO LOOK AT PRIOR psnids AS THESE
* ARE CONSIDERED SEPARATE LAYERS
PrevPSNs = QuoteRec<quote_prev_prod_spec_ids$>
PrevPSNs:= @vm:QuoteRec<quote_prod_spec_id$>
* TACK ON THE PROD_SPEC_ID
PrevPSNs = ex_vm_rem( PrevPSNs )
SepLCnt = fieldcount( PrevPSNs, @vm)
TrueLayer = 0
Table = ''
Table<-1> = 'Layer':@vm:'Dopant':@vm:'Thick Min':@vm:'Thick Max':@vm:'Res Min':@vm:'Res Max'
* print epi layer headings
TableColInfo = '^+1440':@vm:'^+2880':@vm:'^+1699':@vm:'^+1684':@vm:'^+1684':@vm:'^+1684'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
for n = 1 to SepLCnt
******SEPERATE REACTOR LAYERS****************************
TrueLayer += 1
ThisSepLayer = xlate( 'PROD_SPEC', PrevPSNs<1,n>, prod_spec_spec_epi$, 'X' )
Table = ''
Lout = TrueLayer:@vm
Lout:= ThisSepLayer<1,QSEpiDopant$>:@vm
Lout:= oconv(ThisSepLayer<1,QSEpiMinThick$>,'MD2'):@vm
Lout:= oconv(ThisSepLayer<1,QSEpiMaxThick$>,'MD2'):@vm
Lout:= oconv(ThisSepLayer<1,QSEpiResMinThick$>,'MD3'):@vm
Lout:= oconv(ThisSepLayer<1,QSEpiResMaxThick$>,'MD3')
Table<-1> = Lout
TableColInfo = '^+1440':@vm:'^+2880':@vm:'^+1699':@vm:'^+1684':@vm:'^+1684':@vm:'^+1684'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
******SAME REACTOR LAYERS*********************************
convert char(248) to @fm in ThisSepLayer
RestOfLayers = field( ThisSepLayer, @fm, 2, 9999 )
RolCnt = fieldcount( RestOfLayers, @fm )
for o = 1 to RolCnt
TrueLayer += 1
ThisSameLayer = RestOfLayers<o>
Table = ''
Lout = TrueLayer:@vm
Lout:= ThisSepLayer<1,QSEpiDopant$>:@vm
Lout:= oconv(ThisSameLayer<1,QSEpiMinThick$>,'MD2'):@vm
Lout:= oconv(ThisSameLayer<1,QSEpiMaxThick$>,'MD2'):@vm
Lout:= oconv(ThisSameLayer<1,QSEpiResMinThick$>,'MD3'):@vm
Lout:= oconv(ThisSameLayer<1,QSEpiResMaxThick$>,'MD3')
Table<-1> = Lout
TableColInfo = '^+1440':@vm:'^+2880':@vm:'^+1699':@vm:'^+1684':@vm:'^+1684':@vm:'^+1684'
x = Set_Printer("ADDTABLE", TableColInfo, '', Table, '', '', 1, TB_ALL)
next o ;* same reactor layer
******END SAME REACTOR LAYERS*****************************
next n ;* seperate reactor layer
*******END SEPERATE REACTOR LAYERS***************************
* NOW PRINT THE QUOTE COMMENTS
if QuoteRec<quote_comments$> <> '' then
TNote = QuoteRec<quote_comments$>
convert @tm to ' ' in TNote
TNote = trim(TNote)
Table = 'Comments: ':TNote
TableColInfo = '<+11073'
x = Set_Printer("ADDTABLE", TableColInfo, '', '', 1, TB_BOX)
end
Void = set_printer( 'TEXT', '' )
return
*================================================================================================*