Application Description: Centura SQLWindows/32 Standard Application Template
Outline Version - 4.0.27
Design-time Settings
.data VIEWINFO
0000: 6F00000001000000 FFFF01000D004347 5458566965775374 6174650400010000
0020: 0000000000A50000 002C000000020000 0003000000FFFFFF FFFFFFFFFFFCFFFF
0040: FFE9FFFFFFFFFFFF FF000000007C0200 004D010000010000 0001000000010000
0060: 000F4170706C6963 6174696F6E497465 6D00000000
.enddata
Outline Window State: Normal
Outline Window Location and Size
.data VIEWINFO
0000: 6600040003002D00 0000000000000000 0000B71E5D0E0500 1D00FFFF4D61696E
0020: 0000000000000000 0000000000000000 0000003B00010000 00000000000000E9
0040: 1E800A00008600FF FF496E7465726E61 6C2046756E637469 6F6E730000000000
0060: 0000000000000000 0000000000003200 0100000000000000 0000E91E800A0000
0080: DF00FFFF56617269 61626C6573000000 0000000000000000 0000000000000000
00A0: 3000010000000000 00000000F51E100D 0000F400FFFF436C 6173736573000000
00C0: 0000000000000000 0000000000000000
.enddata
.data VIEWSIZE
0000: D000
.enddata
Left: -0.013"
Top: 0.0"
Width: 8.013"
Height: 4.969"
Options Box Location
.data VIEWINFO
0000: D4180909B80B1A00
.enddata
.data VIEWSIZE
0000: 0800
.enddata
Visible? No
Left: 4.15"
Top: 1.885"
Width: 3.8"
Height: 2.073"
Class Editor Location
Visible? No
Left: 0.575"
Top: 0.094"
Width: 5.063"
Height: 2.719"
Tool Palette Location
Visible? No
Left: 6.388"
Top: 0.729"
Fully Qualified External References? Yes
Reject Multiple Window Instances? No
Enable Runtime Checks Of External References? Yes
Use Release 4.0 Scope Rules? No
Libraries
Global Declarations
Window Defaults
Tool Bar
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Form Window
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Dialog Box
Display Style? Etched
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Top Level Table Window
Font Name: MS Sans Serif
Font Size: 8
Font Enhancement: System Default
Text Color: System Default
Background Color: System Default
Data Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Multiline Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Spin Field
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Background Text
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Pushbutton
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Radio Button
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Check Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Option Button
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Group Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Child Table Window
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
List Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Combo Box
Font Name: Use Parent
Font Size: Use Parent
Font Enhancement: Use Parent
Text Color: Use Parent
Background Color: Use Parent
Line
Line Color: Use Parent
Frame
Border Color: Use Parent
Background Color: 3D Face Color
Picture
Border Color: Use Parent
Background Color: Use Parent
Formats
Number: 0'%'
Number: #0
Number: ###000
Number: ###000;'($'###000')'
Date/Time: hh:mm:ss AMPM
Date/Time: M/d/yy
Date/Time: MM-dd-yy
Date/Time: dd-MMM-yyyy
Date/Time: MMM d, yyyy
Date/Time: MMM d, yyyy hh:mm AMPM
Date/Time: MMMM d, yyyy hh:mm AMPM
External Functions
Constants
.data CCDATA
0000: 3000000000000000 0000000000000000 00000000
.enddata
.data CCSIZE
0000: 1400
.enddata
System
User
Resources
Variables
Internal Functions
Function: SalStrSeperate
Description: author: tl
date: 2000
version: 1.00
Trennt einen String nach EINEM Separierungszeichen, im Gegensatz zu
SalStrTokenize, welches den gesamten String in viele kleine einzelen zerlegen wьrde !
Bsp:
Y='A.B.C' SalStrSeperate: ('.', X, Y) X='A' Y='.B.C'
Y='A.B.C' SalStrTokenize (Y,'.','',X) X[0] ='A', X[1] ='B', X[2] ='C'
Returns
Boolean:
Parameters
String: parstrSeperator
Receive String: parstrLeft
Receive String: parstrComplete_String
Static Variables
Local variables
Number: lvnPos
Actions
Set lvnPos = SalStrScan( parstrComplete_String, parstrSeperator )
If lvnPos = -1
Set parstrLeft = parstrComplete_String
Set parstrComplete_String = ''
Else
Set parstrLeft = SalStrLeftX( parstrComplete_String, lvnPos + 1 )
Set parstrComplete_String = SalStrRightX( parstrComplete_String, SalStrLength( parstrComplete_String) - lvnPos - 1 )
Return TRUE
Function: SalStrFindRange
Description: author: tl
date: 2000
version: 1.00
desc:
Checks if a char of the specified range occurs.
The right char of the rang must have the higher ASCII-code than the left.
when 'A..Z' is specified as range, the minimal ASCII-Code = 65, the maximal
ASCII-Code = 90. The position of the first ASCII-char of this range will be returned,
if it is found in the string.
With the boolean parameter you can reverese the range,
like .... the first char, not in the range of 'A..Z'
example:
Set lnPos = SalStrFindRange('121A353f','A..Z',FALSE)
-> lnPos = 3
Set lnPos = SalStrFindRange('aA331','1..2',FALSE)
-> lnPos = 4
Set lnPos = SalStrFindRange('aA33rtrt','1..2',FALSE)
-> lnPos = -1
Set lnPos = SalStrFindRange('aA33rtrt','1..2',TRUE)
-> lnPos = 0
Set lnPos = SalStrFindRange('aA33rtrt','a..A',TRUE)
-> lnPos = 0
Returns
Number:
Parameters
String: psString
String: psRange
Boolean: pbReverse
Static Variables
Local variables
Boolean: lbFound
Number: lnPos
Number: lnLength
Number: lnValue
Number: lnMinValue
Number: lnMaxValue
String: lsValue
String: lsRange
Actions
Set lsRange = SalStrLeftX(psRange,1)
Set lnMinValue = SalStrLop( lsRange )
Set lsRange = SalStrRightX(psRange,1)
Set lnMaxValue = SalStrLop( lsRange )
Set lnPos = 0
Set lbFound = FALSE
Set lnLength = SalStrLength( psString )
While lnPos < lnLength
Set lsValue = SalStrMidX( psString, lnPos, 1)
Set lnValue = SalStrLop( lsValue )
! Prьfen ob Bereichsumkehrung (alle auЯer ...)
If not pbReverse
If (lnValue >= lnMinValue) and (lnValue <= lnMaxValue)
Set lbFound = TRUE
Break
Else
If not ((lnValue >= lnMinValue) and (lnValue <= lnMaxValue))
Set lbFound = TRUE
Break
Set lnPos = lnPos + 1
If lbFound = FALSE
Set lnPos = -1
Return lnPos
Function: SalStrGetSize
Description: author: gb
date: 2000
version: 1.00
desc:
Returns the width and height of a string in pixels (depends on the font of the control)
parameter:
Window Handle: phWnd ! the control
String: psStr ! the string
Receive Number: pnX ! the width
Receive Number: pnY ! the height
Returns
Parameters
Window Handle: phWnd
! the control
String: psStr
! the string
Receive Number: pnX
! the width
Receive Number: pnY
! the height
Static Variables
Local variables
Actions
Call GetTextExtentPoint32A( GetDC( phWnd ), psStr, SalStrGetBufferLength( psStr ), pnX, pnY )
Function: SalStrBetweenChars
Description: author: tl
date:
Version: 1.01- 25.03.02 - tl bug fixed (when chars longer than one character)
1.00 function integrated
desc
Liefert einen von zwei Zeichen eingeschlossenen String zurьck.
Der Booleanparameter gibt an, ob der gefunden String im Originalstring enternt werden soll
Bsp:
Set lsText = " rtztztert ghghghgh"
Set lsResult = SalStrGetBetweenChars(lsText, "<", ">", FALSE )
-> lsResult = "Hallo"
-> lsText = " rtztztert ghghghgh"
Set lsText = " rtztztert ghghghgh"
Set lsResult = SalStrGetBetweenChars(lsText, "<", ">", TRUE )
-> lsResult = "Hallo"
-> lsText = " rtztztert ghghghgh"
Set lsText = "Thomas Lauzi "
Set lsResult = SalStrGetBetweenChars(lsText, " ", " ", TRUE )
-> lsResult = "Lauzi"
-> lsText = "Thomas"
Returns
String:
Parameters
Receive Long String: psText
.data INHERITPROPS
0000: 0100
.enddata
String: psStartChar
.data INHERITPROPS
0000: 0100
.enddata
String: psEndChar
.data INHERITPROPS
0000: 0100
.enddata
Boolean: pbDemount
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Number: lnFoundStart
.data INHERITPROPS
0000: 0100
.enddata
Number: lnFoundEnd
.data INHERITPROPS
0000: 0100
.enddata
String: lsPiece
.data INHERITPROPS
0000: 0100
.enddata
Actions
Set lnFoundStart = SalStrScan(psText, psStartChar )
! Set lnFoundEnd = SalStrScan(SalStrRightX( psText, SalStrLength(psText) - lnFoundStart -1 ), psEndChar ) + 1 + lnFoundStart
! If (lnFoundStart > -1) and (lnFoundEnd > -1) and (lnFoundStart < lnFoundEnd)
! abmontieren
Set lsPiece = SalStrMidX( psText, lnFoundStart+1, lnFoundEnd - lnFoundStart -1)
If pbDemount
! Rausbauen
Set psText = SalStrLeftX(psText,lnFoundStart) || SalStrRightX( psText, SalStrLength(psText) - lnFoundEnd -1)
Return lsPiece
Set lnFoundEnd = SalStrScan(SalStrRightX( psText, SalStrLength(psText) - lnFoundStart -SalStrLength(psStartChar) ), psEndChar ) + SalStrLength(psStartChar) + lnFoundStart
If (lnFoundStart > -1) and (lnFoundEnd > -1) and (lnFoundStart < lnFoundEnd)
! abmontieren
Set lsPiece = SalStrMidX( psText, lnFoundStart+SalStrLength(psStartChar), lnFoundEnd - lnFoundStart - SalStrLength(psStartChar) )
If pbDemount
! Rausbauen
Set psText = SalStrLeftX(psText,lnFoundStart) || SalStrRightX( psText, SalStrLength(psText) - lnFoundEnd - SalStrLength(psEndChar) )
Return lsPiece
Return STRING_Null
Function: SalStrSeperatebyChar
Description: author: gb
date: 2000
version: 1.00
Trennt einen Teilstring anhand eines Trennzeichen ab
Bsp:
Set lsText = 'Dies ist ein Test! ....'
Set lsPiece = SalStrSeperatebyChar(lsText, '!' )
-> lsPiece = 'Dies ist ein Test'
-> lsText = ' ....'
Returns
String:
Parameters
Receive String: psText
.data INHERITPROPS
0000: 0100
.enddata
String: psChar
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Number: lnFound
.data INHERITPROPS
0000: 0100
.enddata
String: lsPiece
.data INHERITPROPS
0000: 0100
.enddata
Actions
Set lnFound = SalStrScan(psText, psChar )
If lnFound > -1
Set lsPiece = SalStrLeftX(psText,lnFound)
Set psText = SalStrRightX( psText, SalStrLength(psText) - lnFound -1)
Return lsPiece
Return STRING_Null
Function: SalStrUnTokenize
Description: author: tl
date: 5.11.2001
version 1.1 bugfix (detected by M. Bostel)
1.0 function implemented
desc:
Works in the opposite direction like SalStrTokenize
example:
Call VisListArrayGetFieldData(lb1,wsArray)
Call SalStrUnTokenize(wsArray, '', ';', lsLine )
Returns
Number:
Parameters
String: psTokenArray[*]
.data INHERITPROPS
0000: 0100
.enddata
String: psStartDel
.data INHERITPROPS
0000: 0100
.enddata
String: psEndDel
.data INHERITPROPS
0000: 0100
.enddata
Receive String: psTarget
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Number: lnBound
.data INHERITPROPS
0000: 0100
.enddata
Number: lnIdx
.data INHERITPROPS
0000: 0100
.enddata
Actions
If SalArrayIsEmpty( psTokenArray )
Return NUMBER_Null
Call SalArrayGetUpperBound(psTokenArray,1,lnBound)
While lnIdx <= lnBound
Set psTarget = psTarget || psStartDel || psTokenArray[lnIdx] || psEndDel
Set lnIdx = lnIdx + 1
Return lnBound
Function: SalStrReplaceCRLF
Description: author: Petra Zamburek
date: 1995
version 1.0
desc:
this function replaces all carriage-return and line-feeds with a given character,
the default string is a blank
example:
Call SalStrReplaceCRLF('fdsdfssfdfdfs', ' ')
Returns
Parameters
Receive String: sRPString
String: psReplacedby
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Actions
If psReplacedby = STRING_Null
Set psReplacedby = ' '
Set sRPString = VisStrSubstitute (sRPString, SalNumberToChar (0x0D) || SalNumberToChar (0x0A), psReplacedby)
Set sRPString = VisStrSubstitute (sRPString, SalNumberToChar (0x0D), psReplacedby)
Set sRPString = VisStrSubstitute (sRPString, SalNumberToChar (0x0A), psReplacedby)
Function: SalStrSoundex
Description: author: ?? (iceteagroup, i think )
date: ??
version 1.0
desc:
SOUNDEX is an algorithm that converts strings to a 4-byte code.
It can be used to encrypt a surname and do searching only on the code.
This will eliminate most variations of different spelling.
Example: Meyer=M600, Meier=M600, Mayer=M600, Smith=S530, SMYTHE=S530.
The algorithm can be used for blurred search and dublett matching
example:
Set sSearchbySoundex = SalStrSoundex( 'Meier' )
Returns
String:
Parameters
String: p_sOrgString
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
String: s
.data INHERITPROPS
0000: 0100
.enddata
String: result
.data INHERITPROPS
0000: 0100
.enddata
String: PrevChar
.data INHERITPROPS
0000: 0100
.enddata
String: Ch
.data INHERITPROPS
0000: 0100
.enddata
Number: i
.data INHERITPROPS
0000: 0100
.enddata
Actions
Set s=SalStrUpperX( SalStrTrimX( p_sOrgString ) )
If s !=STRING_Null
Set PrevChar=STRING_Null
Set result=SalStrLeftX( s, 1 )
!
Set i=1
While i < SalStrLength( s )
If SalStrLength( result )=4
Break
Set Ch=SalStrMidX( s, i, 1 )
If Ch !=PrevChar
If SalStrScan( 'BPFV', Ch ) >=0
Set result=result || '1'
Else If SalStrScan( 'CSKGJQXZ', Ch ) >=0
Set result=result || '2'
Else If SalStrScan( 'DT', Ch ) >=0
Set result=result || '3'
Else If Ch='L'
Set result=result || '4'
Else If SalStrScan( 'MN', Ch ) >=0
Set result=result || '5'
Else If Ch='R'
Set result=result || '6'
Set PrevChar=Ch
Set i=i + 1
!
While SalStrLength( result ) < 4
Set result=result || '0'
Return result
Function: SalStrGetBlockArray
Description: author: tl
date: ??
version 1.0
desc:
Splits a String into blocks of a max given length. (the last block is shorter).
The number of blocks is returned.
Return: the number of blocks
example:
Set nBlocks = SalStrGetBlockArray( '123456789',4, lsBlocks )
-> 3 blocks
lsBlocks[0] = '1234'
lsBlocks[1] = '5678'
lsBlocks[2] = '9'
Returns
Number:
Parameters
Long String: psStr
.data INHERITPROPS
0000: 0100
.enddata
! In
Number: pnBlockLength
.data INHERITPROPS
0000: 0100
.enddata
Receive String: rsBlock[*]
.data INHERITPROPS
0000: 0100
.enddata
! Out
Static Variables
Local variables
Number: nIdx
.data INHERITPROPS
0000: 0100
.enddata
String: lsTemp
.data INHERITPROPS
0000: 0100
.enddata
Actions
Set nIdx = 0
Loop
Set lsTemp = SalStrMidX( psStr, nIdx * pnBlockLength, pnBlockLength)
If lsTemp != STRING_Null
Set rsBlock[nIdx] = lsTemp
Else
Break
Set nIdx = nIdx + 1
Return nIdx
Function: SalStrLeftLongX
Description: author: tl
date: ??
version 1.0
desc:
Returns a substring ( also greater than 65536 chars ),of a specified length starting at position zero (0), the left-most character in the string.
Parameters
strSource String. The string from which to extract characters.
nExtract Number. The number of characters to extract from strSource.
Returns
Long String:
Parameters
Long String: strSource
.data INHERITPROPS
0000: 0100
.enddata
Number: nExtract
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Number: lnIdx
Long String: lsLeft
Actions
Return SalStrMidLongX(strSource,0, nExtract )
Function: SalStrRightLongX
Description: author: tl
date: ??
version 1.0
desc:
Returns a substring ( also greater than 65536 chars ), starting with the last character in the string.
Parameters
strSource String. The string from which to extract characters.
nExtract Number. The number of characters to extract from strSource.
Returns
Long String:
Parameters
Long String: strSource
.data INHERITPROPS
0000: 0100
.enddata
Number: nExtract
.data INHERITPROPS
0000: 0100
.enddata
Static Variables
Local variables
Actions
Return SalStrMidLongX(strSource,SalStrLength(strSource) - nExtract, nExtract )
Function: SalStrMidLongX
Description: author: tl
date: ??
version 1.0
desc:
Returns a substring (possible greater than 65536 than normal SalStrMidX), starting at a specified position and containing a specified number of characters.
Parameters
strSource String. The source string.
nStartPos Number. The starting position of the substring (zero is the first position) in strSource.
nLength Number. The number of characters to put in the substring.
Returns
Long String:
Parameters
Long String: strSource
.data INHERITPROPS
0000: 0100
.enddata
! The source string.
Number: nStartPos
.data INHERITPROPS
0000: 0100
.enddata
! The starting position of the substring (zero is the first position) in strSource.
Number: nLength
.data INHERITPROPS
0000: 0100
.enddata
! The number of characters to put in the substring.
Static Variables
Local variables
Number: lnIdx
Number: lnMod
Long String: lsMid
.data INHERITPROPS
0000: 0100
.enddata
Number: lnLoop
Number: lnLength
Number: lnStart
Actions
Set lnLoop = SalNumberTruncate( nLength/ 0x8000,10,0)
Set lnMod = SalNumberMod( nLength, 0x8000 )
While lnIdx <= lnLoop
If lnIdx = lnLoop
Set lnLength = lnMod
Else
Set lnLength = 0x8000
Set lsMid = lsMid || SalStrMidX( strSource, nStartPos + lnIdx * 0x8000, lnLength )
Set lnIdx = lnIdx + 1
Return lsMid
Function: SalStrCreateHash
Description: Author: Gьnther Feldzahn
Version/Date: 1.0 - 24.07.2003
Purpose:
Creates a number out of a string with the help of a hash-algorithm.
Those numbers are highly but of course not always unique
Return:
Numeric value the "stuff" *LOL*
Any warranty excluded!
Returns
Number:
Parameters
String: p_strToHash
Static Variables
Local variables
Number: nHash
Number: nCounter
Number: nChar
Actions
Set nHash = 0
Set nCounter = 1
Loop
Set nChar = SalStrLop( p_strToHash )
If nChar > 0
Set nHash = SalNumberBitXor( nHash, nChar )
Set nHash = nHash * 3
Set nHash = SalNumberMod( nHash, 4294967295 )
Set nCounter = nCounter + 1
Else ! End of string - leave loop
Break
Return nHash ! Now deliver the stuff *LOL*
Named Menus
Class Definitions
Default Classes
MDI Window: cBaseMDI
Form Window:
Dialog Box:
Table Window:
Quest Window:
Data Field:
Spin Field:
Multiline Field:
Pushbutton:
Radio Button:
Option Button:
Check Box:
Child Table:
Quest Child Window: cQuickDatabase
List Box:
Combo Box:
Picture:
Vertical Scroll Bar:
Horizontal Scroll Bar:
Column:
Background Text:
Group Box:
Line:
Frame:
Custom Control:
ActiveX:
Application Actions
Return to http://gupta.narod.ru/