Initial: flux text FoxBin2Prg (git urmareste .??2 in-arbore, binarele VFP git-ignored)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 10:55:38 +03:00
commit 2f59024385
1271 changed files with 820556 additions and 0 deletions

BIN
clase/CLOSED.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

BIN
clase/LEAF.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

BIN
clase/Locale/Locale.DBF Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
clase/Locale/locale.FPT Normal file

Binary file not shown.

513
clase/Locale/locale.dc2 Normal file
View File

@@ -0,0 +1,513 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="locale.dbc" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
<DATABASE>
<Name>LOCALE</Name>
<Comment></Comment>
<Version>10</Version>
<DBCEvents>.F.</DBCEvents>
<DBCEventFilename></DBCEventFilename>
<TABLES>
<TABLE>
<Name>LOCALE</Name>
<Comment></Comment>
<Path>locale.dbf</Path>
<DeleteTrigger></DeleteTrigger>
<InsertTrigger></InsertTrigger>
<UpdateTrigger></UpdateTrigger>
<PrimaryKey></PrimaryKey>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
<FIELD_ORDER>
phrase
language
notes
id
translated
</FIELD_ORDER>
<FIELDS>
<FIELD>
<Name>id</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>language</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>notes</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>phrase</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>translated</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
</FIELDS>
<INDEXES>
<INDEX>
<Name>id</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
<INDEX>
<Name>language</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
</INDEXES>
</TABLE>
<TABLE>
<Name>LOCALE_LANG</Name>
<Comment></Comment>
<Path>locale_lang.dbf</Path>
<DeleteTrigger></DeleteTrigger>
<InsertTrigger></InsertTrigger>
<UpdateTrigger></UpdateTrigger>
<PrimaryKey></PrimaryKey>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
<FIELD_ORDER>
id
siteid
name
abbr
cp
rule1
rule2
exclude
</FIELD_ORDER>
<FIELDS>
<FIELD>
<Name>abbr</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>cp</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>exclude</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>id</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>name</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>rule1</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>rule2</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>siteid</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
</FIELDS>
<INDEXES>
<INDEX>
<Name>id</Name>
<Comment></Comment>
<IsUnique>.T.</IsUnique>
</INDEX>
<INDEX>
<Name>name</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
<INDEX>
<Name>site</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
<INDEX>
<Name>siteid</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
</INDEXES>
</TABLE>
<TABLE>
<Name>LOCALE_SOURCE</Name>
<Comment></Comment>
<Path>locale_source.dbf</Path>
<DeleteTrigger></DeleteTrigger>
<InsertTrigger></InsertTrigger>
<UpdateTrigger></UpdateTrigger>
<PrimaryKey></PrimaryKey>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
<FIELD_ORDER>
id
name
url
page
markers
duration
hits
exclude
timeout
attempt
notes
</FIELD_ORDER>
<FIELDS>
<FIELD>
<Name>attempt</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>duration</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>exclude</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>hits</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>id</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>markers</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>name</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>notes</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>page</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>timeout</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>url</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
</FIELDS>
<INDEXES>
<INDEX>
<Name>id</Name>
<Comment></Comment>
<IsUnique>.T.</IsUnique>
</INDEX>
</INDEXES>
</TABLE>
<TABLE>
<Name>LOCALE_XREF</Name>
<Comment></Comment>
<Path>locale_xref.dbf</Path>
<DeleteTrigger></DeleteTrigger>
<InsertTrigger></InsertTrigger>
<UpdateTrigger></UpdateTrigger>
<PrimaryKey></PrimaryKey>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
<FIELD_ORDER>
src_langid
dst_langid
siteid
</FIELD_ORDER>
<FIELDS>
<FIELD>
<Name>dst_langid</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>siteid</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
<FIELD>
<Name>src_langid</Name>
<Caption></Caption>
<Comment></Comment>
<DefaultValue></DefaultValue>
<DisplayClass></DisplayClass>
<DisplayClassLibrary></DisplayClassLibrary>
<Format></Format>
<InputMask></InputMask>
<RuleExpression></RuleExpression>
<RuleText></RuleText>
</FIELD>
</FIELDS>
<INDEXES>
<INDEX>
<Name>dst_langid</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
<INDEX>
<Name>siteid</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
<INDEX>
<Name>src_langid</Name>
<Comment></Comment>
<IsUnique>.F.</IsUnique>
</INDEX>
</INDEXES>
</TABLE>
</TABLES>
<STOREDPROCEDURES><![CDATA[
]]></STOREDPROCEDURES>
</DATABASE>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
clase/MB_IconQuestion.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
clase/MB_IconStop.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
clase/MINUS.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

52
clase/MessageBox.h Normal file
View File

@@ -0,0 +1,52 @@
#IFNDEF MESSAGEBOX_H
#DEFINE MESSAGEBOX_H
#DEFINE CR CHR(13)
#DEFINE LF CHR(10)
#DEFINE CRLF CHR(13) + CHR(10)
*-- MessageBox buttons caption (RO)
#DEFINE MB_CAPTION_OK "\<De acord" && OK button caption
#DEFINE MB_CAPTION_CANCEL "\<Abandon" && Cancel button caption
#DEFINE MB_CAPTION_ABORT "\<Renunta" && Abort button caption
#DEFINE MB_CAPTION_RETRY "\<Repeta" && Retry button caption
#DEFINE MB_CAPTION_IGNORE "\<Ignora" && Ignore button caption
#DEFINE MB_CAPTION_YES "\<Da" && Yes button caption
#DEFINE MB_CAPTION_NO "\<Nu" && No button caption
*-- MessageBox icon file
#DEFINE MB_ICONINFORMATION_BMP "MB_IconInformation.bmp"
#DEFINE MB_ICONEXCLAMATION_BMP "MB_IconExclamation.bmp"
#DEFINE MB_ICONQUESTION_BMP "MB_IconQuestion.bmp"
#DEFINE MB_ICONSTOP_BMP "MB_ICONStop.bmp"
#DEFINE MB_ICONCHATBOT_BMP "chatbot.bmp"
*-- MessageBox parameters
#DEFINE MB_OK 0 && OK button only
#DEFINE MB_OKCANCEL 1 && OK and Cancel buttons
#DEFINE MB_ABORTRETRYIGNORE 2 && Abort, Retry, and Ignore buttons
#DEFINE MB_YESNOCANCEL 3 && Yes, No, and Cancel buttons
#DEFINE MB_YESNO 4 && Yes and No buttons
#DEFINE MB_RETRYCANCEL 5 && Retry and Cancel buttons
#DEFINE MB_ICONSTOP 16 && Critical message
#DEFINE MB_ICONQUESTION 32 && Warning query
#DEFINE MB_ICONEXCLAMATION 48 && Warning message
#DEFINE MB_ICONINFORMATION 64 && Information message
#DEFINE MB_APPLMODAL 0 && Application modal message box
#DEFINE MB_DEFBUTTON1 0 && First button is default
#DEFINE MB_DEFBUTTON2 256 && Second button is default
#DEFINE MB_DEFBUTTON3 512 && Third button is default
#DEFINE MB_SYSTEMMODAL 4096 && System Modal
*-- MsgBox return values
#DEFINE IDOK 1 && OK button pressed
#DEFINE IDCANCEL 2 && Cancel button pressed
#DEFINE IDABORT 3 && Abort button pressed
#DEFINE IDRETRY 4 && Retry button pressed
#DEFINE IDIGNORE 5 && Ignore button pressed
#DEFINE IDYES 6 && Yes button pressed
#DEFINE IDNO 7 && No button pressed
#ENDIF

775
clase/MessageBox.vc2 Normal file
View File

@@ -0,0 +1,775 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="messagebox.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS messagebox_boton AS _commandbutton OF "_baza.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Caption = "Command1"
FontCharSet = 238
Name = "messagebox_boton"
Width = 80
*</PropValue>
PROCEDURE Click
THIS.PARENT.Boton_Click(THIS)
ENDPROC
ENDDEFINE
DEFINE CLASS messagebox_edtmensaje AS _editbox OF "_baza.vcx"
*< CLASSDATA: Baseclass="editbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackColor = 236,233,216
BackStyle = 0
BorderStyle = 0
DisabledBackColor = 236,233,216
FontCharSet = 238
Height = 23
Name = "messagebox_edtmensaje"
ReadOnly = .T.
SpecialEffect = 1
TabStop = .F.
Width = 165
*</PropValue>
ENDDEFINE
DEFINE CLASS messagebox_form AS form && Sustituye al messagebox y acepta timeout
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="cmgBotones" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="edtMensaje" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: boton_click && Este evento se dispara cuando se hace click en un bot<6F>n de comando.
*p: idopcion && Guarda el ID de la opci<63>n elegida
*</DefinedPropArrayMethod>
*<PropValue>
AlwaysOnTop = .T.
AutoCenter = .T.
BorderStyle = 3
Caption = "Form2"
ControlBox = .F.
DoCreate = .T.
FontCharSet = 238
Height = 88
idopcion = 2
MaxButton = .F.
MinButton = .F.
Name = "messagebox_form"
ShowWindow = 1
Width = 198
*</PropValue>
ADD OBJECT 'cmgBotones' AS messagebox_grupobotones WITH ;
Height = 29, ;
Left = 8, ;
Name = "cmgBotones", ;
Top = 44, ;
Width = 94
*< END OBJECT: ClassLib="messagebox.vcx" BaseClass="commandgroup" />
ADD OBJECT 'edtMensaje' AS messagebox_edtmensaje WITH ;
Left = 18, ;
Name = "edtMensaje", ;
ScrollBars = 2, ;
Top = 9
*< END OBJECT: ClassLib="messagebox.vcx" BaseClass="editbox" />
PROCEDURE boton_click && Este evento se dispara cuando se hace click en un bot<6F>n de comando.
LPARAMETERS toBoton
THISFORM.oImp.Boton_Click(@toBoton)
ENDPROC
PROCEDURE Init
LPARAMETERS tcMensaje, tiBotones, tcTitulo, tcFont, tnTimeout ,tnTimeoutValue
THIS.NEWOBJECT("oImp", "messagebox_Implem", "MessageBox.vcx", "", ;
@tcMensaje, @tiBotones, @tcTitulo, @tcFont, @tnTimeout ,@tnTimeoutValue)
ENDPROC
PROCEDURE QueryUnload
NODEFAULT
THISFORM.oImp.Form_Hide()
ENDPROC
PROCEDURE Resize
THISFORM.oImp.Form_Resize()
ENDPROC
ENDDEFINE
DEFINE CLASS messagebox_form_desktop AS messagebox_form OF "messagebox.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Desktop = .T.
DoCreate = .T.
Name = "messagebox_form_desktop"
cmgBotones.Name = "cmgBotones"
edtMensaje.Name = "edtMensaje"
*</PropValue>
ENDDEFINE
DEFINE CLASS messagebox_grupobotones AS commandgroup
*< CLASSDATA: Baseclass="commandgroup" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: boton_click
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
BorderStyle = 0
ButtonCount = 0
Height = 66
Name = "messagebox_grupobotones"
SpecialEffect = 1
Value = 0
Width = 94
*</PropValue>
PROCEDURE boton_click
LPARAMETERS toBoton
IF VARTYPE(toBoton) = "O" AND NOT ISNULL(toBoton)
THIS.PARENT.Boton_Click(toBoton)
ENDIF
ENDPROC
PROCEDURE Click
*THIS.PARENT.Boton_Click(THIS.VALUE)
ENDPROC
ENDDEFINE
DEFINE CLASS messagebox_icono AS image
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
Height = 32
Name = "messagebox_icono"
Stretch = 1
Width = 32
*</PropValue>
ENDDEFINE
DEFINE CLASS messagebox_implem AS custom && Implementaci<63>n del messagebox
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "messagebox.h"
*<DefinedPropArrayMethod>
*m: boton_click && Este evento ocurre cuando se clickea un bot<6F>n de opci<63>n
*m: form_activate && Ocurre cuando un objeto FormSet, Form o Page se activa o cuando se muestra un objeto ToolBar.
*m: form_hide && M<>todo para ocultart el form
*m: form_resize && Este evento se dispara cuando se hace un resize del form
*m: get_estilofuente
*m: timeout && Este evento se dispara al finalizar el tiempo de timeout, si es que se indic<69> un valor de timeout para el mensaje.
*p: botones && Valor num<75>rico que indica que botones mostrar, icono y bot<6F>n por defecto
*p: cmgbotones_mbot
*p: edtmensaje_mbot
*p: edtmensaje_mright
*p: form_activated && Indica si ya se ejecut<75> el Activate del form
*p: timeoutvalue && Valor por defecto a usar si se alcanza el timeout del mensaje.
*p: titulo && Titulo de la ventana
*</DefinedPropArrayMethod>
*<PropValue>
botones = 0
cmgbotones_mbot = 0
edtmensaje_mbot = 0
edtmensaje_mright = 0
Height = 31
Name = "messagebox_implem"
timeoutvalue = 0
titulo =
Width = 100
*</PropValue>
PROCEDURE boton_click && Este evento ocurre cuando se clickea un bot<6F>n de opci<63>n
LPARAMETERS toBoton
LOCAL lcNombreBoton
lcNombreBoton = STRTRAN(UPPER(toBoton.NAME), "\<", "")
DO CASE
CASE VARTYPE(toBoton) = "N"
THISFORM.IDOpcion = toBoton
CASE lcNombreBoton = "CMDOK"
THISFORM.IDOpcion = 1
CASE lcNombreBoton = "CMDABORT"
THISFORM.IDOpcion = 3
CASE lcNombreBoton = "CMDRETRY"
THISFORM.IDOpcion = 4
CASE lcNombreBoton = "CMDIGNORE"
THISFORM.IDOpcion = 5
CASE lcNombreBoton = "CMDYES"
THISFORM.IDOpcion = 6
CASE lcNombreBoton = "CMDNO"
THISFORM.IDOpcion = 7
OTHERWISE && CANCEL
THISFORM.IDOpcion = 2
ENDCASE
THIS.Form_Hide()
ENDPROC
PROCEDURE form_activate && Ocurre cuando un objeto FormSet, Form o Page se activa o cuando se muestra un objeto ToolBar.
WITH THIS
IF NOT .Form_Activated
.Form_Activated = .T.
.PARENT.SETALL("TABSTOP", .T.)
ENDIF
ENDWITH && THIS
ENDPROC
PROCEDURE form_hide && M<>todo para ocultart el form
IF PEMSTATUS(THIS, "tmrTarea", 5)
THIS.tmrTarea.ResetParams()
ENDIF
THISFORM.HIDE()
ENDPROC
PROCEDURE form_resize && Este evento se dispara cuando se hace un resize del form
WITH THIS.PARENT
.edtMensaje.MOVE(.edtMensaje.LEFT, ;
.edtMensaje.TOP, ;
.WIDTH - THIS.edtMensaje_mRight - .edtMensaje.LEFT, ;
.HEIGHT - THIS.edtMensaje_mBot - .edtMensaje.TOP)
.cmgBotones.MOVE((.WIDTH - .cmgBotones.WIDTH) / 2, ;
.HEIGHT - THIS.cmgBotones_mBot)
ENDWITH
ENDPROC
PROCEDURE get_estilofuente
LPARAMETERS tlFontBold, tlFontItalic, tlFontUnderline, tlFontStrikeThru
*-- Devuelve un c<>digo de Estilo de Fuente para uso de FONTMETRIC u otras
*-- funciones que requieren este tipo de c<>digo.
*-- PARAMETROS:
*-- tlFontBold Referencia de Objeto del control de edici<63>n o letra Negrita
*-- tlFontItalic Si tlFontBold indica letra Negrita, indica letra It<49>lica (Cursiva)
*-- tlFontUnderline Si tlFontBold indica letra Negrita, indica letra Subrayada
*-- tlFontStrikeThru Si tlFontBold indica letra Negrita, indica letra Tachada
LOCAL ;
lcEstilo, ;
llFontBold, ;
llFontItalic, ;
llFontUnderline, ;
llFontStrikeThru
lcEstilo = ""
DO CASE
CASE PCOUNT() = 0
=MESSAGEBOX("No se indicaron par<61>metros", MB_OK + MB_ICONEXCLAMATION, PROGRAM())
CASE VARTYPE(tlFontBold) = "O" AND NOT PEMSTATUS(tlFontBold, "FONTNAME", 5)
=MESSAGEBOX("El objeto indicado no es un control de Edici<63>n de datos", MB_OK + MB_ICONEXCLAMATION, PROGRAM())
CASE VARTYPE(tlFontBold) = "O"
*-- Se indic<69> un Objeto
llFontBold = tlFontBold.FONTBOLD
llFontItalic = tlFontBold.FONTITALIC
llFontUnderline = tlFontBold.FONTUNDERLINE
llFontStrikeThru = tlFontBold.FONTSTRIKETHRU
OTHERWISE
*-- Se indic<69> un Nombre de Fuente
llFontBold = tlFontBold
llFontItalic = tlFontItalic
llFontUnderline = tlFontUnderline
llFontStrikeThru = tlFontStrikeThru
ENDCASE
lcEstilo = lcEstilo + IIF(llFontBold, "B", "")
lcEstilo = lcEstilo + IIF(llFontItalic, "I", "N")
lcEstilo = lcEstilo + IIF(llFontUnderline, "U", "")
lcEstilo = lcEstilo + IIF(llFontStrikeThru, "-", "")
RETURN lcEstilo
ENDPROC
PROCEDURE Init
LPARAMETERS tcMensaje, tiBotones, tcTitulo, tcFont, tnTimeout, tnTimeoutValue
WITH THIS.PARENT
LOCAL lnMargen, lnLeft_Anterior, lnTama<6D>oIcono, lnBotonesWidth, lnMaxTxtWidth, lnAnchoScrollbar, ;
laLines(1), lnEditboxWidth, lnEditboxHeight, I, lnCantLineas, lnAnchoMedioFuente, lnTotalTXTHeight, ;
lnFormWidth, lnFormHeight, lnBotonesHeight, lcFontName, liFontSize, lcFontStyle, lnMargenEditbox, ;
llSalidaDeEmergencia, lnAreaWidth, lnAreaHeight, llExisteActiveForm
lnMargen = 10 && Margen de los controles al borde del form
lnAnchoScrollbar = SYSMETRIC(5)
IF !EMPTY(tcFont) AND VARTYPE(tcFont) = [C]
.edtMensaje.FONTNAME = tcFont
ENDIF
*!* modificare 16.01.2014 : diacritice
If Afont(laFontMsgBox,.FontName,238,1)
.FontCharSet = 238
Endif
For i = 1 To .Objects.Count
If Pemstatus(.Objects[i],"FontName",5)
If Afont(laFontMsgBox,.Objects[i].FontName,238,1)
.Objects[i].FontCharSet = 238
Endif
Endif
Endfor
Release laFontMsgBox
*!* modificare 16.01.2014 : diacritice ^
IF EMPTY(tiBotones)
tiBotones = 0
ENDIF
*-- MENSAJE
IF EMPTY(tcMensaje)
tcMensaje = "(nimic)"
ELSE
*!* 12.02.2008
&& DACA AM IN MESAJ DOAR LF-URI SE STRICA FORMATAREA
&& TREBUIE FACUT CU REGEX DA - DACA EXISTA DOAR LF-UL LA SFARSITUL LINIEI SA IL INLOCUIASCA CU CRLF
IF .F.
tcMensaje = STRTRAN(tcMensaje, LF, "")
tcMensaje = STRTRAN(tcMensaje, CR, CRLF)
ENDIF
*!* 12.02.2008 ^
ENDIF
.edtMensaje.VALUE = tcMensaje
*-- TITULO
.CAPTION = IIF(EMPTY(tcTitulo), APPLICATION.CAPTION, tcTitulo)
*-- GUARDO LOS VALORES DE LOS PAR<41>METROS
THIS.Botones = tiBotones
THIS.Titulo = tcTitulo
THIS.TimeoutValue = tnTimeoutValue
*-- Este timer ejecuta una tarea por <20>nica vez, que consiste en activar
*-- los TabStop de todos los controles, que est<73>n en .F. excepto
*-- el bot<6F>n por defecto, que ya tiene .T.
*-- Este truco es para ubicar el foco en el bot<6F>n por defecto
*-- sin usar SETFOCUS, ya que como la intenci<63>n de esta ventana es
*-- que sirva para mostrar mensajes de error, de ocurrir uno
*-- en el VALID de alg<6C>n control, el SETFOCUS causar<61>a otro error m<>s.
THIS.ADDOBJECT("tmrFoco", "o_Timer_Tareas")
THIS.tmrFoco.DOCMD("Form_Activate", THIS, 100, 1)
*-- BOTONES DE OPCI<43>N
WITH .cmgBotones
DO CASE
CASE BITAND(tiBotones, 5) = 5 && RETRY/CANCEL
.ADDOBJECT("cmdRetry", "messagebox_Boton")
.cmdRetry.CAPTION = MB_CAPTION_RETRY
.ADDOBJECT("cmdCancel", "messagebox_Boton")
.cmdCancel.CAPTION = MB_CAPTION_CANCEL
.cmdCancel.CANCEL = .T.
CASE BITAND(tiBotones, 4) = 4 && YES/NO
.ADDOBJECT("cmdYes", "messagebox_Boton")
.cmdYes.CAPTION = MB_CAPTION_YES
.ADDOBJECT("cmdNo", "messagebox_Boton")
.cmdNo.CAPTION = MB_CAPTION_NO
.cmdNo.CANCEL = .T.
.PARENT.CLOSABLE = .F.
CASE BITAND(tiBotones, 3) = 3 && YES/NO/CANCEL
.ADDOBJECT("cmdYes", "messagebox_Boton")
.cmdYes.CAPTION = MB_CAPTION_YES
.ADDOBJECT("cmdNo", "messagebox_Boton")
.cmdNo.CAPTION = MB_CAPTION_NO
.ADDOBJECT("cmdCancel", "messagebox_Boton")
.cmdCancel.CAPTION = MB_CAPTION_CANCEL
.cmdCancel.CANCEL = .T.
CASE BITAND(tiBotones, 2) = 2 && ABORT/RETRY/IGNORE
.ADDOBJECT("cmdAbort", "messagebox_Boton")
.cmdAbort.CAPTION = MB_CAPTION_ABORT
.ADDOBJECT("cmdRetry", "messagebox_Boton")
.cmdRetry.CAPTION = MB_CAPTION_RETRY
.ADDOBJECT("cmdIgnore", "messagebox_Boton")
.cmdIgnore.CAPTION = MB_CAPTION_IGNORE
.PARENT.CLOSABLE = .F.
CASE BITAND(tiBotones, 1) = 1 && OK/CANCEL
.ADDOBJECT("cmdOk", "messagebox_Boton")
.cmdOK.CAPTION = MB_CAPTION_OK
.ADDOBJECT("cmdCancel", "messagebox_Boton")
.cmdCancel.CAPTION = MB_CAPTION_CANCEL
.cmdCancel.CANCEL = .T.
OTHERWISE && OK
.ADDOBJECT("cmdOk", "messagebox_Boton")
.cmdOK.CAPTION = MB_CAPTION_OK
.cmdOK.CANCEL = .T.
ENDCASE
ENDWITH && .cmgBotones
*-- ICONOS
DO CASE
CASE BITAND(tiBotones, 64) = 64 && ICONINFORMATION
.ADDOBJECT("imgIcono", "messagebox_Icono")
.imgIcono.PICTURE = MB_ICONINFORMATION_BMP
CASE BITAND(tiBotones, 48) = 48 && ICONEXCLAMATION
.ADDOBJECT("imgIcono", "messagebox_Icono")
.imgIcono.PICTURE = MB_ICONEXCLAMATION_BMP
CASE BITAND(tiBotones, 32) = 32 && ICONQUESTION
.ADDOBJECT("imgIcono", "messagebox_Icono")
.imgIcono.PICTURE = MB_ICONQUESTION_BMP
CASE BITAND(tiBotones, 16) = 16 && ICONSTOP
.ADDOBJECT("imgIcono", "messagebox_Icono")
.imgIcono.PICTURE = MB_ICONSTOP_BMP
ENDCASE
IF PEMSTATUS(THIS.PARENT, "ImgIcono", 5)
.imgIcono.MOVE(5, 5, 32, 32)
.imgIcono.VISIBLE = .T.
lnTama<6D>oIcono = 32 &&+ lnMargen
ELSE
lnTama<6D>oIcono = 0
ENDIF
IF TYPE('oChatBot') = 'O'
.ADDOBJECT("imgChatBot", "messagebox_Icono")
.imgChatBot.PICTURE = MB_ICONCHATBOT_BMP
.imgChatBot.MOVE(5, 35, 32, 32)
.imgChatBot.VISIBLE = .T.
.imgChatBot.ToolTipText = "Click pentru ChatBot Suport Tehnic"
BINDEVENT(.imgChatBot,"Click", oChatbot, "launch")
ENDIF
*-- CALCULO EL TAMA<4D>O DEL EDITBOX
lcFontName = .edtMensaje.FONTNAME
liFontSize = .edtMensaje.FONTSIZE
lcFontStyle = THIS.Get_EstiloFuente(.edtMensaje)
lnAnchoMedioFuente = FONTMETRIC(6, lcFontName, liFontSize, lcFontStyle) && Ancho medio fuente
lnAnchoMedioFuente = lnAnchoMedioFuente * 1.5 && maresc cu 20% pentru cazul in care am multe caractere inguste
lnAlturaMaxFuente = FONTMETRIC(1, lcFontName, liFontSize, lcFontStyle) && Alto fuente
lnEditboxWidth = 0
lnMaxTxtWidth = 0
lnMargenEditbox = .edtMensaje.MARGIN * 2 + .edtMensaje.BORDERSTYLE * 2
lnCantLineas = ALINES(laLines, .edtMensaje.VALUE, .T.)
lnTotalTXTHeight = lnCantLineas * lnAlturaMaxFuente + lnMargenEditbox
lnBotonesHeight = .cmgBotones.BUTTONS(1).HEIGHT
lnBotonesWidth = .cmgBotones.BUTTONCOUNT * (.cmgBotones.BUTTONS(1).WIDTH + lnMargen) - lnMargen
*-- Calculo el ancho en pixels de la l<>nea m<>s larga del mensaje
FOR I = 1 TO lnCantLineas
lnMaxTxtWidth = MAX(lnMaxTxtWidth, TXTWIDTH(laLines(I), lcFontName, liFontSize, lcFontStyle) * lnAnchoMedioFuente)
ENDFOR
*-- Determino respecto de qu<71> contenedor muestro el mensaje:
*-- Objeto _SCREEN, Objeto u ActiveForm.
*-- IMPORTANTE: En el caso de que no se pueda mostrar el mensaje
*-- se crear<61> autom<6F>ticamente un timeout para que salga por Cancelar.
*| llExisteActiveForm = TYPE("_SCREEN.ACTIVEFORM") = "O"
*| DO CASE
*| CASE _SCREEN.VISIBLE AND (NOT llExisteActiveForm OR llExisteActiveForm AND _SCREEN.ACTIVEFORM.SHOWWINDOW = 0)
*| *-- Centro respecto de _Screen (cuando _SCREEN es visible y el form activo
*| *-- se muestra dentro de la pantalla principal de VFP)
*| lnAreaWidth = _SCREEN.WIDTH
*| lnAreaHeight = _SCREEN.HEIGHT
*|
*| CASE llExisteActiveForm AND _SCREEN.ACTIVEFORM.SHOWWINDOW > 0
*| *-- Centro respecto del Form activo (cuando el form activo se muestra
*| *-- en un formulario de nivel superior o como un formulario de nivel superior)
*| lnAreaWidth = _SCREEN.ACTIVEFORM.WIDTH
*| lnAreaHeight = _SCREEN.ACTIVEFORM.HEIGHT
*|
*| OTHERWISE
*| *-- SALIDA DE EMERGENCIA: No puedo determinar
*| *-- respecto de qu<71> container mostrar el mensaje,
*| *-- el el container no es visible.
*| llSalidaDeEmergencia = .T.
*| ENDCASE
*|
*| IF llExisteActiveForm
*| _SCREEN.ACTIVEFORM.LOCKSCREEN = .F. && SI ESTAN BLOQUEADAS LAS ACTUALIZACIONES NO SE VE EL MENSAJE
*| ENDIF
*| _SCREEN.LOCKSCREEN = .F. && SI ESTAN BLOQUEADAS LAS ACTUALIZACIONES NO SE VE EL MENSAJE
*|
*| IF llSalidaDeEmergencia
*| *-- SALIDA DE EMERGENCIA
*| IF EMPTY(THIS.TimeoutValue)
*| THIS.TimeoutValue = 2 && Es CANCEL si no se indic<69> valor por defecto.
*| ENDIF
*| THIS.ADDOBJECT("tmrTarea", "o_Timer_Tareas")
*| THIS.tmrTarea.DOCMD("TimeOut", THIS, 100, 1)
*| ELSE
*-- SI SE INDICO UN TIMEOUT AGREGO UN TIMER
IF NOT EMPTY(tnTimeout)
THIS.ADDOBJECT("tmrTarea", "o_Timer_Tareas")
THIS.tmrTarea.DOCMD("TimeOut", THIS, tnTimeout * 1000, 1)
ENDIF
*| ENDIF
lnAreaWidth = SYSMETRIC(1)
lnAreaHeight = SYSMETRIC(2)
*| lnAreaWidth = _SCREEN.WIDTH
*| lnAreaHeight = _SCREEN.HEIGHT
*-- Calculo el ancho de la ventana del mensaje
lnFormWidth = MAX(lnBotonesWidth + lnMargen * 2, MIN(lnAreaWidth - SYSMETRIC(3) * 2 - 40, ;
lnMaxTxtWidth + lnMargenEditbox + lnAnchoScrollbar + IIF(lnTama<6D>oIcono = 0, 0, lnTama<6D>oIcono + lnMargen) + lnMargen * 2 + SYSMETRIC(3) * 0))
lnFormHeight = MIN(lnAreaHeight - SYSMETRIC(4) * 2 - 40, (MAX(lnTama<6D>oIcono, lnTotalTXTHeight) + lnBotonesHeight + lnMargen * 3 + SYSMETRIC(4) * 0))
*!* 14.05.2007
*!* Inaltimea formularului sa nu depaseasca 2/3 din ecran
lnFormHeight = MIN(lnFormHeight, ROUND(_SCREEN.Height * 0.66, 0))
lnEditboxHeight = lnFormHeight - lnBotonesHeight - lnMargen * 3
lnEditboxWidth = lnFormWidth - lnMargen * 2 - IIF(lnTama<6D>oIcono = 0, 0, lnTama<6D>oIcono + lnMargen)
.edtMensaje.MOVE(IIF(lnTama<6D>oIcono = 0, 0, lnTama<6D>oIcono + lnMargen) + lnMargen, lnMargen, lnEditboxWidth, lnEditboxHeight)
*-- Determino si mostrar las Scrollbars en el Editbox
.edtMensaje.SCROLLBARS = IIF(lnTotalTXTHeight > lnEditboxHeight, 2, 0)
*-- Ubico la ventana del mensaje
.MOVE((lnAreaWidth - lnFormWidth - SYSMETRIC(3) * 2) / 2, ;
(lnAreaHeight - lnFormHeight - SYSMETRIC(4) * 2 - SYSMETRIC(9)) / 2, ;
lnFormWidth, ;
lnFormHeight)
.AutoCenter = .T.
WITH .cmgBotones
*-- Ubico cada bot<6F>n, uno al lado del otro
FOR EACH loBoton IN .BUTTONS
loBoton.MOVE(loBoton.WIDTH * (loBoton.TABINDEX - 1) + (loBoton.TABINDEX - 1) * lnMargen)
loBoton.VISIBLE = .T.
ENDFOR
*-- Ubico el grupo de botones de la ventana del mensaje
.MOVE((lnFormWidth - lnBotonesWidth) / 2, lnFormHeight - lnBotonesHeight - lnMargen, lnBotonesWidth, lnBotonesHeight)
DO CASE
CASE (BITAND(tiBotones, 2) = 2 ;
OR BITAND(tiBotones, 3) = 3) ;
AND BITAND(tiBotones, 512) = 512
*-- 3er.BOT<4F>N POR DEFECTO
loBoton = .BUTTONS(3)
CASE (BITAND(tiBotones, 1) = 1 ;
OR BITAND(tiBotones, 2) = 2 ;
OR BITAND(tiBotones, 3) = 3 ;
OR BITAND(tiBotones, 4) = 4 ;
OR BITAND(tiBotones, 5) = 5) ;
AND BITAND(tiBotones, 256) = 256
*-- 2do.BOT<4F>N POR DEFECTO
loBoton = .BUTTONS(2)
OTHERWISE && First button is DEFAULT
*-- 1er.BOT<4F>N POR DEFECTO
loBoton = .BUTTONS(1)
ENDCASE
ENDWITH && .cmgBotones
loBoton.TABSTOP = .T.
.TABINDEX = 1
*-- Asigno el ID por defecto
LOCAL lcNombreBoton
lcNombreBoton = STRTRAN(UPPER(loBoton.NAME), "\<", "")
DO CASE
CASE lcNombreBoton = "CMDOK"
.IDOpcion = 1
CASE lcNombreBoton = "CMDCANCEL"
.IDOpcion = 2
CASE lcNombreBoton = "CMDABORT"
.IDOpcion = 3
CASE lcNombreBoton = "CMDRETRY"
.IDOpcion = 4
CASE lcNombreBoton = "CMDIGNORE"
.IDOpcion = 5
CASE lcNombreBoton = "CMDYES"
.IDOpcion = 6
CASE lcNombreBoton = "CMDNO"
.IDOpcion = 7
ENDCASE
*-- Guardo las posiciones de los controles
*-- para usarlas en caso de Resize del usuario
.MINWIDTH = lnBotonesWidth + lnMargen * 2 + lnMargenEditbox
.MINHEIGHT = MAX(lnAlturaMaxFuente, lnTama<6D>oIcono) + lnBotonesHeight + lnMargenEditbox + lnMargen * 3
THIS.cmgBotones_mBot = .HEIGHT - .cmgBotones.TOP
THIS.edtMensaje_mBot = .HEIGHT - (.edtMensaje.TOP + .edtMensaje.HEIGHT)
THIS.edtMensaje_mRight = .WIDTH - (.edtMensaje.LEFT + .edtMensaje.WIDTH)
ENDWITH && THIS.PARENT
ENDPROC
PROCEDURE timeout && Este evento se dispara al finalizar el tiempo de timeout, si es que se indic<69> un valor de timeout para el mensaje.
WITH THIS
*-- Si no hay asignado un valor por defecto para el timeout, le asigno uno.
IF NOT EMPTY(.TimeOutValue)
.PARENT.IDOpcion = .TimeOutValue
ENDIF
.Form_Hide()
ENDWITH && THIS.PARENT
ENDPROC
ENDDEFINE
DEFINE CLASS o_timer_tareas AS timer
*< CLASSDATA: Baseclass="timer" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: docmd && Ejecuta un m<>todo en el objeto indicado. Par<61>metros: cMetodo, eContexto, iIntervalo, iIteraci<63>n
*m: resetparams
*p: cmetodo && Nombre del m<>todo a ejecutar (P.Ej: Actualizar)
*p: econtexto && Nombre o Referencia del contexto donde ejecutar el m<>todo (P.Ej: THIS)
*p: icontador
*p: iiteracion && Cantidad de veces que se debe ejecutar el m<>todo (Por defecto: 1)
*p: lerror
*p: locupado && Flag que indica si el timer est<73> libre u ocupado.
*p: nsaltearerror
*a: aerrores[1,7]
*</DefinedPropArrayMethod>
*<PropValue>
cmetodo =
econtexto = THIS
Height = 23
icontador = 0
iiteracion = 1
Name = "o_timer_tareas"
nsaltearerror = 0
Width = 23
*</PropValue>
PROCEDURE Destroy
THIS.ResetParams()
*_SCREEN.PRINT(PROGRAM() + CHR(13))
ENDPROC
PROCEDURE docmd && Ejecuta un m<>todo en el objeto indicado. Par<61>metros: cMetodo, eContexto, iIntervalo, iIteraci<63>n
LPARAMETERS tcMetodo, teContexto, tiIntervalo, tiIteracion
*-- Par<61>metros:
*-- cMetodo Nombre del m<>todo a ejecutar (P.Ej: Actualizar)
*-- eContexto Nombre o Referencia del contexto donde ejecutar el m<>todo (P.Ej: THIS)
*-- iIntervalo Valor del intervalo en milisegundos
*-- iIteracion Cantidad de veces que se debe ejecutar el m<>todo (Por defecto: 1)
*-- Si se indica iIteracion = 0 el timer permanecer<65> activo hasta que
*-- se le asigne otra tarea.
*-- EJEMPLO DE USO:
*-- * Ejecutar el m<>todo 'Actualizar_Imagen' del control actual.
*-- * Sintaxis: oTimer.DoCmd(cM<63>todo, oObjeto, nMilisegundos [,iIteraci<63>n])
*-- _SCREEN.oTimer_ControlesXP.DoCmd("Actualizar_Imagen", THIS, 200, 1)
WITH THIS
IF PCOUNT() = 0
*STRTOFILE(TTOC(DATETIME()) + " - Pedido de Cancelaci<63>n de tarea" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
.ResetParams()
ELSE
IF tiIteracion = 0
*STRTOFILE(TTOC(DATETIME()) + " - Pedido de Asignaci<63>n de tarea sin fin" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ELSE
*STRTOFILE(TTOC(DATETIME()) + " - Pedido de Asignaci<63>n de tarea" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ENDIF
IF .lOcupado AND .iIteracion > 0
*STRTOFILE(TTOC(DATETIME()) + " - Se quiso asignar una tarea, pero el timer est<73> ocupado." + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ELSE
IF .iIteracion = 0
IF tiIteracion = 0
*STRTOFILE(TTOC(DATETIME()) + " - Reemplazo de tarea sin fin e Inicio de Tarea sin fin" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ELSE
*STRTOFILE(TTOC(DATETIME()) + " - Reemplazo de tarea sin fin e Inicio de Tarea" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ENDIF
ELSE
*STRTOFILE(TTOC(DATETIME()) + " - Inicio de tarea" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ENDIF
.ResetParams()
.cMetodo = tcMetodo
.eContexto = teContexto
.INTERVAL = tiIntervalo
.iIteracion = tiIteracion
.lOcupado = .T.
.ENABLED = .T.
ENDIF
ENDIF
ENDWITH && THIS
ENDPROC
PROCEDURE resetparams
WITH THIS
.ENABLED = .F.
.INTERVAL = 0
.iIteracion = 1
.iContador = 0
.cMetodo = ""
.eContexto = NULL
.eContexto = "THIS"
.lOcupado = .F.
.RESET()
ENDWITH && THIS
ENDPROC
PROCEDURE Timer
WITH THIS
IF .lOcupado
LOCAL lcMetodo
.RESET()
LOCAL loContexto
IF VARTYPE(.eContexto) = "O"
loContexto = .eContexto
ELSE
loContexto = EVALUATE(.eContexto)
ENDIF
IF .lError
.lError = .F.
.ResetParams()
RETURN
ENDIF
lcMetodo = IIF("(" $ .cMetodo, .cMetodo, .cMetodo + "()")
WITH loContexto
*=EVALUATE("." + THIS.cMetodo + "()")
=EVALUATE("." + lcMetodo)
ENDWITH && loContexto
IF .lError
.ResetParams()
RETURN
ENDIF
.iContador = .iContador + 1
IF .iContador = .iIteracion
.lError = .F.
.ResetParams()
*STRTOFILE(TTOC(DATETIME()) + " - Fin de tarea" + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ENDIF
ELSE
.RESET()
*STRTOFILE(TTOC(DATETIME()) + " - Se intent<6E> ejecutar una tarea retrasada luego de haber finalizado." + CHR(13) + CHR(10), "TIMER.TXT", .T.)
ENDIF
ENDWITH && THIS
ENDPROC
ENDDEFINE

BIN
clase/OPEN.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

BIN
clase/PLUS.BMP Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

600
clase/_baza.vc2 Normal file
View File

@@ -0,0 +1,600 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_baza.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _checkbox AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
Alignment = 0
AutoSize = .T.
BackStyle = 0
Caption = "Check1"
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 18
lchangefont = .T.
lresizefont = .T.
Name = "_checkbox"
Width = 63
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _combobox AS combobox
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 24
lchangefont = .T.
lresizefont = .T.
Name = "_combobox"
Style = 2
Width = 100
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _commandbutton AS commandbutton
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
Caption = "Command1"
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 27
lchangefont = .T.
lresizefont = .T.
Name = "_commandbutton"
Width = 84
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _container AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
Height = 200
Name = "_container"
Width = 200
*</PropValue>
ENDDEFINE
DEFINE CLASS _cursoradapter AS cursoradapter
*< CLASSDATA: Baseclass="cursoradapter" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 22
Name = "_cursoradapter"
Width = 23
*</PropValue>
ENDDEFINE
DEFINE CLASS _custom AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "_custom"
*</PropValue>
ENDDEFINE
DEFINE CLASS _dataenvironment AS dataenvironment
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "_dataenvironment"
*</PropValue>
ENDDEFINE
DEFINE CLASS _editbox AS editbox
*< CLASSDATA: Baseclass="editbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
FontCharSet = 238
FontSize = 10
Height = 53
lchangefont = .T.
lresizefont = .T.
Name = "_editbox"
Width = 100
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _form AS form
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Redimensionare font la runtime
*p: _memberdata
*</DefinedPropArrayMethod>
*<PropValue>
Caption = "Form"
DoCreate = .T.
lchangefont = .F.
lresizefont = .F.
Name = "_form"
Themes = .T.
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _grid AS grid
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: incarca_grid
*m: salveaza_grid
*p: cculoarecoledit && Culoarea folosita pentru fundalul campurilor care sunt ReadOnly = .F.
*p: lcamptextneeditabil && .T. - campurile text sunt facute read-only ; .F. - campurile text sunt lasate cum au fost definite
*p: lchangefont && Allows font change at runtime
*p: lcoloreazaeditabil && .T. - BackColor al campurilor editabile este luat din cculoarecoledit
*p: lresizefont && Redimensionare font la runtime
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
cculoarecoledit = 253,252,223
FontCharSet = 238
FontSize = 10
Height = 200
HighlightBackColor = 0,64,128
HighlightForeColor = 255,255,255
lcamptextneeditabil = .T.
lchangefont = .T.
lcoloreazaeditabil = .F.
lresizefont = .T.
Name = "_grid"
ReadOnly = .T.
RowHeight = 19
SelectedItemBackColor = 100,185,255
Width = 320
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
*</PropValue>
PROCEDURE incarca_grid
Lparameters tcRecordSourceNou
Local lnColumnIndex
With This
.RecordSource = Iif(Empty(tcRecordSourceNou),.ToolTipText,tcRecordSourceNou)
For lnColumnIndex = 1 To .ColumnCount
.Columns(lnColumnIndex).ControlSource = Iif(!Empty(tcRecordSourceNou) And !Empty(.Columns(lnColumnIndex).Tag),;
tcRecordSourceNou + [.] + Substr(.Columns(lnColumnIndex).Tag,At([.],.Columns(lnColumnIndex).Tag)+1),;
.Columns(lnColumnIndex).Tag)
.Tag= ""
With .Columns(lnColumnIndex)
For lnIndex = 1 To .Objects.Count
If .Objects(lnIndex).BaseClass == [Header]
.Objects(lnIndex).Picture = "" && 07.11.2013 : daca reincarc gridul, sa-mi stearga iconitele de la
&& grid_sort sau grid_extra
Endif
Endfor
Endwith
Endfor
.ToolTipText = ""
Endwith
ENDPROC
PROCEDURE Init
Local liColIndex, i, lcRGB, loColumn
lcRGB = [RGB(] + This.cculoarecoledit + [)]
For liColIndex = 1 To This.ColumnCount
loColumn = This.Columns(m.liColIndex)
With loColumn
If Upper(.CurrentControl) == 'TEXT1' And This.lcamptextneeditabil
.ReadOnly=.T.
*.FontName='Arial Narrow'
Endif
If !.ReadOnly And This.lcoloreazaeditabil
.BackColor = &lcRGB
If Upper(.CurrentControl) == 'TEXT1'
loColumn.TEXT1.SelectedBackColor = this.SelectedItemBackColor
loColumn.TEXT1.SelectedForeColor = this.SelectedItemForeColor
ENDIF
Endif
Endwith
ENDFOR
ENDPROC
PROCEDURE salveaza_grid
Local lnColumnIndex
With This
For lnColumnIndex = 1 To .ColumnCount
.Columns(lnColumnIndex).Tag = .Columns(lnColumnIndex).ControlSource
Endfor
.ToolTipText=.RecordSource
.RecordSource=""
Endwith
ENDPROC
ENDDEFINE
DEFINE CLASS _image AS image
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 17
Name = "_image"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _label AS label
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
AutoSize = .T.
BackStyle = 0
Caption = "Label1"
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 18
lchangefont = .T.
lresizefont = .T.
Name = "_label"
Width = 40
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _linie AS line
*< CLASSDATA: Baseclass="line" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 17
Name = "_linie"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _listbox AS listbox
*< CLASSDATA: Baseclass="listbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 170
lchangefont = .T.
lresizefont = .T.
Name = "_listbox"
Width = 100
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _olecontrol AS olecontrol
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="_olecontrol" Parent="" ObjName="_olecontrol" OLEObject="C:\WINNT\System32\MSCOMCTL.OCX" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKClx5P5j8QBAwAAAEABAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAQAAAAAAAAABAAAAAIAAAD+/////v////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+2kEHHiYXREbFqAMDwKDYoIUM0EggAAABIIQAAZhIAALE8wWoBAAYAHAAAAJwAAADoAwAACAAAAJCgFwAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTFmAHQAIABXAGkAbgBkAG8AdwBzACAAUgBlAHAAbwByAHQAIAABAACAbgB0AHIAbwBsAAkAewAxADYANwA3ADAAMQBFADMALQBGAEQAQwBGAC0AMQAxAEQAMAAtAEEANAA4AEUAAAAFAGCiFwAGAAAAAAAAAAUAAIAY7BIAH97svQEABQAg7BIAVwBJAE4ATgBUAFwAUwB5AHMAdABlAG0AMwAyAFwAYgByADUANAA5AC4AZABsAGwAAAA2ADEANgA0ADIALQA2ADgAMgAwADAAMwAzADMAMAAtADEAMAAwADQAXwBDAGwAYQBzAHMAZQBzAFwAQgBSADUANAA5AC4AQgByADUANAA5AEMAdAByAGwALgAxAFwAQwBMAFMASQBEAAAAQwBMAFMASQBEAAAAAAAAAP///////////////wAAAABLBgpuAAAAAAAAAAAkTxYAAAAAAAkEAAAAAAAAAAAAAA==" />
*<PropValue>
Height = 178
Name = "_olecontrol"
Width = 322
*</PropValue>
ENDDEFINE
DEFINE CLASS _oleimagelist AS olecontrol
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="_oleimagelist" Parent="" ObjName="_oleimagelist" OLEObject="C:\WINDOWS\system32\MSCOMCTL.OCX" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDuannLlMUBAwAAAEABAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAQAAAAAAAAABAAAAAIAAAD+/////v////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8jfyQskYXREbFqAMDwKDYoIUM0EggAAADtAwAA7QMAAIB+4eYAAAYAIAAAAAAAAADAwMAA//8AAAHvzasAAAUAXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTFEAEEAOABEADgARgAtADkARAA2AEEALQAxADAAMQBCAC0AQQABAACAMAAtADQAMgAxADAAMQAwADIAQQA4AEQAQQA3AH0AIABDADoAXABXAEkATgBEAE8AVwBTAFwAcwB5AHMAgOAZAAYAAAD/////BQAAgAAAAAAAAAAAAAAAAC4AbwBjAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" />
*<PropValue>
Height = 38
Name = "_oleimagelist"
Width = 38
*</PropValue>
ENDDEFINE
DEFINE CLASS _olemapimess AS olecontrol
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="_olemapimess" Parent="" ObjName="_olemapimess" OLEObject="c:\WINNT\System32\msmapi32.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCzedI5lsQBAwAAAAAEAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAMAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAQAAAAAAAAABAAAAAIAAAD+/////v///wUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+rLMYg2hUbELmoREVTVAAAIUM0EggAAADtAwAA7QMAADAFV/wAAAYAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZ2tndGdubm1ubW5pbmlndGhrZ29nZ2d2bWtoaW5qZ2dudm1mAHQAIABXAGkAbgBkAG8AdwBzACAAUgBlAHAAbwByAHQAIAABAACAbgB0AHIAbwBsAAkAewAxADYANwA3ADAAMQBFADMALQBGAEQAQwBGAC0AMQAxAEQAMAAtAEEANAA4AEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIUARAAAAA4AhABFAAAAEwBgFhgAeAETAEkATgBOAFQAXABTAHkAcwB0AGUAbQAzADIAXABtAHMAbQBhAHAAaQAzADIALgBvAGMAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3AFIAAAAKADAFEwAwBRMASQBOAE4AVABcAFMAeQBzAHQAZQBtADMAMgBcAG0AcwB4AG0AbAAzAC4AZABsAGwAAABBAGMAYwBlAHMAcwBvAHIAaQBlAHMAXABJAG0AYQBnAGUAVgAAAGUAXABLAG8AZABhAGsASQBtAGcALgBlAHgAZQAiAAAAZhEAAAAAAADgFgAAAAAAALIXAAAAAAAAZiEAAAAAAAAQIgAAAAAAALwiAAAAAAAAZiMAAAAAAAAKJAAAAAAAABQlAAAAAAAANisAAAAAAADaLAAAAAAAAIotAAAAAAAANC4AAAAAAADYLgAAAAAAAMwvAAAAAAAAwjAAAAAAAAAUPQAAAAAAACA/AAAAAAAA9j8AAAAAAADeQAAAAAAAAOZBAAAAAAAA2EIAAAAAAADaSAAAAAAAAHpDAAAAAAAAcAwAAAAAAAAiDQAAAAAAANINAAAAAAAAhA4AAAAAAAAlAAAAEAAAAAAAAAAAAAAA" />
*<PropValue>
Height = 100
Name = "_olemapimess"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _olemapisess AS olecontrol
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="_olemapisess" Parent="" ObjName="_olemapisess" OLEObject="c:\WINNT\System32\msmapi32.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHB6H785lsQBAwAAAAADAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAIAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAQAAAAAAAAABAAAAAIAAAD+/////v///wUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAD+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+gLMYg2hUbELmoREVTVAAAIUM0EggAAADtAwAA7QMAAFBy0lcAAAYAAwBSAAAARwBSAEEAfgAxAFwAWABSAEEAXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtZ2tndGdubm1ubW5pbmlndGhrZ29nZ2d2bWtoaW5qZ2dudm1mAHQAIABXAGkAbgBkAG8AdwBzACAAUgBlAHAAbwByAHQAIAABAACAbgB0AHIAbwBsAAkAewAxADYANwA3ADAAMQBFADMALQBGAEQAQwBGAC0AMQAxAEQAMAAtAEEANAA4AEUAWQA7AEMAOgBcAGoAMgBzAGQAawAxAC4ANAAuADIAXwAwADMAXABiAGkAbgA7AEMAOgBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAXABFAG0AYgBhAHIAYwBhAGQAZQByAG8AXABDAGgATQBnAHIAMgAwADEAOwBDADoAXABQAHIAbwBnAHIAYQBtACAARgBpAGwAZQBzAFwARQBtAGIAYQByAGMAYQBkAGUAcgBvAFwATgBvAHYAMgAwADAAMgBTAGgAYQByAGUAZAA7AEMAOgBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbAAAAHMAXABFAG0AYgBhAHIAYwBhAGQAZQByAG8AXABEAEIAQQA3ADEAMAA7AEMAOgBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAXABFAG0AYgBhAHIAYwBhAGQAZQByAG8AXABUAHUAbgBlAHIAMgAwADIAOwBDADoAXABQAHIAbwBnAHIAYQBtACAARgBpAGwAZQBzAFwARQBtAGIAYQByAGMAYQBkAGUAcgBvAFwAUgBTAFEATAA3ADEAMAA7AEMAOgBcAFAAcgBvAGcAcgBhAG0AIABGAGkAbABlAHMAXABFAG0AYgBhAHIAYwBhAGQAZQByAG8AXABEAGUAdAAxADAAZwAAAFUAUwBFAFIARABPAE0AQQBJAE4APQBNAEEAUgBJAFUAUwBBAFQAAABVAFMARQBSAE4AQQBNAEUAPQBoAG8AcgBpAGEALgBwAHUAcwBjAGEAcwB1AAAAVQBTAEUAUgBQAFIATwBGAEkATABFAD0AQwA6AFwARABvAGMAdQBtAGUAbgB0AHMAIABhAG4AZAAgAFMAZQB0AHQAaQBuAGcAcwBcAGgAbwByAGkAYQAuAHAAdQBzAGMAYQBzAHUAAAB3AGkAbgBkAGkAcgA9AEMAOgBcAFcASQBOAE4AVAAAAAAAVEMPAHwBAACLAPABEwDwARMACQAbAAABCAAlAAAAEAAAAAAAAAAAAAAA" />
*<PropValue>
Height = 100
Name = "_olemapisess"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _olerichtext AS olecontrol
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="_olerichtext" Parent="" ObjName="_olerichtext" OLEObject="C:\WINDOWS\system32\RICHTX32.OCX" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7////+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCBaf09iswBAwAAAAACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABPAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAEoAAAAAAAAABAAAAAIAAAD+////BQAAAAYAAAD+////BwAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9giHw7j9cbELm1BAIcAJQCIUM0EggAAABWCgAAVgoAACFDNBIBAAYAoAAAAAAA//8AAP//AQAAAAAAAAAAAAAATwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABcAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcWhqIFp0dVFoYTtqZGZuW2lhZXRyIAAyADkANgAtADAAMABDADAANABGAEIANgA2ADcAOABCAH0AIABDADoAXABXAEkATgABAACADAAAAFJpZ2h0TWFyZ2luABEAAABODQAAAAcAAAAAAAAAAAAAAAUAAABUZXh0ABQAAABIAAAAAAsAAABPAAAAAAUAAIAAAAAAAAABAAAAAQABAAIACAAAAHtccnRmMVxhbnNpXGRlZmYwe1xmb250dGJse1xmMFxmbmlsXGxlY29udHJvbDE5ADYALQAwADAAQwAwADQARgBCADYANgA3ADgAQgB9ACAAQwA6AFwAVwBJAE4ARABPAFcAUwBmY2hhcnNldDAgQXJpYWw7fX0NClx2aWV3a2luZDRcdWMxXHBhcmRcbGFuZzEwMzNcZnMxOCBPbGVjb250cm9sMQ0KXHBhciB9DQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" />
*<PropValue>
Height = 100
Name = "_olerichtext"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _optionbutton AS optionbutton
*< CLASSDATA: Baseclass="optionbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\include\foxpro.h"
*<DefinedPropArrayMethod>
*p: lchangefont
*p: lresizefont
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
Caption = "Option1"
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 17
lchangefont = .T.
lresizefont = .T.
Name = "_optionbutton"
Width = 61
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _optiongrup AS optiongroup
*< CLASSDATA: Baseclass="optiongroup" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\include\foxpro.h"
*<DefinedPropArrayMethod>
*p: lchangefont
*p: lresizefont
*p: ndefault
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
AutoSize = .T.
BackStyle = 0
ButtonCount = 2
Height = 46
lchangefont = .F.
lresizefont = .T.
Name = "_optiongrup"
ndefault = 1
Value = 1
Width = 71
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
Option1.BackStyle = 0
Option1.Caption = "Option1"
Option1.Height = 17
Option1.Left = 5
Option1.Name = "Option1"
Option1.Top = 5
Option1.Value = 1
Option1.Width = 61
Option2.BackStyle = 0
Option2.Caption = "Option2"
Option2.Height = 17
Option2.Left = 5
Option2.Name = "Option2"
Option2.Top = 24
Option2.Width = 61
*</PropValue>
ENDDEFINE
DEFINE CLASS _pageframe AS pageframe
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\include\foxpro.h"
*<DefinedPropArrayMethod>
*p: lchangefont
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
ErasePage = .T.
Height = 175
lchangefont = .T.
lresizefont = .T.
Name = "_pageframe"
PageCount = 2
Width = 241
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
Page1.Caption = "Page1"
Page1.FontCharSet = 238
Page1.FontName = "Arial"
Page1.FontSize = 10
Page1.Name = "Page1"
Page2.Caption = "Page2"
Page2.FontCharSet = 238
Page2.FontName = "Arial"
Page2.FontSize = 10
Page2.Name = "Page2"
*</PropValue>
PROCEDURE Init
For i = 1 To This.PageCount
With This.Pages(i)
If .FontCharSet <> 0
.Caption = tradu(.Caption)
.ToolTipText = tradu(.ToolTipText)
Endif
Endwith
Endfor
ENDPROC
ENDDEFINE
DEFINE CLASS _shape AS shape
*< CLASSDATA: Baseclass="shape" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 17
Name = "_shape"
Width = 100
*</PropValue>
ENDDEFINE
DEFINE CLASS _spinner AS spinner
*< CLASSDATA: Baseclass="spinner" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\include\foxpro.h"
*<DefinedPropArrayMethod>
*p: lchangefont
*p: lresizefont
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 24
lchangefont = .T.
lresizefont = .T.
Name = "_spinner"
Width = 120
_memberdata = <VFPData>
<memberdata name="lchangefont" display="lChangeFont"/>
<memberdata name="lresizefont" display="lResizeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _textbox AS textbox
*< CLASSDATA: Baseclass="textbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lchangefont && Allows font change at runtime
*p: lresizefont && Daca se redimensioneaza fontul de catre utilizator.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
FontCharSet = 238
FontName = "Arial"
FontSize = 10
Height = 23
lchangefont = .T.
lresizefont = .T.
Name = "_textbox"
Width = 100
_memberdata = <VFPData>
<memberdata name="lresizefont" display="lResizeFont"/>
<memberdata name="lchangefont" display="lChangeFont"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS _timer AS timer
*< CLASSDATA: Baseclass="timer" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 23
Name = "_timer"
Width = 23
*</PropValue>
ENDDEFINE

639
clase/_ca_base.vc2 Normal file
View File

@@ -0,0 +1,639 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_ca_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _cabase AS _cursoradapter OF "_baza.vcx"
*< CLASSDATA: Baseclass="cursoradapter" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: cbaseselectcmd_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
*m: cselectcmdfilter_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
*m: cselectorderby_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
*m: cselectotherclauses_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
*m: _aftercursorfillrefresh && Fired by the AfterCursorFill and AfterCursorRefresh events using BINDEVENT. This method is useful for placing code to create indexes on the cursor after the cursor is created by the CursorAdapter.
*m: _buildselectcmd && Called by _ca_dmlcode and _ca_autoupdate methods to create the SQL for the SelectCmd property.
*m: _ca_adosetup && Called by the Init to setup ADO objects
*m: _ca_readme && Information on how to use this Class Library
*p: cbaseselectcmd && The base SQL command to use for creating the SQL for the SelectCmd property.
*p: cselectcmdfilter && The filter to use in the WHERE clause of the SelectCmd.
*p: cselectorderby && Optional ORDER BY clause to be added to the SelectCmd. Do NOT include the words ORDER BY in your list.
*p: cselectotherclauses && Optional clause(s) to be added to the SelectCmd AFTER the ORDER BY clause (e.g., GROUP BY and HAVING). You will need to include those key phrases in your string.
*p: lautogenerate && Set to TRUE if the CA is to perform auto updates where VFP generates the Insert, Update and Delete SQL. See options under the lCallStoredProcs property if this is set to FALSE.
*p: lcallstoredprocs && Set to TRUE if you want the values of the *Cmd properties to be set by the _CA_SPCode method of each CA subclass. Otherwise, the *Cmd properties will be set by the _CA_DMLCode method.
*p: lnodataonload && Set to TRUE if you want the cursor to be created with NO DATA returned from the source tables(s).
*p: lschematruncated && Set to TRUE by the CA VCX Builder if the CursorSchema value displayed in the Property Sheet has been been shortened to comply with the 255 character display limit. This value is replaced by the complete schema at runtime when the _CA_INIT method fires.
*p: lusecursorschema && Set to TRUE if you want the CursorFill method to use the structure in the CursorSchema property.
*p: nfilloptions && See VFP Help on CursorFill for discussion on the use of nOptions. The default is -1 but set to 0 in the CursorFill method if the DataSourceType is not ADO.
*p: oado_command && ADO Command Object
*p: oado_conn && ADO Connection Object.
*p: oado_rs && ADO Record Source Object
*</DefinedPropArrayMethod>
*<PropValue>
Alias = "cursor1"
BufferModeOverride = 5
cbaseselectcmd =
Comment = "Cursor Adapter Baseclass"
cselectcmdfilter =
cselectorderby =
cselectotherclauses =
FetchSize = -1
Flags = 0
Height = 22
lautogenerate = .T.
lcallstoredprocs = .F.
lnodataonload = .F.
lschematruncated = .F.
lusecursorschema = .F.
Name = "_cabase"
nfilloptions = -1
oado_command = .NULL.
oado_conn = .NULL.
oado_rs = .NULL.
SendUpdates = .F.
UseDeDataSource = .T.
WhereType = 1
Width = 23
*</PropValue>
PROCEDURE AfterCursorFill
LPARAMETERS lUseCursorSchema, lNoDataOnLoad, cSelectCmd, lResult
DODEFAULT(lUseCursorSchema, lNoDataOnLoad, cSelectCmd, lResult)
THIS._AfterCursorFillRefresh()
NODEFAULT
ENDPROC
PROCEDURE AfterCursorRefresh
LPARAMETERS cSelectCmd, lResult
DODEFAULT(cSelectCmd, lResult)
THIS._AfterCursorFillRefresh()
NODEFAULT
ENDPROC
PROCEDURE AutoOpen
*** Setup code: DO NOT REMOVE
if not pemstatus(This, '__VFPSetup', 5)
This.AddProperty('__VFPSetup', 1)
This.Init()
endif
*** End of Setup code: DO NOT REMOVE
ENDPROC
PROCEDURE BeforeDelete
LPARAMETERS cFldState, lForce, cDeleteCmd
IF UPPER(THIS.DeleteCmdDataSourceType) = [NATIVE]
cDeleteCmd = CHRTRAN(cDeleteCmd, [?], [])
ELSE
IF EMPTY(THIS.DeleteCmdDataSourceType) AND UPPER(THIS.DataSourceType) = [NATIVE]
cDeleteCmd = CHRTRAN(cDeleteCmd, [?], [])
ENDIF
ENDIF
LOCAL llRetVal
llRetval = DODEFAULT(cFldState, lForce, cDeleteCmd)
NODEFAULT
RETURN llRetVal
ENDPROC
PROCEDURE BeforeInsert
LPARAMETERS cFldState, lForce, cInsertCmd
IF UPPER(THIS.InsertCmdDataSourceType) = [NATIVE]
cInsertCmd = CHRTRAN(cInsertCmd, [?], [])
ELSE
IF EMPTY(THIS.InsertCmdDataSourceType) AND UPPER(THIS.DataSourceType) = [NATIVE]
cInsertCmd = CHRTRAN(cInsertCmd, [?], [])
ENDIF
ENDIF
LOCAL llRetVal
llRetVal = DODEFAULT(cFldState, lForce, cInsertCmd)
NODEFAULT
RETURN llRetVal
ENDPROC
PROCEDURE BeforeUpdate
LPARAMETERS cFldState, lForce, nUpdateType, cUpdateInsertCmd, cDeleteCmd
*!* If the nUpdateType is 2 [update by deleting record first then
*!* insert new data -- bad idea] the SQL in the DeleteCmd is used.
IF UPPER(THIS.UpdateCmdDataSourceType) = [NATIVE]
cUpdateInsertCmd = CHRTRAN(cUpdateInsertCmd, [?], [])
cDeleteCmd = CHRTRAN(cDeleteCmd, [?], [])
ELSE
IF EMPTY(THIS.UpdateCmdDataSourceType) AND UPPER(THIS.DataSourceType) = [NATIVE]
cUpdateInsertCmd = CHRTRAN(cUpdateInsertCmd, [?], [])
cDeleteCmd = CHRTRAN(cDeleteCmd, [?], [])
ENDIF
ENDIF
LOCAL llRetVal
llRetVal = DODEFAULT(cFldState, lForce, nUpdateType, cUpdateInsertCmd, cDeleteCmd)
NODEFAULT
RETURN llRetVal
ENDPROC
PROTECTED PROCEDURE cbaseselectcmd_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
LPARAMETERS tcNew
IF VARTYPE(tcNew) <> [C]
RETURN .f.
ENDIF
tcNew = ALLTRIM(tcNew)
THIS.cBaseSelectCmd = tcNew
THIS._BuildSelectCmd()
ENDPROC
PROTECTED PROCEDURE cselectcmdfilter_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
LPARAMETERS tcNew
IF VARTYPE(tcNew) <> [C]
RETURN .f.
ENDIF
tcNew = ALLTRIM(tcNew)
IF LEFT(UPPER(tcNew), 6) = [WHERE ]
IF LEN(tcNew) = 6
tcNew = []
ELSE
tcNew = ALLTRIM(SUBSTR(tcNew, 7))
ENDIF
ENDIF
THIS.cSelectCmdFilter = tcNew
THIS._BuildSelectCmd()
ENDPROC
PROTECTED PROCEDURE cselectorderby_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
LPARAMETERS tcNew
IF VARTYPE(tcNew) <> [C]
RETURN .f.
ENDIF
tcNew = ALLTRIM(tcNew)
IF LEFT(UPPER(tcNew), 9) = [ORDER BY ]
IF LEN(tcNew) = 9
tcNew = []
ELSE
tcNew = ALLTRIM(SUBSTR(tcNew, 10))
ENDIF
ENDIF
THIS.cSelectOrderBy = tcNew
THIS._BuildSelectCmd()
ENDPROC
PROTECTED PROCEDURE cselectotherclauses_assign && Assign method that fires the _BuildSelectCmd if the Property value is changed.
LPARAMETERS tcNew
IF VARTYPE(tcNew) <> [C]
RETURN .f.
ENDIF
tcNew = ALLTRIM(tcNew)
THIS.cSelectOtherClauses = tcNew
THIS._BuildSelectCmd()
ENDPROC
PROCEDURE CursorFill
LPARAMETERS lUseCursorSchema, lNoData, nOptions, uSource
IF NOT PEMSTATUS(THIS, 'lADO_Done', 5)
THIS.AddProperty('lADO_Done')
ENDIF
IF THIS.DataSourceType = [ADO] AND NOT THIS.lADO_Done
RETURN
ENDIF
LOCAL llSchema, llNoData, lnOptions, luSource
llSchema = lUseCursorSchema
llNoData = lNoData
lnOptions = nOptions
luSource = uSource
IF VARTYPE(THIS.lUseCursorSchema) <> "L"
THIS.lUseCursorSchema = .F.
ENDIF
IF VARTYPE(THIS.lNoDataOnLoad) <> "L"
THIS.lNoDataOnLoad = .F.
ENDIF
IF VARTYPE(THIS.nFillOptions) <> "N"
THIS.nFillOptions = -1
ENDIF
IF PCOUNT() < 1 OR VARTYPE(llSchema) <> "L"
llSchema = THIS.lUseCursorSchema
ENDIF
IF PCOUNT() < 2 OR VARTYPE(llNoData) <> "L"
llNoData = THIS.lNoDataOnLoad
ENDIF
IF PCOUNT() < 3 OR VARTYPE(lnOptions) <> "N"
lnOptions = IIF(THIS.DataSourceType = [ADO], THIS.nFillOptions, 0)
ENDIF
LOCAL llRetVal
IF THIS.DataSourceType = [ADO]
llRetVal = DODEFAULT(llSchema, llNoData, lnOptions, THIS.oADO_Command)
ELSE
IF PCOUNT() = 4
llRetVal = DODEFAULT(llSchema, llNoData, lnOptions, luSource)
ELSE
llRetVal = DODEFAULT(llSchema, llNoData, lnOptions)
ENDIF
ENDIF
NODEFAULT
RETURN llRetval
ENDPROC
PROCEDURE Destroy
WITH THIS
.oADO_Conn = .null.
.oADO_RS = .null.
.oADO_Command = .null.
.DataSource = .null.
.UpdateCmdDataSource = .null.
.DeleteCmdDataSource = .null.
.InsertCmdDataSource = .null.
ENDWITH
ENDPROC
PROCEDURE Init
local llReturn
do case
case not pemstatus(This, '__VFPSetup', 5)
This.AddProperty('__VFPSetup', 0)
case This.__VFPSetup = 2
This.__VFPSetup = 0
return
endcase
llReturn = dodefault()
*!* BINDEVENT(THIS, 'AfterCursorFill', THIS, '_AfterCursorFillRefresh', 1)
*!* BINDEVENT(THIS, 'AfterCursorRefresh', THIS, '_AfterCursorFillRefresh', 1)
*!* For some reason the BINDEVENT to these methods is generating a VFP
*!* error "No Parameter Statement found". So for now, I am commenting the
*!* BINDEVENTs and placing code directly in these methods that call the
*!* _AfterCursorFillRefresh
IF THIS.DataSourceType = [ADO]
THIS._CA_ADOSetup()
ENDIF
*** Select connection code: DO NOT REMOVE
set multilocks on
*** End of Select connection code: DO NOT REMOVE
*** Setup code: DO NOT REMOVE
*** End of Setup code: DO NOT REMOVE
if This.__VFPSetup = 1
This.__VFPSetup = 2
endif
return llReturn
ENDPROC
PROCEDURE _aftercursorfillrefresh && Fired by the AfterCursorFill and AfterCursorRefresh events using BINDEVENT. This method is useful for placing code to create indexes on the cursor after the cursor is created by the CursorAdapter.
*!* This code is fired AFTER any code in the AfterCursorFill
*!* or the AfterCursorRefresh methods is executed. To run
*!* code in this method BEFORE executing code in those methods,
*!* remove the 5th parameter in the BINDEVENT commands in the
*!* INIT method of this class.
ENDPROC
PROCEDURE _buildselectcmd && Called by _ca_dmlcode and _ca_autoupdate methods to create the SQL for the SelectCmd property.
THIS.SelectCmd = THIS.cBaseSelectCmd ;
+ IIF(EMPTY(THIS.cSelectCmdFilter), [], [ WHERE ] + THIS.cSelectCmdFilter) ;
+ IIF(EMPTY(THIS.cSelectOrderBy), [], [ ORDER BY ] + THIS.cSelectOrderBy) ;
+ IIF(EMPTY(THIS.cSelectOtherClauses), [], [ ] + ALLTRIM(THIS.cSelectOtherClauses))
ENDPROC
PROCEDURE _ca_adosetup && Called by the Init to setup ADO objects
IF NOT PEMSTATUS(THIS, 'lADO_Done', 5)
THIS.AddProperty('lADO_Done')
ENDIF
IF THIS.DataSourceType <> [ADO] OR THIS.lADO_Done
RETURN
ENDIF
*!* You must have already established an ADO Connection Object.
*!* The assumption is that you establish this connection when
*!* the application is started and the object reference is being
*!* stored in either a public/private variable [this is OK] or an
*!* Application Object [goApp, better way]. Then set the value of
*!* the oADO_Conn property in this CA baseclass to the goApp
*!* property or variable.
LOCAL luOldValue
luOldValue = THIS.oADO_Conn
IF TYPE("THIS.oADO_Conn") = "C" AND NOT EMPTY(THIS.oADO_Conn)
THIS.oADO_Conn = EVALUATE(THIS.oADO_Conn)
ENDIF
IF TYPE("THIS.oADO_Conn") <> "O" AND TYPE("THIS.DataSourceType") = "O"
THIS.oADO_Conn = THIS.DataSourceType
ENDIF
IF TYPE("THIS.oADO_Conn.Provider") <> "C"
*!* Old Code that was failing: IF NOT PEMSTATUS(THIS.oADO_Conn, [Provider], 5)
*!* if the Provider property does not exist,
*!* the object is not an OLEDB provider.
THIS.oADO_Conn = luOldValue
RETURN .F.
ENDIF
THIS.oADO_RS = NEWOBJECT('ADODB.Recordset')
THIS.oADO_Command = NEWOBJECT('ADODB.Command')
IF TYPE("THIS.oADO_RS") <> "O" OR TYPE("THIS.oADO_Command") <> "O"
RETURN .f.
ENDIF
THIS.oADO_Command.ActiveConnection = THIS.oADO_Conn
WITH THIS.oADO_RS
.ActiveConnection = THIS.oADO_Conn
.CursorType = 1 && adOpenKeyset
.CursorLocation = 3 && adUseClient
.LockType = 3 && adLockOptimistic
ENDWITH
THIS.DataSource = THIS.oADO_RS
IF NOT THIS.lAutoGenerate
THIS.UpdateCmdDataSourceType = [ADO]
THIS.UpdateCmdDataSource = THIS.oADO_Command
THIS.DeleteCmdDataSourceType = [ADO]
THIS.DeleteCmdDataSource = THIS.oADO_Command
THIS.InsertCmdDataSourceType = [ADO]
THIS.InsertCmdDataSource = THIS.oADO_Command
ENDIF
THIS.lADO_Done = .t.
ENDPROC
PROCEDURE _ca_readme && Information on how to use this Class Library
*!* CursorAdapter Class Generator for Visual FoxPro 8
*!*
*!* Author: Mark E. McCasland
*!* M & J Software
*!* Hurst TX USA
*!* http://www.mctweedle.com
* * * * * * I N T R O D U C T I O N * * * * * *
*!* Please read these comments completely. There are GOTCHAS and
*!* WARNINGS below as well as directions for how to use the Class
*!* Libraries created by this builder.
*!*
*!* If you have any questions, suggestions, bug reports, please
*!* post a new message on the UT -- http://www.UniversalThread.com
*!* or the microsoft.public.fox.vfp.dbc News Group on the Microsoft
*!* VFP Public News Server.
* * * * * * A B O U T T H I S B U I L D E R * * * * * *
*!* This class is designed to connect to a DBC, Oracle or SQL Server,
*!* retrieve all tables in that database, and create a CursorAdapter
*!* subclass for each table. This class generates the code that is
*!* needed at runtime to populate the properties in each CA in order
*!* for VFP to auto-generate the Insert, Update, Delete SQL or to
*!* allow you to programmatically handle these functions. This code
*!* is then written into the AUTOOPEN, INIT and other methods of
*!* each CA subclass.
*!*
*!* The creation of a PRG-based Class Library is not available via
*!* this builder. You can use the View Class Code option in the Class
*!* Browser to get the complete code to create a PRG class.
*!*
*!* If you are using this builder against SQL Server or Oracle, ODBC
*!* will be used to connect to the database even if the VCX created
*!* by this builder is to use ADO.
*!*
*!* The first step done by the builder is the creation of a Class
*!* Library [VCX] with a CursorAdapter baseclass. Then, all the
*!* Table-specific CursorAdapters are created as sub-classes of the
*!* CA baseclass. This allows you to set "common" properties at the
*!* baseclass level like the DataSource [connection handle] and
*!* DataSourceType properties.
*!*
*!* Please keep in mind this is a design time UTILITY and is not
*!* intended to be "pretty" with respect to the UI. However, it does
*!* its intended job quite nicely.
* * * * * * W H A T ' S N E W * * * * * * * * * * * * * * * * *
*!* Version 2.07.00 [February 2004]
*!*
*!* Fixed a bug in Cr8_DMLCode where, if all fields are a combination
*!* of PK fields and/or excluded fields, an orphaned ENDTEXT would
*!* would be created which created a compile error.
*!*
*!* Enhanced the "error" reporting for "BadTables".
*!*
*!* Fixed problem with creating a separate VCX for each table.
*!*
*!* Version 2.06.00 [October 2003]
*!*
*!* Changed how the DeleteCmd property in each CA sub-class is
*!* populated by the Cr8_DMLCode method of this builder. It is no
*!* longer directly populated in each CA sub-class by the builder.
*!* It is now populated via code in the _ca_dmlcode method at runtime.
*!* This corrects a problem where writing that value directly to the
*!* property creats an error during the builder run if the length of
*!* the DeleteCmd syntax exceeds 254 characters,
*!*
*!* Changed a line of code in the Cr8_ADOCode method:
*!* From: IF NOT PEMSTATUS(THIS.oADO_Conn, [Provider], 5)
*!* To: IF TYPE("THIS.oADO_Conn.Provider") <> "C"
*!* because the PEMSTATUS function was incorrectly evaluating to FALSE
*!* the first time that ADO object property was hit. Thereafter, it
*!* would correctly evaluate to TRUE. Changing to the TYPE function
*!* corrects the problem with the first hit.
*!*
*!* Version 2.05.00 [August 2003]
*!*
*!* Added a new method, _BuildSelectCmd, that creates the SQL for
*!* the SelectCmd property based on the cBaseSelectCmd [new property],
*!* cSelectCmdFilter, cSelectOrderBy and cSelectOtherClauses properties.
*!*
*!* Added Assign methods for the cBaseSelectCmd, cSelectCmdFilter,
*!* cSelectOrderBy and cSelectOtherClauses properties that call the
*!* _BuildSelectCmd method when any of these property values changes.
*!*
*!* Version 2.04.00 [July 2003]
*!*
*!* Modified how the CursorSchema is created for Oracle tables with
*!* respect to how numeric columns are sized. VFP actually defines
*!* the width 2 digits wider that what is defined in the Oracle table.
*!* There are more comments on this in the Cr8_CursorSchema method.
*!*
*!* Added another configurable option to the builder form so you can
*!* remap Number columns of specific widths as Integers in the
*!* CursorSchema.
*!*
*!* The FetchSize property of the CA base class is now set to -1.
*!*
*!* Version 2.03.00 [June 2003]
*!*
*!* Added an option on the builder form to use DATE data types
*!* in the CursorSchema for any field/column that is a DATETIME
*!* data type in the source table.
*!*
*!* Added 2 public properties to the CA Base Class --
*!*
*!* cSelectOrderBy
*!* Optional ORDER BY clause to be added to the SelectCmd.
*!* Do NOT include the words ORDER BY in your list.
*!*
*!* cSelectOtherClauses
*!* Optional clause(s) to be added to the SelectCmd AFTER
*!* the ORDER BY clause (e.g., GROUP BY and HAVING). You
*!* will need to include those key phrases in your string.
*!*
*!* Added public method to the CA Base Class --
*!*
*!* _AfterCursorFillRefresh
*!* Fired by the AfterCursorFill and AfterCursorRefresh events
*!* using BINDEVENT. This method is useful for placing code
*!* to create indexes on the cursor after the cursor is
*!* created by the CursorAdapter.
* * * * * * P R O P E R T Y S H E E T G O T C H A * * * * * *
*!* There is a known issue with a limitation in the Property sheet
*!* which only allows the display of a maximum of 255 characters.
*!* This is particularly annoying for properties like CursorSchema
*!* because without information in the CursorSchema property, you
*!* can not drag fields from the cursor and drop them onto a form.
*!*
*!* What this builder will do to partially alleviate this problem
*!* problem is set the CursorSchema property to as many fields as
*!* possible without exceeding the limit. If this is an incomplete
*!* schema, the lSchemaTruncated property will be set to TRUE. At
*!* runtime, the entire schema will be programmatically inserted
*!* into the CursorSchema property when the _CA_INIT method fires.
* * * * * * O R A C L E G O T C H A * * * * * *
*!* If you have an Oracle table with a column that is defined
*!* as a NUMBER data type without specifying a width or has a
*!* specified width greater than 20, VFP could return an error
*!* when the CursorAdapter's CursorFill fires. This would be
*!* Error #9 -- Data Type Mismatch.
* * * * * * S Q L S E R V E R G O T C H A * * * * * *
*!* If using ADO, there is a problem using a
*!* parameterized query on an NCHAR data type. A SelectCmd like
*!*
*!* cCustomerID = [M%]
*!* select * from Customers where CustomerID like ?cCustomerID
*!*
*!* will return no records because in the Northwind database where
*!* this example was tested against, the CustomerID is a NCHAR(5)
*!* data type. When the SQL is passed to the server, the parameter
*!* value of 'M%' gets RPADded with spaces to make the parameter
*!* value a width to match the field width in the table. In other
*!* words the values is passed as 'M% '. This does not happen
*!* with NVARCHAR datatypes. The workaround is to create your SQL as:
*!*
*!* cCustomerID = [M%]
*!* select * from Customers where CustomerID like RTRIM(?cCustomerID)
* * * * * * W A R N I N G * * * * * *
*!* Do NOT run BEAUTIFY on this PRG file!
*!*
*!* Many of the methods use TEXT TO MemVar NOSHOW/ENDTEXT to create
*!* code snippets using the PRETEXT option to remove tabs and/or
*!* spaces at the beginning of each line of code. Beautify could
*!* convert these spaces to tabs and make the code written into the
*!* methods of the Classes to be structured oddly. This in no way
*!* affects the execution of the code. The effect is only cosmetic.
* * * * * * W A R N I N G * * * * * *
*!* Table names that include spaces are an EXTREMELY bad idea.
*!* If you run this builder against the sample Northwind database in
*!* MSDE, the "Order Details" table will NOT be processed because of
*!* the space in the name. Not only is this table name bad, it includes
*!* the key word "ORDER" which the SQL parser could confuse as part of
*!* a poorly formed ORDER BY clause. This same warning applies to the
*!* defining of column/field names. Thanks go to the Northwind database
*!* designers at Microsoft for giving us such a fine example of what not
*!* to do when coming up with table names. This probably came from
*!* someone who created the original database in <gasp!> MS Access. <bg>
*!* Thanks to the MS VFP Team for converting it to a VFP database
*!* without spaces in the table names.
* * * * * * F U T U R E P L A N S F O R T H I S B U I L D E R * * * * * *
*!* The next planned MAJOR enhancement is to add methods and properties
*!* that will handle the passing of values from the curor's fields to
*!* stored procedures in SQL Server and Oracle. The SPs that I am referring
*!* to are those that are explicitly designed to handle all SELECT, INSERT,
*!* UPDATE and DELETE SQL functions.
* * * * * * U S I N G T H E V C X C R E A T E D B Y T H I S B U I L D E R * * * * * *
*!* One of the purposes of this builder is to minimize the amount of
*!* work you need to do to design a CA for each table in your database.
*!* I do not know of any builder that will create something to handle
*!* every situation or requirement a developer may encounter.
*!*
*!* With that said...
*!*
*!* Once you have used this builder to create the class library of
*!* CursorAdapters, you should look at the code in the various methods
*!* of the CA baseclass AND subclasses to see what needs to be tweeked.
*!* Note the syntax of the *Cmd properties. You will be responsible for
*!* initializing any parameters used in the *Cmd properties.
*!*
*!* For convenience, I have included the PK fields in the InsertCmd and
*!* UpdateCmd properties if you are not going to use the Auto-Update
*!* feature of the CA. I use Insert triggers to automatically populate
*!* my PK fields for new records. I also do not update the PK in my
*!* Update SQL commands. So, I suggest you delete the PK fields from
*!* the InsertCmd and UpdateCmd properties and allow your database to
*!* handle PK generation or use the new Auto Increment feature on your
*!* NATIVE tables.
*!*
*!* You should now be ready to create a form and add any of the CAs
*!* to the DataEnvironment using the DE Builder that ships with VFP8.
*!* Do not add any tables to the DE. In the blank DE, right-click and
*!* select the Builder... option. Click on the second tab, "2. Cursors"
*!* and click the Add... button. Find the VCX you just created with this
*!* builder, then select the CA from the VCX you wish to add. Edit the
*!* Name and Alias properties in the builder if needed. Add other CAs
*!* as needed then close the builder.
*!*
*!* All that is left for you to do is either set the DataSource and
*!* DataSourceType properties. Since this will most likely be the same
*!* for all CAs, you can set these properties in the CA baseclass and
*!* all the CA subclasses will use these same settings. Cool, eh?
*!* If you are accessing NATIVE data, all you should have to do is
*!* SET DATABASE TO MYDBC in the BeforeOpenTables method of the DE as
*!* well as other SET commands like TALK and DELETED if you are using
*!* private datasessions [which you should be].
*!*
*!* There are 5 custom propertes added to the CA baseclass that can be
*!* set at the baseclass level or for each individual CA subclass. The
*!* lUseCursorSchema, lNoDataOnLoad and nFillOptions properties correspond
*!* to the first 3 parameters accepted by the CursorFill method.
*!*
*!* lUseCursorSchema
*!* Set to TRUE if you want the CursorFill method to
*!* use the structure in the CursorSchema property.
*!* The default is FALSE.
*!*
*!* lNoDataOnLoad
*!* Set to TRUE if you want the cursor to be created with NO DATA
*!* returned from the source table[s]. The default is FALSE.
*!*
*!* nFillOptions
*!* See VFP Help on CursorFill for discussion on the use of nOptions.
*!* The default is -1 but set to 0 in the CursorFill method if the
*!* DataSourceType is not ADO.
*!*
*!* lAutoGenerate
*!* The setting of this property determines how the *Cmd properties
*!* are populated when the CA is instanciated. If this property is
*!* TRUE, the value of the lCallStoredProcs is ignored, and the
*!* values of the *Cmd properties will be set by the code in the
*!* _CA_AutoUpdate method of each CA subclass. If this property is
*!* FALSE, the values of the *Cmd based on the value of the
*!* lCallStoredProcs property.
*!*
*!* lCallStoredProcs
*!* If this is TRUE, the values of the *Cmd properties will be
*!* set by the code in the _CA_SPCode method of each CA subclass.
*!* Otherwise, the *Cmd properties will be set by the code in the
*!* _CA_DMLCode method.
*!*
*!*
*!* Thanks and Good Luck,
*!*
*!* Mark E. McCasland
*!* M & J Software
*!* http://www.mctweedle.com
ENDPROC
ENDDEFINE

843
clase/_cb_base.vc2 Normal file
View File

@@ -0,0 +1,843 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_cb_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _cbautofill AS _combobox OF "_baza.vcx"
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: acstyle
*p: cpk && Numele campului cheie primara ( PK ) din cursorul atasat
*p: lastdisplayvalue
*p: lastsellength
*p: lastselstart
*p: npk && Valoarea campului cheie primara ( PK ) corespunzator valorii afisate
*</DefinedPropArrayMethod>
*<PropValue>
acstyle = 2
BorderStyle = 1
cpk =
FontCharSet = 238
Format = "!"
Height = 24
lastdisplayvalue =
lastsellength = 0
lastselstart = 0
Name = "_cbautofill"
npk = 0
RowSourceType = 2
SelectOnEntry = .T.
Style = 0
Width = 240
*</PropValue>
PROCEDURE InteractiveChange
*!* modificare adrese parteneri 12.2013
If This.Style = 0
*!* modificare adrese parteneri 12.2013 ^
Local lnStyle, lnLastKey, lcDisplayValue
lnLastKey=Lastkey()
lnStyle = This.Style
*!* modificare adrese parteneri 12.2013
*!* If This.Style = 2
*!* This.Style = 0
*!* Endif
*!* modificare adrese parteneri 12.2013 ^
If (lnLastKey>=32 And lnLastKey<=126)
If This.SelStart>=1
lcDisplayValue=Substr(This.DisplayValue,1,This.SelStart-1)+(Chr(lnLastKey))
Else
lcDisplayValue=(Chr(lnLastKey))+Allt(This.DisplayValue)
Endif
If Empty(lcDisplayValue)
lcDisplayValue=Allt(Chr(lnLastKey))
Endif
For i = 1 To This.ListCount
If Upper(lcDisplayValue)=Upper(Substr(This.List(i),1,Len(lcDisplayValue)))
This.DisplayValue=This.List(i)
If Len(Allt(This.DisplayValue))>Len(lcDisplayValue)
This.SelStart=Len(lcDisplayValue)
This.SelLength=Len(Allt(This.DisplayValue))-Len(lcDisplayValue)
Endif
This.lastdisplayvalue = This.DisplayValue
This.lastselstart = This.SelStart
This.lastsellength = This.SelLength
Return
Endif
Endfor
*&& Removed the next for line to allow for the DisplayValue to be added to the table.
*!* if this.acStyle = 2
*!* this.displayvalue = this.lastdisplayvalue
*!* this.selstart = this.lastselstart
*!* this.sellength = this.lastsellength
*!* endif
Endif
*!* modificare adrese parteneri 12.2013
Else
DoDefault()
Endif
*!* modificare adrese parteneri 12.2013 ^
ENDPROC
PROCEDURE Requery
This.Value = This.DisplayValue && Just to reset the display value
ENDPROC
PROCEDURE Valid
*!* 09.03.2014
*!* marius.mutu
*!* in caz ca sunt mai multe campuri delimitate prin virgula, iau primul camp
*!* modificare adrese parteneri 12.2013
Local cTableName,cFieldName,nAnswer,cValue,cPK
cTableName = Substr(This.RowSource,1,At('.',This.RowSource)-1)
If This.Style = 0
*!* modificare adrese parteneri 12.2013 ^
If !Empty(This.DisplayValue)
*Store substr(This.RowSource,1,at('.',This.RowSource)-1) To cTableName &&Won't work for VFP5.0
*Store substr(This.RowSource,at('.',This.RowSource)+1) To cFieldName && This is normally used for 3 character extension, but it works for any lenght. Won't work for VFP5.0
cFieldName = Substr(This.RowSource,At('.',This.RowSource)+1)
cFieldName = GETWORDNUM(m.cFieldName,1, ',') && in caz ca sunt mai multe campuri delimitate prin virgula, iau primul camp
Select (cTableName)
Locate For &cFieldName = This.DisplayValue
If !Found()
*nAnswer = Messagebox("Aceasta valoare nu exista in baza de date,"+Chr(13)+"Doriti sa o adaugati?",36,"")
*If nAnswer = 6
Insert Into &cTableName (&cFieldName) Values (This.DisplayValue)
If CursorGetProp("Buffering") > 1 && Check to see if we should use tableupdate
Tableupdate(1,.T.,cTableName)
Endif
This.Requery() && To reset the display value
*!* Else
*!* Store '' To This.DisplayValue
*!* Endif
Endif
Endif
*!* modificare adrese parteneri 12.2013
Else
DoDefault()
Endif
cPK = This.cpk
If !EMPTY(cPK)
Select (cTableName)
This.npk = &cPK
Endif
*!* modificare adrese parteneri 12.2013 ^
ENDPROC
ENDDEFINE
DEFINE CLASS _cbbase AS _combobox OF "_baza.vcx"
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "c:\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
FontCharSet = 238
Name = "_cbbase"
*</PropValue>
ENDDEFINE
DEFINE CLASS _cbsearch AS _combobox OF "_baza.vcx"
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: acstyle
*p: lastdisplayvalue
*p: lastsellenght
*p: lastselstart
*p: sellenght
*</DefinedPropArrayMethod>
*<PropValue>
acstyle = 2
lastdisplayvalue =
lastsellenght = 0
lastselstart = 0
Name = "_cbsearch"
sellenght = 0
Style = 0
_memberdata = <VFPData>
<memberdata name="lastselstart" display="lastSelStart"/>
<memberdata name="lastsellenght" display="lastSelLenght"/>
<memberdata name="lastdisplayvalue" display="lastDisplayValue"/>
<memberdata name="sellenght" display="selLenght"/>
</VFPData>
*</PropValue>
PROCEDURE InteractiveChange
Local lnStyle, lnLastKey, lcDisplayValue
lnLastKey=Lastkey()
lnStyle = This.Style
If This.Style = 2
This.Style = 0
Endi
If (lnLastKey>=32 And lnLastKey<=126)
If This.SelStart>=1
lcDisplayValue=Substr(This.DisplayValue,1,This.SelStart-1)+(Chr(lnLastKey))
Else
lcDisplayValue=(Chr(lnLastKey))+Allt(This.DisplayValue)
Endi
If Empty(lcDisplayValue)
lcDisplayValue=Allt(Chr(lnLastKey))
Endi
For i = 1 To This.ListCount
If Upper(lcDisplayValue) == Upper(Substr(This.List(i),1,Len(lcDisplayValue)))
This.DisplayValue=This.List(i)
This.SelStart=Len(lcDisplayValue)
nlLength=Len(Allt(This.DisplayValue))-Len(lcDisplayValue)
This.SelLength=Iif(nlLength <0,0,nlLength)
This.lastdisplayvalue = This.DisplayValue
This.lastselstart = This.SelStart
This.lastsellenght = This.sellenght
Return
Endi
Endfor
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS _cbsql AS _combobox OF "_baza.vcx"
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: findrow
*m: log
*m: resettext
*p: csearchstring
*p: isclick
*p: llimittolist
*p: pcursorname
*p: pfieldactiv
*p: prowsource
*p: secondfield
*p: secondsearchfield
*</DefinedPropArrayMethod>
*<PropValue>
csearchstring =
Height = 24
isclick = .F.
llimittolist = .T.
Name = "_cbsql"
pcursorname =
pfieldactiv =
prowsource =
secondfield =
secondsearchfield =
SelectOnEntry = .T.
Style = 0
Width = 97
_memberdata = <VFPData>
<memberdata name="resettext" display="ResetText"/>
<memberdata name="isclick" display="isClick"/>
<memberdata name="findrow" display="FindRow"/>
<memberdata name="pfieldactiv" display="pFieldActiv"/>
<memberdata name="secondfield" display="SecondField"/>
<memberdata name="csearchstring" display="cSearchString"/>
<memberdata name="prowsource" display="pRowSource"/>
<memberdata name="pcursorname" display="pCursorName"/>
<memberdata name="secondsearchfield" display="SecondSearchField"/>
<memberdata name="llimittolist" display="lLimitToList"/>
<memberdata name="selstart" display="SelStart"/>
</VFPData>
*</PropValue>
PROCEDURE Click
This.Log('Click')
this.isclick = .T.
this.sellength = MAX(LEN(RTRIM(NVL(this.displayvalue,''))) - this.selstart, 0)
this.csearchstring = LEFT(NVL(this.displayvalue,''), this.selstart)
This.Log('Click ^')
ENDPROC
PROCEDURE findrow
This.Log('FindRow')
LOCAL lcExact
lcExact = SET("Exact")
SET EXACT OFF
LOCATE FOR UPPER(EVALUATE(this.pfieldactiv)) = UPPER(this.csearchstring)
IF !FOUND()
IF !EMPTY(this.secondfield)
LOCATE FOR EVALUATE(this.secondfield) = UPPER(this.csearchstring) + " " OR EVALUATE(this.secondfield) = "RO" + UPPER(this.csearchstring) + " "
IF !FOUND()
LOCATE FOR EVALUATE(this.secondfield) = UPPER(this.csearchstring) OR EVALUATE(this.secondfield) = "RO" + UPPER(this.csearchstring)
ENDIF
SET EXACT &lcExact
IF FOUND()
RETURN 3
ELSE
RETURN 2
ENDIF
ELSE
SET EXACT &lcExact
RETURN 2
ENDIF
ELSE
SET EXACT &lcExact
RETURN 1
ENDIF
ENDPROC
PROCEDURE GotFocus
LOCAL lcDisplayValue
This.Log('GotFocus')
lcDisplayValue = NVL(this.displayvalue, '')
IF this.selectonentry AND !this.isClick AND INLIST(LASTKEY(), 13, 5, 24, 4, 19, 9) AND !ISNULL(this.displayvalue)
FOR iii = 1 TO LEN(ALLTRIM(this.displayvalue))
KEYBOARD '{SHIFT + rightarrow}'
ENDFOR
ENDIF
this.selstart = 0
this.sellength = LEN(RTRIM(m.lcDisplayValue))
this.csearchstring = ""
this.isclick = .F.
This.Log('GotFocus ^')
ENDPROC
PROCEDURE InteractiveChange
This.Log('InteractiveChange')
this.csearchstring = ""
This.Log('InteractiveChange ^')
ENDPROC
PROCEDURE KeyPress
LPARAMETERS nkeycode, nshiftaltctrl
LOCAL lnrecno, msearchstring, mselstart, lcDisplayValue
This.Log('KeyPress')
lcDisplayValue = NVL(this.DisplayValue, '')
SELECT (this.pcursorname)
IF (EMPTY(this.csearchstring) OR (m.lcDisplayValue <> this.csearchstring AND m.lcDisplayValue <> "RO" + this.csearchstring)) AND !EMPTY(m.lcDisplayValue)
this.resettext()
IF nkeycode = 13
this.findrow()
ENDIF
ENDIF
msearchstring = this.csearchstring
mselstart = 0
IF BITAND(4, nshiftaltctrl) == 4
RETURN
ENDIF
IF (nkeycode = 54 .AND. ;
nshiftaltctrl = 1) .OR. ;
(nshiftaltctrl = 2 .AND. ;
nkeycode = 97)
this.resettext()
ENDIF
IF this.rowsourcetype = 3 AND !INLIST(nkeycode, 5, 24, 13, 54, 160, 152)
IF !EMPTY(this.prowsource)
this.rowsource = ""
this.requery()
this.rowsource = this.prowsource
this.prowsource = ""
this.requery()
this.refresh()
this.csearchstring = ""
ELSE
IF nkeycode = 10
IF !EMPTY(this.secondsearchfield)
mfieldactiv = this.secondsearchfield
ELSE
mfieldactiv = this.pfieldactiv
ENDIF
mQuery="SELECT * FROM (This.pCursorName) WHERE ALLTRIM(This.DisplayValue)$ UPPER(&mFieldActiv) INTO CURSOR (This.pCursorName)"
IF this.rowsource <> mquery
NODEFAULT
this.prowsource = this.rowsource
this.rowsource = mquery
this.requery()
this.resettext()
KEYBOARD '{ALT + DNARROW}'
RETURN
ENDIF
ENDIF
ENDIF
ENDIF
IF INLIST(nkeycode, 6) OR (INLIST(nkeycode, 52, 54) AND BITAND(1, nshiftaltctrl) == 1) .OR. (INLIST(2, 26) .AND. BITAND(2, nshiftaltctrl) == 2)
RETURN
ENDIF
SELECT (this.pcursorname)
lnrecno = RECNO()
DO CASE
CASE nkeycode = 4
this.csearchstring = LEFT(this.csearchstring, this.selstart) + SUBSTR(m.lcDisplayValue, this.selstart + 1, 1)
mselstart = this.selstart + 1
CASE nkeycode = 19
this.csearchstring = LEFT(this.csearchstring, this.selstart - 1)
mselstart = this.selstart - 1
this.sellength = MAX(LEN(RTRIM(m.lcDisplayValue)) - mselstart, 0)
IF mselstart < 0
RETURN
ENDIF
CASE nkeycode = 7
IF this.selstart = 0
this.csearchstring = ""
this.displayvalue = ""
ELSE
this.csearchstring = LEFT(this.csearchstring, this.selstart) + RIGHT(this.csearchstring, LEN(this.csearchstring) - this.selstart - 1)
this.displayvalue = this.csearchstring
ENDIF
mselstart = LEN(this.csearchstring)
CASE nkeycode = 127
IF this.selstart = 0
this.csearchstring = ""
this.displayvalue = ""
ELSE
this.csearchstring = LEFT(this.csearchstring, this.selstart - 1) + RIGHT(this.csearchstring, LEN(this.csearchstring) - this.selstart)
this.displayvalue = this.csearchstring
mselstart = LEN(this.csearchstring)
ENDIF
CASE nkeycode = 24
IF .NOT. EOF()
SKIP
ENDIF
IF EOF()
GOTO BOTTOM
ENDIF
CASE nkeycode = 5
IF .NOT. BOF()
SKIP -1
ENDIF
IF BOF()
GOTO TOP
ENDIF
CASE BETWEEN(nkeycode, 32, 126) OR BETWEEN(nkeycode, 97, 122) OR BETWEEN(nkeycode, 48, 57)
IF this.selstart = 0 AND this.sellength > 1
this.csearchstring = UPPER(CHR(nkeycode))
ELSE
this.csearchstring = LEFT(this.csearchstring, this.selstart) + UPPER(CHR(nkeycode)) + RIGHT(this.csearchstring, LEN(this.csearchstring) - this.selstart)
ENDIF
mselstart = this.selstart + 1
OTHERWISE
RETURN
ENDCASE
NODEFAULT
msemafor = 0
IF nkeycode <> 4 AND nkeycode <> 19 AND nkeycode <> 5 AND nkeycode <> 24 AND !EMPTY(this.csearchstring)
msemafor = this.findrow()
ENDIF
IF nkeycode <> 7 AND nkeycode <> 127 AND nkeycode <> 4 AND nkeycode <> 19
IF (EMPTY(this.csearchstring) OR msemafor = 2) AND nkeycode <> 5 AND nkeycode <> 24
IF lnrecno > RECCOUNT()
GOTO TOP
ELSE
GOTO lnrecno
ENDIF
IF !this.lLimitToList
this.displayvalue = this.csearchstring
ELSE
this.csearchstring = msearchstring
ENDIF
ELSE
IF msemafor = 1 OR nkeycode = 5 OR nkeycode = 24
this.displayvalue = EVALUATE(this.pfieldactiv)
IF nkeycode = 5 OR nkeycode = 24
this.resettext()
RETURN
ENDIF
ENDIF
IF msemafor = 3
this.displayvalue = EVALUATE(this.secondfield)
ENDIF
ENDIF
ENDIF
this.selstart = MAX(mselstart, 0)
IF TXTWIDTH(RTRIM(NVL(this.DisplayValue,'')), this.fontname, this.fontsize) * FONTMETRIC(6, this.fontname, this.fontsize) < this.width - 15
this.sellength = MAX(LEN(RTRIM(NVL(this.DisplayValue,''))) - LEN(RTRIM(this.csearchstring)), 0)
ELSE
this.sellength = 0
ENDIF
This.Log('KeyPress ^')
ENDPROC
PROCEDURE log
LPARAMETERS tcEvent
lcText = TRANSFORM(tcEvent) + ' ' + ttoc(DATETIME()) + ' selstart ' + TRANSFORM(this.SelStart) + CHR(13)
STRTOFILE(m.lcText, "e:\selstart.txt", .T.)
ENDPROC
PROCEDURE LostFocus
IF .NOT. EMPTY(this.prowsource)
SELECT (this.pcursorname)
mcamp = ALLTRIM(this.pcursorname) + ;
"." + ;
this.pfieldactiv
mCurrentValue=&mCamp
mthisvalue = this.value
this.rowsource = this.prowsource
this.prowsource = ""
this.requery()
SELECT (this.pcursorname)
LOCATE FOR &mCamp=mCurrentValue
this.value = mthisvalue
ENDIF
IF .NOT. EMPTY(this.secondfield)
SELECT (this.pcursorname)
IF this.displayvalue = ;
EVALUATE(this.secondfield) ;
.OR. "RO" + ;
this.displayvalue = ;
EVALUATE(this.secondfield)
this.displayvalue = EVALUATE(this.pfieldactiv)
ENDIF
ENDIF
this.csearchstring = ""
this.selstart = 0
ENDPROC
PROCEDURE MouseMove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.isclick = .T.
ENDPROC
PROCEDURE resettext
This.Log('ResetText')
this.csearchstring = ALLTRIM(NVL(this.displayvalue,''))
this.selstart = 0
this.sellength = LEN(RTRIM(NVL(this.displayvalue,'')))
This.Log('ResetText ^')
ENDPROC
ENDDEFINE
DEFINE CLASS combosql AS combobox
*< CLASSDATA: Baseclass="combobox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: getdata && Retrieves data from the OLE drag and drop DataObject object.
*m: refreshdata
*m: selectdata
*p: csearchstring
*p: csourceorder && Ordinea pentru SourceSql
*p: csourcesql && Select SQL fara where si order
*p: csourcewhere && Conditia Where pentru cSourceSql
*p: isclick
*p: llimittolist
*p: ncharcountbegin && Dupa cate caractere incepe cautarea pe server. Implicit 0
*p: pcursorname && Numele cursorului
*p: pfieldactiv && Campul dupa care se face cautarea
*p: prowsource && Camp intern
*p: psecondfield && Al doilea camp de cautare (optional)
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackColor = 252,252,225
BorderStyle = 0
csearchstring =
csourceorder =
csourcesql =
csourcewhere =
Format = "K"
Height = 24
isclick = .F.
llimittolist = .F.
Name = "combosql"
ncharcountbegin = 0
pcursorname =
pfieldactiv =
prowsource =
psecondfield =
RowSourceType = 3
SpecialEffect = 1
Width = 100
_memberdata = <VFPData>
<memberdata name="pfieldactiv" display="pFieldActiv"/>
<memberdata name="pcursorname" display="pCursorName"/>
<memberdata name="llimittolist" display="lLimitToList"/>
<memberdata name="prowsource" display="pRowSource"/>
<memberdata name="csearchstring" display="cSearchString"/>
<memberdata name="isclick" display="isClick"/>
<memberdata name="csourcesql" display="cSourceSql"/>
<memberdata name="csourcewhere" display="cSourceWhere"/>
<memberdata name="csourceorder" display="cSourceOrder"/>
<memberdata name="refreshdata" display="RefreshData"/>
<memberdata name="getdata" display="GetData"/>
<memberdata name="selectdata" display="SelectData"/>
<memberdata name="psecondfield" display="pSecondField"/>
<memberdata name="ncharcountbegin" display="nCharCountBegin"/>
</VFPData>
*</PropValue>
PROCEDURE Click
This.isclick = .T.
This.SelLength = Max(Len(Rtrim(This.DisplayValue)) - this.SelStart, 0)
This.csearchstring = Left(This.DisplayValue, This.SelStart)
ENDPROC
PROCEDURE getdata && Retrieves data from the OLE drag and drop DataObject object.
ENDPROC
PROCEDURE Init
Local lcCursor, lcCursorS, lcSourceSql, lcSql, lcSqlRowSource, llSucces
lcSourceSql = This.cSourceSql
lcCursor = This.pCursorName
lcCursorS= 's' + m.lcCursor
lcSql = m.lcSourceSql + " where 1=2"
lcSqlRowSource = "select * from " + m.lcCursorS + " into cursor " + m.lcCursor
llSucces = This.RefreshData(0)
If m.llSucces
Select (m.lcCursorS)
Append Blank
TABLEUPDATE()
Endif
This.RowSource = m.lcSqlRowSource
ENDPROC
PROCEDURE InteractiveChange
This.csearchstring = ""
ENDPROC
PROCEDURE KeyPress
Lparameters nkeycode, nshiftaltctrl
Local lnrecno, lcSearchString, m.lnSelStart, llQueried
llQueried = .F.
lcSearchString = This.csearchstring
lnSelStart = 0
*!* IF nkeycode = 24
*!* SET STEP ON
*!* ENDIF
If Bitand(4, nshiftaltctrl) == 4
Return
Endif
If nkeycode = 54 .And. nshiftaltctrl = 1
This.SelStart = 0
This.SelLength = Len(Rtrim(This.DisplayValue))
This.csearchstring = ""
ENDIF
*** CAUTARE "CONTINE" DACA SE APASA CTRL+ENTER
If This.RowSourceType = 3 .And. .Not. Inlist(nkeycode, 5, 24, 13, 54) && FARA SAGETI
*!* If .Not. Empty(This.prowsource)
*!* This.RowSource = This.prowsource
*!* This.prowsource = ""
*!* This.Requery()
*!* Endif
If nkeycode = 10 && CTRL+ENTER => SELECTIA CONTINE CUVANTUL CHEIE IN LOC DE INCEPE CU
Nodefault
This.prowsource = This.RowSource
this.RowSource = ""
This.RefreshData(2) && cautare contine
llQueried = .T.
this.RowSource = This.prowsource
This.prowsource = ""
This.csearchstring = ""
Keyboard '{ALT + DNARROW}'
Return
Endif
Endif
If Inlist(nkeycode, 6) .Or. (Inlist(nkeycode, 52, 54) .And. Bitand(1, nshiftaltctrl) == 1) .Or. (Inlist(2, 26) .And. Bitand(2, nshiftaltctrl) == 2)
Return
Endif
Select (This.pcursorname)
lnrecno = Recno()
*** TRATARE SAGETI, DEL, BACKSPACE
Do Case
Case nkeycode = 4 && RIGHT ARROW
This.csearchstring = Left(This.csearchstring, This.SelStart) + Substr(This.DisplayValue, This.SelStart + 1, 1)
m.lnSelStart = This.SelStart + 1
Case nkeycode = 19 && LEFT ARROW
This.csearchstring = Left(This.csearchstring, This.SelStart - 1)
m.lnSelStart = This.SelStart - 1
This.SelLength = Max(Len(Rtrim(This.DisplayValue)) - m.lnSelStart, 0)
If m.lnSelStart < 0
Return
Endif
Case nkeycode = 7 && DEL
If This.SelStart = 0
This.csearchstring = ""
This.DisplayValue = ""
Else
This.csearchstring = Left(This.csearchstring, This.SelStart) + Right(This.csearchstring, Len(This.csearchstring) - This.SelStart - 1)
This.DisplayValue = This.csearchstring
Endif
m.lnSelStart = Len(This.csearchstring)
Case nkeycode = 127 && BACKSPACE
If This.SelStart = 0
This.csearchstring = ""
This.DisplayValue = ""
Else
This.csearchstring = Left(This.csearchstring, This.SelStart - 1) + Right(This.csearchstring, Len(This.csearchstring) - This.SelStart)
This.DisplayValue = This.csearchstring
m.lnSelStart = Len(This.csearchstring)
Endif
Case nkeycode = 24 && DOWN ARROW
If .Not. Eof()
Skip
Endif
If Eof()
Goto Bottom
Endif
Case nkeycode = 5 && UP ARROW
If .Not. Bof()
Skip -1
Endif
If Bof()
Goto Top
Endif
Case Between(nkeycode, 32, 126) .Or. Between(nkeycode, 97, 122) .Or. Between(nkeycode, 48, 57)
If This.SelStart = 0 .And. This.SelLength > 1
This.csearchstring = Upper(Chr(nkeycode))
Else
This.csearchstring = Left(This.csearchstring, This.SelStart) + Upper(Chr(nkeycode)) + Right(This.csearchstring, Len(This.csearchstring) - This.SelStart)
Endif
m.lnSelStart = This.SelStart + 1
Otherwise
Return
Endcase
NODEFAULT
*** CAUTARE "INCEPE CU"
msemafor = 0
If nkeycode <> 4 .And. nkeycode <> 19 .And. nkeycode <> 5 .And. nkeycode <> 24 .And. .Not. Empty(This.csearchstring)
* Execut cautarea INCEPE CU pe serverul baza de date, daca nu cumva am facut cautarea deja CONTINE la CTRL+ENTER This.Requery(2)
IF !m.llQueried && AND m.lcSearchString <> this.cSearchString
This.prowsource = This.RowSource
this.RowSource = ""
This.RefreshData(1) && cautare incepe cu...
this.RowSource = this.pRowSource
This.prowsource = ""
ENDIF
* Verific daca textul cautat este in inregistrarile selectate (daca am rezultate in cursor)
SELECT (this.pCursorName)
Locate For Upper(Evaluate(This.pfieldactiv)) = Upper(This.csearchstring)
If .Not. Found()
If .Not. Empty(This.pSecondField)
Locate For Evaluate(This.pSecondField) = Upper(This.csearchstring) + " " .Or. Evaluate(This.pSecondField) = "RO" + Upper(This.csearchstring) + " "
If .Not. Found()
Locate For Evaluate(This.pSecondField) = Upper(This.csearchstring) .Or. Evaluate(This.pSecondField) = "RO" + Upper(This.csearchstring)
Endif
If Found()
msemafor = 3
Else
msemafor = 2
Endif
Else
msemafor = 2
Endif
Else
msemafor = 1
Endif
ENDIF
SELECT (this.pCursorName)
If nkeycode <> 7 .And. nkeycode <> 127 .And. nkeycode <> 4 .And. nkeycode <> 19
If (Empty(This.csearchstring) .Or. msemafor = 2) .And. nkeycode <> 5 .And. nkeycode <> 24
If lnrecno > Reccount()
Goto Top
Else
Goto lnrecno
Endif
If .Not. This.llimittolist
This.DisplayValue = This.csearchstring
Else
This.csearchstring = m.lcSearchString
Endif
Else
If msemafor = 1 .Or. nkeycode = 5 .Or. nkeycode = 24
This.DisplayValue = Evaluate(This.pfieldactiv)
Endif
If msemafor = 3
This.DisplayValue = Evaluate(This.pSecondField)
Endif
Endif
Endif
This.SelStart = Max(m.lnSelStart, 0)
If Txtwidth(Rtrim(This.DisplayValue), This.FontName, This.FontSize) * Fontmetric(6, This.FontName, This.FontSize) < This.Width - 15
This.SelLength = Max(Len(Rtrim(This.DisplayValue)) - Len(Rtrim(This.csearchstring)), 0)
Else
This.SelLength = 0
Endif
ENDPROC
PROCEDURE LostFocus
*!* If .Not. Empty(This.prowsource)
*!* This.RowSource = This.prowsource
*!* This.prowsource = ""
*!* This.Requery()
*!* Endif
If .Not. Empty(This.pSecondField)
Select (This.pcursorname)
If This.DisplayValue = EVALUATE(This.pSecondField) .Or. "RO" + this.DisplayValue = EVALUATE(This.pSecondField)
This.DisplayValue = Evaluate(This.pfieldactiv)
Endif
Endif
This.csearchstring = ""
This.SelStart = 0
ENDPROC
PROCEDURE refreshdata
Lparameters tnTip
Local lnTip, lcSourceOrder, lcSourceSql, lcSourceWhere, lcSql, lnHandle, llSucces, lcCursor
Private pcValue
pcValue = ''
lnTip = Iif(Type('tnTip') = 'N', m.tnTip, 0)
If m.lnTip <> 0 AND Len(Alltrim(This.cSearchString)) <= This.nCharCountBegin
Return
Endif
lcSourceSql = This.cSourceSql
lcWhereFirst = This.pFieldActiv + " like ?pcValue"
lcWhereSecond = Iif(!Empty(This.pSecondField), This.pSecondField + " like ?pcValue", "")
lcSourceWhere = [ where ] + Iif(!Empty(This.cSourceWhere), [(] + This.cSourceWhere + [)], []) + [ and (] + m.lcWhereFirst + Iif(!Empty(m.lcWhereSecond), [ or ] + m.lcWhereSecond, []) + [)]
lcSourceOrder = " order by " + Iif(!Empty(This.cSourceOrder), This.cSourceOrder, This.pFieldActiv)
Do Case
Case m.lnTip = 0 && INIT
lcSourceWhere = [ where 1=2]
lcSourceOrder = ""
Case m.lnTip = 1 && CAUTARE INCEPE CU
pcValue = This.cSearchString + '%'
Case m.lnTip = 2 && CAUTARE CONTINE
pcValue = '%' + This.cSearchString + '%'
ENDCASE
lcCursor = 's' + This.pCursorName
lcSql = m.lcSourceSql + m.lcSourceWhere + m.lcSourceOrder
WAIT WINDOW 'RefreshData ' + m.lcSql NOWAIT
llSucces = This.SelectData(m.lcSql, m.lcCursor)
Return m.llSucces
ENDPROC
PROCEDURE selectdata
Lparameters tcSql, tcCursor
Local llSucces
WAIT WINDOW 'Sql: ' + m.tcSql + ' cursor: ' + m.tcCursor + IIF(TYPE('pcValue') = 'C', ' pcValue: ' + m.pcValue, '') NOWAIT
llSucces = goExecutor.oExecuta(m.tcSql, m.tcCursor)
Return m.llSucces
ENDPROC
ENDDEFINE

177
clase/_cmd_base.vc2 Normal file
View File

@@ -0,0 +1,177 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_cmd_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _cmdbase AS _commandbutton OF "_baza.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "_butoanebase"
*</PropValue>
ENDDEFINE
DEFINE CLASS buton AS _cmdbase OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: caction
*p: clistaparametri && Nu se pun ghilimele la inceputul si la sfarsitul listei pentru ca sunt tratate cazurile in care clistaparametri are tipurile N, C sau L.
*p: cpicturedown
*p: cpictureup
*p: lvizibil && .F. daca butonul nu este vizibil , .T. daca butonul este vizibil (in functie de drepturi). Proprietatea ptr. butoanele care au visible=.F. default.
*</DefinedPropArrayMethod>
*<PropValue>
BackColor = 255,255,255
caction =
Caption = ""
clistaparametri =
cpicturedown =
cpictureup =
Height = 27
lvizibil = .T.
Name = "buton"
SpecialEffect = 1
Width = 30
*</PropValue>
PROCEDURE Click
Local lcAction, lcCommand, lcListaParametri
lcAction = This.cAction
If !Empty(This.clistaparametri)
Do Case
Case Type('This.clistaparametri')='N'
lcListaParametri = Alltrim(Str(This.clistaparametri))
Case Type('This.clistaparametri')='L'
lcListaParametri = Iif(This.clistaparametri,[.T.],[.F.])
*!* case Type('This.clistaparametri')='D'
*!* lcListaParametri = DTOC(This.clistaparametri)
*!* case Type('This.clistaparametri')='T'
*!* lcListaParametri = TTOC(This.clistaparametri)
Case Type('This.clistaparametri')='C'
lcListaParametri = Alltrim(This.clistaparametri)
Otherwise
lcListaParametri = []
Endcase
lcListaParametri = [(] + lcListaParametri + [)]
Else
lcListaParametri = [()]
Endif
If Empty(lcAction)
Return
Endif
If Type('this.parent') = 'O' And Pemstatus(This.Parent,lcAction,5)
lcCommand = [this.Parent.] + lcAction + lcListaParametri
&lcCommand
Else
If Type('this.parent.PARENT') = 'O' And Pemstatus(This.Parent.Parent,lcAction,5)
lcCommand = [this.Parent.Parent.] + lcAction + lcListaParametri
&lcCommand
Else
If Pemstatus(Thisform,lcAction,5)
lcCommand = [thisform.] + lcAction + lcListaParametri
&lcCommand
Endif
Endif
Endif
ENDPROC
PROCEDURE Init
this.Picture = this.cPictureup
ENDPROC
PROCEDURE MouseEnter
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.Picture = this.cPictureDown
ENDPROC
PROCEDURE MouseLeave
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.Picture = this.cPictureUp
ENDPROC
ENDDEFINE
DEFINE CLASS cmd_buton AS _cmdbase OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: caction
*p: clistaparametri && Nu se pun ghilimele la inceputul si la sfarsitul listei pentru ca sunt tratate cazurile in care clistaparametri are tipurile N, C sau L.
*p: cpicturedown
*p: cpictureup
*</DefinedPropArrayMethod>
*<PropValue>
caction =
Caption = ""
clistaparametri =
cpicturedown =
cpictureup =
Name = "cmd_buton"
*</PropValue>
PROCEDURE Click
Local lcAction, lcCommand, lcListaParametri
lcAction = This.cAction
If !Empty(This.clistaparametri)
Do Case
Case Type('This.clistaparametri')='N'
lcListaParametri = Alltrim(Str(This.clistaparametri))
Case Type('This.clistaparametri')='L'
lcListaParametri = Iif(This.clistaparametri,[.T.],[.F.])
*!* case Type('This.clistaparametri')='D'
*!* lcListaParametri = DTOC(This.clistaparametri)
*!* case Type('This.clistaparametri')='T'
*!* lcListaParametri = TTOC(This.clistaparametri)
Case Type('This.clistaparametri')='C'
lcListaParametri = Alltrim(This.clistaparametri)
Otherwise
lcListaParametri = []
Endcase
lcListaParametri = [(] + lcListaParametri + [)]
Else
lcListaParametri = [()]
Endif
If Empty(lcAction)
Return
Endif
If Type('this.parent') = 'O' And Pemstatus(This.Parent,lcAction,5)
lcCommand = [this.Parent.] + lcAction + lcListaParametri
&lcCommand
Else
If Type('this.parent.PARENT') = 'O' And Pemstatus(This.Parent.Parent,lcAction,5)
lcCommand = [this.Parent.Parent.] + lcAction + lcListaParametri
&lcCommand
Else
If Pemstatus(Thisform,lcAction,5)
lcCommand = [thisform.] + lcAction + lcListaParametri
&lcCommand
Endif
Endif
Endif
ENDPROC
PROCEDURE Init
this.Picture = this.cPictureup
ENDPROC
PROCEDURE MouseEnter
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.Picture = this.cPictureDown
ENDPROC
PROCEDURE MouseLeave
LPARAMETERS nButton, nShift, nXCoord, nYCoord
this.Picture = this.cPictureUp
ENDPROC
ENDDEFINE

2453
clase/_crypt.vc2 Normal file

File diff suppressed because it is too large Load Diff

399
clase/_ct_base.vc2 Normal file
View File

@@ -0,0 +1,399 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_ct_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _ct_controller_keypress AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: do_bind
*m: do_keypressed
*m: do_unbind
*p: oobiect
*</DefinedPropArrayMethod>
*<PropValue>
Height = 19
Name = "_ct_controller_keypress"
oobiect =
Width = 23
*</PropValue>
PROCEDURE do_bind
Local loObiect
llBound = .F.
loObiect = This.Parent
Do While !llBound
loObiect = loObiect.Parent
If Pemstatus(loObiect,"KeyPress",5)
Bindevent(loObiect,"KeyPress",This,"do_keypressed",2)
This.oobiect = loObiect
llBound = .T.
Endif
Enddo
*!* If Pemstatus(This.Parent.Parent,"KeyPress",5)
*!* Bindevent(This.Parent.Parent,"KeyPress",This,"do_keypressed",2)
*!* This.oobiect=This.Parent.Parent
*!* Else
*!* If Pemstatus(This.Parent.Parent.Parent,"KeyPress",5)
*!* Bindevent(This.Parent.Parent.Parent,"KeyPress",This,"do_keypressed",2)
*!* This.oobiect=This.Parent.Parent.Parent
*!* Else
*!* If Pemstatus(This.Parent.Parent.Parent.Parent,"KeyPress",5)
*!* Bindevent(This.Parent.Parent.Parent.Parent,"KeyPress",This,"do_keypressed",2)
*!* This.oobiect=This.Parent.Parent.Parent.Parent
*!* Else
*!* If Pemstatus(This.Parent.Parent.Parent.Parent.Parent,"KeyPress",5)
*!* Bindevent(This.Parent.Parent.Parent.Parent.Parent,"KeyPress",This,"do_keypressed",2)
*!* This.oobiect=This.Parent.Parent.Parent.Parent.Parent
*!* Endif
*!* Endif
*!* Endif
*!* Endif
ENDPROC
PROCEDURE do_keypressed
Lparameters nKeyCode, nShiftAltCtrl
Do Case
Case nKeyCode=14 And nShiftAltCtrl=2
If Pemstatus(This.Parent,"do_adauga",5)
This.Parent.do_adauga()
Endif
Case nKeyCode=13 And nShiftAltCtrl=2
If Pemstatus(This.Parent,"inainte_de_do_modifica",5)
This.Parent.inainte_de_do_modifica()
Endif
Case nKeyCode=4 And nShiftAltCtrl=2
If Pemstatus(This.Parent,"inainte_de_do_sterge",5)
This.Parent.inainte_de_do_sterge()
Endif
Case nKeyCode=16 And nShiftAltCtrl=2
Nodefault
If Pemstatus(This.Parent,"inainte_de_do_listare",5)
This.Parent.inainte_de_do_listare()
Endif
Case nKeyCode=3 And nShiftAltCtrl=2
If Pemstatus(This.Parent,"do_cauta",5)
This.Parent.do_copiaza()
Endif
Otherwise
This.oObiect.KeyPress(nKeyCode,nShiftAltCtrl)
Endcase
ENDPROC
PROCEDURE do_unbind
Unbindevents(This)
*!* Unbindevents(This.oobiect,"KeyPress",This,"do_keypressed")
ENDPROC
ENDDEFINE
DEFINE CLASS _ctfrmbase AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Gridsort1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_ct_controller_keypress1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_cursoare
*m: actualizeaza_drepturi
*m: actualizeaza_grid1
*m: actualizeaza_grid2
*m: creeaza_cursoare
*m: do_activeaza_container
*m: do_adauga
*m: do_cauta
*m: do_copiaza
*m: do_dezactiveaza_container
*m: do_excel
*m: do_executa
*m: do_listare
*m: do_modifica
*m: do_precedent
*m: do_reface
*m: do_reset
*m: do_selectall
*m: do_sterge
*m: do_urmator
*m: grid_sort
*m: grid_sort_bind
*m: inainte_de_do_excel
*m: inainte_de_do_listare
*m: inainte_de_do_modifica
*m: inainte_de_do_reface
*m: inainte_de_do_sterge
*p: cbuton1
*p: cbuton2
*p: cbuton3
*p: cbuton4
*p: cbuton5
*p: cbuton6
*p: cbuton7
*p: cgridsortlist
*p: cschema && Numele schemei pentru care au fost create cursoarele
*p: ctraducere && Traducerea filtrului de cautare.
*p: filtru_pretty
*p: filtru_pretty_ro
*p: filtru_pretty_ro_full
*p: lactiv1
*p: lactiv2
*p: lactiv3
*p: lactiv4
*p: lactiv5
*p: lactiv6
*p: lactiv7
*p: lshowrezultate && Afiseaza 'Nu exista rezultate' la do_cauta()
*p: nselectate
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BorderWidth = 0
cbuton1 = but_excel1
cbuton2 = but_listare1
cbuton3 = but_modifica1
cbuton4 = but_sterge1;but_reface1
cbuton5 =
cbuton6 =
cbuton7 =
cgridsortlist =
cschema =
ctraducere =
filtru_pretty = .F.
filtru_pretty_ro = .F.
filtru_pretty_ro_full = .F.
Height = 200
lactiv1 = .F.
lactiv2 = .F.
lactiv3 = .F.
lactiv4 = .F.
lactiv5 = .F.
lactiv6 = .F.
lactiv7 = .F.
lshowrezultate = .T.
Name = "_ctfrmbase"
nselectate = 0
Width = 200
_memberdata = <VFPData>
<memberdata name="actualizeaza_drepturi" type="Method" favorites="True"/>
<memberdata name="actualizeaza_grid1" type="Method" favorites="True"/>
<memberdata name="actualizeaza_grid2" type="Method" favorites="True"/>
<memberdata name="cbuton1" type="Property" favorites="True"/>
<memberdata name="cbuton2" type="Property" favorites="True"/>
<memberdata name="cbuton3" type="Property" favorites="True"/>
<memberdata name="cbuton4" type="Property" favorites="True"/>
<memberdata name="cbuton5" type="Property" favorites="True"/>
<memberdata name="cbuton6" type="Property" favorites="True"/>
<memberdata name="cbuton7" type="Property" favorites="True"/>
<memberdata name="do_adauga" type="Method" favorites="True"/>
<memberdata name="do_cauta" type="Method" favorites="True"/>
<memberdata name="do_excel" type="Method" favorites="True"/>
<memberdata name="do_executa" type="Method" favorites="True"/>
<memberdata name="do_listare" type="Method" favorites="True"/>
<memberdata name="do_modifica" type="Method" favorites="True"/>
<memberdata name="do_reface" type="Method" favorites="True"/>
<memberdata name="do_reset" type="Method" favorites="True"/>
<memberdata name="do_sterge" type="Method" favorites="True"/>
<memberdata name="grid_sort" type="Method" favorites="True"/>
<memberdata name="grid_sort_bind" type="Method" favorites="True"/>
<memberdata name="lactiv1" type="Property" favorites="True"/>
<memberdata name="lactiv2" type="Property" favorites="True"/>
<memberdata name="lactiv3" type="Property" favorites="True"/>
<memberdata name="lactiv4" type="Property" favorites="True"/>
<memberdata name="lactiv5" type="Property" favorites="True"/>
<memberdata name="lactiv6" type="Property" favorites="True"/>
<memberdata name="lactiv7" type="Property" favorites="True"/>
<memberdata name="cgridsortlist" type="Property" favorites="True"/>
<memberdata name="nselectate" type="Property" favorites="True"/>
<memberdata name="do_selectall" type="Method" favorites="True"/>
<memberdata name="creeaza_cursoare" type="Method" favorites="True"/>
<memberdata name="lshowrezultate" display="lShowRezultate"/>
</VFPData>
*</PropValue>
ADD OBJECT '_ct_controller_keypress1' AS _ct_controller_keypress WITH ;
Left = 134, ;
Name = "_ct_controller_keypress1", ;
Top = 126
*< END OBJECT: ClassLib="_ct_base.vcx" BaseClass="custom" />
ADD OBJECT 'Gridsort1' AS gridsort WITH ;
Left = 24, ;
Name = "Gridsort1", ;
Top = 3
*< END OBJECT: ClassLib="gridsort.vcx" BaseClass="custom" />
PROCEDURE actualizeaza_cursoare
ENDPROC
PROCEDURE actualizeaza_drepturi
If !Empty(gcAcces)
&& format gcAcces = [optiune1];[optiune2];...;[optiuneN]; &&
Local lcAcces,lnPozitieS,lnPozitieF,N
lnPozitieS=1
For i=1 To Occurs([;],gcAcces)
lnPozitieF=At([;],gcAcces,i)
lcAcces=Substr(gcAcces,lnPozitieS,lnPozitieF-lnPozitieS)
lcProp='this.lactiv'+Alltrim(lcAcces)
If Type(lcProp)<>'U'
&lcProp=.T.
lcProp='this.cbuton'+Alltrim(lcAcces)
If Type(lcProp)<>'U' And !Empty(&lcProp)
&& format lcButoane = [nume_buton1];[nume_buton2];...;[nume_butonN]; &&
lcButoane=&lcProp
lnPS=1
lcButoane=Iif(Substr(lcButoane,Len(lcButoane)-1)=[;],lcButoane,lcButoane+[;])
For j=1 To Occurs([;],lcButoane)
lnPF=At([;],lcButoane,j)
lcButon=Substr(lcButoane,lnPS,lnPF-lnPS)
lcProp='this.'+Alltrim(lcButon)+'.visible'
lcProp1='!this.'+ALLTRIM(lcButon)+'.lvizibil'
If Type(lcProp)<>'U'
&lcProp=IIF(TYPE(lcProp1)<>'U' and &lcProp1,.F.,.T.)
Endif
lnPS=lnPF+1
Endfor
Endif
Endif
lnPozitieS=lnPozitieF+1
Endfor
Endif
ENDPROC
PROCEDURE actualizeaza_grid1
ENDPROC
PROCEDURE actualizeaza_grid2
ENDPROC
PROCEDURE creeaza_cursoare
ENDPROC
PROCEDURE do_activeaza_container
This._ct_controller_keypress1.do_bind()
This.actualizeaza_cursoare()
ENDPROC
PROCEDURE do_adauga
ENDPROC
PROCEDURE do_cauta
ENDPROC
PROCEDURE do_copiaza
ENDPROC
PROCEDURE do_dezactiveaza_container
This._ct_controller_keypress1.do_unbind()
ENDPROC
PROCEDURE do_excel
ENDPROC
PROCEDURE do_executa
ENDPROC
PROCEDURE do_listare
ENDPROC
PROCEDURE do_modifica
ENDPROC
PROCEDURE do_precedent
ENDPROC
PROCEDURE do_reface
ENDPROC
PROCEDURE do_reset
ENDPROC
PROCEDURE do_selectall
ENDPROC
PROCEDURE do_sterge
ENDPROC
PROCEDURE do_urmator
ENDPROC
PROCEDURE grid_sort
Aevents( laEvents, 0 )
loHeader = laEvents[ 1 ]
If Vartype( loHeader ) = 'O'
If Type('this.gridsort1') = 'O'
This.gridsort1.oColumnReference = loHeader.Parent
This.gridsort1.gridsort(loHeader.Parent)
Endif
Endif
ENDPROC
PROCEDURE grid_sort_bind
Local lcListaGrid, lnGridCount, loGrid, lcGrid, i, j, loHeader
lcListaGrid = Alltrim(This.cGridSortList)
lcListaGrid = Strtran(lcListaGrid, ',', ';')
lnGridCount = Getwordcount(lcListaGrid, ';')
For i = 1 To lnGridCount
lcGrid = Getwordnum(lcListaGrid, i, ';')
lcGrid = 'this.' + lcGrid
loGrid = &lcGrid
If !Pemstatus(loGrid,'name',5)
Loop
Endif
For j = 1 To loGrid.ColumnCount
loHeader = loGrid.Columns(j).Header1
Bindevent(loHeader, "DblClick", This, "grid_sort")
Endfor
Endfor
ENDPROC
PROCEDURE inainte_de_do_excel
If This.lactiv1
This.do_excel()
Endif
ENDPROC
PROCEDURE inainte_de_do_listare
If This.lactiv2
This.do_listare
Endif
ENDPROC
PROCEDURE inainte_de_do_modifica
If This.lactiv3
This.do_modifica()
Endif
ENDPROC
PROCEDURE inainte_de_do_reface
If This.lactiv4
This.do_reface
Endif
ENDPROC
PROCEDURE inainte_de_do_sterge
If This.lactiv4
This.do_sterge()
Endif
ENDPROC
PROCEDURE Init
This.actualizeaza_drepturi
This.grid_sort_bind()
ENDPROC
ENDDEFINE

201
clase/_cus_odata_base.vc2 Normal file
View File

@@ -0,0 +1,201 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_cus_odata_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _cusodatabase AS _custom OF "_baza.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: confirma_salvare
*m: do_deschide_tranzactie
*m: do_inchide_tranzactie
*m: make_sql
*m: salvare
*m: validare
*p: cactiune
*p: ccursor_detalii && Se completeaza in cazul in care trebuie salvat capul de tabel o data cu detaliile ( ex.: nom_retetar si nom_retetar_elemente )
*p: csql
*p: lsalvareconfirmata
*p: lsilent
*</DefinedPropArrayMethod>
*<PropValue>
cactiune = INSERT
ccursor_detalii =
csql =
Height = 18
lsalvareconfirmata = .F.
lsilent = .F.
Name = "_cusodatabase"
Width = 21
*</PropValue>
PROCEDURE confirma_salvare
Private buton
Local lcActiune,lcMesaj,lcTitlu,lcImagine,lcTip,loFrmIntreb
buton = 1
lcMesaj = ''
lcTitlu = ''
lcImagine = [intreb.ico]
lcTip = [Intrebare]
lcActiune = Upper(Alltrim(This.cactiune))
Do Case
Case lcActiune = "INSERT"
lcMesaj = "Dori<72>i s<> ad<61>uga<67>i <20>nregistrarea?"
lcTitlu = "Ad<41>ugare"
* lnOptiuni = 4 + 32
Case lcActiune = "UPDATE"
lcMesaj = "Dori<72>i s<> salva<76>i modific<69>rile?"
lcTitlu = "Modificare"
* lnOptiuni = 4 + 32
Case lcActiune = "DELETE"
lcMesaj = "Dori<72>i s<> <20>terge<67>i <20>nregistrarea?"
lcTitlu = "<22>tergere"
* lnOptiuni = 4 + 32 + 512
Case lcActiune = "LOCAL"
lcMesaj = "Dori<72>i s<> salva<76>i datele?"
lcTitlu = "Salvare"
* lnOptiuni = 4 + 32
Endcase
loFrmIntreb = Createobject('frm_mesaj',lcTitlu,lcImagine,lcTip,lcMesaj)
loFrmIntreb.Show(1)
If buton = 1
This.lsalvareconfirmata = .T.
Else
This.lsalvareconfirmata = .F.
Endif
Release lcActiune,lcMesaj,lcTitlu,lcImagine,lcTip,loFrmIntreb,buton
ENDPROC
PROCEDURE do_deschide_tranzactie
Local llReturn
If Type('goExecutor')='O'
goExecutor.oExecuta([select * from dual])
Endif
lnSucces = SQLSetprop(gnHandle,"Transactions",2)
If lnSucces < 0
amessagebox("Programul nu a reusit sa treaca pe tranzactie manuala! Reintrati in program si incercati din nou!",48,"Atentie")
llReturn = .F.
Else
llReturn = .T.
Endif
Return llReturn
ENDPROC
PROCEDURE do_inchide_tranzactie
Lparameters tnTip
Local llReturn,lnSucces,lcExplicatie
If tnTip = 1
lnSucces = Sqlcommit(gnHandle)
lcExplicatie = [COMMIT]
Else
lnSucces = Sqlrollback(gnHandle)
lcExplicatie = [ROLLBACK]
Endif
If lnSucces < 0
amessagebox("Eroare la "+lcExplicatie+"!",48,"Atentie")
llReturn = .F.
Else
lnSucces = SQLSetprop(gnHandle,"Transactions",1)
If lnSucces < 0
amessagebox('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',0+48,'Atentie!')
llReturn = .F.
Else
llReturn = .T.
Endif
Endif
Return llReturn
ENDPROC
PROCEDURE make_sql
ENDPROC
PROCEDURE salvare
*!* 23.01.2020
*!* marius.mutu
*!* am adaugat poRec sa il pot folosi in This.makesql
Lparameters toRec,tnId
Local llSucces, lnSucces, lcActiune, lcSql, llConditie, lcTextEroare
PRIVATE poRec
poRec = toRec
llSucces = .T.
lnSucces = -1
If This.lSilent
This.lsalvareconfirmata = .T.
Else
This.confirma_salvare()
Endif
* pnId, pnIdUtil se folosesc in DELETE
IF TYPE('pnId') = 'U'
PRIVATE pnId
pnId = m.tnId
ENDIF
IF TYPE('pnIdUtil') = 'U'
PRIVATE pnIdUtil
pnIdUtil = m.gnIdUtil
ENDIF
If This.lsalvareconfirmata
PNIESIRE=1
gnButon = 1
If This.validare()
This.make_sql(toRec,tnId)
lcActiune = Upper(Alltrim(This.cactiune))
lcSql = Alltrim(This.csql)
llConditie = 'INSERT'$Upper(lcSql) Or 'UPDATE'$Upper(lcSql) Or 'DELETE'$Upper(lcSql) Or 'BEGIN'$Upper(lcSql)
If llConditie
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
lcTextEroare = goExecutor.oPrelucrareEroare()
Do Case
Case lcActiune = "INSERT"
lcMesaj = "Inregistrarea nu a fost adaugata." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "Ad<41>ugare"
Case lcActiune = "UPDATE"
lcMesaj = "Inregistrarea nu a fost modificata." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "Modificare"
Case lcActiune = "DELETE"
lcMesaj = "Inregistrarea nu a fost stearsa." + Chr(13) + Chr(10) + lcTextEroare
lcTitlu = "<22>tergere"
Endcase
lcimagine = [info_c.ico]
lctip = [Informare]
AMESSAGE(lcMesaj,0+16,lctip)
llSucces = .F.
Endif
If lnSucces >=1 And lcActiune = "DELETE"
lcTitlu = "Stergere"
lctip = [Informare]
lcimagine = [info_c.ico]
lcMesaj = "Inregistrarea a fost stearsa!"
AMESSAGE(lcMesaj,0+48,lctip)
Endif
Endif
Endif
Else
PNIESIRE = 2
gnButon = 2
Endif
Return llSucces
ENDPROC
PROCEDURE validare
Lparameters toRec, tnId
Local llReturn
If This.cactiune = [LOCAL]
llReturn = .F.
Else
llReturn = .T.
Endif
Return llReturn
ENDPROC
ENDDEFINE

25
clase/_de_base.vc2 Normal file
View File

@@ -0,0 +1,25 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_de_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _debase AS _dataenvironment OF "_baza.vcx"
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
DataSource = (gnHandle)
DataSourceType = "ODBC"
Height = 24
Name = "_debase"
Width = 54
*</PropValue>
PROCEDURE BeforeOpenTables
*** Select connection code: DO NOT REMOVE
set multilocks on
*** End of Select connection code: DO NOT REMOVE
ENDPROC
ENDDEFINE

18
clase/_ed_base.vc2 Normal file
View File

@@ -0,0 +1,18 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_ed_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _edbase AS _editbox OF "_baza.vcx"
*< CLASSDATA: Baseclass="editbox" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "c:\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
BackStyle = 1
Height = 53
Name = "_edbase"
Width = 244
*</PropValue>
ENDDEFINE

1349
clase/_frm_base.vc2 Normal file

File diff suppressed because it is too large Load Diff

53
clase/_frm_child.vc2 Normal file
View File

@@ -0,0 +1,53 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_frm_child.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS frm_termin AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
DoCreate = .T.
Name = "frm_termin"
_shape1.Name = "_shape1"
_shape2.Name = "_shape2"
But_termin1.Image1.Height = 27
But_termin1.Image1.Name = "Image1"
But_termin1.Image1.Width = 30
But_termin1.Name = "But_termin1"
*</PropValue>
ENDDEFINE
DEFINE CLASS frm_termin_renunt AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*<PropValue>
DoCreate = .T.
Name = "frm_termin_renunt"
_shape1.Name = "_shape1"
_shape2.Height = 29
_shape2.Left = 300
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 74
But_termin1.Image1.Height = 27
But_termin1.Image1.Name = "Image1"
But_termin1.Image1.Width = 30
But_termin1.Name = "But_termin1"
*</PropValue>
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 313, ;
Name = "But_renunt1", ;
Top = 1, ;
Image1.Height = 27, ;
Image1.Name = "Image1", ;
Image1.Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="container" />
ENDDEFINE

81
clase/_frxcursor.h Normal file
View File

@@ -0,0 +1,81 @@
*=======================================================
* frxCursor.vcx compile constants
*=======================================================
#include foxpro_reporting.h
*-------------------------------------------------------
* Magic numbers
*-------------------------------------------------------
*-- Report Layout object dimensions
*--
#define BAND_SEPARATOR_HEIGHT_FRUS 2083.333
#define BAND_SEPARATOR_HEIGHT_PIXELS 20
*-- Object Cursor filter modes:
*--
#define OBJCSR_ALL_OBJECTS_IGNORE_GROUPS 0
#define OBJCSR_FILTER_ON_SELECTED 1
#define OBJCSR_SHOW_ALL_OBJECTS 2
#define OBJCSR_FILTER_GROUP 3
#define OBJCSR_SORTORDER_TYPE 1
#define OBJCSR_SORTORDER_BAND 2
#define FRX_OBJTYPE_MULTISELECT 99
*-------------------------------------------------------
* Localization strings
*-------------------------------------------------------
*-- FRX object targets:
*--
#define TARGET_MULTISELECT_LOC "Multiple Selection"
#define TARGET_REPORT_COMMENT_LOC "Comment"
#define TARGET_REPORT_GLOBAL_LOC "Report/Global"
#define TARGET_WORKAREA_LOC "Workarea"
#define TARGET_INDEX_LOC "Index"
#define TARGET_RELATION_LOC "Relation"
#define TARGET_TEXT_LABEL_LOC "Label"
#define TARGET_LINE_LOC "Line"
#define TARGET_BOX_LOC "Rectangle"
#define TARGET_FIELD_LOC "Field"
#define TARGET_TITLE_LOC "Title"
#define TARGET_PAGE_HEADER_LOC "Page Header"
#define TARGET_COL_HEADER_LOC "Column Header"
#define TARGET_GROUP_HEADER_LOC "Group Header"
#define TARGET_DETAIL_LOC "Detail"
#define TARGET_GROUP_FOOTER_LOC "Group Footer"
#define TARGET_COL_FOOTER_LOC "Column Footer"
#define TARGET_PAGE_FOOTER_LOC "Page Footer"
#define TARGET_SUMMARY_LOC "Summary"
#define TARGET_DETAIL_HEADER_LOC "Detail Header"
#define TARGET_DETAIL_FOOTER_LOC "Detail Footer"
#define TARGET_UNKNOWN_BAND_LOC "Unknown band type"
#define TARGET_GROUPED_LOC "Grouped Objects"
#define TARGET_PICTURE_LOC "Picture/OLE Bound"
#define TARGET_VARIABLE_LOC "Variable"
#define TARGET_PDRIVER_LOC "Printer Driver Setup"
#define TARGET_FONTRESO_LOC "Font Resource"
#define TARGET_DATAENV_LOC "Data Environment"
#define TARGET_CURSOR_LOC "Cursor"
#define TARGET_UNKNOWN_LOC "Unknown Target type"
#define TARGET_FORCED_PAGEHEADER_LOC "Resolved as Page Header"
#define TARGET_UNPREDICTABLE_LOC "Indeterminate behavior"
*-- Calculation "Reset On" combo list
*--
#define ENDOFREPORT_LOC "Report"
#define ENDOFPAGE_LOC "Page"
#define ENDOFCOLUMN_LOC "Column"
#define GROUP_BY_LOC "Group: "
#define DETAIL_LOC "Detail "
#define NEW_LOC "new"
*-- Messagebox error messages:
*--
#define METADATA_DOM_ERROR_LOC "Exception occurred in frxCursor::getMetadataDomDoc()"
#define CREATE_IC_FAILURE_LOC "Unable to create device context. CreateIC() returned 0."

2626
clase/_frxcursor.vc2 Normal file

File diff suppressed because it is too large Load Diff

7363
clase/_gdiplus.vc2 Normal file

File diff suppressed because it is too large Load Diff

489
clase/_grd_base.vc2 Normal file
View File

@@ -0,0 +1,489 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_grd_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _grdbase AS _grid OF "_baza.vcx"
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
HighlightStyle = 2
Name = "_grdbase"
*</PropValue>
ENDDEFINE
DEFINE CLASS _grdfooter AS grid
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: attachtogrid && Attach to source grid
*m: calctotal && calculate total in specified columns, in local array aTotals
*m: eventhandler && handle source grid events
*p: ccolwithlabel && Column with "Total" label
*p: crecordsourcecursor && one row temporary cursor needed
*p: csourcegrdalias && alias for source grid (in case of SQL/Query) RecordSource.
*p: csourcegrid && source grid objects. "this.parent."+property value will be evaluated and attachewd to in Init, if set
*p: csumcolumns && comma delimited list with summed columns
*p: ctotallabelexpression && If one need to show more than "TOTAL" label in cColWithLabel column
*p: lisattached
*p: osourcegrid
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
HIDDEN crecordsourcecursor,lisattached,osourcegrid
*<PropValue>
ccolwithlabel =
crecordsourcecursor =
csourcegrdalias =
csourcegrid =
csumcolumns =
ctotallabelexpression =
HeaderHeight = 0
Height = 35
lisattached = .F.
Name = "_grdfooter"
osourcegrid = .NULL.
ReadOnly = .T.
ScrollBars = 0
SplitBar = .F.
Visible = .F.
Width = 425
_memberdata = <VFPData>
<memberdata name="osourcegrid" type="property" display="oSourceGrid" favorites="True"/>
<memberdata name="icolwithlabel" type="property" display="iColWithLabel"/>
<memberdata name="calctotal" type="method" display="calcTotal" favorites="True"/>
<memberdata name="csumcolumns" type="property" display="cSumColumns" favorites="True"/>
<memberdata name="eventhandler" type="method" display="eventHandler" favorites="True"/>
<memberdata name="attachtogrid" type="method" display="attachToGrid" favorites="True"/>
<memberdata name="osourcegrid" type="property" display="oSourceGrid" favorites="True"/>
<memberdata name="icolwithlabel" type="property" display="iColWithLabel"/>
<memberdata name="calctotal" type="method" display="calcTotal" favorites="True"/>
<memberdata name="csumcolumns" type="property" display="cSumColumns" favorites="True"/>
<memberdata name="eventhandler" type="method" display="eventHandler" favorites="True"/>
<memberdata name="attachtogrid" type="method" display="attachToGrid" favorites="True"/>
</VFPData>
*</PropValue>
PROCEDURE attachtogrid && Attach to source grid
lparameters oSrcGrd
local iAnchor, i
with this
*create RecordSource cursor
this.cRecordSourceCursor = Sys(2015)
create cursor ( .cRecordSourceCursor) (temp_column c(1))
insert into ( .cRecordSourceCursor) (temp_column) values (' ')
.RecordSource = (.cRecordSourceCursor)
.oSourceGrid = oSrcGrd
*
*first, copy properties
.BackColor = oSrcGrd.BackColor
.DeleteMark = oSrcGrd.DeleteMark
.FontBold = oSrcGrd.FontBold
.FontItalic = oSrcGrd.FontItalic
.FontName = oSrcGrd.FontName
.FontSize = oSrcGrd.FontSize
.FontUnderline = oSrcGrd.FontUnderline
.ForeColor = oSrcGrd.ForeColor
.GridLines = oSrcGrd.GridLines
.GridLineColor = oSrcGrd.GridLineColor
.GridLineWidth = oSrcGrd.GridLineWidth
.Panel = oSrcGrd.Panel
.ReadOnly = .t.
.Partition = oSrcGrd.Partition
.RecordMark = oSrcGrd.RecordMark
.RowHeight = oSrcGrd.RowHeight
.HighlightBackColor = oSrcGrd.BackColor
.HighlightForeColor = oSrcGrd.ForeColor
.Themes = oSrcGrd.Themes
*handle height, width
.Width = oSrcGrd.Width
if not .lIsAttached
.Height = oSrcGrd.RowHeight + 2 * oSrcGrd.GridLineWidth ;
+ Iif( oSrcGrd.ScrollBars= 1 or oSrcGrd.ScrollBars= 3,Sysmetric(8),0)
.ScrollBars = Iif( oSrcGrd.ScrollBars= 1 or oSrcGrd.ScrollBars= 3, 1 ,0)
oSrcGrd.ScrollBars = Iif(oSrcGrd.ScrollBars=2 or oSrcGrd.ScrollBars= 3, 2 ,0)
*.Height = oSrcGrd.RowHeight + 2 * oSrcGrd.GridLineWidth
iAnchor = oSrcGrd.Anchor
oSrcGrd.Anchor = 0
oSrcGrd.Height = oSrcGrd.Height - (oSrcGrd.RowHeight + 2 * oSrcGrd.GridLineWidth)
oSrcGrd.Anchor = iAnchor
endif
.Top = oSrcGrd.Top + oSrcGrd.Height
.Left = oSrcGrd.Left
.Visible = .t.
.HeaderHeight = 0
.ColumnCount = oSrcGrd.ColumnCount
.LockColumns = oSrcGrd.LockColumns
.LockColumnsLeft = oSrcGrd.LockColumnsLeft
.ReadOnly = .T.
if Empty(this.cSourceGrdAlias)
this.cSourceGrdAlias = oSrcGrd.RecordSource
endif
&&27.05.2014 -- pentru a nu mai da eroare daca coloanele nu sunt in ordine in gridul pe care se face totalul, am schimbat numele coloanelor adaugand "00000" in coada
FOR i=1 TO .COLUMNCOUNT
.COLUMNS(i).NAME = .COLUMNS(i).NAME+[00000]
NEXT
&&27.05.2014 ^ -- pentru a nu mai da eroare daca coloanele nu sunt in ordine in gridul pe care se face totalul, am schimbat numele coloanelor adaugand "00000" in coada
for i=1 to .ColumnCount
.Columns(i).Alignment = oSrcGrd.Columns(i).Alignment
.Columns(i).BackColor = oSrcGrd.Columns(i).BackColor
.Columns(i).Bound = .F.
.Columns(i).ColumnOrder = oSrcGrd.Columns(i).ColumnOrder
.Columns(i).Enabled = .T.
.Columns(i).FontBold = .T.
.Columns(i).Inputmask = oSrcGrd.Columns(i).InputMask
.Columns(i).Format = oSrcGrd.Columns(i).Format
.Columns(i).FontName = oSrcGrd.Columns(i).FontName
.Columns(i).FontSize = oSrcGrd.Columns(i).FontSize
.Columns(i).Controls(2).DisabledForeColor = oSrcGrd.Columns(i).ForeColor
.Columns(i).ForeColor = oSrcGrd.Columns(i).ForeColor
.Columns(i).FontUnderline = oSrcGrd.Columns(i).FontUnderline
.Columns(i).Name = oSrcGrd.Columns(i).Name
.Columns(i).Width = oSrcGrd.Columns(i).Width
.Columns(i).Visible = oSrcGrd.Columns(i).Visible
BindEvent(oSrcGrd.Columns(i),'Resize',this,'eventHandler',1)
BindEvent(oSrcGrd.Columns(i),'Moved',this,'eventHandler',1)
BindEvent( oSrcGrd, 'Resize' , this, 'eventHandler',1)
BindEvent( oSrcGrd, 'Moved' , this, 'eventHandler',1)
BindEvent( oSrcGrd, 'AfterRowColChange' , this, 'eventHandler',1)
BindEvent( oSrcGrd, 'LockColumns' , this, 'eventHandler',1)
BindEvent( this, 'Scrolled',this,'eventHandler',1)
next
.lIsAttached = .t.
endwith
ENDPROC
PROCEDURE calctotal && calculate total in specified columns, in local array aTotals
If Empty(This.cSumColumns) Or Isnull(This.oSourceGrid)
*nothing to do
Return
Endif
Local cSQL, iColCount, i, j, cTotalLabel, nWorkArea
Local Array aTotals[1], aColumns[1]
nWorkArea = Select()
Select(This.cSourceGrdAlias)
iColCount = Alines(aColumns , This.cSumColumns,1,[,])
*build select command
cSQL = [select ]
For i = 1 To iColCount
If i > 1
cSQL = cSQL + [,]
Endif
With Getpem(This.oSourceGrid,aColumns[i])
cSQL = cSQL + [Sum(] + .ControlSource + [)]
Endwith
Next
cSQL = cSQL + [ from ] + This.cSourceGrdAlias + [ with (buffering=.t.) ]
*if SET KEY, will try to filter on these values first
If Not Empty(Set("Key"))
Local vLim1, vLim2, cRangeLow, cRangeHigh , cKeyType
cSQL = cSQL + ' where '
vLim1 = Set("Key",1)
vLim2 = Set("Key",2)
cKeyType = Type(Key())
cRangeLow= Icase( cKeyType = 'C' , ["] + Strtran(vLim1,["], [" + Chr(34) + "]) + ["] ;
, cKeyType = 'D' , "Ctod(vLim1)" ;
, cKeyType = 'T' , "Ctot(vLim1)" ;
, vLim1 )
cRangeHigh = Icase( cKeyType = 'C' , ["] + Strtran(vLim2,["], [" + Chr(34) + "]) + ["] ;
, cKeyType = 'D' , "Ctod(vLim2)" ;
, cKeyType = 'T' , "Ctot(vLim2)" ;
, vLim2 )
If Empty( Set("Key",2) )
cSQL = cSQL + Key() + [ >= ] + cRangeLow
Else
cSQL = cSQL + " Between( " + Key() + " , " + cRangeLow+ " , " + cRangeHigh + ")"
Endif
Endif
*add FILTER() expression if needed
If Not Empty( Filter() )
If Not Empty( Set("Key"))
cSQL = cSQL + ' and ' + Filter()
Else
cSQL = cSQL + ' where ' + Filter()
Endif
Endif
cSQL = cSQL + [ into array aTotals]
&cSQL
cTotalLabel = Iif(Not Empty(This.cTotalLabelExpression), Evaluate( This.cTotalLabelExpression ), 'TOTAL')
With Getpem(This,This.cColWithLabel)
.ControlSource = ["]+cTotalLabel+["]
.Controls(2).ControlSource = [("]+cTotalLabel+[")]
Endwith
For i = 1 To iColCount
For j = 1 To This.ColumnCount
If Upper(This.Columns(j).Name) = Upper(aColumns[i])
This.Columns(j).ControlSource = [(]+Transform(Nvl(aTotals[i],0))+[)]
This.Columns(j).Controls(2).ControlSource = [(]+Transform(Nvl(aTotals[i],0))+[)]
This.Columns(j).Alignment = 1
Endif
Next
Next
Select(nWorkArea)
ENDPROC
PROCEDURE Destroy
if Used(this.cRecordSourceCursor)
use in (this.cRecordSourceCursor)
endif
ENDPROC
HIDDEN PROCEDURE eventhandler && handle source grid events
Lparameters vParameter
Local Array aSrcObj[1]
Local oObj, cEvt, cClass, i, nWorkArea,iARow,iACol, iRCol, iACol_1
Local lnColumnOrder
lnColumnOrder = 0
Aevents(aSrcObj,0)
oObj = aSrcObj[1]
cEvt = Lower(aSrcObj[2])
cClass = Lower(oObj.BaseClass)
nWorkArea = Select(Alias())
This.Tag = 'evt'
Select(This.cRecordSourceCursor) &&to be sure that memvar evaluation doesn't conflict with other alias columns
Do Case
Case cClass = 'grid'
Do Case
Case cEvt = 'resize'
This.Width = oObj.Width
This.Top = oObj.Top + oObj.Height
Case cEvt = 'moved'
This.Top = oObj.Top + oObj.Height
This.Left = oObj.Left
Case cEvt = 'afterrowcolchange'
*the following never fires when LockColumns > 0
If Not This.oSourceGrid.LeftColumn == This.LeftColumn
If This.oSourceGrid.LeftColumn > This.LeftColumn
*scroll to R
i=0
Do While This.oSourceGrid.LeftColumn > This.LeftColumn
i = i + 1
This.DoScroll(5)
If i >= This.ColumnCount
This.oSourceGrid.DoScroll(4)
Endif
Enddo
Else
*scroll to L
Do While This.oSourceGrid.LeftColumn < This.LeftColumn
This.DoScroll(4)
Enddo
Endif
Endif
*try to solve LockColumn > 0 case
If This.LockColumns > 0
*the only way seems to be checking ActiveColumn/RelativeColumn
iARow = This.oSourceGrid.ActiveRow
iACol = This.oSourceGrid.ActiveColumn
iRCol = This.oSourceGrid.RelativeColumn
*temporary unbind source grid ARCC, Scrolled
Unbindevents(This.oSourceGrid,'AfterRowColChange',This,'eventHandler')
Unbindevents(This,'Scrolled',This,'eventHandler')
*this seems to be needed to avoid flickering
Thisform.LockScreen = .T.
*column changed in locked portion, scroll both to left
If iACol <= This.oSourceGrid.LockColumns
This.oSourceGrid.DoScroll(6)
For i=1 To 5 &&should be enough
This.DoScroll(6)
Next
Else
This.SetFocus()
*very interesting next stuff, ActivateCell work relatively to locked columns
*need to compare Column index for a given RelativeRow and scroll accordingly
This.ActivateCell(1, iRCol)
iACol_1 = This.ActiveColumn
If Not iACol_1 == iACol
If iACol_1 > iACol
For i=1 To iACol_1 - iACol
This.DoScroll(4)
Next
Else
For i=1 To iACol - iACol_1
This.DoScroll(5)
Next
Endif
Endif
This.oSourceGrid.SetFocus()
This.oSourceGrid.Visible = .T.
Endif
*bind ARCC back to this
Bindevent(This.oSourceGrid,'AfterRowColChange',This,'eventHandler',1)
Bindevent( This, 'Scrolled',This,'eventHandler',1)
Thisform.LockScreen = .F.
Endif
Case cEvt = 'scrolled'
If Not This.oSourceGrid.LeftColumn == This.LeftColumn
If This.oSourceGrid.LeftColumn > This.LeftColumn
*scroll to L
i=0
Do While This.oSourceGrid.LeftColumn > This.LeftColumn
This.oSourceGrid.DoScroll(4)
Enddo
Else
*scroll to R
i=0
Do While This.oSourceGrid.LeftColumn < This.LeftColumn
i = i + 1
This.oSourceGrid.DoScroll(5)
If i >= This.ColumnCount
This.DoScroll(4)
Endif
Enddo
Endif
Endif
If This.oSourceGrid.LockColumns > 0
This.oSourceGrid.DoScroll(vParameter)
Endif
Case cEvt = 'lockcolumns'
This.LockColumns = This.oSourceGrid.LockColumns
Endcase
Case cClass = 'column'
Do Case
Case cEvt = 'moved'
For i=1 To This.ColumnCount
*!* 24.03.2008
If Type('This.oSourceGrid.Columns(i)') <> 'O'
Exit
EndIf
*!* 24.03.2008 ^
If This.Columns(i).ColumnOrder <> This.oSourceGrid.Columns(i).ColumnOrder
This.Columns(i).ColumnOrder = This.oSourceGrid.Columns(i).ColumnOrder
Endif
Endfor
Case cEvt = 'resize'
For i=1 To This.ColumnCount
*!* 24.03.2008
If Type('This.oSourceGrid.Columns(i)') <> 'O'
Exit
EndIf
*!* 24.03.2008 ^
If This.Columns(i).Width <> This.oSourceGrid.Columns(i).Width
This.Columns(i).Width = This.oSourceGrid.Columns(i).Width
Endif
Next
Endcase
Endcase
This.Tag = ''
Select (nWorkArea) &&switch back work area
ENDPROC
PROCEDURE Init
if not Empty(this.cSourceGrid)
local oSrcGrid
oSrcGrid = .null.
try
oSrcGrid = GetPem(this.Parent,this.cSourceGrid)
catch
endtry
if Vartype(oSrcGrid) = 'O' and not IsNull(oSrcGrid) and oSrcGrid.BaseClass = 'Grid'
if oSrcGrid.ColumnCount > 0
this.attachToGrid(oSrcGrid)
this.calcTotal()
endif
endif
endif
ENDPROC
PROCEDURE When
if this.Tag = 'evt' or Mdown()
return .t.
else
return .f.
endif
ENDPROC
ENDDEFINE
DEFINE CLASS _grdrow AS _grdbase OF "_grd_base.vcx"
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: crgb_font
*p: crgb_grid
*p: crgb_row
*p: nrecno
*p: nrgbrow && 0 = Nu tine cont de cRGB_row si cRGB_grid; 1 = Tine cont de cRGB_row si cRGB_grid
*</DefinedPropArrayMethod>
*<PropValue>
crgb_font = 0,0,0
crgb_grid = 255,255,255
crgb_row = 255,255,225
Name = "_grdrow"
nrecno = 0
nrgbrow = 1
*</PropValue>
PROCEDURE AfterRowColChange
Lparameters nColIndex
DoDefault()
If This.nRgbrow = 1
This.nRecno = Recno(This.RecordSource)
This.Refresh
Endif
ENDPROC
PROCEDURE Init
DoDefault()
If This.nRgbrow = 1
lcRGB_Row = 'RGB(' + This.cRGB_Row + ')'
lcRGB_Grid = 'RGB(' + This.cRGB_Grid + ')'
lcSetAll = [this.SetAll("DynamicBackColor","iif(RECNO() = this.nRecno,] + ;
lcRGB_Row + [,] + lcRGB_Grid + [)","Column")]
&lcSetAll
This.SetAll("DynamicForeColor","iif(RECNO() = This.nRecno,RGB(" + This.cRGB_Font + "),RGB(0,0,0))","Column")
Endif
ENDPROC
ENDDEFINE

15
clase/_lb_base.vc2 Normal file
View File

@@ -0,0 +1,15 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_lb_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _lbbase AS _label OF "_baza.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
Name = "_lbbase"
*</PropValue>
ENDDEFINE

248
clase/_menu.vc2 Normal file
View File

@@ -0,0 +1,248 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_menu.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _shortcutmenu AS _custom OF "_base.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: activatemenu && Activates existing shortcut menu.
*m: addmenubar && Adds new menu bar to shortcut menu.
*m: addmenuseparator && Adds separator to shortcut menu.
*m: clearmenu && Releases existing shortcut menu.
*m: deactivatemenu && Deactivates existing shortcut menu.
*m: newmenu && Creates new menu popup for shortcut menu.
*m: setmenu && Releases current shortcut menu to create new one.
*m: showmenu && Show existing shortcut menu.
*p: cmenu && Name of shortcut menu.
*p: conselection && Menu bar selection routine.
*a: amenu[1,0]
*</DefinedPropArrayMethod>
*<PropValue>
cmenu =
conselection =
Height = 22
Name = "_shortcutmenu"
Width = 24
*</PropValue>
PROCEDURE activatemenu && Activates existing shortcut menu.
LPARAMETERS tcParentMenu
LOCAL lnArrayColumns,llMultiArray,lnBar,lnSkipCount,lnCount,lnMRow,lnMCol
LOCAL lnMenuCount,lcMenu,lcMenu2,lcMenuItem,luMenuSelection,llSetMark,lcClauses
lnMRow=MAX(MROW(),0)
lnMCol=MAX(MCOL(),0)
IF TYPE("this.aMenu")#"C"
RETURN .F.
ENDIF
lnMenuCount=ALEN(this.aMenu,1)
IF lnMenuCount=0
RETURN .F.
ENDIF
lcMenu=IIF(EMPTY(tcParentMenu),SYS(2015),ALLTRIM(tcParentMenu))
this.cMenu=lcMenu
lnArrayColumns=ALEN(this.aMenu,2)
llMultiArray=(lnArrayColumns>0)
DEACTIVATE POPUP (lcMenu)
CLEAR TYPEAHEAD
IF EMPTY(tcParentMenu)
DEFINE POPUP (lcMenu) ;
FROM lnMRow,lnMCol ;
MARGIN ;
SHORTCUT
ON SELECTION POPUP (lcMenu) DEACTIVATE MENU (lcMenu)
ENDIF
lnSkipCount=0
FOR lnCount = 1 TO lnMenuCount
lcMenuItem=IIF(llMultiArray,this.aMenu[lnCount,1],this.aMenu[lnCount])
IF TYPE("lcMenuItem")#"C" OR EMPTY(lcMenuItem) OR ;
((lnCount=1 OR lnCount=lnMenuCount) AND ALLTRIM(lcMenuItem)=="\-")
lnSkipCount=lnSkipCount+1
LOOP
ENDIF
lnBar=lnCount-lnSkipCount
llSetMark=.F.
IF LEFT(lcMenuItem,1)=="^"
lcMenuItem=SUBSTR(lcMenuItem,2)
llSetMark=.T.
ENDIF
IF lnArrayColumns>=3 AND NOT EMPTY(this.aMenu[lnCount,3])
lcClauses=ALLTRIM(this.aMenu[lnCount,3])
ELSE
lcClauses=""
ENDIF
IF EMPTY(lcClauses)
DEFINE BAR lnBar OF (lcMenu) PROMPT (lcMenuItem)
ELSE
DEFINE BAR lnBar OF (lcMenu) PROMPT (lcMenuItem) &lcClauses
ENDIF
IF llSetMark
SET MARK OF BAR (lnBar) OF (lcMenu) TO .T.
ENDIF
IF NOT llMultiArray
LOOP
ENDIF
luMenuSelection=this.aMenu[lnCount,2]
IF TYPE("luMenuSelection")=="O" AND NOT ISNULL(luMenuSelection)
lcMenu2=SYS(2015)
DEFINE POPUP (lcMenu2) ;
MARGIN ;
SHORTCUT
ON SELECTION POPUP (lcMenu2) DEACTIVATE MENU (lcMenu2)
ON BAR lnBar OF (lcMenu) ACTIVATE POPUP (lcMenu2)
IF EMPTY(luMenuSelection.cOnSelection)
luMenuSelection.cOnSelection=this.cOnSelection
ENDIF
luMenuSelection.ActivateMenu(lcMenu2)
LOOP
ENDIF
IF EMPTY(luMenuSelection)
luMenuSelection=ALLTRIM(this.cOnSelection)
ENDIF
IF NOT EMPTY(luMenuSelection)
ON SELECTION BAR lnBar OF (lcMenu) &luMenuSelection
ENDIF
ENDFOR
IF lnSkipCount>=lnMenuCount OR NOT EMPTY(tcParentMenu)
RETURN
ENDIF
ACTIVATE POPUP (lcMenu)
IF NOT EMPTY(this.cMenu)
DEACTIVATE POPUP (this.cMenu)
ENDIF
this.cMenu=""
ENDPROC
PROCEDURE addmenubar && Adds new menu bar to shortcut menu.
LPARAMETERS tcPrompt,tcOnSelection,tcClauses,tnElementNumber,tlMark,tlDisabled,tlBold
LOCAL lcPrompt,lcClauses,lnElementNumber,lnMenuCount,lnArrayColumns,lnIndex,oShortCutMenu
IF EMPTY(tcPrompt)
RETURN .F.
ENDIF
IF TYPE("tcPrompt")=="O" AND NOT ISNULL(tcPrompt)
oShortCutMenu=tcPrompt
tcPrompt=.NULL.
FOR lnIndex = 1 TO ALEN(oShortCutMenu.aMenu,1)
this.AddMenuBar(oShortCutMenu.aMenu[lnIndex,1],oShortCutMenu.aMenu[lnIndex,2], ;
oShortCutMenu.aMenu[lnIndex,3])
ENDFOR
RETURN
ENDIF
lcPrompt=tcPrompt
lcClauses=IIF(EMPTY(tcClauses),"",tcClauses)
IF tlMark
lcPrompt="^"+lcPrompt
ENDIF
IF tlDisabled
lcClauses=lcClauses+[ SKIP FOR .T.]
ENDIF
IF tlBold
lcClauses=lcClauses+[ STYLE "B"]
ENDIF
lnMenuCount=ALEN(this.aMenu,1)
lnArrayColumns=ALEN(this.aMenu,2)
IF lnMenuCount<=1 AND EMPTY(this.aMenu[1])
lnMenuCount=1
lnArrayColumns=3
ELSE
lnMenuCount=lnMenuCount+1
ENDIF
lnIndex=lnMenuCount
DIMENSION this.aMenu[lnIndex,lnArrayColumns]
IF TYPE("tnElementNumber")=="N"
lnElementNumber=MAX(INT(tnElementNumber),1)
IF lnElementNumber<lnMenuCount
IF AINS(this.aMenu,lnElementNumber)#1
RETURN .F.
ENDIF
lnIndex=lnElementNumber
ENDIF
ENDIF
IF lnArrayColumns<=1
this.aMenu[lnIndex]=lcPrompt
RETURN
ENDIF
this.aMenu[lnIndex,1]=lcPrompt
this.aMenu[lnIndex,2]=tcOnSelection
IF lnArrayColumns>=3
this.aMenu[lnIndex,3]=lcClauses
ENDIF
ENDPROC
PROCEDURE addmenuseparator && Adds separator to shortcut menu.
LPARAMETERS tnElementNumber
this.AddMenuBar("\-",,,tnElementNumber)
ENDPROC
PROCEDURE clearmenu && Releases existing shortcut menu.
DIMENSION this.aMenu[1]
this.aMenu=""
this.cOnSelection=""
ENDPROC
PROCEDURE deactivatemenu && Deactivates existing shortcut menu.
IF EMPTY(this.cMenu)
RETURN
ENDIF
DEACTIVATE POPUP (this.cMenu)
this.cMenu=""
DOEVENTS
ENDPROC
PROCEDURE Init
this.ClearMenu
ENDPROC
PROCEDURE newmenu && Creates new menu popup for shortcut menu.
LOCAL toObject
LOCAL oNewObject,lcClass,lcClassLibrary,lcBaseClass,lcAlias,llAddLibrary
IF TYPE("toObject")#"O" OR ISNULL(toObject)
toObject=this
ENDIF
lcClass=LOWER(toObject.Class)
lcClassLibrary=LOWER(toObject.ClassLibrary)
lcBaseClass=LOWER(toObject.BaseClass)
IF EMPTY(lcClassLibrary)
oNewObject=CREATEOBJECT(lcBaseClass)
RETURN oNewObject
ENDIF
lcAlias=LOWER(SYS(2015))
llAddLibrary=(ATC(lcClassLibrary,SET("CLASSLIB"))=0)
IF llAddLibrary
SET CLASSLIB TO (lcClassLibrary) ALIAS (lcAlias) ADDITIVE
ENDIF
oNewObject=CREATEOBJECT(lcClass)
IF llAddLibrary
RELEASE CLASSLIB ALIAS (lcAlias)
ENDIF
RETURN oNewObject
ENDPROC
PROCEDURE setmenu && Releases current shortcut menu to create new one.
LPARAMETERS toObject
this.ClearMenu
RETURN .F.
ENDPROC
PROCEDURE showmenu && Show existing shortcut menu.
RETURN this.ActivateMenu()
ENDPROC
ENDDEFINE

65
clase/_pf_base.vc2 Normal file
View File

@@ -0,0 +1,65 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_pf_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _pfbase AS pageframe
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
ActivePage = 0
ErasePage = .T.
Height = 169
Name = "_pfbase"
PageCount = 0
Width = 241
*</PropValue>
PROCEDURE Init
*!* daca se adauga pagini in pageframe, activepage arata 1 la design, dar la runtime e 0
If This.PageCount <> 0
This.ActivePage = 1
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS _pfbase_alb AS pageframe
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
ActivePage = 0
ErasePage = .T.
Height = 169
MemberClass = "_pgbase_alb"
MemberClassLibrary = _pf_base.vcx
Name = "_pfbase_alb"
PageCount = 0
Width = 241
*</PropValue>
PROCEDURE Init
*!* daca se adauga pagini in pageframe, activepage arata 1 la design, dar la runtime e 0
If This.PageCount <> 0
This.ActivePage = 1
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS _pgbase_alb AS page
*< CLASSDATA: Baseclass="page" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackColor = 255,255,255
BackStyle = 1
Caption = "Page1"
FontBold = .T.
FontCharSet = 238
Height = 197
Name = "_pgbase_alb"
Width = 197
*</PropValue>
ENDDEFINE

6157
clase/_reportlistener.vc2 Normal file

File diff suppressed because it is too large Load Diff

577
clase/_therm.vc2 Normal file
View File

@@ -0,0 +1,577 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_therm.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _progressbar AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Shape5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpThermBar" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPercentage" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPercentage2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shape1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shape2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape4" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: complete
*m: reset && Property Description will appear here.
*m: update
*p: ibasis
*p: ipercentage
*p: iprogress
*</DefinedPropArrayMethod>
*<PropValue>
Height = 17
ibasis = 0
ipercentage = 0
iprogress = 0
Name = "_progressbar"
Width = 333
*</PropValue>
ADD OBJECT 'lblPercentage' AS label WITH ;
BackStyle = 0, ;
Caption = "0%", ;
FontName = "MS Sans Serif", ;
FontSize = 8, ;
Height = 13, ;
Left = 159, ;
Name = "lblPercentage", ;
Top = 2, ;
Width = 16
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblPercentage2' AS label WITH ;
BackColor = 0,0,255, ;
BackStyle = 0, ;
Caption = "Label1", ;
FontName = "MS Sans Serif", ;
FontSize = 8, ;
ForeColor = 255,255,255, ;
Height = 13, ;
Left = 159, ;
Name = "lblPercentage2", ;
Top = 2, ;
Width = 0
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'shape1' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 16, ;
Left = 0, ;
Name = "shape1", ;
Top = 0, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'shape2' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 1, ;
Left = 0, ;
Name = "shape2", ;
Top = 0, ;
Width = 332
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape3' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 1, ;
Left = 0, ;
Name = "Shape3", ;
Top = 16, ;
Width = 333
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape4' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 17, ;
Left = 332, ;
Name = "Shape4", ;
Top = 0, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape5' AS shape WITH ;
BackStyle = 0, ;
BorderWidth = 0, ;
FillColor = 192,192,192, ;
FillStyle = 0, ;
Height = 16, ;
Left = 1, ;
Name = "Shape5", ;
Top = 1, ;
Width = 332
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'shpThermBar' AS shape WITH ;
BackColor = 128,128,128, ;
BorderStyle = 0, ;
FillColor = 128,128,128, ;
FillStyle = 0, ;
Height = 17, ;
Left = 1, ;
Name = "shpThermBar", ;
Top = 1, ;
Width = 0
*< END OBJECT: BaseClass="shape" />
PROCEDURE complete
local iSeconds
this.Update(iif(this.iBasis <> 0, this.iBasis, 100))
m.iSeconds=seconds() + .5
do while seconds() < m.iSeconds
&& wait half a sec
enddo
ENDPROC
PROCEDURE Init
DECLARE INTEGER GetSysColor IN Win32API INTEGER
this.shpThermBar.FillColor = GetSysColor(13) &&COLOR HIGHLIGHT
this.shape5.FillColor = this.parent.backcolor
ENDPROC
PROCEDURE reset && Property Description will appear here.
Lparameters iBasis
this.iBasis = iif(type('m.iBasis') = 'N', m.iBasis, 0)
this.Update(0)
ENDPROC
PROCEDURE update
* m.iProgress is the percentage complete, or, if this.iBasis
* is non-zero, is used to calculate the percentage complete.
Lparameters m.iProgress
LOCAL iPercentage,iAvgCharWidth
this.iProgress = max(0, m.iProgress)
if !empty(this.iBasis)
m.iPercentage = int(this.iProgress/this.iBasis*100)
else
m.iPercentage = this.iProgress
endif
m.iPercentage = min(100,max(0,m.iPercentage))
if m.iPercentage <> this.iPercentage
if len(alltrim(str(m.iPercentage,3)))<>len(alltrim(str(this.iPercentage,3)))
iAvgCharWidth=fontmetric(6,this.lblPercentage.FontName, ;
this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I',''))
this.lblPercentage.Width=txtwidth(alltrim(str(m.iPercentage,3)) + '%', ;
this.lblPercentage.FontName,this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I','')) * iAvgCharWidth
this.lblPercentage.Left=int((this.Shape5.Width - ;
this.lblPercentage.Width) / 2)+this.shpThermBar.Left-1
this.lblPercentage2.Left=this.lblPercentage.Left
endif
this.iPercentage = m.iPercentage
this.shpThermBar.Width = int((this.Shape5.Width)*this.iPercentage/100)
this.lblPercentage.Caption = alltrim(str(m.iPercentage,3)) + '%'
this.lblPercentage2.Caption = this.lblPercentage.Caption
if this.shpThermBar.Left + this.shpThermBar.Width -1 >= ;
this.lblPercentage2.Left
if this.shpThermBar.Left + this.shpThermBar.Width - 1 >= ;
this.lblPercentage2.Left + this.lblPercentage.Width - 1
this.lblPercentage2.Width = this.lblPercentage.Width
else
this.lblPercentage2.Width = ;
this.shpThermBar.Left + this.shpThermBar.Width - ;
this.lblPercentage2.Left - 1
endif
else
this.lblPercentage2.Width = 0
endif
endif
ENDPROC
ENDDEFINE
DEFINE CLASS _thermometer AS form
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Shape10" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape9" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape8" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape7" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape6" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblTitle" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblTask" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpThermBar" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPercentage" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPercentage2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape11" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape12" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape13" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape14" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblEscapeMessage" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: complete && Displays 100% complete thermometer.
*m: update && Updates thermometer. Parameter iProgress, cTask. iProgress - percent to display, cTask - message to display.
*p: ccurrenttask && Current task.
*p: cthermref
*p: ibasis && Basis for calculating percentage.
*p: ipercentage && This is percentage complete to display
*p: iprogress && This is amount complete.
*p: shpthermbarmaxwidth
*</DefinedPropArrayMethod>
*<PropValue>
AlwaysOnTop = .F.
AutoCenter = .T.
BorderStyle = 0
Caption = ""
ccurrenttask = ('')
Closable = .F.
ControlBox = .F.
cthermref = ('')
DoCreate = .T.
Height = 88
ibasis = (0)
ipercentage = (0)
iprogress = (0)
MaxButton = .F.
MinButton = .F.
Movable = .F.
Name = "_thermometer"
ScaleMode = 3
shpthermbarmaxwidth = 322
Width = 356
*</PropValue>
ADD OBJECT 'lblEscapeMessage' AS label WITH ;
Alignment = 2, ;
BackColor = 192,192,192, ;
BackStyle = 0, ;
Caption = "", ;
FontBold = .F., ;
FontCharSet = 238, ;
FontName = "Arial", ;
FontSize = 8, ;
Height = 14, ;
Left = 17, ;
Name = "lblEscapeMessage", ;
Top = 68, ;
Width = 322, ;
WordWrap = .F.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblPercentage' AS label WITH ;
BackStyle = 0, ;
Caption = "0%", ;
FontName = "MS Sans Serif", ;
FontSize = 8, ;
Height = 13, ;
Left = 170, ;
Name = "lblPercentage", ;
Top = 47, ;
Width = 16
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblPercentage2' AS label WITH ;
BackColor = 0,0,255, ;
BackStyle = 0, ;
Caption = "Label1", ;
FontName = "MS Sans Serif", ;
FontSize = 8, ;
ForeColor = 255,255,255, ;
Height = 13, ;
Left = 170, ;
Name = "lblPercentage2", ;
Top = 47, ;
Width = 0
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblTask' AS label WITH ;
BackColor = 192,192,192, ;
BackStyle = 0, ;
Caption = "", ;
FontCharSet = 238, ;
FontName = "Arial", ;
FontSize = 8, ;
Height = 16, ;
Left = 18, ;
Name = "lblTask", ;
Top = 27, ;
Width = 319, ;
WordWrap = .F.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblTitle' AS label WITH ;
BackColor = 192,192,192, ;
BackStyle = 0, ;
Caption = "", ;
FontCharSet = 238, ;
FontName = "Arial", ;
FontSize = 8, ;
Height = 16, ;
Left = 18, ;
Name = "lblTitle", ;
Top = 14, ;
Width = 319, ;
WordWrap = .F.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Shape1' AS shape WITH ;
BackStyle = 0, ;
Height = 88, ;
Left = 0, ;
Name = "Shape1", ;
Top = 0, ;
Width = 356
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape10' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 81, ;
Left = 3, ;
Name = "Shape10", ;
Top = 3, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape11' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 1, ;
Left = 16, ;
Name = "Shape11", ;
Top = 45, ;
Width = 322
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape12' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 1, ;
Left = 16, ;
Name = "Shape12", ;
Top = 61, ;
Width = 323
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape13' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 16, ;
Left = 16, ;
Name = "Shape13", ;
Top = 45, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape14' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 17, ;
Left = 338, ;
Name = "Shape14", ;
Top = 45, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape2' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 1, ;
Left = 1, ;
Name = "Shape2", ;
Top = 1, ;
Width = 353
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape3' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 85, ;
Left = 1, ;
Name = "Shape3", ;
Top = 1, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape4' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 1, ;
Left = 1, ;
Name = "Shape4", ;
Top = 86, ;
Width = 354
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape5' AS shape WITH ;
BorderStyle = 0, ;
FillColor = 192,192,192, ;
FillStyle = 0, ;
Height = 15, ;
Left = 17, ;
Name = "Shape5", ;
Top = 47, ;
Width = 322
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape6' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 86, ;
Left = 354, ;
Name = "Shape6", ;
Top = 1, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape7' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 1, ;
Left = 3, ;
Name = "Shape7", ;
Top = 84, ;
Width = 350
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape8' AS shape WITH ;
BorderColor = 255,255,255, ;
Height = 82, ;
Left = 352, ;
Name = "Shape8", ;
Top = 3, ;
Width = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape9' AS shape WITH ;
BorderColor = 128,128,128, ;
Height = 1, ;
Left = 3, ;
Name = "Shape9", ;
Top = 3, ;
Width = 349
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'shpThermBar' AS shape WITH ;
BorderStyle = 0, ;
FillColor = 128,128,128, ;
FillStyle = 0, ;
Height = 16, ;
Left = 17, ;
Name = "shpThermBar", ;
Top = 46, ;
Width = 0
*< END OBJECT: BaseClass="shape" />
PROCEDURE complete && Displays 100% complete thermometer.
* This is the default complete message
Lparameters m.cTask
#define THERMCOMPLETE_LOC "Terminat."
LOCAL iSeconds,cThermRef
if PCOUNT() = 0
m.cTask = THERMCOMPLETE_LOC
endif
this.Update(iif(this.iBasis <> 0, this.iBasis, 100), m.cTask)
m.iSeconds=seconds() + 1
do while seconds() < m.iSeconds
*- wait a sec
enddo
if !empty(this.cThermRef)
m.cThermRef = this.cThermRef
&cThermRef = .NULL.
release this
endif
ENDPROC
PROCEDURE Init
* m.cTitle is displayed on the first line of the window
* m.iBasis is used to calculate the percentage complete
* m.iInterval is the frequency used for updating the thermometer
Lparameters cTitle, iBasis, iInterval
this.shape5.fillcolor = this.backcolor && for Win95 compat
this.lblTitle.Caption = iif(empty(m.cTitle),'',m.cTitle)
this.iBasis = iif(empty(m.iBasis),0,m.iBasis)
this.shpThermBar.FillColor = rgb(128,128,128)
ENDPROC
PROCEDURE update && Updates thermometer. Parameter iProgress, cTask. iProgress - percent to display, cTask - message to display.
* m.iProgress is the percentage complete, or, if Init() was passed
* an m.iBasis value, is used to calculate the percentage
* m.cTask is displayed on the second line of the window
Lparameters m.iProgress, m.cTask
LOCAL iPercentage,iAvgCharWidth
if parameters()<>0 .and. type('m.iProgress') = 'N'
this.iProgress = max(0, m.iProgress)
endif
if PCOUNT() >= 2 .and. type('m.cTask') = 'C'
* If we're specifically passed a null string, clear the current task,
* otherwise leave it alone
this.cCurrentTask = m.cTask
endif
if !empty(this.iBasis)
m.iPercentage = int(this.iProgress/this.iBasis*100)
else
m.iPercentage = this.iProgress
endif
m.iPercentage = min(100,max(0,m.iPercentage))
if m.iPercentage <> this.iPercentage
if len(alltrim(str(m.iPercentage,3)))<>len(alltrim(str(this.iPercentage,3)))
iAvgCharWidth=fontmetric(6,this.lblPercentage.FontName, ;
this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I',''))
this.lblPercentage.Width=txtwidth(alltrim(str(m.iPercentage,3)) + '%', ;
this.lblPercentage.FontName,this.lblPercentage.FontSize, ;
iif(this.lblPercentage.FontBold,'B','')+ ;
iif(this.lblPercentage.FontItalic,'I','')) * iAvgCharWidth
this.lblPercentage.Left=int((this.shpThermBarMaxWidth- ;
this.lblPercentage.Width) / 2)+this.shpThermBar.Left-1
this.lblPercentage2.Left=this.lblPercentage.Left
endif
this.iPercentage = m.iPercentage
this.shpThermBar.Width = int((this.shpThermBarMaxWidth)*this.iPercentage/100)
this.lblPercentage.Caption = alltrim(str(m.iPercentage,3)) + '%'
this.lblPercentage2.Caption = this.lblPercentage.Caption
if this.shpThermBar.Left + this.shpThermBar.Width -1 >= ;
this.lblPercentage2.Left
if this.shpThermBar.Left + this.shpThermBar.Width - 1 >= ;
this.lblPercentage2.Left + this.lblPercentage.Width - 1
this.lblPercentage2.Width = this.lblPercentage.Width
else
this.lblPercentage2.Width = ;
this.shpThermBar.Left + this.shpThermBar.Width - ;
this.lblPercentage2.Left - 1
endif
else
this.lblPercentage2.Width = 0
endif
endif
if ! this.lblTask.Caption == this.cCurrentTask
this.lblTask.Caption = this.cCurrentTask
endif
ENDPROC
ENDDEFINE

14
clase/_tx_base.vc2 Normal file
View File

@@ -0,0 +1,14 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="_tx_base.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS _txbase AS _textbox OF "_baza.vcx"
*< CLASSDATA: Baseclass="textbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "tx_simplu"
*</PropValue>
ENDDEFINE

306
clase/accessibility.vc2 Normal file
View File

@@ -0,0 +1,306 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="accessibility.vcx" CPID="1250" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS cusfonthandler AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: applyfont
*m: applyfonttogrid
*m: changefont
*m: computenewfontsize
*m: getfont
*m: promptforfont
*p: cdefaultfont && The default font to display when prompting the user for the new font, if the target container doesn't have font properties.
*p: cexceptclasses && Clasele exceptate de la marirea fontului: ex: LABEL
*p: cfontname && The name of the font chosen by the user.cResize The name of a class to use for resizing and repositioning controls.
*p: cresizelib && The name of the class library containing the resizer class.
*p: ldrilldown && Indicates whether the new font and size should be applied to contained objects. .T., by default.
*p: lnoresize && Indicates whether the resizing step should be omitted. .F., by default.
*p: ndefaultsize && The default font size to display when prompting the user for the new font, if the target container doesn't have font properties.
*p: nfontsize && The size of the font chosen by the user.
*p: noriginalsize && The original font size of the container (form), used in proportional sizing.
*p: oresize && An object reference to the resizing object.
*p: otarget && An object reference to the object (form) being refonted.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
cdefaultfont = Segoe UI
cexceptclasses =
cfontname = Segoe UI
cresizelib =
Height = 17
ldrilldown = .T.
lnoresize = .T.
Name = "cusfonthandler"
ndefaultsize = 10
nfontsize = 0
noriginalsize = 0
oresize = .NULL.
otarget = .NULL.
Width = 22
_memberdata = <VFPData>
<memberdata name="cdefaultfont" display="cDefaultFont"/>
<memberdata name="cfontname" display="cFontName"/>
<memberdata name="cresizelib" display="cResizeLib"/>
<memberdata name="ldrilldown" display="lDrillDown"/>
<memberdata name="lnoresize" display="lNoResize"/>
<memberdata name="ndefaultsize" display="nDefaultSize"/>
<memberdata name="nfontsize" display="nFontSize"/>
<memberdata name="noriginalsize" display="nOriginalSize"/>
<memberdata name="oresize" display="oResize"/>
<memberdata name="otarget" displa<VFPData><memberdata name="cdefaultfont" display="cDefaultFont"/>
<memberdata name="cdefaultfont" display="cDefaultFont"/>
<memberdata name="cfontname" display="cFontName"/>
<memberdata name="cresizelib" display="cResizeLib"/>
<memberdata name="ldrilldown" display="lDrillDown"/>
<memberdata name="lnoresize" display="lNoResize"/>
</VFPData>
*</PropValue>
PROCEDURE applyfont
* Applies the new font and size to an object and then, recursively, to its contents.
Lparameters oApplyTo
Local nRatio
If Pemstatus(oApplyTo, "FontName",5)
With oApplyTo
* Compute new font size
nNewSize = This.ComputeNewFontSize(.FontSize)
*!* If nNewSize < 8
*!* * Handle small fonts
*!* .FontSize = nNewSize
*!* ENDIF
If Pemstatus(oApplyTo,'lChangeFont',5)
If .lChangeFont
.FontName = This.cFontName
Endif
Endif
If Pemstatus(oApplyTo,'lResizeFont',5)
*!* IF .lResizeFont
If .lResizeFont And nNewSize >= 8
.FontSize = nNewSize
Endif
Endif
Endwith
Endif
If This.lDrillDown
* Apply the new font to all contained objects
* keeping the fonts proportional
If Pemstatus(oApplyTo, "Objects", 5)
* it's a container, so away we go
Try
For Each oObject In oApplyTo.Objects
* Don't modify objects with lResizeFont = .F.
If Pemstatus(oObject,'lResizeFont',5)
If !oObject.lResizeFont
* Am adaugat linia cu This.ApplyFont pentru ca pot avea alte obiecte in oObject pe care trebuie modificat fontul
* Ex. : un grid dintr-un pageframe
This.ApplyFont(oObject)
Loop
Endif
Endif
If Upper(oObject.BaseClass) = "GRID"
This.ApplyFontToGrid( oObject )
Else
This.ApplyFont( oObject )
Endif
Endfor && Each
Catch
Endtry
Endif && Pemstatus
Endif && This.lDrillDown
Return
ENDPROC
PROCEDURE applyfonttogrid
* Applies the new font and size to a grid and its contents. Grids require special handling.
* Change font in grid. Special handling is needed
* because any change to a grid or column's FontName
* and FontSize properties is automatically passed down to its members.
Lparameters oGrid As Grid
Local aGridData[1], oTraverser, oColumn As Column
Local nEntries, nCount, aFontData[1]
oTraverser = CREATEOBJECT("cusTraverseGrid") && Newobject("cusTraverseGrid","Accessibility")
nEntries = oTraverser.BuildGridArray(oGrid, @aGridData)
Release oTraverser
*!* nEntries = Alen(aGridData)
Dimension aFontData[ nEntries, 2]
* Now get original font info
For nCount = 1 To nEntries
aFontData[ nCount, 1 ] = aGridData[ nCount ]
If Pemstatus(aGridData[ nCount ], "FontSize", 5)
aFontData[ nCount, 2 ] = ;
aGridData[ nCount ].FontSize
Else
aFontData[ nCount, 2 ] = -1
Endif
Endfor
* Now apply font
* First, apply to grid
*!* modificare 13.09.2013 : vreau sa nu imi faca randul mai mic decat era initial
If !Pemstatus(oGrid,"nMinRowHeight",5)
AddProperty(oGrid,"nMinRowHeight",oGrid.RowHeight)
Endif
*!* modificare 13.09.2013 ^
*!* modificare 24.09.2013 : vreau sa nu imi faca header-ul mai mic decat era initial
If !Pemstatus(oGrid,"nMinHeaderHeight",5)
AddProperty(oGrid,"nMinHeaderHeight",oGrid.HeaderHeight)
Endif
*!* modificare 13.09.2013 ^
oGrid.FontName = This.cFontName
oGrid.FontSize = This.ComputeNewFontSize(oGrid.FontSize)
oGrid.RowHeight = MAX(oGrid.nMinRowHeight,oGrid.RowHeight) && modificare 13.09.2013
oGrid.HeaderHeight = IIF(oGrid.nMinHeaderHeight = 0, 0, MAX(oGrid.nMinHeaderHeight,oGrid.HeaderHeight)) && modificare 24.09.2013
* Now apply to grid members from the outside in
* using stored font information
For nCount = 1 To nEntries
If aFontData[ nCount, 2] <> -1
aFontData[ nCount, 1].FontName = This.cFontName
aFontData[ nCount, 1].FontSize = ;
This.ComputeNewFontSize( aFontData[ nCount, 2] )
Endif
Endfor
ENDPROC
PROCEDURE changefont
Lparameters oTarget, tnResizeFont, tcFontName
* The key method that lets the user choose a new font and size and apply it.
This.oTarget = m.oTarget
If This.Getfont(m.tnResizeFont, m.tcFontName)
If Not This.lNoResize And ;
NOT Pemstatus(This.oTarget, "lHasResizerData", 5)
* If we're resizing and haven't saved form info,
* save it now
This.cusResize.SaveFormDimensions( This.oTarget )
Endif
This.ApplyFont( This.oTarget )
* Now resize if requested and available
If Not This.lNoResize And ;
PEMSTATUS(This,"cusResize", 5)
* If we're resizing, do it.
This.cusResize.AdjustControls( This.oTarget )
Endif
Endif && This.GetFont
ENDPROC
PROCEDURE computenewfontsize
* Computes the new font size of a control, given the old font size.
Lparameters nOldSize
Local nRatio, nNewSize
Assert Vartype(nOldSize) = "N" Message "ComputeNewFontSize: Must pass numeric parameter"
nRatio = nOldSize/This.nOriginalSize
nNewSize = Round(This.nFontSize * nRatio,0)
Return nNewSize
ENDPROC
PROCEDURE getfont
LPARAMETERS tnResizeFont, tcFontName
* tnFontSize: = just resizes the font, without prompting the user
* Sets things up for the user to choose a new font and size.
* Let the user choose a font.
Local lReturn
* First, set up defaults
If Pemstatus(This.oTarget,"FontName",5)
This.cFontName = This.oTarget.FontName
This.nFontSize = This.oTarget.FontSize
This.nOriginalSize = This.nFontSize
Else
This.cFontName = This.cDefaultFont
This.nFontSize = This.nDefaultSize
This.nOriginalSize = This.nFontSize
ENDIF
IF TYPE('tnResizeFont') = 'N'
This.nFontSize = This.nFontSize + m.tnResizeFont
IF TYPE('tcFontName') = 'C' AND !EMPTY(m.tcFontName)
This.cFontName = m.tcFontName
ENDIF
lReturn = .T.
else
lReturn = This.PromptForFont()
ENDIF
Return m.lReturn
ENDPROC
PROCEDURE promptforfont
* Prompt the user for font input
* and store the results in the right properties
* In this version, the GETFONT() dialog is used
* but the bold and italic settings are ignored.
Local cNewFont, lReturn
cNewFont = Getfont(This.cFontName, This.nFontSize)
If Not Empty(cNewFont)
Alines(aFontInfo, cNewFont, ",")
This.cFontName = aFontInfo[1]
This.nFontSize = Val(aFontInfo[2])
lReturn = .T.
Else
lReturn = .F.
Endif
Return lReturn
ENDPROC
ENDDEFINE
DEFINE CLASS custraversegrid AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: buildgridarray && Build an array containing an entry for each object \ncontained in the grid (drilling down to the very bottom level)
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
Height = 17
Name = "custraversegrid"
Width = 27
_memberdata = <VFPData>
<memberdata name="buildgridarray" display="BuildGridArray"/>
</VFPData>
*</PropValue>
PROCEDURE buildgridarray && Build an array containing an entry for each object \ncontained in the grid (drilling down to the very bottom level)
Lparameters oGrid, aGridData
Local lnDimension, loColumn, loControl
EXTERNAL ARRAY aGridData
lnDimension = 0
For Each loColumn In oGrid.Columns
lnDimension = lnDimension + 1
Dimension aGridData[m.lnDimension]
aGridData[m.lnDimension] = m.loColumn
For Each loControl In loColumn.Controls
lnDimension = lnDimension + 1
Dimension aGridData[m.lnDimension]
aGridData[m.lnDimension] = m.loControl
Endfor
Endfor
RETURN m.lnDimension
ENDPROC
ENDDEFINE

529
clase/anaf_efactura.sc2 Normal file
View File

@@ -0,0 +1,529 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="anaf_efactura.scx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS anaf_efactura1 AS anaf_efactura OF "anaf_efactura.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />
*<PropValue>
DoCreate = .T.
Name = "Anaf_efactura1"
_shape1.Name = "_shape1"
_shape2.Name = "_shape2"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
BUT_TERMIN1.Name = "BUT_TERMIN1"
Gridsort1.Name = "Gridsort1"
But_start_criterii1.Name = "But_start_criterii1"
But_reset_criterii1.Name = "But_reset_criterii1"
But_excel1.Name = "But_excel1"
pgfeFactura.ErasePage = .T.
pgfeFactura.Name = "pgfeFactura"
pgfeFactura.Page1.chkDiferente.Alignment = 0
pgfeFactura.Page1.chkDiferente.Name = "chkDiferente"
pgfeFactura.Page1.chkErori.Alignment = 0
pgfeFactura.Page1.chkErori.Name = "chkErori"
pgfeFactura.Page1.chkFortareRaspunsuri.Alignment = 0
pgfeFactura.Page1.chkFortareRaspunsuri.Name = "chkFortareRaspunsuri"
pgfeFactura.Page1.chkNetrimise.Alignment = 0
pgfeFactura.Page1.chkNetrimise.Name = "chkNetrimise"
pgfeFactura.Page1.chkPersFizice.Alignment = 0
pgfeFactura.Page1.chkPersFizice.Name = "chkPersFizice"
pgfeFactura.Page1.chkPJ.Alignment = 0
pgfeFactura.Page1.chkPJ.Name = "chkPJ"
pgfeFactura.Page1.chkTrimis.Alignment = 0
pgfeFactura.Page1.chkTrimis.Name = "chkTrimis"
pgfeFactura.Page1.chkTrimise.Alignment = 0
pgfeFactura.Page1.chkTrimise.Name = "chkTrimise"
pgfeFactura.Page1.chkValidareOnline.Alignment = 0
pgfeFactura.Page1.chkValidareOnline.Name = "chkValidareOnline"
pgfeFactura.Page1.cmdRaspunsuri.Name = "cmdRaspunsuri"
pgfeFactura.Page1.cmdTrimite.Name = "cmdTrimite"
pgfeFactura.Page1.Cmd_select_adv1.Name = "Cmd_select_adv1"
pgfeFactura.Page1.edtDetalii.Name = "edtDetalii"
pgfeFactura.Page1.grdDetaliiFacturi.Column1.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column1.Name = "Column1"
pgfeFactura.Page1.grdDetaliiFacturi.Column1.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column2.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column2.Name = "Column2"
pgfeFactura.Page1.grdDetaliiFacturi.Column2.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column3.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column3.Name = "Column3"
pgfeFactura.Page1.grdDetaliiFacturi.Column3.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column3._editbox1.Name = "_editbox1"
pgfeFactura.Page1.grdDetaliiFacturi.Column4.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column4.Name = "Column4"
pgfeFactura.Page1.grdDetaliiFacturi.Column4.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column5.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column5.Name = "Column5"
pgfeFactura.Page1.grdDetaliiFacturi.Column5.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column6.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column6.Name = "Column6"
pgfeFactura.Page1.grdDetaliiFacturi.Column6.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column7.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column7.Name = "Column7"
pgfeFactura.Page1.grdDetaliiFacturi.Column7.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column8.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column8.Name = "Column8"
pgfeFactura.Page1.grdDetaliiFacturi.Column8.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Column9.Header1.Name = "Header1"
pgfeFactura.Page1.grdDetaliiFacturi.Column9.Name = "Column9"
pgfeFactura.Page1.grdDetaliiFacturi.Column9.Text1.Name = "Text1"
pgfeFactura.Page1.grdDetaliiFacturi.Name = "grdDetaliiFacturi"
pgfeFactura.Page1.grdFacturiEmise.cAles.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cAles.Name = "cAles"
pgfeFactura.Page1.grdFacturiEmise.cAles.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cAles._checkbox1.Alignment = 2
pgfeFactura.Page1.grdFacturiEmise.cAles._checkbox1.Name = "_checkbox1"
pgfeFactura.Page1.grdFacturiEmise.cClient.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cClient.Name = "cClient"
pgfeFactura.Page1.grdFacturiEmise.cClient.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cCodFiscal.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cCodFiscal.Name = "cCodFiscal"
pgfeFactura.Page1.grdFacturiEmise.cCodFiscal.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cCurs.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cCurs.Name = "cCurs"
pgfeFactura.Page1.grdFacturiEmise.cCurs.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cData.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cData.Name = "cData"
pgfeFactura.Page1.grdFacturiEmise.cData.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cDataRaspuns.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cDataRaspuns.Name = "cDataRaspuns"
pgfeFactura.Page1.grdFacturiEmise.cDataRaspuns.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cDataTrimis.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cDataTrimis.Name = "cDataTrimis"
pgfeFactura.Page1.grdFacturiEmise.cDataTrimis.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cDiferenta.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cDiferenta.Name = "cDiferenta"
pgfeFactura.Page1.grdFacturiEmise.cDiferenta.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cId.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cId.Name = "cId"
pgfeFactura.Page1.grdFacturiEmise.cId.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cIdIncarcare.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cIdIncarcare.Name = "cIdIncarcare"
pgfeFactura.Page1.grdFacturiEmise.cIdIncarcare.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cInValuta.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cInValuta.Name = "cInValuta"
pgfeFactura.Page1.grdFacturiEmise.cInValuta.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cInValuta._checkbox1.Alignment = 2
pgfeFactura.Page1.grdFacturiEmise.cInValuta._checkbox1.Name = "_checkbox1"
pgfeFactura.Page1.grdFacturiEmise.cJtotcTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cJtotcTVA.Name = "cJtotcTVA"
pgfeFactura.Page1.grdFacturiEmise.cJtotcTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cMesajRaspuns.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cMesajRaspuns.Name = "cMesajRaspuns"
pgfeFactura.Page1.grdFacturiEmise.cMesajRaspuns.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cMesajTrimis.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cMesajTrimis.Name = "cMesajTrimis"
pgfeFactura.Page1.grdFacturiEmise.cMesajTrimis.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cNr.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cNr.Name = "cNr"
pgfeFactura.Page1.grdFacturiEmise.cNr.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cNumeValuta.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cNumeValuta.Name = "cNumeValuta"
pgfeFactura.Page1.grdFacturiEmise.cNumeValuta.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTest.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTest.Name = "cTest"
pgfeFactura.Page1.grdFacturiEmise.cTest.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTest._checkbox1.Alignment = 2
pgfeFactura.Page1.grdFacturiEmise.cTest._checkbox1.Name = "_checkbox1"
pgfeFactura.Page1.grdFacturiEmise.cTipMesajRaspuns.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTipMesajRaspuns.Name = "cTipMesajRaspuns"
pgfeFactura.Page1.grdFacturiEmise.cTipMesajRaspuns.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTipPersoana.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTipPersoana.Name = "cTipPersoana"
pgfeFactura.Page1.grdFacturiEmise.cTipPersoana.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTotalCuTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTotalCuTVA.Name = "cTotalCuTVA"
pgfeFactura.Page1.grdFacturiEmise.cTotalCuTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTotalFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTotalFaraTVA.Name = "cTotalFaraTVA"
pgfeFactura.Page1.grdFacturiEmise.cTotalFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTotalTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTotalTVA.Name = "cTotalTVA"
pgfeFactura.Page1.grdFacturiEmise.cTotalTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTotVal.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTotVal.Name = "cTotVal"
pgfeFactura.Page1.grdFacturiEmise.cTotVal.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTrimis.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTrimis.Name = "cTrimis"
pgfeFactura.Page1.grdFacturiEmise.cTrimis.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cTrimis._checkbox1.Alignment = 2
pgfeFactura.Page1.grdFacturiEmise.cTrimis._checkbox1.Name = "_checkbox1"
pgfeFactura.Page1.grdFacturiEmise.cTvaVal.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cTvaVal.Name = "cTvaVal"
pgfeFactura.Page1.grdFacturiEmise.cTvaVal.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cUtilizator.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cUtilizator.Name = "cUtilizator"
pgfeFactura.Page1.grdFacturiEmise.cUtilizator.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cValVal.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cValVal.Name = "cValVal"
pgfeFactura.Page1.grdFacturiEmise.cValVal.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxDiscount.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxDiscount.Name = "cxDiscount"
pgfeFactura.Page1.grdFacturiEmise.cxDiscount.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxNumeValuta.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxNumeValuta.Name = "cxNumeValuta"
pgfeFactura.Page1.grdFacturiEmise.cxNumeValuta.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxTaxe.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxTaxe.Name = "cxTaxe"
pgfeFactura.Page1.grdFacturiEmise.cxTaxe.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalCuTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalCuTVA.Name = "cxTotalCuTVA"
pgfeFactura.Page1.grdFacturiEmise.cxTotalCuTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalDePlata.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalDePlata.Name = "cxTotalDePlata"
pgfeFactura.Page1.grdFacturiEmise.cxTotalDePlata.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalFaraTVA.Name = "cxTotalFaraTVA"
pgfeFactura.Page1.grdFacturiEmise.cxTotalFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxTotalTVA.Name = "cxTotalTVA"
pgfeFactura.Page1.grdFacturiEmise.cxTotalTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.cxValoareFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page1.grdFacturiEmise.cxValoareFaraTVA.Name = "cxValoareFaraTVA"
pgfeFactura.Page1.grdFacturiEmise.cxValoareFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page1.grdFacturiEmise.Name = "grdFacturiEmise"
pgfeFactura.Page1.Gridextra1.Name = "Gridextra1"
pgfeFactura.Page1.Gridextra2.Name = "Gridextra2"
pgfeFactura.Page1.lblDetalii.Name = "lblDetalii"
pgfeFactura.Page1.lblMesajRaspuns.Name = "lblMesajRaspuns"
pgfeFactura.Page1.lblMesajTrimis.Name = "lblMesajTrimis"
pgfeFactura.Page1.Name = "Page1"
pgfeFactura.Page1.PageOrder = 1
pgfeFactura.Page1.txtMesajRaspuns.Name = "txtMesajRaspuns"
pgfeFactura.Page1.txtMesajTrimis.Name = "txtMesajTrimis"
pgfeFactura.Page1._grdfooter1.Name = "_grdfooter1"
pgfeFactura.Page1._shape1.Name = "_shape1"
pgfeFactura.Page2.edtDetalii.Name = "edtDetalii"
pgfeFactura.Page2.grdDetaliiFacturi.Column1.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column1.Name = "Column1"
pgfeFactura.Page2.grdDetaliiFacturi.Column1.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column2.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column2.Name = "Column2"
pgfeFactura.Page2.grdDetaliiFacturi.Column2.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column3.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column3.Name = "Column3"
pgfeFactura.Page2.grdDetaliiFacturi.Column3.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column3._editbox1.Name = "_editbox1"
pgfeFactura.Page2.grdDetaliiFacturi.Column4.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column4.Name = "Column4"
pgfeFactura.Page2.grdDetaliiFacturi.Column4.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column5.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column5.Name = "Column5"
pgfeFactura.Page2.grdDetaliiFacturi.Column5.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column6.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column6.Name = "Column6"
pgfeFactura.Page2.grdDetaliiFacturi.Column6.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column7.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column7.Name = "Column7"
pgfeFactura.Page2.grdDetaliiFacturi.Column7.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column8.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column8.Name = "Column8"
pgfeFactura.Page2.grdDetaliiFacturi.Column8.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Column9.Header1.Name = "Header1"
pgfeFactura.Page2.grdDetaliiFacturi.Column9.Name = "Column9"
pgfeFactura.Page2.grdDetaliiFacturi.Column9.Text1.Name = "Text1"
pgfeFactura.Page2.grdDetaliiFacturi.Name = "grdDetaliiFacturi"
pgfeFactura.Page2.grdFacturiPrimite.cAles.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cAles.Name = "cAles"
pgfeFactura.Page2.grdFacturiPrimite.cAles.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cAles._checkbox1.Alignment = 2
pgfeFactura.Page2.grdFacturiPrimite.cAles._checkbox1.Name = "_checkbox1"
pgfeFactura.Page2.grdFacturiPrimite.cCodFiscalEmitent.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cCodFiscalEmitent.Name = "cCodFiscalEmitent"
pgfeFactura.Page2.grdFacturiPrimite.cCodFiscalEmitent.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cData.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cData.Name = "cData"
pgfeFactura.Page2.grdFacturiPrimite.cData.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDataScad.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDataScad.Name = "cDataScad"
pgfeFactura.Page2.grdFacturiPrimite.cDataScad.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDataTrimis.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDataTrimis.Name = "cDataTrimis"
pgfeFactura.Page2.grdFacturiPrimite.cDataTrimis.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDescarcat.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDescarcat.Name = "cDescarcat"
pgfeFactura.Page2.grdFacturiPrimite.cDescarcat.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDescarcat._checkbox1.Alignment = 2
pgfeFactura.Page2.grdFacturiPrimite.cDescarcat._checkbox1.Name = "_checkbox1"
pgfeFactura.Page2.grdFacturiPrimite.cDescriere.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDescriere.Name = "cDescriere"
pgfeFactura.Page2.grdFacturiPrimite.cDescriere.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDescriere._editbox1.Name = "_editbox1"
pgfeFactura.Page2.grdFacturiPrimite.cDetaliiPlata.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDetaliiPlata.Name = "cDetaliiPlata"
pgfeFactura.Page2.grdFacturiPrimite.cDetaliiPlata.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDetaliiPlata._editbox1.Name = "_editbox1"
pgfeFactura.Page2.grdFacturiPrimite.cDiferenta.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDiferenta.Name = "cDiferenta"
pgfeFactura.Page2.grdFacturiPrimite.cDiferenta.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cDiscount.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cDiscount.Name = "cDiscount"
pgfeFactura.Page2.grdFacturiPrimite.cDiscount.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cFilePath.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cFilePath.Name = "cFilePath"
pgfeFactura.Page2.grdFacturiPrimite.cFilePath.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cId.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cId.Name = "cId"
pgfeFactura.Page2.grdFacturiPrimite.cId.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cIdDescarcare.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cIdDescarcare.Name = "cIdDescarcare"
pgfeFactura.Page2.grdFacturiPrimite.cIdDescarcare.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cIdIncarcare.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cIdIncarcare.Name = "cIdIncarcare"
pgfeFactura.Page2.grdFacturiPrimite.cIdIncarcare.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cJtotcTVA.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cJtotcTVA.Name = "cJtotcTVA"
pgfeFactura.Page2.grdFacturiPrimite.cJtotcTVA.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cNr.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cNr.Name = "cNr"
pgfeFactura.Page2.grdFacturiPrimite.cNr.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cNumeValuta.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cNumeValuta.Name = "cNumeValuta"
pgfeFactura.Page2.grdFacturiPrimite.cNumeValuta.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesat.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesat.Name = "cProcesat"
pgfeFactura.Page2.grdFacturiPrimite.cProcesat.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesat._checkbox1.Alignment = 2
pgfeFactura.Page2.grdFacturiPrimite.cProcesat._checkbox1.Name = "_checkbox1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesatServer.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesatServer.Name = "cProcesatServer"
pgfeFactura.Page2.grdFacturiPrimite.cProcesatServer.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cProcesatServer._checkbox1.Alignment = 2
pgfeFactura.Page2.grdFacturiPrimite.cProcesatServer._checkbox1.Name = "_checkbox1"
pgfeFactura.Page2.grdFacturiPrimite.cTaxe.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTaxe.Name = "cTaxe"
pgfeFactura.Page2.grdFacturiPrimite.cTaxe.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTipMesajRaspuns.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTipMesajRaspuns.Name = "cTipMesajRaspuns"
pgfeFactura.Page2.grdFacturiPrimite.cTipMesajRaspuns.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalCuTVA.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalCuTVA.Name = "cTotalCuTVA"
pgfeFactura.Page2.grdFacturiPrimite.cTotalCuTVA.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTotaldePlata.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTotaldePlata.Name = "cTotaldePlata"
pgfeFactura.Page2.grdFacturiPrimite.cTotaldePlata.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalFaraTVA.Name = "cTotalFaraTVA"
pgfeFactura.Page2.grdFacturiPrimite.cTotalFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVA.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVA.Name = "cTotalTVA"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVA.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVARON.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVARON.Name = "cTotalTVARON"
pgfeFactura.Page2.grdFacturiPrimite.cTotalTVARON.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cValoareFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cValoareFaraTVA.Name = "cValoareFaraTVA"
pgfeFactura.Page2.grdFacturiPrimite.cValoareFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cXClient.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cXClient.Name = "cXClient"
pgfeFactura.Page2.grdFacturiPrimite.cXClient.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.cXFurnizor.Header1.Name = "Header1"
pgfeFactura.Page2.grdFacturiPrimite.cXFurnizor.Name = "cXFurnizor"
pgfeFactura.Page2.grdFacturiPrimite.cXFurnizor.Text1.Name = "Text1"
pgfeFactura.Page2.grdFacturiPrimite.Name = "grdFacturiPrimite"
pgfeFactura.Page2.Gridextra1.Name = "Gridextra1"
pgfeFactura.Page2.Gridextra2.Name = "Gridextra2"
pgfeFactura.Page2.lblDetalii.Name = "lblDetalii"
pgfeFactura.Page2.lblMesajRaspuns.Name = "lblMesajRaspuns"
pgfeFactura.Page2.Name = "Page2"
pgfeFactura.Page2.PageOrder = 3
pgfeFactura.Page2.txtMesajRaspuns.Name = "txtMesajRaspuns"
pgfeFactura.Page2._grdfooter1.Name = "_grdfooter1"
pgfeFactura.Page2._shape1.Name = "_shape1"
pgfeFactura.Page3.edtDetalii.Name = "edtDetalii"
pgfeFactura.Page3.grdDetaliiFacturi.Column1.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column1.Name = "Column1"
pgfeFactura.Page3.grdDetaliiFacturi.Column1.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column2.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column2.Name = "Column2"
pgfeFactura.Page3.grdDetaliiFacturi.Column2.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column3.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column3.Name = "Column3"
pgfeFactura.Page3.grdDetaliiFacturi.Column3.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column3._editbox1.Name = "_editbox1"
pgfeFactura.Page3.grdDetaliiFacturi.Column4.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column4.Name = "Column4"
pgfeFactura.Page3.grdDetaliiFacturi.Column4.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column5.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column5.Name = "Column5"
pgfeFactura.Page3.grdDetaliiFacturi.Column5.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column6.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column6.Name = "Column6"
pgfeFactura.Page3.grdDetaliiFacturi.Column6.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column7.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column7.Name = "Column7"
pgfeFactura.Page3.grdDetaliiFacturi.Column7.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column8.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column8.Name = "Column8"
pgfeFactura.Page3.grdDetaliiFacturi.Column8.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Column9.Header1.Name = "Header1"
pgfeFactura.Page3.grdDetaliiFacturi.Column9.Name = "Column9"
pgfeFactura.Page3.grdDetaliiFacturi.Column9.Text1.Name = "Text1"
pgfeFactura.Page3.grdDetaliiFacturi.Name = "grdDetaliiFacturi"
pgfeFactura.Page3.grdFacturiTrimise.cAles.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cAles.Name = "cAles"
pgfeFactura.Page3.grdFacturiTrimise.cAles.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cAles._checkbox1.Alignment = 2
pgfeFactura.Page3.grdFacturiTrimise.cAles._checkbox1.Name = "_checkbox1"
pgfeFactura.Page3.grdFacturiTrimise.cCodFiscalBeneficiar.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cCodFiscalBeneficiar.Name = "cCodFiscalBeneficiar"
pgfeFactura.Page3.grdFacturiTrimise.cCodFiscalBeneficiar.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cData.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cData.Name = "cData"
pgfeFactura.Page3.grdFacturiTrimise.cData.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDataScad.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDataScad.Name = "cDataScad"
pgfeFactura.Page3.grdFacturiTrimise.cDataScad.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDataTrimis.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDataTrimis.Name = "cDataTrimis"
pgfeFactura.Page3.grdFacturiTrimise.cDataTrimis.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDescarcat.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDescarcat.Name = "cDescarcat"
pgfeFactura.Page3.grdFacturiTrimise.cDescarcat.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDescarcat._checkbox1.Alignment = 2
pgfeFactura.Page3.grdFacturiTrimise.cDescarcat._checkbox1.Name = "_checkbox1"
pgfeFactura.Page3.grdFacturiTrimise.cDescriere.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDescriere.Name = "cDescriere"
pgfeFactura.Page3.grdFacturiTrimise.cDescriere.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDescriere._editbox1.Name = "_editbox1"
pgfeFactura.Page3.grdFacturiTrimise.cDetaliiPlata.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDetaliiPlata.Name = "cDetaliiPlata"
pgfeFactura.Page3.grdFacturiTrimise.cDetaliiPlata.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDetaliiPlata._editbox1.Name = "_editbox1"
pgfeFactura.Page3.grdFacturiTrimise.cDiferenta.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDiferenta.Name = "cDiferenta"
pgfeFactura.Page3.grdFacturiTrimise.cDiferenta.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cDiscount.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cDiscount.Name = "cDiscount"
pgfeFactura.Page3.grdFacturiTrimise.cDiscount.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cFilePath.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cFilePath.Name = "cFilePath"
pgfeFactura.Page3.grdFacturiTrimise.cFilePath.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cId.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cId.Name = "cId"
pgfeFactura.Page3.grdFacturiTrimise.cId.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cIdDescarcare.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cIdDescarcare.Name = "cIdDescarcare"
pgfeFactura.Page3.grdFacturiTrimise.cIdDescarcare.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cIdIncarcare.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cIdIncarcare.Name = "cIdIncarcare"
pgfeFactura.Page3.grdFacturiTrimise.cIdIncarcare.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cJtotcTVA.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cJtotcTVA.Name = "cJtotcTVA"
pgfeFactura.Page3.grdFacturiTrimise.cJtotcTVA.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cNr.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cNr.Name = "cNr"
pgfeFactura.Page3.grdFacturiTrimise.cNr.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cNumeValuta.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cNumeValuta.Name = "cNumeValuta"
pgfeFactura.Page3.grdFacturiTrimise.cNumeValuta.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesat.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesat.Name = "cProcesat"
pgfeFactura.Page3.grdFacturiTrimise.cProcesat.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesat._checkbox1.Alignment = 2
pgfeFactura.Page3.grdFacturiTrimise.cProcesat._checkbox1.Name = "_checkbox1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesatServer.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesatServer.Name = "cProcesatServer"
pgfeFactura.Page3.grdFacturiTrimise.cProcesatServer.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cProcesatServer._checkbox1.Alignment = 2
pgfeFactura.Page3.grdFacturiTrimise.cProcesatServer._checkbox1.Name = "_checkbox1"
pgfeFactura.Page3.grdFacturiTrimise.cTaxe.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTaxe.Name = "cTaxe"
pgfeFactura.Page3.grdFacturiTrimise.cTaxe.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTest.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTest.Name = "cTest"
pgfeFactura.Page3.grdFacturiTrimise.cTest.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTest._checkbox1.Alignment = 2
pgfeFactura.Page3.grdFacturiTrimise.cTest._checkbox1.Name = "_checkbox1"
pgfeFactura.Page3.grdFacturiTrimise.cTipMesajRaspuns.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTipMesajRaspuns.Name = "cTipMesajRaspuns"
pgfeFactura.Page3.grdFacturiTrimise.cTipMesajRaspuns.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalCuTVA.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalCuTVA.Name = "cTotalCuTVA"
pgfeFactura.Page3.grdFacturiTrimise.cTotalCuTVA.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTotaldePlata.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTotaldePlata.Name = "cTotaldePlata"
pgfeFactura.Page3.grdFacturiTrimise.cTotaldePlata.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalFaraTVA.Name = "cTotalFaraTVA"
pgfeFactura.Page3.grdFacturiTrimise.cTotalFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVA.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVA.Name = "cTotalTVA"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVA.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVARON.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVARON.Name = "cTotalTVARON"
pgfeFactura.Page3.grdFacturiTrimise.cTotalTVARON.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cValoareFaraTVA.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cValoareFaraTVA.Name = "cValoareFaraTVA"
pgfeFactura.Page3.grdFacturiTrimise.cValoareFaraTVA.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cXClient.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cXClient.Name = "cXClient"
pgfeFactura.Page3.grdFacturiTrimise.cXClient.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.cXFurnizor.Header1.Name = "Header1"
pgfeFactura.Page3.grdFacturiTrimise.cXFurnizor.Name = "cXFurnizor"
pgfeFactura.Page3.grdFacturiTrimise.cXFurnizor.Text1.Name = "Text1"
pgfeFactura.Page3.grdFacturiTrimise.Name = "grdFacturiTrimise"
pgfeFactura.Page3.Gridextra1.Name = "Gridextra1"
pgfeFactura.Page3.Gridextra2.Name = "Gridextra2"
pgfeFactura.Page3.lblDetalii.Name = "lblDetalii"
pgfeFactura.Page3.lblMesajRaspuns.Name = "lblMesajRaspuns"
pgfeFactura.Page3.lblMesajTrimis.Name = "lblMesajTrimis"
pgfeFactura.Page3.Name = "Page3"
pgfeFactura.Page3.PageOrder = 2
pgfeFactura.Page3.txtMesajRaspuns.Name = "txtMesajRaspuns"
pgfeFactura.Page3.txtMesajTrimis.Name = "txtMesajTrimis"
pgfeFactura.Page3._grdfooter1.Name = "_grdfooter1"
pgfeFactura.Page3._shape1.Name = "_shape1"
pgfeFactura.Page4.chkValidareOnline.Alignment = 0
pgfeFactura.Page4.chkValidareOnline.Name = "chkValidareOnline"
pgfeFactura.Page4.lblMesajTrimis.Name = "lblMesajTrimis"
pgfeFactura.Page4.lblToken.Name = "lblToken"
pgfeFactura.Page4.Name = "Page4"
pgfeFactura.Page4.PageOrder = 4
pgfeFactura.Page4.txtNetworkPath.Name = "txtNetworkPath"
pgfeFactura.Page4.txtResponsesPathLocal.Name = "txtResponsesPathLocal"
pgfeFactura.Page4.txtResponsesPathServer.Name = "txtResponsesPathServer"
pgfeFactura.Page4.txtSaveClientiFile.Name = "txtSaveClientiFile"
pgfeFactura.Page4.txtSaveClientiPath.Name = "txtSaveClientiPath"
pgfeFactura.Page4.txtSaveFurnizoriFile.Name = "txtSaveFurnizoriFile"
pgfeFactura.Page4.txtSaveFurnizoriPath.Name = "txtSaveFurnizoriPath"
pgfeFactura.Page4.txtServerPath.Name = "txtServerPath"
pgfeFactura.Page4._checkbox1.Alignment = 0
pgfeFactura.Page4._checkbox1.Name = "_checkbox1"
pgfeFactura.Page4._checkbox2.Alignment = 0
pgfeFactura.Page4._checkbox2.Name = "_checkbox2"
pgfeFactura.Page4._checkbox3.Alignment = 0
pgfeFactura.Page4._checkbox3.Name = "_checkbox3"
pgfeFactura.Page4._label1.Name = "_label1"
pgfeFactura.Page4._label2.Name = "_label2"
pgfeFactura.Page4._label3.Name = "_label3"
pgfeFactura.Page4._label4.Name = "_label4"
pgfeFactura.Page4._label5.Name = "_label5"
pgfeFactura.Page4._label6.Name = "_label6"
pgfeFactura.Page4._label7.Name = "_label7"
But_sterge1.Name = "But_sterge1"
But_listare1.Name = "But_listare1"
chkTest.Alignment = 0
chkTest.Name = "chkTest"
But_verifica1.Name = "But_verifica1"
But_attach1.Name = "But_attach1"
*</PropValue>
ENDDEFINE
DEFINE CLASS dataenvironment AS dataenvironment
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />
*<PropValue>
DataSource = .NULL.
Height = 0
Left = 0
Name = "Dataenvironment"
Top = 0
Width = 0
*</PropValue>
ENDDEFINE

13488
clase/anaf_efactura.vc2 Normal file

File diff suppressed because it is too large Load Diff

474
clase/appwiz.vc2 Normal file
View File

@@ -0,0 +1,474 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="appwiz.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
*< LIBCOMMENT: Application Wizard framework class library. />
*
DEFINE CLASS wzapplication AS container && Application class used as a framework for the Application Wizard.
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: beforereadevents && Method executed before READ EVENTS is executed when ReadEvents is called.
*m: clearevents && Clears any pending read events.
*m: doform && Executes an SCX form.
*m: dolabel && Executes an LBX label
*m: domenu && Executes an MPR menu.
*m: doprogram && Executes a PRG, APP, or EXE program.
*m: doreport && Executes an FRX report.
*m: filenotfoundmsgbox && Displays a File Not Found messagebox.
*m: getcaption && Returns the caption of the application.
*m: geticon && Returns the icon of the application.
*m: onshutdown && Occurs when the user attempts to exit Visual FoxPro.
*m: readevents && Starts read events mode.
*m: readini
*m: refreshformscollection && Refresh forms collection arrays and counters.
*m: release && Releases the application from memory.
*m: releaseform && Release specifc or active form from memory.
*m: releaseforms && Release all application forms from memory.
*m: resetformscollection && Reset arrays and counters of forms collection.
*m: restart
*m: restoreenvironment && Restores environment settings.
*m: saveenvironment && Saves environment settings.
*m: setcaption && Sets the caption of the application.
*m: seticon && Sets the icon of the application.
*m: show && Displays the application.
*m: writeini
*p: ccaption && Caption of the application object.
*p: cicon && Icon of the application object.
*p: clastcaption && Last caption setting of _screen before application object was intantiated.
*p: clasticon && Last icon setting of _screen before application object was intantiated.
*p: cstartupform && Form (SCX) which is executed when the application object is shown.
*p: cstartupmenu && Menu (MPR) which is executed when the application object is shown.
*p: lcascadeforms && Specifies whether forms are cascaded if multiple instances of the same form are opened in the same top and left positions of the desktop.
*p: lreadevents && Enable READ EVENTS within ReadEvents method.
*p: nformcount && Forms collection count for application object.
*p: npixeloffset && Number of pixels which offset multiple instances of the same form.
*a: aformnames[1,0] && Form name collection for application object.
*a: aforms[1,0] && Forms collection for application object.
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
PROTECTED ccaption,cicon,clastcaption,clasticon,Destroy,Init
*<PropValue>
BackColor = 0,0,255
ccaption =
cicon =
clastcaption =
clasticon =
cstartupform =
cstartupmenu =
Height = 34
lcascadeforms = .T.
lreadevents = .T.
Name = "wzapplication"
nformcount = 0
npixeloffset = 22
Visible = .F.
Width = 108
_memberdata = <VFPData>
<memberdata name="writeini" display="WriteIni"/>
</VFPData>
*</PropValue>
PROTECTED PROCEDURE beforereadevents && Method executed before READ EVENTS is executed when ReadEvents is called.
ENDPROC
PROCEDURE clearevents && Clears any pending read events.
CLEAR EVENTS
ENDPROC
PROTECTED PROCEDURE Destroy
CLEAR EVENTS
this.RestoreEnvironment
ENDPROC
PROCEDURE doform && Executes an SCX form.
LPARAMETERS tcFileName,tcClass,tlNoMultipleInstances,tlNoShow
LOCAL lcFileName,lcClass,oForm,oForm2,lcName,lnCount,lnTop,lnLeft
LOCAL lcFormName,lnFormCount
_screen.visible=.t.
lcFileName = UPPER(ALLTRIM(tcFileName))
IF EMPTY(lcFileName)
RETURN .F.
ENDIF
lcClass=IIF(TYPE("tcClass")=="C",LOWER(ALLTRIM(tcClass)),"")
lcFileName=LOWER(FULLPATH(lcFileName))
IF NOT "."$lcFileName
lcFileName=lcFileName+IIF(EMPTY(lcClass),".scx",".vcx")
ENDIF
IF NOT FILE(lcFileName)
this.FileNotFoundMsgBox(lcFileName)
RETURN .F.
ENDIF
lcFormName=IIF(EMPTY(lcClass),lcFileName,lcFileName+","+lcClass)
IF tlNoMultipleInstances
FOR lnCount = 1 TO this.nFormCount
IF this.aFormNames[lnCount]==lcFormName AND ;
TYPE("this.aForms[lnCount]")=="O" AND ;
NOT ISNULL(this.aForms[lnCount])
this.aForms[lnCount].Show
RETURN .F.
ENDIF
ENDFOR
ENDIF
this.RefreshFormsCollection
this.nFormCount=this.nFormCount+1
DIMENSION this.aForms[this.nFormCount],this.aFormNames[this.nFormCount]
this.aFormNames[this.nFormCount]=lcFormName
IF NOT EMPTY(lcClass)
SET CLASSLIB TO (lcFileName) ADDITIVE
this.aForms[this.nFormCount]=CREATEOBJECT(lcClass)
IF NOT tlNoShow AND TYPE("this.aForms[this.nFormCount]")=="O" AND ;
NOT ISNULL(this.aForms[this.nFormCount])
this.aForms[this.nFormCount].Show
ENDIF
ELSE
DO FORM (lcFileName) NAME this.aForms[this.nFormCount] LINKED NOSHOW
ENDIF
lnFormCount=this.nFormCount
this.RefreshFormsCollection
IF this.lCascadeForms AND this.nFormCount>=lnFormCount
oForm=this.aForms[this.nFormCount]
lnTop=oForm.Top
lnLeft=oForm.Left
lcName=oForm.Name
IF WEXIST(lcName) AND oForm.WindowState#2
FOR lnCount = 1 TO (this.nFormCount-1)
oForm2=this.aForms[lnCount]
IF TYPE("oForm2")#"O" OR ISNULL(oForm2)
LOOP
ENDIF
IF lcName==oForm2.Name AND WLROW(lcName)=WLROW(oForm2.Name) AND ;
WLCOL(lcName)=WLCOL(oForm2.Name)
lnTop=lnTop+this.nPixelOffset
lnLeft=lnLeft+this.nPixelOffset
ENDIF
ENDFOR
IF oForm.Top#lnTop
oForm.Top=lnTop
ENDIF
IF oForm.Left#lnLeft
oForm.Left=lnLeft
ENDIF
ENDIF
ENDIF
*!* modificat 18.10.2004
*!* Marius
IF !(m.tlNoShow OR (TYPE('glParametri') = 'L' AND 'LOGIN'$UPPER(lcFileName) and m.glParametri))
this.aForms[this.nFormCount].Show
ENDIF
ENDPROC
PROCEDURE dolabel && Executes an LBX label
LPARAMETERS tcFileName,tlPrint
LOCAL lcFileName
lcFileName=ALLTRIM(tcFileName)
IF EMPTY(lcFileName)
RETURN .F.
ENDIF
lcFileName=LOWER(FULLPATH(lcFileName))
IF NOT "."$lcFileName
lcFileName=lcFileName+".lbx"
ENDIF
IF NOT FILE(lcFileName)
this.FileNotFoundMsgBox(lcFileName)
RETURN .F.
ENDIF
IF tlPrint
LABEL FORM (lcFileName) TO PRINTER PROMPT
ELSE
LABEL FORM (lcFileName) PREVIEW
ENDIF
ENDPROC
PROCEDURE domenu && Executes an MPR menu.
LPARAMETERS tcFileName
LOCAL lcFileName
lcFileName=ALLTRIM(tcFileName)
IF EMPTY(lcFileName)
RETURN .F.
ENDIF
lcFileName=LOWER(FULLPATH(lcFileName))
IF NOT "."$lcFileName
lcFileName=lcFileName+".mpr"
ENDIF
IF TYPE('goLocale') = 'O'
goLocale.SetMenu(m.lcFileName, "menu", null)
ENDIF
DO (m.lcFileName)
ENDPROC
PROCEDURE doprogram && Executes a PRG, APP, or EXE program.
LPARAMETERS tcFileName
LOCAL lcFileName
lcFileName=ALLTRIM(tcFileName)
IF EMPTY(lcFileName)
RETURN .F.
ENDIF
lcFileName=LOWER(FULLPATH(lcFileName))
IF NOT "."$lcFileName
lcFileName=lcFileName+".prg"
ENDIF
IF NOT FILE(lcFileName)
this.FileNotFoundMsgBox(lcFileName)
RETURN .F.
ENDIF
DO (lcFileName)
ENDPROC
PROCEDURE doreport && Executes an FRX report.
LPARAMETERS tcFileName,tlPrint
LOCAL lcFileName
lcFileName=ALLTRIM(tcFileName)
IF EMPTY(lcFileName)
RETURN .F.
ENDIF
lcFileName=LOWER(FULLPATH(lcFileName))
IF NOT "."$lcFileName
lcFileName=lcFileName+".frx"
ENDIF
IF NOT FILE(lcFileName)
this.FileNotFoundMsgBox(lcFileName)
RETURN .F.
ENDIF
IF tlPrint
REPORT FORM (lcFileName) TO PRINTER PROMPT
ELSE
REPORT FORM (lcFileName) PREVIEW
ENDIF
ENDPROC
PROCEDURE filenotfoundmsgbox && Displays a File Not Found messagebox.
LPARAMETERS tcFileName
RETURN AMESSAGEBOX([Fisierul "]+tcFileName+[" nu a fost gasit!],16,gcNumeProgram)
ENDPROC
PROCEDURE getcaption && Returns the caption of the application.
RETURN this.cCaption
ENDPROC
PROCEDURE geticon && Returns the icon of the application.
RETURN this.cIcon
ENDPROC
PROTECTED PROCEDURE Init
this.SaveEnvironment
this.ResetFormsCollection
ENDPROC
PROCEDURE onshutdown && Occurs when the user attempts to exit Visual FoxPro.
If glQuit
Quit
Endif
IF TYPE('m.buton') = 'U'
PRIVATE buton
buton = 1
ENDIF
OA=Createobject('frm_mesaj',gcNumeProgram,'intreb.ico','INTREBARE','Dori<72>i s<> ie<69>i<EFBFBD>i din program?')
OA.lbl_mesaj1.FontBold=.T.
OA.lbl_mesaj1.FontSize=12
OA.lbl_mesaj1.Top=55
OA.Show(1)
If buton=1
ON SHUTDOWN
ON ERROR
CLEAR EVENTS
IF _VFP.StartMode <> 0
QUIT
ENDIF
Else
PRIMADATA=.F.
Endif
ENDPROC
PROCEDURE readevents && Starts read events mode.
this.BeforeReadEvents
IF this.lReadEvents
READ EVENTS
ENDIF
ENDPROC
PROCEDURE readini
LPARAMETERS tcSection, tcVariable
lcSection = IIF(!EMPTY(m.tcSection), ALLTRIM(LOWER(m.tcSection)), '')
lcVariable = IIF(!EMPTY(m.tcVariable), ALLTRIM(LOWER(m.tcVariable)), '')
lcValue = ''
IF TYPE('goApi') = 'O' AND !EMPTY(m.lcSection) AND !EMPTY(m.lcVariable)
lcValue = goAPI.GetProfileString(m.gcSettingsFile, m.lcSection, m.lcVariable)
ENDIF
RETURN NVL(m.lcValue,'')
ENDPROC
PROCEDURE refreshformscollection && Refresh forms collection arrays and counters.
LOCAL lnCount,lnCount2
lnCount=1
DO WHILE lnCount<=this.nFormCount
IF TYPE("this.aForms[lnCount]")=="O" AND NOT ISNULL(this.aForms[lnCount])
lnCount=lnCount+1
LOOP
ENDIF
FOR lnCount2 = lnCount TO (this.nFormCount-1)
this.aForms[lnCount2]=this.aForms[lnCount2+1]
this.aForms[lnCount2+1]=.NULL.
this.aFormNames[lnCount2]=this.aFormNames[lnCount2+1]
this.aFormNames[lnCount2+1]=""
ENDFOR
this.nFormCount=this.nFormCount-1
IF this.nFormCount=0
EXIT
ENDIF
DIMENSION this.aForms[this.nFormCount],this.aFormNames[this.nFormCount]
ENDDO
IF this.nFormCount=0
this.ResetFormsCollection
ENDIF
ENDPROC
PROCEDURE release && Releases the application from memory.
IF NOT this.ReleaseForms()
RETURN .F.
ENDIF
this.ClearEvents
RELEASE this
ENDPROC
PROCEDURE releaseform && Release specifc or active form from memory.
LPARAMETERS toForm
IF PARAMETERS()=0
IF TYPE("_screen.ActiveForm")#"O" OR ISNULL(_screen.ActiveForm)
RETURN .F.
ENDIF
_screen.ActiveForm.Release
ELSE
IF TYPE("toForm")#"O" OR ISNULL(toForm)
RETURN .F.
ENDIF
toForm.Release
ENDIF
this.RefreshFormsCollection
ENDPROC
PROCEDURE releaseforms && Release all application forms from memory.
LOCAL lnFormCount
this.RefreshFormsCollection
DO WHILE this.nFormCount>0
lnFormCount=this.nFormCount
IF NOT this.ReleaseForm(this.aForms[lnFormCount]) OR this.nFormCount=lnFormCount
RETURN .F.
ENDIF
ENDDO
ENDPROC
PROTECTED PROCEDURE resetformscollection && Reset arrays and counters of forms collection.
this.nFormCount=0
DIMENSION this.aForms[1],this.aFormNames[1]
this.aForms=.NULL.
this.aFormNames=""
ENDPROC
PROCEDURE restart
*!* e folosita in ROASTART
This.releaseform()
This.show()
ENDPROC
PROTECTED PROCEDURE restoreenvironment && Restores environment settings.
IF NOT EMPTY(this.cLastCaption) AND NOT _screen.Caption==this.cLastCaption
_screen.Caption=this.cLastCaption
ENDIF
IF NOT EMPTY(this.cLastIcon) AND NOT _screen.Icon==this.cLastIcon
_screen.Icon=this.cLastIcon
ENDIF
ENDPROC
PROTECTED PROCEDURE saveenvironment && Saves environment settings.
this.cLastCaption=_screen.Caption
this.cLastIcon=_screen.Icon
ENDPROC
PROCEDURE setcaption && Sets the caption of the application.
LPARAMETERS tcCaption
IF TYPE("tcCaption")#"C"
RETURN .F.
ENDIF
this.cCaption=tcCaption
_screen.Caption=tcCaption
ENDPROC
PROCEDURE seticon && Sets the icon of the application.
LPARAMETERS tcIcon
IF TYPE("tcIcon")#"C"
RETURN .F.
ENDIF
this.cIcon=tcIcon
_screen.Icon=tcIcon
ENDPROC
PROCEDURE show && Displays the application.
LPARAMETERS nStyle
this.DoMenu(this.cStartupMenu)
this.DoForm(this.cStartupForm)
this.ReadEvents
ENDPROC
PROCEDURE writeini
LPARAMETERS tcSection, tcVariable, tcValue
lcSection = IIF(!EMPTY(m.tcSection), ALLTRIM(LOWER(m.tcSection)), '')
lcVariable = IIF(!EMPTY(m.tcVariable), ALLTRIM(LOWER(m.tcVariable)), '')
lcValue = IIF(!EMPTY(m.tcValue), ALLTRIM(TRANSFORM(m.tcValue)), '')
IF TYPE('goApi') = 'O' AND !EMPTY(m.lcSection) AND !EMPTY(m.lcVariable)
goAPI.WriteProfileString(m.gcSettingsFile, m.lcSection, m.lcVariable, m.lcValue)
ENDIF
ENDPROC
ENDDEFINE

188
clase/autoresize.vc2 Normal file
View File

@@ -0,0 +1,188 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="autoresize.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS autoresize AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: firstrun && Internal
*p: resizeheight
*p: resizewidth
*</DefinedPropArrayMethod>
HIDDEN firstrun
*<PropValue>
BackStyle = 0
BorderColor = 128,64,0
BorderWidth = 1
firstrun = .T.
Height = 20
Name = "autoresize"
resizeheight = (thisform.Height)
resizewidth = (thisform.Width)
ToolTipText = "Resizes controls on a form"
Visible = .F.
Width = 20
*</PropValue>
PROCEDURE Error
LPARAMETERS nError, cMethod, nLine
*--------------------------------------------
* Ignore all error from this class
*--------------------------------------------
RETURN
ENDPROC
PROCEDURE Refresh
*------------------------------------------------------------
* Description: Auto Resize - resizes all control on form.
* Parameters: tObj, Object to resize, default = thisform
* Return: n/a
* Use: In the Forms Resize event place "thisform.Refresh()"
*------------------------------------------------------------
* Id Date By Description
* 1 01/07/2005 GLR Initial Creation v. 1.00.0001
* 2 01/11/2005 GLR Free up Tag by move Anchors to ResizeAnchors
* 3 01/12/2005 GLR Add option to center control Horz.
*
*------------------------------------------------------------
*!* Instructions
*!*
*!* 1. Place this control on your form
*!* 2. In each of the controls you wish to have auto resize, place in the
*!* TAG property a combination of follow letters.
*!*
*!* T : When the form's height grows, move control down.
*!* L : When the form's width grows, move control to the right
*!* H : When the form's height grows, make the control's height grow too
*!* W : When the form's width grows, make the control's width grow too
*!* C : Center the control horizonally.
*!*
*!* 3. Place in the Form's Resize event the statement
*!*
*!* THISFORM.Refresh()
*!*
*!* That is all there is to it.
LPARAMETERS tObj
IF VARTYPE(tObj) # "O"
tObj = THISFORM
ENDIF
IF TYPE("__Hdiff")="U" AND TYPE("_Wdiff")="U"
*--------------------------------------------
* Deactivate screen
*--------------------------------------------
Local __LS
__LS = thisform.LockScreen
thisform.LockScreen = .F.
PRIVATE __Hdiff, __Wdiff
*--------------------------------------------
* Perset these properties
*--------------------------------------------
IF EMPTY(THIS.ResizeHeight) OR EMPTY(THIS.ResizeWidth)
THIS.ResizeHeight = THISFORM.HEIGHT
THIS.ResizeWidth = THISFORM.WIDTH
ENDIF
*--------------------------------------------
* Determine how much has changed by resizing the form.
*--------------------------------------------
__Hdiff = THISFORM.HEIGHT-THIS.ResizeHeight
THIS.ResizeHeight = THISFORM.HEIGHT
__Wdiff = THISFORM.WIDTH-THIS.ResizeWidth
THIS.ResizeWidth = THISFORM.WIDTH
*--------------------------------------------
* If not resized, and not first time through, exit
*--------------------------------------------
IF __Hdiff=0 AND __Wdiff=0 AND (NOT THIS.FirstRun)
RETURN
ENDIF
THIS.FirstRun = .F.
ENDIF
WITH tObj
*--------------------------------------------
* Does the TAG property have Resize information
*--------------------------------------------
IF TYPE("tObj.Tag")="C" ;
AND (NOT EMPTY(.TAG) ) ;
AND LEN(ALLTRIM(CHRTRAN(.TAG,"TLHW","")))=0
*--------------------------------------------
* Free up the Tag property for the application
*--------------------------------------------
*!* tObj.ADDPROPERTY("ResizeAnchors", UPPER(.TAG))
*!* .Tag = ""
ENDIF
*--------------------------------------------
* Is there Anchors
*--------------------------------------------
*!* IF PEMSTATUS(tObj,"ResizeAnchors",5)
*!* LOCAL lcTLHW
*!* lcTLHW = .ResizeAnchors
IF PEMSTATUS(tObj,"Tag",5)
LOCAL lcTLHW
lcTLHW = .TAG
*--------------------------------------------
* Resize this control
*--------------------------------------------
.TOP = .TOP + IIF( "T"$lcTLHW, __Hdiff, 0 )
.LEFT = .LEFT + IIF( "L"$lcTLHW, __Wdiff, 0 )
.HEIGHT = .HEIGHT + IIF( "H"$lcTLHW, __Hdiff, 0 )
.WIDTH = .WIDTH + IIF( "W"$lcTLHW, __Wdiff, 0 )
*-- Center control horizonally
.LEFT = IIF( "C"$lcTLHW, (.PARENT.WIDTH - .WIDTH) / 2 , .LEFT )
ENDIF
*--------------------------------------------
* If this control has child controls, check them
*--------------------------------------------
IF TYPE("tObj.Objects[1]")="O"
FOR EACH lObj IN tObj.OBJECTS
THIS.REFRESH( lObj )
NEXT
ENDIF
ENDWITH
*--------------------------------------------
* Reactivate Screen
*--------------------------------------------
IF VARTYPE(__LS)="L"
thisform.LockScreen = __LS
ENDIF
RETURN
ENDPROC
ENDDEFINE

14275
clase/baza.vc2 Normal file

File diff suppressed because it is too large Load Diff

786
clase/bbtabs.vc2 Normal file
View File

@@ -0,0 +1,786 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="bbtabs.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS bluetabh AS buletabs OF "bbtabs.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
*<PropValue>
Height = 34
Name = "bluetabh"
Picture = dbtabh4.bmp
Width = 84
cmdTab.Height = 31
cmdTab.Left = 0
cmdTab.Name = "cmdTab"
cmdTab.Top = 0
cmdTab.Width = 49
cmdTab.ZOrderSet = 0
Image1.Height = 34
Image1.Left = 0
Image1.Name = "Image1"
Image1.Picture = ..\grafice\dbtabh3.bmp
Image1.Stretch = 2
Image1.Top = 0
Image1.Width = 84
Image1.ZOrderSet = 1
Image2.Height = 16
Image2.Left = 15
Image2.Name = "Image2"
Image2.Picture = ..\grafice\note.gif
Image2.Stretch = 2
Image2.Top = 6
Image2.Width = 16
Image2.ZOrderSet = 2
*</PropValue>
ADD OBJECT 'Label1' AS _label WITH ;
Alignment = 0, ;
BackStyle = 0, ;
Caption = "Visits", ;
FontSize = 8, ;
ForeColor = 255,255,255, ;
Height = 16, ;
Left = 7, ;
Name = "Label1", ;
Top = 21, ;
Width = 29
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
PROCEDURE Init
* override base code
WITH This.cmdTab
.ZOrder(0)
.ToolTipText = This.ToolTipText
.Width = This.Image1.Width - 15
ENDWITH
ENDPROC
ENDDEFINE
DEFINE CLASS bottomactioncontainer AS _container OF "..\..\comun\clase\_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Tabhyperlink1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Tabhyperlink2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
BorderWidth = 0
Height = 90
Name = "bottomactioncontainer"
Width = 304
_memberdata = <VFPData>
</VFPData>
*</PropValue>
ADD OBJECT 'Shape3' AS _shape WITH ;
Anchor = 14, ;
BackColor = 181,198,255, ;
BorderColor = 99,148,234, ;
Curvature = 15, ;
Height = 36, ;
Left = 0, ;
Name = "Shape3", ;
Top = 54, ;
Width = 246
*< END OBJECT: ClassLib="..\..\comun\clase\_baza.vcx" BaseClass="shape" />
ADD OBJECT 'Tabhyperlink1' AS tabhyperlink WITH ;
Height = 18, ;
Left = 10, ;
Name = "Tabhyperlink1", ;
Top = 12, ;
Width = 161, ;
Image2.Height = 12, ;
Image2.Name = "Image2", ;
Image2.Width = 15, ;
Label1.Alignment = 0, ;
Label1.Name = "Label1"
*< END OBJECT: ClassLib="bbtabs.vcx" BaseClass="container" />
ADD OBJECT 'Tabhyperlink2' AS tabhyperlink WITH ;
Height = 18, ;
Left = 10, ;
Name = "Tabhyperlink2", ;
Top = 36, ;
Width = 161, ;
Image2.Height = 12, ;
Image2.Name = "Image2", ;
Image2.Width = 15, ;
Label1.Alignment = 0, ;
Label1.Name = "Label1"
*< END OBJECT: ClassLib="bbtabs.vcx" BaseClass="container" />
ENDDEFINE
DEFINE CLASS bottomactioncontainerh AS bottomactioncontainer OF "bbtabs.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Line1" UniqueID="" Timestamp="" />
*<PropValue>
Height = 35
Name = "bottomactioncontainerh"
Width = 639
_memberdata = <VFPData>
</VFPData>
Shape3.Height = 39
Shape3.Left = 0
Shape3.Name = "Shape3"
Shape3.Top = -5
Shape3.Width = 541
Shape3.ZOrderSet = 0
Tabhyperlink1.Anchor = 132
Tabhyperlink1.Height = 18
Tabhyperlink1.Image2.Height = 12
Tabhyperlink1.Image2.Name = "Image2"
Tabhyperlink1.Image2.Width = 15
Tabhyperlink1.Label1.Alignment = 0
Tabhyperlink1.Label1.Name = "Label1"
Tabhyperlink1.Left = 10
Tabhyperlink1.Name = "Tabhyperlink1"
Tabhyperlink1.Top = 12
Tabhyperlink1.Width = 169
Tabhyperlink1.ZOrderSet = 3
Tabhyperlink2.Anchor = 132
Tabhyperlink2.Height = 18
Tabhyperlink2.Image2.Height = 12
Tabhyperlink2.Image2.Name = "Image2"
Tabhyperlink2.Image2.Width = 15
Tabhyperlink2.Label1.Alignment = 0
Tabhyperlink2.Label1.Name = "Label1"
Tabhyperlink2.Left = 187
Tabhyperlink2.Name = "Tabhyperlink2"
Tabhyperlink2.Top = 12
Tabhyperlink2.Width = 169
Tabhyperlink2.ZOrderSet = 4
*</PropValue>
ADD OBJECT 'Line1' AS line WITH ;
BorderColor = 99,148,234, ;
Height = 0, ;
Left = 0, ;
Name = "Line1", ;
Top = 0, ;
Width = 541
*< END OBJECT: BaseClass="line" />
PROCEDURE Init
This.Shape3.Width = THis.Width - 1
This.Shape3.Height = THis.Height - 4
ENDPROC
ENDDEFINE
DEFINE CLASS buletabs AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="cmdTab" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: tabclicked
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
BorderWidth = 0
Height = 57
Name = "buletabs"
Picture = ..\
Width = 41
_memberdata = <VFPData>
<memberdata name="tabclicked" type="method" display="tabclicked" favorites="True"/>
</VFPData>
*</PropValue>
ADD OBJECT 'cmdTab' AS _commandbutton WITH ;
Caption = "", ;
Height = 48, ;
Left = 0, ;
Name = "cmdTab", ;
Style = 1, ;
Top = 2, ;
Width = 32
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Image1' AS _image WITH ;
BackStyle = 0, ;
Height = 54, ;
Left = 1, ;
Name = "Image1", ;
Picture = ..\grafice\bluetab.bmp, ;
Top = 1, ;
Width = 31
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="image" />
ADD OBJECT 'Image2' AS _image WITH ;
BackStyle = 0, ;
Height = 18, ;
Left = 8, ;
Name = "Image2", ;
Picture = ..\grafice\note.gif, ;
Top = 10, ;
Width = 20
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="image" />
PROCEDURE Init
This.cmdTab.ZOrder(0)
ENDPROC
PROCEDURE MouseEnter
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*This.Parent.EnterMouse(This)
ENDPROC
PROCEDURE MouseLeave
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*This.Parent.LeaveMouse(This)
ENDPROC
PROCEDURE tabclicked
* tab button was clicked
This.Parent.tabclicked(This)
ENDPROC
PROCEDURE cmdTab.Click
This.Parent.tabclicked()
ENDPROC
PROCEDURE cmdTab.MouseEnter
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*This.Parent.MouseEnter(nButton, nShift, nXCoord, nYCoord)
ENDPROC
PROCEDURE cmdTab.MouseLeave
LPARAMETERS nButton, nShift, nXCoord, nYCoord
*This.Parent.MouseLeave(nButton, nShift, nXCoord, nYCoord)
ENDPROC
ENDDEFINE
DEFINE CLASS clienttoptabs AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Shape1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblHeader" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_container1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Line1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Tab1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpPage" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpPage.Label2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpPage.Label3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="shpPage.Label4" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: changehyperlinks && changes the links at bottom
*m: entermouse && called by mouse entering a tab
*m: leavemouse && called by mouse leaving a tab
*m: setupactions && Sets up the action links below. Requires a table called Actions.dbf
*m: setuparrays && sets up the array with the labels and bmps
*m: setuptabs && Sets up the tabs based on properties
*m: showhelp && sets up help
*m: tabclicked && Run when a tab is clicked. Usually sets the current tab.
*m: zreadme && Readme for this class usage
*p: activetab && the number of the active tab
*p: lasttabbmp && name of the last tab bmp visited.
*p: otab2use && The full path to the tab object to use for this control. eg. ThisForm.pagMyTabs
*p: tabbmpstr && comma separated string of bmps to show for the tabs
*p: tabcaptionstr && comma delimited string that contains the captions to use. Note: if 5 captions entered then there will be 5 tabs. Minimum is 1 caption = 1 tab.. Restrict the length of each caption so that they fit.
*p: tabnumber && Number of tabs to use. Used Internally
*a: tabbmps[1,1] && Used internally to hold bmp names of tabs
*a: tabcaptions[1,1] && used internally to store tab settings of caption
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
activetab = 1
BackStyle = 0
BorderWidth = 0
Height = 430
lasttabbmp =
Name = "clienttoptabs"
otab2use =
tabbmpstr = homeside.bmp,contacts.bmp,visits.bmp,phone1.bmp
tabcaptionstr = Tab1,tab2,tab3,tab4
tabnumber = 4
Width = 414
_memberdata = <VFPData>
<memberdata name="changehyperlinks" type="method" display="ChangeHyperLinks" favorites="True"/>
<memberdata name="actionicon1" type="property" display="ActionIcon1" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].ActionIcon1) = &quot;C&quot;&#xA; cFileOld = aControl[1].ActionIcon1&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].ActionIcon1 = cFile&#xA;RETURN"/>
<memberdata name="actionicon2" type="property" display="ActionIcon2" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].ActionIcon2) = &quot;C&quot;&#xA; cFileOld = aControl[1].ActionIcon2&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].ActionIcon2 = cFile&#xA;RETURN"/>
<memberdata name="actionicon3" type="property" display="ActionIcon3" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].ActionIcon3) = &quot;C&quot;&#xA; cFileOld = aControl[1].ActionIcon3&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].ActionIcon3 = cFile&#xA;RETURN"/>
<memberdata name="actionaction1" type="property" display="ActionAction1" favorites="True"/>
<memberdata name="actionaction2" type="property" display="ActionAction2" favorites="True"/>
<memberdata name="actionaction3" type="property" display="ActionAction3" favorites="True"/>
<memberdata name="actionaction4" type="property" display="ActionAction4" favorites="True"/>
<memberdata name="actioncaption1" type="property" display="ActionCaption1" favorites="True"/>
<memberdata name="actioncaption2" type="property" display="ActionCaption2" favorites="True"/>
<memberdata name="actioncaption3" type="property" display="ActionCaption3" favorites="True"/>
<memberdata name="tabicon1" type="property" display="TabIcon1" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].TabIcon1) = &quot;C&quot;&#xA; cFileOld = aControl[1].TabIcon1&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].TabIcon1 = cFile&#xA;RETURN" Flux="Heavy"/>
<memberdata name="tabicon2" type="property" display="TabIcon2" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].TabIcon2) = &quot;C&quot;&#xA; cFileOld = aControl[1].TabIcon2&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].TabIcon2 = cFile&#xA;RETURN"/>
<memberdata name="tabicon3" type="property" display="TabIcon3" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].TabIcon3) = &quot;C&quot;&#xA; cFileOld = aControl[1].TabIcon3&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].TabIcon3 = cFile&#xA;RETURN"/>
<memberdata name="tabicon4" type="property" display="TabIcon4" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].TabIcon4) = &quot;C&quot;&#xA; cFileOld = aControl[1].TabIcon4&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].TabIcon4 = cFile&#xA;RETURN"/>
<memberdata name="tabicon5" type="property" display="TabIcon5" favorites="True" script="LOCAL aControl[1],cFile,cFileOld&#xA;IF ASELOBJ(aControl) = 0&#xA; IF ASELOBJ(aControl,1) = 0&#xA; RETURN&#xA; ENDIF&#xA;ENDIF&#xA;* grab defa value&#xA;IF VARTYPE(aControl[1].TabIcon5) = &quot;C&quot;&#xA; cFileOld = aControl[1].TabIcon5&#xA;ELSE&#xA; cFileOld = &quot;&quot;&#xA;ENDIF&#xA;cFile = JUSTFNAME(GETFILE(&quot;BMP&quot;,&quot;Select a BMP&quot;,&quot;Open&quot;))&#xA;IF EMPTY(cFile)&#xA; cFile = cFileOld&#xA;ENDIF&#xA;aControl[1].TabIcon5 = cFile&#xA;RETURN"/>
<memberdata name="tabcaption1" type="property" display="TabCaption1" favorites="True"/>
<memberdata name="tabcaption2" type="property" display="TabCaption2" favorites="True"/>
<memberdata name="tabcaption3" type="property" display="TabCaption3" favorites="True"/>
<memberdata name="tabcaption4" type="property" display="TabCaption4" favorites="True"/>
<memberdata name="tabcaption5" type="property" display="TabCaption5" favorites="True"/>
<memberdata name="setupactions" type="method" display="SetupActions"/>
<memberdata name="otab2use" type="property" display="oTab2use" favorites="True"/>
</VFPData>
*</PropValue>
ADD OBJECT '_container1' AS _container WITH ;
Height = 35, ;
Left = 6, ;
Name = "_container1", ;
Top = 385, ;
Width = 402, ;
Shape3.Name = "Shape3", ;
Shape3.Width = 401, ;
Line1.Name = "Line1"
*< END OBJECT: ClassLib="opersonal.vcx" BaseClass="container" />
ADD OBJECT 'lblHeader' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Memberships", ;
FontBold = .T., ;
FontSize = 14, ;
ForeColor = 255,134,11, ;
Height = 25, ;
Left = 12, ;
Name = "lblHeader", ;
TabIndex = 7, ;
Top = 41, ;
Width = 129, ;
ZOrderSet = 4
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'Line1' AS _linie WITH ;
Anchor = 11, ;
BorderColor = 0,51,153, ;
Height = 0, ;
Left = 109, ;
Name = "Line1", ;
Top = 67, ;
Width = 305, ;
ZOrderSet = 6
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="line" />
ADD OBJECT 'Shape1' AS _shape WITH ;
Anchor = 15, ;
BackColor = 221,227,252, ;
BackStyle = 1, ;
BorderColor = 0,51,153, ;
Curvature = 15, ;
Height = 395, ;
Left = 0, ;
Name = "Shape1", ;
Top = 34, ;
Width = 414, ;
ZOrderSet = 0
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'Shape2' AS _shape WITH ;
Anchor = 11, ;
BackColor = 221,227,252, ;
BackStyle = 1, ;
BorderStyle = 0, ;
Curvature = 15, ;
Height = 34, ;
Left = 1, ;
Name = "Shape2", ;
Top = 35, ;
Width = 413, ;
ZOrderSet = 1
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'Shape3' AS _shape WITH ;
Anchor = 11, ;
BackColor = 221,227,252, ;
BackStyle = 1, ;
BorderStyle = 0, ;
Curvature = 0, ;
Height = 18, ;
Left = 1, ;
Name = "Shape3", ;
Top = 51, ;
Width = 412, ;
ZOrderSet = 3
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'shpPage' AS container WITH ;
Height = 307, ;
Left = 6, ;
Name = "shpPage", ;
Top = 73, ;
Width = 402, ;
ZOrderSet = 7
*< END OBJECT: BaseClass="container" />
ADD OBJECT 'shpPage.Label2' AS label WITH ;
BackStyle = 0, ;
Caption = "Drop a pageframe ONTOP of this control and size it the same as the grey area. Set the following properties: TABNUMBER = number of tabs of the page frame. TABCAPTIONSTR= Comma delimited list of the captions to display on the tabs.", ;
ForeColor = 0,0,255, ;
Height = 61, ;
Left = 6, ;
Name = "Label2", ;
Top = 79, ;
Width = 385, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'shpPage.Label3' AS label WITH ;
BackStyle = 0, ;
Caption = "Set TABBMPSTR= Comma delimited list of thebitmaps to display on the tabs. Set OTAB2USE to the current tab name as shown.eg ThisForm.pagTabs. If there are any actions to be created, open ACTIONS.DBF and fill in records.", ;
ForeColor = 128,128,0, ;
Height = 61, ;
Left = 6, ;
Name = "Label3", ;
Top = 146, ;
Width = 385, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'shpPage.Label4' AS label WITH ;
BackStyle = 0, ;
Caption = "SEE THE ZREADME METHOD FOR COMPLETE DOCUMENTATION.", ;
ForeColor = 128,0,0, ;
Height = 24, ;
Left = 6, ;
Name = "Label4", ;
Top = 242, ;
Width = 385, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Tab1' AS bluetabh WITH ;
Left = 24, ;
Name = "Tab1", ;
Picture = ..\grafice\dbtabh4.bmp, ;
Top = 1, ;
Visible = .T., ;
ZOrderSet = 8, ;
cmdTab.Name = "cmdTab", ;
Image1.Name = "Image1", ;
Image1.Picture = ..\grafice\lbtabh3.bmp, ;
Image2.Name = "Image2", ;
Image2.Picture = ..\grafice\note.gif, ;
Label1.ForeColor = 0,51,153, ;
Label1.Name = "Label1"
*< END OBJECT: ClassLib="bbtabs.vcx" BaseClass="container" />
PROCEDURE changehyperlinks && changes the links at bottom
ENDPROC
PROCEDURE entermouse && called by mouse entering a tab
LPARAMETERS toTab
* store the original bmp
This.lasttabbmp = toTab.image1.picture
toTab.image1.picture = "OtabH3.bmp"
ENDPROC
PROCEDURE Init
WITH This
* remove the placeholder
.RemoveObject("shpPage")
* setup the action links below
*!* .SetupActions(1)
* sets up the array with labels
.SetupArrays()
* setup the tabs above
.SetupTabs()
* Set the caption for the first tab
.lblHeader.Caption = This.TabCaptions[This.activetab]
* Activate the correct tab
IF NOT EMPTY(This.oTab2Use)
LOCAL oTabx
oTabx = EVALUATE(This.oTab2Use)
oTabx.Tabs = .F.
oTabx.Themes = .F.
ENDIF
ENDWITH
ENDPROC
PROCEDURE leavemouse && called by mouse leaving a tab
LPARAMETERS toTab
* store the saved bmp
toTab.image1.picture = This.lasttabbmp
ENDPROC
PROCEDURE setupactions && Sets up the action links below. Requires a table called Actions.dbf
* sets up the action Hyperlinks at the bottom.
LPARAMETERS tnTabno
*!* IF EMPTY(tnTabno)
*!* tnTabno = 1
*!* ENDIF
*!* * sets up the action section below
*!* IF NOT USED("actions")
*!* USE actions IN 0 SHARED
*!* ENDIF
*!* SELECT actions
*!* LOCAL cnt
*!* * only 2 actions allowed
*!* FOR cnt = 1 TO 2
*!* oAct = EVALUATE("This.Bottomactioncontainerh1.Tabhyperlink"+TRANSFORM(cnt))
*!* oAct.Visible = .F.
*!* *WAIT WINDOW oAct.name
*!* ENDFOR
*!* cnt = 1
*!* SCAN FOR UPPER(formname) = UPPER(ThisForm.name) AND tabnumber = tnTabno AND NOT EMPTY(caption)
*!* *WAIT WINDOW oAct.name +" in scan loop"
*!* oAct = EVALUATE("This.Bottomactioncontainerh1.Tabhyperlink"+TRANSFORM(cnt))
*!* IF VARTYPE(oAct) = "O"
*!* WITH oAct
*!* .Visible = .T.
*!* IF NOT EMPTY(icon)
*!* .Image2.Picture = ALLTRIM(icon)
*!* .Image2.Visible = .T.
*!* ELSE
*!* .Image2.Visible = .F.
*!* ENDIF
*!* IF NOT EMPTY(caption)
*!* .Label1.Caption = ALLTRIM(caption)
*!* .Label1.Visible = .T.
*!* ELSE
*!* .Label1.Visible = .F.
*!* ENDIF
*!* .ActionEvent = ALLTRIM(action)
*!* ENDWITH
*!* ENDIF
*!* cnt = cnt + 1
*!* IF cnt > 2
*!* EXIT
*!* ENDIF
*!* ENDSCAN
*!* USE IN SELECT("actions")
ENDPROC
PROCEDURE setuparrays && sets up the array with the labels and bmps
* setup the array of bmps & captions for the tabs
LOCAL bb,startx,starty,bb,cc,endy
startx=1
starty = 1
bb=This.tabcaptionstr
cc=This.tabbmpstr
DIMENSION This.tabcaptions[This.tabnumber,2]
nRows = ALINES(this.tabcaptions , bb, .F., ",")
nRows = ALINES(this.tabbmps , cc, .F., ",")
bb=10
ENDPROC
PROCEDURE setuptabs && Sets up the tabs based on properties
LOCAL cnt,cPic,Cap
IF NOT "BBTABS"$SET("Classlib")
SET CLASSLIB TO bbtabs ADDITIVE
ENDIF
* GET number of tabs
nLeft = This.Tab1.Left
nTop = This.Tab1.Top
FOR cnt = 1 TO This.Tabnumber
* skip if first tab
IF cnt>1
This.AddObject("Tab"+TRANSFORM(cnt),"bluetabh")
ENDIF
oTab = EVALUATE("This.tab"+TRANSFORM(cnt))
WITH oTab
cPic = This.tabbmps[cnt]
.Image2.Picture = cPic
cCap = This.tabcaptions[cnt]
* larger caption = larger tab
lnlen = LEN(STRTRAN(ALLTRIM(cCap),' ',''))
lnfontsize = .label1.fontsize
IF lnLen*lnfontsize > .image1.width
.image1.width = lnLen*lnfontsize
.width = lnLen*lnfontsize
.cmdtab.width = lnLen*(lnfontsize-1)
ENDIF
* larger caption = larger tab
.Label1.Caption = cCap
.Left = nLeft
.Top = nTop
.Visible = .T.
.Zorder(1)
nLeft = nLeft+ .Width -8
ENDWITH
ENDFOR
* activate the tab
oTab = EVALUATE("This.tab"+TRANSFORM(This.activetab))
oTab.Zorder(0)
ENDPROC
PROCEDURE showhelp && sets up help
ENDPROC
PROCEDURE tabclicked && Run when a tab is clicked. Usually sets the current tab.
LPARAMETERS toTab
LOCAL LCA,LCnR
STORE '' TO LCA,LCnR
LCA = toTab.name
DO WHILE !ISALPHA(SUBSTR(LCA,LEN(LCA),1))
LCnR = RIGHT(LCA,1)+LCnR
LCA = LEFT(LCA,LEN(LCA)-1)
ENDDO
nTab = VAL(LCnR)
ThisForm.lockscreen = .T.
* Activate the correct tab
IF NOT EMPTY(This.oTab2Use)
LOCAL oTabx
oTabx = EVALUATE(This.oTab2Use)
This.tabnumber = oTabx.PageCount
oPage = EVALUATE("oTabx.Page"+TRANSFORM(nTab))
IF oPage.Enabled
oTabx.ActivePage = nTab
ELSE
WAIT WINDOW NOWAIT "Page is disabled"
RETURN
ENDIF
ELSE
RETURN
ENDIF
This.activetab = nTab
* Caption
This.lblHeader.Caption = This.TabCaptions[nTab] &&EVALUATE("This.TabCaption"+TRANSFORM(nTab))
LOCAL cnt
FOR cnt = 1 TO This.Tabnumber && STEP -1
oTab = EVALUATE("This.Tab"+TRANSFORM(cnt))
* reset all to blue
IF "LBTABH"$UPPER(oTab.Image1.Picture)
oTab.Image1.Picture = 'dbtabh3.bmp' &&'pics\bluetabh.bmp'
oTab.Label1.Forecolor = RGB(255,255,255)
ENDIF
* send the button back in order
oTab.Zorder(1)
ENDFOR
* change the clicked tab picture and bring to front
toTab.image1.picture = 'lbtabh4.bmp' &&'pics\Lbluetabh.bmp'
toTab.Label1.Forecolor = RGB(0,51,153)
toTab.zorder(0)
* do stuff when page changes
This.setupActions(nTab)
ThisForm.lockscreen = .F.
ENDPROC
PROCEDURE zreadme && Readme for this class usage
TEXT TO xxx NOSHOW
To use this control:
1. Drop a Pageframe ON TOP of this control. Do NOT place in inside this control's container.
2. Set the foll Props:
TABCAPTIONSTR = A comma delimited string in sequential order of the captions to be displayed on the tabs.
TABBMPSTR = A comma delimited string of the names of the bitmaps to display on the tabs.
oTAB2USE = The full path to the tab that has been dropped in step 1 - eg. ThisForm.pgMyTabs
3. If there are any actions to be created for each tab, open ACTIONS.DBF and create them as shown in the table.
These actions will appear in the space below the tabs. It is not necessary but looks better with actions which
can be something like calling the click event on a button etc.
ENDTEXT
ENDPROC
ENDDEFINE
DEFINE CLASS tabhyperlink AS _container OF "..\..\comun\clase\_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: actionevent
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
actionevent =
BackStyle = 0
BorderWidth = 0
Height = 18
Name = "tabhyperlink"
Width = 200
_memberdata = <VFPData>
<memberdata name="actionevent" type="property" display="ActionEvent"/>
</VFPData>
*</PropValue>
ADD OBJECT 'Image2' AS _image WITH ;
Anchor = 4, ;
BackStyle = 0, ;
Height = 12, ;
Left = 2, ;
Name = "Image2", ;
Picture = addressbook.bmp, ;
Top = 0, ;
Width = 15
*< END OBJECT: ClassLib="..\..\comun\clase\_baza.vcx" BaseClass="image" />
ADD OBJECT 'Label1' AS _label WITH ;
Anchor = 4, ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Open the Address book", ;
FontUnderline = .T., ;
ForeColor = 0,0,255, ;
Height = 17, ;
Left = 28, ;
MousePointer = 15, ;
Name = "Label1", ;
Top = 0, ;
Width = 170
*< END OBJECT: ClassLib="..\..\comun\clase\_baza.vcx" BaseClass="label" />
PROCEDURE Label1.Click
IF NOT EMPTY(This.Parent.ActionEvent)
cCmd = This.Parent.ActionEvent
&cCmd
ENDIF
ENDPROC
ENDDEFINE

715
clase/bon_fisc.vc2 Normal file
View File

@@ -0,0 +1,715 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="bon_fisc.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS bon_fisc AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Alignment = 0
Caption = "Check1"
Height = 17
Name = "bon_fisc"
Width = 60
*</PropValue>
ENDDEFINE
DEFINE CLASS frm_tichete AS frm_termin_renunt OF "_frm_child.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Clb_bon" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_nr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_numerar" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valoare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_total" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_linie1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_linie2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_discount" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_procent" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_procent._lbbase2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_diminuat" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_tva_vanzare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label4" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: verificare
*p: bon
*p: diminuat
*p: discount
*p: nr
*p: numerar
*p: procent
*p: total
*p: tva
*p: valoare
*</DefinedPropArrayMethod>
*<PropValue>
bon = 0
diminuat = 0
discount = 0
DoCreate = .T.
Height = 231
Name = "frm_tichete"
nr = 0
numerar = 0
procent = 0
total = 0
tva = 0.00
valoare = 0
Width = 571
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 576
_shape1.ZOrderSet = 1
_shape2.Height = 29
_shape2.Left = 511
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 63
_shape2.ZOrderSet = 2
Lb_titlu_alb_b121.Caption = "Bon"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 10
Lb_titlu_alb_b121.ZOrderSet = 3
BUT_TERMIN1.Left = 542
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 5
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 4
Gridsort1.Left = 12
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 36
But_renunt1.Left = 513
But_renunt1.Name = "But_renunt1"
But_renunt1.TabIndex = 6
But_renunt1.Top = 1
But_renunt1.ZOrderSet = 6
*</PropValue>
ADD OBJECT '_linie1' AS _linie WITH ;
Height = 0, ;
Left = 345, ;
Name = "_linie1", ;
Top = 170, ;
Width = 10, ;
ZOrderSet = 13
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="line" />
ADD OBJECT '_linie2' AS _linie WITH ;
Height = 0, ;
Left = 345, ;
Name = "_linie2", ;
Top = 176, ;
Width = 10, ;
ZOrderSet = 14
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="line" />
ADD OBJECT 'cbo_tva_vanzare' AS combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
ColumnCount = 3, ;
ColumnLines = .F., ;
ColumnWidths = "200,10,0", ;
Comment = "A", ;
ControlSource = "", ;
FontName = "Arial Narrow", ;
Height = 20, ;
InputMask = "", ;
Left = 419, ;
Name = "cbo_tva_vanzare", ;
RowSource = "jtva_vanzare.denumire,cota_tva,id_jtva_coloana", ;
RowSourceType = 6, ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 14, ;
TabStop = .F., ;
Top = 88, ;
Visible = .T., ;
Width = 149
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Clb_bon' AS clb_tx_simplu WITH ;
Left = 228, ;
Name = "Clb_bon", ;
TabIndex = 11, ;
Top = 36, ;
ZOrderSet = 7, ;
Text_simplu1.ControlSource = "thisform.bon", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 136, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 148, ;
Lb_simplu1.Caption = "Valoare Bon", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_diminuat' AS clb_tx_simplu WITH ;
Left = 228, ;
Name = "Clb_diminuat", ;
TabIndex = 8, ;
Top = 120, ;
ZOrderSet = 19, ;
Text_simplu1.ControlSource = "thisform.diminuat", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 135, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 149, ;
Lb_simplu1.Caption = "Total", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_discount' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 168, ;
Name = "Clb_discount", ;
TabIndex = 2, ;
Top = 80, ;
Width = 246, ;
ZOrderSet = 15, ;
Text_simplu1.ControlSource = "thisform.discount", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 91, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .F., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 149, ;
Lb_simplu1.Caption = "Valoare", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_nr' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 12, ;
Name = "Clb_nr", ;
TabIndex = 3, ;
Top = 160, ;
Width = 152, ;
ZOrderSet = 8, ;
Text_simplu1.ControlSource = "thisform.nr", ;
Text_simplu1.Height = 23, ;
Text_simplu1.Left = 113, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 35, ;
Lb_simplu1.Caption = "Tichete de masa", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_numerar' AS clb_tx_simplu WITH ;
Left = 228, ;
Name = "Clb_numerar", ;
TabIndex = 9, ;
Top = 196, ;
ZOrderSet = 9, ;
Text_simplu1.ControlSource = "thisform.numerar", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 135, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 149, ;
Lb_simplu1.Caption = "Numerar", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_procent' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 12, ;
Name = "Clb_procent", ;
TabIndex = 1, ;
Top = 80, ;
Width = 144, ;
ZOrderSet = 16, ;
Text_simplu1.ControlSource = "thisform.procent", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "99.99", ;
Text_simplu1.Left = 76, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .F., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 44, ;
Lb_simplu1.Caption = "Discount", ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 6
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_procent._lbbase2' AS _lbbase WITH ;
Caption = "%", ;
Left = 126, ;
Name = "_lbbase2", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'Clb_total' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 361, ;
Name = "Clb_total", ;
TabIndex = 7, ;
Top = 160, ;
Width = 158, ;
ZOrderSet = 12, ;
Text_simplu1.ControlSource = "thisform.total", ;
Text_simplu1.Height = 23, ;
Text_simplu1.Left = 5, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 146, ;
Lb_simplu1.Caption = "(total)", ;
Lb_simplu1.Left = 114, ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 6, ;
Lb_simplu1.Visible = .F.
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valoare' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 181, ;
Name = "Clb_valoare", ;
TabIndex = 4, ;
Top = 160, ;
Width = 158, ;
ZOrderSet = 10, ;
Text_simplu1.ControlSource = "thisform.valoare", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 8, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 85, ;
Lb_simplu1.Caption = "(valoare)", ;
Lb_simplu1.Left = 105, ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 6
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Label4' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Explicatie TVA", ;
FontName = "Comic Sans MS", ;
Height = 19, ;
Left = 450, ;
Name = "Label4", ;
TabIndex = 13, ;
Top = 69, ;
Visible = .T., ;
Width = 87, ;
ZOrderSet = 18
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Lb_simplu1' AS lb_simplu WITH ;
Caption = "X", ;
Left = 170, ;
Name = "Lb_simplu1", ;
TabIndex = 12, ;
Top = 166, ;
ZOrderSet = 11
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
PROCEDURE Activate
*
ENDPROC
PROCEDURE inainte_de_do_termin
Thisform.verificare('0')
Local lcStringTichet,lcStringDisc
Store '' To lcStringTichet,lcStringDisc
pcStringImprim = ''
pcStringImprim = [2;] + [NUMERAR;0;] + Alltrim(Str(Thisform.numerar,9,3)) + [;] + CRLF
*!* THISFORM.tva=VAL(THISFORM.cotaTVA.VALUE)
If Thisform.nr>0 And Thisform.valoare>0
If Thisform.discount>0
lcProc = Alltrim(Str(Thisform.procent,5,2))
Else
lcProc = 0.00
Endif
lcStringmp500= [T,1,______,_,__;0;]+ Alltrim(Str(Thisform.numerar*100,8,3))+[;;;;]+CRLF+;
[T,1,______,_,__;3;]+ Alltrim(Str(Thisform.Total*100,8,3))+[;;;;]+CRLF+;
IIF(Thisform.discount > 0,[T,1,______,_,__;4;] + CRLF + [C,1,______,_,__;1;]+lcProc+[;;;;] + CRLF,'')+;
[F,1,______,_,__;]+CRLF
lcStringTichet = [2;] + [TICHET;0;] + Alltrim(Str(Thisform.Total,9,3)) + [;] + CRLF
Select actactan
Locate For Alltrim(scd)='5311'
If Found()
Scatter Name lmp500
Replace suma With Thisform.numerar
Append Blank
Gather Name lmp500
Replace suma With Min(Thisform.Total,Thisform.bon),scd With '5323'
Select actactan
Go Top
Endif
Else
lcStringmp500=[T,1,______,_,__;]+CRLF+[F,1,______,_,__;]+CRLF
Endif
If Thisform.discount>0
lcStringDisc = [2;] + [DISCOUNT;0;] + Alltrim(Str(Thisform.procent,2)) + [;] + CRLF
lctvad = (-1)*Round(Thisform.tva*Thisform.discount/(Thisform.tva+100),gnPc)
lcbazad = Thisform.discount+lctvad
Select actactan
Locate For Alltrim(scd)='4111'
If Found()
Scatter Name lmp500
Append Blank
Gather Name lmp500
Replace scd With '667',ascd With '',scc With '4111',ascc With '5',suma With lcbazad,id_partc With id_partd,partc With partd,partd With '',id_partd With 0
Select jtva_coloane
Locate For id_jtva_coloana = lmp500.id_jtva_coloana
If Found()
lnIdTva = id_tva
Select actactan
Append Blank
Gather Name lmp500
Replace scc With '4427',ascc With '',suma With lctvad,id_jtva_coloana With lnIdTva
Endif
Select actactan
Go Top
Endif
Endif
pcStringImprim = pcStringImprim + lcStringTichet + lcStringDisc
Return .T.
ENDPROC
PROCEDURE Init
Parameters tnsuma
Thisform.bon=tnsuma
Thisform.numerar=tnsuma
Thisform.clb_procent.SetFocus()
*!* Select cote_tva
*!* Go Top
*!* Thisform.tva=procent
*!* Thisform.cotaTVA.Value=Alltrim(Str(Thisform.tva))
*!* Thisform.cotaTVA.Refresh()
Select actactan
Locate For Alltrim(scd)='5311'
If Found()
lnIdJtva = id_jtva_coloana
Select jtva_vanzare
Locate For id_jtva_coloana = lnIdJtva
If !Found()
Go Top
Endif
Else
Select jtva_vanzare
Go Top
Endif
Thisform.tva = cota_tva
Thisform.cbO_TVA_VANZARE.Value = Alltrim(denumire)
DoDefault()
ENDPROC
PROCEDURE verificare
LPARAMETERS tcPar
DO CASE
CASE tcPar = 'thisform.procent'
thisform.discount = ROUND(thisform.bon*thisform.procent/100,gnPc)
thisform.clb_discount.Refresh
CASE tcPar = 'thisform.discount'
IF thisform.discount>thisform.bon
thisform.discount=0
thisform.procent=0
thisform.clb_procent.Refresh
thisform.clb_discount.Refresh
ELSE
thisform.procent = ROUND(thisform.discount*100/thisform.bon,2)
thisform.clb_procent.Refresh
ENDIF
OTHERWISE
ENDCASE
thisform.diminuat=thisform.bon-thisform.discount
thisform.total=thisform.nr*thisform.valoare
IF thisform.total>thisform.diminuat
thisform.numerar=0
ELSE
thisform.numerar=thisform.diminuat-thisform.total
ENDIF
thisform.clb_total.Refresh
thisform.clb_numerar.Refresh
thisform.clb_diminuat.Refresh
ENDPROC
PROCEDURE cbo_tva_vanzare.InteractiveChange
Thisform.tva = jtva_vanzare.cota_tva
ENDPROC
PROCEDURE Clb_discount.Text_simplu1.Valid
thisform.verificare(this.ControlSource)
ENDPROC
PROCEDURE Clb_nr.Text_simplu1.Valid
thisform.verificare(this.ControlSource)
ENDPROC
PROCEDURE Clb_procent.Text_simplu1.Valid
thisform.verificare(this.ControlSource)
ENDPROC
PROCEDURE Clb_valoare.Text_simplu1.Valid
thisform.verificare(this.ControlSource)
ENDPROC
ENDDEFINE
DEFINE CLASS frm_tichete1408 AS frm_termin_renunt OF "_frm_child.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Clb_bon" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_nr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_numerar" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valoare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_total" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_linie1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_linie2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: verificare
*p: bon
*p: nr
*p: numerar
*p: total
*p: valoare
*</DefinedPropArrayMethod>
*<PropValue>
bon = 0
BorderStyle = 1
DoCreate = .T.
Height = 144
Name = "frm_tichete"
nr = 0
numerar = 0
total = 0
valoare = 0
Width = 525
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 524
_shape2.Height = 29
_shape2.Left = 460
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 63
Lb_titlu_alb_b121.Caption = "Bon"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 7
BUT_TERMIN1.Left = 491
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Top = 1
Gridsort1.Left = 24
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 108
But_renunt1.Left = 462
But_renunt1.Name = "But_renunt1"
But_renunt1.TabIndex = 4
But_renunt1.Top = 1
*</PropValue>
ADD OBJECT '_linie1' AS _linie WITH ;
Height = 0, ;
Left = 344, ;
Name = "_linie1", ;
Top = 82, ;
Width = 10
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="line" />
ADD OBJECT '_linie2' AS _linie WITH ;
Height = 0, ;
Left = 344, ;
Name = "_linie2", ;
Top = 88, ;
Width = 10
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="line" />
ADD OBJECT 'Clb_bon' AS clb_tx_simplu WITH ;
Left = 228, ;
Name = "Clb_bon", ;
TabIndex = 8, ;
Top = 36, ;
Text_simplu1.ControlSource = "thisform.bon", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 136, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 148, ;
Lb_simplu1.Caption = "Valoare Bon", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_nr' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 11, ;
Name = "Clb_nr", ;
TabIndex = 1, ;
Top = 72, ;
Width = 152, ;
Text_simplu1.ControlSource = "thisform.nr", ;
Text_simplu1.Height = 23, ;
Text_simplu1.Left = 113, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 35, ;
Lb_simplu1.Caption = "Tichete de masa", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_numerar' AS clb_tx_simplu WITH ;
Left = 228, ;
Name = "Clb_numerar", ;
TabIndex = 6, ;
Top = 108, ;
Text_simplu1.ControlSource = "thisform.numerar", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 135, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 149, ;
Lb_simplu1.Caption = "Numerar", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_total' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 360, ;
Name = "Clb_total", ;
TabIndex = 5, ;
Top = 72, ;
Width = 158, ;
Text_simplu1.ControlSource = "thisform.total", ;
Text_simplu1.Height = 23, ;
Text_simplu1.Left = 5, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 146, ;
Lb_simplu1.Caption = "(total)", ;
Lb_simplu1.Left = 114, ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 6, ;
Lb_simplu1.Visible = .F.
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valoare' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 181, ;
Name = "Clb_valoare", ;
TabIndex = 2, ;
Top = 72, ;
Width = 158, ;
Text_simplu1.ControlSource = "thisform.valoare", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "999 999 999.99", ;
Text_simplu1.Left = 8, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 85, ;
Lb_simplu1.Caption = "(valoare)", ;
Lb_simplu1.Left = 105, ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 6
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Lb_simplu1' AS lb_simplu WITH ;
Caption = "X", ;
Left = 169, ;
Name = "Lb_simplu1", ;
TabIndex = 9, ;
Top = 78
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
PROCEDURE Activate
*
ENDPROC
PROCEDURE inainte_de_do_termin
thisform.verificare()
IF thisform.nr>0 AND thisform.valoare>0
lcStringmp500= [T,1,______,_,__;0;]+ ALLTRIM(STR(thisform.numerar*100,8,3))+[;;;;]+CRLF+;
[T,1,______,_,__;3;]+ ALLTRIM(STR(thisform.total*100,8,3))+[;;;;]+CRLF+;
[F,1,______,_,__;]+CRLF
SELECT actactan
LOCATE FOR ALLTRIM(scd)='5311'
IF FOUND()
SCATTER NAME lmp500
replace suma WITH thisform.numerar
APPEND BLANK
GATHER NAME lmp500
replace suma WITH MIN(thisform.total,thisform.bon),scd WITH '5323'
SELECT actactan
GO TOP
ENDIF
ELSE
lcStringmp500=[T,1,______,_,__;]+CRLF+[F,1,______,_,__;]+CRLF
ENDIF
RETURN .t.
ENDPROC
PROCEDURE Init
PARAMETERS tnsuma
thisform.bon=tnsuma
thisform.numerar=tnsuma
thisform.clb_nr.setfocus()
ENDPROC
PROCEDURE verificare
thisform.total=thisform.nr*thisform.valoare
IF thisform.total>thisform.bon
thisform.numerar=0
ELSE
thisform.numerar=thisform.bon-thisform.total
ENDIF
thisform.clb_total.Refresh
thisform.clb_numerar.Refresh
ENDPROC
PROCEDURE Clb_nr.Text_simplu1.Valid
thisform.verificare()
ENDPROC
PROCEDURE Clb_valoare.Text_simplu1.Valid
thisform.verificare()
ENDPROC
ENDDEFINE

1280
clase/caut.vc2 Normal file

File diff suppressed because it is too large Load Diff

410
clase/caut_comun.vc2 Normal file
View File

@@ -0,0 +1,410 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="caut_comun.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS ck_filtru_numar AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: camp_nume
*p: criteriu1
*p: criteriu2
*p: filtru
*p: mask
*p: nrzec
*p: tip
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
Caption = "Check1"
criteriu1 = 1
criteriu2 = 2
filtru =
Height = 17
mask =
Name = "ck_filtru_numar"
nrzec = 0
tip = N
Width = 60
*</PropValue>
PROCEDURE InteractiveChange
WITH this
.filtru = ""
IF .Value = 0
RETURN
ENDIF
IF TYPE('.mask') = 'N'
.mask = ALLTRIM(STR(.mask))
ENDIF
DO FORM frm_filtru_numar WITH .camp_nume, .caption, .criteriu1, .criteriu2, .tip, .mask, .nrzec TO .filtru
IF .filtru = ""
.Value = 0
ENDIF
ENDWITH
ENDPROC
PROCEDURE Valid
LOCAL ARRAY laSearch[1]
AMEMBERS(laSearch,this.Parent,1,'G')
IF ASCAN(laSearch,'AFISACTUAL')#0
this.Parent.afisactual
ENDIF
RELEASE laSearch
ENDPROC
ENDDEFINE
DEFINE CLASS ck_filtru_text AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: camp_nume
*p: cintre
*p: criteriu
*p: criteriu2
*p: cvaloare1
*p: cvaloare2
*p: filtru
*</DefinedPropArrayMethod>
*<PropValue>
Alignment = 0
BackStyle = 0
camp_nume =
Caption = "Check1"
cintre =
criteriu = 1
criteriu2 = 1
cvaloare1 =
cvaloare2 =
filtru =
Height = 17
Name = "ck_filtru_text"
Width = 60
*</PropValue>
PROCEDURE InteractiveChange
WITH this
.filtru = ""
IF .Value = 0
RETURN
ENDIF
PRIVATE pcValoare1, pcValoare2, pcIntre, pnCriteriu, pnCriteriu2 && variabile pe care le completeaza forma frm_filtru_text
pcValoare1 = .cValoare1
pcValoare2 = .cValoare2
pnCriteriu = .criteriu
pnCriteriu2 = .criteriu2
pcIntre = .cIntre
DO FORM frm_filtru_text WITH .camp_nume,.caption,.criteriu,.criteriu2 TO .filtru
IF .filtru = ""
.Value = 0
.cValoare1 = ""
.cValoare2 = ""
.criteriu = 1
.criteriu2 = 1
.cIntre = ""
ELSE
.cValoare1 = pcValoare1
.cValoare2 = pcValoare2
.criteriu = pnCriteriu
.criteriu2 = pnCriteriu2
.cIntre = pcIntre
ENDIF
ENDWITH
ENDPROC
PROCEDURE Valid
LOCAL ARRAY laSearch[1]
AMEMBERS(laSearch,this.Parent,1,'G')
IF ASCAN(laSearch,'AFISACTUAL')#0
this.Parent.afisactual
ENDIF
RELEASE laSearch
ENDPROC
ENDDEFINE
DEFINE CLASS frm_filtru_text AS formtermin OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Criteriu" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Text" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Optiongroup1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Criteriu2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Text2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: camp_nume
*p: filtru
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 1
DoCreate = .T.
filtru =
Height = 111
lhide = .F.
Name = "frm_filtru_text"
ScrollBars = 0
Width = 312
_shape1.Name = "_shape1"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
BUT_TERMIN1.Left = 282
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 2
BUT_TERMIN1.Top = 1
Resizer1.Label1.Name = "Label1"
Resizer1.Name = "Resizer1"
Resizer1.TabIndex = 7
*</PropValue>
ADD OBJECT 'Criteriu' AS combobox WITH ;
BorderStyle = 0, ;
BoundColumn = 2, ;
BoundTo = .T., ;
ColumnCount = 2, ;
ColumnLines = .F., ;
ColumnWidths = "72,0", ;
FontItalic = .T., ;
Height = 24, ;
Left = 11, ;
Name = "Criteriu", ;
ReadOnly = .F., ;
RowSource = "incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5", ;
RowSourceType = 1, ;
SpecialEffect = 2, ;
Style = 2, ;
TabIndex = 3, ;
ToolTipText = "Selectati criteriul de comparare", ;
Top = 62, ;
Width = 100
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Criteriu2' AS combobox WITH ;
BorderStyle = 0, ;
BoundColumn = 2, ;
BoundTo = .T., ;
ColumnCount = 2, ;
ColumnLines = .F., ;
ColumnWidths = "72,0", ;
FontItalic = .T., ;
Height = 24, ;
Left = 11, ;
Name = "Criteriu2", ;
ReadOnly = .F., ;
RowSource = "incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5", ;
RowSourceType = 1, ;
SpecialEffect = 2, ;
Style = 2, ;
TabIndex = 8, ;
ToolTipText = "Selectati criteriul de comparare", ;
Top = 120, ;
Width = 100
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Optiongroup1' AS optiongroup WITH ;
BackStyle = 0, ;
BorderStyle = 0, ;
ButtonCount = 3, ;
Height = 18, ;
Left = 94, ;
Name = "Optiongroup1", ;
TabIndex = 4, ;
Top = 90, ;
Value = 3, ;
Width = 193, ;
Option1.AutoSize = .F., ;
Option1.BackStyle = 0, ;
Option1.Caption = "si", ;
Option1.FontItalic = .T., ;
Option1.Height = 17, ;
Option1.Left = 66, ;
Option1.Name = "Option1", ;
Option1.Top = 2, ;
Option1.Value = 0, ;
Option1.Width = 58, ;
Option2.BackStyle = 0, ;
Option2.Caption = "sau", ;
Option2.FontItalic = .T., ;
Option2.Height = 17, ;
Option2.Left = 134, ;
Option2.Name = "Option2", ;
Option2.Top = 2, ;
Option2.Width = 54, ;
Option3.BackStyle = 0, ;
Option3.Caption = "", ;
Option3.ForeColor = 128,128,128, ;
Option3.Height = 17, ;
Option3.Left = 5, ;
Option3.Name = "Option3", ;
Option3.Style = 0, ;
Option3.Top = 2, ;
Option3.Value = 1, ;
Option3.Width = 43
*< END OBJECT: BaseClass="optiongroup" />
ADD OBJECT 'Text' AS textbox WITH ;
Format = "!KT", ;
Height = 25, ;
Left = 110, ;
Name = "Text", ;
TabIndex = 1, ;
ToolTipText = "", ;
Top = 62, ;
Width = 198
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Text2' AS textbox WITH ;
Format = "!KT", ;
Height = 25, ;
Left = 110, ;
Name = "Text2", ;
TabIndex = 6, ;
ToolTipText = "", ;
Top = 120, ;
Width = 198
*< END OBJECT: BaseClass="textbox" />
PROCEDURE Destroy
Do Case
Case Thisform.opTIONGROUP1.Value = 1
lcIntre = [ AND ]
Case Thisform.opTIONGROUP1.Value = 2
lcIntre = [ OR ]
Otherwise
lcIntre = ''
Endcase
If Type("pcIntre") = "C" && variabila privata folosita in ck_filtru_text pt a initializa proprietatea cIntre
pcIntre = lcIntre
Endif
With This
Local lnCriteriu,lnCriteriu2, lcNume, lcNume2
lnCriteriu = .criteriu.Value
lnCriteriu2 = .criteriu2.Value
lcNume = .Text.Value
lcNume2 = .text2.Value
If Type("pcValoare1") = "C" && variabila privata folosita in ck_filtru_text pt a initializa proprietatea cValoare1
pcValoare1 = lcNume
Endif
If Type("pcValoare2") = "C" && variabila privata folosita in ck_filtru_text pt a initializa proprietatea cValoare2
pcValoare2 = lcNume2
Endif
If Type("pnCriteriu")="N"
pnCriteriu = lnCriteriu
Endif
If Type("pnCriteriu2")="N"
pnCriteriu2 = lnCriteriu2
Endif
If Empty(lnCriteriu)
.filtru = ""
Return This.filtru
Endif
Do Case
Case lnCriteriu = 1
.filtru = "LIKE([" + Upper(lcNume) + "*]," + [upper(] + .camp_nume + [))]
Case lnCriteriu = 2
.filtru = [upper(] + .camp_nume + ")=[" + Upper(lcNume) + "]"
Case lnCriteriu = 3
.filtru = [upper(] + .camp_nume + ")<>[" + Upper(lcNume) + "]"
Case lnCriteriu = 4
.filtru = "LIKE([*" + Upper(lcNume) + "*]," + [upper(] + .camp_nume + [))]
Case lnCriteriu = 5
*.filtru = "upper(" + .camp_nume + ") NOT LIKE %" + UPPER(lcNume) + "%"
.filtru = "!LIKE([*" + Upper(lcNume) + "*]," + [upper(] + .camp_nume + [))]
Endcase
If !Empty(lcIntre) && AND !EMPTY(lcNume2)
Do Case
Case lnCriteriu2 = 1
.filtru = [(] + .filtru + lcIntre + "LIKE([" + Upper(lcNume2) + "*]," + [upper(] + .camp_nume + [)))]
Case lnCriteriu2 = 2
.filtru = [(] + .filtru + lcIntre + [upper(] + .camp_nume + ")=[" + Upper(lcNume2) + "])"
Case lnCriteriu2 = 3
.filtru = [(] + .filtru + lcIntre + [upper(] + .camp_nume + ")<>[" + Upper(lcNume2) + "])"
Case lnCriteriu2 = 4
.filtru = [(] + .filtru + lcIntre + "LIKE([*" + Upper(lcNume2) + "*]," + [upper(] + .camp_nume + [)))]
Case lnCriteriu2 = 5
.filtru = [(] + .filtru + lcIntre + "!LIKE([*" + Upper(lcNume2) + "*]," + [upper(] + .camp_nume + [)))]
Endcase
Endif
Endwith
ENDPROC
PROCEDURE Init
LPARAMETERS lcCampNume,lcTitlu,lnCriteriu,lnCriteriu2
DODEFAULT()
lctitlu=STRTRAN(lcTitlu,'\<','')
WITH this
.criteriu.value = lnCriteriu
.criteriu2.value = lnCriteriu2
.camp_nume = lcCampNume
.lb_titlu_alb_b121.Caption=UPPER(lcTitlu)
.text.ToolTipText='Introduceti expresia cu care se compara ' + lower(lcTitlu)
.text2.ToolTipText='Introduceti expresia cu care se compara ' + lower(lcTitlu)
IF EMPTY(lccampnume)
.text.Enabled = .F.
.criteriu.Enabled = .F.
.text2.Enabled = .F.
.criteriu2.Enabled = .F.
ENDIF
ENDWITH
ENDPROC
PROCEDURE Unload
RETURN this.filtru
ENDPROC
PROCEDURE Criteriu.InteractiveChange
thisform.text.SetFocus
ENDPROC
PROCEDURE Criteriu2.InteractiveChange
thisform.text2.SetFocus
ENDPROC
PROCEDURE Optiongroup1.Valid
IF this.Value # 3
thisform.Height = 155
ELSE
thisform.Height = 111
ENDIF
ENDPROC
PROCEDURE Text.LostFocus
ENDPROC
PROCEDURE Text2.LostFocus
ENDPROC
ENDDEFINE

332
clase/caut_manager.vc2 Normal file
View File

@@ -0,0 +1,332 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="caut_manager.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS ck_filtru_numar_manager AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: camp_nume
*p: criteriu1
*p: criteriu2
*p: cvaloare1
*p: cvaloare2
*p: filtru
*p: filtru_vfp
*p: mask
*p: nrzec
*p: tip
*</DefinedPropArrayMethod>
*<PropValue>
Alignment = 0
AutoSize = .T.
BackStyle = 0
Caption = "Check1"
criteriu1 = 1
criteriu2 = 2
cvaloare1 =
cvaloare2 =
filtru =
filtru_vfp =
Height = 17
mask =
Name = "ck_filtru_numar_manager"
nrzec = 0
tip = N
Width = 60
*</PropValue>
PROCEDURE InteractiveChange
WITH this
.filtru = ""
.filtru_vfp = ""
IF .Value = 0
RETURN
ENDIF
PRIVATE pcValoare1, pcValoare2, pcIntre, pnCriteriu, pnCriteriu2, pcFiltru, pcFiltruVFP && variabile pe care le completeaza forma frm_filtru_text
pnCriteriu = .criteriu1
pnCriteriu2 = .criteriu2
pcValoare1 = .cvaloare1
pcValoare2 = .cvaloare2
pcFiltruVFP = ""
pcFiltru = ""
IF TYPE('.mask') = 'N'
.mask = ALLTRIM(STR(.mask))
ENDIF
DO FORM frm_filtru_numar WITH .camp_nume, .caption, .criteriu1, .criteriu2, .tip, .mask, .nrzec TO .filtru
IF .filtru = ""
.Value = 0
.criteriu1 = 1
.criteriu2 = 1
.cvaloare1 = ""
.cvaloare2 = ""
.filtru_vfp = ""
ELSE
.cvaloare1 = pcValoare1
.cvaloare2 = pcValoare2
.criteriu1 = pnCriteriu
.criteriu2 = pnCriteriu2
.filtru_vfp = pcFiltruVFP
ENDIF
ENDWITH
ENDPROC
PROCEDURE Valid
DoDefault()
LOCAL lcTabel, lcFiltru, lcCamp_nume, lcCaption, lcFormula, lnCriteriu, lnCriteriu2, lcValoare1, lcValoare2, lcCIntre
STORE '' TO lcTabel, lcFiltru, lcCamp_nume, lcCaption, lcFormula, lcValoare1, lcValoare2, lcCIntre
STORE 0 TO lnCriteriu, lnCriteriu2
lcTabel = Thisform.grid_formula.RecordSource
lcFiltru = This.filtru
lcCamp_nume = Alltrim(Upper(This.camp_nume))
lcCaption = Alltrim(Upper(This.Caption))
lcFormula = Alltrim(Upper(This.filtru))
lnCriteriu1 = This.criteriu1
lnCriteriu2 = This.criteriu2
lcValoare1 = This.cValoare1
lcValoare2 = This.Cvaloare2
lnAND = AT('AND',UPPER(lcFiltru),2) && conditia incepe cu "AND"
IF lnAND > 0
lcCIntre = ' SI '
ENDIF
lnOR = AT('OR',UPPER(lcFiltru))
IF lnOR > 0
lcCIntre = ' SAU '
ENDIF
Do Case
Case lnCriteriu1 = 1
lcCriteriu1 = '>='
Case lnCriteriu1 = 2
lcCriteriu1 = '<='
Case lnCriteriu1 = 3
lcCriteriu1 = '='
Case lnCriteriu1 = 4
lcCriteriu1 = '<>'
Case lnCriteriu1 = 5
lcCriteriu1 = '>'
Case lnCriteriu1 = 6
lcCriteriu1 = '<'
Endcase
Do Case
Case lnCriteriu2 = 1
lcCriteriu2 = '>='
Case lnCriteriu2 = 2
lcCriteriu2 = '<='
Case lnCriteriu2 = 3
lcCriteriu2 = '='
Case lnCriteriu2 = 4
lcCriteriu2 = '<>'
Case lnCriteriu2 = 5
lcCriteriu2 = '>'
Case lnCriteriu2 = 6
lcCriteriu2 = '<'
Endcase
If !Empty(lcCIntre)
lcTraducere = lcCriteriu1 + lcValoare1 + lcCIntre + " " + lcCriteriu2 + lcValoare2
Else
lcTraducere = lcCriteriu1 + lcValoare1
Endif
If This.Value = 1 && este bifat,
If !Empty(lcFiltru)
Select (lcTabel)
Append Blank
Replace camp_nume With lcCamp_nume
Replace camp_numeT With lcCaption
Replace formula With lcFormula
Replace traducere With lcTraducere
Endif
Else
Select (lcTabel)
Locate For Alltrim(Upper(camp_numeT)) = lcCaption
If Found()
Delete
Endif
ENDIF
Thisform.grid_formula.Refresh
ENDPROC
ENDDEFINE
DEFINE CLASS ck_filtru_text_manager AS checkbox
*< CLASSDATA: Baseclass="checkbox" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: camp_nume
*p: cintre
*p: criteriu
*p: criteriu2
*p: cvaloare1
*p: cvaloare2
*p: filtru
*p: filtru_vfp
*</DefinedPropArrayMethod>
*<PropValue>
Alignment = 0
AutoSize = .T.
BackStyle = 0
camp_nume =
Caption = "Check1"
cintre =
criteriu = 1
criteriu2 = 1
cvaloare1 =
cvaloare2 =
filtru =
filtru_vfp =
Height = 17
Name = "ck_filtru_text_manager"
Width = 60
*</PropValue>
PROCEDURE InteractiveChange
WITH this
.filtru = ""
.filtru_vfp = ""
IF .Value = 0
RETURN
ENDIF
PRIVATE pcValoare1, pcValoare2, pcIntre, pnCriteriu, pnCriteriu2, pcFiltru, pcFiltruVFP && variabile pe care le completeaza forma frm_filtru_text
pcValoare1 = .cValoare1
pcValoare2 = .cValoare2
pnCriteriu = .criteriu
pnCriteriu2 = .criteriu2
pcIntre = .cIntre
pcFiltruVFP = ""
pcFiltru = ""
DO FORM frm_filtru_text WITH .camp_nume,.caption,.criteriu,.criteriu2 TO .filtru
IF .filtru = ""
.Value = 0
.cValoare1 = ""
.cValoare2 = ""
.criteriu = 1
.criteriu2 = 1
.cIntre = ""
.filtru_vfp = ""
ELSE
.cValoare1 = pcValoare1
.cValoare2 = pcValoare2
.criteriu = pnCriteriu
.criteriu2 = pnCriteriu2
.cIntre = pcIntre
.filtru_vfp = pcFiltruVFP
ENDIF
ENDWITH
ENDPROC
PROCEDURE Valid
DoDefault()
Local lcTabel, lcFiltru, lcCamp_nume, lcCaption, lcFormula, lnCriteriu, lnCriteriu2
Local lcValoare1, lcValoare2, lcCIntre
Store '' To lcTabel, lcFiltru, lcCamp_nume, lcCaption, lcFormula, lcValoare1, lcValoare2, lcCIntre
Store 0 To lnCriteriu, lnCriteriu2
lcTabel = Thisform.grid_formula.RecordSource
lcFiltru = This.filtru
lcCamp_nume = Alltrim(Upper(This.camp_nume))
lcCaption = Alltrim(Upper(This.Caption))
lcFormula = Alltrim(Upper(This.filtru))
lnCriteriu = This.criteriu
lnCriteriu2 = This.criteriu2
lcValoare1 = This.cValoare1
lcValoare2 = This.Cvaloare2
lcCIntre = This.cIntre
Do Case
Case lnCriteriu = 1
lcCriteriu = 'incepe cu... '
Case lnCriteriu = 2
lcCriteriu = 'este... '
Case lnCriteriu = 3
lcCriteriu = 'nu este... '
Case lnCriteriu = 4
lcCriteriu = 'contine... '
Case lnCriteriu = 5
lcCriteriu = 'nu contine... '
Case lnCriteriu = 6
lcCriteriu = 'nu are valori '
Case lnCriteriu = 7
lcCriteriu = 'are valori '
Endcase
Do Case
Case lnCriteriu2 = 1
lcCriteriu2 = 'incepe cu... '
Case lnCriteriu2 = 2
lcCriteriu2 = 'este... '
Case lnCriteriu2 = 3
lcCriteriu2 = 'nu este... '
Case lnCriteriu2 = 4
lcCriteriu2 = 'contine... '
Case lnCriteriu2 = 5
lcCriteriu2 = 'nu contine... '
Case lnCriteriu = 6
lcCriteriu = 'nu are valori '
Case lnCriteriu = 7
lcCriteriu = 'are valori '
Endcase
Do Case
Case Alltrim(Upper(lcCIntre)) = 'OR'
lcCIntre = 'SAU'
Case Alltrim(Upper(lcCIntre)) = 'AND'
lcCIntre = 'SI'
Endcase
If !Empty(lcCIntre)
lcTraducere = lcCriteriu + ['] + lcValoare1 + [' ] + lcCIntre + " " + lcCriteriu2 + ['] + lcValoare2 + [']
Else
lcTraducere = lcCriteriu + ['] + lcValoare1 + [']
Endif
If This.Value = 1 && este bifat,
If !Empty(lcFiltru)
Select (lcTabel)
Append Blank
Replace camp_nume With lcCamp_nume
Replace camp_numeT With lcCaption
Replace formula With lcFormula
Replace traducere With lcTraducere
Endif
Else
Select (lcTabel)
Locate For Alltrim(Upper(camp_numeT)) = lcCaption
If Found()
Delete
Else
Locate For Alltrim(Upper(camp_numeT)) = lcCamp_nume && scd
If Found()
DELETE
ENDIF
Endif
Endif
Thisform.grid_formula.Refresh
ENDPROC
ENDDEFINE

3522
clase/caut_ora.vc2 Normal file

File diff suppressed because it is too large Load Diff

1886
clase/cauta_alfa_forms.vc2 Normal file

File diff suppressed because it is too large Load Diff

1248
clase/cautare.vc2 Normal file

File diff suppressed because it is too large Load Diff

BIN
clase/chatbot.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 B

737
clase/cmd_butoane.vc2 Normal file
View File

@@ -0,0 +1,737 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="cmd_butoane.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS but_attach AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_ataseaza
cpicturedown = attach_jos.bmp
cpictureup = attach_sus.bmp
Name = "but_attach"
Picture = ..\grafice\attach_sus.bmp
ToolTipText = "Atasare"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_cautare AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_cauta
cpicturedown = searchalb.bmp
cpictureup = searchalb.bmp
Height = 28
Name = "but_cautare"
Picture = ..\grafice\searchalb.bmp
SpecialEffect = 0
Width = 31
*</PropValue>
ENDDEFINE
DEFINE CLASS but_compara AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_compara
cpicturedown = compara_jos.bmp
cpictureup = compara_sus.bmp
Name = "but_compara"
Picture = ..\grafice\compara_sus.bmp
ToolTipText = "Comparare"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_copiaza AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_copiaza
cpicturedown = copy_jos.bmp
cpictureup = copy_sus.bmp
Name = "but_copiaza"
Picture = ..\grafice\copy_sus.bmp
ToolTipText = "Copiere (CTRL+K)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_da AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_termin
cpicturedown = da_jos.bmp
cpictureup = da_sus.bmp
Height = 31
Name = "but_da"
Picture = ..\grafice\da_sus.bmp
ToolTipText = "Renuntare (ESC)"
Width = 54
*</PropValue>
ENDDEFINE
DEFINE CLASS but_excel AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_excel
cpicturedown = excel_jos.bmp
cpictureup = excel_sus.bmp
Name = "but_excel"
Picture = ..\grafice\excel_sus.bmp
ToolTipText = "Fisier Excel (CTRL+E)"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_factura AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_factura
cpicturedown = factura2.bmp
cpictureup = factura1.bmp
Name = "but_factura"
Picture = ..\grafice\factura1.bmp
ToolTipText = "Factura"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_grafic AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_grafic
cpicturedown = grafic_jos.bmp
cpictureup = grafic_sus.bmp
Name = "but_grafic"
Picture = ..\grafice\grafic_sus.bmp
ToolTipText = "Grafic (CTRL+G)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_help AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_help
cpicturedown = help_jos.bmp
cpictureup = help_sus.bmp
Name = "but_help"
Picture = ..\..\comun\grafice\help_sus.bmp
ToolTipText = "Help (CTRL+ H)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_jos AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_scrolldown
cpicturedown = jos2.bmp
cpictureup = jos1.bmp
Height = 30
Name = "but_jos"
Picture = ..\grafice\jos1.bmp
ToolTipText = "Jos"
Width = 27
*</PropValue>
ENDDEFINE
DEFINE CLASS but_listare AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_listare
cpicturedown = listare_jos.bmp
cpictureup = listare_sus.bmp
Name = "but_listare"
Picture = ..\grafice\listare_sus.bmp
ToolTipText = "Listare (CTRL+P)"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_listfactura AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_listfact
cpicturedown = listare_jos.bmp
cpictureup = listare_sus.bmp
Name = "but_listfactura"
Picture = ..\grafice\listare_sus.bmp
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_modifica AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_modifica
cpicturedown = modific_jos.bmp
cpictureup = modific_sus.bmp
MousePointer = 0
Name = "but_modifica"
Picture = ..\grafice\modific_sus.bmp
ToolTipText = "Modificare (CTRL+M)"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_modiparam AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_modiparam
cpicturedown = modiparam_jos.bmp
cpictureup = modiparam_sus.bmp
Name = "but_modiparam"
Picture = ..\grafice\modiparam_sus.bmp
ToolTipText = "Modificare parametri"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_nou AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_adauga
cpicturedown = nou_jos.bmp
cpictureup = nou_sus.bmp
DisabledPicture = ..\grafice\nou_sus_dis.bmp
Name = "but_nou"
Picture = ..\grafice\nou_sus.bmp
ToolTipText = "Adaugare (CTRL+N)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_nou_gri AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_adauga
cpicturedown = nou_jos_dis.bmp
cpictureup = nou_sus_dis.bmp
Name = "but_noup"
Picture = ..\grafice\nou_sus_dis.bmp
ToolTipText = "Adaugare (CTRL+N)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_nu AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_renunt
cpicturedown = nu_jos.bmp
cpictureup = nu_sus.bmp
Height = 32
Name = "but_nu"
Picture = ..\grafice\nu_sus.bmp
ToolTipText = "Renuntare (ESC)"
Width = 56
*</PropValue>
ENDDEFINE
DEFINE CLASS but_precedent AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_precedent
cpicturedown = precedent2.bmp
cpictureup = precedent1.bmp
Name = "but_precedent"
Picture = ..\grafice\precedent1.bmp
ToolTipText = "Verificare"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_reface AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_reface
cpicturedown = refac_jos.bmp
cpictureup = refac_sus.bmp
Name = "but_reface"
Picture = ..\grafice\refac_sus.bmp
ToolTipText = "Refacere"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_renunt AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_renunt
cpicturedown = renunt_jos.bmp
cpictureup = renunt_sus.bmp
Name = "but_renunt"
Picture = ..\grafice\renunt_sus.bmp
ToolTipText = "Renuntare (ESC)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_reset AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
caction = do_reset
Caption = ""
cpicturedown = reset_jos.bmp
cpictureup = reset_sus.bmp
Name = "but_reset"
Picture = ..\grafice\reset_sus.bmp
ToolTipText = "Reseteaza"
_memberdata = <VFPData>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS but_retur AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_retur
cpicturedown = retur2.bmp
cpictureup = retur1.bmp
MousePointer = 0
Name = "but_retur"
Picture = ..\grafice\retur1.bmp
ToolTipText = "Retur"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_salveaza AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_salvare
cpicturedown = save_jos.bmp
cpictureup = save_sus.bmp
Name = "but_salveaza"
Picture = ..\grafice\save_sus.bmp
ToolTipText = "Salvare"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_sterge AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_sterge
cpicturedown = sterg_jos.bmp
cpictureup = sterg_sus.bmp
DisabledPicture = ..\grafice\sterg2_sus_dis.bmp
Name = "but_sterge"
Picture = ..\grafice\sterg_sus.bmp
ToolTipText = "Stergere (CTRL+D)"
Visible = .F.
*</PropValue>
ENDDEFINE
DEFINE CLASS but_sus AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_scrollup
cpicturedown = sus2.bmp
cpictureup = sus1.bmp
Height = 30
Name = "but_sus"
Picture = ..\grafice\sus1.bmp
ToolTipText = "Sus"
Width = 27
*</PropValue>
ENDDEFINE
DEFINE CLASS but_termin AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_termin
cpicturedown = terminat_jos.bmp
cpictureup = terminat_sus.bmp
Name = "but_termin"
Picture = ..\grafice\terminat_sus.bmp
ToolTipText = "Terminare (CTRL+F)"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_urmator AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_urmator
cpicturedown = urmator2.bmp
cpictureup = urmator1.bmp
Name = "but_urmator"
Picture = ..\grafice\urmator1.bmp
ToolTipText = "Verificare"
*</PropValue>
ENDDEFINE
DEFINE CLASS but_urmator_tot AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_urmator_tot
cpicturedown = urmator2_tot.bmp
cpictureup = urmator1_tot.bmp
Name = "but_urmator_tot"
Picture = ..\grafice\urmator1_tot.bmp
*</PropValue>
ENDDEFINE
DEFINE CLASS but_verifica AS buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_verifica
cpicturedown = verificare2.bmp
cpictureup = verificare1.bmp
Name = "but_verifica"
Picture = ..\grafice\verificare1.bmp
ToolTipText = "Verificare"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_adauga AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_adauga
Caption = "\<Adaug<75>"
FontBold = .T.
Name = "cmd_adauga"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_cauta AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_cauta
Caption = "\<Caut<75>"
FontBold = .T.
Name = "cmd_cauta"
ToolTipText = "ALT+C"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_executa AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*p: lvizibil && .F. daca butonul nu este vizibil , .T. daca butonul este vizibil (in functie de drepturi). Proprietatea ptr. butoanele care au visible=.F. default.
*</DefinedPropArrayMethod>
*<PropValue>
caction = do_executa
Caption = "\<Execut<75>"
FontBold = .T.
lvizibil = .T.
Name = "cmd_executa"
_memberdata = <VFPData>
<memberdata name="lvizibil" display="lVizibil"/>
</VFPData>
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_login AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_login
Caption = "Log \<In"
FontBold = .T.
Name = "cmd_login"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_logoff AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_logoff
Caption = "Log \<Off"
FontBold = .T.
Name = "cmd_logoff"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_modifica AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_modifica
Caption = "\<Modifica"
FontBold = .T.
Name = "cmd_modifica"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_renunt AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_renunt
Caption = "\<Renun<75>"
FontBold = .T.
Name = "cmd_renunt"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_reset AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_reset
Caption = "\<Reset"
FontBold = .T.
Name = "cmd_reset"
TabStop = .F.
ToolTipText = "ALT+R"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_select AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: schimba_caption
*</DefinedPropArrayMethod>
*<PropValue>
caction = do_select
Caption = "\<Selecteaz<61> tot"
FontBold = .T.
Name = "cmd_select"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_select_adv AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: do_bifeaza && Metoda delegat pentru click-ul pe coloana cu bifa.
*m: do_reset
*m: schimba_caption
*m: setup
*p: ccoloana && Numele coloanei din cursor pentru care se aplica bifa.
*p: ccursor
*p: cfiltrusuplimentar && Conditie SQL suplimentara (sintaxa FOR/WHERE), aplicata DOAR pe ramura de selectare (nu si la deselectare); goala = comportament neschimbat.
*p: cgrid && Numele obiectului (de ex. : thisform.grid1 ).
*p: ncheck && Index-ul obiectului de tip checkbox in array-ul Objects al coloanei din grid.
*p: ncoloana && Index-ul coloanei in array-ul Objects al gridului.
*p: nselectate && Numarul de randuri selectate
*</DefinedPropArrayMethod>
HIDDEN ncheck,ncoloana
*<PropValue>
Caption = "\<Selecteaz<61> tot"
ccoloana =
ccursor =
cFiltruSuplimentar =
cgrid =
FontBold = .T.
Height = 27
Name = "cmd_select_adv"
ncheck = 0
ncoloana = 0
nselectate = 0
Width = 111
_memberdata = <VFPData>
<memberdata name="ccoloana" type="Property" favorites="True"/>
<memberdata name="cgrid" type="Property" favorites="True"/>
<memberdata name="cFiltruSuplimentar" type="Property" favorites="True"/>
<memberdata name="setup" display="Setup"/>
<memberdata name="ccursor" display="cCursor"/>
</VFPData>
*</PropValue>
PROCEDURE Click
If !Empty(This.ccoloana) And !Empty(This.ccursor)
lcCursor = This.ccursor
lcColoana = This.ccoloana
lcFiltru = Iif(Empty(Filter(lcCursor)),[2=2],Filter(lcCursor))
Select (lcCursor)
If Reccount(lcCursor) > 0
lnRecno = Recno()
Set Filter To
If This.nselectate = 0
lcFiltruSelect = lcFiltru
If !Empty(This.cFiltruSuplimentar)
lcFiltruSelect = "(" + lcFiltru + ") AND (" + This.cFiltruSuplimentar + ")"
Endif
Calculate Cnt() To lnNrInreg For &lcFiltruSelect
Replace (lcColoana) With 1 For &lcFiltruSelect
This.nselectate = lnNrInreg
Else
Replace (lcColoana) With 0 For &lcFiltru
This.nselectate = 0
Endif
Set Filter To &lcFiltru
Go Min(lnRecno,Reccount(lcCursor))
If !Empty(Filter(lcCursor))
lcGrid = This.cgrid
poGrid = &lcGrid
poGrid.Refresh()
Endif
Endif
Endif
This.schimba_caption
ENDPROC
PROCEDURE Destroy
Local lcGrid, i, j, loGrid
If !Empty(This.ccoloana) And !Empty(This.cgrid)
lcGrid = This.cgrid
TRY
loGrid = &lcGrid
i = This.ncoloana
j = This.ncheck
If Type(lcGrid+'.Objects(i).Objects(j)')="O"
Unbindevent(loGrid.Objects(i).Objects(j),"Click",This,"do_bifeaza")
ENDIF
CATCH
ENDTRY
Endif
ENDPROC
PROCEDURE do_bifeaza && Metoda delegat pentru click-ul pe coloana cu bifa.
pcGrid = This.cgrid
poGrid = &pcGrid
This.nselectate = This.nselectate + Iif(poGrid.Objects(This.ncoloana).Objects(This.ncheck).Value=0,-1,1)
This.schimba_caption()
ENDPROC
PROCEDURE do_reset
This.nselectate = 0
This.schimba_caption()
ENDPROC
PROCEDURE Init
DoDefault()
This.Setup()
ENDPROC
PROCEDURE schimba_caption
If This.nselectate = 0
This.Caption = "\<Selecteaz<61> tot"
Else
This.Caption = "De\<selecteaz<61> tot"
Endif
ENDPROC
PROCEDURE setup
Local lcColoana, lcGrid
LOCAL i, j, loGrid
If !Empty(This.ccoloana) And !Empty(This.cgrid)
lcGrid = This.cgrid
Try
loGrid = &lcGrid
Catch
Endtry
If Type('loGrid') = 'O'
This.ccursor = loGrid.RecordSource
lcColoana = Upper(This.ccursor+[.]+This.ccoloana)
For i = 1 To loGrid.ColumnCount
With loGrid.Objects(i)
If Upper(.ControlSource) = lcColoana
For j = 1 To .Objects.Count
If Upper(.Objects(j).BaseClass) = [CHECKBOX]
This.ncoloana = i
This.ncheck = j
Bindevent(.Objects(j),"Click",This,"do_bifeaza",1)
Exit
Endif
Endfor
Exit
Endif
Endwith
Endfor
Endif
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS cmd_sterge AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = inainte_de_do_sterge
Caption = "\<<3C>terge"
FontBold = .T.
Name = "cmd_sterge"
*</PropValue>
ENDDEFINE
DEFINE CLASS cmd_termin AS cmd_buton OF "_cmd_base.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
caction = do_termin
Caption = "\<Termin"
FontBold = .T.
Name = "cmd_termin"
*</PropValue>
ENDDEFINE

10668
clase/comun.vc2 Normal file

File diff suppressed because it is too large Load Diff

5241
clase/configurare.vc2 Normal file

File diff suppressed because it is too large Load Diff

1028
clase/configurare_doc.vc2 Normal file

File diff suppressed because it is too large Load Diff

14
clase/crypto.vc2 Normal file
View File

@@ -0,0 +1,14 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="crypto.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS mycrypt AS _cryptapi OF "c:\program files\microsoft visual foxpro 9\ffc\_crypt.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "mycrypt"
*</PropValue>
ENDDEFINE

272
clase/decabaza.vc2 Normal file
View File

@@ -0,0 +1,272 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="decabaza.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS ca_baza AS _cabase OF "_ca_base.vcx"
*< CLASSDATA: Baseclass="cursoradapter" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<DefinedPropArrayMethod>
*m: afisare
*m: cfiltru_assign
*m: corder_assign
*p: cfiltru
*p: cfiltruoriginal
*p: cgroup
*p: corder
*p: cselect
*p: lafisare
*p: lmodparam
*</DefinedPropArrayMethod>
*<PropValue>
cfiltru =
cfiltruoriginal =
cgroup =
corder =
cselect =
Height = 22
lafisare = .T.
Name = "ca_baza"
Width = 23
*</PropValue>
PROCEDURE afisare
#Define CRLF Chr(13) + Chr(10)
Local llReconnect, lnHandle, lnSucces, llSucces, lnEroare1, lnEroare2, lcTextEroare, llEroare
Local laEroare2[1], lcCursor, lcErrorHTTP, lcLog, lcLunaHTTP, lcProgram, lcTempCursor, lcUserName
Local lnRaspuns
Local laEroare
llSucces = .F.
If This.lmodparam
&& selectcmd nu are inclus where
This.SelectCmd = This.cSelect
Else
This.SelectCmd = Left(Upper(This.SelectCmd), At('WHERE', Upper(This.SelectCmd)) - 1)
Endif
If !Empty(This.cFiltru) Or !Empty(This.cFiltruoriginal)
This.SelectCmd = This.SelectCmd + ' WHERE '
Else
This.SelectCmd = This.SelectCmd + ' '
Endif
This.SelectCmd = This.SelectCmd + Alltrim(This.cFiltru)
If !Empty(This.cFiltru) And !Empty(This.cFiltruoriginal)
This.SelectCmd = This.SelectCmd + [ AND (]
Else
This.SelectCmd = This.SelectCmd + [ ]
Endif
This.SelectCmd = This.SelectCmd + Alltrim(This.cFiltruoriginal)
If !Empty(This.cFiltru) And !Empty(This.cFiltruoriginal)
This.SelectCmd = This.SelectCmd + [) ]
Else
This.SelectCmd = This.SelectCmd + [ ]
Endif
This.SelectCmd = This.SelectCmd + Iif(!Empty(This.cgroup), " GROUP BY " + This.cgroup, " ") + Iif(!Empty(This.cOrder), ' ORDER BY ' + This.cOrder, ' ')
*!* ELSE
*!* THIS.SELECTCMD = LEFT(UPPER(THIS.SELECTCMD),AT('WHERE',UPPER(THIS.SELECTCMD))+LEN('WHERE')-1)+;
*!* SPACE(1)+THIS.CFiltru+IIF(!EMPTY(THIS.cgroup),SPACE(1)+"GROUP BY "+this.cgroup,"")+IIF(!EMPTY(THIS.CORder),SPACE(1)+'ORDER BY'+SPACE(1)+THIS.CORder,'')
*!* ENDIF
Do While .T.
If Type('goLog') = 'O'
goLog.Log(This.SelectCmd, Program())
Endif
lcCursor = This.Alias
If Used (lcCursor)
Use In (lcCursor)
Endif
This.CursorAttach(lcCursor)
If !Empty(This.CursorSchema)
llSucces = This.CursorFill(.T.)
Else
llSucces = This.CursorFill()
Endif
If Used(lcCursor) And llSucces
This.CursorDetach
lcTempCursor = Sys(2015)
Use Dbf(lcCursor) In 0 Again Shared Alias (lcTempCursor)
Use In (lcCursor)
Use Dbf(lcTempCursor) In 0 Again Alias (lcCursor)
Use In (lcTempCursor)
Exit
Endif
If !llSucces
Release laEroare
Declare laEroare(1)
Aerror(laEroare)
If Alen(laEroare) > 1
lnEroare1 = laEroare[1]
lnEroare2 = laEroare[5]
lcTextEroare = laEroare[3]
lnHandle = laEroare[6]
llEroare = .T.
If Type('goMyXMLHTTP') = 'O'
lcLunaHTTP = Iif(Type('gnLuna') = 'N', Transform(gnLuna) + "/", "") + Iif(Type('GNAN') = 'N', Transform(gnAn), "")
lcErrorHTTP = Sys(0) + ":" + Iif(Type('GCS') = 'C', " " + GCS, "") + ": " + lcLunaHTTP + ;
CRLF + Alltrim(Str(lnEroare1)) + ' ' + Transform(laEroare[3]) + CRLF + Transform(This.SelectCmd) + CRLF + ;
TRANSFORM(This.CursorSchema) + CRLF + CRLF + GETCALLSTACK()
lcUserName = gcUserNameApp
lcProgram = Juststem(Sys(16, 0))
goMyXMLHTTP.postError(lcErrorHTTP, lcUserName, lcProgram)
Endif
If lnEroare1 <> 1526 && eroare <> ODBC
lcTextEroare = Program() + CRLF + Alltrim(Str(lnEroare1)) + CRLF + laEroare[2] + CRLF + This.SelectCmd + CRLF + CRLF + This.CursorSchema + CRLF + CRLF + GETCALLSTACK()
If Type('goLog') = 'O'
goLog.Log(lcTextEroare, Program())
Endif
AMessagebox(lcTextEroare, 0, "Eroare")
Quit
Retry
Endif
*!* IF lnHandle <> gnHandle && daca mesajul de eroare provine de la alta conexiune => nu s-a intamplat nici o eroare
*!* EXIT
*!* ENDIF
If Inlist(lnEroare2, 12152, 3113, 3114, 12560, 4068, 28, 12) && 12512 = TNS: UNABLE TO SEND BREAK MESSAGE; 3114 = NOT CONNECTED TO ORACLE; 12560 = PROTOCOL ADAPTER ERROR
If Type('goLog') = 'O'
lcLog = laEroare(3) + CRLF
goLog.Log(lcLog, Program())
Endif
Do While .T.
lnRaspuns = AMessagebox('Eroare de conectare.' + CRLF + lcTextEroare + CRLF + 'Doriti reconectare?', 4 + 32, 'Eroare') && retry = 4; cancel = 2
If lnRaspuns = 6
*!* goConn.disconnect()
llReconnect = .T.
lnHandle = goConn.Connect(goConn.cHost, goConn.cUser, goConn.cPassword, llReconnect)
If lnHandle < 0
Declare laEroare2(1)
Aerror(laEroare2)
lcTextEroare = laEroare2(3)
Release laEroare2
Loop
Else
This.Parent.Datasource = lnHandle
Exit
Endif
Else
Quit
Retry
Endif && lnRaspuns = 6
Enddo && .T.
Loop && daca am iesit cu un handle valid intru din nou in loop si fac cursorfill
Else
lcTextEroare = Program() + CRLF + Alltrim(Str(lnEroare1)) + CRLF + laEroare[3] + CRLF + This.SelectCmd + CRLF + CRLF + This.CursorSchema + CRLF + CRLF + GETCALLSTACK()
lnRaspuns = AMessagebox(lcTextEroare, 0, 'Eroare') && ok = 0
If Type('goLog') = 'O'
goLog.Log(lcTextEroare, Program())
Endif
Quit
Retry
Endif
Else
Exit
Endif && INLIST(lnEroare2,12152,3114)
Endif && !llSucces
Enddo && .T.
Release laEroare
ENDPROC
PROCEDURE AutoOpen
*** Setup code: DO NOT REMOVE
if not pemstatus(This, '__VFPSetup', 5)
This.AddProperty('__VFPSetup', 1)
This.Init()
endif
*** End of Setup code: DO NOT REMOVE
ENDPROC
PROCEDURE cfiltru_assign
LPARAMETERS vNewVal
*To do: Modify this routine for the Assign method
THIS.cfiltru = m.vNewVal
IF this.lafisare
this.afisare()
ENDIF
ENDPROC
PROCEDURE corder_assign
Lparameters vNewVal
*To do: Modify this routine for the Assign method
This.cOrder = m.vNewVal
IF this.lafisare
this.afisare()
ENDIF
ENDPROC
PROCEDURE Init
local llReturn
do case
case not pemstatus(This, '__VFPSetup', 5)
This.AddProperty('__VFPSetup', 0)
case This.__VFPSetup = 2
This.__VFPSetup = 0
return
endcase
llReturn = dodefault()
*** Setup code: DO NOT REMOVE
*** End of Setup code: DO NOT REMOVE
if This.__VFPSetup = 1
This.__VFPSetup = 2
endif
return llReturn
ENDPROC
ENDDEFINE
DEFINE CLASS deca_baza AS _debase OF "_de_base.vcx"
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "c:\program files\microsoft visual foxpro 8\foxpro.h"
*<DefinedPropArrayMethod>
*p: ctexteroare
*p: leroare
*p: neroare
*</DefinedPropArrayMethod>
*<PropValue>
ctexteroare =
Name = "deca_baza"
neroare = 0
*</PropValue>
ENDDEFINE

669
clase/drept_grupuri.vc2 Normal file
View File

@@ -0,0 +1,669 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="drept_grupuri.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS cus_odata_grupuri AS _cusodatabase OF "_cus_odata_base.vcx"
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
Name = "cus_odata_grupuri"
*</PropValue>
PROCEDURE make_sql
Lparameters toRec,tnId
lcActiune = Alltrim(This.cActiune)
If Inlist(lcActiune, "UPDATE",'INSERT') And Type('toRec') != "O"
Return .F.
Endif
If Inlist(lcActiune, "UPDATE",'DELETE') And Type('tnId') != "N"
Return .F.
Endif
If Inlist(lcActiune, "UPDATE",'DELETE')
lcId = Alltrim(Str(tnId))
Endif
If Inlist(lcActiune, "UPDATE",'INSERT')
lcAcces = Alltrim(toRec.Acces)
Endif
Do Case
Case lcActiune = "INSERT"
Case lcActiune = "UPDATE"
lcSql = [begin PACK_DREPTURI.grupdreptmodproc(] + Alltrim(Str(gnIdProgram))+ ;
[,] + lcId + [,']+ lcAcces +[',]+Alltrim(Str(gnIdUtil))+[); end;]
Case lcActiune = "DELETE"
Endcase
This.csql = lcSql
ENDPROC
ENDDEFINE
DEFINE CLASS frm_grupuri AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grid1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grid1.cUtil.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grid1.cUtil.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modifica1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_grup" UniqueID="" Timestamp="" />
*<PropValue>
DoCreate = .T.
Height = 250
Name = "frm_grupuri"
Width = 450
_shape1.Name = "_shape1"
_shape1.Width = 450
_shape2.Height = 29
_shape2.Left = 349
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 103
Lb_titlu_alb_b121.Caption = "Drepturi grupuri"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
BUT_TERMIN1.Left = 419
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.Top = 1
*</PropValue>
ADD OBJECT '_grid1' AS _grid WITH ;
ColumnCount = 1, ;
DeleteMark = .F., ;
Height = 166, ;
Left = 7, ;
Name = "_grid1", ;
Panel = 1, ;
RecordSource = "crsgrupuri", ;
TabIndex = 3, ;
Top = 74, ;
Width = 425, ;
ZOrderSet = 5, ;
Column1.ControlSource = "grup", ;
Column1.Name = "cUtil", ;
Column1.Width = 395
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="grid" />
ADD OBJECT '_grid1.cUtil.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Grup", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT '_grid1.cUtil.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'But_modifica1' AS but_modifica WITH ;
Left = 356, ;
Name = "But_modifica1", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_nou1' AS but_nou WITH ;
Left = 275, ;
Name = "But_nou1", ;
Top = 1, ;
Visible = .F.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_sterge1' AS but_sterge WITH ;
Left = 388, ;
Name = "But_sterge1", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Clb_grup' AS clb_tx_simplu WITH ;
Left = 26, ;
Name = "Clb_grup", ;
TabIndex = 1, ;
Top = 36, ;
ZOrderSet = 9, ;
Text_simplu1.Format = "!K", ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Grup", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ;
Left = 334, ;
Name = "Cmd_cauta1", ;
TabIndex = 2, ;
Top = 36, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
PROCEDURE actualizeaza_grid1
Lparameters pcFiltru
Local lcFiltru
lcFiltru=pcFiltru
If Empty(lcFiltru)
lcFiltru=pogrupuri.ca_baza1.cfiltru
Endif
save_grid_tag(Thisform._grid1)
pogrupuri.ca_baza1.cfiltru=lcFiltru
pogrupuri.ca_baza1.afisare()
restore_grid_tag(Thisform._grid1)
If Reccount('crsgrupuri')>0
Thisform._grid1.SetFocus()
Else
Thisform.clb_grup.SetFocus()
Endif
ENDPROC
PROCEDURE do_adauga
*!* Private pniesire
*!* pniesire=0
*!* Select crsutilizatori
*!* Scatter Name loRec Blank
*!* AddProperty(loRec,"parola","")
*!* Do Adauga_Modifica_Inregistrare With "utilizatori",loRec,,"INSERT"
*!* If pniesire=1
*!* Thisform.actualizeaza_grid1()
*!* Endif
ENDPROC
PROCEDURE do_cauta
Local lcFiltru
*!* lcFiltru=[id_firma=?gnIdFirma and id_prog=?gnIdProgram]
lcFiltru=[2=2]
lcNume=Thisform.clb_grup.text_simplu1.Value
If !Empty(lcNume)
lcFiltru=lcFiltru + [ and grup like '] + Alltrim(lcNume) + [%']
Endif
Thisform.MousePointer= 11
Thisform.LockScreen=.T.
Thisform.actualizeaza_grid1(lcFiltru)
If Reccount('crsgrupuri')=0
Messagebox("Cautarea nu a intors rezultate!",0+64,"Info cautare")
Endif
Thisform.LockScreen=.F.
Thisform.MousePointer=0
ENDPROC
PROCEDURE do_modifica
If Reccount('crsgrupuri')>0
Private pniesire
pniesire=0
Select crsgrupuri
Scatter Name loRec
AddProperty(loRec,[acces],[])
citeste_drepturi(loRec.id_grup)
Do Adauga_Modifica_Inregistrare With "grupuri",loRec,loRec.id_grup,"UPDATE"
If pniesire=1
Thisform.actualizeaza_grid1()
Endif
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS frm_grupuri_nou AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_grup" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Oleacces1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="LB_SIMPLU1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cus_odata_grupuri1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_acces
*m: citeste_noduri
*p: nid
*p: orec
*</DefinedPropArrayMethod>
*<PropValue>
DoCreate = .T.
Height = 563
Name = "frm_grupuri_nou"
nid = 0
orec =
Width = 554
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 552
_shape2.Height = 29
_shape2.Left = 482
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 70
Lb_titlu_alb_b121.Caption = "Operator"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 7
BUT_TERMIN1.Left = 518
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 7
BUT_TERMIN1.Top = 1
*</PropValue>
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 487, ;
Name = "But_renunt1", ;
TabIndex = 8, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Clb_grup' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 114, ;
Name = "Clb_grup", ;
TabIndex = 1, ;
Top = 48, ;
Width = 326, ;
Text_simplu1.ControlSource = "porec.grup", ;
Text_simplu1.Format = "!K", ;
Text_simplu1.Left = 138, ;
Text_simplu1.Name = "Text_simplu1", ;
Lb_simplu1.Caption = "Operator", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Cus_odata_grupuri1' AS cus_odata_grupuri WITH ;
Left = 36, ;
Name = "Cus_odata_grupuri1", ;
Top = 36
*< END OBJECT: ClassLib="drept_grupuri.vcx" BaseClass="custom" />
ADD OBJECT 'LB_SIMPLU1' AS lb_simplu WITH ;
Caption = "Optiuni accesibile", ;
Left = 13, ;
Name = "LB_SIMPLU1", ;
TabIndex = 10, ;
Top = 86
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'Oleacces1' AS oleacces WITH ;
Height = 434, ;
Left = 22, ;
Name = "Oleacces1", ;
TabIndex = 6, ;
Top = 108, ;
Width = 516
*< END OBJECT: ClassLib="drept_grupuri.vcx" BaseClass="olecontrol" OLEObject="c:\windows\system32\mscomctl.ocx" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJB8A9NKzsUBAwAAAMACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAKIBAAAAAAAABAAAAAIAAAD+////BQAAAP7///8GAAAABwAAAAgAAAAJAAAACgAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+2kEHHiYXREbFqAMDwKDYoIUM0EggAAABVNQAA2ywAALE8wWoBAAYAIgAAADkAAADtAwAACQAAAKEKGwAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTFmAHQAIABXAGkAbgBkAG8AdwBzACAAUgBlAHAAbwByAHQAIAABAACADgAAAEhpZGVTZWxlY3Rpb24ABQAAAEwAAAAADAAAAEluZGVudGF0aW9uABEAAABODQAAAAcAAAAAAAAAAAAFAHAMGwAHAAAAAAAAAAUAAICI3xIAAQAAAFwAH97svQEABQDM3xIATgBUAFwAUwB5AHMAdABlAG0AMwAyAAAAQ0AKAAAATGFiZWxFZGl0AAkAAABJCgAAAAEAAAAKAAAATGluZVN0eWxlAAkAAABJCgAAAAEAAAANAAAATW91c2VQb2ludGVyAAkAAABJCgAAAAAAAAAOAAAAUGF0aFNlcGFyYXRvcgAKAAAASAAAAAABAAAAXAcAAABTb3J0ZWQABQAAAEwAAAAABgAAAFN0eWxlAAkAAABJCgAAAAYAAAAMAAAAT0xFRHJhZ01vZGUACQAAAEkKAAAAAAAAAAwAAABPTEVEcm9wTW9kZQAJAAAASQoAAAAAAAAACwAAAEFwcGVhcmFuY2UACQAAAEkKAAAAAQAAAAwAAABCb3JkZXJTdHlsZQAJAAAASQoAAAABAAAACwAAAENoZWNrYm94ZXMABQAAAEwBAAAADgAAAEZ1bGxSb3dTZWxlY3QABQAAAEwAAAAADAAAAEhvdFRyYWNraW5nAAUAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" />
PROCEDURE actualizeaza_acces
ENDPROC
PROCEDURE citeste_noduri
Local lcAcces
lcAcces=[]
For i=1 To Thisform.oleacces1.Nodes.Count()
If Thisform.oleacces1.Nodes.Item(i).Children=0 And Thisform.oleacces1.Nodes.Item(i).Checked
lcAcces=lcAcces+Thisform.oleacces1.Nodes.Item(i).Key
Endif
Endfor
porec.acces=lcAcces
ENDPROC
PROCEDURE inainte_de_do_termin
Private PLRETURN
Set Exact On
If Upper(Alltrim(Thisform.ActiveControl.Name))='TEXT_SIMPLU1'
lcval=This.ActiveControl.ControlSource
&lcval=Thisform.ActiveControl.Value
Endif
lcgrup=Alltrim(porec.grup)
Thisform.citeste_noduri()
lcActiune=Upper(Alltrim(Thisform.cus_odata_grupuri1.cactiune))
PLRETURN=This.cus_odata_grupuri1.salvare(This.orec,This.nid)
pniesire=1
Return PLRETURN
ENDPROC
PROCEDURE Init
Lparameters toRec, tnId, tcActiune
This.orec= toRec
This.nid = tnId
This.cus_odata_grupuri1.cactiune = tcActiune
If tcActiune='UPDATE'
Thisform.clb_grup.texT_SIMPLU1.ReadOnly=.T.
Select crsdrepturi
Scan
lcCheie=Alltrim(cheie)
loNode=Thisform.oleacces1.Object.nodes.Item(lcCheie)
loNode.Checked= .T.
Thisform.oleacces1.nodeCheck(loNode)
Endscan
Endif
ENDPROC
PROCEDURE Oleacces1.KeyPress
*** ActiveX Control Event ***
Lparameters keyascii
Do Case
Case keyascii=6
Thisform.KeyPress(6,2)
Case keyascii=27
Thisform.KeyPress(27,0)
Otherwise
DoDefault()
Endcase
ENDPROC
ENDDEFINE
DEFINE CLASS oleacces AS _olecontrol OF "_baza.vcx"
*< CLASSDATA: Baseclass="olecontrol" Timestamp="" Scale="Pixels" Uniqueid="" Nombre="oleacces" Parent="" ObjName="oleacces" OLEObject="C:\WINDOWS\system32\MSCOMCTL.OCX" Value="0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAA/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCCV/eMzcUBAwAAAMACAAAAAAAAAwBPAGwAZQBPAGIAagBlAGMAdABEAGEAdABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4AAgEDAAAAAgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAagAAAAAAAAADAEEAYwBjAGUAcwBzAE8AYgBqAFMAaQB0AGUARABhAHQAYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAABcAAAAAAAAAAMAQwBoAGEAbgBnAGUAZABQAHIAbwBwAHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAKIBAAAAAAAABAAAAAIAAAD+////BQAAAP7///8GAAAABwAAAAgAAAAJAAAACgAAAP7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+2kEHHiYXREbFqAMDwKDYoIUM0EggAAABIIQAAZhIAALE8wWoBAAYAIgAAABkAAADtAwAACQAAANnTGQAB782rXAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAACQAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MzY4MjY1RS04NUZFLTExZDEtOEJFMy0wMDAwRjg3NTREQTFmAHQAIABXAGkAbgBkAG8AdwBzACAAUgBlAHAAbwByAHQAIAABAACADgAAAEhpZGVTZWxlY3Rpb24ABQAAAEwAAAAADAAAAEluZGVudGF0aW9uABEAAABODQAAAAcAAAAAAAAAAAAFAKjVGQAHAAAAAAAAAAUAAIDA6xIAAQAAAFwAH97svQEABQAE7BIATgBUAFwAUwB5AHMAdABlAG0AMwAyAAAAQ0AKAAAATGFiZWxFZGl0AAkAAABJCgAAAAAAAAAKAAAATGluZVN0eWxlAAkAAABJCgAAAAEAAAANAAAATW91c2VQb2ludGVyAAkAAABJCgAAAAAAAAAOAAAAUGF0aFNlcGFyYXRvcgAKAAAASAAAAAABAAAAXAcAAABTb3J0ZWQABQAAAEwAAAAABgAAAFN0eWxlAAkAAABJCgAAAAYAAAAMAAAAT0xFRHJhZ01vZGUACQAAAEkKAAAAAAAAAAwAAABPTEVEcm9wTW9kZQAJAAAASQoAAAAAAAAACwAAAEFwcGVhcmFuY2UACQAAAEkKAAAAAQAAAAwAAABCb3JkZXJTdHlsZQAJAAAASQoAAAABAAAACwAAAENoZWNrYm94ZXMABQAAAEwBAAAADgAAAEZ1bGxSb3dTZWxlY3QABQAAAEwAAAAADAAAAEhvdFRyYWNraW5nAAUAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" />
*<DefinedPropArrayMethod>
*m: adauga_frunze
*m: bifeaza_nod
*m: citeste_meniu
*m: citeste_pageframe
*p: cmeniu && Numele meniului
*p: cpageframe
*</DefinedPropArrayMethod>
*<PropValue>
cmeniu =
cpageframe =
Height = 178
Name = "oleacces"
Width = 322
*</PropValue>
PROCEDURE adauga_frunze
Lparameters lnTip,lcKey
Do Case
Case lnTip=0 && introducere
Case lnTip=1 && raport
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
This.Nodes.Add(lcKey,4,lcKey+"1","Export")
This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
Endif
Case lnTip=2 && registru
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
This.Nodes.Add(lcKey,4,lcKey+"1","Export")
This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
This.Nodes.Add(lcKey,4,lcKey+"4","Refacere")
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Refacere",lcKey)
Endif
Case lnTip=3 && balanta\inreg.
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
This.Nodes.Add(lcKey,4,lcKey+"1","Export")
This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
This.Nodes.Add(lcKey,4,lcKey+"4","Refacere")
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Refacere",lcKey)
Endif
Case lnTip=4 && vizualizare
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
This.Nodes.Add(lcKey,4,lcKey+"1","Export")
This.Nodes.Add(lcKey,4,lcKey+"2","Listare")
This.Nodes.Add(lcKey,4,lcKey+"3","Modificare")
This.Nodes.Add(lcKey,4,lcKey+"4","Stergere")
This.Nodes.Add(lcKey,4,lcKey+"5","Vizualizare inreg. proprii")
This.Nodes.Add(lcKey,4,lcKey+"6","Vizualizare toate inreg.")
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"1",4,"Export",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"2",4,"Listare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"3",4,"Modificare",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"4",4,"Stergere",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"5",4,"Vizualizare inreg.proprii",lcKey)
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+"6",4,"Vizualizare tot",lcKey)
Endif
Endcase
ENDPROC
PROCEDURE bifeaza_nod
Lparameters Node,llChecked
Local loChild,i
*!* If Isnull(Node.Parent)
*!* loProp='this.cnt'+Node.Key
*!* If Node.checked
*!* &loProp=Node.children
*!* Else
*!* &loProp=0
*!* Endif
*!* Node.bold=Node.checked
*!* loChild=Node.Child.FirstSibling
*!* For i=1 To Node.children
*!* loChild.checked=Node.checked
*!* loChild=loChild.Next
*!* Endfor
*!* Else
*!* loProp='this.cnt'+Node.Parent.Key
*!* If Node.checked
*!* &loProp=&loProp+1
*!* Node.Parent.bold=Node.checked
*!* If &loProp=Node.Parent.children
*!* Node.Parent.checked=.T.
*!* Endif
*!* Else
*!* &loProp=&loProp-1
*!* If Node.Parent.checked
*!* Node.Parent.checked=.F.
*!* Endif
*!* If &loProp=0
*!* Node.Parent.bold=.F.
*!* Endif
*!* Endif
*!* Endif
loChild=Node.Child.FirstSibling
For i=1 To Node.children
If loChild.children>0
This.bifeaza_nod(loChild,llChecked)
loChild.bold=llChecked
Endif
loChild.checked=llChecked
loChild=loChild.Next
Endfor
ENDPROC
PROCEDURE citeste_meniu
Lparameters lnKey,lcNumeMeniu,lcOptiune
lcKey=Chr(lnKey)
This.Nodes.Add(,1,lcKey,lcOptiune)
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey,1,lcOptiune,[ ])
Endif
lnKey2=65
k=0
Try
lcKey2=lcKey+Chr(lnKey2)
lnKey2=lnKey2+1
This.Nodes.Add(lcKey,4,lcKey2,'Utile')
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Utile],lcKey)
Endif
For i=1 To Cntbar('utile')
lcOptiune=Prmbar('utile',i)
If !Empty(lcOptiune)
k=k+1
This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
Endif
Endif
Endfor
Catch
Endtry
k=0
Try
lcKey2=lcKey+Chr(lnKey2)
lnKey2=lnKey2+1
This.Nodes.Add(lcKey,4,lcKey2,'Initializare')
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Initializare],lcKey)
Endif
For i=1 To Cntbar('initializa')
lcOptiune=Prmbar('initializa',i)
If !Empty(lcOptiune)
k=k+1
This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
Endif
Endif
Endfor
Catch
Endtry
k=0
Try
lcKey2=lcKey+Chr(lnKey2)
This.Nodes.Add(lcKey,4,lcKey2,'Actualizari')
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2,4,[Actualizari],lcKey)
Endif
For i=1 To Cntbar('_1bs12qror')
lcOptiune=Prmbar('_1bs12qror',i)
If !Empty(lcOptiune)
k=k+1
This.Nodes.Add(lcKey2,4,lcKey2+Padl(Alltrim(Str(k)),2,[0]),lcOptiune)
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey2+Padl(Alltrim(Str(k)),2,[0]),4,lcOptiune,lcKey2)
Endif
Endif
Endfor
Catch
Endtry
ENDPROC
PROCEDURE citeste_pageframe
Lparameters lnKey,lcPageFrame,lcTata
Local lcKey,lcProp,lcOptiune,lnNivel,lnPozitie,i,j,k,l
Store [] To lcKey,lcProp,lcOptiune
Store 0 To lnNivel,lnPozitie,i,j,k,l
If Empty(lcTata)
lcTata=Null
lnNivel=1
Else
lnNivel=4
Endif
Set Exact On
With &lcPageFrame
For i=1 To .PageCount
For j=1 To .PageCount
If .Pages(j).PageOrder=i
Exit
Endif
Endfor
With .Pages(j)
lcKey=Nvl(lcTata,[])+Chr(lnKey)
This.Nodes.Add(lcTata,lnNivel,lcKey,.Caption)
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey,lnNivel,.Caption,Nvl(lcTata,[ ]))
Endif
lcProp="cnt"+lcKey
This.AddProperty(lcProp,0)
Dimension copii(128,3)
k=1
For l=1 To .ControlCount
Do Case
Case Alltrim(Upper(.Objects(l).Class))='PAGEFRAME'
lcNume=lcPageFrame+'.'+Alltrim(.Name)+'.'+Alltrim(Upper(.Objects(l).Name))
This.citeste_pageframe(65,lcNume,lcKey)
Case Alltrim(Upper(.Objects(l).Class))='CW' And .Objects(l).nid_cw>0
lcOptiune=.Objects(l).label_item1.Caption
lnPozitie=.Objects(l).nid_cw
copii(lnPozitie,1)=lcOptiune
copii(lnPozitie,2)=.Objects(l).ntip
copii(lnPozitie,3)=.Objects(l).cmeniu
k=k+1
Endcase
Endfor
For l=1 To k-1
This.Nodes.Add(lcKey,4,lcKey+Padl(Alltrim(Str(l)),2,[0]),copii(l,1))
If plCursor
Insert Into CRSOBIECTE (CHEIE,NIVEL,EXPLICATIE,TATA) Values(lcKey+Padl(Alltrim(Str(l)),2,[0]),4,copii(l,1),lcKey)
Endif
*!* If !Empty(copii(l,3))
*!* This.adauga_meniuri(copii(l,3),copii(l,2),lcKey+Padl(Alltrim(Str(l)),2,[0]))
*!* Else
This.adauga_frunze(copii(l,2),lcKey+Padl(Alltrim(Str(l)),2,[0]))
*!* Endif
Endfor
Endwith
lnKey=lnKey+1
Endfor
Endwith
Set Exact Off
ENDPROC
PROCEDURE Init
Private plCursor
Store .F. To plCursor
Local lnKey,lcOptiune
This.cmeniu=[cont2000]
This.cpageframe=[oprinc.pagefr1]
*!* Create Cursor CRSOBIECTE(ID_PROG N(1),CHEIE C(20),NIVEL N(2),EXPLICATIE C(100),TATA C(20),COD C(2),ID_OBIECT N(10),ID_TATA N(10))
*!* plCursor=.T.
This.citeste_meniu(90,This.cmeniu,"Meniu")
This.citeste_pageframe(65,This.cpageframe)
*!* Select * From CRSOBIECTE Into Table C:\OBIECTE.Dbf
*!* USE IN crsobiecte
*!* USE IN obiecte
ENDPROC
PROCEDURE NodeCheck
*** ActiveX Control Event ***
Lparameters Node
Local loNode
*!* If Messagebox("Doriti sa suspendati?",4,"")==6
*!* Debug
*!* Suspend
*!* Endif
llChecked=Node.checked
If Node.children<>0
Node.bold=llChecked
Endif
If Isnull(Node.Parent)
If Node.children<>0
This.bifeaza_nod(Node,llChecked)
Endif
Else
If Node.children<>0
This.bifeaza_nod(Node,llChecked)
Endif
loNode=Node
Do While !Isnull(loNode.Parent)
loNode=loNode.Parent
If loNode.bold!=llChecked
loNode.bold=llChecked
Endif
Enddo
Endif
ENDPROC
ENDDEFINE

File diff suppressed because it is too large Load Diff

3707
clase/ferestre_cere_date.vc2 Normal file

File diff suppressed because it is too large Load Diff

1063
clase/ferestre_comune.vc2 Normal file

File diff suppressed because it is too large Load Diff

1416
clase/ferestre_flux.vc2 Normal file

File diff suppressed because it is too large Load Diff

1064
clase/ferestre_oracle.vc2 Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,226 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="frm_import_efactura.scx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS dataenvironment AS dataenvironment
*< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />
*<PropValue>
DataSource = .NULL.
Height = 0
Left = 0
Name = "Dataenvironment"
Top = 0
Width = 0
*</PropValue>
ENDDEFINE
DEFINE CLASS frm_import_efactura1 AS frm_import_efactura OF "anaf_efactura.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />
*<PropValue>
DoCreate = .T.
Name = "Frm_import_efactura1"
_shape3.Name = "_shape3"
_shape1.Name = "_shape1"
grdDetaliiFacturi.cAcont.Header1.Name = "Header1"
grdDetaliiFacturi.cAcont.Name = "cAcont"
grdDetaliiFacturi.cAcont.Text1.Name = "Text1"
grdDetaliiFacturi.cArticol.Header1.Name = "Header1"
grdDetaliiFacturi.cArticol.Name = "cArticol"
grdDetaliiFacturi.cArticol.Text1.Name = "Text1"
grdDetaliiFacturi.cArticolROA.Header1.Name = "Header1"
grdDetaliiFacturi.cArticolROA.Name = "cArticolROA"
grdDetaliiFacturi.cArticolROA.Text1.Name = "Text1"
grdDetaliiFacturi.cCantitate.Header1.Name = "Header1"
grdDetaliiFacturi.cCantitate.Name = "cCantitate"
grdDetaliiFacturi.cCantitate.Text1.Name = "Text1"
grdDetaliiFacturi.cCodBare.Header1.Name = "Header1"
grdDetaliiFacturi.cCodBare.Name = "cCodBare"
grdDetaliiFacturi.cCodBare.Text1.Name = "Text1"
grdDetaliiFacturi.cCodClient.Header1.Name = "Header1"
grdDetaliiFacturi.cCodClient.Name = "cCodClient"
grdDetaliiFacturi.cCodClient.Text1.Name = "Text1"
grdDetaliiFacturi.cCodCPV.Header1.Name = "Header1"
grdDetaliiFacturi.cCodCPV.Name = "cCodCPV"
grdDetaliiFacturi.cCodCPV.Text1.Name = "Text1"
grdDetaliiFacturi.cCodFurnizor.Header1.Name = "Header1"
grdDetaliiFacturi.cCodFurnizor.Name = "cCodFurnizor"
grdDetaliiFacturi.cCodFurnizor.Text1.Name = "Text1"
grdDetaliiFacturi.cCodMatROA.Header1.Name = "Header1"
grdDetaliiFacturi.cCodMatROA.Name = "cCodMatROA"
grdDetaliiFacturi.cCodMatROA.Text1.Name = "Text1"
grdDetaliiFacturi.cCodNC8.Header1.Name = "Header1"
grdDetaliiFacturi.cCodNC8.Name = "cCodNC8"
grdDetaliiFacturi.cCodNC8.Text1.Name = "Text1"
grdDetaliiFacturi.cCont.Header1.Name = "Header1"
grdDetaliiFacturi.cCont.Name = "cCont"
grdDetaliiFacturi.cCont.Text1.Name = "Text1"
grdDetaliiFacturi.cDescriere.Header1.Name = "Header1"
grdDetaliiFacturi.cDescriere.Name = "cDescriere"
grdDetaliiFacturi.cDescriere.Text1.Name = "Text1"
grdDetaliiFacturi.cDetalii.Header1.Name = "Header1"
grdDetaliiFacturi.cDetalii.Name = "cDetalii"
grdDetaliiFacturi.cDetalii.Text1.Name = "Text1"
grdDetaliiFacturi.cDetalii._editbox1.Name = "_editbox1"
grdDetaliiFacturi.cGestiune.Header1.Name = "Header1"
grdDetaliiFacturi.cGestiune.Name = "cGestiune"
grdDetaliiFacturi.cGestiune.Text1.Name = "Text1"
grdDetaliiFacturi.cGestiune._combobox1.Name = "_combobox1"
grdDetaliiFacturi.cInStoc.Header1.Name = "Header1"
grdDetaliiFacturi.cInStoc.Name = "cInStoc"
grdDetaliiFacturi.cInStoc.Text1.Name = "Text1"
grdDetaliiFacturi.cInStoc._CHECKBOX1.Alignment = 2
grdDetaliiFacturi.cInStoc._CHECKBOX1.Name = "_CHECKBOX1"
grdDetaliiFacturi.cNr.Header1.Name = "Header1"
grdDetaliiFacturi.cNr.Name = "cNr"
grdDetaliiFacturi.cNr.Text1.Name = "Text1"
grdDetaliiFacturi.cPret.Header1.Name = "Header1"
grdDetaliiFacturi.cPret.Name = "cPret"
grdDetaliiFacturi.cPret.Text1.Name = "Text1"
grdDetaliiFacturi.cProcTVA.Header1.Name = "Header1"
grdDetaliiFacturi.cProcTVA.Name = "cProcTVA"
grdDetaliiFacturi.cProcTVA.Text1.Name = "Text1"
grdDetaliiFacturi.cTip.Header1.Name = "Header1"
grdDetaliiFacturi.cTip.Name = "cTip"
grdDetaliiFacturi.cTip.Text1.Name = "Text1"
grdDetaliiFacturi.cTip._combobox1.Name = "_combobox1"
grdDetaliiFacturi.cUM.Header1.Name = "Header1"
grdDetaliiFacturi.cUM.Name = "cUM"
grdDetaliiFacturi.cUM.Text1.Name = "Text1"
grdDetaliiFacturi.cUMROA.Header1.Name = "Header1"
grdDetaliiFacturi.cUMROA.Name = "cUMROA"
grdDetaliiFacturi.cUMROA.Text1.Name = "Text1"
grdDetaliiFacturi.cUMROA._combobox1.Name = "_combobox1"
grdDetaliiFacturi.cValoareFaraTVA.Header1.Name = "Header1"
grdDetaliiFacturi.cValoareFaraTVA.Name = "cValoareFaraTVA"
grdDetaliiFacturi.cValoareFaraTVA.Text1.Name = "Text1"
grdDetaliiFacturi.Name = "grdDetaliiFacturi"
grdFacturi.cAles.Header1.Name = "Header1"
grdFacturi.cAles.Name = "cAles"
grdFacturi.cAles.Text1.Name = "Text1"
grdFacturi.cAles._CHECKBOX1.Alignment = 2
grdFacturi.cAles._CHECKBOX1.Name = "_CHECKBOX1"
grdFacturi.cCodFiscalEmitent.Header1.Name = "Header1"
grdFacturi.cCodFiscalEmitent.Name = "cCodFiscalEmitent"
grdFacturi.cCodFiscalEmitent.Text1.Name = "Text1"
grdFacturi.cData.Header1.Name = "Header1"
grdFacturi.cData.Name = "cData"
grdFacturi.cData.Text1.Name = "Text1"
grdFacturi.cDataScad.Header1.Name = "Header1"
grdFacturi.cDataScad.Name = "cDataScad"
grdFacturi.cDataScad.Text1.Name = "Text1"
grdFacturi.cDataTrimis.Header1.Name = "Header1"
grdFacturi.cDataTrimis.Name = "cDataTrimis"
grdFacturi.cDataTrimis.Text1.Name = "Text1"
grdFacturi.cDescriere.Header1.Name = "Header1"
grdFacturi.cDescriere.Name = "cDescriere"
grdFacturi.cDescriere.Text1.Name = "Text1"
grdFacturi.cDescriere._editbox1.Name = "_editbox1"
grdFacturi.cDetaliiPlata.Header1.Name = "Header1"
grdFacturi.cDetaliiPlata.Name = "cDetaliiPlata"
grdFacturi.cDetaliiPlata.Text1.Name = "Text1"
grdFacturi.cDetaliiPlata._editbox1.Name = "_editbox1"
grdFacturi.cDiferenta.Header1.Name = "Header1"
grdFacturi.cDiferenta.Name = "cDiferenta"
grdFacturi.cDiferenta.Text1.Name = "Text1"
grdFacturi.cDiscount.Header1.Name = "Header1"
grdFacturi.cDiscount.Name = "cDiscount"
grdFacturi.cDiscount.Text1.Name = "Text1"
grdFacturi.cId.Header1.Name = "Header1"
grdFacturi.cId.Name = "cId"
grdFacturi.cId.Text1.Name = "Text1"
grdFacturi.cIdDescarcare.Header1.Name = "Header1"
grdFacturi.cIdDescarcare.Name = "cIdDescarcare"
grdFacturi.cIdDescarcare.Text1.Name = "Text1"
grdFacturi.cIdIncarcare.Header1.Name = "Header1"
grdFacturi.cIdIncarcare.Name = "cIdIncarcare"
grdFacturi.cIdIncarcare.Text1.Name = "Text1"
grdFacturi.cJtotcTVA.Header1.Name = "Header1"
grdFacturi.cJtotcTVA.Name = "cJtotcTVA"
grdFacturi.cJtotcTVA.Text1.Name = "Text1"
grdFacturi.cNr.Header1.Name = "Header1"
grdFacturi.cNr.Name = "cNr"
grdFacturi.cNr.Text1.Name = "Text1"
grdFacturi.cNumeValuta.Header1.Name = "Header1"
grdFacturi.cNumeValuta.Name = "cNumeValuta"
grdFacturi.cNumeValuta.Text1.Name = "Text1"
grdFacturi.cProcesat.Header1.Name = "Header1"
grdFacturi.cProcesat.Name = "cProcesat"
grdFacturi.cProcesat.Text1.Name = "Text1"
grdFacturi.cProcesat._CHECKBOX1.Alignment = 2
grdFacturi.cProcesat._CHECKBOX1.Name = "_CHECKBOX1"
grdFacturi.cTaxe.Header1.Name = "Header1"
grdFacturi.cTaxe.Name = "cTaxe"
grdFacturi.cTaxe.Text1.Name = "Text1"
grdFacturi.cTipMesajRaspuns.Header1.Name = "Header1"
grdFacturi.cTipMesajRaspuns.Name = "cTipMesajRaspuns"
grdFacturi.cTipMesajRaspuns.Text1.Name = "Text1"
grdFacturi.cTotalCuTVA.Header1.Name = "Header1"
grdFacturi.cTotalCuTVA.Name = "cTotalCuTVA"
grdFacturi.cTotalCuTVA.Text1.Name = "Text1"
grdFacturi.cTotaldePlata.Header1.Name = "Header1"
grdFacturi.cTotaldePlata.Name = "cTotaldePlata"
grdFacturi.cTotaldePlata.Text1.Name = "Text1"
grdFacturi.cTotalFaraTVA.Header1.Name = "Header1"
grdFacturi.cTotalFaraTVA.Name = "cTotalFaraTVA"
grdFacturi.cTotalFaraTVA.Text1.Name = "Text1"
grdFacturi.cTotalTVA.Header1.Name = "Header1"
grdFacturi.cTotalTVA.Name = "cTotalTVA"
grdFacturi.cTotalTVA.Text1.Name = "Text1"
grdFacturi.cValoareFaraTVA.Header1.Name = "Header1"
grdFacturi.cValoareFaraTVA.Name = "cValoareFaraTVA"
grdFacturi.cValoareFaraTVA.Text1.Name = "Text1"
grdFacturi.cXFurnizor.Header1.Name = "Header1"
grdFacturi.cXFurnizor.Name = "cXFurnizor"
grdFacturi.cXFurnizor.Text1.Name = "Text1"
grdFacturi.Name = "grdFacturi"
Gridsort1.Name = "Gridsort1"
_shape2.Name = "_shape2"
But_start_criterii1.Name = "But_start_criterii1"
But_excel1.Name = "But_excel1"
But_reset_criterii1.Name = "But_reset_criterii1"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
BUT_TERMIN1.Name = "BUT_TERMIN1"
But_listare1.Name = "But_listare1"
Cmd_executa1.Name = "Cmd_executa1"
lblNrAct.Name = "lblNrAct"
txtNrAct.Name = "txtNrAct"
lblDataAct.Name = "lblDataAct"
txtDataAct.Name = "txtDataAct"
lblDataScad.Name = "lblDataScad"
txtDataScad.Name = "txtDataScad"
lblSerieAct.Name = "lblSerieAct"
txtSerieAct.Name = "txtSerieAct"
lblPartener.Name = "lblPartener"
txtCodFiscal.Name = "txtCodFiscal"
txtPartener.Name = "txtPartener"
chkTVAIncasare.Alignment = 0
chkTVAIncasare.Name = "chkTVAIncasare"
lblValuta.Name = "lblValuta"
txtValuta.Name = "txtValuta"
lblCurs.Name = "lblCurs"
txtCurs.Name = "txtCurs"
lblCont.Name = "lblCont"
txtCont.Name = "txtCont"
lblLucrare.Name = "lblLucrare"
txtLucrare.Name = "txtLucrare"
lblContract.Name = "lblContract"
txtContract.Name = "txtContract"
lblSectie.Name = "lblSectie"
txtSectie.Name = "txtSectie"
lblVenChelt.Name = "lblVenChelt"
txtVenChelt.Name = "txtVenChelt"
lblResponsabil.Name = "lblResponsabil"
txtResponsabil.Name = "txtResponsabil"
Cmd_executa2.Name = "Cmd_executa2"
but_tip.Name = "but_tip"
but_cont.Name = "but_cont"
but_gestiune.Name = "but_gestiune"
But_nou1.Name = "But_nou1"
*</PropValue>
ENDDEFINE

454
clase/gdiplus.h Normal file
View File

@@ -0,0 +1,454 @@
*
* GDI+ Class library for Visual Foxpro
*
#ifndef _GDIPLUS_H_INCLUDED
* Localisation
#include "gdiplus_locs.h"
* Modify_GDIPLUS.VCX behavior (recompile _GDIPLUS.VCX to take effect)
* Set these constants to .F. to bypass most parameter checking
* (Code will run faster, but more dangerously)
#define GDIPLUS_CHECK_PARAMS .T. && Check parameter types
#define GDIPLUS_CHECK_OBJECT .T. && Check GDI+ object handle
#define GDIPLUS_CHECK_GDIPLUSNOTINIT .T. && Throw error if GDI+ not initialised
* Classes instantiated from gdiplus.vcx
* If you subclass anything in _gdiplus.vcx, you MUST change at least
* GDIPLUS_CLASS_LIBRARY
#define GDIPLUS_CLASS_LIBRARY This.ClassLibrary
* #define GDIPLUS_CLASS_LIBRARY '_gdiplus.vcx'
#define GDIPLUS_CLASS_RECT 'GpRectangle'
#define GDIPLUS_CLASS_POINT 'GpPoint'
#define GDIPLUS_CLASS_SIZE 'GpSize'
#define GDIPLUS_CLASS_FONTFAMILY 'GpFontFamily'
#define GDIPLUS_CLASS_IMAGE 'GpImage'
#define GDIPLUS_CLASS_BITMAP 'GpBitmap'
#define GDIPLUS_CLASS_GRAPHICS 'GpGraphics'
* Control error handler behavior (default for all objects: you
* can also change this per-object)
* If you want to change these modes in the GpBase.Init() method
* then uncomment and adjust the following
*#define GDIPLUS_ERRHANDLER_ALLOWMODAL (inlist(_VFP.StartMode,0,4))
*#define GDIPLUS_ERRHANDLER_QUIET (not inlist(_VFP.StartMode,0,4))
*#define GDIPLUS_ERRHANDLER_IGNOREERRORS .F.
*#define GDIPLUS_ERRHANDLER_APPNAME "GDI+ FFC Library"
* Set to .T. to rethrow errors inside error handler (eg when debugging)
#define GDIPLUS_ERRHANDLER_RETHROW .F.
* Status enumeration
#define GDIPLUS_STATUS_OK 0
#define GDIPLUS_STATUS_GenericError 1
#define GDIPLUS_STATUS_InvalidParameter 2
#define GDIPLUS_STATUS_OutOfMemory 3
#define GDIPLUS_STATUS_ObjectBusy 4
#define GDIPLUS_STATUS_InsufficientBuffer 5
#define GDIPLUS_STATUS_NotImplemented 6
#define GDIPLUS_STATUS_Win32Error 7
#define GDIPLUS_STATUS_WrongState 8
#define GDIPLUS_STATUS_Aborted 9
#define GDIPLUS_STATUS_FileNotFound 10
#define GDIPLUS_STATUS_ValueOverflow 11
#define GDIPLUS_STATUS_AccessDenied 12
#define GDIPLUS_STATUS_UnknownImageFormat 13
#define GDIPLUS_STATUS_FontFamilyNotFound 14
#define GDIPLUS_STATUS_FontStyleNotFound 15
#define GDIPLUS_STATUS_NotTrueTypeFont 16
#define GDIPLUS_STATUS_UnsupportedGdiplusVersion 17
#define GDIPLUS_STATUS_GdiplusNotInitialized 18
#define GDIPLUS_STATUS_PropertyNotFound 19
#define GDIPLUS_STATUS_PropertyNotSupported 20
* Fill mode (how a closed path is filled)
#define GDIPLUS_FillMode_Alternate 0
#define GDIPLUS_FillMode_Winding 1
* Quality mode constants
#define GDIPLUS_QualityMode_Invalid -1
#define GDIPLUS_QualityMode_Default 0
#define GDIPLUS_QualityMode_Low 1 && Best performance
#define GDIPLUS_QualityMode_High 2 && Best rendering quality
* Alpha Compositing mode constants
#define GDIPLUS_CompositingMode_SourceOver 0
#define GDIPLUS_CompositingMode_SourceCopy 1
* Alpha Compositing quality constants
#define GDIPLUS_CompositingQuality_Invalid GDIPLUS_QualityMode_Invalid
#define GDIPLUS_CompositingQuality_Default GDIPLUS_QualityMode_Default
#define GDIPLUS_CompositingQuality_HighSpeed GDIPLUS_QualityMode_Low
#define GDIPLUS_CompositingQuality_HighQuality GDIPLUS_QualityMode_High
#define GDIPLUS_CompositingQuality_GammaCorrected 3
#define GDIPLUS_CompositingQuality_AssumeLinear 4
* Units
#define GDIPLUS_Unit_World 0 && World coordinate (non-physical unit)
#define GDIPLUS_Unit_Display 1 && Variable -- for PageTransform only
#define GDIPLUS_Unit_Pixel 2 && one device pixel.
#define GDIPLUS_Unit_Point 3 && 1/72 inch.
#define GDIPLUS_Unit_Inch 4 && 1 inch.
#define GDIPLUS_Unit_Document 5 && 1/300 inch.
#define GDIPLUS_Unit_Millimeter 6 && 1 millimeter.
#define GDIPLUS_MetafileFrameUnit_Pixel GDIPLUS_Unit_Pixel
#define GDIPLUS_MetafileFrameUnit_Point GDIPLUS_Unit_Point
#define GDIPLUS_MetafileFrameUnit_Inch GDIPLUS_Unit_Inch
#define GDIPLUS_MetafileFrameUnit_Document GDIPLUS_Unit_Document
#define GDIPLUS_MetafileFrameUnit_Millimeter GDIPLUS_Unit_Millimeter
#define GDIPLUS_MetafileFrameUnit_Gdi 7 && GDI compatible .01 MM units
* Coordinate Space
#define GDIPLUS_CoordinateSpace_World 0
#define GDIPLUS_CoordinateSpace_Page 1
#define GDIPLUS_CoordinateSpace_Device 2
* Wrap mode for brushes
#define GDIPLUS_WrapMode_Tile 0
#define GDIPLUS_WrapMode_TileFlipX 1
#define GDIPLUS_WrapMode_TileFlipY 2
#define GDIPLUS_WrapMode_TileFlipXY 3
#define GDIPLUS_WrapMode_Clamp 4
* HatchBrush styles
#define GDIPLUS_HatchStyle_Horizontal 0
#define GDIPLUS_HatchStyle_Vertical 1
#define GDIPLUS_HatchStyle_ForwardDiagonal 2
#define GDIPLUS_HatchStyle_BackwardDiagonal 3
#define GDIPLUS_HatchStyle_Cross 4
#define GDIPLUS_HatchStyle_DiagonalCross 5
#define GDIPLUS_HatchStyle_05Percent 6
#define GDIPLUS_HatchStyle_10Percent 7
#define GDIPLUS_HatchStyle_20Percent 8
#define GDIPLUS_HatchStyle_25Percent 9
#define GDIPLUS_HatchStyle_30Percent 10
#define GDIPLUS_HatchStyle_40Percent 11
#define GDIPLUS_HatchStyle_50Percent 12
#define GDIPLUS_HatchStyle_60Percent 13
#define GDIPLUS_HatchStyle_70Percent 14
#define GDIPLUS_HatchStyle_75Percent 15
#define GDIPLUS_HatchStyle_80Percent 16
#define GDIPLUS_HatchStyle_90Percent 17
#define GDIPLUS_HatchStyle_LightDownwardDiagonal 18
#define GDIPLUS_HatchStyle_LightUpwardDiagonal 19
#define GDIPLUS_HatchStyle_DarkDownwardDiagonal 20
#define GDIPLUS_HatchStyle_DarkUpwardDiagonal 21
#define GDIPLUS_HatchStyle_WideDownwardDiagonal 22
#define GDIPLUS_HatchStyle_WideUpwardDiagonal 23
#define GDIPLUS_HatchStyle_LightVertical 24
#define GDIPLUS_HatchStyle_LightHorizontal 25
#define GDIPLUS_HatchStyle_NarrowVertical 26
#define GDIPLUS_HatchStyle_NarrowHorizontal 27
#define GDIPLUS_HatchStyle_DarkVertical 28
#define GDIPLUS_HatchStyle_DarkHorizontal 29
#define GDIPLUS_HatchStyle_DashedDownwardDiagonal 30
#define GDIPLUS_HatchStyle_DashedUpwardDiagonal 31
#define GDIPLUS_HatchStyle_DashedHorizontal 32
#define GDIPLUS_HatchStyle_DashedVertical 33
#define GDIPLUS_HatchStyle_SmallConfetti 34
#define GDIPLUS_HatchStyle_LargeConfetti 35
#define GDIPLUS_HatchStyle_ZigZag 36
#define GDIPLUS_HatchStyle_Wave 37
#define GDIPLUS_HatchStyle_DiagonalBrick 38
#define GDIPLUS_HatchStyle_HorizontalBrick 39
#define GDIPLUS_HatchStyle_Weave 40
#define GDIPLUS_HatchStyle_Plaid 41
#define GDIPLUS_HatchStyle_Divot 42
#define GDIPLUS_HatchStyle_DottedGrid 43
#define GDIPLUS_HatchStyle_DottedDiamond 44
#define GDIPLUS_HatchStyle_Shingle 45
#define GDIPLUS_HatchStyle_Trellis 46
#define GDIPLUS_HatchStyle_Sphere 47
#define GDIPLUS_HatchStyle_SmallGrid 48
#define GDIPLUS_HatchStyle_SmallCheckerBoard 49
#define GDIPLUS_HatchStyle_LargeCheckerBoard 50
#define GDIPLUS_HatchStyle_OutlinedDiamond 51
#define GDIPLUS_HatchStyle_SolidDiamond 52
* Dash style constants
#define GDIPLUS_DashStyle_Solid 0
#define GDIPLUS_DashStyle_Dash 1
#define GDIPLUS_DashStyle_Dot 2
#define GDIPLUS_DashStyle_DashDot 3
#define GDIPLUS_DashStyle_DashDotDot 4
#define GDIPLUS_DashStyle_Custom 5
* Dash cap constants
#define GDIPLUS_DashCap_Flat 0
#define GDIPLUS_DashCap_Round 2
#define GDIPLUS_DashCap_Triangle 3
* LineCap
#define GDIPLUS_LineCap_Flat 0
#define GDIPLUS_LineCap_Square 1
#define GDIPLUS_LineCap_Round 2
#define GDIPLUS_LineCap_Triangle 3
#define GDIPLUS_LineCap_NoAnchor 0x10 && corresponds to flat cap
#define GDIPLUS_LineCap_SquareAnchor 0x11 && corresponds to square cap
#define GDIPLUS_LineCap_RoundAnchor 0x12 && corresponds to round cap
#define GDIPLUS_LineCap_DiamondAnchor 0x13 && corresponds to triangle cap
#define GDIPLUS_LineCap_ArrowAnchor 0x14 && no correspondence
#define GDIPLUS_LineCap_Custom 0xff && custom cap
#define GDIPLUS_LineCap_AnchorMask 0xf0 && mask to check for anchor or not.
* Custom Line cap type constants
#define GDIPLUS_CustomLineCapType_Default 0
#define GDIPLUS_CustomLineCapType_AdjustableArrow 1
* Line join constants
#define GDIPLUS_LineJoin_Miter 0
#define GDIPLUS_LineJoin_Bevel 1
#define GDIPLUS_LineJoin_Round 2
#define GDIPLUS_LineJoin_MiterClipped 3
* Path point types (only the lowest 8 bits are used.)
* The lowest 3 bits are interpreted as point type
* The higher 5 bits are reserved for flags.
#define GDIPLUS_PathPointType_Start 0 && move
#define GDIPLUS_PathPointType_Line 1 && line
#define GDIPLUS_PathPointType_Bezier 3 && default Bezier (= cubic Bezier)
#define GDIPLUS_PathPointType_PathTypeMask 0x07 && type mask (lowest 3 bits).
#define GDIPLUS_PathPointType_DashMode 0x10 && currently in dash mode.
#define GDIPLUS_PathPointType_PathMarker 0x20 && a marker for the path.
#define GDIPLUS_PathPointType_CloseSubpath 0x80 && closed flag
#define GDIPLUS_PathPointType_Bezier3 3 && cubic Bezier
* WarpMode constants
#define GDIPLUS_WarpMode_Perspective 0
#define GDIPLUS_WarpMode_Bilinear 1
* LinearGradient Mode
#define GDIPLUS_LinearGradientMode_Horizontal 0
#define GDIPLUS_LinearGradientMode_Vertical 1
#define GDIPLUS_LinearGradientMode_ForwardDiagonal 2
#define GDIPLUS_LinearGradientMode_BackwardDiagonal 3
* CombineMode (for regions)
#define GDIPLUS_CombineMode_Replace 0
#define GDIPLUS_CombineMode_Intersect 1
#define GDIPLUS_CombineMode_Union 2
#define GDIPLUS_CombineMode_Xor 3
#define GDIPLUS_CombineMode_Exclude 4
#define GDIPLUS_CombineMode_Complement 5
* Image types
#define GDIPLUS_ImageType_Unknown 0
#define GDIPLUS_ImageType_Bitmap 1
#define GDIPLUS_ImageType_Metafile 2
* StringAlignment enumeration
* Applies to GpStringFormat::Alignment, GpStringFormat::LineAlignment
#define GDIPLUS_STRINGALIGNMENT_Near 0 && in Left-To-Right locale, this is Left
#define GDIPLUS_STRINGALIGNMENT_Center 1
#define GDIPLUS_STRINGALIGNMENT_Far 2 && in Left-To-Right locale, this is Right
* StringFormatFlags enumeration
* applies to GpStringFormat::FormatFlags
#define GDIPLUS_STRINGFORMATFLAGS_DirectionRightToLeft 1
#define GDIPLUS_STRINGFORMATFLAGS_DirectionVertical 2
#define GDIPLUS_STRINGFORMATFLAGS_NoFitBlackBox 4
#define GDIPLUS_STRINGFORMATFLAGS_DisplayFormatControl 32
#define GDIPLUS_STRINGFORMATFLAGS_NoFontFallback 1024
#define GDIPLUS_STRINGFORMATFLAGS_MeasureTrailingSpaces 2048
#define GDIPLUS_STRINGFORMATFLAGS_NoWrap 4096
#define GDIPLUS_STRINGFORMATFLAGS_LineLimit 8192
#define GDIPLUS_STRINGFORMATFLAGS_NoClip 16384
* StringTrimming enumeration
#define GDIPLUS_STRINGTRIMMING_None 0 && no trimming.
#define GDIPLUS_STRINGTRIMMING_Character 1 && nearest character.
#define GDIPLUS_STRINGTRIMMING_Word 2 && nearest wor
#define GDIPLUS_STRINGTRIMMING_EllipsisCharacter 3 && nearest character, ellipsis at end
#define GDIPLUS_STRINGTRIMMING_EllipsisWord 4 && nearest word, ellipsis at end
#define GDIPLUS_STRINGTRIMMING_EllipsisPath 5 && ellipsis in center, favouring last slash-delimited segment
* StringDigitSubstitute
#define GDIPLUS_STRINGDIGITSUBSTITUTE_User 0
#define GDIPLUS_STRINGDIGITSUBSTITUTE_None 1
#define GDIPLUS_STRINGDIGITSUBSTITUTE_National 2
#define GDIPLUS_STRINGDIGITSUBSTITUTE_Traditional 3
* HotkeyPrefix enumeration
#define GDIPLUS_HOTKEYPREFIX_None 0 && No hot-key prefix.
#define GDIPLUS_HOTKEYPREFIX_Show 1 && display hot-key prefix
#define GDIPLUS_HOTKEYPREFIX_Hide 2 && Do not display the hot-key prefix.
* FontStyle: face types and common styles
#define GDIPLUS_FontStyle_Regular 0
#define GDIPLUS_FontStyle_Bold 1
#define GDIPLUS_FontStyle_Italic 2
#define GDIPLUS_FontStyle_BoldItalic 3
#define GDIPLUS_FontStyle_Underline 4
#define GDIPLUS_FontStyle_Strikeout 8
#define GDIPLUS_InterpolationMode_Invalid GDIPLUS_QualityMode_Invalid
#define GDIPLUS_InterpolationMode_Default GDIPLUS_QualityMode_Default
#define GDIPLUS_InterpolationMode_LowQuality GDIPLUS_QualityMode_Low
#define GDIPLUS_InterpolationMode_HighQuality GDIPLUS_QualityMode_High
#define GDIPLUS_InterpolationMode_Bilinear 3
#define GDIPLUS_InterpolationMode_Bicubic 4
#define GDIPLUS_InterpolationMode_NearestNeighbor 5
#define GDIPLUS_InterpolationMode_HighQualityBilinear 6
#define GDIPLUS_InterpolationMode_HighQualityBicubic 7
#define GDIPLUS_PenAlignment_Center 0
#define GDIPLUS_PenAlignment_Inset 1
* Brush types
#define GDIPLUS_BrushType_SolidColor 0
#define GDIPLUS_BrushType_HatchFill 1
#define GDIPLUS_BrushType_TextureFill 2
#define GDIPLUS_BrushType_PathGradient 3
#define GDIPLUS_BrushType_LinearGradient 4
* Pen's Fill types
#define GDIPLUS_PenType_SolidColor GDIPLUS_BrushType_SolidColor
#define GDIPLUS_PenType_HatchFill GDIPLUS_BrushType_HatchFill
#define GDIPLUS_PenType_TextureFill GDIPLUS_BrushType_TextureFill
#define GDIPLUS_PenType_PathGradient GDIPLUS_BrushType_PathGradient
#define GDIPLUS_PenType_LinearGradient GDIPLUS_BrushType_LinearGradient
#define GDIPLUS_PenType_Unknown -1
* Matrix Order
#define GDIPLUS_MatrixOrder_Prepend 0
#define GDIPLUS_MatrixOrder_Append 1
* SmoothingMode
#define GDIPLUS_SmoothingMode_Invalid GDIPLUS_QualityMode_Invalid
#define GDIPLUS_SmoothingMode_Default GDIPLUS_QualityMode_Default
#define GDIPLUS_SmoothingMode_HighSpeed GDIPLUS_QualityMode_Low,
#define GDIPLUS_SmoothingMode_HighQuality GDIPLUS_QualityMode_High
#define GDIPLUS_SmoothingMode_None 3
#define GDIPLUS_SmoothingMode_AntiAlias 4
* PixelOffsetMode
#define GDIPLUS_PixelOffsetMode_Invalid GDIPLUS_QualityMode_Invalid
#define GDIPLUS_PixelOffsetMode_Default GDIPLUS_QualityMode_Default
#define GDIPLUS_PixelOffsetMode_HighSpeed GDIPLUS_QualityMode_Low
#define GDIPLUS_PixelOffsetMode_HighQuality GDIPLUS_QualityMode_High
#define GDIPLUS_PixelOffsetMode_None 3
#define GDIPLUS_PixelOffsetMode_Half 4
* GpGraphics::Flush() modes
#define GDIPLUS_FlushIntention_Flush 0
#define GDIPLUS_FlushIntention_Sync 1
*---------------------------------------------------------------------------
* Image file format identifiers (GUIDs)
#define GDIPLUS_IMAGEFORMAT_Undefined 0hA93C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_MemoryBMP 0hAA3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_BMP 0hAB3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_EMF 0hAC3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_WMF 0hAD3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_JPEG 0hAE3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_PNG 0hAF3C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_GIF 0hB03C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_TIFF 0hB13C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_EXIF 0hB23C6BB92807D3119D7B0000F81EF32E
#define GDIPLUS_IMAGEFORMAT_Icon 0hB53C6BB92807D3119D7B0000F81EF32E
* Pixel formats
#define GDIPLUS_PIXELFORMAT_Indexed 0x00010000 && Indexes into a palette
#define GDIPLUS_PIXELFORMAT_GDI 0x00020000 && Is a GDI-supported format
#define GDIPLUS_PIXELFORMAT_Alpha 0x00040000 && Has an alpha component
#define GDIPLUS_PIXELFORMAT_PAlpha 0x00080000 && Pre-multiplied alpha
#define GDIPLUS_PIXELFORMAT_Extended 0x00100000 && Extended color 16 bits/channel
#define GDIPLUS_PIXELFORMAT_Canonical 0x00200000
#define GDIPLUS_PIXELFORMAT_Undefined 0
#define GDIPLUS_PIXELFORMAT_DontCare 0
#define GDIPLUS_PIXELFORMAT_1bppIndexed 0x00030101
#define GDIPLUS_PIXELFORMAT_4bppIndexed 0x00030402
#define GDIPLUS_PIXELFORMAT_8bppIndexed 0x00030803
#define GDIPLUS_PIXELFORMAT_16bppGrayScale 0x00101004
#define GDIPLUS_PIXELFORMAT_16bppRGB555 0x00021005
#define GDIPLUS_PIXELFORMAT_16bppRGB565 0x00021006
#define GDIPLUS_PIXELFORMAT_16bppARGB1555 0x00061007
#define GDIPLUS_PIXELFORMAT_24bppRGB 0x00021808
#define GDIPLUS_PIXELFORMAT_32bppRGB 0x00022009
#define GDIPLUS_PIXELFORMAT_32bppARGB 0x0026200A
#define GDIPLUS_PIXELFORMAT_32bppPARGB 0x000E200B
#define GDIPLUS_PIXELFORMAT_48bppRGB 0x0010300C
#define GDIPLUS_PIXELFORMAT_64bppPARGB 0x001C400E
* --------------
* Image flags (see GpImage::Flags property)
#define GDIPLUS_ImageFlags_None 0
#define GDIPLUS_ImageFlags_Scalable 0x0001
#define GDIPLUS_ImageFlags_HasAlpha 0x0002
#define GDIPLUS_ImageFlags_HasTranslucent 0x0004
#define GDIPLUS_ImageFlags_PartiallyScalable 0x0008
#define GDIPLUS_ImageFlags_ColorSpaceRGB 0x0010
#define GDIPLUS_ImageFlags_ColorSpaceCMYK 0x0020
#define GDIPLUS_ImageFlags_ColorSpaceGRAY 0x0040
#define GDIPLUS_ImageFlags_ColorSpaceYCBCR 0x0080
#define GDIPLUS_ImageFlags_ColorSpaceYCCK 0x0100
#define GDIPLUS_ImageFlags_HasRealDPI 0x1000
#define GDIPLUS_ImageFlags_HasRealPixelSize 0x2000
#define GDIPLUS_ImageFlags_ReadOnly 0x00010000
#define GDIPLUS_ImageFlags_Caching 0x00020000
* -------------
* Encoder parameter type
#define GDIPLUS_ValueDataType_Byte 1 && 8-bit unsigned
#define GDIPLUS_ValueDataType_ASCII 2 && character string
#define GDIPLUS_ValueDataType_Short 3 && 16-bit unsigned
#define GDIPLUS_ValueDataType_Long 4 && 32-bit unsigned
#define GDIPLUS_ValueDataType_Rational 5 && fraction ulong/ulong
#define GDIPLUS_ValueDataType_LongRange 6 && Two ulongs (min,max)
#define GDIPLUS_ValueDataType_Undefined 7 && array of bytes
#define GDIPLUS_ValueDataType_RationalRange 8 && four ulongs
#define GDIPLUS_ValueDataType_Pointer 9 && pointer
#define GDIPLUS_ENCODER_Compression 0h9D739DE0D4CCEE448EBA3FBF8BE4FC58
#define GDIPLUS_ENCODER_ColorDepth 0h5570086666AD7C4C9A1838A2310B8337
#define GDIPLUS_ENCODER_ScanMethod 0h61264E3A0931564E853642C156E7DCFA
#define GDIPLUS_ENCODER_Version 0h768CD1244A81A441BF531C219CCCF797
#define GDIPLUS_ENCODER_RenderMethod 0h3AC5426D9A2225488BB75C99E2B9A8B8
#define GDIPLUS_ENCODER_Quality 0hB5E45B1D4AFA2D459CDD5DB35105E7EB
#define GDIPLUS_ENCODER_Transformation 0hD1B20E8D8EA5A84EAA14108074B7B6F9
#define GDIPLUS_ENCODER_LuminanceTable 0hCE3BB3ED6602774AB90427216099E717
#define GDIPLUS_ENCODER_ChrominanceTable 0hDC55E4F2B30916438260676ADA32481C
#define GDIPLUS_ENCODER_SaveFlag 0hFC66222940ACBF478CFCA85B89A655DE
* GpImage::RotateFlip() parameter
#define GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipNone 0
#define GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipNone 1
#define GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipNone 2
#define GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipNone 3
#define GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipX 4
#define GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipX 5
#define GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipX 6
#define GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipX 7
#define GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipY GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipX
#define GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipY GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipX
#define GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipY GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipX
#define GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipY GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipX
#define GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipXY GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipNone
#define GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipXY GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipNone
#define GDIPLUS_ROTATEFLIPTYPE_Rotate180FlipXY GDIPLUS_ROTATEFLIPTYPE_RotateNoneFlipNone
#define GDIPLUS_ROTATEFLIPTYPE_Rotate270FlipXY GDIPLUS_ROTATEFLIPTYPE_Rotate90FlipNone
#endif && _GDIPLUS_H_INCLUDED

267
clase/gridsort.vc2 Normal file
View File

@@ -0,0 +1,267 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="gridsort.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS gridsort AS custom
*< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: delidx && Delete IDX files if you use a Table
*m: gridsort && Sort the column Ascending and Descending
*m: readme && Read Me First
*m: settooltip
*m: showmenu && show a menu containing the name of all column and let user choose to see what he/she wants
*p: ctooltip
*p: isdelidx
*p: ocolumnreference
*</DefinedPropArrayMethod>
*<PropValue>
ctooltip =
isdelidx = .T.
Name = "gridsort"
ocolumnreference = .NULL.
Tag = ""
*</PropValue>
PROCEDURE delidx && Delete IDX files if you use a Table
***************************************************
* Method........: DelIdx
* Description...: This method automatically delete Idx files if you use thisa class with a table and set isdelidx to .T.
* Date..........: 10 January 2006
* Author........: Ali Mohammad Hosein zadeh
***************************************************
RETURN
fnum=Adir(fnames,'*.idx')
For i=1 To fnum
If 'THISFORM'$Upper(fnames(i,1))
Delete File Fullpath(fnames(i,1))
Endif
Endfor
ENDPROC
PROCEDURE Destroy
If This.isdelidx
This.delidx
Endif
ENDPROC
PROCEDURE gridsort && Sort the column Ascending and Descending
***************************************************
* Method........: GridSort
* Description...: This method sort the column that you click
* Date..........: 02 October 2005
* Update........: 10 December 2005
* Author........: Ali Mohammad Hosein zadeh
***************************************************
Parameters ocolumn
Private cobj,fname,fldname,ccount,cstr,nstr,cname
*!* Procces to get the path to form
LOCAL lcFname, llReorder
llReorder = .F.
*!* 21.11.2006
*!* mutu.marius
&& daca nu se transmite nimic - se ordoneaza dupa ultima coloana ordonata
IF (PCOUNT() = 0 OR TYPE('oColumn') # 'O') AND !ISNULL(this.oColumnreference)
oColumn = this.oColumnreference
llReorder = .T.
ENDIF
IF TYPE('oColumn') # 'O'
RETURN
ENDIF
IF ISNULL(oColumn)
RETURN
ENDIF
&& se retine ultima coloana ordonata
this.oColumnreference = oColumn
cstr='ocolumn.'
nstr=''
cname=''
Do While .T.
cstr=cstr+'parent.'
nstr=cstr+'baseclass'
If &nstr='Form'
Exit
Else
nstr=cstr+'name'
cname=&nstr+'.'+cname
Endif
Enddo
*!* Make a temporary name for Idx file
cobj='ThisForm.'+cname+ocolumn.Name+"."+ocolumn.CurrentControl+".ControlSource"
fname = Strtran(cobj,'.','')
lcfname=ADDBS(SYS(2023)) + fname
*!* Assign field name to fldname
fldname=&cobj
*!* Assign The number or columns to ccount
cobj="ThisForm."+cname+"COLUMNCOUNT"
ccount=&cobj
*!* CLEAR any column's picture
For i=1 To ccount
cobj="ThisForm."+cname+"columns("+Alltrim(Str(i))+").header1.picture=''"
&cobj
ENDFOR
*!* Find out if it's first click or DESCENDING order
If Empty(ocolumn.Tag) OR (ocolumn.Tag="Down" AND !llReorder) OR (llReorder AND ocolumn.Tag="Up")
*!* INDEX ON field
IF TYPE(fldname) = 'C'
lcIndexName = 'left(' + fldname + ', 90)'
INDEX on &lcIndexName To (lcfname)
ELSE
Index On &fldname To (lcfname)
ENDIF
*!* SAVE order of column
ocolumn.Tag="Up"
*!* Assign the picture
cobj="ThisForm."+cname+ocolumn.Name+".header1.picture='up.bmp'"
&cobj
*!* FINALLY set order
Set Order To (fname)
Else
*!* INDEX ON field
IF TYPE(fldname) = 'C'
lcIndexName = 'left(' + fldname + ', 90)'
INDEX on &lcIndexName To (lcfname)
ELSE
Index On &fldname To (lcfname)
ENDIF
*!* SAVE order of column
ocolumn.Tag="Down"
*!* Assign the picture
cobj="ThisForm."+cname+ocolumn.Name+".header1.picture='down.bmp'"
&cobj
*!* FINALLY set order
Set Order To (fname) Descending
Endif
*!* Refresh the grid
Go Top
cobj="ThisForm."+cname+"Refresh"
&cobj
ENDPROC
PROCEDURE Init
*!* Set Classlib To Locfile('wizbtns','vcx')
*!* Set Procedure To Locfile('gridproc','prg')
ENDPROC
PROCEDURE readme && Read Me First
* **********************************************************************************************
* GridSort.vcx - Ali Mohammad Hosein Zadeh - info@binyazprograms.com - 10 January 2006 *
* **********************************************************************************************
* Updated : 10 January 2006
* Updated : 10 December 2005
* **********************************************************************************************
* Description:
* ------------
* A class for Visual FoxPro 8.0,9.0 that do many things for your grid.
*
* Class exposes the following methods :
* ------------------------------------
* GridSort - Sort the columns ascending or descending automatically
* SetToolTip - Sets the column's tooltip to it's ControlSource
* ShowMenu - Show the main menu that you can hide or show colums and you can filter the table or cursor
* DelIdx - For internal use.Delete Idx files if you use this class with a table and set isdelidx=.T.
*
* How to use :
* ------------
* Grid Sort :
* It's enough to write this line in the header's click event:
* ThisForm.gridsort1.gridsort(This.Parent)
* SetToolTip :
* It's enough to write this line in the MouseMove of the column you want :
* ThisForm.gridsort1.settooltip(This,nXCoord,nYCoord)
* ShowMenu :
* It's enough to write this line in the RightClick of the grid you want :
* Thisform.gridsort1.showmenu(This)
*
* Limitations & Disclaimer:
* -------------------------
* I authorize gridsort.vcx to be used by anyone for anything in which you would like to use it.
* Feel free to modify, hack, fold, spindle, mutilate or otherwise alter this class library
* any way you see fit. You may freely distribute this class library and may even tell
* your boss that you wrote it, just please don't post it back to the web with your name on it.
* This class library appears to function correctly but has not been extensively tested.
*
* Please E-Mail me if you have any questions, comments, improvements, suggestions, bugs found,
* bugs fixed or just to say "looky, I'm using it!".
*
* **********************************************************************************************
ENDPROC
PROCEDURE settooltip
***************************************************
* Method........: SetToolTip
* Description...: This method sets the column's tooltip that you pass
* Date..........: 10 January 2006
* Author........: Ali Mohammad Hosein zadeh
***************************************************
Lparameters ocolumn,x,Y
Local nRelRow_Out, nRelCol_Out,nWhere_Out
ocolumn.Parent.SetFocus()
ocolumn.Parent.Gridhittest(x,Y,@nWhere_Out,@nRelRow_Out,@nRelCol_Out)
ocolumn.Parent.ActivateCell(nRelRow_Out, nRelCol_Out)
If This.ctooltip<>Eval("ocolumn." + ocolumn.CurrentControl + ".value")
This.ctooltip=ocolumn.Parent.ToolTipText
ocolumn.Parent.ToolTipText=Eval("alltrim(ocolumn." + ocolumn.CurrentControl + ".value)")
Endif
ENDPROC
PROCEDURE showmenu && show a menu containing the name of all column and let user choose to see what he/she wants
***************************************************
* Method........: ShowMenu
* Description...: Show the main menu
* Date..........: 10 January 2006
* Author........: Ali Mohammad Hosein zadeh
***************************************************
Parameters ogrid
If Type("ogrid")<>"O"
Return
ENDIF
Dimension nmenus(ogrid.ColumnCount,2)
For i=1 To ogrid.ColumnCount
nmenus(i,1)=ogrid.Columns(i).header1.Caption
nmenus(i,2)=ogrid.Columns(i).Visible
ENDFOR
Define Popup popmenus SHORTCUT Relative From Mrow(),Mcol()
Define Bar 1 Of popmenus Prompt "All"
Define Bar 2 Of popmenus Prompt "Costum"
Define Bar 3 Of popmenus Prompt "\-"
Set Mark Of Bar 1 Of popmenus Empty(Filter())
Set Mark Of Bar 2 Of popmenus !Empty(Filter())
On Selection Bar 1 Of popmenus Do All In gridproc
On Selection Bar 2 Of popmenus Do custom_filter In gridproc
For i=4 To Alen(nmenus,1)+3
Define Bar i Of popmenus Prompt nmenus(i-3,1)
Set Mark Of Bar i Of popmenus To nmenus(i-3,2)
cstr="ogrid.Columns("+Alltrim(Str(i-3))+").visible=!ogrid.Columns("+Alltrim(Str(i-3))+").visible"
On Selection Bar i Of popmenus &cstr
ENDFOR
ogrid.Refresh
Activate Popup popmenus
ENDPROC
ENDDEFINE

1
clase/gridtreeview.h Normal file
View File

@@ -0,0 +1 @@
#DEFINE _GridTreeViewVCX ".\GridTreeview.vcx"

424
clase/gridtreeview.vc2 Normal file
View File

@@ -0,0 +1,424 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="gridtreeview.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS afficherniveau AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="CmdN0" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="CmdN1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="CmdN2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: afficherniveau
*p: ogrid
*</DefinedPropArrayMethod>
*<PropValue>
BorderWidth = 0
Height = 14
Name = "afficherniveau"
Width = 43
*</PropValue>
ADD OBJECT 'CmdN0' AS commandbutton WITH ;
Caption = "0", ;
FontSize = 8, ;
Height = 14, ;
Left = 0, ;
Name = "CmdN0", ;
Top = 0, ;
Width = 13
*< END OBJECT: BaseClass="commandbutton" />
ADD OBJECT 'CmdN1' AS commandbutton WITH ;
Caption = "1", ;
FontSize = 8, ;
Height = 14, ;
Left = 15, ;
Name = "CmdN1", ;
Top = 0, ;
Width = 13
*< END OBJECT: BaseClass="commandbutton" />
ADD OBJECT 'CmdN2' AS commandbutton WITH ;
Caption = "2", ;
FontSize = 8, ;
Height = 14, ;
Left = 30, ;
Name = "CmdN2", ;
Top = 0, ;
Width = 13
*< END OBJECT: BaseClass="commandbutton" />
PROCEDURE afficherniveau
LPARAMETERS nNiveau
UPDATE (This.oGrid.recordSource) ;
SET visible=(niveau<=nNiveau),;
expanded=IIF(niveau<nNiveau AND expanded="N","O",IIF(niveau=nNiveau AND expanded="O","N",expanded))
GO top
This.oGrid.refresh
This.oGrid.setFocus
ENDPROC
PROCEDURE Init
FOR EACH oCtrl IN thisform.Controls
IF LOWER(oCtrl.class) = "gridtreeview"
this.oGrid = oCtrl
exit
ENDIF
ENDFOR
ENDPROC
PROCEDURE CmdN0.Click
This.parent.AfficherNiveau(0)
ENDPROC
PROCEDURE CmdN1.Click
This.parent.AfficherNiveau(1)
ENDPROC
PROCEDURE CmdN2.Click
This.parent.AfficherNiveau(2)
ENDPROC
ENDDEFINE
DEFINE CLASS gridtreeview AS grid
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="ColumnTV.HeaderTV" UniqueID="" Timestamp="" />
#INCLUDE "gridtreeview.h"
*<DefinedPropArrayMethod>
*m: dynamic
*m: nodeclick
*p: niveau0
*p: niveau1
*p: niveau2
*p: nrecno
*</DefinedPropArrayMethod>
*<PropValue>
AllowHeaderSizing = .F.
AllowRowSizing = .F.
ColumnCount = 1
DeleteMark = .F.
GridLineColor = 128,128,128
GridLines = 3
Height = 345
Highlight = .F.
HighlightRow = .F.
Name = "gridtreeview"
nrecno = 0
Panel = 1
RecordMark = .F.
RowHeight = 20
ScrollBars = 2
Width = 383
Column1.ControlSource = ""
Column1.Name = "ColumnTV"
Column1.ReadOnly = .T.
Column1.Sparse = .F.
Column1.Visible = .T.
Column1.Width = 135
*</PropValue>
ADD OBJECT 'ColumnTV.HeaderTV' AS header WITH ;
Caption = "Cl<43>", ;
Name = "HeaderTV"
*< END OBJECT: BaseClass="header" />
PROCEDURE AfterRowColChange
LPARAMETERS nColIndex
this.nRecno=Recno(this.RecordSource)
thisform.lockScreen= .T.
this.columntv.Refresh
thisform.lockScreen= .f.
ENDPROC
PROCEDURE Destroy
SELECT (this.RecordSource)
SET FILTER to
ENDPROC
PROCEDURE dynamic
WITH Evaluate("this.columnTV."+ Evaluate(this.columnTV.dynamicCurrentControl)+".text1")
IF Recno(this.RecordSource)=this.nRecno
.disabledBackColor=Rgb(10,36,106)
.DisabledForeColor=Rgb(255,255,255)
ELSE
.disabledBackColor=Rgb(255,255,255)
.resetToDefault("DisabledForeColor")
ENDIF
ENDWITH
RETURN Rgb(255,255,255)
ENDPROC
PROCEDURE Init
thisform.lockScreen = .t.
SELECT (this.recordsource)
SET FILTER TO visible
GO top
WITH this.columnTV
IF VARTYPE(.text1)="O"
.RemoveObject("text1")
ENDIF
SET CLASSLIB TO (_GridTreeViewVCX) additive
.AddObject("niveau0","niveau")
.AddObject("niveau0p","niveau")
.AddObject("niveau0m","niveau")
.AddObject("niveau1","niveau1")
.AddObject("niveau1p","niveau1")
.AddObject("niveau1m","niveau1")
.AddObject("niveau2","niveau2")
CLEAR CLASSLIB _GridTreeViewVCX
STORE JUSTPATH(_GridTreeViewVCX)+"\leaf.bmp" ;
TO .niveau0.image.picture, ;
.niveau1.image.picture ,;
.niveau2.image.picture
STORE JUSTPATH(_GridTreeViewVCX)+"\open.bmp" ;
TO .niveau0m.image.picture, ;
.niveau1m.image.picture
STORE JUSTPATH(_GridTreeViewVCX)+"\closed.bmp" ;
TO .niveau0p.image.picture, ;
.niveau1p.image.picture
STORE JUSTPATH(_GridTreeViewVCX)+"\minus.bmp" ;
TO .niveau0m.plusMoins.picture, ;
.niveau1m.plusMoins.picture
STORE JUSTPATH(_GridTreeViewVCX)+"\plus.bmp" ;
TO .niveau0p.plusMoins.picture, ;
.niveau1p.plusMoins.picture
STORE .t. ;
TO .niveau0m.plusMoins.visible, ;
.niveau0p.plusMoins.visible ,;
.niveau1m.plusMoins.visible, ;
.niveau1p.plusMoins.visible
.DynamicCurrentControl = ["Niveau"+str(]+.parent.RecordSource+[.niveau,1)+chrtran(]+.parent.RecordSource+[.expanded,"ON ","mp")]
.DynamicBackColor=[this.dynamic()]
ENDWITH
thisform.lockScreen = .f.
ENDPROC
PROCEDURE nodeclick
LOCAL niveau, cExpanded, key
SELECT (this.recordSource)
cExpanded = ALLTRIM(expanded)
IF NOT EMPTY(expanded)
thisform.LockScreen = .T.
m.key = EVALUATE(KEY())
IF expanded="O"
replace expanded WITH "N"
SKIP
REPLACE visible WITH .f. while LIKE(TRIM(m.key) + '*', EVALUATE(KEY()))
ELSE
SET FILTER TO
replace expanded WITH "O"
m.niveau = niveau
SKIP
SCAN REST WHILE LIKE(TRIM(m.key) + '*', EVALUATE(KEY()))
IF niveau = m.niveau + 1
replace visible with .t.
cExpanded = Expanded
ELSE
IF m.cExpanded="O"
replace visible with .t.
ENDIF
ENDIF
ENDSCAN
ENDIF
SEEK m.key
SET FILTER TO visible
This.columnTV.dynamicCurrentControl=This.columnTV.dynamicCurrentControl
this.refresh
thisform.LockScreen = .f.
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS niveau AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Image" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="PlusMoins" UniqueID="" Timestamp="" />
*<PropValue>
BackStyle = 0
BorderWidth = 0
Height = 24
Name = "niveau"
Width = 361
*</PropValue>
ADD OBJECT 'Image' AS image WITH ;
Height = 17, ;
Left = 18, ;
Name = "Image", ;
Top = 2, ;
Width = 17
*< END OBJECT: BaseClass="image" />
ADD OBJECT 'PlusMoins' AS image WITH ;
Height = 17, ;
Left = 1, ;
Name = "PlusMoins", ;
Top = 2, ;
Visible = .F., ;
Width = 17
*< END OBJECT: BaseClass="image" />
ADD OBJECT 'Text1' AS textbox WITH ;
BackStyle = 1, ;
BorderStyle = 0, ;
DisabledBackColor = 255,255,255, ;
DisabledForeColor = 0,0,0, ;
Enabled = .F., ;
FontBold = .T., ;
Height = 21, ;
Left = 33, ;
Name = "Text1", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
Top = 0, ;
Width = 327
*< END OBJECT: BaseClass="textbox" />
PROCEDURE DblClick
this.parent.parent.nodeClick
ENDPROC
PROCEDURE Image.DblClick
this.parent.parent.parent.nodeClick
ENDPROC
PROCEDURE PlusMoins.MouseDown
LPARAMETERS nButton, nShift, nXCoord, nYCoord
IF nButton=1
this.parent.parent.parent.nodeClick
ENDIF
ENDPROC
PROCEDURE Text1.DblClick
this.parent.parent.parent.nodeClick
ENDPROC
PROCEDURE Text1.Init
this.controlSource = this.parent.parent.parent.niveau0
ENDPROC
ENDDEFINE
DEFINE CLASS niveau1 AS niveau OF "gridtreeview.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="LineV" UniqueID="" Timestamp="" />
*<PropValue>
Height = 21
Name = "niveau1"
Text1.FontBold = .F.
Text1.Height = 20
Text1.Left = 58
Text1.Name = "Text1"
Text1.Top = 0
Text1.Width = 301
Text1.ZOrderSet = 0
Image.Height = 17
Image.Left = 42
Image.Name = "Image"
Image.Top = 2
Image.Width = 15
PlusMoins.Left = 26
PlusMoins.Name = "PlusMoins"
PlusMoins.Top = 2
*</PropValue>
ADD OBJECT 'LineV' AS line WITH ;
BorderColor = 128,128,128, ;
BorderWidth = 3, ;
Height = 27, ;
Left = 8, ;
Name = "LineV", ;
Top = -2, ;
Width = 0, ;
ZOrderSet = 1
*< END OBJECT: BaseClass="line" />
PROCEDURE Text1.Init
this.controlSource = this.parent.parent.parent.niveau1
ENDPROC
ENDDEFINE
DEFINE CLASS niveau2 AS niveau1 OF "gridtreeview.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Line2V" UniqueID="" Timestamp="" />
*<PropValue>
Height = 21
Name = "niveau2"
Text1.DisabledForeColor = 128,128,128
Text1.FontBold = .T.
Text1.ForeColor = 128,128,128
Text1.Height = 20
Text1.Left = 80
Text1.Name = "Text1"
Text1.Top = 0
Text1.Width = 268
Text1.ZOrderSet = 0
LINEV.Name = "LINEV"
LINEV.ZOrderSet = 1
Image.Left = 64
Image.Name = "Image"
Image.Top = 2
PlusMoins.Left = 48
PlusMoins.Name = "PlusMoins"
PlusMoins.Top = 2
*</PropValue>
ADD OBJECT 'Line2V' AS line WITH ;
BorderColor = 192,192,192, ;
BorderWidth = 3, ;
Height = 20, ;
Left = 33, ;
Name = "Line2V", ;
Top = 0, ;
Width = 0, ;
ZOrderSet = 2
*< END OBJECT: BaseClass="line" />
PROCEDURE Text1.Init
this.controlSource = this.parent.parent.parent.niveau2
ENDPROC
ENDDEFINE

25
clase/imagegrid.vc2 Normal file
View File

@@ -0,0 +1,25 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="imagegrid.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS imagegrid AS grid
*< CLASSDATA: Baseclass="grid" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: onlinechanged
*</DefinedPropArrayMethod>
*<PropValue>
Height = 200
Name = "imagegrid"
Width = 320
*</PropValue>
PROCEDURE onlinechanged
LPARAMETERS lnInfo
ENDPROC
ENDDEFINE

385
clase/importdata.vc2 Normal file
View File

@@ -0,0 +1,385 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="importdata.vcx" CPID="1250" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS frm_import AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="clb_tx_fisier" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdOriginal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdOriginal.cColumn.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdOriginal.cColumn.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdImport" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdImport.cColumn.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdImport.cColumn.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdImport.cColumnImport.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdImport.cColumnImport._cbbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_precedent1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_urmator1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_executa1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdTabel" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: cfile
*</DefinedPropArrayMethod>
*<PropValue>
cfile =
DoCreate = .T.
Height = 455
Name = "frm_import"
Width = 626
WindowState = 2
_SHAPE1.Anchor = 10
_SHAPE1.Height = 29
_SHAPE1.Left = 0
_SHAPE1.Name = "_SHAPE1"
_SHAPE1.Top = 0
_SHAPE1.Width = 630
_SHAPE2.Left = 276
_SHAPE2.Name = "_SHAPE2"
_SHAPE2.Top = 0
_SHAPE2.Visible = .F.
LB_TITLU_ALB_B121.Caption = "Import"
LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121"
LB_TITLU_ALB_B121.TabIndex = 10
BUT_TERMIN1.Anchor = 8
BUT_TERMIN1.Left = 596
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 8
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
*</PropValue>
ADD OBJECT 'But_precedent1' AS but_precedent WITH ;
Left = 232, ;
Name = "But_precedent1", ;
Picture = ..\grafice\precedent1.bmp, ;
TabIndex = 6, ;
Top = 180
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Anchor = 8, ;
Left = 566, ;
Name = "But_renunt1", ;
TabIndex = 9, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_urmator1' AS but_urmator WITH ;
Left = 232, ;
Name = "But_urmator1", ;
TabIndex = 5, ;
Top = 150
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'clb_tx_fisier' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 12, ;
Name = "clb_tx_fisier", ;
TabIndex = 1, ;
Top = 48, ;
Width = 395, ;
TEXT_SIMPLU1.ControlSource = "thisform.cFile", ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.Left = 50, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.Top = 3, ;
TEXT_SIMPLU1.Width = 340, ;
LB_SIMPLU1.Caption = "Fisier", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ;
Caption = "...", ;
Height = 27, ;
Left = 413, ;
Name = "Cmd_cauta1", ;
TabIndex = 2, ;
Top = 48, ;
Width = 39
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Cmd_executa1' AS cmd_executa WITH ;
Left = 468, ;
Name = "Cmd_executa1", ;
TabIndex = 3, ;
Top = 48
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'grdImport' AS _grdrow WITH ;
ColumnCount = 2, ;
DeleteMark = .F., ;
Height = 201, ;
Left = 264, ;
Name = "grdImport", ;
Panel = 1, ;
RecordSource = "crsTabelaImport", ;
TabIndex = 7, ;
Top = 87, ;
Width = 354, ;
Column1.ControlSource = "column_name", ;
Column1.Name = "cColumn", ;
Column1.Width = 187, ;
Column2.ControlSource = "column_import", ;
Column2.Name = "cColumnImport", ;
Column2.Sparse = .F., ;
Column2.Width = 134
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grdImport.cColumn.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Coloana", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdImport.cColumn.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdImport.cColumnImport._cbbase1' AS _cbbase WITH ;
BorderStyle = 0, ;
ControlSource = "column_import", ;
Left = 41, ;
Name = "_cbbase1", ;
RowSource = "crsCols.Column_Name", ;
RowSourceType = 2, ;
Top = 23
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT 'grdImport.cColumnImport.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Coloana Import", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdOriginal' AS _grdrow WITH ;
ColumnCount = 1, ;
DeleteMark = .F., ;
Height = 201, ;
Left = 12, ;
Name = "grdOriginal", ;
Panel = 1, ;
RecordSource = "crsTabelaOriginala", ;
TabIndex = 4, ;
Top = 87, ;
Width = 219, ;
Column1.ControlSource = "column_name", ;
Column1.Name = "cColumn", ;
Column1.Width = 187
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grdOriginal.cColumn.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Coloana", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdOriginal.cColumn.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdTabel' AS _grdrow WITH ;
Anchor = 15, ;
Height = 144, ;
Left = 17, ;
Name = "grdTabel", ;
Panel = 1, ;
ReadOnly = .F., ;
RecordSource = "", ;
TabIndex = 7, ;
Top = 303, ;
Width = 602
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
PROCEDURE Destroy
IF USED('crsTabelaOriginala')
USE IN crsTabelaOriginala
ENDIF
IF USED('crsTabelaImport')
USE IN crsTabelaImport
ENDIF
IF USED('crsCols')
USE IN crsCols
ENDIF
IF USED('fisImport')
USE IN fisImport
ENDIF
ENDPROC
PROCEDURE do_cauta
CD c:\
this.cFile = GETFILE('dbf','Selectati','Fisier',0,'Selectati fisierul de import')
this.clb_tx_fisier.Refresh()
ENDPROC
PROCEDURE do_executa
LOCAL lcFile
lcFile = ALLTRIM(this.cFile)
IF EMPTY(lcFile)
RETURN
ENDIF
IF !FILE(lcFile)
aMESSAGEBOX('Nu exista fisierul ' +_lcFile,0+48,_screen.Caption)
RETURN
ENDIF
IF USED('fisImport')
USE IN fisImport
ENDIF
USE (lcFile) IN 0 SHARED ALIAS fisImport
DELETE FROM crsTabelaImport
DELETE FROM crsTabelaOriginala
SELECT fisImport
lnColumns = FCOUNT('fisImport')
FOR i = 1 TO lnColumns
lcColumn = FIELD(i)
INSERT INTO crsTabelaOriginala (column_name) VALUES (lcColumn)
ENDFOR
SELECT crsTabelaOriginala
GO TOP
this.LockScreen = .T.
this.grdTabel.RecordSource=""
this.grdTabel.ColumnCount = -1
this.grdTabel.RecordSource="fisimport"
this.LockScreen = .F.
this.grdTabel.Refresh()
this.grdImport.Refresh()
this.grdOriginal.Refresh()
this.grdOriginal.SetFocus()
ENDPROC
PROCEDURE do_precedent
llSucces = .T.
lcColumn = UPPER(ALLTRIM(crsTabelaImport.column_name))
IF EMPTY(lcColumn)
llSucces = .F.
ENDIF
DELETE FROM crsTabelaImport WHERE UPPER(ALLTRIM(column_name)) = lcColumn
this.grdImport.SetFocus()
ENDPROC
PROCEDURE do_urmator
llSucces = .T.
lcColumn = UPPER(ALLTRIM(crsTabelaOriginala.column_name))
IF EMPTY(lcColumn)
llSucces = .F.
ENDIF
IF llSucces
SELECT column_name FROM crsTabelaImport WHERE UPPER(ALLTRIM(column_name)) = lcColumn INTO CURSOR crsTemp
IF _tally = 1
llSucces = .F.
ENDIF
IF USED('crsTemp')
USE IN crsTemp
ENDIF
ENDIF
IF llSucces
INSERT INTO crsTabelaImport (column_name) VALUES (lcColumn)
ENDIF
this.grdImport.SetFocus()
ENDPROC
PROCEDURE inainte_de_do_termin
LOCAL llSucces
llSucces = .F.
SELECT column_import, COUNT(*) as nr FROM crsTabelaImport GROUP BY column_import HAVING nr > 1 INTO CURSOR crsTemp
IF _tally > 0
SELECT crsTemp
GO TOP
lcColoana = ALLTRIM(column_import)
aMESSAGEBOX('Alegeti alta coloana de import pentru ' + lcColoana)
ELSE
llSucces = .T.
ENDIF
USE IN crsTemp
*!* lcCreateCursor = [SELECT ]
lcSelect = []
SELECT crsTabelaImport
SCAN
lcColumn = UPPER(ALLTRIM(column_name))
*!* SELECT crsCols
*!* LOCATE FOR UPPER(ALLTRIM(column_name)) = lcColumn
*!* IF !FOUND()
*!* LOOP
*!* ENDIF
lcColumnName = UPPER(ALLTRIM(column_IMPORT))
*!* lcColumnType = UPPER(ALLTRIM(column_type))
*!* lnColumnSize1 = column_size1
*!* lnColumnSize2 = column_size2
*!* lcCreateCursor = lcCreateCursor + lcColum + [ ] + lcColumnType + ;
*!* IIF(!EMPTY(lnColumnSize1),[(] + ALLTRIM(STR(lnColumnSize1)) + IIF(!EMPTY(lnColumnSize2),[,]+ALLTRIM(STR(lnColumnSize2))+[)],[]) + [)],[]) + [,]
lcSelect = lcSelect + lcColumn + [ as ] + lcColumnName + [,]
ENDSCAN
IF RIGHT(lcSelect,1) = [,]
lcSelect = LEFT(lcSelect, LEN(lcSelect) - 1)
ENDIF
llUsed = .T.
IF !USED('fisImport')
llUsed = .F.
lcFile = ALLTRIM(this.cFile)
USE (lcFile) IN 0 SHARED ALIAS fisImport
ENDIF
IF EMPTY(lcSelect)
lcSelect = [ * ]
ENDIF
lcSelect = [SELECT ] + lcSelect + [ from fisImport into cursor crsReturn]
&lcSelect
IF !llUsed
IF USED('fisImport')
USE IN fisImport
ENDIF
ENDIF
RETURN llSucces
ENDPROC
PROCEDURE Load
CREATE CURSOR crsTabelaOriginala (column_name c(100))
SELECT column_name,SPACE(100) as column_import FROM crsTabelaOriginala INTO CURSOR crsTabelaImport READWRITE
CREATE CURSOR crsCols (column_name c(100), column_type c(1), column_size1 n(10), column_size2 n(10))
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('SCD', 'C', 4, 0)
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('ASCD', 'C', 4, 0)
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('SCC', 'C', 4, 0)
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('ASCC', 'C', 4, 0)
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('SUMA', 'N', 20, 4)
INSERT INTO crsCols (column_name, column_type, column_size1, column_size2) VALUES ('EXPLICATIA', 'C', 30, 0)
ENDPROC
ENDDEFINE

68
clase/lb.vc2 Normal file
View File

@@ -0,0 +1,68 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="lb.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS lb_shortcuts AS _label OF "_baza.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
AutoSize = .T.
BackStyle = 0
Caption = "CTRL+F = Terminat/Continuare; ESC = Renuntare"
FontSize = 8
ForeColor = 255,255,0
Name = "lb_shortcuts"
*</PropValue>
ENDDEFINE
DEFINE CLASS lb_simplu AS _lbbase OF "_lb_base.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
Name = "lb_simplu"
*</PropValue>
ENDDEFINE
DEFINE CLASS lb_titlu_alb_b12 AS _lbbase OF "_lb_base.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
FontBold = .F.
FontName = "Arial"
FontSize = 12
ForeColor = 255,255,255
Name = "lb_titlu_alb_b12"
*</PropValue>
ENDDEFINE
DEFINE CLASS lb_titlu_albastru_b12 AS _lbbase OF "_lb_base.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
FontBold = .T.
FontSize = 12
ForeColor = 0,64,128
Name = "lb_titlu_albastru_b12"
*</PropValue>
ENDDEFINE
DEFINE CLASS lb_titlu_negru_b12 AS _lbbase OF "_lb_base.vcx"
*< CLASSDATA: Baseclass="label" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
BackStyle = 0
FontBold = .T.
FontSize = 12
Name = "lb_titlu_negru_b12"
*</PropValue>
ENDDEFINE

837
clase/lb_tx.vc2 Normal file
View File

@@ -0,0 +1,837 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="lb_tx.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS cb_tx_autofill AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="_lbbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_cbautofill1" UniqueID="" Timestamp="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
BackStyle = 0
Height = 29
Name = "cb_tx_autofill"
Width = 290
*</PropValue>
ADD OBJECT '_cbautofill1' AS _cbautofill WITH ;
Height = 23, ;
Left = 101, ;
Name = "_cbautofill1", ;
Top = 3, ;
Width = 184
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_lbbase1' AS _lbbase WITH ;
Left = 8, ;
Name = "_lbbase1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ENDDEFINE
DEFINE CLASS cb_tx_cautare AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Text" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Criteriu" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: do_actualizeaza_ct
*m: do_initializeaza_ct
*p: cpornire
*p: ctip
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackColor = 255,255,255
BorderWidth = 0
cpornire =
ctip = C
Height = 27
Name = "cb_tx_cautare"
Width = 303
_memberdata = <VFPData>
<memberdata name="ctip" display="cTip"/>
</VFPData>
*</PropValue>
ADD OBJECT 'Criteriu' AS _cbbase WITH ;
BorderStyle = 0, ;
BoundColumn = 2, ;
BoundTo = .T., ;
ColumnCount = 2, ;
ColumnLines = .F., ;
ColumnWidths = "72,0", ;
FontCharSet = 238, ;
FontItalic = .T., ;
Left = 3, ;
Name = "Criteriu", ;
RowSource = "incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5,toate,6", ;
RowSourceType = 1, ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 1, ;
ToolTipText = "Selectati criteriul de comparare", ;
Top = 1
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT 'Text' AS _txbase WITH ;
Format = "!KT", ;
Height = 25, ;
Left = 103, ;
Name = "Text", ;
TabIndex = 2, ;
Top = 1, ;
Width = 198
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE do_actualizeaza_ct
Lparameters tcValoare
Do Case
Case This.cTip = [N]
This.Text.Value = 0
Case This.cTip = [D]
This.Text.Value = Ctod([])
Case This.cTip = [T]
This.Text.Value = Ctot([])
Otherwise
If Val(tcValoare)>5
This.Text.Value=""
*This.Text.Enabled=.F.
This.Text.Enabled=.T.
Else
This.Text.Enabled=.T.
Endif
Endcase
ENDPROC
PROCEDURE do_initializeaza_ct
Lparameters tcValoare,tcTip
*!* modificare 14/10/2011 : am adaugat tcTip
If !Empty(tcTip)
Do Case
Case Inlist(tcTip,'T','N','D')
This.criteriu.RowSource = [=,1,diferita,2,>,3,<,4,>=,5,<=,6]
Otherwise
This.criteriu.RowSource = [incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5,toate,6]
Endcase
This.cTip = tcTip
Else
This.cTip = [C]
Endif
If Empty(tcValoare)
lcValoare = [1]
Else
lcValoare = tcValoare
Endif
This.criteriu.Value = lcValoare
This.do_actualizeaza_ct(lcValoare)
ENDPROC
PROCEDURE Criteriu.Valid
This.Parent.do_actualizeaza_ct(This.Value)
ENDPROC
ENDDEFINE
DEFINE CLASS cb_tx_simplu AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="_cbbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_lbbase1" UniqueID="" Timestamp="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
BackStyle = 0
Height = 29
Name = "cb_tx_simplu"
Width = 290
*</PropValue>
ADD OBJECT '_cbbase1' AS _cbbase WITH ;
Height = 23, ;
Left = 101, ;
Name = "_cbbase1", ;
Top = 3, ;
Width = 184
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_lbbase1' AS _lbbase WITH ;
Left = 8, ;
Name = "_lbbase1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ENDDEFINE
DEFINE CLASS clb_an_luna AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cb1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cb2" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
Height = 29
Name = "clb_an_luna"
Width = 201
_memberdata = <VFPData>
</VFPData>
*</PropValue>
ADD OBJECT 'cb1' AS _combobox WITH ;
Height = 24, ;
Left = 49, ;
Name = "cb1", ;
RowSource = "1,2,3,4,5,6,7,8,9,10,11,12", ;
RowSourceType = 1, ;
TabIndex = 1, ;
Top = 2, ;
Width = 59
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'cb2' AS _combobox WITH ;
Height = 24, ;
Left = 121, ;
Name = "cb2", ;
RowSource = "2000,2001,2003,2004,2005,2006,2007,2008,2009,20010", ;
RowSourceType = 1, ;
TabIndex = 2, ;
Top = 2, ;
Width = 74
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Caption = "Luna", ;
Left = 8, ;
Name = "Lb_simplu1", ;
TabIndex = 3, ;
Top = 7
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
PROCEDURE Init
this.cb2.rowsource = "1990"
FOR i = 1991 TO gnAn + 10
this.cb2.rowsource = this.cb2.rowsource + "," + ALLTRIM(STR(i))
ENDFOR
this.cb1.Value=ALLTRIM(STR(gnLuna))
this.cb2.Value=ALLTRIM(STR(gnAn))
this.cb1.SetFocus()
ENDPROC
PROCEDURE cb1.LostFocus
IF !empty(this.value)
lcLuna=ALLTRIM(this.Value)
lcAn=ALLTRIM(this.Parent.cb2.Value)
IF TYPE("DATE(VAL(lcAn),VAL(lcLuna),1)")!="D"
aMESSAGEBOX("Data invalida!",0+16,"Eroare")
RETURN 0
ENDIF
ENDIF
ENDPROC
PROCEDURE cb2.LostFocus
IF !empty(this.value)
lcLuna=ALLTRIM(this.Parent.cb1.Value)
lcAn=ALLTRIM(this.Value)
IF TYPE("DATE(VAL(lcAn),VAL(lcLuna),1)")!="D"
aMESSAGEBOX("Data invalida!",0+16,"Eroare")
RETURN 0
ENDIF
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS clb_luna_intre AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="tx_n1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_n2" UniqueID="" Timestamp="" />
*<PropValue>
Height = 29
Name = "clb_luna_intre"
Width = 290
*</PropValue>
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'tx_n1' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
InputMask = "99/9999", ;
Left = 128, ;
Name = "tx_n1", ;
Top = 2, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'tx_n2' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
InputMask = "99/9999", ;
Left = 208, ;
Name = "tx_n2", ;
Top = 2, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE tx_n1.Valid
IF !empty(this.value)
lcLuna=SUBSTR(ALLTRIM(this.Value),1,2)
lcAn=SUBSTR(ALLTRIM(this.Value),3)
IF TYPE("DATE(VAL(lcAn),VAL(lcLuna),1)")!="D"
aMESSAGEBOX("Data invalida!",0+16,"Eroare")
RETURN 0
ENDIF
IF EMPTY(this.Parent.tx_n2.Value)
this.Parent.tx_n2.Value=this.value
this.Parent.tx_n2.Refresh
ENDIF
ENDIF
ENDPROC
PROCEDURE tx_n2.Valid
IF !empty(this.value)
lcLuna=SUBSTR(ALLTRIM(this.Value),1,2)
lcAn=SUBSTR(ALLTRIM(this.Value),3)
IF TYPE("DATE(VAL(lcAn),VAL(lcLuna),1)")!="D"
aMESSAGEBOX("Data invalida!",0+16,"Eroare")
RETURN 0
ENDIF
ELSE
IF !EMPTY(this.Parent.tx_n1.Value)
this.Value=this.Parent.tx_n1.Value
this.Refresh
ENDIF
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS clb_n1n2_simplu AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="tx_n1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_n2" UniqueID="" Timestamp="" />
*<PropValue>
BackStyle = 0
Height = 29
Name = "clb_n1n2_simplu"
Width = 290
*</PropValue>
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'tx_n1' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
Left = 130, ;
Name = "tx_n1", ;
Top = 2, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'tx_n2' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
Left = 210, ;
Name = "tx_n2", ;
Top = 2, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE tx_n1.Valid
this.Parent.tx_n2.value=this.value
this.Parent.tx_n2.Refresh
ENDPROC
PROCEDURE tx_n2.Valid
IF empty(this.value)
IF !EMPTY(this.Parent.tx_n1.Value)
this.Value=this.Parent.tx_n1.Value
this.Refresh
ENDIF
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS clb_nr_intre AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="tx_n1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_n2" UniqueID="" Timestamp="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
BorderWidth = 1
Height = 29
Name = "clb_nr_intre"
Width = 290
*</PropValue>
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'tx_n1' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
InputMask = "999 999 999", ;
Left = 128, ;
Name = "tx_n1", ;
Top = 2, ;
Value = 0, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'tx_n2' AS _txbase WITH ;
Alignment = 3, ;
Format = "RK", ;
Height = 23, ;
InputMask = "999 999 999", ;
Left = 208, ;
Name = "tx_n2", ;
Top = 2, ;
Value = 0, ;
Width = 76
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE tx_n1.Valid
IF EMPTY(this.Parent.tx_n2.value)
this.Parent.tx_n2.value=this.value
ENDIF
this.Parent.tx_n2.Refresh
ENDPROC
PROCEDURE tx_n2.Valid
IF empty(this.value)
IF !EMPTY(this.Parent.tx_n1.Value)
this.Value=this.Parent.tx_n1.Value
this.Refresh
ENDIF
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS clb_tx_data AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Text_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_buton1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: dezactiveaza
*m: do_alege_data
*m: reactiveaza
*m: value_access
*m: value_assign
*p: opopup
*p: pcobj
*p: value && Specifies the current state of a control.
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
Height = 29
Name = "clb_tx_data"
opopup =
pcobj =
value =
Width = 290
*</PropValue>
ADD OBJECT 'Cmd_buton1' AS cmd_buton WITH ;
caction = do_alege_data, ;
cpicturedown = calendar.png, ;
cpictureup = calendar.png, ;
Height = 25, ;
Left = 256, ;
Name = "Cmd_buton1", ;
Picture = ..\grafice\calendar.png, ;
PicturePosition = 14, ;
TabStop = .F., ;
Top = 2, ;
Width = 31
*< END OBJECT: ClassLib="_cmd_base.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'Text_simplu1' AS _txbase WITH ;
Alignment = 3, ;
Format = "!K", ;
Height = 23, ;
Left = 168, ;
Name = "Text_simplu1", ;
Top = 3, ;
Value = {}, ;
Width = 84
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE dezactiveaza
This.text_simplu1.ReadOnly = .T.
This.text_simplu1.TabStop =.F.
This.cmd_buton1.Enabled = .F.
ENDPROC
PROCEDURE do_alege_data
This.oPopup = Createobject("_calpopup", This, Thisform)
If !Isnull(This.oPopup)
This.oPopup.ShowForm(Objtoclient(This.Text_simplu1, 2), Objtoclient(This.Text_simplu1,1) + This.Text_simplu1.Height - 1)
Endif
ENDPROC
PROCEDURE reactiveaza
This.text_simplu1.ReadOnly = .F.
This.text_simplu1.TabStop =.T.
This.cmd_buton1.Enabled = .T.
ENDPROC
PROCEDURE value_access
RETURN This.text_simplu1.Value
ENDPROC
PROCEDURE value_assign
LPARAMETERS tdDataNoua
This.Text_simplu1.Value = m.tdDataNoua
ENDPROC
ENDDEFINE
DEFINE CLASS clb_tx_simplu AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Text_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: pcobj
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
Height = 29
Name = "clb_tx_simplu"
pcobj =
Width = 290
*</PropValue>
ADD OBJECT 'Lb_simplu1' AS _lbbase WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'Text_simplu1' AS _txbase WITH ;
Format = "!K", ;
Height = 23, ;
Left = 101, ;
Name = "Text_simplu1", ;
Top = 3, ;
Width = 184
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ENDDEFINE
DEFINE CLASS ct_cb_tx AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="_cbbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_explicatie" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Text_simplu1" UniqueID="" Timestamp="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<DefinedPropArrayMethod>
*m: do_activeaza
*m: do_actualizeaza_valori
*m: do_apeleaza
*m: do_dezactiveaza
*m: do_schimba_explicatie
*p: ccrs_col && Pentru RowSourceType = 6
*p: ccrs_col_id && Coloana care contine id-ul ce va fi memorat in variabila de la cvar_id.
*p: ccursor
*p: clista_parametri
*p: clista_valori && Pentru RowSourceType = 2
*p: cprocedura && Procedura care se apeleaza pe InteractiveChange de la combo.
*p: cvar_afisata && Control source-ul pentru textfield si combo.
*p: cvar_id && Numele variabilei in care se va copia id-ul.
*p: lactiv
*p: ntip && 1 > Fields (ccursor) ; 2 > Value (clista_valori)
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
BackStyle = 0
ccrs_col =
ccrs_col_id =
ccursor =
clista_parametri =
clista_valori =
cprocedura =
cvar_afisata =
cvar_id =
Height = 29
lactiv = .T.
Name = "ct_cb_tx"
ntip = 1
Width = 290
_memberdata = <VFPData>
<memberdata name="_memberdata" display="_MemberData"/>
<memberdata name="ccursor_alegere" type="Property" favorites="True"/>
<memberdata name="clista_parametri" type="Property" favorites="True"/>
<memberdata name="cprocedura" type="Property" favorites="True"/>
<memberdata name="cvar_afisata" type="Property" favorites="True"/>
<memberdata name="ccrs_col" type="Property" favorites="True"/>
<memberdata name="ccrs_col_id" type="Property" favorites="True"/>
<memberdata name="cvar_id" type="Property" favorites="True"/>
<memberdata name="clista_valori" type="Property" favorites="True"/>
<memberdata name="ccursor" type="Property" favorites="True"/>
<memberdata name="ntip" type="Property" favorites="True"/>
</VFPData>
*</PropValue>
ADD OBJECT '_cbbase1' AS _cbbase WITH ;
Anchor = 10, ;
Height = 23, ;
Left = 101, ;
Name = "_cbbase1", ;
Top = 3, ;
Visible = .F., ;
Width = 184
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT 'lb_explicatie' AS _lbbase WITH ;
Left = 8, ;
Name = "lb_explicatie", ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'Text_simplu1' AS _txbase WITH ;
Anchor = 10, ;
Format = "!K", ;
Height = 23, ;
Left = 101, ;
Name = "Text_simplu1", ;
ReadOnly = .T., ;
Top = 3, ;
Width = 184
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE do_activeaza
This.lactiv = .T.
This.teXT_SIMPLU1.Visible = .F.
This._cbBASE1.Visible = .T.
ENDPROC
PROCEDURE do_actualizeaza_valori
If This.ntip = 1
Select (This.ccursor)
If !Empty(This.ccrs_col) And !Empty(This.cvar_afisata)
lcValoare = This.cvar_afisata + [ = ] + This.ccrs_col
&lcValoare
Endif
If !Empty(This.ccrs_col_id) And !Empty(This.cvar_id)
lcValoare = This.cvar_id + [ = ] + This.ccrs_col_id
&lcValoare
Endif
Endif
This.do_apeleaza()
ENDPROC
PROCEDURE do_apeleaza
Local lcListaParametri, lcApelProcedura
lcListaParametri = Iif(Type('This.clista_parametri')='N',Alltrim(Str(This.clista_parametri)),Alltrim(This.clista_parametri))
lcApelProcedura = This.cprocedura + Iif(!Empty(lcListaParametri),[(]+lcListaParametri+[)],[])
If !Empty(lcApelProcedura)
&lcApelProcedura
Endif
ENDPROC
PROCEDURE do_dezactiveaza
This.lactiv = .F.
This.teXT_SIMPLU1.Visible = .T.
This._cbBASE1.Visible = .F.
ENDPROC
PROCEDURE do_schimba_explicatie
Lparameters tcExplicatie
This.lb_explicatie.Caption = Alltrim(tcExplicatie)
ENDPROC
PROCEDURE Init
Lparameters tnMarime
Local lnMarime
*!* -1 - dimensiunile setate de utilizator
*!* 0 -
*!* 1 -
If Empty(tnMarime)
lnMarime = -1
Else
lnMarime = tnMarime
Endif
Do Case
Case lnMarime = 0
This.Width = 324
This.Refresh()
Case lnMarime = 1
This.Width = 354
This.Refresh()
Endcase
Do Case
Case This.ntip = 1
This._CBBASE1.RowSource = This.ccursor + [.] + This.ccrs_col + [,] + This.ccrs_col_id
This._CBBASE1.RowSourceType = 6
This._CBBASE1.ControlSource = This.cvar_afisata
This.texT_SIMPLU1.ControlSource = This.cvar_afisata
Case This.ntip = 2
This._CBBASE1.RowSource = This.clista_valori
This._CBBASE1.RowSourceType = 1
This._CBBASE1.BoundColumn = 2
This._CBBASE1.BoundTo = .T.
This._CBBASE1.ColumnCount = 2
This._CBBASE1.ColumnLines = .F.
This._CBBASE1.ColumnWidths = ALLTRIM(STR(MAX(20,This._CBBASE1.Width)))+[,0]
This._CBBASE1.ControlSource = This.cvar_afisata
This.texT_SIMPLU1.ControlSource = [This.Parent._CBBASE1.DisplayValue]
ENDCASE
ENDPROC
PROCEDURE Refresh
This.texT_SIMPLU1.Refresh()
This._cBBASE1.Refresh()
DoDefault()
ENDPROC
PROCEDURE _cbbase1.InteractiveChange
This.Parent.do_actualizeaza_valori()
ENDPROC
ENDDEFINE
DEFINE CLASS ed_tx_simplu AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="_edbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_lbbase1" UniqueID="" Timestamp="" />
#INCLUDE "..\..\program files\microsoft visual foxpro 8\foxpro.h"
*<PropValue>
BackStyle = 0
BorderWidth = 1
Height = 58
Name = "ed_tx_simplu"
Width = 314
*</PropValue>
ADD OBJECT '_edbase1' AS _edbase WITH ;
Left = 68, ;
Name = "_edbase1", ;
TabIndex = 1, ;
Top = 2
*< END OBJECT: ClassLib="_ed_base.vcx" BaseClass="editbox" />
ADD OBJECT '_lbbase1' AS _lbbase WITH ;
Left = 8, ;
Name = "_lbbase1", ;
TabIndex = 2, ;
Top = 6
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
PROCEDURE _edbase1.InteractiveChange
Local lnSelStart
If '!' $ This.Format
lnSelStart = This.SelStart
This.Value = Upper(This.Value)
This.SelStart = lnSelStart
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS op_tx_simplu AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Lb_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_optiongrup1" UniqueID="" Timestamp="" />
*<PropValue>
Height = 51
Name = "op_tx_simplu"
Width = 207
*</PropValue>
ADD OBJECT '_optiongrup1' AS _optiongrup WITH ;
Left = 132, ;
Name = "_optiongrup1", ;
Top = 4, ;
Option1.Left = 5, ;
Option1.Name = "Option1", ;
Option1.Top = 5, ;
Option2.Left = 5, ;
Option2.Name = "Option2", ;
Option2.Top = 24
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="optiongroup" />
ADD OBJECT 'Lb_simplu1' AS lb_simplu WITH ;
Left = 8, ;
Name = "Lb_simplu1", ;
Top = 16
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ENDDEFINE

4077
clase/locale.vc2 Normal file

File diff suppressed because it is too large Load Diff

1462
clase/oOptiuni.vc2 Normal file

File diff suppressed because it is too large Load Diff

7283
clase/obalanta.vc2 Normal file

File diff suppressed because it is too large Load Diff

6336
clase/ocasabanca.vc2 Normal file

File diff suppressed because it is too large Load Diff

8301
clase/ocomenzi.vc2 Normal file

File diff suppressed because it is too large Load Diff

2982
clase/ocompensari.vc2 Normal file

File diff suppressed because it is too large Load Diff

3520
clase/ocriterii.vc2 Normal file

File diff suppressed because it is too large Load Diff

1368
clase/odebcred.vc2 Normal file

File diff suppressed because it is too large Load Diff

485
clase/odeschidereluna.vc2 Normal file
View File

@@ -0,0 +1,485 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="odeschidereluna.vcx" CPID="1250" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS frm_log_deschidereluna AS _frmbase OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="grdLogRedeschid" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cAn.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cAn.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cLuna.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cLuna.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDeschid.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDeschid.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDeschid._CHECKBOX1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cProgramat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cProgramat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cProgramat._CHECKBOX1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora_start.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora_start.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora_final.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora_final.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cUtilizator.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cUtilizator.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataora.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cSters.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cSters.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cSters._CHECKBOX1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cUtilizators.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cUtilizators.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataoras.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cDataoras.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cObservatii.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdLogRedeschid.cObservatii.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_start_criterii1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: cfile
*</DefinedPropArrayMethod>
*<PropValue>
cfile =
DoCreate = .T.
Height = 455
Name = "frm_log_deschidereluna"
Width = 626
WindowState = 2
_SHAPE1.Anchor = 10
_SHAPE1.Height = 29
_SHAPE1.Left = 0
_SHAPE1.Name = "_SHAPE1"
_SHAPE1.Top = 0
_SHAPE1.Width = 630
_SHAPE2.Left = 576
_SHAPE2.Name = "_SHAPE2"
_SHAPE2.Top = 0
_SHAPE2.Visible = .F.
LB_TITLU_ALB_B121.Caption = "Programare deschidere / redeschidere luna"
LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121"
LB_TITLU_ALB_B121.TabIndex = 10
BUT_TERMIN1.Anchor = 9
BUT_TERMIN1.Left = 596
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 8
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
*</PropValue>
ADD OBJECT 'But_nou1' AS but_nou WITH ;
Anchor = 9, ;
Left = 535, ;
Name = "But_nou1", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_start_criterii1' AS but_start_criterii WITH ;
Anchor = 9, ;
Comment = "*:OnResize=RT", ;
Left = 503, ;
Name = "But_start_criterii1", ;
Top = 0
*< END OBJECT: ClassLib="ocriterii.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_sterge1' AS but_sterge WITH ;
Anchor = 9, ;
Left = 566, ;
Name = "But_sterge1", ;
Top = 1, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'grdLogRedeschid' AS _grdrow WITH ;
Anchor = 15, ;
ColumnCount = 12, ;
DeleteMark = .F., ;
Height = 408, ;
Left = 12, ;
Name = "grdLogRedeschid", ;
Panel = 1, ;
ReadOnly = .T., ;
RecordSource = "cLogRedeschid", ;
TabIndex = 4, ;
Top = 36, ;
Width = 600, ;
Column1.ColumnOrder = 1, ;
Column1.ControlSource = "anul", ;
Column1.Name = "cAn", ;
Column1.ReadOnly = .T., ;
Column1.Width = 43, ;
Column2.ColumnOrder = 2, ;
Column2.ControlSource = "luna", ;
Column2.Name = "cLuna", ;
Column2.ReadOnly = .T., ;
Column2.Width = 46, ;
Column3.ControlSource = "deschid", ;
Column3.CurrentControl = "_CHECKBOX1", ;
Column3.Name = "cDeschid", ;
Column3.ReadOnly = .T., ;
Column3.Sparse = .F., ;
Column3.Width = 72, ;
Column4.ControlSource = "programat", ;
Column4.CurrentControl = "_CHECKBOX1", ;
Column4.Name = "cProgramat", ;
Column4.ReadOnly = .T., ;
Column4.Sparse = .F., ;
Column4.Width = 62, ;
Column5.ControlSource = "dataora_start", ;
Column5.Name = "cDataora_start", ;
Column5.ReadOnly = .T., ;
Column5.Width = 110, ;
Column6.ControlSource = "dataora_stop", ;
Column6.Name = "cDataora_final", ;
Column6.ReadOnly = .T., ;
Column6.Width = 110, ;
Column7.ControlSource = "utilizator", ;
Column7.Name = "cUtilizator", ;
Column7.ReadOnly = .T., ;
Column7.Width = 162, ;
Column8.ControlSource = "dataora", ;
Column8.Name = "cDataora", ;
Column8.ReadOnly = .T., ;
Column8.Width = 96, ;
Column9.ControlSource = "sters", ;
Column9.CurrentControl = "_CHECKBOX1", ;
Column9.Name = "cSters", ;
Column9.ReadOnly = .T., ;
Column9.Sparse = .F., ;
Column9.Width = 41, ;
Column10.ControlSource = "utilizators", ;
Column10.Name = "cUtilizators", ;
Column10.ReadOnly = .T., ;
Column10.Width = 158, ;
Column11.ControlSource = "dataoras", ;
Column11.Name = "cDataoras", ;
Column11.ReadOnly = .T., ;
Column11.Width = 106, ;
Column12.ControlSource = "observatii", ;
Column12.Name = "cObservatii", ;
Column12.ReadOnly = .T., ;
Column12.Width = 165
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grdLogRedeschid.cAn.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "An", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cAn.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cDataora.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data/ora", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cDataora.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cDataora_final.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data/ora final", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cDataora_final.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cDataora_start.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data/ora start", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cDataora_start.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cDataoras.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data/ora sters", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cDataoras.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cDeschid._CHECKBOX1' AS _checkbox WITH ;
Alignment = 0, ;
Caption = "", ;
Left = 30, ;
Name = "_CHECKBOX1", ;
ReadOnly = .T., ;
Top = 71
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'grdLogRedeschid.cDeschid.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Deschidere", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cDeschid.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cLuna.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Luna", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cLuna.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cObservatii.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Observatii", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cObservatii.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cProgramat._CHECKBOX1' AS _checkbox WITH ;
Alignment = 0, ;
Caption = "", ;
Left = 41, ;
Name = "_CHECKBOX1", ;
ReadOnly = .T., ;
Top = 71
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'grdLogRedeschid.cProgramat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Programat", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cProgramat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cSters._CHECKBOX1' AS _checkbox WITH ;
Alignment = 0, ;
Caption = "", ;
Left = 17, ;
Name = "_CHECKBOX1", ;
ReadOnly = .T., ;
Top = 47
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'grdLogRedeschid.cSters.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Sters", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cSters.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cUtilizator.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Operator", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cUtilizator.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdLogRedeschid.cUtilizators.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Operator stergere", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdLogRedeschid.cUtilizators.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
PROCEDURE do_adauga
PRIVATE pnId
pnId = 0
lcSql = [begin pack_deschidere_luna.adauga_programare(?gnAn, ?gnLuna, pack_deschidere_luna.nRedeschidereLuna, ?gnIdUtil, ?gnIdProgram, ?@pnId); end;]
lnSucces = goExecutor.oExecute(lcSql)
IF lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,_screen.Caption)
ELSE
This.do_cauta()
LOCATE FOR id_redeschid = pnId
IF !FOUND()
GO TOP
ENDIF
this.grdLogRedeschid.SetFocus()
ENDIF
ENDPROC
PROCEDURE do_cauta
LOCAL lcFiltru
lcFiltru = ""
*** DACA FILTRUL NU CONTINE INREGISTRARILE STERSE, SELECTEZ DOAR INREGISTRARILE STERS = 0
If !'STERS'$upper(Thisform.filtru_pretty_ro_full)
lcFiltru = [ AND STERS = 0 ] + lcFiltru
ENDIF
*** DACA FILTRUL NU CONTINE PERIOADA, SELECTEZ DOAR INREGISTRARILE DIN LUNA CURENTA
IF !'PERIOADA'$upper(THISFORM.filtru_pretty_ro_full)
lcFiltru = [ AND LUNA = ]+ALLTRIM(STR(m.gnluna))+[ AND ANUL = ]+ALLTRIM(STR(m.gnan)) + m.lcFiltru
ENDIF
IF LEN(THISFORM.filtru_pretty)>0
lcFiltru = m.lcFiltru+" and (" + ALLTRIM(THISFORM.filtru_pretty) + ")"
ENDIF
IF !EMPTY(m.lcFiltru)
lcFiltru = SUBSTR(m.lcFiltru, 6)
ELSE
lcFiltru = poProgramare.ca_baza1.cfiltru
ENDIF
IF (THIS.filtru_pretty#"none")
Thisform.MousePointer= 11
Thisform.LockScreen=.T.
save_grid_tag(Thisform.grdLogRedeschid)
poProgramare.ca_baza1.cfiltru = m.lcFiltru
poProgramare.ca_baza1.afisare()
restore_grid_tag(Thisform.grdLogRedeschid)
Thisform.LockScreen=.F.
Thisform.MousePointer= 0
IF RECCOUNT('cLogRedeschid')=0
aMessagebox("Cautarea nu a intors rezultate!",0+48,_screen.Caption)
ENDIF
ENDIF
ENDPROC
PROCEDURE inainte_de_do_sterge
Private pnId
pnId = cLogRedeschid.id_redeschid
If Nvl(pnId,0) <> 0
lcSql = [begin pack_deschidere_luna.sterge_programare(?pnId, ?gnIdUtil); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,_Screen.Caption)
Else
This.do_cauta()
Locate For id_redeschid = pnId
If !Found()
Go Top
Endif
This.grdLogRedeschid.SetFocus()
Endif
Endif
ENDPROC
PROCEDURE Init
DODEFAULT()
this.grdLogRedeschid.SetAll("dynamicforecolor","iif(sters = 0, RGB(0,0,0), RGB(255,0,0))", "Column")
ENDPROC
PROCEDURE But_start_criterii1.loadcriterii
PARAMETERS tacriterii
EXTERNAL ARRAY tacriterii
#DEFINE crlf CHR(13)+CHR(10)
lcStringCriterii= "Perioada\anul*12+luna\D1\none\" + crlf + ;
"Dataora start\trunc(dataora_start)\D\none\" + crlf + ;
"Dataora final\trunc(dataora_final)\D\none\" + crlf + ;
"Deschidere\nofiled\A\Deschidere de luna,Redeschidere de luna,Toate#NVL(deschid,0) = 1,NVL(deschid,0) = 0,1=1\" + crlf + ;
"Programare\nofiled\A\Deschidere programata,Deschidere imediata,Toate#programat = 1,programat = 0,1=1\" + crlf + ;
"Dataora\trunc(dataora)\D\none\" + crlf + ;
"Operator\util\T\ID_UTIL\nom_utilizator" + crlf + ;
"Sterse\nofiled\E\(1=1)\" + crlf + ;
"Operator stergere\utils\T\ID_UTILS\nom_utilizator" + crlf + ;
"Data stergerii\trunc(dataoras)\D\none\"
DODEFAULT()
ENDPROC
ENDDEFINE

22862
clase/ofacturare.vc2 Normal file

File diff suppressed because it is too large Load Diff

7265
clase/ofacturare_comun.vc2 Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4050
clase/ofirma.vc2 Normal file

File diff suppressed because it is too large Load Diff

494
clase/ofundal.vc2 Normal file
View File

@@ -0,0 +1,494 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="ofundal.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS cw AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Label_item1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: activeaza
*m: dezactiveaza
*m: do_actiune
*p: alb
*p: bleumarin
*p: ccheie && Cheia corespunzatoare din crsdrepturi ( se completeaza la citirea drepturilor din bd ).
*p: cmeniu && Numele meniului pe care il lanseaza.
*p: coptiuni_active && Optiunile active
*p: linactiv && .T. daca containerul este inactiv indiferent de drepturi.
*p: nid_cw
*p: ntip && 0 - introducere\vizualizare simpla\raport simplu ; 1 - raport + excel ; 2 - registru; 3 - balanta\inreg. de parteneri; 4 - vizualizare ; 5 - personalizat
*</DefinedPropArrayMethod>
*<PropValue>
alb = 16777215
BackColor = 192,192,192
BackStyle = 1
bleumarin = 7274496
BorderColor = 192,192,192
BorderWidth = 0
ccheie =
cmeniu =
coptiuni_active =
ForeColor = 0,64,128
Height = 20
linactiv = .F.
Name = "cw"
nid_cw = 0
ntip = 0
Width = 180
*</PropValue>
ADD OBJECT 'Label_item1' AS _lbbase WITH ;
Caption = "Introducere", ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 255,255,255, ;
Left = 5, ;
Name = "Label_item1", ;
Top = 1
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
PROCEDURE activeaza
If This.linactiv
This.dezactiveaza()
Else
This.Enabled=.T.
This.laBEL_ITEM1.ForeColor=Rgb(255,255,255)
Endif
ENDPROC
PROCEDURE Click
If !This.Enabled
Return
Endif
gcAcces=This.coptiuni_active
This.do_actiune
ENDPROC
PROCEDURE dezactiveaza
This.Enabled=.F.
This.laBEL_ITEM1.ForeColor=Rgb(128,128,128)
ENDPROC
PROCEDURE do_actiune
ENDPROC
PROCEDURE Init
COL_MENU=RGB(255,255,255)
This.BackColor= COL_MENU
This.BackStyle=0
ENDPROC
PROCEDURE MouseEnter
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
This.BackStyle=1
*!* this.BackColor=THIS.BLEUMARIN&&8404992
*!* this.label_item1.ForeColor=THIS.ALB&&16777215
This.BackColor=This.ALB&&8404992
This.label_item1.ForeColor=This.BLEUMARIN&&16777215
*this.CLICK
This.label_item1.MousePointer = 15
This.MousePointer = 15
Endif
ENDPROC
PROCEDURE MouseLeave
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
*!* this.BackColor=THIS.Parent.BACKCOLOR
*!* *!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
*!* this.label_item1.ForeColor=THIS.ALB
This.BackColor=This.Parent.BackColor
*!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
This.label_item1.ForeColor=This.ALB
This.BackStyle= 0
This.label_item1.MousePointer = 1
This.MousePointer= 1
Endif
ENDPROC
PROCEDURE Label_item1.Click
this.Parent.click
ENDPROC
ENDDEFINE
DEFINE CLASS cw_2019 AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Label_item1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: activeaza
*m: dezactiveaza
*m: do_actiune
*p: alb
*p: bleumarin
*p: ccheie && Cheia corespunzatoare din crsdrepturi ( se completeaza la citirea drepturilor din bd ).
*p: cmeniu && Numele meniului pe care il lanseaza.
*p: coptiuni_active && Optiunile active
*p: linactiv && .T. daca containerul este inactiv indiferent de drepturi.
*p: nid_cw
*p: ntip && 0 - introducere\vizualizare simpla\raport simplu ; 1 - raport + excel ; 2 - registru; 3 - balanta\inreg. de parteneri; 4 - vizualizare ; 5 - personalizat
*</DefinedPropArrayMethod>
*<PropValue>
alb = 16777215
BackColor = 192,192,192
BackStyle = 1
bleumarin = 7274496
BorderColor = 192,192,192
BorderWidth = 0
ccheie =
cmeniu =
coptiuni_active =
ForeColor = 0,64,128
Height = 20
linactiv = .F.
Name = "cw_2019"
nid_cw = 0
ntip = 0
Width = 180
*</PropValue>
ADD OBJECT 'Label_item1' AS _lbbase WITH ;
Caption = "Introducere", ;
FontCharSet = 1, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 255,255,255, ;
Left = 5, ;
Name = "Label_item1", ;
Top = 1
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
PROCEDURE activeaza
If This.linactiv
This.dezactiveaza()
Else
This.Enabled=.T.
This.laBEL_ITEM1.ForeColor=Rgb(255,255,255)
Endif
ENDPROC
PROCEDURE Click
If !This.Enabled
Return
Endif
gcAcces=This.coptiuni_active
This.do_actiune
ENDPROC
PROCEDURE dezactiveaza
This.Enabled=.F.
This.laBEL_ITEM1.ForeColor=Rgb(128,128,128)
ENDPROC
PROCEDURE do_actiune
ENDPROC
PROCEDURE Init
COL_MENU=RGB(255,255,255)
This.BackColor= COL_MENU
This.BackStyle=0
ENDPROC
PROCEDURE MouseEnter
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
This.BackStyle=1
*!* this.BackColor=THIS.BLEUMARIN&&8404992
*!* this.label_item1.ForeColor=THIS.ALB&&16777215
This.BackColor=This.ALB&&8404992
This.label_item1.ForeColor=This.BLEUMARIN&&16777215
*this.CLICK
This.label_item1.MousePointer = 15
This.MousePointer = 15
Endif
ENDPROC
PROCEDURE MouseLeave
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
*!* this.BackColor=THIS.Parent.BACKCOLOR
*!* *!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
*!* this.label_item1.ForeColor=THIS.ALB
This.BackColor=This.Parent.BackColor
*!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
This.label_item1.ForeColor=This.ALB
This.BackStyle= 0
This.label_item1.MousePointer = 1
This.MousePointer= 1
Endif
ENDPROC
PROCEDURE Label_item1.Click
this.Parent.click
ENDPROC
ENDDEFINE
DEFINE CLASS cw_nou AS _commandbutton OF "_baza.vcx"
*< CLASSDATA: Baseclass="commandbutton" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Name = "cw"
*</PropValue>
ENDDEFINE
DEFINE CLASS cw_original AS _container OF "_baza.vcx"
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Label_item1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: activeaza
*m: dezactiveaza
*m: do_actiune
*p: alb
*p: bleumarin
*p: ccheie && Cheia corespunzatoare din crsdrepturi ( se completeaza la citirea drepturilor din bd ).
*p: cmeniu && Numele meniului pe care il lanseaza.
*p: coptiuni_active && Optiunile active
*p: linactiv && .T. daca containerul este inactiv indiferent de drepturi.
*p: nid_cw
*p: ntip && 0 - introducere\vizualizare simpla\raport simplu ; 1 - raport + excel ; 2 - registru; 3 - balanta\inreg. de parteneri; 4 - vizualizare ; 5 - personalizat
*</DefinedPropArrayMethod>
*<PropValue>
alb = 16777215
BackColor = 192,192,192
BackStyle = 1
bleumarin = 7274496
BorderColor = 192,192,192
BorderWidth = 0
ccheie =
cmeniu =
coptiuni_active =
ForeColor = 0,64,128
Height = 20
linactiv = .F.
Name = "cw"
nid_cw = 0
ntip = 0
Width = 117
*</PropValue>
ADD OBJECT 'Label_item1' AS _lbbase WITH ;
Caption = "Introducere", ;
FontCharSet = 238, ;
FontSize = 8, ;
ForeColor = 255,255,255, ;
Left = 5, ;
Name = "Label_item1", ;
Top = 3
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
PROCEDURE activeaza
If This.linactiv
This.dezactiveaza()
Else
This.Enabled=.T.
This.laBEL_ITEM1.ForeColor=Rgb(255,255,255)
Endif
ENDPROC
PROCEDURE Click
If !This.Enabled
Return
Endif
gcAcces=This.coptiuni_active
This.do_actiune
ENDPROC
PROCEDURE dezactiveaza
This.Enabled=.F.
This.laBEL_ITEM1.ForeColor=Rgb(128,128,128)
ENDPROC
PROCEDURE do_actiune
ENDPROC
PROCEDURE Init
COL_MENU=RGB(255,255,255)
This.BackColor= COL_MENU
This.BackStyle=0
ENDPROC
PROCEDURE MouseEnter
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
This.BackStyle=1
*!* this.BackColor=THIS.BLEUMARIN&&8404992
*!* this.label_item1.ForeColor=THIS.ALB&&16777215
This.BackColor=This.ALB&&8404992
This.label_item1.ForeColor=This.BLEUMARIN&&16777215
*this.CLICK
This.label_item1.MousePointer = 15
This.MousePointer = 15
Endif
ENDPROC
PROCEDURE MouseLeave
Lparameters nButton, nShift, nXCoord, nYCoord
If This.Enabled
*!* this.BackColor=THIS.Parent.BACKCOLOR
*!* *!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
*!* this.label_item1.ForeColor=THIS.ALB
This.BackColor=This.Parent.BackColor
*!* this.label_item1.ForeColor=THIS.BLEUMARIN&&RGB(0,64,128)
This.label_item1.ForeColor=This.ALB
This.BackStyle= 0
This.label_item1.MousePointer = 1
This.MousePointer= 1
Endif
ENDPROC
PROCEDURE Label_item1.Click
this.Parent.click
ENDPROC
ENDDEFINE
DEFINE CLASS imagine AS _image OF "_baza.vcx"
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<DefinedPropArrayMethod>
*m: do_actiune
*p: ccod && Codul container-ului din pageframe corespunzator imaginii.
*p: coptiuni_active && Optiunile active din forma.
*p: nid_img
*p: ntip && 0 - introducere\vizualizare simpla ; 1 - raport; 2 - registru; 3 - balanta\inreg. de parteneri; 4 - vizualizare ; 5 - personalizat
*p: picturedown
*p: pictureup
*</DefinedPropArrayMethod>
*<PropValue>
ccod =
coptiuni_active =
Height = 59
Name = "imagine"
nid_img = 0
ntip = 0
picturedown =
pictureup =
Width = 71
*</PropValue>
PROCEDURE Click
gcAcces=This.coptiuni_active
This.do_actiune()
ENDPROC
PROCEDURE do_actiune
ENDPROC
PROCEDURE Init
This.Picture=This.pictureup
ENDPROC
PROCEDURE MouseEnter
Lparameters nButton, nShift, nXCoord, nYCoord
This.MousePointer= 15
This.Picture=This.pictureDown
ENDPROC
PROCEDURE MouseLeave
Lparameters nButton, nShift, nXCoord, nYCoord
This.MousePointer= 1
This.Picture=This.pictureUp
ENDPROC
ENDDEFINE
DEFINE CLASS pg_meniu AS _pageframe OF "..\..\comun\clase\_baza.vcx"
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
ErasePage = .T.
Height = 173
Name = "pg_meniu"
TabStyle = 1
Page1.BackColor = 255,255,255
Page1.Name = "Page1"
Page2.BackColor = 255,255,255
Page2.Name = "Page2"
*</PropValue>
ENDDEFINE
DEFINE CLASS pg_meniu_princ AS pg_meniu OF "ofundal.vcx"
*< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Page1.Pict_meniu1" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*p: _memberdata && XML Metadata for customizable properties
*</DefinedPropArrayMethod>
*<PropValue>
ErasePage = .T.
Height = 422
Name = "pg_meniu_princ"
PageCount = 2
Width = 401
_memberdata = <VFPData>
</VFPData>
Page1.Caption = "Pagina 1"
Page1.Name = "Page1"
Page2.Caption = "-"
Page2.Enabled = .F.
Page2.Name = "Page2"
*</PropValue>
ADD OBJECT 'Page1.Pict_meniu1' AS pict_meniu WITH ;
Height = 362, ;
Left = 0, ;
Name = "Pict_meniu1", ;
Picture = ..\..\grafice\f2.jpg, ;
Top = 0, ;
Width = 158
*< END OBJECT: ClassLib="ofundal.vcx" BaseClass="image" />
ENDDEFINE
DEFINE CLASS pict_liniuta AS _image OF "_baza.vcx"
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 10
Name = "pict_liniuta"
Picture = ..\grafice\f3.jpg
Stretch = 2
Width = 180
*</PropValue>
ENDDEFINE
DEFINE CLASS pict_meniu AS _image OF "_baza.vcx"
*< CLASSDATA: Baseclass="image" Timestamp="" Scale="Pixels" Uniqueid="" />
*<PropValue>
Height = 362
Name = "pict_meniu"
Picture = ..\grafice\f2.jpg
Stretch = 2
Width = 200
*</PropValue>
ENDDEFINE

18184
clase/ointroduceri.vc2 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,224 @@
*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="ointroduceri_depozit.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS frm_articole_noi AS formtermin OF "_frm_base.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="grdArticole" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cCodBare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cCodBare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cDenumire.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cDenumire.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cCantitate.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cCantitate.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cIdArticol.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="grdArticole.cIdArticol.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="BUT_RENUNT1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modifica2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_LBBASE1" UniqueID="" Timestamp="" />
*<PropValue>
BorderStyle = 1
DoCreate = .T.
Height = 360
Name = "frm_articole_noi"
Width = 491
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 600
_shape2.Left = 441
_shape2.Name = "_shape2"
_shape2.Top = 0
Lb_titlu_alb_b121.Caption = "Articole noi"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
BUT_TERMIN1.Left = 461
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
*</PropValue>
ADD OBJECT '_LBBASE1' AS _lbbase WITH ;
Caption = "Articole pentru care nu s-a gasit codul de bare in baza de date", ;
Left = 13, ;
Name = "_LBBASE1", ;
Top = 37
*< END OBJECT: ClassLib="_lb_base.vcx" BaseClass="label" />
ADD OBJECT 'But_modifica2' AS but_modifica WITH ;
caction = do_modifica, ;
Left = 399, ;
Name = "But_modifica2", ;
Top = 1, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'BUT_RENUNT1' AS but_renunt WITH ;
Left = 432, ;
Name = "BUT_RENUNT1", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'grdArticole' AS _grdbase WITH ;
ColumnCount = 4, ;
DeleteMark = .F., ;
Height = 288, ;
Left = 8, ;
Name = "grdArticole", ;
Panel = 1, ;
ReadOnly = .T., ;
RecordSource = "crsArticoleNoiTemp", ;
Top = 60, ;
Width = 472, ;
Column1.ColumnOrder = 3, ;
Column1.ControlSource = "codbare", ;
Column1.Name = "cCodBare", ;
Column1.ReadOnly = .T., ;
Column1.Width = 135, ;
Column2.ColumnOrder = 2, ;
Column2.ControlSource = "denumire", ;
Column2.Name = "cDenumire", ;
Column2.ReadOnly = .T., ;
Column2.Width = 157, ;
Column3.ColumnOrder = 4, ;
Column3.ControlSource = "cantitate", ;
Column3.Name = "cCantitate", ;
Column3.ReadOnly = .T., ;
Column3.Width = 74, ;
Column4.ColumnOrder = 1, ;
Column4.ControlSource = "id_articol", ;
Column4.Name = "cIdArticol", ;
Column4.ReadOnly = .T., ;
Column4.Width = 66
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'grdArticole.cCantitate.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cantitate", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdArticole.cCantitate.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdArticole.cCodBare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cod bare", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdArticole.cCodBare.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdArticole.cDenumire.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Denumire", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdArticole.cDenumire.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'grdArticole.cIdArticol.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Id articol", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'grdArticole.cIdArticol.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
PROCEDURE do_modifica
Private pcCodBare, pnId
PRIVATE poArticol
pcCodBare = Alltrim(crsArticoleNoiTemp.codbare)
pnId = crsArticoleNoiTemp.id
loArticol = caut_articol() && ocautare.prg
poArticol = loArticol
If !Empty(Nvl(poArticol.id_articol,0))
If Alltrim(Upper(NVL(poArticol.codbare,''))) <> Alltrim(Upper(NVL(crsArticoleNoiTemp.codbare,'')))
lcSql = [update nom_articole set codbare = ?pcCodBare where id_articol = ?poArticol.id_articol]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 0+16, 'Eroare')
Endif
ENDIF
lcSql = [update dep_nir_detalii set id_articol = ?poArticol.id_articol, denumire = ?ALLTRIM(poArticol.denumire) where id = ?pnId]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 0+16, 'Eroare')
Endif
Replace id_articol With poArticol.id_articol, denumire With poArticol.denumire In crsArticoleNoiTemp
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
SELECT crsArticoleNoiTemp
LOCATE FOR EMPTY(NVL(id_articol,0))
IF FOUND()
AMESSAGEBOX('Nu ati identificat toate articolele!',0+48,'Articole')
THIS.grdArticole.SetFocus()
RETURN .F.
ENDIF
RETURN .T.
ENDPROC
PROCEDURE Init
DODEFAULT()
this.grdArticole.SetAll("DynamicBackColor","IIF(NVL(ID_ARTICOL,0) = 0, RGB(160,180,240), RGB(255,255,255))", "Column")
ENDPROC
PROCEDURE grdArticole.AfterRowColChange
LPARAMETERS nColIndex
*!* VERIFIC DACA ARTICOLUL ARE ID_ARTICOL
IF !INLIST(THIS.RowColChange,1,3)
RETURN
ENDIF
IF NVL(crsArticoleNoiTemp.id_articol,0) = 0
THISFORM.DO_MODIFICA()
ENDIF
ENDPROC
ENDDEFINE

11936
clase/ointroduceri_web.vc2 Normal file

File diff suppressed because it is too large Load Diff

12963
clase/oinventar.vc2 Normal file

File diff suppressed because it is too large Load Diff

14942
clase/omodificari.vc2 Normal file

File diff suppressed because it is too large Load Diff

2906
clase/onom_articole.vc2 Normal file

File diff suppressed because it is too large Load Diff

1718
clase/onom_curs.vc2 Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More