**BRegieAK.prg - Regie-Zentrum fr Bestattungsverwaltung // Kontrollbersicht zu einem Auftrag #include "Gra.ch" #include "Xbp.ch" #include "Appevent.ch" #include "Appedit.ch" #include "Appbrow.ch" #include "Font.ch" FUNCTION AuftrKontrolle( cAuf, oDlg1 ) LOCAL oDlg, nEvent, mp1, mp2, oSle, oPbDruck, oPbDruckA, oPbDruckAw, oPbEnde, oXbp //*16.07.2008 17:22 LOCAL aSizeDesktop := AppDesktop():currentSize() LOCAL nBSb := Min(aSizeDesktop[1],nBSbreit) //06.11.2025 16:49 LOCAL nBSh := Min(aSizeDesktop[2],nBShoch) //06.11.2025 16:49 // folgende Zahlen-Werte basieren auf 800x600: LOCAL nH := nBSb/800 // Korrekturfaktor fr tats„chliche Aufl”sung LOCAL nV := nBSh/600, nHV := nH/nV //+07.06.2011 17:28 LOCAL nOldArea := Select() LOCAL oAppEdit LOCAL nRec := RecNo() //+16.12.2020 14:20 PRIVATE oCB, oMle, oMle1, aEditControls := {} PRIVATE cString := Trim(" ") PRIVATE CRLF := Chr(13)+Chr(10) PRIVATE nVSum := 0, nASum := 0, nGSum := 0 PRIVATE nSumme := 0 , nSummeI := 0 , nSummeII := 0 PRIVATE cAufP := "" //+17.12.2020 20:36 cAuf // cBFont := IIf( nBSb < 700, "8.Arial", "10.Arial" ) oDlg := AKDialog():new( AppDesktop(), oDlg1 ) oDlg:tasklist := .T. oDlg:title := "Kontroll-šbersicht fr einzelnen Auftrag" oDlg:maxButton := .F. oDlg:border := XBPDLG_RAISEDBORDERTHIN_FIXED oDlg:create(,, {5,30*nV}, {int(790*nH),int(515*nV)} ) oCB := oDlg:drawingArea // oDlg:drawingArea:setFontCompoundName( cBFont ) oDlg:drawingArea:setColorBG( GRA_CLR_PINK ) // oXbp := XbpStatic():new( oDlg:drawingArea, , {int(400*nV),int(160*nV)}, {int(90*nV),int(25*nV)}) // oXbp:caption := "Bestattung:" // oXbp:clipSiblings := .T. // oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT // oXbp:create() oMle := XbpMLE():new( oDlg:drawingArea, , {int(5*nH),int(5*nV)}, {int(550*nH),int(300*nV)}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) oMle:setFontCompoundName( "8.Courier" ) // oMle:horizScroll := .F. // oMle:vertScroll := .T. oMle:group := XBP_WITHIN_GROUP oMle:dataLink := {|x| IIf( PCOUNT()==0, Trim(cString), cString := x ) } oMle:editable := .F. oMle:create() Sleep(5) //+07.06.2011 20:52 race-Effekt oMle:setData( cString ) KontrRech2( Str(1->auftrnr,6,0) ) oMle1 := XbpMLE():new( oDlg:drawingArea, , {int(570*nH),int(5*nV)}, {int(210*nH),int(300*nV)}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } ) // oMle1:setFontCompoundName( "8.Courier" ) oMle1:horizScroll := .F. // oMle1:vertScroll := .T. // oMle1:group := XBP_WITHIN_GROUP oMle1:dataLink := {|x| IIf( PCOUNT()==0, 1->notiz, 1->notiz := x ) } oMle1:editable := .F. oMle1:create() Sleep(5) //+07.06.2011 20:52 race-Effekt oMle1:setData( ) AAdd ( aEditControls, oMle1 ) // oPbSuch := XbpPushButton():new( oDlg:drawingArea, , {int(600*nV),int(160*nV)}, {int(40*nV),int(25*nV)} ) // oPbSuch:caption := "~Such" // oPbSuch:group := XBP_WITHIN_GROUP // oPbSuch:create() // oPbSuch:activate := {|| KontrSuch( oMle:getData(), oDlg ), SetAppFocus( oMle ) } APPEDIT INTO oAppEdit ; PARENT oDlg:drawingArea ; POSITION TOP ; FONT &cBFont ; NOACTION APPACTION_NODELETE ; SIZE 35,100 PERCENT ; TRIGGER "Ksperr" ON UPDATE ; FOR KontrRech2(Str(1->auftrnr,6,0)) //+18.12.2020 12:23 Ksperr macht Žnderungen in gesperrten S„tzen unm”glich APPFIELD auftrnr INTO oAppEdit CAPTION "Auftrag" WIDTH 5 READONLY APPFIELD berater INTO oAppEdit CAPTION "Ber." WIDTH 3 READONLY APPFIELD Trim(name)+", "+Trim(vorname) INTO oAppEdit CAPTION "Verstorbener" WIDTH 15 READONLY APPFIELD gestorben INTO oAppEdit CAPTION "Sterbe-Datum" WIDTH 8 READONLY APPFIELD Trim(ansp_name)+", "+Trim(ansp_vname) INTO oAppEdit CAPTION "Ansprechpartner" WIDTH 15 READONLY APPFIELD ansp_telp INTO oAppEdit CAPTION "Telefon" WIDTH 8 READONLY APPFIELD statustext INTO oAppEdit CAPTION "Status" WIDTH 20 APPFIELD rech_dat INTO oAppEdit CAPTION "Rechnungs-Datum" WIDTH 8 READONLY APPFIELD abr_datum INTO oAppEdit CAPTION "Abrechnungs-Datum" WIDTH 8 READONLY APPFIELD erinn_dat INTO oAppEdit CAPTION "Erinnerungs-Datum" WIDTH 8 READONLY APPFIELD mahn1_dat INTO oAppEdit CAPTION "Mahnung1-Datum" WIDTH 8 READONLY APPFIELD mahn2_dat INTO oAppEdit CAPTION "Mahnung2-Datum" WIDTH 8 READONLY APPFIELD mahn3_dat INTO oAppEdit CAPTION "Mahnung3-Datum" WIDTH 8 APPFIELD notiz INTO oAppEdit CAPTION "Notiz" APPDISPLAY oAppEdit MODELESS oPbDruckM := XbpPushButton():new( oAppEdit:controlArea, oDlg, {int(460*nH),int(2*nV)}, {int(50*nH),int(25*nV)} ) oPbDruckM:caption := "~Mahnung" oPbDruckM:group := XBP_WITHIN_GROUP oPbDruckM:create() oPbDruckM:activate := {|| Mahnung( oDlg ), SetAppFocus( oMle ) } AAdd ( aButK, oPbDruckM ) //+17.12.2020 15:36 // oPbDruck := XbpPushButton():new( oDlg:drawingArea, oAppEdit , {int(600*nV),int(445*nV)}, {int(40*nV),int(25*nV)} ) oPbDruck := XbpPushButton():new( oAppEdit:controlArea, oDlg, {int(530*nH),int(2*nV)}, {int(40*nH),int(25*nV)} ) oPbDruck:caption := "~Druck" oPbDruck:group := XBP_WITHIN_GROUP oPbDruck:create() oPbDruck:activate := {|| KontrDruck( oMle:getData(), oDlg ), SetAppFocus( oMle ) } AAdd ( aButK, oPbDruck ) //+17.12.2020 15:36 oPbDruckA := XbpPushButton():new( oAppEdit:controlArea, oDlg, {int(600*nH),int(2*nV)}, {int(40*nH),int(25*nV)} ) oPbDruckA:caption := "~Abr." oPbDruckA:group := XBP_WITHIN_GROUP oPbDruckA:create() // oPbDruckA:activate := {|| Rechdr2uni( cAuf, "K", DtoC( date() ), "J", 1, .F., oDlg ), ; // oPbDruckA:activate := {|| Rechdr2uni( cAuf, "K", DtoC( date() ), DtoC( date()+14 ), DtoC( date()+8 ), "j", "0", "1", .F., .T. ), ; // SetAppFocus( oMle ) } oPbDruckA:activate := {|| Rechdr2uni( Str(1->auftrnr,6,0), "K", IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()), DtoC( 1->ABR_DATUM )), ; IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()+14), DtoC( 1->ABR_DATUM +14)), ; IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()+8), DtoC( 1->ABR_DATUM +8)), ; "j", "0", "1", .F., .T. ), ; SetAppFocus( oMle ) } AAdd ( aButK, oPbDruckA ) //+17.12.2020 15:36 oPbDruckAw := XbpPushButton():new( oAppEdit:controlArea, oDlg, {int(670*nH),int(2*nV)}, {int(40*nH),int(25*nV)} ) oPbDruckAw:caption := "~Abr.-w" oPbDruckAw:group := XBP_WITHIN_GROUP oPbDruckAw:create() oPbDruckAw:activate := {|| Rechdr2uni( Str(1->auftrnr,6,0), "K", IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()), DtoC( 1->ABR_DATUM )), ; IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()+14), DtoC( 1->ABR_DATUM +14)), ; IIf( DtoC( 1->ABR_DATUM )=" ", DtoC(DATE()+8), DtoC( 1->ABR_DATUM +8)), ; "n", "0", "w", .F., .T. ), ; SetAppFocus( oMle ) } AAdd ( aButK, oPbDruckAw ) //+17.12.2020 15:36 oPbEnde := XbpPushButton():new( oAppEdit:controlArea, oDlg, {740*nH,2*nV}, {40*nH,25*nV} ) oPbEnde:caption := "~Ende" oPbEnde:group := XBP_WITHIN_GROUP oPbEnde:create() oPbEnde:activate := {|| PostAppEvent( xbeP_Keyboard, xbeK_ESC,, oDlg) } oDlg:setModalState( XBP_DISP_APPMODAL ) oDlg:show() oFocus := SetAppFocus( oDlg ) DO WHILE nEvent <> xbeP_Close nEvent := AppEvent( @mp1, @mp2, @oXbp ) /* IF nEvent == xbeM_LbClick DO CASE CASE Val( cAuf ) != 1->auftrnr // cAuf := Str( 1->auftrnr,6,0 ) // oMle:setData( KontrRech( cAuf, Trim(" ") ) ) ENDCASE ENDIF */ // IF nEvent == xbeM_LbClick // aTaste := oXbp:caption // aparm := {mp1,mp2} // abcd := 3 // ENDIF /* IF nEvent == xbeM_LbClick DO CASE CASE oXbp:isDerivedFrom( "XbpPushButton" ) .AND. ValType(oXbp:caption) == "N" IF oXbp:caption > 10 .AND. oXbp:caption < 15 //.AND. nRec == RecNo() // wenn Navigation startet Raus_aus_Auftrag(.T.) //+13.12.2020 15:30 // LOOP // ENDIF ENDIF ENDCASE ENDIF */ // IF nEvent == xbeM_LbClick .AND. oXbp:isDerivedFrom( "XbpPushButton" ) .AND. ValType(oXbp:caption) == "N" IF nEvent == xbeP_Activate .AND. oXbp:isDerivedFrom( "XbpPushButton" ) .AND. ValType(oXbp:caption) == "N" IF oXbp:caption > 10 .AND. oXbp:caption < 15 .AND. ; Raus_aus_Auftrag(.T.) //+13.12.2020 15:30 // LOOP ++test1 ENDIF ENDIF // IF nRec != RecNo() // wenn Zeiger bewegt wurde (durch Navigation - s.o.) // Rein_in_Auftrag(.T.) // nRec := RecNo() // ENDIF // IF nEvent == xbeDBO_Notify // geht hier nicht bei AppEdit // IF mp1 == DBO_MOVE_DONE // Scatter( aEditControls ) // ENDIF // ENDIF IF nEvent == xbeP_Keyboard DO CASE CASE mp1 == xbeK_RETURN PostAppEvent( xbeP_Activate,,, oXbp) CASE mp1 == xbeK_PGUP IF !Raus_aus_Auftrag(.T.) //+13.12.2020 15:30 msgbox("?aus") ENDIF oAppEdit:goPrevious() IF !Rein_in_Auftrag(.T.) //+13.12.2020 15:30 msgbox("?in") ENDIF LOOP //+24.08.2021 20:59 CASE mp1 == xbeK_PGDN IF !Raus_aus_Auftrag(.T.) //+13.12.2020 15:30 msgbox("?aus") ENDIF oAppEdit:goNext() IF !Rein_in_Auftrag(.T.) //+13.12.2020 15:30 msgbox("?in") ENDIF LOOP //+24.08.2021 21:00 CASE mp1 == xbeK_ALT_D PostAppEvent( xbeP_Activate,,, oPbDruck) CASE mp1 == xbeK_ESC .or. mp1 == xbeK_F10 oAppEdit:CANCEL() // PostAppEvent( xbeP_Close) /*22.05.2008 19:12 damit kann man eine Bestattungsfallmaske mit Rechnung + Zahlung komplett zwangs-bertragen: */ CASE mp1 == xbeK_CTRL_F11 TTausBEST() CASE mp1 == xbeK_F1 ModalDialog( (cDatver+"f1_AK.dbf"), "Bedienungshinweise", oDlg, 680*nH, 460*nV ) ENDCASE ENDIF oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO oDlg:setModalState( XBP_DISP_MODELESS ) oDlg:destroy() SetAppFocus( oFocus ) DbCommit() Select &nOldArea RETURN .T. FUNCTION KontrSuch( cAuf, oDlg1 ) RETURN APPOP_PROCEED FUNCTION KontrEinfg(aRechPos) RETURN APPOP_PROCEED FUNCTION KontrAend(aRechPos) RETURN APPOP_PROCEED FUNCTION Ksperr() //+18.12.2020 12:19 macht Žnderungen in gesperrten S„tzen unm”glich IF 1->stern != cPCNr RETURN APPOP_REFRESH ENDIF RETURN APPOP_PROCEED FUNCTION KontrDruck( cString ) //+28.07.2010 21:58 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv //+ damit die Parameter gesetzt sind - auch fr diesen Spezialdruck LOCAL nOldArea := SELECT() select 20 use drubef if cDrucker="EP" z12p=trim(ep12p) z14p=trim(ep14p) znorm=trim(epnorm) cRes1 := Trim(epres1) cRes2 := Trim(epres2) cRes3 := Trim(epres3) cRes4 := Trim(epres4) nPoffY:= Val(SubStr(epres5,1,3)) nPoffX:= Val(SubStr(epres5,4,3)) nPpZ := Val( Substr( 20->epres5, 7, 3 ) ) //10.01.2008 09:24 nPpS := Val( Substr( 20->epres5, 10, 3 ) ) //10.01.2008 09:24 else z12p=trim(hp12p) z14p=trim(hp14p) znorm=trim(hpnorm) cRes1 := Trim(hpres1) cRes2 := Trim(hpres2) cRes3 := Trim(hpres3) cRes4 := Trim(hpres4) nPoffY:= Val(SubStr(hpres5,1,3)) nPoffX:= Val(SubStr(hpres5,4,3)) nPpZ := Val( Substr( 20->hpres5, 7, 3 ) ) //10.01.2008 09:24 nPpS := Val( Substr( 20->hpres5, 10, 3 ) ) //10.01.2008 09:24 endif USE SELECT &nOldArea //+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ SET DEVICE TO PRINTW @ 2,5 SAY "Kontrollbersicht fr Auftrag "+Str( 1->auftrnr,6,0 ) + " - gedruckt am: " +DtoC(DATE()) @ 4,5 SAY "Verstorbener: "+Trim( 1->vorname )+" "+Trim( 1->name ) @ 5,5 SAY "Sterbe-Datum: "+DtoC( gestorben ) @ 6,5 SAY "Ansprechpartner: "+Trim( 1->ansp_vname )+" "+Trim( 1->ansp_name ) ; +", "+Trim( 1->ansp_bez ) @ 7,5 SAY "Telefon: "+Trim( 1->ansp_telp ) FOR i := 1 TO MlCount( cString ) @ 9+i,5 SAY MemoLine( cString,, i ) NEXT IF cLPT = "LPT1" EJECT lSeiteleer := .F. ENDIF SET DEVICE TO SCREEN RETURN .T. //////FUNCTION KontrRech( cAuf ) ////// LOCAL nOldArea := Select() ////// nGSum := nASum := nVSum := nSumme := nSummeII := nSummeI := 0 ////// cString := Trim(" ") ////// SELECT 3 ////// FIND &cAuf ////// do while 3->auftrnr=val(cAuf) .and. .not. eof() ////// IF 3->rn = "3" ////// nASum := nASum + 3->(&b_g) ////// ELSEIF 3->rn = "2" ////// nSummeII := nSummeII + 3->(&b_g) ////// ELSE ////// nSummeI := nSummeI + 3->(&b_g) ////// ENDIF ////// 3->(DbSkip()) ////// enddo ////// nSumme := nSummeI + nSummeII ////// cString := cString + PadR( "unsere Rechnung ber Leistungen I ", 56 )+Str( nSummeI,10,2 ) ; ////// + IIf(Round(nSummeI,2)<>1->&r_b_1, Str(1->&r_b_1,12,2)+"<-","" )+CRLF ////// cString := cString + PadR( "unsere Rechnung ber Leistungen II ", 56 )+Str( nSummeII,10,2 ) ; ////// + IIf(Round(nSummeII,2)<>1->&r_b_2, Str(1->&r_b_2,12,2)+"<-","" )+CRLF ////// cString := cString + PadR( "unsere Auslagen aus Fremdleistungen", 56 )+Str( nASum,10,2 )+CRLF ////// cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF ////// cString := cString + PadR( "Summe der Rechnungen ", 56 )+Str( nSumme+nASum,10,2 )+CRLF ////// cString := cString + PadR( " ", 66 )+CRLF ////// ////// cString := cString + PadR( "Versicherungen:", 66 )+CRLF + ; ////// PadR( "Name Erf-Dat Pol-"+w_g+" bez.am bez-"+w_g, 66 )+CRLF + ; ////// PadR( "------------------------------------------------------------------", 66 )+CRLF ////// ////// SELECT 2 ////// FIND &cAuf ////// DO WHILE 2->auftrnr = Val( cAuf ) .AND. .NOT. Eof() ////// nVSum := nVSum + &b_b_g ////// cString := cString + PadR( Substr( name1,1,30 )+" "+Substr( DtoC( erf_datum ),1,6 ) + ; ////// Str( &p_b_g,10,2 )+" "+Substr( DtoC( bez_am ),1,6 )+" " + Str( &b_b_g,10,2 ), 66 )+" -"+bb+CRLF ////// SKIP ////// ENDDO ////// nGSum := nSumme + nASum - nVSum ////// ////// cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF ////// cString := cString + PadR( "Summe der Versicherungen/Zahlungen ", 56 )+Str( nVSum,10,2 )+CRLF ////// cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF ////// cString := cString + PadR( "Total-Saldo dieses Auftrages ", 56 )+Str( nGSum,10,2 ) ////// oMle:setData( cString ) ////// SELECT &nOldArea //////RETURN .T. FUNCTION KontrRech2( cAuf ) LOCAL nOldArea := Select() IF cAufP == cAuf //+17.12.2020 20:35 RETURN .T. // weil KontrRech2 von dem FOR-Zweig pro Auftrag mehrmals hintereinander aufgerufen wird ENDIF cAufP := cAuf IF !Rein_in_Auftrag(.T.) RETURN .T. ENDIF test2 += 1 IF test2 == 130 a := 10 ENDIF Scatter(aEditControls) //+18.12.2020 14:41 hierher verschoben von oAppEdit-FOR nGSum := 0; nASum := 0; nVSum := 0; nSumme := 0; nSummeI := 0; nSummeII := 0; nSummeIII := 0 //05.05.2008 13:03 // 21.05.2008 18:09 cString := Trim(" ") cString := Space(52)+"Rechnung JETZT:"+" | ->letzter Druck hatte " + CRLF //21.05.2008 18:11 cString += Space(52)+" "+" eine andere Summe: <-" + CRLF //21.05.2008 18:11 SELECT 3 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn == " " cString := cString + PadR( 3->zugr_z_st +" "+ Trim(3->bezeich), 53, "." )+Str( 3->&b_g,8,2 ) + CRLF nSummeI := nSummeI + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO cString := cString + PadR( "unsere Rechnung ber Leistungen I ", 56, "_" )+Str( nSummeI,10,2 ) ; + IIf(Round(nSummeI,2)<>1->&r_b_1, Str(1->&r_b_1,15,2)+"<-","" )+CRLF 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn = "2" cString := cString + PadR( 3->zugr_z_st +" "+ Trim(3->bezeich), 53, "." )+Str( 3->&b_g,8,2 ) + CRLF nSummeII := nSummeII + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO cString := cString + PadR( "unsere Rechnung ber Leistungen II ", 56, "_" )+Str( nSummeII,10,2 ) ; + IIf(Round(nSummeII,2)<>1->&r_b_2, Str(1->&r_b_2,15,2)+"<-","" )+CRLF /*05.05.2008 12:59 Leistung III = Adelta-Vorfinanzierungskosten */ 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn == "A" cString := cString + PadR( 3->zugr_z_st +" "+ Trim(3->bezeich), 53, "." )+Str( 3->&b_g,8,2 ) + CRLF nSummeIII := nSummeIII + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO cString := cString + PadR( "unsere Rechnung ber Leistungen III", 56, "_" )+Str( nSummeIII,10,2 ) ; + IIf(Round(nSummeIII,2)<>1->&r_b_1h, Str(1->&r_b_1h,15,2)+"<-","" )+CRLF /**/ 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn == "3" cString := cString + PadR( 3->zugr_z_st +" "+ Trim(3->bezeichf1), 53, "." )+Str( 3->&b_g,8,2 ) + CRLF nASum := nASum + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO nSumme := nSummeI + nSummeII + nSummeIII cString := cString + PadR( "unsere Auslagen aus Fremdleistungen", 56, "_" )+Str( nASum,10,2 ) ; + IIf(Round(nASum,2)<>1->&r_b_2h, Str(1->&r_b_2h,15,2)+"<-","" )+CRLF cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF cString := cString + PadR( "Summe der Rechnungen ", 56 )+Str( nSumme+nASum,10,2 )+CRLF cString := cString + PadR( " ", 66 )+CRLF cString := cString + PadR( "Versicherungen:", 66 )+CRLF + ; PadR( "Name Erf-Dat Pol-"+w_g+" bez.am bez-"+w_g, 66 )+CRLF + ; PadR( "------------------------------------------------------------------", 66 )+CRLF SELECT 2 2->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 2->auftrnr = Val( cAuf ) .AND. .NOT. 2->(Eof()) nVSum := nVSum + &b_b_g cString := cString + PadR( Substr( name1,1,30 )+" "+Substr( DtoC( erf_datum ),1,6 ) + ; Str( &p_b_g,10,2 )+" "+Substr( DtoC( bez_am ),1,6 )+" " + Str( &b_b_g,10,2 ), 66 )+" -"+bb+CRLF SKIP ENDDO nGSum := nSumme + nASum - nVSum cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF cString := cString + PadR( "Summe der Versicherungen/Zahlungen ", 56 )+Str( nVSum,10,2 )+CRLF cString := cString + PadR( "------------------------------------------------------------------", 67 )+CRLF cString := cString + PadR( "Total-Saldo dieses Auftrages ", 56 )+Str( nGSum,10,2 )+CRLF cString := cString + Replicate("=",66) oMle:setData( cString ) SELECT &nOldArea RETURN .T. //+26.06.2018 21:54 Krankenkassen-Rechnung: FUNCTION KKRech() LOCAL nOldArea := Select() LOCAL nGSum := 0, nASum := 0, nVSum := 0, nSumme := 0, nSummeI := 0, nSummeII := 0, nSummeIII := 0 LOCAL cString := "" LOCAL cAuf := Str(1->auftrnr,6,0) SELECT 3 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn == " " cString += PadR( 3->zugr_z_st +" "+ Trim(3->bezeich), 53, " " )+Str( 3->&b_g,8,2 ) + CRLF nSummeI := nSummeI + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO cString += PadR( "unsere Rechnung ber Leistungen I", 58, " " )+Str( nSummeI,10,2 ) +CRLF IF nSummeI = 0 cString += "(Sarg, Decke, Kleidung, šberfhrung zum Friedhof etc.)" +CRLF ENDIF cString += CRLF 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn = "2" cString += PadR( 3->zugr_z_st +" "+ Trim(3->bezeich), 53, " " )+Str( 3->&b_g,8,2 ) + CRLF nSummeII := nSummeII + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO cString += PadR( "unsere Rechnung ber Leistungen II", 58, " " )+Str( nSummeII,10,2 ) +CRLF IF nSummeII = 0 cString += "(Zeitungsanzeigen, Trauerdrucke, Tr„ger etc.)" +CRLF ENDIF cString += CRLF 3->(DbSeek(cAuf,.F.)) //+19.11.2011 22:02 FIND &cAuf DO WHILE 3->auftrnr=val(cAuf) .and. .not. 3->(Eof()) IF 3->rn == "3" cString += PadR( 3->zugr_z_st +" "+ Trim(3->bezeichf1), 53, " " )+Str( 3->&b_g,8,2 ) + CRLF nASum := nASum + 3->(&b_g) ENDIF 3->(DbSkip()) ENDDO nSumme := nSummeI + nSummeII + nASum cString += PadR( "unsere Auslagen aus Fremdleistungen", 58, " " )+Str( nASum,10,2 ) +CRLF IF nASum = 0 cString += "(Grab, Grabbereitung, Hallengebhren, Dekoration etc.)" +CRLF ENDIF cString += PadR( "_", 68,"_" )+CRLF cString += CRLF cString += PadR( "Summe der Rechnungen ", 58 )+Str( nSumme,10,2 )+CRLF cString += PadR( "_", 68,"_" )+CRLF cString += CRLF SELECT &nOldArea RETURN cString