home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR22
/
JORF21_2.ZIP
/
CONFLDS.J
< prev
next >
Wrap
Text File
|
1993-07-05
|
12KB
|
379 lines
Class:ConFlds
Index:PagePos
Index:Prompt
Index:Field
Page
Row
Col
Len
Wid
PrWid
Type
NumFormat
Radiovalue
Before
After
Action
ConFlds:Start
New (ConFlds:ConFlds,ConPage:Page)
Jorf:File("CONFLDS.DAT",Here)
Event:Add()
Mem:Ptr->ConIndex='PagePos'
ConFlds=ConFlds:Next(ConFlds,'Next')
Win:Add ("Contact Field Management")
Menu:"&File"
Menu:"&Generate" Action:"ConFlds:Generate()"
Menu:"&Rebuild" Action:"ConFlds:Rebuild()"
Menu:""
Menu:"E&xit Alt-X" Action:"Return(Null)"
Menu:"&Edit"
Menu:"&Add" Action:"ConFlds:Edit(ConFlds,'Add')"
Menu:"&Change" Action:"ConFlds:Edit(ConFlds,'Change')"
Menu:"&Delete" Action:"ConFlds:Edit(ConFlds,'Delete')"
Menu:"&Search",
Menu:"&Page ", Action:"ConFlds:KeySearch (ConFlds,'Page' ,'PagePos')
Menu:"P&rompt ", Action:"ConFlds:KeySearch (ConFlds,'Prompt', 'Prompt')
Menu:"&Field ", Action:"ConFlds:KeySearch (ConFlds,'Field' , 'Field')
Group:"&ConFldss", Row:1, Col:1, Len:16, Wid:42
String:"Prompt Page Col Row Field Name"
List:"" Row:3, Col:2, Len:14, Wid:42
Field:"ConFlds"
Next:"ConFlds:Next(ConFlds,'Next')"
Prev:"ConFlds:Next(ConFlds,'Prev')"
Show:"ConFlds:Show(ConFlds)'
Button:"&Ok" Row:19 Col:5 Wid:14 Action:"Return(Null)"
Button:"&Cancel" Row:19 Col:25 Wid:14 Action:"Return('Esc_Key')"
Return (Ok)
Class:ConPage
Index:PageNo
Text
ConFlds:BeforeLen()
If (Str:In('HLine,Group,Text',ConFlds->Type)==0)
ConFlds->Len=Null
Return (Null)
Return (Ok)
ConFlds:BeforeWid()
If (Str:In('Radio,ChBox,Prompt',ConFlds->Type))
ConFlds->Wid=Null
Return (Null)
Return (Ok)
ConFlds:CheckCol(Col)
If (Col < 1 OR Col > 76)
Msg:Add
You must enter a column &
between 1 and 76.
Return (Null)
Return (Ok)
ConFlds:CheckField(Field)
New (i,c)
If (Str:In(Field," ")
Msg:Add
You cannot have embedded spaces
in your field name. If you want,
you can use an _underscore.
Return (Null)
If (To:Num(Str:At(Field,1,1)))
Msg:Add
You cannot begin a field name
with a number.
Return (Null)
For (i = 1 thru str:len(field))
c=To:Ucs(Str:At(Field,i,1))
If ((C < "A" Or C > "Z") And C!='_')
Msg:Add
Illegal character "{C}". You must
use only alphabetic characters in
a field name.
Return (Null)
Return (Ok)
ConFlds:CheckPage(Page)
If (Page < 1 OR Page > 99)
Msg:Add
You must enter a page number &
between 1 and 99.
Return (Null)
Return (Ok)
ConFlds:CheckRow(Row)
If (Row < 1 OR Row > 15)
Msg:Add
You must enter a row &
between 1 and 15.
Return (Null)
Return (Ok)
ConFlds:CheckWid(Wid)
If (Wid < 1 OR Wid > 76)
Msg:Add
You must enter a width &
between 1 and 76.
Return (Null)
Return (Ok)
ConFlds:Edit(*ConFlds,Action)
| Add/Edit/Delete ConFldss
New (ConFlds:NewConFlds, ConPage:Page,Result)
Switch (Action)
Case "Add"
Jorf:Write(NewConFlds)
ConFlds=NewConFlds
Jorf:Lock(NewConFlds)
Case "Change"
If (Jorf:Lock(ConFlds)==Null)
Win:Msg("Record is locked. Cannot change right now.")
Return (Ok)
Page=Struct:Find('ConPage','PageNo',ConFlds->Page)
If (Page->Text)
Page->Text=Null
Jorf:Write(Page)
Case "Notes"
If (Jorf:Lock(ConFlds)==Null)
Win:Msg("Record is locked. Cannot change right now.")
Return (Ok)
ConFlds:Page('Notes')
Kbd:Put("End_Key")
Kbd:Get()
Jorf:Write(ConFlds)
Return (Ok)
Case "Delete"
Result=Msg:Add('ConFlds Delete','No')
Delete this Field?
Page: {ConFlds->Page} Row: {ConFlds->Row} Col: {ConFlds->Col}
Prompt: {ConFlds->Prompt}
Field: {ConFlds->Field}
If (Result)
Jorf:Del(ConFlds)
Page=Struct:Find('ConPage','PageNo',ConFlds->Page)
If (Page->Text)
Page->Text=Null
Jorf:Write(Page)
Win:Dsp
Kbd:Put("Home_Key")
Return(Ok)
Win:Add ("{Action} Field")
Group:"" Row:1 Col:1 Len:2 Wid:46
Input:"&Prompt" Row:2 Col:2 Wid:39 Field:"ConFlds->Prompt"
Input:"N&ame " Row:3 Col:2 Wid:14 Field:"ConFlds->Field"
After:"ConFlds:CheckField(ConFlds->Field)"
Input:"Page" Row:3 Col:25 Wid:2 Field:"ConFlds->Page" Type:"Number"
After:"ConFlds:CheckPage(ConFlds->Page)"
Input:"Prompt Width" Row:3 Col:33 Wid:2 Field:"ConFlds->PrWid" Type:"Number"
After:"ConFlds:CheckPage(ConFlds->Page)"
Group:"Type" Row:5 Col:1 Len:6 Wid:46
Radio:"Normal &Input " Row:6 Col:2
Check:"ConFlds->Type=='Normal'"
Action:"ConFlds->Type='Normal'"
UnAction:"ConFlds->Type=Null"
Radio:"&Date input " Row:7 Col:2
Check:"ConFlds->Type=='Date'"
Action:"ConFlds->Type='Date'"
UnAction:"ConFlds->Type=Null"
Radio:"&Numeric input" Row:8 Col:2
Check:"ConFlds->Type=='Number'"
Action:"ConFlds->Type='Number'"
UnAction:"ConFlds->Type=Null"
Input:"Format" Row:9 Col:5 Wid:16 Field:"ConFlds->NumFormat"
Radio:"&Text input " Row:10 Col:2
Check:"ConFlds->Type=='Text'"
Action:"ConFlds->Type='Text'"
UnAction:"ConFlds->Type=Null"
Radio:"Chec&k Box" Row:6 Col:28
Check:"ConFlds->Type=='ChBox'"
Action:"ConFlds->Type='ChBox'"
UnAction:"ConFlds->Type=Null"
Radio:"&Radio Button" Row:7 Col:28
Check:"ConFlds->Type=='Radio'"
Action:"ConFlds->Type='Radio'"
UnAction:"ConFlds->Type=Null"
Input:"Value" Row:8 Col:31 Wid:10 Field:"ConFlds->RadioValue"
Radio:"&Prompt only " Row:9 Col:28
Check:"ConFlds->Type=='Prompt'"
Action:"ConFlds->Type='Prompt'"
UnAction:"ConFlds->Type=Null"
Radio:"Hori&zontal line" Row:10 Col:28
Check:"ConFlds->Type=='HLine'"
Action:"ConFlds->Type='HLine'"
UnAction:"ConFlds->Type=Null"
Radio:"&Group box" Row:11 Col:28
Check:"ConFlds->Type=='Group'"
Action:"ConFlds->Type='Group'"
UnAction:"ConFlds->Type=Null"
Group:"Position" Row:1 Col:50 Len:4 Wid:9
Input:"Ro&w " Row:2 Col:51 Wid:2 Field:"ConFlds->Row" Type:"Number"
After:"ConFlds:CheckRow(ConFlds->Row)"
Input:"Co&lumn" Row:3 Col:51 Wid:2 Field:"ConFlds->Col" Type:"Number"
After:"ConFlds:CheckCol(ConFlds->Col)"
Input:"L&ength" Row:4 Col:51 Wid:2 Field:"ConFlds->Len" Type:"Number"
Before:"ConFlds:BeforeLen()"
After:"ConFlds:CheckWid(ConFlds->Wid)"
Input:"Widt&h " Row:5 Col:51 Wid:2 Field:"ConFlds->Wid" Type:"Number"
Before:"ConFlds:BeforeWid()"
After:"ConFlds:CheckWid(ConFlds->Wid)"
Group:"Extra Processing" Row:13 Col:1 Len:3 Wid:58
Input:"&Before " Row:14 Col:2 Wid:50 Len:1 Field:"ConFlds->Before"
Input:"A&fter " Row:15 Col:2 Wid:50 Len:1 Field:"ConFlds->After"
Input:"Action " Row:16 Col:2 Wid:50 Len:1 Field:"ConFlds->Action"
Button:"&Ok" Row:7 Col:50 Wid:10 Action:"Return(Null)"
Button:"&Cancel" Row:10 Col:50 Wid:10 Action:"Return('Esc_Key')"
ConFlds->PagePos=Num:Str(ConFlds->Page,"###",10,3)+" "+Num:Str(ConFlds->Col,"##",10,2)+" "+Num:Str(ConFlds->Row,"##",10,2)
Jorf:Write(ConFlds)
Page=Struct:Find('ConPage','PageNo',ConFlds->Page)
If (Page->Text)
Page->Text=Null
Jorf:Write(Page)
Win:Dsp
Return(Ok)
ConFlds:Generate(PageNo)
New (Line,Text,ConFlds:ConFlds)
If (PageNo==0)
Win:Add("Generate")
Input:"Page number to generate?", Field:"PageNo" Wid:2
If (Kbd:Got=="Esc_Key" Or PageNo==0)
Return (Null)
Win:Add
Generating page {PageNo}
Jorf:File("CONFLDS.DAT",Here)
ConFlds=Struct:Find('ConFlds','PagePos',Num:Str(PageNo,"###",10,3))
While (ConFlds)
If (ConFlds->PrWid)
If (Str:In(ConFlds->Prompt,"&"))
ConFlds->Prompt=Str:Pad(ConFlds->Prompt,ConFlds->PrWid+1)
Else
ConFlds->Prompt=Str:Pad(ConFlds->Prompt,ConFlds->PrWid)
Switch (ConFlds->Type)
Case "Date"
Line='Input:"'+ConFlds->Prompt+'" Field:"Contact->'+ConFlds->Field+'" Type:"Date"'
Case "Numeric"
Line='Input:"'+ConFlds->Prompt+'" Field:"Contact->'+ConFlds->Field+'" Type:"Numeric" Format:"'+format+'"'
Case "Text"
Line='Text:"'+ConFlds->Prompt+'" Field:"Contact->'+ConFlds->Field+'" Len:'+ConFlds->Len
Case "ChBox"
Line='ChBox:"'+ConFlds->Prompt+'" Field:"Contact->'+ConFlds->Field+'"'
Case "Radio"
Line='Radio:"'+ConFlds->Prompt+'"'
Text=Text:Add(Line,Text)
Line=' Check:"Contact->'+ConFlds->Field+'=='+"'"+ConFlds->RadioValue+"'"+'"'
Text=Text:Add(Line,Text)
Line=' Action:"Contact->'+ConFlds->Field+'='+"'"+ConFlds->RadioValue+"'"+'"'
Text=Text:Add(Line,Text)
Line=' UnAction:"Contact->'+ConFlds->Field+'= Null"'
Case "HLine"
Line='HLine:"'+ConFlds->Prompt+'"'
Case "Group"
Line='Group:"'+ConFlds->Prompt+'"'
Case "Prompt"
Line='String:"'+ConFlds->Prompt+'"'
Else | "Normal"
Line='Input:"'+ConFlds->Prompt+'" Field:"Contact->'+ConFlds->Field+'"'
Text = Text:Add(Line,Text)
Line = Null
If (ConFlds->Row)
Line = Line + ' Row:'+(ConFlds->Row+8)
If (ConFlds->Col)
Line = Line + ' Col:'+ConFlds->Col
If (ConFlds->Len)
Line = Line + ' Len:'+ConFlds->Len
If (ConFlds->Wid)
Line = Line + ' Wid:'+ConFlds->Wid
Text = Text:Add(Line,Text)
If (ConFlds->Before)
Line = ' Before:'+ConFlds->Before
Text = Text:Add(Line,Text)
If (ConFlds->After)
Line = ' After:'+ConFlds->After
Text = Text:Add(Line,Text)
If (ConFlds->Action)
Line = ' Action:'+ConFlds->Action
Text = Text:Add(Line,Text)
ConFlds=Struct:Next('ConFlds','PagePos',ConFlds)
If (ConFlds->Page!=PageNo)
Break
Text=Text:Top(Text)
File:Save('Page'+PageNo+'.Lst',Text)
Return (Text)
ConFlds:GetPage(PageNo)
New (ConPage:NewPage,ThePage)
Jorf:File("CONFLDS.DAT",Here)
ThePage=Struct:Find('ConPage','PageNo',PageNo)
If (ThePage->Text==Null)
NewPage->PageNo=PageNo
NewPage->Text=ConFlds:Generate(PageNo)
If (NewPage->Text)
Jorf:Write(NewPage)
ThePage=NewPage
Return (ThePage->Text)
ConFlds:IsPage(PageNo)
New (ConFlds:ConFlds)
Jorf:File("CONFLDS.DAT",Here)
ConFlds=Struct:Find('ConFlds','PagePos',Num:Str(PageNo,"###",10,3))
If (ConFlds)
Return (Ok)
Return (Null)
ConFlds:KeySearch (*ConFlds,Prompt,Field)
New (Value)
Event:Add
Win:Add ("Key Search", 10, 25, 0, 0, Here)
Input:"Search for {Prompt}", Wid:30, Field:"Value"
If (Kbd:Got <> "Esc_Key")
Mem:Ptr->ConIndex=Field
ConFlds=Struct:Find('ConFlds',Mem:Ptr->ConIndex,Value)
Win:Dsp
Return (ConFlds)
ConFlds:LastPage
New (ConFlds:ConFlds)
Jorf:File("CONFLDS.DAT",Here)
ConFlds=Struct:Prev('ConFlds','PagePos',Null)
If (ConFlds)
Return (ConFlds->Page)
Return (Null)
ConFlds:Next(*ConFlds,Flag)
If (Flag=='Prev')
ConFlds=Struct:Prev('ConFlds',Mem:Ptr->ConIndex,ConFlds)
Else
ConFlds=Struct:Next('ConFlds',Mem:Ptr->ConIndex,ConFlds)
Return(ConFlds)
ConFlds:Rebuild
New (Page)
While (Ok)
Page=Struct:Find('ConPage','PageNo',Null)
If (Page)
Jorf:Del(Page)
Else
Break
Jorf:Rebuild
Return (Ok)
ConFlds:Show(ConFlds)
New (ShowStr)
ShowStr= Str:Pad(ConFlds->Prompt,14) + " "
ShowStr=ShowStr + Str:Pad(ConFlds->PagePos,10) + " "
ShowStr=ShowStr + Str:Pad(ConFlds->Field,14)
Return (ShowStr)