Baanboard.com

Go Back   Baanboard.com > Forum > Baan Quick Support: Functional & Technical > Tools Development

User login

Frontpage Sponsor

Main

Google search


Poll
How big is your Baan-DB (just Data AND Indexes)
0 - 200 GB
17%
200 - 500 GB
17%
500 - 800 GB
6%
800 - 1200 GB
6%
1200 - 1500 GB
17%
1500 - 2000 GB
17%
> 2000 GB
22%
Total votes: 18

Baanboard at LinkedIn


Reference Content

Reply
 
Thread Tools Display Modes
  #31  
Old 11th October 2007, 14:38
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
The following are undocumented functions in Baan IV. I still do not have any info on them.
Code:
dump.screen
pty.ok
key.to.option
jump.retry.point
retry.point
retry.level
sync.display.server
rdi.vrc.path
rdi.option.short
free.font
text.extends
change.display
Maybe someone else does!

- George
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #32  
Old 11th October 2007, 15:16
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
creating sample XML spreadsheet data list in Baan

Interoperability is the flavour of the season. Creating an interoperable scaleable xml data list which can be opened in any office spreadsheets is as easy as creating flat sequential file . Baan XML functions documented in a progguide.chm available in Baan support site. There are lot of XML samples on the board . However all the samples lead to do in-memory XML generation and parsing which is very resource intensive .

With the help of XML functions ( available in Baan XML guide ), here is the sample xml code written in Baan 4GL to create XML data lists from tccom020 without blocking substantial memory.
Code:
|******************************************************************************
|* tijwxxmltest  0  VRC B40c c4 cust
|* XML  Test
|* hitesh create test.xml data list 
|* 23-11-03 [16:36]
|******************************************************************************
|* Script Type: 0
|******************************************************************************

	table ttccom020
|****************************** DECLARATION SECTION ***************************
|****************************** PROGRAM     SECTION ***************************
|****************************** ZOOM FROM   SECTION ***************************
|****************************** FORM	     SECTION ***************************
|****************************** CHOICE      SECTION ***************************
|****************************** FIELD       SECTION ***************************
|****************************** MAIN TABLE  SECTION ***************************
|****************************** FUNCTION    SECTION ***************************

function main() 
{ 
    long mainid,rowid 
    long ret 
    long fh 
    domain    tcmcs.str80    text 
    domain    tcmcs.str80    error.msg 
	string xmlstr(1000)
    |* write 
    fh = seq.open("test.xml","w") 
    mainid = xmlNewNode("Supplier",XML_ELEMENT)
    ret=xmlWritePrettytostring(xmlstr,mainid,mainid) 
    xmlstr = xmlstr(1;len(xmlstr)-3) & ">" & chr$(10)
    if seq.puts(xmlstr,fh) then
	        message("Error writing file")
    endif
    rowid = xmlNewNode("Row",XML_ELEMENT)
    select tccom020.*
    from tccom020
    selectdo
    	xmlRewriteDataElement(rowid, "SupplierCode", tccom020.suno )
    	xmlRewriteDataElement(rowid,  "Name", tccom020.nama)    
    	xmlRewriteDataElement(rowid,  "Name2", tccom020.namb)    
    	xmlRewriteDataElement(rowid,  "Address", tccom020.namc)    
    	xmlRewriteDataElement(rowid,  "Address2", tccom020.namd)   
    	xmlstr = "" 
    	ret=xmlWritePrettytostring(xmlstr,rowid,rowid)
      	if seq.puts(xmlstr(23),fh) then
		message("Error writing file")
    	endif
    endselect
    if seq.puts("</Supplier>",fh) then
	message("Error writing file")
    endif
    seq.close(fh) 
    ret = xmlDelete(mainid) 
    ret = xmldelete(rowid)
}

The file text.xml can be opened in any office spreadsheet (including Excel) which can parse XML data files.

Probably there is still better and elegant way to create an XML file without taking the complete document in memory. At this moment its not known to me.

Last edited by george7a : 11th October 2007 at 15:44. Reason: adding baan code tags
Reply With Quote
  #33  
Old 12th October 2007, 10:32
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
renice(long p.id, long nice.value)

This function takes the process ID number and a new "nice value" (or basis priority). It changes the process's nice value to the new given value.
Quote:
-20: High
0: Normal
20: Low
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #34  
Old 12th October 2007, 11:20
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
input.string()

This function opens a window with a text filed & a label. You can write you question in the label and get the answer that the user types in the text box.

This function is found in ottdllinputstr.
Code:
function extern long input.string(
	 string mwindow.title(80) mb,
	 string label(80) mb,
	 long p.width,
	 long f.width,
	 ref string pattern() mb )

	This function starts a main window with given title.
	This window contains:
		- a label, indicating the string to be asked for
		- an input field with given width (p.width) and number
		  of visible characters (f.width)
		- two buttons (OK and Cancel)
	The string value of the input field will be stored in pattern argument
	
	Pre:	only to be used in graphical environments
	Ret:	true: succes, pattern will be filled
		false: error, action canceled
Example
Code:
#pragma used dll ottdllinputstr
|...
|..
|.

input.string("My Window Title","How old are you?",30,30,s1)

message(s1) | The result will be in s1
It was also mentioned here:
http://www.baanboard.com/baanboard/s...ad.php?t=22689
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #35  
Old 16th October 2007, 12:20
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
Here is another list of some undocumented functions that there is no info on them yet:
Code:
open.display
destroy.gc
current.menu
current.bar
change.menu
change.bar
pty.write
pty.winsize.ok
pty.winsize
cursor.off
cursor.on
obj_in_core
send.signal
oipstat
option.to.key
fsum
seq.r.long
seq.w.long
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
Sponsored Links
  #36  
Old 19th October 2007, 07:53
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
ttdllextint

Excellent functions found in ttdllextint about table , table field , label , sessions , menu , domains , indices which can also be called from any OLE application . Get.combined.fields is more elegant way to find index element than rdi.column.combined .

Code:
---------------------------GENERAL INFO---------------------------------
Object		= ottdllextint
Pathname	= /b4c4appl/bse/tools/ttB40_c4/ottdll/odllextint

---------------------------OBJECT HEADER--------------------------------
Magic		= [_bic_dll_]
relno		= 61
obj_revision	= 1
object_flags	= 8=DLL  

---------------------------DLL PROTOTYPES-------------------------------
function extern long baan.format(
	 domain ttadv.type field.datatype,
	 const string difo(),
	 long digb,
	 long diga )

	Desc: get display-length of field having a display-format
	Pars: 	field.datatype: domain-type of bic_global
		difo:	display-format
		digb:	digits before
		diga:	digits after
	Returns: max-length of formatted field

function extern long change.duplicatefielddescriptions(
	 ref long nr.of.fields,
	 ref string fields(,) fixed,
	 ref domain ttcdes field.descriptions() fixed mb )

function extern long get.combined.fields(
	 const string combi.fld(),
	 ref string simple.flds() )

	Desc: get fields in combined fields 
		also combined fields in combined fields are converted to 
		simple fields
	Par : combi.fld	  : combined field
	      simple.flds (output) : simple fields, each field takes 18 chars, 
		padded with space
	Returns: nr of simple fields in combined fields

function extern long get.domain.info2(
	 const string cdom(),
	 ref domain ttadv.type datatype,
	 ref long is.checkbox,
	 ref domain ttadv.difo difo,
	 ref long digb,
	 ref long diga,
	 ref long leng,
	 ref long difoleng,
	 ref long enum.cnst )

	Desc: get properties of domain
		depending on the datatype the properties are relevant
	Par : cdom   : domain (including package code)
	      datatype (output) : datatype, when datatype=0, domain not found
	      is.checkbox (output) : shown as checkbox (enum)
	      difo (output) : display format (all)
	      digb (output) : digits before comma (integer,long,byte,
							double,float)
	      diga (output) : digits after comma (double,float)
	      leng (output) : length (date,utc,string,mb-string,text,enum)
	      difoleng (output) : length in case a display-format is specified
	      is.segmented (output) :  1 is segmented field (string)
					-1 normal field
	      enum.ccnst (output) : number of enum constants for this domain
	Returns: -

function extern long get.domain.vrc(
	 domain ttadv.cpac cpac,
	 domain ttadv.cdom cdom,
	 long including.tt,
	 ref domain ttadv.vers vers,
	 ref domain ttadv.rele rele,
	 ref domain ttadv.cust cust,
	 ref domain ttdesc60 desc mb )

	Desc: get domain properties given current VRC of user
	Par : cpac  : package code domain
	      cdom  : domain code
	      including.tt : get tt-objects even when not in package comb
	      vers (output) : version
	      rele (output) : release
	      cust (output) : customer
	      desc (output) : description
	Returns: 0 when domain found
		 -1 when not found

function extern long get.index.fields(
	 domain ttadv.cpac cpac,
	 domain ttadv.cmod cmod,
	 domain ttadv.flno flno,
	 domain ttadv.vers vers,
	 domain ttadv.rele rele,
	 domain ttadv.cust cust,
	 ref string simple.flds() )

	Desc: get fields in first index
		also combined fields in combined fields are converted to simple fields
	Par : cpac  : package code table
	      cmod  : module code
	      flno  : table name
	      vers  : version code
	      rele  : release code
	      cust  : customer code
	      simple.flds (output) : simple fields, each field (max. 32) takes 18 chars, 
			padded with space
	Returns: nr of simple fields in first index
			0 : no index found

function extern long get.label(
	 const string clan(),
	 const string cpac(),
	 const string clab(),
	 ref domain ttcdes desc mb,
	 ref domain ttadv.llen llength,
	 ref domain ttadv.lhgt lheight,
	 long dynamic,
	 long including.tt )

	Desc: get label description, when no label found with specified
		length and height, the best fit label will be retrieved
	Par : clan  	: language code
	      cpac	: package code label
	      clab	: label code
	      desc (output)          : description
	      llength (input) 	     : max length of label to search for
				     : -1 means search for longest label
	      	      (output) 	     : length of found label
	      lheight (input) 	     : max height of label to search for 
	      	      (output) 	     : height of found label
				     : -1 means search for highest label
	      dynamic (input)	     : get longer/higher label when no label 
					found with specified length/height
	      including.tt (input)   :
	      
	Returns: 0 when label found
		 -1 when label not found
		 -2 no package integration

function extern long get.menu.vrc(
	 domain ttaad.clan clan,
	 domain ttadv.cpac cpac,
	 domain ttadv.cmod cmod,
	 domain ttadv.cmen cmen,
	 domain ttadv.parm parm,
	 long including.tt,
	 ref domain ttadv.vers vers,
	 ref domain ttadv.rele rele,
	 ref domain ttadv.cust cust )

	Desc: get menu key-properties given current VRC of user
	Par : clan  : language code
	      cpac  : package menu
	      cmod  : module menu 
	      cmen  : menu code
	      parm  : parallel menu id
	      including.tt : get tt-objects even when not in package comb
	      vers (output) : version
	      rele (output) : release
	      cust (output) : customer
	Returns: 0 when menu found
		 -1 when not found

function extern long get.session.vrc(
	 domain ttadv.cpac cpac,
	 domain ttadv.cmod cmod,
	 domain ttadv.cses cses,
	 long including.tt,
	 ref domain ttadv.vers vers,
	 ref domain ttadv.rele rele,
	 ref domain ttadv.cust cust,
	 ref domain ttadv.cpac mpac,
	 ref domain ttadv.cmod mmod,
	 ref domain ttadv.flno mfln,
	 ref domain ttadv.kses kses,
	 ref domain ttadv.cmod cmop,
	 ref domain ttadv.cprs cprs )

function extern long get.table.vrc(
	 domain ttadv.cpac cpac,
	 domain ttadv.cmod cmod,
	 domain ttadv.flno flno,
	 long including.tt,
	 ref domain ttadv.vers vers,
	 ref domain ttadv.rele rele,
	 ref domain ttadv.cust cust )

	Desc: get table key-properties given current VRC of user
	Par : cpac  : package code table
	      cmod  : module code
	      flno  : table name
	      including.tt : get tt-objects even when not in package comb
	      vers (output) : version
	      rele (output) : release
	      cust (output) : customer
	Returns: 0 when table found
		 -1 when not found

function extern long get.tablefield.info(
	 domain ttadv.cpac cpac,
	 domain ttadv.cmod cmod,
	 domain ttadv.flno flno,
	 domain ttadv.vers vers,
	 domain ttadv.rele rele,
	 domain ttadv.cust cust,
	 domain ttadv.fdnm fdnm,
	 ref domain ttadv.cpac pacd,
	 ref domain ttadv.cdom cdom,
	 ref domain ttyeno mand,
	 ref domain ttadv.clab clab,
	 ref domain ttadv.cpac rfpa,
	 ref domain ttadv.dept dept,
	 ref domain ttyeno acti,
	 ref domain ttyeno comb,
	 ref domain ttadv.expr defa mb )

	Desc: get properties of table-field
	Par : cpac - package code
	      cmod - module code
	      flno - tablename
	      vers - version
	      rele - release
	      cust - customer
	      fdnm - fieldname
	      pacd (output) - package code domain
	      cdom (output) - domaincode
	      mand (output) - mandatory field
	      clab (output) - label code
	      rfpa (output) - package of ref-table (if empty no ref-table)
	      dept (output) - nr of array-elements (depth) of field
	      acti (output) - active?
	      comb (output) - combined field?
	      defa (output) - default expression
	Returns: 0 when field found
		 -1 when not found

function extern long new.read.session.fields(
	 const string session(),
	 const domain ttaad.clan clan,
	 long runtime,
	 ref long nr.of.fields,
	 ref string fields(,) fixed,
	 ref domain ttcdes field.descriptions() fixed mb,
	 ref long field.is.index(),
	 ref long field.is.mandatory(),
	 ref string field.domains(,) fixed,
	 ref domain ttadv.expr field.defaults() fixed mb,
	 ref long field.field.type(),
	 ref long field.depth(),
	 ref long field.noelemonform(),
	 ref domain ttadv.typf field.write(),
	 ref domain ttadv.type field.data.type(),
	 ref long field.length(),
	 ref long field.in.primary.index(),
	 ref long field.view.field(),
	 ref string main.table(),
	 ref string session.description(),
	 ref domain ttadv.ftyp form.type )

function extern long package.integration(
	 domain ttadv.cpac cpac,
	 long including.tt )

function extern long read.session.fields(
	 const string session(),
	 const domain ttaad.clan clan,
	 ref long nr.of.fields,
	 ref string fields(,) fixed,
	 ref domain ttcdes field.descriptions() fixed mb,
	 ref long field.is.index(),
	 ref long field.is.mandatory(),
	 ref string field.domains(,) fixed,
	 ref domain ttadv.expr field.defaults() fixed mb )

	Desc: get form-fields of session based on package combination
		label-only fields are not returned
		this function is used by DEM
	Par : session (input) : name of session (<package><module><session>)
		clan (input) : language of form, labels
		nr.of.fields (output) : number of fields
		fields() (output) : names of fields, <fieldname>[(<element-nr>]
					 (when elementnr ommitted, element 1 assumed)
		field.descriptions() (output) : (label) descriptions of fields, based on details session
		field.is.index() (output) : field is part of one of the active indices
		field.is.mandatory() (output): field is mandatory
		field.domains() (output) : names of domains
		field.defaults() (output) : default (expressions) 
	Returns : -1 : The specified session could not be found
		  -2 : The forms belonging to the specified session could not be found
		  0  : The session could be found

PS - Functions require current company to be 0 . However function new.read.session.fields still gives some null pointer error when trying to use . Function read.session.fields works nice . So needs more testing for successfully using it or else use the time tested versatile rdi functions .

Last edited by Hitesh Shah : 20th October 2007 at 10:41. Reason: more info on testing
Reply With Quote
  #37  
Old 23rd October 2007, 13:38
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
time - variable

"time" is an undocumented predefined variable with the following foramt:
Quote:
time R current system time; format HHMM
Original reference:
http://www.baanboard.com/baanboard/s...ead.php?t=8265
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #38  
Old 23rd October 2007, 14:00
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
read.ques.desc and other ottdllhypertext functiones

read.ques.desc was mentioned in the following links:
http://www.baanboard.com/baanboard/s...ead.php?t=9460
http://www.baanboard.com/baanboard/s...ead.php?t=8324

It is used to get the text of a Question.
Code:
function extern long read.ques.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read question description of the question code arg

	pre : arg is the questioncode in the format of ppqqqqqqqqqqqqq
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with question description
	      false - desc is empty
Here are all the other functions in that DLL
Code:
	This DLL provides a function to convert a hypertextcode to a
	description. It also provides some common functions to read
	description. of software components.

	Following function are available:
	- function bool make.hypertext.desc(arg, desc, [ clan , develop ] ) 
	- function bool make.topic.desc(type, clan, arg, desc, develop)
	- function check.integration(cpac cpac, develop)
	- function bool read.impl.func.desc(arg, desc, [ clan, develop ])
	- function bool read.subf.desc(arg, desc, [ clan, develop ])
	- function bool read.relation.desc(arg, desc, diagram, [ clan, develop ])
	- function bool read.session.desc(arg, desc, [ clan, develop ])
	- function bool read.form.desc(arg, desc, [ clan, develop ])
	- function bool read.table.description(arg, desc, [ clan, develop ] )
	- function bool read.table.field.description(arg, desc, [ clan, develop ])
	- function bool read.formfield.description(arg, desc, [ clan, develop ])
	- function bool read.label.desc(arg, desc, [ clan, develop ] )
	- function bool read.message.desc(arg, desc, [ clan , develop ])
	- function bool read.ques.desc(arg, desc, [ clan , develop ])
	- function bool read.enum.desc(arg, desc, [ clan, develop ])
	- function bool read.menu.desc(arg, desc, [ clan , develop ])
	- function bool read.report.desc(arg, desc, [ clan, develop ])
	- function bool read.helptextcode.desc(arg, desc, [ clan, develop ]) 
	_ function bool read.choice.option.description(arg, desc, [ clan, develop ])


|---------------------------DLL PROTOTYPES-------------------------------
function extern long check.integration(
	 domain ttadv.cpac cpac,
	 long develop )

	This functions checks if the package has integration with the package
	combination.
	pre: cpac filled with package code
	     develop: false check on runtime
	     	      true  - check on development

	post: Record ttadv111 will be filled with the right VRC tree.

function extern convert.hypertext.line(
	 domain ttdesc215 text.line mb,
	 long length,
	 ref domain ttdesc215 new.line mb,
	 ref domain ttdesc215 rest.line mb,
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	This function scans a line of text. If the line contains
	one or more hypertext codes, these will be converted
	to descriptions using function make.hypertext.desc.

	clan: optional language code [default current language]
	develop: false - Search description in runtime VRC tree [default]	
		 true  - Search description in development VRC tree (ttadv040)

	Pre: not isspace(text.line)
		length of new.line >= length
	Post: line may be longer when hypertext code has been converted
		rest is stored in variable rest.line
		rest.line may be longer than length

function extern long convert.hypertext.text(
	 long textno,
	 domain ttaad.clan lang,
	 ref string target.file(),
	 [ long develop ],
	 [ long length ] )

	This function reads a text in a given text number and language code
	Each line will be checked by the function 
	convert.hypertext.line whether hypertext codes are
	available. The converted text will be stored in the
	target.file

	develop: false - Search description in runtime VRC tree [default]	
		 true  - Search description in development VRC tree (ttadv040)
	length : the maximum length of a text line, default the line length
		 of the text group

	Pre: text number available in given language
	Post: new text may be greater than original text

	Ret: the number of lines of the new text will be returned
		return -1 if an error occurs

function extern long is.topic(
	 ref string arg(),
	 ref string code(),
	 ref long only.desc,
	 ref long end.posi )


function extern long make.hypertext.desc(
	 string arg(320) mb,
	 ref string desc() mb,
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Function to convert a hypertext code to a description.

	pre: hypertextcode is in the format <KEYWORD><code>
	     clan: optional language code [default current language]
	     develop: false - Search description in runtime VRC tree [default]	
	     	      true  - Search description in development VRC tree (ttadv040)

	post: false : hypertext not found
	      true  : hypertext found and description filled

function extern long make.topic.desc(
	 long type,
	 domain ttaad.clan clan,
	 ref string arg(),
	 ref string desc(),
	 long develop )

	This function converts the hypertextcode to a description. This function is the same
	as function make.hypertext.desc() except the type of the hypertextcode should be known.

	pre: type: The type of the hypertextcode.
	     clan: language code
	     arg : The code of the hypertext.
	     develop: false - Search description in runtime VRC tree 
	     	      true  - Search description in development VRC tree 

	post: false : hypertext not found
	      true  : hypertext found and description filled

function extern long read.choice.option.description(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read description choice option (Standard option or user defined option)

	pre : arg is the choice option code in the format of start.set or
	      formcode.user.0
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with option description
	      false - desc is empty

function extern long read.enum.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read enum description of the enum code arg

	pre : arg is the enum code in the format of ppmmmqqqqqqqqqqqq  
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with enum description
	      false - desc is empty

function extern long read.form.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read form description of the form code arg

	pre : arg is the form code in the format of ppmmmfffffffff
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with session description
	      false - desc is empty

function extern long read.formfield.description(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read formfield description of the formfield code arg

	pre : arg is the session code in the format of ppmmmfffffffff.fffff
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with formfield description
	      false - desc is empty

function extern long read.helptextcode.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read search argument of helptextcode arg

	pre : arg is the helptextcode code in the format of pphhhhhhhhhhhhhhhhhhhhhhhhhhhh..
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with search argument of helptextcode description
	      false - desc is empty

function extern long read.impl.func.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read implementation function description of the code arg

	pre : arg is the implementation function code in the format of ppmmmssssssss.fffff
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with business object description
	      false - desc is empty

function extern long read.label.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read label description of the labelcode arg

	pre : arg is the label code in the format of pplllllllllllllll
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with label description
	      false - desc is empty

function extern long read.menu.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read menu description of the menu code arg

	pre : arg is the menu code in the format of ppnnnmmmmmmmmp     
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with menu description
	      false - desc is empty

function extern long read.message.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read message description of the message code arg

	pre : arg is the messgae code in the format of ppmmmmmmmmmmmmm  
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with message description
	      false - desc is empty

function extern long read.relation.desc(
	 ref string arg(),
	 ref string desc(),
	 long diagram,
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read relation description

	pre : arg is the session code in the format of ppmmmssssssss.fffff
	      diagram
	          false: description is not a part of a block
		  true : desrcition is part of a block
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with relation description
	      false - desc is empty

function extern long read.report.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read report description of the report code arg

	pre : arg is the report code in the format of ppmmmrrrrrrrrr     
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with report description
	      false - desc is empty

function extern long read.session.desc(
	 const string arg(),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read session description of the session code arg

	pre : arg is the session code in the format of ppmmmssssssss[.compnr.time]
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with session description
	      false - desc is empty

function extern long read.subf.desc(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read subfunction description of the subfunction code arg

	pre : arg is the subfunction code in the format of ppmmmssssssss.fffff
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with subfunction description
	      false - desc is empty

function extern long read.table.description(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read table description of the table code arg

	pre : arg is the session code in the format of ppmmmtttttt
	      clan is optional, default language$
	      develop is optional
	          false: read description in runtime VRC tree. [default]
	          true : read description in development VRC tree (ttadv040)
	post: true - desc filled with table description
	      false - desc is empty

function extern long read.table.field.description(
	 string arg(40),
	 ref string desc(),
	 [ domain ttaad.clan clan ],
	 [ long develop ] )

	Read tablefield description of the tablefield code arg

	pre : arg is the session code in the format of ppmmmssssssss.fffff
	      clan is optional, default language$
	      develop is optional
	          false : read description in runtime VRC tree. [default]
	          true  : read description in development VRC tree (ttadv040)
	post: true - desc filled with tablefield description
	      false - desc is empty

function extern long search.endpos(
	 ref domain ttdesc215 text mb )

	This function searches the last position of the hypertext code

	Pre:  text variable starts with first character after a keyword
		(not a '@')
	Post: -

	Ret: the end position of the hypertext code will be returned
		relative to the first character after the keyword
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #39  
Old 24th October 2007, 09:39
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
image.display

It is used to display an image on a baan session

Syntax:
Code:
long image.display( const string image.path() )
Original reference:
http://www.baanboard.com/baanboard/s...ead.php?t=9655

P.S. not available in Baan IV. But there are other ways to do it
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #40  
Old 25th October 2007, 16:30
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
label functions

Here are good functions to find label description in ottdllwt_ls which can also be used in an OLE application to get labels from Baan without bothering for VRC structures .

Code:
function extern string get.label.desc(
	 domain ttaad.clan lang$,
	 domain ttadv.cpac cpac$,
	 domain ttadv.clab label$,
	 long l.length,
	 long l.height,
	 domain ttst30 context$ )

 desc: 
	get label description, when no label found with specified length and
	height, the best fit label will be retrieved
        NOTE: the longest fitting label is retrieved, even when a newer
        (shorter) version is available in a more recent VRC; if you want to
        retrieve the most recent version, use 'get.newest.label.desc()'
   in:
	lang$		- language code
	cpac$		- package code label
	label$		- label code
	l.length	- max length of label to search for (-1 means search
				for longest label)
	l.height	- max height of label to search for (-1 means search
				for highest label)
	context$	- string containing context group of label
  out:
	l.length        - length of found label
	l.height	- height of found label
  ret:	      
	string containing label description when label found empty string when
	label not found or no package integration

function extern string get.newest.label.desc(
	 domain ttaad.clan lang$,
	 domain ttadv.cpac cpac$,
	 domain ttadv.clab label$,
	 long l.length,
	 long l.height,
	 domain ttst30 context$ )

 desc: 
	get the "newest" label description (i.e., with the most recent VRC)
	which fits in the supplied maximum length/height.
	If there are multiple desciptions in that VRC, the largest one
	will be retrieved
   in:
	lang$		- language code
	cpac$		- package code label
	label$		- label code
	l.length	- max length of label to search for
				(0 means: find shortest label)
	l.height	- max height of label to search for
	context$	- string containing context group of label
  out:
	l.length	- length of found label
	l.height	- height of found label
  ret:	      
	string containing label description when label found
	empty string when label not found or no package integration

function extern long getlabel(
	 domain ttaad.clan clan.i,
	 domain ttadv.cpac cpac.i,
	 domain ttadv.clab clab.i,
	 ref domain ttadv.llen leng.io,
	 ref domain ttadv.lhgt lhgt.io,
	 ref domain ttadv.vers vers.io,
	 ref domain ttadv.rele rele.io,
	 ref domain ttadv.cust cust.io )

	Pre:	Language, package, label code and the starting VRC parameters
		have to have an exact value.
		To find the longest label set the length parameter to its maximum.
		To find the shortest label set the length parameter to its minimum (0).
		Language and package parameters not checked.
	Post:	Language, package and label code is not changed in function.
		The other parameters can be changed.
	Desc:	This function searches for a label and returns its complete key.
		The whole VRC tree is searched starting with the current P-VRC.
		The function returns the label that has the length equal or smaller
		and height  equal or greater than the given length and height.
	Ret:   -1: Label not found
		0: OK, the specified label exists
		1: OK, label found in VRC tree
		2: OK, label found with different length/height 
		3: OK, lable found in VRC tree with different length/height
		The length, height and VRC parameters contains the the index values
		of the found label.

Last edited by george7a : 25th October 2007 at 16:48. Reason: Baan code tags
Reply With Quote
  #41  
Old 29th October 2007, 11:06
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
More undocumented functions that there is no info on them yet:
Code:
get
rdi.option.info
rdi.session.form
rdi.session.subject.info
rdi.session.subject
create.arglist
add.arg
destroy.arglist
get.attrs
put.attrs
sget.fld.attr
read.fast.form
get.ref.var
put.ref.var
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #42  
Old 30th October 2007, 16:23
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
ttdllfilehand

ttdllfilehand has some very good functions for file handling which works also on remote servers.
Original reference - http://www.baanboard.com/baanboard/s...=ttdllfilehand

Code:
---------------------------DLL USAGE DESCRIPTION------------------------
	This library contains functions for handling files.
	Unless stated otherwise in the specification of the function, each
	function can be used for both local and remote files.

	Note:
	Function ttadv0010.convert.filename, ttadv0010.file_copy and
	ttadv0010.file_move should not be used. They only are in this dll
	for compatibility with existing sources.
	In stead of ttadv0010.convert.filename(source, target) use:
		convert.filename.for.remote(source, target)
	In stead of ttadv0010.file_copy(source, target) use:
		file.copy.or.move(source, target) or
		file.copy.or.move(source, target, 0)
	In stead of ttadv0010.file_move(source, target) use:
		file.copy.or.move(source, target, 1)


---------------------------DLL PROTOTYPES-------------------------------
function extern app.file(
	 const string source(),
	 const string target(),
	 ref long ret )

	pre: true
	desc: Copy file source to file target. Source and target 
	      may be on a remote host (host!pathname)
	return: 0: succesfull
		1: Source file is empty
		2: Source not present
		3: Cannot open file

function extern convert.filename.for.remote(
	 const string source(),
	 ref string target() )

	pre:	Format of source is <pathname> or <hostname>!<pathname>,
		so source contains no more than one '!', which may not be
		on first position
	post:	if source contains no "!" and BSE_REM is set then
			target = <BSE_REM>!<source>
		if source is <hostname$()>!<rest.source> then
			target = <src>
		otherwise
			target = <source>

function extern copy.file(
	 const string source(),
	 const string target(),
	 ref long ret,
	 [ long euro ] )

	pre: true
	desc: Copy file source to file target. Source and target 
	      may be on a remote host (host!pathname)
	return: 0: succesfull
		1: Source file is empty
		2: Source not present
		3: Cannot open file

function extern long copy.move.file(
	 long copy,
	 const string fpath(),
	 const string tpath(),
	 [ long euro ] )

function extern long cp.dir.and.subdirs(
	 const string src(),
	 const string trg() )

	pre: true
	post: Direcory dir and all sub directories are cpied.
		1: Error
		0: ok 

function extern long create.directory(
	 const string directory() )

	pre:	true
	return:	true if		directory cannot be created or 
				directory already exists but cannot be written;
		false if	directory already exists and can be written or
				directory is created succesfully.
	post:	if return = true then an error message is produced.
	note:	if messages are not required, use mkdir or mkdir.rem in stead.

function extern long create.local.temp.file(
	 const string path(),
	 ref string local.path() )

	post:	If path denotes a remote file, this function has copied the
		contents of that file to a temporary file local.path,
		created in bse.tmp.dir$.
		If path denotes a local file, local.path = path.
	return:	If an error occurs when copying the file to local,
		then true is returned, otherwise false is returned.
	note:	local.path should be removed using remove.local.temp.file
		(using seq.unlink may result in a serious error).

function extern long dir.present(
	 const string directory() )

	pre:	true
	return:	This function returns true if directory is an existing
		directory and can be written.
		Otherwise (file does not exist or file is no directory or
		user has no write permission for file) it returns false.

function extern long edit.file(
	 const string programm(),
	 const string fname(),
	 long read.only )

function extern long file.cmp(
	 const string file1(),
	 const string file2() )

	pre:	true
	return: 1: Files are different.
		0: Files are equal.
		-1: Error occurred. Probably one of the files not present.

function extern long file.copy.or.move(
	 const string source(),
	 const string target(),
	 [ long mode ] )

	pre	mode = 0 (for copy) or 1 (for move)
		(mode is optional: if not supplied default is 0);
		source and target are file names, they may be remote, i.e.
		having the format <host>!<file name>
	return	0 = ok, <> 0 = error
		possible errors:
		if source and target are local:
			could not move/copy;
		if source or target is remote:
			could not open source file;
			could not read source file;
			could not open target file;
			could not write target file;
			if mode = 1: source file could not be removed.
	post	if return = 0
			if mode = 0 (or mode is not supplied):
				file souce has been copied to file target;
			if mode = 1: 
				file souce has been moved to file target.
		if return <> 0
			copy/move was not executed correctly;
			a error message has been given.

function extern long file.present(
	 const string path() )

	pre:	true
	return:	This function returns true if path is an existing
		regular file and can be written.
		Otherwise (file does not exist or file is no regular file or
		user has no write permission for file) it returns false.

function extern long is_dir(
	 const string dirname() )

	pre:	true
	return:	-1 : file does not exist
		 0 : file exists but is not a directory or
		     file is directory but user has no write permission for it
		 1 : file is directory and user has write permission for
		     this directory

function extern long is_file(
	 const string path() )

	pre:	true
	return:	-1 : file does not exist
		 0 : file exists but is not a regular file or file
		     is regular file but user has no write permission for it
		 1 : file is regular file and user has write permission for
		     this file

function extern long local.to.remote(
	 const string source(),
	 const string target() )

function extern long mkdir.rem(
	 const string directory() )

	pre:	true
	return:	-1 in case of failure, 0 if path already exists,
		1 in case of succes.
	post:	if return = 0: directory already existed;
		if return = 1: directory has been created.
	desc:	Function mkdir is working for remote directories,
		but returns 1 in stead of 0 if path already exists.
		This function mkdir.rem is dealing with remote directories
		in exactly the same manner as it is with local directories.

function extern move.file(
	 const string source(),
	 const string target(),
	 ref long ret,
	 [ long euro ] )

	pre: true
	desc: Moves file source to file target. Source and target 
	      may be on a remote host (host!pathname)
	return: 0: succesfull
		1: Source file is empty
		2: Source not present
		3: Cannot open file
		4: Cannot remove target file

function extern long mv.dir.and.subdirs(
	 const string src(),
	 const string trg() )

	pre: true
	post: Direcory dir and all sub directories are moved.
		1: Error
		0: ok 

function extern long pack.patch(
	 const domain ttadv.path path.dumps,
	 const domain ttadv.path path.patch,
	 const string patch.code() )

	Desc:	- Pack a directory structure containing dump files after
			generation of a patch into a single file
	Pre:	- Sessions create patch (ttiex4110m000) and export
			datadictionary (ttiex1280s000) have produced a
			directory structure containing dump files
		- When ttseq.automess.on() is called, error messages are shown
	Post:	- Creates a packed patch file
	Return:	error code < 0 is failure, >= 0 is success
	Input:	path.dumps	-> Path of directory structure
		path.patch	-> Path of directory to contain patch file
		patch.code	-> Name of patch
	Output:	-

function extern long pattern.in.file(
	 const string file(),
	 const string pattern() )

	pre: true
	desc: 1: The pattern is in the file
	      0: The pattern is not in the file.
	      < 0: An error occurred. Probably the file cannot be read.

function extern long remote.to.local(
	 const string source(),
	 const string target() )

function extern long remove.local.temp.file(
	 const string path(),
	 ref string local.path() )

	pre:	local.path is temporary local path for path; local.path is
		created by function create.local.temp.file.
	post:	If path is local (so local.path = path) then nothing will be
		done. If path is not local this function removes the temporary
		file local.path.
	return:	0 if path is local, otherwise the return value for
		seq.unlink(local.path)

function extern long rm.dir.and.subdirs(
	 const string src() )

	pre: true
	post: Direcory dir and all sub directories are removed.
		1: Error
		0: ok 

function extern ttadv0010.convert.filename(
	 const string source(),
	 ref string target() )

	This function is only in this dll for compatibility reasons.
	Do not use it.
	Use convert.filename.for.remote(source, target) in stead.

function extern long ttadv0010.file_copy(
	 const string source(),
	 const string target() )

	This function is only in this dll for compatibility reasons.
	Do not use it.
	Use file.copy.or.move(source, target) or
	file.copy.or.move(source, target, 0) in stead.

function extern long ttadv0010.file_move(
	 const string source(),
	 const string target() )

	This function is only in this dll for compatibility reasons.
	Do not use it.
	Use file.copy.or.move(source, target, 1) in stead.

function extern long unpack.patch(
	 const domain ttadv.path path.src,
	 const domain ttadv.path path.dest,
	 ... )

	Desc:	- Unpack a patch file containing a packed directory
			structure of dump files. The directory structure
			is created in a specified directory.
	Pre:	- A patch file must have been created by sessions
			create patch (ttiex4110m000) and export
			datadictionary (ttiex1280s000).
		- When ttseq.automess.on() is called, error messages are shown
	Post:	- Creates a directory structure
	Return:	error code < 0 is failure, >= 0 is success
	Input:	path.src	-> Path of patch file
		path.dest	-> Path of directory structure
	Output:	-

Last edited by george7a : 30th October 2007 at 17:01. Reason: baan code tags
Reply With Quote
  #43  
Old 5th November 2007, 08:23
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
expr.compile, l.expr,s.expr , d.expr

Dynamic expressions functions (expr.*) have been one of the best amazing functions of Baan 4GL.It is nicely
documented. However there are certain tricks and techniques related to these functions which are little
known / documented.

Also many senior members have deployed it succcessfully. So no original refeernce to any thread is included.
This post may be more for new members.

This function lets user create dynamic expressions (DE) and use the same repeatedly in the program. When
there is error in compiling and / or evaluating DE , the value of pre-defined variable 'e' is raised along
with BW messages.Programmer can theck the value of 'e' to check if the error occurred in compiling/evaluating
expression.BW messages can be avoided by selecting 'Not action' in 'BW message window option' tab in
option dialog. There is no way to change the same programmatically . The variables to be used in dynamic
expressions must be declared extern.

exp.compile allows lot of functions to be used in the DEs. Though there is no syntax for these function
calls , these functions work perfect and work on the same lines of same function in Baan 4GL (may be with
$ suffix like str$,edit$ , strip$ etc ). These DEs are very useful in letting users control the definition of engineering
parameters (which may change with each product ). Users can key multiple expressions in a text separated
by,zoom to variables in text , do assignments for long repeated expressions, do conditional iterations using ?
and : , format the output using edit , round the value. convert string to numeric and reverse .


The DEs are also very useful in calculated items , query fields lookups in reference table, dynamic formulae,
dynamic dll function calling , dynamic expression creating hierarchies,domain range validation for any data type
in string field . Powerful pattern matching and conditional evaluation in DEs work extra-oridnarily .

e.g.In OLAP , classification / categorization /grouping of data at row level is termed as calculated item. e.g.
if u wish to categorize the sales invoice value (tfacr200.amth ) as per table below

Category Invoice value
A >1000,000
B >500,000
C >100,000
D upto 100,000

Such categorization can be also for alphanumeric data also e.g. All customers beginning with A as LOB 1,
beginning with B to D as LOB 2 and rest LOB 3.

both categorizations can dynamically be created and evaluated runtime easily like .

tfacr200.amth > 500000 ? tfacr200.amth > 1000000 ? "A" : "B" : tfacr200.amth > 100000 ? "C":"D"
OR
tfacr200.amth > 1000000 ? "A" : tfacr200.amth > 500000 ? "B" : tfacr200.amth > 100000 ? "C" : "D"

tfac200.cuno in "A.*"? "LOB 1": tfac200.cuno in "[B-D].*"? "LOB 2" : "LOB 3"

Standard Baan uses these expr.functions extensively in many areas . So the knowledge of these functions can
help user get best in these areas.

1.Input/ref argument for a field to check whether input is allowed on the field or not .
2.Job / user default settings saved in ttaad503 / ttadv990
3.showing the value of an expression and evaluating an expression for stop if condition in program debugger.
4.Range validation for a domain .

The string length for the dynamic expression should be keplt maximum for allowing different variations
and length of data.

Thus DEs are great and are very handy in handling small DEs but It can not do all that baan 4gl functions and
SQL queries can do. This should be kept in mind when deploying it.
Reply With Quote
  #44  
Old 9th November 2007, 10:18
george7a's Avatar
george7a george7a is offline
Guru
 
Join Date: May 2004
Location: Nazareth
Posts: 1,491
george7a is on a distinguished road
Baan: IVc, 5.0 b, 5.0 c, LN 6.1 - DB: MS SQL, Oracle - OS: Windows 2000, 2003 & UNIX
ttgfd300.titl 4GL varaible - Baan IV

ttgfd300.titl is found in every 4GL session and it contains the session title.

Original reference:
http://www.baanboard.com/baanboard/s...t=29046&page=2
__________________
_
George Abdo
NAZDAQ - Your Documents, Your Way.
Reply With Quote
  #45  
Old 4th January 2008, 05:12
Hitesh Shah's Avatar
Hitesh Shah Hitesh Shah is offline
Guru
 
Join Date: Nov 2001
Location: Mumbai,India
Posts: 1,853
Hitesh Shah is on a distinguished road
Baan: triton,Baan IVc4 , ERP Ln - DB: Oracle/Bisam/SQL 2000/SQL 2005 - OS: Sun Solaris/Windows 2003
ttdllzip

Good function for creating / extracting single zipped archieve file in Baan IV in ttdllzip . In windows environs,the directory and file arguments with colons (absolute address) does not work. However arguments without colon (ie relative to present working dir $BSE_TMP ) is working nicely.

Code:
                                 

function extern long pack(                                                        
const string tar_file_name(),                                                   
const string dir_name(),                                                         
[ const string file_list() ] )                                                  

function extern long pack.and.zip(                                               
 const string tar_file_name(),                                                   
 const string src_dir_name(),                                                    
 [ const string user_list() ] )                                                                                                 

function extern long pack.extract.filelist(                                      
 const string tar_file_name(),                                                   
 const string file_list() )                                                      

function extern long unpack(                                                     
 const string tar_file_name(),                                                   
 const string dir_name() )                                                                                                      

function extern long unzip(                                                      
 const string file_name() )                                                      

function extern long unzip.and.unpack(                                           
 const string tar_file_name(),                                                   
 const string dest_dir_name() )                                                  
                                                                                 
function extern long zip(                                                        
const string file_name() )

Last edited by Hitesh Shah : 4th January 2008 at 08:17.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Expanding Text variables lli-baan Tools Development 9 19th October 2012 16:30
How to set Environment variables for a session in a job baaniac Tools Development 3 4th September 2003 22:21
Undocumented functions in Baan 5... Ruskin Tools Development 0 4th September 2003 00:04


All times are GMT +2. The time now is 02:18.


©2001-2018 - Baanboard.com - Baanforums.com