Sort und Spalte verschieben in Browse
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Sort und Spalte verschieben in Browse
Hi,
gerade habe ich in einem Arraybrowse Spalten verschoben und mußte feststellen, das danach die SORT Option nicht mehr klappt. Wie bekommt man die denn nach einem MOVE der jeweiligen Spalte wieder aktiviert? Gibt es da irgendeine Funktion, oder so, die den SORT wieder aktiviert?
Die Headerfarbe ändert sich danach auch, aber das dürfte kein Problem sein dass wieder auf den Vorherzustand zu setzen.
gerade habe ich in einem Arraybrowse Spalten verschoben und mußte feststellen, das danach die SORT Option nicht mehr klappt. Wie bekommt man die denn nach einem MOVE der jeweiligen Spalte wieder aktiviert? Gibt es da irgendeine Funktion, oder so, die den SORT wieder aktiviert?
Die Headerfarbe ändert sich danach auch, aber das dürfte kein Problem sein dass wieder auf den Vorherzustand zu setzen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Nach dem Verschieben liefert oBrowse:ColPos für die Spalte einen anderen Wert zurück, aber im Array ist sie immer noch an derselben Stelle.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Das heißt ich müßte mal in Erinnerungen kramen und diese Funktion aufrufen, die das Array aktualisiert? Oder war das Augenzwinkern anders gemeint?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Schau Dir mal den SORT-Codeblock an. Der bekommt als Parameter vermutlich die Nummer der Spalte. Wenn man jetzt eine Spalte verschiebt, bleibt das Array aber trotzdem dasselbe. Wenn also Spalte 2 bisher auch nach Arrayspalte 2 sortiert hat und jetzt an Position 3 wandert, sortiert sie nach Arrayspalte 3, obwohl sie immer noch Arrayspalte 2 anzeigt.
Etwas Code würde, wie immer, helfen.
Etwas Code würde, wie immer, helfen.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
Code, ja Du hast Recht, aber ich dachte zunächst, ich hätte nur irgendeine Funktion übersehen und das wäre es. Aber hier der gewünschte Code
Code, ja Du hast Recht, aber ich dachte zunächst, ich hätte nur irgendeine Funktion übersehen und das wäre es. Aber hier der gewünschte Code
Code: Alles auswählen
PROCEDURE vodruck()
// Felder des Array
// Feld, Header,Browse,Folge,Breite
LOCAL aDaten := {;
{"(oVo:nArea)->datumein" ,"Erfass;Datum" ,.T., 1,70},;
{"(oVo:nArea)->ean" ,"Ean-8" ,.T., 2,70},;
{"IF((oVo:nArea)->internetno,'JA',' ')" ,"I-Net;Sp" ,.T., 3,10},;
{"(oVo:nArea)->lagerbs" ,"BS" ,.T., 4,30},;
{"(oVo:nArea)->lagernr" ,"Platz" ,.T., 5,50},;
{"(oVo:nArea)->preisinet" ,"Vk;Inet" ,.T., 6,50},;
{"(oVo:nArea)->preissoll" ,"Vk;Soll" ,.T., 7,50},;
{"(oVo:nArea)->preisek" ,"Preis;Ek" ,.T., 8,50},;
{"IF((oVo:nArea)->reserve,'JA',' ')" ,"UL" ,.T., 9,20},;
{"(oVostamm:nArea)->datumgestr" ,"Streich;Datum" ,.T.,10,70},;
{"(oVostamm:nArea)->datumvoe" ,"VÖ;Datum" ,.T.,11,70},;
{"(oVostamm:nArea)->fsk" ,"FSK" ,.T.,12,10},;
{"(oVostamm:nArea)->hap" ,"HAP" ,.T.,13,50},;
{"IF((oVostamm:nArea)->indiziert,'JA',' ')" ,"Indiz;iert" ,.T.,14,10},;
{"(oVostamm:nArea)->vkgbr" ,"VK;GBR" ,.T.,15,40},;
{"(oVostamm:nArea)->vkneu" ,"VK;NEU" ,.T.,16,40},;
{"TokenUpper(oVo:indexohneartikel((oVostamm:nArea)->v_darstell))","Interpret;Darsteller",.T.,17,200},;
{"TokenUpper(oVo:indexohneartikel((oVostamm:nArea)->v_titel))" ,"Titel" ,.T.,18,200},;
{"(oEan13:nArea)->ean" ,"EAN-13" ,.T.,19,85},;
{"Transform(Date() - (oVo:nArea)->datumein + 1,'9999')" ,"Lager;Tage" ,.T.,20,40},;
{"(oGenre:nArea)->bez" ,"Genre" ,.T.,21,150},;
{"(oSysteme:nArea)->kuerzel" ,"SYS" ,.T.,22,40},;
{"(oSysteme:nArea)->bez" ,"System" ,.T.,23,150};
}
LOCAL aVo := {}
LOCAL cVersion := "23.07.2010"
LOCAL getlist := {}
LOCAL GetOptions
LOCAL nFensterBreite
LOCAL nFensterHoehe
LOCAL nI
LOCAL nMenge
LOCAL nPbLaenge := 70
LOCAL oBrowse := NIL
LOCAL oDialog := NIL
LOCAL oDialogBrowse := NIL
LOCAL oDialogProgress := NIL
LOCAL oGruppeBrowse := NIL
LOCAL oGruppeButton := NIL
LOCAL oPbEnde := NIL
LOCAL oPbLinks := NIL
LOCAL oPbRechts := NIL
LOCAL oProgress := NIL
MEMVAR oGenre
MEMVAR oHauptDialog
MEMVAR oMessage
MEMVAR oSysteme
MEMVAR oVo
MEMVAR oVostamm
MEMVAR oEan13
nFensterBreite := oHauptDialog:clientsize[1]
nFensterHoehe := oHauptDialog:clientsize[2]
//------------------------------------------------------------------------------
oEan13 := ean13():new()
oGenre := genre():new()
oSysteme := systeme():new()
oVo := kassette():new()
oVostamm := fstamm():new()
oEan13:db_oeffnen(,,,,,,,,,,,,,.F.)
oGenre:db_oeffnen(,,,,,,,,,,,,,.F.)
oSysteme:db_oeffnen(,,,,,,,,,,,,,.F.)
oVo:db_oeffnen(,,,,.T.,,,,,,,,,.F.)
oVostamm:db_oeffnen(,,,,,,,,,,,,,.F.)
(oVo:nArea)->(DbSetRelation(oVostamm:nArea ,{|| Str((oVo:nArea)->idvostamm,8,0) } ,"Str((oVo:nArea)->idvostamm,8,0)" ,"id" ) )
(oVostamm:nArea)->(DbSetRelation(oEan13:nArea ,{|| Str((oVostamm:nArea)->id,8,0) } ,"Str((oVostamm:nArea)->id,8,0)" ,"idvostamm" ))
(oVostamm:nArea)->(DbSetRelation(oGenre:nArea ,{|| Str((oVostamm:nArea)->idgenre,8,0) } ,"Str((oVostamm:nArea)->idgenre,8,0)" ,"id" ))
(oVostamm:nArea)->(DbSetRelation(oSysteme:nArea,{|| Str((oVostamm:nArea)->idsystem,8,0) },"Str((oVostamm:nArea)->idsystem,8,0)","id" ))
//------------------------------------------------------------------------------
oDialogProgress := DialogFenster():new(AppDesktop(),SetAppWindow(),,{610,60},,,.F.)
oProgress := ProgressBar():new(oDialogProgress,,{ oDialogProgress:currentsize()[1]-10,24 },,.F.)
oDialogProgress:title := "Datenerzeugung VO-Druck..."
oDialogProgress:create()
oProgress:create()
oProgress:minimum := 1
oProgress:maximum := (oVo:nArea)->(LastRec())
oProgress:color := GRA_CLR_GREEN
(oVo:nArea)->(DbEval( { || fuelleVOArray(aVo,aDaten),oProgress:increment() }) )
oProgress:quit()
oDialogProgress:destroy()
(oVo:nArea)->(DbClearRelation())
(oVostamm:nArea)->(DbClearRelation())
oVo:schliesse_datenbank(.T.)
//------------------------------------------------------------------------------
@ 5,1 DCSTATIC;
OBJECT oDialogBrowse;
SIZE DCGUI_PARENTWIDTH,DCGUI_PARENTHEIGHT;
TYPE XBPSTATIC_TYPE_RECESSEDRECT
//------------------------------------------------------------------------------
@ 10,5 DCGROUP oGruppeBrowse;
CAPTION "VO-Auswahl";
PARENT oDialogBrowse;
SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT - 65
@ 0,0 DCGROUP oGruppeButton;
EVAL {|| oGruppeButton:setPos( {5,5} ) };
PARENT oDialogBrowse;
SIZE DCGUI_PARENTWIDTH-10,50
//------------------------------------------------------------------------------
@ 15,5 DCBROWSE oBrowse;
DATA aVo;
HEADLINES 2;
OPTIMIZE;
PARENT oGruppeBrowse;
SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT - 20
nMenge := Len(aDaten)
FOR nI := 1 TO nMenge
IF aDaten[nI][3]
DCBROWSECOL ELEMENT nI;
HEADER aDaten[nI][2];
PARENT oBrowse;
SORT {|aPos,nColPos,self| Spaltensortierung(aVo,nColPos,oBrowse) };
WIDTH aDaten[nI,5]
ENDIF
NEXT
//------------------------------------------------------------------------------
@ 0,0 DCPUSHBUTTON;
ACTION {|| MoveColumn(1,oBrowse),DC_GETREFRESH(GetList) };
CAPTION "<- Links";
EVAL {|| oPbLinks:setPos( {5,5} ) };
OBJECT oPbLinks;
PARENT oGruppeButton;
SIZE nPbLaenge,DCGUI_PARENTHEIGHT - 20;
WHEN {|| oBrowse:colpos > 1}
@ 0,0 DCPUSHBUTTON;
ACTION {|| MoveColumn(2,oBrowse),DC_GETREFRESH(GetList) };
CAPTION "Rechts ->";
EVAL {|| oPbRechts:setPos( {oPbLinks:currentpos()[1] + oPbLinks:currentsize()[1],5} ) };
OBJECT oPbRechts;
PARENT oGruppeButton;
SIZE nPbLaenge,DCGUI_PARENTHEIGHT - 20;
WHEN {|| oBrowse:colpos < oBrowse:ColCount }
@ 0,0 DCPUSHBUTTON;
ACTION {|| DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList) };
CAPTION 7755;
EVAL {|| oPbEnde:setPos( {oPbRechts:currentpos()[1] + oPbRechts:currentsize()[1],5} ) };
OBJECT oPbEnde;
PARENT oGruppeButton;
SIZE nPbLaenge,DCGUI_PARENTHEIGHT - 20
//------------------------------------------------------------------------------
DCGETOPTIONS;
BORDER XBPDLG_SIZEBORDER;
NOMAXBUTTON;
NOMINBUTTON;
PIXEL;
WINDOWWIDTH nFensterBreite;
WINDOWHEIGHT nFensterHoehe
DCREAD GUI;
APPWINDOW oHauptDialog:drawingArea;
OPTIONS GetOptions;
PARENT @oDialog;
TITLE "VO-Druck " + cVersion
RETURN
********************************************************************************
FUNCTION fuelleVOArray(aVo,aDaten)
LOCAL aErgebnis := AClone(aDaten)
LOCAL cFeld := Aeval( aErgebnis, {|a| a := &(a[1]) },,, .T. )
AAdd(aVo, cFeld)
RETURN(.T.)
********************************************************************************
FUNCTION spaltenSortierung(aVo,nCol)
aVo := ASort(aVo,,,{|x,y|x[nCol] < y[nCol] } )
RETURN(.T.)
********************************************************************************
FUNCTION MoveColumn(nMode,oBrowse)
LOCAL nPos := oBrowse:colPos
LOCAL oColumn := oBrowse:getColumn(nPos)
LOCAL aSize := oColumn:currentSize()
oBrowse:delColumn(nPos)
IF nMode = 1
oBrowse:insColumn(nPos-1,oColumn)
oBrowse:left()
ELSE
oBrowse:insColumn(nPos+1,oColumn)
oBrowse:right()
ENDIF
oColumn:setSize(aSize)
oBrowse:forceStable()
RETURN(.T.)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Hier:
rufst Du Deine Funktion "Spaltensortierung" auf, die das Array nach "nColPos" sortiert, und nColPos ist die Position der Spalte im Browse. Diese entspricht beim Aufbau des Browses auch der Position im Array, aber nach dem Verschieben nicht mehr.
Du könntest der Spalte im Cargo-Slot die Nummer der Arrayspalte zuordnen und das dann im SORT-Codeblock benutzen:
Code: Alles auswählen
SORT {|aPos,nColPos,self| Spaltensortierung(aVo,nColPos,oBrowse) }
Du könntest der Spalte im Cargo-Slot die Nummer der Arrayspalte zuordnen und das dann im SORT-Codeblock benutzen:
Code: Alles auswählen
DCBROWSECOL ... CARGO nI SORT {|aPos,nColPos,self| Spaltensortierung(aVo,self:Cargo[3],oBrowse) }
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hm,
ich habe es so gemacht
self:cargo[3] übergibt aber NIL an die Empfänger Funktion. Das wirft jetzt doch ein paar Fragen auf.
ich habe es so gemacht
Code: Alles auswählen
FOR nI := 1 TO nMenge
IF aDaten[nI][3]
DCBROWSECOL ELEMENT nI;
CARGO nI;
HEADER aDaten[nI][2];
PARENT oBrowse;
SORT {|aPos,nColPos,self| Spaltensortierung(aVo,self:cargo[3],oBrowse) };
WIDTH aDaten[nI,5]
ENDIF
NEXT
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Versuch's mal so anstelle von self:cargo[3]:
Code: Alles auswählen
oBrowse:GetColumn(oBrowse:ColPos):Cargo[3]
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Nee,
das kann so nicht klappen, weil ja dann immer die Spalte übergeben wird, in der der Cursor gerade steht und nicht die Spalte, in der der Header gerade gedrückt wurde. Aber das kommt mir irgendwie bekannt vor von einer anderen Sache. Ich meine, da muß man anders vorgehen.
das kann so nicht klappen, weil ja dann immer die Spalte übergeben wird, in der der Cursor gerade steht und nicht die Spalte, in der der Header gerade gedrückt wurde. Aber das kommt mir irgendwie bekannt vor von einer anderen Sache. Ich meine, da muß man anders vorgehen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Sort und Spalte verschieben in Browse
du willst es scheinbar in der Sort Function "korrigieren" ... ich würde das schon in der Function MoveColumn() machen.Manfred hat geschrieben:gerade habe ich in einem Arraybrowse Spalten verschoben und mußte feststellen, das danach die SORT Option nicht mehr klappt.
wie Tom schon sagte
ansehen ob es da einen "Index" für das Array gibt und es in MoveColumn() "korrigeren"SORT-Option
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi,
es ging/geht mir auch in erster Linie nur erstmal darum, ob Roger evtl. etwas dafür vorgesehen hat, was ich übersehen habe, deshalb habe ich gefragt.
Jetzt muß ich dann mal schauen, ob ich irgendwas in der Move Funktion finde (im Debugger) was mir weiterhelfen könnte. Das ist aber auch blöde, ich habe überhaupt nicht richtig verstanden was da überhaupt intern alles passiert, wenn ein Array gebrowst wird. Wie das Original gespeichert/verwaltet wird, was dann mit der Änderung wie läuft, oder laufen muß.
es ging/geht mir auch in erster Linie nur erstmal darum, ob Roger evtl. etwas dafür vorgesehen hat, was ich übersehen habe, deshalb habe ich gefragt.
Jetzt muß ich dann mal schauen, ob ich irgendwas in der Move Funktion finde (im Debugger) was mir weiterhelfen könnte. Das ist aber auch blöde, ich habe überhaupt nicht richtig verstanden was da überhaupt intern alles passiert, wenn ein Array gebrowst wird. Wie das Original gespeichert/verwaltet wird, was dann mit der Änderung wie läuft, oder laufen muß.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Im :LbClick- oder :RbClick-Block von oColumn:Heading kannst Du den Wert setzen, der dann an die Sortierung übergeben wird.
und in der Sortierungsfunktion wird dann auf "nSortColumn" zugegriffen - und nicht mehr auf ":ColPos" oder derlei.
Code: Alles auswählen
nSortColumn := 1
...
bColumnClick := {||nSortColumn := o:Cargo[3]}
DCBROWSECOLUMN ELEMENT 1 ... EVAL {|o|o:Heading:LbClick := bColumnClick,o:Heading:RbClick := bColumnClick} ... CARGO nI
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
da ich jetzt überhaupt nicht verstehe, was Du da gemacht hast, knallt es natürlich bei der Umsetzung.
"o" ist nicht bekannt (wo muß denn überhaupt der Codeblock rein, wenn er gesetzt wird um "o" zu kennen? Oder müßten da noch Klammern und ein Makrooperator rein?)
da ich jetzt überhaupt nicht verstehe, was Du da gemacht hast, knallt es natürlich bei der Umsetzung.
"o" ist nicht bekannt (wo muß denn überhaupt der Codeblock rein, wenn er gesetzt wird um "o" zu kennen? Oder müßten da noch Klammern und ein Makrooperator rein?)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Hallo, Manfred.
Ich habe leider keine Zeit, mich ausgiebig damit zu beschäftigen. Hier ist ein kleines Beispiel, das noch nicht ganz funktioniert, Dir aber zeigen dürfte, worauf ich hinauswill. Einfach kompilieren und mit /PM:PM linken.
Ich habe leider keine Zeit, mich ausgiebig damit zu beschäftigen. Hier ist ein kleines Beispiel, das noch nicht ganz funktioniert, Dir aber zeigen dürfte, worauf ich hinauswill. Einfach kompilieren und mit /PM:PM linken.
Code: Alles auswählen
#include "dcdialog.ch"
#pragma library("dclipx.lib")
PROCEDURE appsys() ; RETURN
procedure main()
local GetList := {}, oBrowse, aDir := Directory()
nSortColumn := 1
bSort := {||aDir := MySort(aDir,nSortColumn)}
bColumnClick := {|a,b,o|nSortColumn := o:SetParent():Cargo[3],DC_DebugQout(nSortColumn)}
bEval := {|o|o:Heading:LbClick := bColumnClick,o:Heading:RbClick := DC_MergeBlocks(bColumnClick,o:Heading:RbClick)}
@ 1,1 DCBROWSE oBrowse DATA aDir SIZE 100,20 RBSELECT
DCBROWSECOL ELEMENT 1 HEADER 'Name' WIDTH 10 PARENT oBrowse CARGO 1 EVAL bEval SORT bSort
DCBROWSECOL ELEMENT 2 HEADER 'Größe' WIDTH 10 PARENT oBrowse CARGO 2 EVAL bEval SORT bSort
DCBROWSECOL ELEMENT 3 HEADER 'Datum' WIDTH 10 PARENT oBrowse CARGO 3 EVAL bEval SORT bSort
DCBROWSECOL ELEMENT 4 HEADER 'Zeit' WIDTH 10 PARENT oBrowse CARGO 4 EVAL bEval SORT bSort
DCBROWSECOL ELEMENT 5 HEADER 'Attribs' WIDTH 10 PARENT oBrowse CARGO 5 EVAL bEval SORT bSort
DCBROWSECOL ELEMENT 6 HEADER 'Erw.Attr.' WIDTH 10 PARENT oBrowse CARGO 6 EVAL bEval SORT bSort
@ 21,1 DCPUSHBUTTON CAPTION 'Links' SIZE 10,1 ACTION {||MoveColumn(1,oBrowse),DC_GetRefresh(GetList)} ;
WHEN {||oBrowse:ColPos > 1}
@ 21,15 DCPUSHBUTTON CAPTION 'Rechts' SIZE 10,1 ACTION {||MoveColumn(2,oBrowse),DC_GetRefresh(GetList)} ;
WHEN {||oBrowse:ColPos < 6}
DCREAD GUI FIT ADDBUTTONS
return
STATIC FUNCTION MySort(aDir,nCol)
ASort( aDir,,,{|aY1,aY2| aY1[nCol] < aY2[nCol]})
RETURN aDir
STATIC FUNCTION MoveColumn( nMode, oBrowse )
* aus Rogers Beispielen
LOCAL oColumn, nPos, aFrozen, aSize, oHeading
aFrozen := oBrowse:setLeftFrozen({})
nPos := oBrowse:colPos
oColumn := oBrowse:getColumn(nPos)
aSize := oColumn:currentSize()
oBrowse:delColumn(nPos)
IF nMode = 1
oBrowse:insColumn(nPos-1,oColumn)
oBrowse:left()
ELSE
oBrowse:insColumn(nPos+1,oColumn)
oBrowse:right()
ENDIF
oColumn:setSize(aSize)
oBrowse:forceStable()
oBrowse:setLeftFrozen(aFrozen)
RETURN nil
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
es klappt nicht. Es gibt zwar keine Fehlermeldungen, aber die Sortiererei und das Verschieben der Spalten verursacht ein totales Chaos. Nach dem Verschieben klappt keine Spalte mehr wirklich richtig. Ich lass es und löse das Problem erstmal anders. Solange, bis ich evtl. durchblicke, was da so alles passiert intern.
Danke trotzdem für Deine Hilfe.
es klappt nicht. Es gibt zwar keine Fehlermeldungen, aber die Sortiererei und das Verschieben der Spalten verursacht ein totales Chaos. Nach dem Verschieben klappt keine Spalte mehr wirklich richtig. Ich lass es und löse das Problem erstmal anders. Solange, bis ich evtl. durchblicke, was da so alles passiert intern.
Danke trotzdem für Deine Hilfe.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
was passiert denn überhaupt intern, wenn ein Array gebrowst wird? Wo wird der Codeblock für den Sort im Browse untergebracht?
Es muß doch irgendwie möglich sein, irgendwo das Array im Browse zu finden.
Die Spalten zu verschieben/löschen/einfügen scheint ja kein Problem zu sein, aber was passiert denn dann intern und warum kommt der Browser durcheinander, wenn diese Kombination wie oben zusammentreffen.
Es muß doch irgendwie möglich sein, irgendwo das Array im Browse zu finden.
Die Spalten zu verschieben/löschen/einfügen scheint ja kein Problem zu sein, aber was passiert denn dann intern und warum kommt der Browser durcheinander, wenn diese Kombination wie oben zusammentreffen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Hallo, Manfred.
Den Codeblock für das Sort bringt Roger in der entsprechenden iVar seiner DC_XbpColumn-Klasse unter. (Bau einfach mal einen Button ein, der DC_InspectObject(oBrowse:GetColumn(1)) oder so macht).
Zugriff auf den Arraypointer hast Du über die iVar oBrowse:DataSource. "oBrowse:DataSource[1,1]" sollte immer dasselbe wie "aArray[1,1]" zurückliefern (DC_ArrayView(oBrowse:DataSource) zeigt das Array an). DC_GetBrowArray(o,a) (a = Array, o = Browse-Objekt) setzt den Pointer auf das Array neu, was nötig ist, wenn das Array neu entstanden ist (aber nicht, wenn das ursprüngliche Array direkt verändert wurde - allerdings schadet es auch nicht).
Den Codeblock für das Sort bringt Roger in der entsprechenden iVar seiner DC_XbpColumn-Klasse unter. (Bau einfach mal einen Button ein, der DC_InspectObject(oBrowse:GetColumn(1)) oder so macht).
Zugriff auf den Arraypointer hast Du über die iVar oBrowse:DataSource. "oBrowse:DataSource[1,1]" sollte immer dasselbe wie "aArray[1,1]" zurückliefern (DC_ArrayView(oBrowse:DataSource) zeigt das Array an). DC_GetBrowArray(o,a) (a = Array, o = Browse-Objekt) setzt den Pointer auf das Array neu, was nötig ist, wenn das Array neu entstanden ist (aber nicht, wenn das ursprüngliche Array direkt verändert wurde - allerdings schadet es auch nicht).
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
das mit dem :dataSource hatte ich schon gefunden. Ich habe versucht das ganze Vorgehen zu Debuggen. Was ich aber nicht so ganz verstanden habe ist, ob DataSource jetzt von Roger ist, oder ob es überlagert wird. Allerdings kann ich in der Xbase Anleitung nichts dazu finden, sodass sich mein Eindruck verstärkt, das es von Roger ist? Aber wie wird es dann im puren Xbase++ geregelt?
das mit dem :dataSource hatte ich schon gefunden. Ich habe versucht das ganze Vorgehen zu Debuggen. Was ich aber nicht so ganz verstanden habe ist, ob DataSource jetzt von Roger ist, oder ob es überlagert wird. Allerdings kann ich in der Xbase Anleitung nichts dazu finden, sodass sich mein Eindruck verstärkt, das es von Roger ist? Aber wie wird es dann im puren Xbase++ geregelt?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16509
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Moin Manfred,
Viele Grüße,
Martin
um so etwas zu sehen, ist es grundsätzlich sinnvoll, sich die .ppo-Dateien anzuschauen - also einfach mal entsprechend kompilierenManfred hat geschrieben:Aber wie wird es dann im puren Xbase++ geregelt?
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Die .PPO wird kaum helfen, da stehen nur lauter aAdd(GetList,......) drin. In der DCDIALOG.CH kann man sich das auch ohne .PPO anschauen.
Die Klasse DC_XbpBrowse ist der _DCXBROW.PRG im eXpress-Quellcode-Verzeichnis (..\Source\Dclipx) zu finden. Ja, ataSource ist eine von Roger eingeführte iVar. Und, ja, das ist alles "plain Xbase++".
Die Klasse DC_XbpBrowse ist der _DCXBROW.PRG im eXpress-Quellcode-Verzeichnis (..\Source\Dclipx) zu finden. Ja, ataSource ist eine von Roger eingeführte iVar. Und, ja, das ist alles "plain Xbase++".
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
wieder falsch verstanden, oder von mir falsch rüber gebracht. Das das plain xbase ist, das ist mir schon klar. Ich meinte nur, ob es eine reine Erweiterung von Roger ist, oder ob das auch unter XbpBrowse zur Verfügung steht, bzw. denke ich die ganze Zeit darüber nach, wie man sowas nun intern regeln und aktualisieren kann, damit mein Wunsch (siehe oben) durchgeführt werden kann.
wieder falsch verstanden, oder von mir falsch rüber gebracht. Das das plain xbase ist, das ist mir schon klar. Ich meinte nur, ob es eine reine Erweiterung von Roger ist, oder ob das auch unter XbpBrowse zur Verfügung steht, bzw. denke ich die ganze Zeit darüber nach, wie man sowas nun intern regeln und aktualisieren kann, damit mein Wunsch (siehe oben) durchgeführt werden kann.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
oBrowse:DataSource ist ein Pointer auf Dein Array - und Dein Array ist immer noch dasjenige, das gebrowst wird. Wenn Du das Array aber strukturell änderst oder z.B. in einer Funktion neu erzeugst, kann es Abweichungen geben (nicht allerdings durch bloßes Sortieren). Dafür gibt es dann DC_GetBrowArray - wenn Du also z.B. irgendwo einen Button hast, der sowas macht:
aMyArray wird dann zum Pointer auf "a". Hier muss DC_GetBrowArray(o,a) ausgeführt werden, damit der Pointer aktualisiert wird. Die Funktion macht schlicht das hier:
Der Pointer wird zusätzlich in :Cargo[5] gespeichert.
Ein "reines" Xbase-Arraybrowse arbeitet mit den Datalink-Codeblöcken der Spalten und mit entsprechenden Navigationscodeblöcken. Es enthält - jedenfalls standardmäßig - ansonsten keine iVar, die einen Pointer auf die Datenquelle verfügt.
Code: Alles auswählen
aMyArray := NeuesArray(aMyArray)
FUNCTION NeuesArray(a)
aSize(a,0)
a := Directory()
RETURN a
Code: Alles auswählen
oBrowse:DataSource := a
Ein "reines" Xbase-Arraybrowse arbeitet mit den Datalink-Codeblöcken der Spalten und mit entsprechenden Navigationscodeblöcken. Es enthält - jedenfalls standardmäßig - ansonsten keine iVar, die einen Pointer auf die Datenquelle verfügt.
Herzlich,
Tom
Tom
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9358
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Sort und Spalte verschieben in Browse
Hallo, Manfred.
Ich habe gerade zwei Dinge herausgefunden. Erstens: DC_XbpBrowse verfügt über eine Methode "MoveColumn", die viel mehr erledigt als die im Beispiel. Mit dieser Funktion bleiben auch die Header usw. erhalten. Und zweitens: Es gibt eine iVar "SortColumn" in DC_XbpBrowse. Diese muss man überschreiben, damit das ganze funktioniert. In diesem Beispiel klappt es jetzt:
Ich habe gerade zwei Dinge herausgefunden. Erstens: DC_XbpBrowse verfügt über eine Methode "MoveColumn", die viel mehr erledigt als die im Beispiel. Mit dieser Funktion bleiben auch die Header usw. erhalten. Und zweitens: Es gibt eine iVar "SortColumn" in DC_XbpBrowse. Diese muss man überschreiben, damit das ganze funktioniert. In diesem Beispiel klappt es jetzt:
Code: Alles auswählen
#include "dcdialog.ch"
#pragma library("dclipx.lib")
PROCEDURE appsys() ; RETURN
procedure main()
local GetList := {}, oBrowse, aDir := Directory()
nSortColumn := 1
bSort := {|a,n|MySort(aDir,nSortColumn)}
bColumnClick := {|a,b,o|nSortColumn := o:Parent:Cargo[3],oBrowse:SortColumn := nSortColumn}
bEval := {|o|o:Heading:LbClick := bColumnClick,o:Heading:RbClick := bColumnClick}
@ 1,1 DCBROWSE oBrowse DATA aDir SIZE 100,20 RBSELECT NODESCENDTOGGLE
DCBROWSECOL DATA {||DC_GetColArray(1,oBrowse)} HEADER 'Name' WIDTH 10 PARENT oBrowse CARGO 1 SORT bSort EVAL bEval
DCBROWSECOL DATA {||DC_GetColArray(2,oBrowse)} HEADER 'Größe' WIDTH 10 PARENT oBrowse CARGO 2 SORT bSort EVAL bEval
DCBROWSECOL DATA {||DC_GetColArray(3,oBrowse)} HEADER 'Datum' WIDTH 10 PARENT oBrowse CARGO 3 SORT bSort EVAL bEval
DCBROWSECOL DATA {||DC_GetColArray(4,oBrowse)} HEADER 'Zeit' WIDTH 10 PARENT oBrowse CARGO 4 SORT bSort EVAL bEval
DCBROWSECOL DATA {||DC_GetColArray(5,oBrowse)} HEADER 'Attribs' WIDTH 10 PARENT oBrowse CARGO 5 SORT bSort EVAL bEval
DCBROWSECOL DATA {||DC_GetColArray(6,oBrowse)} HEADER 'Erw.Attr.' WIDTH 10 PARENT oBrowse CARGO 6 SORT bSort EVAL bEval
@ 21.5,1 DCPUSHBUTTON CAPTION 'Links' SIZE 10,1 ACTION {||oBrowse:MoveColumn(-1),DC_GetRefresh(GetList)} ;
WHEN {||oBrowse:ColPos > 1}
@ 21.5,15 DCPUSHBUTTON CAPTION 'Rechts' SIZE 10,1 ACTION {||oBrowse:MoveColumn(1),DC_GetRefresh(GetList)} ;
WHEN {||oBrowse:ColPos < 6}
DCREAD GUI FIT ADDBUTTONS
return
STATIC FUNCTION MySort(aDir,nCol)
ASort( aDir,,,{|aY1,aY2| aY1[nCol] < aY2[nCol]})
RETURN aDir
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
Hi Tom,
ich traue mich schon gar nicht das Ergebnis kund zu tun. Aber Dein Vorschlag hat das Problem, dass immer beim Sort die letztgewählte Spalte genommen wird und nicht die, die gerade angeklickt wurde. Also wenn vorher die 3. war und dann die 12. dann wird die 3. genommen. Danach nimmt man z.B. die 4, dann wird aber die 12. genommen usw.
Also habe ich die Übergabe der Spalte beim Verschieben mal wieder so gesetzt wie zu Anfang, aber da kommt als Resultat, dass wenn die 1. Spalte verschoben wird zwar der Rest richtig sortiert wird, aber nichts mehr, was links neben der Spalte ist, die mal verschoben wurde.
Ich hoffe ich habe das jetzt einigermaßen verständlich erklärt.
ich traue mich schon gar nicht das Ergebnis kund zu tun. Aber Dein Vorschlag hat das Problem, dass immer beim Sort die letztgewählte Spalte genommen wird und nicht die, die gerade angeklickt wurde. Also wenn vorher die 3. war und dann die 12. dann wird die 3. genommen. Danach nimmt man z.B. die 4, dann wird aber die 12. genommen usw.
Also habe ich die Übergabe der Spalte beim Verschieben mal wieder so gesetzt wie zu Anfang, aber da kommt als Resultat, dass wenn die 1. Spalte verschoben wird zwar der Rest richtig sortiert wird, aber nichts mehr, was links neben der Spalte ist, die mal verschoben wurde.
Ich hoffe ich habe das jetzt einigermaßen verständlich erklärt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Sort und Spalte verschieben in Browse
So,
nur zur Info. Ich habe das Problem jetzt erstmal anders gelöst. Da die Spalten sowieso gespeichert werden sollen um sie später als Vorlagen wieder einladen zu können, öffne ich vorher eine Pickliste, in der man entweder alles neu zusammenklickt, wie man es haben will, oder aber vorhandene Listen ändert. So wie es aussieht, genügt das, bzw. ist es eine gute Lösung.
Irgendwann später werde ich mich nochmals mit dem ursprünglichen Thema befassen. Vielleicht gibt es ja doch eine "einfache" Lösung dafür.
nur zur Info. Ich habe das Problem jetzt erstmal anders gelöst. Da die Spalten sowieso gespeichert werden sollen um sie später als Vorlagen wieder einladen zu können, öffne ich vorher eine Pickliste, in der man entweder alles neu zusammenklickt, wie man es haben will, oder aber vorhandene Listen ändert. So wie es aussieht, genügt das, bzw. ist es eine gute Lösung.
Irgendwann später werde ich mich nochmals mit dem ursprünglichen Thema befassen. Vielleicht gibt es ja doch eine "einfache" Lösung dafür.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!