adordd

Moderator: Enrico Maria Giordano

Post Reply
User avatar
Lisa Giordano
Posts: 25
Joined: Wed Jul 09, 2008 5:56 pm

adordd

Post by Lisa Giordano »

Ho provato ha compilare "access1.prg e adordd.prg" con brmake ma mi da errore nella lib usrrdd.
Ho tentato con buildx ma non ho capito come indicare i 2 prg, potresti darmi qualche dritta.
Grazie
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Lisa,

Modifica buildx.bat de esta forma:

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /w /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE

%hdir%\bin\harbour adordd.prg /n /i..\include;%hdir%\include /w /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include adordd.c > b32.bc
%bcdir%\bin\bcc32 -M -c -v @b32.bc
:ENDCOMPILE

IF EXIST %1.rc %bcdir%\bin\brc32 -r %1

echo c0w32.obj + > b32.bc
echo %1.obj adordd.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Lisa Giordano
Posts: 25
Joined: Wed Jul 09, 2008 5:56 pm

Adordd

Post by Lisa Giordano »

Grazie Antonio, ho compilato è funziona benissimo.
Se ho ben capito comunque invece di utilizzare adordd.prg etc... potrei tranquillamente usare le instruzioni in modi diretto ad esempio:

// MySample 1

#include "Fivewin.ch"

FUNCTION MAIN()

LOCAL oRs, oErr
LOCAL t

oRs = CREATEOBJECT( "ADODB.Recordset" )

TRY
oRS:Open( "SELECT * FROM Autori", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access3.mdb", 1, 3 )
CATCH oErr
? oErr:Description
RETURN NIL
END TRY

Use Libri Shared New

While !oRs:Eof
Append Blank
Replace Autore With oRs:Fields( "Autore" ):Value
oRs:MoveNext()
Enddo

oRs:AddNew()
oRs:Fields("Autore"):Value := "Virgilio"
oRs:Update()

oRs:Close()

RETURN NIL



// My Sample 2

#include "Fivewin.ch"

FUNCTION MAIN()

LOCAL oRs, oErr
LOCAL t

oRs = CREATEOBJECT( "ADODB.Recordset" )

TRY
oRS:Open( "SELECT * FROM Autori", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Access3.mdb", 1, 3 )
CATCH oErr
? oErr:Description
RETURN NIL
END TRY

For t:=1 to oRs:RecordCount()
oRs:AbsolutePosition:=t
MsgInfo(str(t)+" "+oRs:Fields("Autore"):Value)
Next t

oRs:Close()

RETURN NIL


Con l'occasione approfitto per chiederti se è possilbile cambiare il testo di una singola cella con listbox.
Esempio ho una lista di nominativi con i giorni del mese, e vorrei che la P di presente fosse Verde la M di Malattia Rossa Etc...

Ti ringrazio per l'aiuto precedente (Adordd)
Sei Grande

Grazie sei grande :lol: :lol:
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Lisa,

Te refieres a un listbox ó a un browse ?

Do you mean a listbox or a browse ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Lisa Giordano
Posts: 25
Joined: Wed Jul 09, 2008 5:56 pm

Listbox

Post by Lisa Giordano »

Questo è una parte dell codice che ho scritto:

DEFINE FONT oFont NAME "Courier New" SIZE 0,-12

DEFINE DIALOG oDlg FROM 3, 3 TO 38,125 TITLE "Presenze"

@ 4.5, 1 LISTBOX oLbx FIELDS aFile[ oLbx:nAt ][ 1 ],;
aFile[ oLbx:nAt ][ 2 ],;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 3 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 4 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 5 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 6 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 7 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 8 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][ 9 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][10 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][11 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][12 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][13 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][14 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][15 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][16 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][17 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][18 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][19 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][20 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][21 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][22 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][23 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][24 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][25 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][26 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][27 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][28 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][29 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][30 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][31 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][32 ])),;
ReadBitmap( 0, ColoraPresenze(aFile[ oLbx:nAt ][33 ]));
HEADERS "Codice","Nominativo","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31";
FIELDSIZES 40,150,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20;
SIZE 415, 180;
ON DBLCLICK( Edit_Dipendenti(.F. ,aFile[ oLbx:nAt ][1] ),oLbx:Refresh());
OF oDlg

// ------------------------------------------------------------------------

FUNCTION ColoraPresenze(var)
LOCAL Colore:=""

If Var="P"
Colore:="System\Presente.Bmp"
Elseif Var="A"
Colore:="System\Assente.Bmp"
Elseif Var="M"
Colore:="System\Malattia.Bmp"
Elseif Var="F"
Colore:="System\Ferie.Bmp"
Elseif Var="R"
Colore:="System\Riposo.Bmp"
Endif
RETURN (Colore)

// ------------------------------------------------------------------------

Vorrei sostituire Readbitmap colorando direttamente il carattere che identifica la presenza (P=Verde ) dalla malattia (M=Rosso).

Spero di essere stata un pò più chiara.
Saluti Lisa
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Lisa,

Estas usando un browse.

No debes llamar a ReadBitmap() desde cada línea, pues estas creando muchísimos handles a bitmaps y consumes mucha memoria GDI.

Lo más sencillo es hacerlo asi:

Code: Select all

@ 4.5, 1 LISTBOX oLbx FIELDS aFile[ oLbx:nAt ][ 1 ],; 
aFile[ oLbx:nAt ][ 2 ], "", "", "", "", "", "", ...

oLbx:nClrPane = { | nCol | SelectColor( nCol ) }

...

function SelectColor( nCol )

   do case
        case nCol == 2
                return CLR_HGREEN

        case nCol == 3
                return CLR_HRED

        case nCol == 4
                return CLR_YELLOW
...
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Lisa Giordano
Posts: 25
Joined: Wed Jul 09, 2008 5:56 pm

Colora celle

Post by Lisa Giordano »

Ciao Antonio, non ho capito come posso cambiare il colore della cella con l'esempio che mi hai inviato, probabilmente mi sono spiegata male.

____________________________________________________________
Nome |01|02|03|04|05|06|07|.......
------------------------------------------------------------------------------------
Lisa | P| P| M| F| P| P| P|.......
------------------------------------------------------------------------------------
Antonio | F| P| P| F| P| P| M|.......
------------------------------------------------------------------------------------

P=Verde
F=Nero
M=Rosso

Spero di essermi spiegata meglio

Ciao
[/img]c:\presenze.bmp[/img]
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Lisa,

Mi código era solo un ejemplo. No lo he probado aqui.

Modifícalo para que use los colores que tu necesites.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply