Moderator: Moderatoren

PROCEDURE variantenverwaltung(oRouten,oLinien)
LOCAL cHeader := ""
LOCAL cVersion := "14.01.2010"
LOCAL getlist := {}
LOCAL GetOptions
LOCAL nFensterBreite := 100
LOCAL nFensterHoehe := 700
LOCAL nASpalte := 0
LOCAL nAZeile := 0
LOCAL nI := 0
LOCAL nPbBreite := 70
LOCAL nPbHoehe := 30
LOCAL oBrowse := NIL
LOCAL oDialog := NIL
LOCAL oGruppeBrowse := NIL
LOCAL oHaltestellen := haltestellen():new()
LOCAL oPbEnde := NIL
LOCAL oStrecken := strecken():new()
LOCAL oTagesarten := tagesarten():new()
// LOCAL oVarianten := varianten():new()
LOCAL oVariantenkopf := variantenkopf():new()
MEMVAR oHauptDialog
nFensterBreite := oHauptDialog:clientsize[1]
oHaltestellen:db_oeffnen()
oStrecken:db_oeffnen("idroute",,,,,,,,,,,,.T.)
oTagesarten:db_oeffnen()
oVariantenkopf:db_oeffnen("idroute")
(oStrecken:nArea)->(DbSetScope(SCOPE_BOTH,Str((oRouten:nArea)->id,8,0)))
(oVariantenKopf:nArea)->(DbSetScope(SCOPE_BOTH,Str((oRouten:nArea)->id,8,0))) // damit nur die eine Route sichtbar ist
(oVariantenkopf:nArea)->(DbSetRelation(oTagesarten:nArea,{|| Str((oVariantenkopf:nArea)->idtagesart,8,0) },"Str((oVariantenkopf:nArea)->idtagesart,8,0)","id"))
oStrecken:aVarianten := {}
DO WHILE ! (oStrecken:nArea)->(Eof())
IF oHaltestellen:satzsuchen(Str((oStrecken:nArea)->idhaltest,8,0),,"id",,,,,,.F.)
AAdd(oStrecken:aVarianten,{(oHaltestellen:nArea)->bezlang})
nAZeile++
FOR nASpalte := 1 TO 51
AAdd(oStrecken:aVarianten[nAZeile]," ")
NEXT
ENDIF
(oStrecken:nArea)->(Dbskip())
ENDDO
//------------------------------------------------------------------------------
@ 45,5 DCGROUP oGruppeBrowse;
CAPTION "Fahrvarianten Linie: " + Trim((oLinien:nArea)->bez) + " Route: " + Trim((oRouten:nArea)->bez);
PARENT oDialog;
SIZE DCGUI_PARENTWIDTH-20,DCGUI_PARENTHEIGHT-50
//------------------------------------------------------------------------------
oVariantenkopf:skipDb(,,,,.F.,1) // zum Anfang, damit gleich die Spalten erzeugt werden können
@ 15,5 DCBROWSE oBrowse;
DATA oStrecken:aVarianten;
EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN;
FREEZELEFT {1};
HEADLINES 2;
NOSOFTTRACK;
PARENT oGruppeBrowse;
SIZE DCGUI_PARENTWIDTH-15,DCGUI_PARENTHEIGHT-60
DCBROWSECOL ELEMENT 1;
HEADER "Streckenfolge";
PARENT oBrowse;
PROTECT {|| .T.};
WIDTH 170
FOR nI := 2 TO 51 // 50 Spalten werden pauschal gebaut
IF ! (oVariantenKopf:nArea)->(Eof())
cHeader := (oTagesarten:nArea)->bez
ELSE
cHeader := "Variante;" + Alltrim(Str(nI-1))
ENDIF
DCBROWSECOL ELEMENT nI;
HEADER cHeader;
PARENT oBrowse;
VALID {|| validCol(oStrecken,oBrowse) };
WIDTH 50
NEXT
//------------------------------------------------------------------------------
@ 5,5 DCPUSHBUTTON;
ACTION {|| DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)};
ALIGNCAPTION BS_MULTILINE;
CAPTION 7755;
EVAL {|| oPbEnde:setPos( { 5,5 } ) };
OBJECT oPbEnde;
PARENT oGruppeBrowse;
SIZE nPbBreite, nPbHoehe;
TABSTOP
//------------------------------------------------------------------------------
DCGETOPTIONS;
BORDER XBPDLG_SIZEBORDER;
HILITEGETS GRA_CLR_CYAN;
NOMAXBUTTON;
NOMINBUTTON;
PIXEL;
SAYOPTIONS XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT;
TOOLTIPCOLOR GRA_CLR_BLACK, GRA_CLR_YELLOW;
WINDOWWIDTH nFensterBreite;
WINDOWHEIGHT nFensterHoehe
DCREAD GUI;
APPWINDOW oHauptDialog:drawingArea;
EVAL {|| SetAppFocus(oBrowse)};
OPTIONS GetOptions;
PARENT @oDialog;
TITLE "Varianten " + cVersion
(oStrecken:nArea)->(DbClearScope())
(oVariantenKopf:nArea)->(DbClearScope())
(oVariantenkopf:nArea)->(DbClearRelation())
oHaltestellen:schliesse_datenbank()
oStrecken:schliesse_datenbank()
oTagesarten:schliesse_datenbank()
oVariantenkopf:schliesse_datenbank()
RETURN
********************************************************************************
FUNCTION validcol(oStrecken,oBrowse)
IF ! Empty(oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos])
IF ! ":" $ oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos]
oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos] := "33:33" //PosIns(oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos],":",3)
ENDIF
ENDIF
DC_GetBrowArray(oBrowse,oStrecken:aVarianten)
RETURN(.T.)

... VALID {|c| c := validCol(c),.T. }FUNCTION validcol(c)
IF ! Empty(c)
IF ! ":" $ c
c := "33:33"
ENDIF
ENDIF
RETURN(c)


#include "dcdialog.ch"
#include "appevent.ch"
#pragma library("dclipx.lib")
PROCEDURE appsys() ; RETURN
PROCEDURE main()
LOCAL getlist := {}
LOCAL GetOptions
LOCAL oBrowse
aDir := Directory()
@ 1,1 DCBROWSE oBrowse DATA aDir SIZE 100,25 FIT EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN
DCBROWSECOL ELEMENT 1 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 2 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 3 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 4 WIDTH 10 PARENT oBROWSE VALID {|c,o|aDir:=BrowValid(c,o,aDir,oBrowse),.T.}
DCBROWSECOL ELEMENT 5 WIDTH 10 PARENT oBROWSE
DCREAD GUI FIT ADDBUTTONS EVAL {||SetAppFocus(oBrowse)}
RETURN
FUNCTION BrowValid(c,oGet,aDir,oBrowse)
IF !"[" $ c
c := "["+c+"]"
ENDIF
aDir[DC_BrowseRow(oBrowse),4] := c
oGet:SetData(c)
RETURN aDir








FILTER {|a| ! Empty(a[1] ) }







PROCEDURE MAIN()
LOCAL GetList := {}
LOCAL c := Space(30)
@ 1,1 DCSAY "Name:" GET c VALID {|a,b,c,d,e,f|DC_DebugQout(a,b,c,d,e,f),.T.}
DCREAD GUI FIT ADDBUTTONS
RETURN




DCBROWSECOL FIELD (oVarianten&cNi:nArea)->abfahrt;
HEADER cHeader;
PARENT oBrowse;
PICTURE "@R 99:99";
VALID {|a,b,c,d,e,f,g,h,i,j,k,l| DC_DebugQout( {a,b,c,d,e,f,g,h,i,j,k,l} ) };
WIDTH 60

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast